{"version":3,"sources":["webpack:///./src/mixins/shared/base/settings/buttonSettingsMixin.js","webpack:///./src/mixins/shared/base/button/baseButtonMixin.js","webpack:///./src/mixins/shared/slottable/slottableMixin.js","webpack:///./src/components/shared/base/BaseButton.vue","webpack:///src/components/shared/base/BaseButton.vue","webpack:///./src/components/shared/base/BaseButton.vue?2e8e","webpack:///./src/components/shared/base/BaseButton.vue?17ea"],"names":["mapGetters","createNamespacedHelpers","buttonSettingsMixin","mixins","publicAccessMixin","data","spacingDirection","direction","computed","buttonColor","buttonTextStyleSetting","buttonOutlinedSetting","buttonRoundedSetting","buttonElevationSetting","buttonTextStyle","_this$publicAccess$bu","_this$publicAccess","this","isPublicAccess","publicAccess","buttons","textStyle","buttonOutlined","_this$publicAccess$bu2","_this$publicAccess2","outlined","buttonRounded","_this$publicAccess$bu3","_this$publicAccess3","rounded","buttonElevation","_this$publicAccess$bu4","_this$publicAccess4","_this$buttonElevation","elevation","mdButtonColor","Color","name","variantType","variantNumber","buttonColorClass","_this$publicAccess5","color","isEmpty","getClassColor","buttonRecommendedColorClass","undefined","Text","colorMD","grey","lighten","n2","getTextColorClass","buttonRecommendedSpacingClass","recommendedSpacingClass","right","buttonRecommendedTextStyle","false","methods","buttonRecommendedClass","Spacing","spacingType","margin","size","size2","getClassSpacing","buttonRecommendedOutlined","baseButtonMixin","reactiveMixin","eventButtonClick","eventNames","click","props","type","String","default","large","Boolean","small","fab","round","reactiveText","computedButtonColorClass","computedButtonOutlined","computedButtonRounded","computedTextStyle","visibleText","visibleOnSmAndUp","slottableMixin","hasSlot","$slots","class","_vm","attrs","$attrs","staticRenderFns","render","inheritAttrs","component"],"mappings":"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","file":"js/chunk-4acb8b3a.432bc965.js","sourcesContent":["// design\r\nimport {\r\n Color,\r\n colorMD,\r\n variantNumber,\r\n variantType\r\n} from \"@/design/colors/Color\";\r\nimport { Text } from \"@/design/text/Text\";\r\nimport {\r\n direction,\r\n size,\r\n Spacing,\r\n spacingType\r\n} from \"@/design/spacing/Spacing\";\r\n\r\n// utils\r\nimport { isEmpty } from \"@/utils\";\r\n\r\n// vuex\r\nimport { createNamespacedHelpers } from \"vuex\";\r\nconst { mapGetters } = createNamespacedHelpers(\"solution\");\r\n\r\n// mixins\r\nimport { publicAccessMixin } from \"@/mixins/public/publicAccessMixin\";\r\n\r\n/**\r\n * Button Settings Mixin encapsulate common functionality of components which leveraging v-btn\r\n */\r\nexport const buttonSettingsMixin = {\r\n mixins: [publicAccessMixin],\r\n data() {\r\n return {\r\n spacingDirection: direction\r\n };\r\n },\r\n computed: {\r\n ...mapGetters({\r\n buttonColor: \"buttonColor\",\r\n buttonTextStyleSetting: \"buttonTextStyle\",\r\n buttonOutlinedSetting: \"buttonOutlined\",\r\n buttonRoundedSetting: \"buttonRounded\",\r\n buttonElevationSetting: \"buttonElevation\"\r\n }),\r\n\r\n /**\r\n * determines whether to make the background transparent based on current settings\r\n * Note: When using the color prop, the color will be applied to the button text instead of the background.\r\n * @return {boolean|boolean} if true then Makes the background transparent\r\n */\r\n buttonTextStyle() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.buttons?.textStyle ?? true\r\n : this.buttonTextStyleSetting;\r\n },\r\n\r\n /**\r\n * determines whether to make the Outlined button based on current settings\r\n * @return {boolean|boolean} if true Makes the background transparent and applies a thin border.\r\n */\r\n buttonOutlined() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.buttons?.outlined ?? false\r\n : this.buttonOutlinedSetting;\r\n },\r\n\r\n /**\r\n * determines whether to make the Rounded button based on current settings\r\n * @return {boolean|boolean} if true Applies a large border radius on the button.\r\n */\r\n buttonRounded() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.buttons?.rounded ?? false\r\n : this.buttonRoundedSetting;\r\n },\r\n\r\n /**\r\n * determines whether to make the Elevation button based on current settings\r\n * @return {number|Number} if true Designates an elevation applied to the component between 0 and 24. You can find more information on the elevation page.\r\n */\r\n buttonElevation() {\r\n return this.isPublicAccess\r\n ? this.publicAccess?.buttons?.elevation ?? 0\r\n : this.buttonElevationSetting ?? 0;\r\n },\r\n\r\n /**\r\n * Get button Material Design color\r\n * @returns {Color}\r\n */\r\n mdButtonColor() {\r\n return new Color(\r\n this.buttonColor.name,\r\n this.buttonColor.variantType,\r\n this.buttonColor.variantNumber\r\n );\r\n },\r\n\r\n /**\r\n * Get button Color Class\r\n * @returns {string|*}\r\n */\r\n buttonColorClass() {\r\n if (this.isPublicAccess) {\r\n const color = this.publicAccess?.buttons?.color;\r\n return isEmpty(color) ? this.mdButtonColor.getClassColor() : color;\r\n }\r\n\r\n return this.mdButtonColor.getClassColor();\r\n },\r\n\r\n buttonRecommendedColorClass() {\r\n return this.buttonTextStyle\r\n ? undefined\r\n : new Text(\r\n new Color(colorMD.grey, variantType.lighten, variantNumber.n2)\r\n ).getTextColorClass();\r\n },\r\n\r\n /**\r\n * Get Recommended Spacing Class\r\n * @return {String|string}\r\n */\r\n buttonRecommendedSpacingClass() {\r\n return this.recommendedSpacingClass(direction.right);\r\n },\r\n\r\n /**\r\n * button Recommended Text Style\r\n * @return {false|Chai.Assertion|*|boolean}\r\n */\r\n buttonRecommendedTextStyle() {\r\n return this.buttonOutlined ? this.false : this.buttonTextStyle;\r\n }\r\n },\r\n methods: {\r\n /**\r\n * Get button's Recommended Class\r\n * @param {string} spacingDirection\r\n * @return {string}\r\n */\r\n buttonRecommendedClass(spacingDirection = undefined) {\r\n return spacingDirection\r\n ? `${this.recommendedSpacingClass(spacingDirection)} ${\r\n this.buttonRecommendedColorClass\r\n }`\r\n : this.buttonRecommendedColorClass;\r\n },\r\n /**\r\n * recommended Spacing Class\r\n * @param { string } direction\r\n * @return {String|string}\r\n */\r\n recommendedSpacingClass(direction) {\r\n return new Spacing(\r\n spacingType.margin,\r\n direction,\r\n size.size2\r\n ).getClassSpacing();\r\n },\r\n\r\n /**\r\n * button Recommended Outlined\r\n * @param { boolean } outlined\r\n */\r\n buttonRecommendedOutlined(outlined = true) {\r\n return outlined ? !!this.buttonTextStyle : this.buttonOutlined;\r\n }\r\n }\r\n};\r\n","// model\r\nimport { eventNames } from \"@/model/common/events/eventConst\";\r\n\r\n// mixins\r\nimport { buttonSettingsMixin } from \"@/mixins/shared/base/settings/buttonSettingsMixin\";\r\nimport { reactiveMixin } from \"@/mixins/shared/reactive/reactiveMixin\";\r\n\r\nexport const baseButtonMixin = {\r\n mixins: [buttonSettingsMixin, reactiveMixin],\r\n data() {\r\n return {\r\n eventButtonClick: eventNames.click\r\n };\r\n },\r\n props: {\r\n /**\r\n * Button Icon and Text colorName\r\n */\r\n color: {\r\n type: String,\r\n default: undefined\r\n },\r\n\r\n /**\r\n * is large size\r\n */\r\n large: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n /**\r\n * is small size\r\n */\r\n small: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n /**\r\n * Designates the button as a floating-action-button. Button will become round\r\n */\r\n fab: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n /**\r\n * is round\r\n */\r\n round: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n /**\r\n * is outlined\r\n */\r\n outlined: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n /**\r\n * is button's text reactive, should it be visible On Sm And Up screen\r\n */\r\n reactiveText: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n computedButtonColorClass() {\r\n return this.color ? this.color : this.buttonColorClass;\r\n },\r\n computedButtonOutlined() {\r\n return this.outlined ? this.outlined : this.buttonOutlined;\r\n },\r\n computedButtonRounded() {\r\n return this.round ? this.round : this.buttonRounded;\r\n },\r\n computedTextStyle() {\r\n return this.computedButtonOutlined ? this.false : this.buttonTextStyle;\r\n },\r\n\r\n /**\r\n * compute visibility of button's Text\r\n * @return {boolean|boolean} true if button's Text is visible\r\n */\r\n visibleText() {\r\n return this.reactiveText ? this.visibleOnSmAndUp : true;\r\n }\r\n }\r\n};\r\n","export const slottableMixin = {\r\n methods: {\r\n /**\r\n * has Slot\r\n * @param {string} name\r\n * @return {boolean}\r\n */\r\n hasSlot(name) {\r\n return !!this.$slots[name];\r\n }\r\n }\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',_vm._g(_vm._b({class:_vm.buttonRecommendedClass(_vm.spacingDirection.left),attrs:{\"fab\":_vm.fab,\"small\":_vm.small,\"large\":_vm.large,\"color\":_vm.computedButtonColorClass,\"outlined\":_vm.computedButtonOutlined,\"text\":_vm.buttonRecommendedTextStyle,\"rounded\":_vm.computedButtonRounded,\"elevation\":_vm.buttonElevation}},'v-btn',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"icon\",function(){return [(_vm.hasSlot('icon-name'))?_c('v-icon',[_vm._t(\"icon-name\")],2):_vm._e()]}),(_vm.visibleText)?_vm._t(\"default\"):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseButton.vue?vue&type=template&id=389c38bb\"\nimport script from \"./BaseButton.vue?vue&type=script&lang=js\"\nexport * from \"./BaseButton.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}