@dialpad/dialtone 9.113.0 → 9.113.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../../common/constants/index.cjs"),o=require("./select-menu-constants.cjs"),i=require("../../common/utils/index.cjs"),u=require("../../common/mixins/input.cjs"),m=require("./select-menu-validators.cjs"),S=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),E=require("../validation-messages/validation-messages.cjs"),p={compatConfig:{MODE:3},name:"DtSelectMenu",components:{DtValidationMessages:E.default},mixins:[u.MessagesMixin],inheritAttrs:!1,props:{label:{type:String,default:""},description:{type:String,default:""},options:{type:Array,default:()=>[],validator:t=>m.optionsValidator(t)},size:{type:String,default:"md",validator:t=>Object.keys(o.SELECT_SIZE_MODIFIERS).includes(t)},labelClass:{type:[String,Array,Object],default:""},descriptionClass:{type:[String,Array,Object],default:""},selectClass:{type:[String,Array,Object],default:""},optionClass:{type:[String,Array,Object],default:""},labelChildProps:{type:Object,default:()=>({})},descriptionChildProps:{type:Object,default:()=>({})},optionChildProps:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1}},emits:["input","update:modelValue","change"],data(){return{LABEL_SIZE_MODIFIERS:d.LABEL_SIZE_MODIFIERS,DESCRIPTION_SIZE_MODIFIERS:d.DESCRIPTION_SIZE_MODIFIERS,SELECT_SIZE_MODIFIERS:o.SELECT_SIZE_MODIFIERS,SELECT_STATE_MODIFIERS:o.SELECT_STATE_MODIFIERS,hasSlotContent:i.hasSlotContent}},computed:{selectListeners(){return{input:()=>{},change:t=>this.emitValue(t.target.value,t)}},state(){return i.getValidationState(this.formattedMessages)},selectKey(){return i.getUniqueString()},descriptionKey(){return`select-${this.selectKey}-description`},labelAriaDetails(){return this.$slots.description||this.description?this.descriptionKey:this.$attrs["aria-details"]}},watch:{options(){this.$nextTick(()=>{this.emitValue(this.$refs.selectElement.value,null)})}},mounted(){this.emitValue(this.$refs.selectElement.value,null),this.validateOptionsPresence()},beforeUpdate(){this.validateOptionsPresence()},methods:{removeClassStyleAttrs:i.removeClassStyleAttrs,addClassStyleAttrs:i.addClassStyleAttrs,emitValue(t,r){this.$emit("update:modelValue",t,r),this.$emit("input",t,r),this.$emit("change",t,r)},getOptionKey(t){return`select-${this.selectKey}-option-${t}`},validateOptionsPresence(){var t;((t=this.options)==null?void 0:t.length)<1&&!this.$slots.default&&e.warn("Options are expected to be provided via prop or slot",this)}}},_=["aria-details"],g=["id"],h=["disabled"],C=["value"];function I(t,r,s,b,a,l){const c=e.resolveComponent("dt-validation-messages");return e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(l.addClassStyleAttrs(t.$attrs))),[e.createElementVNode("label",null,[a.hasSlotContent(t.$slots.label)||s.label?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,"aria-details":l.labelAriaDetails,class:["d-label",a.LABEL_SIZE_MODIFIERS[s.size],s.labelClass]},s.labelChildProps,{"data-qa":"dt-select-label"}),[e.renderSlot(t.$slots,"label",{},()=>[e.createTextVNode(e.toDisplayString(s.label),1)])],16,_)):e.createCommentVNode("",!0),a.hasSlotContent(t.$slots.description)||s.description?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:1,id:l.descriptionKey,class:["d-description",a.DESCRIPTION_SIZE_MODIFIERS[s.size],s.descriptionClass]},s.descriptionChildProps,{"data-qa":"dt-select-description"}),[e.renderSlot(t.$slots,"description",{},()=>[e.createTextVNode(e.toDisplayString(s.description),1)])],16,g)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["d-select",a.SELECT_SIZE_MODIFIERS[s.size],s.selectClass,{"d-select--disabled":s.disabled}]),"data-qa":"dt-select-wrapper"},[e.createElementVNode("select",e.mergeProps({ref:"selectElement",class:["d-select__input",a.SELECT_STATE_MODIFIERS[l.state]]},l.removeClassStyleAttrs(t.$attrs),{"data-qa":"dt-select",disabled:s.disabled},e.toHandlers(l.selectListeners,!0)),[e.renderSlot(t.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.options,n=>(e.openBlock(),e.createElementBlock("option",e.mergeProps({key:l.getOptionKey(n.value),value:n.value,class:s.optionClass},s.optionChildProps),e.toDisplayString(n.label),17,C))),128))])],16,h)],2)]),e.createVNode(c,e.mergeProps({"validation-messages":t.formattedMessages,"show-messages":t.showMessages,class:t.messagesClass},t.messagesChildProps,{"data-qa":"dt-select-messages"}),null,16,["validation-messages","show-messages","class"])],16)}const y=S._(p,[["render",I]]);exports.default=y;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../../common/constants/index.cjs"),o=require("./select-menu-constants.cjs"),i=require("../../common/utils/index.cjs"),u=require("../../common/mixins/input.cjs"),S=require("./select-menu-validators.cjs"),m=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),E=require("../validation-messages/validation-messages.cjs"),p={compatConfig:{MODE:3},name:"DtSelectMenu",components:{DtValidationMessages:E.default},mixins:[u.MessagesMixin],inheritAttrs:!1,props:{label:{type:String,default:""},description:{type:String,default:""},options:{type:Array,default:()=>[],validator:t=>S.optionsValidator(t)},size:{type:String,default:"md",validator:t=>Object.keys(o.SELECT_SIZE_MODIFIERS).includes(t)},labelClass:{type:[String,Array,Object],default:""},descriptionClass:{type:[String,Array,Object],default:""},selectClass:{type:[String,Array,Object],default:""},optionClass:{type:[String,Array,Object],default:""},labelChildProps:{type:Object,default:()=>({})},descriptionChildProps:{type:Object,default:()=>({})},optionChildProps:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1}},emits:["input","update:modelValue","change"],data(){return{LABEL_SIZE_MODIFIERS:d.LABEL_SIZE_MODIFIERS,DESCRIPTION_SIZE_MODIFIERS:d.DESCRIPTION_SIZE_MODIFIERS,SELECT_SIZE_MODIFIERS:o.SELECT_SIZE_MODIFIERS,SELECT_STATE_MODIFIERS:o.SELECT_STATE_MODIFIERS,hasSlotContent:i.hasSlotContent}},computed:{selectListeners(){return{input:()=>{},change:t=>this.emitValue(t.target.value,t)}},state(){return i.getValidationState(this.formattedMessages)},selectKey(){return i.getUniqueString()},descriptionKey(){return`select-${this.selectKey}-description`},labelAriaDetails(){return this.$slots.description||this.description?this.descriptionKey:this.$attrs["aria-details"]}},mounted(){this.validateOptionsPresence()},beforeUpdate(){this.validateOptionsPresence()},methods:{removeClassStyleAttrs:i.removeClassStyleAttrs,addClassStyleAttrs:i.addClassStyleAttrs,emitValue(t,r){this.$emit("update:modelValue",t,r),this.$emit("input",t,r),this.$emit("change",t,r)},getOptionKey(t){return`select-${this.selectKey}-option-${t}`},validateOptionsPresence(){var t;((t=this.options)==null?void 0:t.length)<1&&!this.$slots.default&&e.warn("Options are expected to be provided via prop or slot",this)}}},_=["aria-details"],g=["id"],C=["disabled"],I=["value"];function h(t,r,s,b,a,l){const c=e.resolveComponent("dt-validation-messages");return e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(l.addClassStyleAttrs(t.$attrs))),[e.createElementVNode("label",null,[a.hasSlotContent(t.$slots.label)||s.label?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,"aria-details":l.labelAriaDetails,class:["d-label",a.LABEL_SIZE_MODIFIERS[s.size],s.labelClass]},s.labelChildProps,{"data-qa":"dt-select-label"}),[e.renderSlot(t.$slots,"label",{},()=>[e.createTextVNode(e.toDisplayString(s.label),1)])],16,_)):e.createCommentVNode("",!0),a.hasSlotContent(t.$slots.description)||s.description?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:1,id:l.descriptionKey,class:["d-description",a.DESCRIPTION_SIZE_MODIFIERS[s.size],s.descriptionClass]},s.descriptionChildProps,{"data-qa":"dt-select-description"}),[e.renderSlot(t.$slots,"description",{},()=>[e.createTextVNode(e.toDisplayString(s.description),1)])],16,g)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["d-select",a.SELECT_SIZE_MODIFIERS[s.size],s.selectClass,{"d-select--disabled":s.disabled}]),"data-qa":"dt-select-wrapper"},[e.createElementVNode("select",e.mergeProps({ref:"selectElement",class:["d-select__input",a.SELECT_STATE_MODIFIERS[l.state]]},l.removeClassStyleAttrs(t.$attrs),{"data-qa":"dt-select",disabled:s.disabled},e.toHandlers(l.selectListeners,!0)),[e.renderSlot(t.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.options,n=>(e.openBlock(),e.createElementBlock("option",e.mergeProps({key:l.getOptionKey(n.value),value:n.value,class:s.optionClass},s.optionChildProps),e.toDisplayString(n.label),17,I))),128))])],16,C)],2)]),e.createVNode(c,e.mergeProps({"validation-messages":t.formattedMessages,"show-messages":t.showMessages,class:t.messagesClass},t.messagesChildProps,{"data-qa":"dt-select-messages"}),null,16,["validation-messages","show-messages","class"])],16)}const y=m._(p,[["render",h]]);exports.default=y;
2
2
  //# sourceMappingURL=select-menu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-menu.cjs","sources":["../../../components/select_menu/select_menu.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label>\n <div\n v-if=\"hasSlotContent($slots.label) || label\"\n :aria-details=\"labelAriaDetails\"\n :class=\"[\n 'd-label',\n LABEL_SIZE_MODIFIERS[size],\n labelClass,\n ]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </div>\n <div\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n :class=\"[\n 'd-description',\n DESCRIPTION_SIZE_MODIFIERS[size],\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[size],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport {\n LABEL_SIZE_MODIFIERS,\n DESCRIPTION_SIZE_MODIFIERS,\n} from '@/common/constants';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './select_menu_constants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n addClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './select_menu_validators.js';\nimport { DtValidationMessages } from '../validation_messages';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Description for the select\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ index: number (optional), value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number} options[].index - Optional - The index of the option\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (s) => Object.keys(SELECT_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String | Number}\n */\n 'input',\n\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event input\n * @type {String | Number}\n */\n 'update:modelValue',\n\n /**\n * Native change event\n *\n * @event change\n * @type {String | Number}\n */\n 'change',\n ],\n\n data () {\n return {\n LABEL_SIZE_MODIFIERS,\n DESCRIPTION_SIZE_MODIFIERS,\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n };\n },\n\n computed: {\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n watch: {\n // whenever question changes, this function will run\n options () {\n this.$nextTick(() => {\n this.emitValue(this.$refs.selectElement.value, null);\n });\n },\n },\n\n mounted () {\n this.emitValue(this.$refs.selectElement.value, null);\n this.validateOptionsPresence();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n this.$emit('input', value, event);\n this.$emit('change', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtValidationMessages","MessagesMixin","options","optionsValidator","s","SELECT_SIZE_MODIFIERS","LABEL_SIZE_MODIFIERS","DESCRIPTION_SIZE_MODIFIERS","SELECT_STATE_MODIFIERS","hasSlotContent","event","getValidationState","getUniqueString","removeClassStyleAttrs","addClassStyleAttrs","value","_a","warn","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","$options","_ctx","_createElementVNode","$data","$props","_mergeProps","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_normalizeClass","_toHandlers","_Fragment","_renderList","option","_createVNode","_component_dt_validation_messages"],"mappings":"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"}
1
+ {"version":3,"file":"select-menu.cjs","sources":["../../../components/select_menu/select_menu.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label>\n <div\n v-if=\"hasSlotContent($slots.label) || label\"\n :aria-details=\"labelAriaDetails\"\n :class=\"[\n 'd-label',\n LABEL_SIZE_MODIFIERS[size],\n labelClass,\n ]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </div>\n <div\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n :class=\"[\n 'd-description',\n DESCRIPTION_SIZE_MODIFIERS[size],\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[size],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport {\n LABEL_SIZE_MODIFIERS,\n DESCRIPTION_SIZE_MODIFIERS,\n} from '@/common/constants';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './select_menu_constants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n addClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './select_menu_validators.js';\nimport { DtValidationMessages } from '../validation_messages';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Description for the select\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ index: number (optional), value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number} options[].index - Optional - The index of the option\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (s) => Object.keys(SELECT_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String | Number}\n */\n 'input',\n\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event input\n * @type {String | Number}\n */\n 'update:modelValue',\n\n /**\n * Native change event\n *\n * @event change\n * @type {String | Number}\n */\n 'change',\n ],\n\n data () {\n return {\n LABEL_SIZE_MODIFIERS,\n DESCRIPTION_SIZE_MODIFIERS,\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n };\n },\n\n computed: {\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n this.$emit('input', value, event);\n this.$emit('change', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtValidationMessages","MessagesMixin","options","optionsValidator","s","SELECT_SIZE_MODIFIERS","LABEL_SIZE_MODIFIERS","DESCRIPTION_SIZE_MODIFIERS","SELECT_STATE_MODIFIERS","hasSlotContent","event","getValidationState","getUniqueString","removeClassStyleAttrs","addClassStyleAttrs","value","_a","warn","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","$options","_ctx","_createElementVNode","$data","$props","_mergeProps","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_normalizeClass","_toHandlers","_Fragment","_renderList","option","_createVNode","_component_dt_validation_messages"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { warn as f, resolveComponent as g, openBlock as l, createElementBlock as i, normalizeProps as y, guardReactiveProps as E, createElementVNode as n, mergeProps as r, renderSlot as c, createTextVNode as u, toDisplayString as m, createCommentVNode as p, normalizeClass as C, toHandlers as b, Fragment as _, renderList as I, createVNode as O } from "vue";
1
+ import { warn as f, resolveComponent as g, openBlock as l, createElementBlock as i, normalizeProps as y, guardReactiveProps as C, createElementVNode as n, mergeProps as r, renderSlot as c, createTextVNode as u, toDisplayString as m, createCommentVNode as p, normalizeClass as E, toHandlers as b, Fragment as _, renderList as I, createVNode as O } from "vue";
2
2
  import { LABEL_SIZE_MODIFIERS as v, DESCRIPTION_SIZE_MODIFIERS as A } from "../../common/constants/index.js";
3
- import { SELECT_SIZE_MODIFIERS as h, SELECT_STATE_MODIFIERS as D } from "./select-menu-constants.js";
4
- import { hasSlotContent as M, getValidationState as P, getUniqueString as V, removeClassStyleAttrs as T, addClassStyleAttrs as L } from "../../common/utils/index.js";
5
- import { MessagesMixin as R } from "../../common/mixins/input.js";
3
+ import { SELECT_SIZE_MODIFIERS as S, SELECT_STATE_MODIFIERS as D } from "./select-menu-constants.js";
4
+ import { hasSlotContent as M, getValidationState as P, getUniqueString as L, removeClassStyleAttrs as R, addClassStyleAttrs as T } from "../../common/utils/index.js";
5
+ import { MessagesMixin as V } from "../../common/mixins/input.js";
6
6
  import { optionsValidator as F } from "./select-menu-validators.js";
7
7
  import { _ as j } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
8
8
  import K from "../validation-messages/validation-messages.js";
@@ -10,7 +10,7 @@ const k = {
10
10
  compatConfig: { MODE: 3 },
11
11
  name: "DtSelectMenu",
12
12
  components: { DtValidationMessages: K },
13
- mixins: [R],
13
+ mixins: [V],
14
14
  inheritAttrs: !1,
15
15
  props: {
16
16
  /**
@@ -47,7 +47,7 @@ const k = {
47
47
  size: {
48
48
  type: String,
49
49
  default: "md",
50
- validator: (e) => Object.keys(h).includes(e)
50
+ validator: (e) => Object.keys(S).includes(e)
51
51
  },
52
52
  /**
53
53
  * Used to customize the label container
@@ -134,7 +134,7 @@ const k = {
134
134
  return {
135
135
  LABEL_SIZE_MODIFIERS: v,
136
136
  DESCRIPTION_SIZE_MODIFIERS: A,
137
- SELECT_SIZE_MODIFIERS: h,
137
+ SELECT_SIZE_MODIFIERS: S,
138
138
  SELECT_STATE_MODIFIERS: D,
139
139
  hasSlotContent: M
140
140
  };
@@ -156,7 +156,7 @@ const k = {
156
156
  return P(this.formattedMessages);
157
157
  },
158
158
  selectKey() {
159
- return V();
159
+ return L();
160
160
  },
161
161
  descriptionKey() {
162
162
  return `select-${this.selectKey}-description`;
@@ -165,23 +165,15 @@ const k = {
165
165
  return this.$slots.description || this.description ? this.descriptionKey : this.$attrs["aria-details"];
166
166
  }
167
167
  },
168
- watch: {
169
- // whenever question changes, this function will run
170
- options() {
171
- this.$nextTick(() => {
172
- this.emitValue(this.$refs.selectElement.value, null);
173
- });
174
- }
175
- },
176
168
  mounted() {
177
- this.emitValue(this.$refs.selectElement.value, null), this.validateOptionsPresence();
169
+ this.validateOptionsPresence();
178
170
  },
179
171
  beforeUpdate() {
180
172
  this.validateOptionsPresence();
181
173
  },
182
174
  methods: {
183
- removeClassStyleAttrs: T,
184
- addClassStyleAttrs: L,
175
+ removeClassStyleAttrs: R,
176
+ addClassStyleAttrs: T,
185
177
  emitValue(e, d) {
186
178
  this.$emit("update:modelValue", e, d), this.$emit("input", e, d), this.$emit("change", e, d);
187
179
  },
@@ -193,10 +185,10 @@ const k = {
193
185
  ((e = this.options) == null ? void 0 : e.length) < 1 && !this.$slots.default && f("Options are expected to be provided via prop or slot", this);
194
186
  }
195
187
  }
196
- }, q = ["aria-details"], w = ["id"], z = ["disabled"], N = ["value"];
197
- function Z(e, d, t, B, a, s) {
198
- const S = g("dt-validation-messages");
199
- return l(), i("div", y(E(s.addClassStyleAttrs(e.$attrs))), [
188
+ }, q = ["aria-details"], z = ["id"], N = ["disabled"], Z = ["value"];
189
+ function w(e, d, t, B, a, s) {
190
+ const h = g("dt-validation-messages");
191
+ return l(), i("div", y(C(s.addClassStyleAttrs(e.$attrs))), [
200
192
  n("label", null, [
201
193
  a.hasSlotContent(e.$slots.label) || t.label ? (l(), i("div", r({
202
194
  key: 0,
@@ -223,9 +215,9 @@ function Z(e, d, t, B, a, s) {
223
215
  c(e.$slots, "description", {}, () => [
224
216
  u(m(t.description), 1)
225
217
  ])
226
- ], 16, w)) : p("", !0),
218
+ ], 16, z)) : p("", !0),
227
219
  n("div", {
228
- class: C([
220
+ class: E([
229
221
  "d-select",
230
222
  a.SELECT_SIZE_MODIFIERS[t.size],
231
223
  t.selectClass,
@@ -248,19 +240,19 @@ function Z(e, d, t, B, a, s) {
248
240
  key: s.getOptionKey(o.value),
249
241
  value: o.value,
250
242
  class: t.optionClass
251
- }, t.optionChildProps), m(o.label), 17, N))), 128))
243
+ }, t.optionChildProps), m(o.label), 17, Z))), 128))
252
244
  ])
253
- ], 16, z)
245
+ ], 16, N)
254
246
  ], 2)
255
247
  ]),
256
- O(S, r({
248
+ O(h, r({
257
249
  "validation-messages": e.formattedMessages,
258
250
  "show-messages": e.showMessages,
259
251
  class: e.messagesClass
260
252
  }, e.messagesChildProps, { "data-qa": "dt-select-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
261
253
  ], 16);
262
254
  }
263
- const x = /* @__PURE__ */ j(k, [["render", Z]]);
255
+ const x = /* @__PURE__ */ j(k, [["render", w]]);
264
256
  export {
265
257
  x as default
266
258
  };
@@ -1 +1 @@
1
- {"version":3,"file":"select-menu.js","sources":["../../../components/select_menu/select_menu.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label>\n <div\n v-if=\"hasSlotContent($slots.label) || label\"\n :aria-details=\"labelAriaDetails\"\n :class=\"[\n 'd-label',\n LABEL_SIZE_MODIFIERS[size],\n labelClass,\n ]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </div>\n <div\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n :class=\"[\n 'd-description',\n DESCRIPTION_SIZE_MODIFIERS[size],\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[size],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport {\n LABEL_SIZE_MODIFIERS,\n DESCRIPTION_SIZE_MODIFIERS,\n} from '@/common/constants';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './select_menu_constants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n addClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './select_menu_validators.js';\nimport { DtValidationMessages } from '../validation_messages';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Description for the select\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ index: number (optional), value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number} options[].index - Optional - The index of the option\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (s) => Object.keys(SELECT_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String | Number}\n */\n 'input',\n\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event input\n * @type {String | Number}\n */\n 'update:modelValue',\n\n /**\n * Native change event\n *\n * @event change\n * @type {String | Number}\n */\n 'change',\n ],\n\n data () {\n return {\n LABEL_SIZE_MODIFIERS,\n DESCRIPTION_SIZE_MODIFIERS,\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n };\n },\n\n computed: {\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n watch: {\n // whenever question changes, this function will run\n options () {\n this.$nextTick(() => {\n this.emitValue(this.$refs.selectElement.value, null);\n });\n },\n },\n\n mounted () {\n this.emitValue(this.$refs.selectElement.value, null);\n this.validateOptionsPresence();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n this.$emit('input', value, event);\n this.$emit('change', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtValidationMessages","MessagesMixin","options","optionsValidator","s","SELECT_SIZE_MODIFIERS","LABEL_SIZE_MODIFIERS","DESCRIPTION_SIZE_MODIFIERS","SELECT_STATE_MODIFIERS","hasSlotContent","event","getValidationState","getUniqueString","removeClassStyleAttrs","addClassStyleAttrs","value","_a","warn","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","$options","_ctx","_createElementVNode","$data","$props","_mergeProps","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_normalizeClass","_toHandlers","_Fragment","_renderList","option","_createVNode","_component_dt_validation_messages"],"mappings":"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"}
1
+ {"version":3,"file":"select-menu.js","sources":["../../../components/select_menu/select_menu.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label>\n <div\n v-if=\"hasSlotContent($slots.label) || label\"\n :aria-details=\"labelAriaDetails\"\n :class=\"[\n 'd-label',\n LABEL_SIZE_MODIFIERS[size],\n labelClass,\n ]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </div>\n <div\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n :class=\"[\n 'd-description',\n DESCRIPTION_SIZE_MODIFIERS[size],\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[size],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport {\n LABEL_SIZE_MODIFIERS,\n DESCRIPTION_SIZE_MODIFIERS,\n} from '@/common/constants';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './select_menu_constants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n addClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './select_menu_validators.js';\nimport { DtValidationMessages } from '../validation_messages';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Description for the select\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ index: number (optional), value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number} options[].index - Optional - The index of the option\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (s) => Object.keys(SELECT_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String | Number}\n */\n 'input',\n\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event input\n * @type {String | Number}\n */\n 'update:modelValue',\n\n /**\n * Native change event\n *\n * @event change\n * @type {String | Number}\n */\n 'change',\n ],\n\n data () {\n return {\n LABEL_SIZE_MODIFIERS,\n DESCRIPTION_SIZE_MODIFIERS,\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n };\n },\n\n computed: {\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n this.$emit('input', value, event);\n this.$emit('change', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtValidationMessages","MessagesMixin","options","optionsValidator","s","SELECT_SIZE_MODIFIERS","LABEL_SIZE_MODIFIERS","DESCRIPTION_SIZE_MODIFIERS","SELECT_STATE_MODIFIERS","hasSlotContent","event","getValidationState","getUniqueString","removeClassStyleAttrs","addClassStyleAttrs","value","_a","warn","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","$options","_ctx","_createElementVNode","$data","$props","_mergeProps","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_normalizeClass","_toHandlers","_Fragment","_renderList","option","_createVNode","_component_dt_validation_messages"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"select_menu.vue.d.ts","sourceRoot":"","sources":["../../../../components/select_menu/select_menu.vue"],"names":[],"mappings":"AA6EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA6VO,gBAAgB;sCAAhB,gBAAgB;mCAAhB,gBAAgB"}
1
+ {"version":3,"file":"select_menu.vue.d.ts","sourceRoot":"","sources":["../../../../components/select_menu/select_menu.vue"],"names":[],"mappings":"AA6EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAmVO,gBAAgB;sCAAhB,gBAAgB;mCAAhB,gBAAgB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dialpad/dialtone",
3
- "version": "9.113.0",
3
+ "version": "9.113.1",
4
4
  "description": "Dialpad's Dialtone design system monorepo",
5
5
  "files": [
6
6
  "dist"
@@ -78,8 +78,8 @@
78
78
  "overlayscrollbars": "2.10.0",
79
79
  "regex-combined-emojis": "1.6.0",
80
80
  "tippy.js": "6.3.7",
81
- "@dialpad/dialtone-icons": "4.35.0",
82
81
  "@dialpad/dialtone-emojis": "1.1.2",
82
+ "@dialpad/dialtone-icons": "4.35.0",
83
83
  "@dialpad/dialtone-tokens": "1.42.0"
84
84
  },
85
85
  "devDependencies": {