{"version":3,"sources":["webpack:///./src/mixins/shared/base/settings/buttonSettingsMixin.js","webpack:///./src/mixins/shared/base/button/baseButtonMixin.js","webpack:///./src/mixins/shared/reactive/reactiveMixin.js","webpack:///./src/design/spacing/Spacing.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","visibleOnMdAndUp","$vuetify","breakpoint","mdAndUp","smAndUp","visibleOnSmAndDown","smAndDown","Object","freeze","padding","size0","size1","size3","size4","size5","size6","size7","size8","size9","size10","size11","size12","size13","size14","size15","size16","n1","n3","n4","n5","n6","n7","n8","n9","n10","n11","n12","n13","n14","n15","n16","auto","top","bottom","left","leftRight","rightLeft","leftAndRight","topAndBottom","all","getMarginClass","xs","sm","md","lg","xl","constructor","_defineProperty","slottableMixin","hasSlot","$slots","class","_vm","attrs","$attrs","staticRenderFns","render","inheritAttrs","component"],"mappings":"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","file":"js/chunk-6c25062c.5ac9d0b3.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","/**\r\n * Reactive Mixin used by components that needs to be reactive\r\n * @type {{computed: {visibleOnMdAndUp(): reactiveMixin.computed.$vuetify.breakpoint.mdAndUp}}}\r\n */\r\nexport const reactiveMixin = {\r\n computed: {\r\n /**\r\n * Get breakpoint mdAndUp\r\n * @return {boolean}\r\n */\r\n visibleOnMdAndUp() {\r\n return this.$vuetify.breakpoint.mdAndUp;\r\n },\r\n /**\r\n * Get breakpoint smAndUp\r\n * @returns {boolean}\r\n */\r\n visibleOnSmAndUp() {\r\n return this.$vuetify.breakpoint.smAndUp;\r\n },\r\n /**\r\n * Get breakpoint smAndDown\r\n * @returns {boolean}\r\n */\r\n visibleOnSmAndDown() {\r\n return this.$vuetify.breakpoint.smAndDown;\r\n }\r\n }\r\n};\r\n","/**\r\n * Material Design Spacing Type\r\n *\r\n * @typedef {Object} spacingType\r\n *\r\n * @property {string} margin applies margin\r\n * @property {string} padding applies padding\r\n */\r\n/**\r\n * Spacing Type\r\n * @type {spacingType}\r\n */\r\nconst spacingType = Object.freeze({\r\n margin: \"m\",\r\n padding: \"p\"\r\n});\r\n\r\n/**\r\n * Material Design Spacing size\r\n *\r\n * @typedef {Object} size\r\n *\r\n * @property {string} size0 eliminates all margin or padding by setting it to 0\r\n * @property {string} size1 sets margin or padding to 4px\r\n * @property {string} size2 sets margin or padding to 8px\r\n * @property {string} size3 sets margin or padding to 12px\r\n * @property {string} size4 sets margin or padding to 16px\r\n * @property {string} size5 sets margin or padding to 20px\r\n * @property {string} size6 sets margin or padding to 24px\r\n * @property {string} size7 sets margin or padding to 28px\r\n * @property {string} size8 sets margin or padding to 32px\r\n * @property {string} size9 sets margin or padding to 36px\r\n * @property {string} size10 sets margin or padding to 40px\r\n * @property {string} size11 sets margin or padding to 44px\r\n * @property {string} size12 sets margin or padding to 48px\r\n * @property {string} size13 sets margin or padding to 52px\r\n * @property {string} size14 sets margin or padding to 56px\r\n * @property {string} size15 sets margin or padding to 60px\r\n * @property {string} size16 sets margin or padding to 64px\r\n * @property {string} n1 sets margin to -4px\r\n * @property {string} n2 sets margin to -8px\r\n * @property {string} n3 sets margin to -12px\r\n * @property {string} n4 sets margin to -16px\r\n * @property {string} n5 sets margin to -20px\r\n * @property {string} n6 sets margin to -24px\r\n * @property {string} n7 sets margin to -28px\r\n * @property {string} n8 sets margin to -32px\r\n * @property {string} n9 sets margin to -36px\r\n * @property {string} n10 sets margin to -40px\r\n * @property {string} n11 sets margin to -44px\r\n * @property {string} n12 sets margin to -48px\r\n * @property {string} n13 sets margin to -52px\r\n * @property {string} n14 sets margin to -56px\r\n * @property {string} n15 sets margin to -60px\r\n * @property {string} n16 sets margin to -64px\r\n * @property {string} auto sets the spacing to auto\r\n */\r\n/**\r\n * The size controls the increment of the property in 4px intervals\r\n * @type {size}\r\n */\r\nconst size = Object.freeze({\r\n size0: \"0\",\r\n size1: \"1\",\r\n size2: \"2\",\r\n size3: \"3\",\r\n size4: \"4\",\r\n size5: \"5\",\r\n size6: \"6\",\r\n size7: \"7\",\r\n size8: \"8\",\r\n size9: \"9\",\r\n size10: \"10\",\r\n size11: \"11\",\r\n size12: \"12\",\r\n size13: \"13\",\r\n size14: \"14\",\r\n size15: \"15\",\r\n size16: \"16\",\r\n n1: \"n1\",\r\n n2: \"n2\",\r\n n3: \"n3\",\r\n n4: \"n4\",\r\n n5: \"n5\",\r\n n6: \"n6\",\r\n n7: \"n7\",\r\n n8: \"n8\",\r\n n9: \"n9\",\r\n n10: \"n10\",\r\n n11: \"n11\",\r\n n12: \"n12\",\r\n n13: \"n13\",\r\n n14: \"n14\",\r\n n15: \"n15\",\r\n n16: \"n16\",\r\n auto: \"auto\"\r\n});\r\n\r\n/**\r\n * Material Design direction\r\n *\r\n * @typedef {Object} direction\r\n *\r\n * @property {string} top applies the spacing for margin-top and padding-top\r\n * @property {string} bottom applies the spacing for margin-bottom and padding-bottom\r\n * @property {string} left applies the spacing for margin-left and padding-left\r\n * @property {string} right applies the spacing for margin-right and padding-right\r\n * @property {string} leftRight applies the spacing for margin-left/padding-left (in LTR mode) and margin-right/padding-right (in RTL mode)\r\n * @property {string} rightLeft applies the spacing for margin-right/padding-right (in LTR mode) and margin-left/padding-left (in RTL mode)\r\n * @property {string} leftAndRight applies the spacing for both *-left and *-right\r\n * @property {string} topAndBottom applies the spacing for both *-top and *-bottom\r\n * @property {string} all applies the spacing for the property in all directions\r\n */\r\n/**\r\n * The direction designates the side the property applies to:\r\n * @type {direction}}\r\n */\r\nconst direction = Object.freeze({\r\n top: \"t\",\r\n bottom: \"b\",\r\n left: \"l\",\r\n right: \"r\",\r\n leftRight: \"s\",\r\n rightLeft: \"e\",\r\n leftAndRight: \"x\",\r\n topAndBottom: \"y\",\r\n all: \"a\"\r\n});\r\n\r\n/**\r\n * Material Design Breakpoints\r\n *\r\n * @typedef {Object} Breakpoints\r\n *\r\n * @property {string} xs Small to large phone\r\n * @property {string} sm Small to medium tablet\r\n * @property {string} md Large tablet to laptop\r\n * @property {string} lg Desktop\r\n * @property {string} xl 4k and ultra-wide\r\n */\r\n\r\n/**\r\n * @type {Breakpoints} breakpoints\r\n */\r\nconst breakpoints = Object.freeze({\r\n xs: \"xs\",\r\n sm: \"sm\",\r\n md: \"md\",\r\n lg: \"lg\",\r\n xl: \"xl\"\r\n});\r\n\r\n/**\r\n * get Margin Class\r\n * @param {string} direction\r\n * @param {string} size\r\n * @returns {string}\r\n */\r\nconst getMarginClass = (direction, size) =>\r\n new Spacing(spacingType.margin, direction, size).getClassSpacing();\r\n\r\n/**\r\n * get Padding Class\r\n * @param {string} direction\r\n * @param {string} size\r\n * @returns {string}\r\n */\r\nconst getPaddingClass = (direction, size) =>\r\n new Spacing(spacingType.padding, direction, size).getClassSpacing();\r\n\r\nclass Spacing {\r\n spacingType = spacingType.margin;\r\n direction = direction.all;\r\n size = size.size0;\r\n breakpoint = undefined;\r\n\r\n /**\r\n * Spacing constructor\r\n * @param {String|string} spacingType\r\n * @param {String|string} direction\r\n * @param {String|String} size\r\n */\r\n constructor(\r\n spacingType = spacingType.margin,\r\n direction = direction.all,\r\n size = size.auto\r\n ) {\r\n this.spacingType = spacingType;\r\n this.direction = direction;\r\n this.size = size;\r\n }\r\n\r\n /**\r\n * Get Class Spacing\r\n * Which applies spacing using Material Design spacings format\r\n * @returns {String|string}\r\n */\r\n getClassSpacing() {\r\n return this.breakpoint\r\n ? `${this.spacingType}${this.direction}-${this.breakpoint}-${this.size}`\r\n : `${this.spacingType}${this.direction}-${this.size}`;\r\n }\r\n}\r\n\r\nexport {\r\n spacingType,\r\n size,\r\n direction,\r\n breakpoints,\r\n Spacing,\r\n getMarginClass,\r\n getPaddingClass\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":""}