@dialpad/dialtone-vue 3.177.0 → 3.178.0
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.
- package/dist/common/mixins/input.cjs +1 -1
- package/dist/common/mixins/input.cjs.map +1 -1
- package/dist/common/mixins/input.js +12 -16
- package/dist/common/mixins/input.js.map +1 -1
- package/dist/component-documentation.json +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +5 -4
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
- package/dist/lib/checkbox/checkbox.cjs +1 -1
- package/dist/lib/checkbox/checkbox.cjs.map +1 -1
- package/dist/lib/checkbox/checkbox.js +33 -32
- package/dist/lib/checkbox/checkbox.js.map +1 -1
- package/dist/lib/checkbox-group/checkbox-group.cjs +1 -1
- package/dist/lib/checkbox-group/checkbox-group.cjs.map +1 -1
- package/dist/lib/checkbox-group/checkbox-group.js +15 -11
- package/dist/lib/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/lib/editor/editor.cjs +1 -1
- package/dist/lib/editor/editor.cjs.map +1 -1
- package/dist/lib/editor/editor.js +22 -16
- package/dist/lib/editor/editor.js.map +1 -1
- package/dist/lib/radio/radio.cjs +1 -1
- package/dist/lib/radio/radio.cjs.map +1 -1
- package/dist/lib/radio/radio.js +34 -33
- package/dist/lib/radio/radio.js.map +1 -1
- package/dist/lib/radio-group/radio-group.cjs +1 -1
- package/dist/lib/radio-group/radio-group.cjs.map +1 -1
- package/dist/lib/radio-group/radio-group.js +12 -5
- package/dist/lib/radio-group/radio-group.js.map +1 -1
- package/dist/lib/root-layout/root-layout.cjs +1 -1
- package/dist/lib/root-layout/root-layout.cjs.map +1 -1
- package/dist/lib/root-layout/root-layout.js +21 -18
- package/dist/lib/root-layout/root-layout.js.map +1 -1
- package/dist/lib/select-menu/select-menu.cjs +1 -1
- package/dist/lib/select-menu/select-menu.cjs.map +1 -1
- package/dist/lib/select-menu/select-menu.js +20 -13
- package/dist/lib/select-menu/select-menu.js.map +1 -1
- package/dist/lib/toggle/toggle.cjs +1 -1
- package/dist/lib/toggle/toggle.cjs.map +1 -1
- package/dist/lib/toggle/toggle.js +33 -29
- package/dist/lib/toggle/toggle.js.map +1 -1
- package/dist/types/common/mixins/input.d.ts +2 -5
- package/dist/types/common/mixins/input.d.ts.map +1 -1
- package/dist/types/components/checkbox/checkbox.vue.d.ts +4 -8
- package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
- package/dist/types/components/checkbox_group/checkbox_group.vue.d.ts +5 -4
- package/dist/types/components/input/input.vue.d.ts +2 -2
- package/dist/types/components/radio/radio.vue.d.ts +4 -8
- package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
- package/dist/types/components/radio_group/radio_group.vue.d.ts +5 -4
- package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +2 -2
- package/dist/types/components/root_layout/root_layout.vue.d.ts +1 -0
- package/dist/types/components/select_menu/select_menu.vue.d.ts +2 -1
- package/dist/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
- package/dist/types/components/toggle/toggle.vue.d.ts +5 -4
- package/dist/types/components/toggle/toggle.vue.d.ts.map +1 -1
- package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +5 -4
- package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts +1 -1
- package/package.json +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ROOT_LAYOUT_SIDEBAR_POSITIONS as d, ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS as
|
|
2
|
-
import { openBlock as i, createElementBlock as n, normalizeClass as
|
|
1
|
+
import { ROOT_LAYOUT_SIDEBAR_POSITIONS as d, ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS as l } from "./root-layout-constants.js";
|
|
2
|
+
import { openBlock as i, createElementBlock as n, normalizeClass as o, createElementVNode as a, renderSlot as r } from "vue";
|
|
3
3
|
import { _ as u } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
4
4
|
const y = {
|
|
5
5
|
compatConfig: { MODE: 3 },
|
|
@@ -95,60 +95,63 @@ const y = {
|
|
|
95
95
|
responsiveBreakpoint: {
|
|
96
96
|
type: String,
|
|
97
97
|
default: null,
|
|
98
|
-
validator: (t) =>
|
|
98
|
+
validator: (t) => l.includes(t)
|
|
99
99
|
}
|
|
100
100
|
},
|
|
101
101
|
computed: {
|
|
102
102
|
isInverted() {
|
|
103
103
|
return this.sidebarPosition === d.RIGHT;
|
|
104
|
+
},
|
|
105
|
+
responsiveBreakpointClass() {
|
|
106
|
+
return this.responsiveBreakpoint ? `d-root-layout__responsive--${this.responsiveBreakpoint}` : "d-root-layout__responsive--default";
|
|
104
107
|
}
|
|
105
108
|
}
|
|
106
109
|
};
|
|
107
|
-
function f(t, c, e,
|
|
110
|
+
function f(t, c, e, p, _, s) {
|
|
108
111
|
return i(), n("div", {
|
|
109
|
-
class:
|
|
112
|
+
class: o([
|
|
110
113
|
"root-layout",
|
|
111
114
|
"d-root-layout",
|
|
112
115
|
{
|
|
113
116
|
"d-root-layout--fixed": e.fixed,
|
|
114
|
-
"d-root-layout--inverted":
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
"d-root-layout--inverted": s.isInverted
|
|
118
|
+
},
|
|
119
|
+
s.responsiveBreakpointClass
|
|
117
120
|
]),
|
|
118
121
|
"data-qa": "dt-root-layout"
|
|
119
122
|
}, [
|
|
120
|
-
|
|
121
|
-
class:
|
|
123
|
+
a("header", {
|
|
124
|
+
class: o(["d-root-layout__header", { "d-root-layout__header--sticky": e.headerSticky }, e.headerClass]),
|
|
122
125
|
"data-qa": "dt-root-layout-header"
|
|
123
126
|
}, [
|
|
124
127
|
r(t.$slots, "header")
|
|
125
128
|
], 2),
|
|
126
|
-
|
|
129
|
+
a("aside", {
|
|
127
130
|
ref: "root-layout-sidebar",
|
|
128
131
|
tabindex: "0",
|
|
129
|
-
class:
|
|
132
|
+
class: o(["d-root-layout__sidebar", e.sidebarClass]),
|
|
130
133
|
"data-qa": "dt-root-layout-sidebar"
|
|
131
134
|
}, [
|
|
132
135
|
r(t.$slots, "sidebar")
|
|
133
136
|
], 2),
|
|
134
|
-
|
|
137
|
+
a("main", {
|
|
135
138
|
ref: "root-layout-content",
|
|
136
|
-
class:
|
|
139
|
+
class: o(["d-root-layout__content", e.contentClass]),
|
|
137
140
|
"data-qa": "dt-root-layout-content",
|
|
138
141
|
tabindex: "0"
|
|
139
142
|
}, [
|
|
140
143
|
r(t.$slots, "default")
|
|
141
144
|
], 2),
|
|
142
|
-
|
|
143
|
-
class:
|
|
145
|
+
a("footer", {
|
|
146
|
+
class: o(["d-root-layout__footer", e.footerClass]),
|
|
144
147
|
"data-qa": "dt-root-layout-footer"
|
|
145
148
|
}, [
|
|
146
149
|
r(t.$slots, "footer")
|
|
147
150
|
], 2)
|
|
148
151
|
], 2);
|
|
149
152
|
}
|
|
150
|
-
const
|
|
153
|
+
const O = /* @__PURE__ */ u(y, [["render", f]]);
|
|
151
154
|
export {
|
|
152
|
-
|
|
155
|
+
O as default
|
|
153
156
|
};
|
|
154
157
|
//# sourceMappingURL=root-layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-layout.js","sources":["../../../components/root_layout/root_layout.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'root-layout',\n 'd-root-layout',\n {\n 'd-root-layout--fixed': fixed,\n 'd-root-layout--inverted': isInverted,\n
|
|
1
|
+
{"version":3,"file":"root-layout.js","sources":["../../../components/root_layout/root_layout.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'root-layout',\n 'd-root-layout',\n {\n 'd-root-layout--fixed': fixed,\n 'd-root-layout--inverted': isInverted,\n },\n responsiveBreakpointClass,\n ]\"\n data-qa=\"dt-root-layout\"\n >\n <header\n :class=\"['d-root-layout__header', { 'd-root-layout__header--sticky': headerSticky }, headerClass]\"\n data-qa=\"dt-root-layout-header\"\n >\n <!-- @slot Slot for header content, be sure to set a height on the element inside this\n if you want a fixed height. -->\n <slot name=\"header\" />\n </header>\n <aside\n ref=\"root-layout-sidebar\"\n tabindex=\"0\"\n :class=\"['d-root-layout__sidebar', sidebarClass]\"\n data-qa=\"dt-root-layout-sidebar\"\n >\n <!-- @slot Slot for sidebar content, be sure to set a width on the element within this. -->\n <slot name=\"sidebar\" />\n </aside>\n <main\n ref=\"root-layout-content\"\n :class=\"['d-root-layout__content', contentClass]\"\n data-qa=\"dt-root-layout-content\"\n tabindex=\"0\"\n >\n <!-- @slot Slot for the main content -->\n <slot />\n </main>\n <footer\n :class=\"['d-root-layout__footer', footerClass]\"\n data-qa=\"dt-root-layout-footer\"\n >\n <!-- @slot Slot for footer content, be sure to set a height on the element inside this\n if you want a fixed height. -->\n <slot name=\"footer\" />\n </footer>\n </div>\n</template>\n\n<script>\nimport { ROOT_LAYOUT_SIDEBAR_POSITIONS, ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS } from './root_layout_constants';\n\n/**\n * A root layout provides a standardized group of containers to display content at the root level.\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRootLayout',\n\n props: {\n /**\n * When true, the header, footer and sidebar will be locked in position and the content will\n * be scrollable. When false the header, footer and sidebar will scroll out of view.\n * @values true, false\n */\n fixed: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Additional class name for the header element\n */\n headerClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * DEPRECATED: set the height of the inner element instead.\n */\n headerHeight: {\n type: String,\n default: '64px',\n },\n\n /**\n * Scroll the header with the page\n * @values true, false\n */\n headerSticky: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Additional class name for the body\n */\n bodyClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the content element\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the sidebar element\n */\n sidebarClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * DEPRECATED: set the width of the inner element instead.\n */\n sidebarWidth: {\n type: String,\n default: '256px',\n },\n\n /**\n * Whether the sidebar is on the left or right side\n * Possible options: 'left', 'right'\n * @values left, right\n */\n sidebarPosition: {\n type: String,\n default: 'left',\n validator: (s) => Object.values(ROOT_LAYOUT_SIDEBAR_POSITIONS).includes(s),\n },\n\n /**\n * Additional class name for the footer element\n */\n footerClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * DEPRECATED: set the height of the inner element instead.\n */\n footerHeight: {\n type: String,\n default: '64px',\n },\n\n /**\n * Defines the breakpoint when the root layout will change to responsive version\n * @values 'sm', 'md', 'lg', null\n */\n responsiveBreakpoint: {\n type: String,\n default: null,\n validator: (bp) => ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS.includes(bp),\n },\n },\n\n computed: {\n isInverted () {\n return this.sidebarPosition === ROOT_LAYOUT_SIDEBAR_POSITIONS.RIGHT;\n },\n\n responsiveBreakpointClass () {\n return this.responsiveBreakpoint\n ? `d-root-layout__responsive--${this.responsiveBreakpoint}`\n : 'd-root-layout__responsive--default';\n },\n },\n};\n</script>\n"],"names":["_sfc_main","s","ROOT_LAYOUT_SIDEBAR_POSITIONS","bp","ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS","_createElementBlock","_normalizeClass","$props","$options","_createElementVNode","_renderSlot","_ctx"],"mappings":";;;AAwDA,MAAKA,IAAU;AAAA,EACb,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,MAAM;AAAA,EAEN,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACC,MAAM,OAAO,OAAOC,CAA6B,EAAE,SAASD,CAAC;AAAA,IAC1E;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACE,MAAOC,EAAmC,SAASD,CAAE;AAAA,IAClE;AAAA,EACF;AAAA,EAED,UAAU;AAAA,IACR,aAAc;AACZ,aAAO,KAAK,oBAAoBD,EAA8B;AAAA,IAC/D;AAAA,IAED,4BAA6B;AAC3B,aAAO,KAAK,uBACR,8BAA8B,KAAK,oBAAoB,KACvD;AAAA,IACL;AAAA,EACF;AACH;;cAhLEG,EA8CM,OAAA;AAAA,IA7CH,OAFLC,EAAA;AAAA;;;gCAEkGC,EAAK;AAAA,mCAAqCC,EAAU;AAAA;MAAiBA,EAAyB;AAAA;IAS5L,WAAQ;AAAA;IAERC,EAOS,UAAA;AAAA,MANN,OAdPH,EAAA,CAAA,yBAAA,EAAA,iCAc2EC,EAAY,aAAA,GAAIA,EAAW,WAAA,CAAA;AAAA,MAChG,WAAQ;AAAA;MAIRG,EAAsBC,EAAA,QAAA,QAAA;AAAA;IAExBF,EAQQ,SAAA;AAAA,MAPN,KAAI;AAAA,MACJ,UAAS;AAAA,MACR,OAxBPH,6BAwByCC,EAAY,YAAA,CAAA;AAAA,MAC/C,WAAQ;AAAA;MAGRG,EAAuBC,EAAA,QAAA,SAAA;AAAA;IAEzBF,EAQO,QAAA;AAAA,MAPL,KAAI;AAAA,MACH,OAhCPH,6BAgCyCC,EAAY,YAAA,CAAA;AAAA,MAC/C,WAAQ;AAAA,MACR,UAAS;AAAA;MAGTG,EAAQC,EAAA,QAAA,SAAA;AAAA;IAEVF,EAOS,UAAA;AAAA,MANN,OAxCPH,4BAwCwCC,EAAW,WAAA,CAAA;AAAA,MAC7C,WAAQ;AAAA;MAIRG,EAAsBC,EAAA,QAAA,QAAA;AAAA;;;;"}
|
|
@@ -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"),
|
|
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;
|
|
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 * 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('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 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":"+cA0GKA,EAAU,CACb,aAAc,CAAE,KAAM,CAAG,EACzB,KAAM,eAEN,WAAY,CAAEC,qBAAAA,EAAAA,OAAsB,EAEpC,OAAQ,CAACC,EAAAA,aAAa,EAEtB,aAAc,GAEd,MAAO,CAIL,MAAO,CACL,KAAM,OACN,QAAS,EACV,EAKD,YAAa,CACX,KAAM,OACN,QAAS,EACV,EAUD,QAAS,CACP,KAAM,MACN,QAAS,IAAM,CAAE,EACjB,UAAWC,GAAWC,EAAgB,iBAACD,CAAO,CAC/C,EAMD,KAAM,CACJ,KAAM,OACN,QAAS,KACT,UAAYE,GAAM,OAAO,KAAKC,uBAAqB,EAAE,SAASD,CAAC,CAChE,EAKD,WAAY,CACV,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,iBAAkB,CAChB,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,YAAa,CACX,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,YAAa,CACX,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,gBAAiB,CACf,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EAKD,sBAAuB,CACrB,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EAKD,iBAAkB,CAChB,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EAMD,SAAU,CACR,KAAM,QACN,QAAS,EACV,CACF,EAED,MAAO,CAOL,QAQA,oBAQA,QACD,EAED,MAAQ,CACN,MAAO,CACL,qBAAAE,EAAoB,gDACpBC,EAA0B,2BAC1B,sBAAAF,EAAqB,6CACrBG,EAAsB,uBACtB,eAAAC,EAAc,eAEjB,EAED,SAAU,CACR,iBAAmB,CACjB,MAAO,CAML,MAAO,IAAM,CAAE,EACf,OAAQC,GAAS,KAAK,UAAUA,EAAM,OAAO,MAAOA,CAAK,EAE5D,EAED,OAAS,CACP,OAAOC,EAAkB,mBAAC,KAAK,iBAAiB,CACjD,EAED,WAAa,CACX,OAAOC,EAAe,gBAAA,CACvB,EAED,gBAAkB,CAChB,MAAO,UAAU,KAAK,SAAS,cAChC,EAED,kBAAoB,CAClB,OAAI,KAAK,OAAO,aAAe,KAAK,YAC3B,KAAK,eAGP,KAAK,OAAO,cAAc,CAClC,CACF,EAED,MAAO,CAEL,SAAW,CACT,KAAK,UAAU,IAAM,CACnB,KAAK,UAAU,KAAK,MAAM,cAAc,MAAO,IAAI,CACrD,CAAC,CACF,CACF,EAED,SAAW,CACT,KAAK,UAAU,KAAK,MAAM,cAAc,MAAO,IAAI,EACnD,KAAK,wBAAuB,CAC7B,EAED,cAAgB,CACd,KAAK,wBAAuB,CAC7B,EAED,QAAS,CACP,sBAAAC,EAAqB,sBACrB,mBAAAC,EAAkB,mBAClB,UAAWC,EAAOL,EAAO,CACvB,KAAK,MAAM,oBAAqBK,EAAOL,CAAK,EAC5C,KAAK,MAAM,QAASK,EAAOL,CAAK,EAChC,KAAK,MAAM,SAAUK,EAAOL,CAAK,CAClC,EAED,aAAcK,EAAO,CACnB,MAAO,UAAU,KAAK,SAAS,WAAWA,CAAK,EAChD,EAED,yBAA2B,SACrBC,EAAA,KAAK,UAAL,YAAAA,EAAc,QAAS,GAAK,CAAC,KAAK,OAAO,SAC3CC,OAAK,uDAAwD,IAAI,CAEpE,CACF,CACH,EA1UAC,EAAA,CAAA,cAAA,EAAAC,EAAA,CAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAAC,EAAA,CAAA,OAAA,+EACE,OAAAC,YAAA,EAAAC,qBA0EM,MA3ERC,EAAAA,eAAAC,EAAAA,mBAEYC,EAAA,mBAAmBC,EAAM,MAAA,CAAA,CAAA,EAAA,CAEjCC,EA+DQ,mBAAA,QAAA,KAAA,CA7DEC,EAAA,eAAeF,EAAA,OAAO,KAAK,GAAKG,EAAK,OAD7CR,EAAAA,YAAAC,EAAAA,mBAaM,MAbNQ,aAaM,CAlBZ,IAAA,EAOS,eAAcL,EAAgB,iBAC9B,MAAK,WAAmCG,EAAA,qBAAqBC,EAAI,IAAA,EAAaA,EAAU,aAKjFA,EAAe,gBAAA,CACvB,UAAQ,iBAAiB,CAAA,EAAA,CAGzBE,EAAAA,WAAqCL,oBAArC,IAAqC,CAjB7CM,EAAAA,gBAAAC,EAAAA,gBAiB8BJ,EAAK,KAAA,EAAA,CAAA,GAjBnC,EAAA,GAAAZ,CAAA,GAAAiB,EAAA,mBAAA,GAAA,EAAA,EAoBcN,EAAA,eAAeF,EAAA,OAAO,WAAW,GAAKG,EAAW,aADzDR,EAAAA,YAAAC,EAAAA,mBAaM,MAbNQ,aAaM,CAhCZ,IAAA,EAqBS,GAAIL,EAAc,eAClB,MAAK,iBAAyCG,EAAA,2BAA2BC,EAAI,IAAA,EAAaA,EAAgB,mBAKnGA,EAAqB,sBAAA,CAC7B,UAAQ,uBAAuB,CAAA,EAAA,CAG/BE,EAAAA,WAAiDL,0BAAjD,IAAiD,CA/BzDM,EAAAA,gBAAAC,EAAAA,gBA+BoCJ,EAAW,WAAA,EAAA,CAAA,GA/B/C,EAAA,GAAAX,CAAA,GAAAgB,EAAA,mBAAA,GAAA,EAAA,EAiCMP,EAAAA,mBAiCM,MAAA,CAhCH,MAlCTQ,EAAAA,eAAA,YAkCkDP,EAAA,sBAAsBC,EAAI,IAAA,EAAaA,EAAW,kCAAoCA,EAAQ,QAAA,IAMxI,UAAQ,sBAERF,EAAA,mBAuBS,SAvBTG,aAuBS,CAtBP,IAAI,gBACH,MAAK,mBAA+CF,EAAA,uBAAuBH,EAAK,KAAA,EAIzE,EAAAA,EAAA,sBAAsBC,EAAM,MAAA,EAAA,CACpC,UAAQ,YACP,SAAUG,EAAQ,QACnB,EAAAO,EAAA,WAAsBX,EAAD,gBAAA,EAAA,CAAA,EAAA,CAGrBM,EAAAA,WAUOL,sBAVP,IAUO,EATLL,YAAA,EAAA,EAAAC,EAAAA,mBAQSe,EA/DrB,SAAA,KAAAC,EAAAA,WAwD+BT,EAAO,QAAjBU,IADTlB,YAAA,EAAAC,qBAQS,SARTQ,EAAAA,WAQS,CANN,IAAKL,EAAA,aAAac,EAAO,KAAK,EAC9B,MAAOA,EAAO,MACd,MAAOV,EAAW,WACX,EAAAA,EAAA,gBAAgB,EAErBI,EAAA,gBAAAM,EAAO,KAAK,EA9D7B,GAAAnB,CAAA,WAAA,EAAA,GAAAD,CAAA,QAoEIqB,EAAA,YAMEC,EANFX,aAME,CALC,sBAAqBJ,EAAiB,kBACtC,gBAAeA,EAAY,aAC3B,MAAOA,EAAa,eACbA,EAAkB,mBAAA,CAC1B,UAAQ,oBAAoB,CAAA,EAAA,KAAA,GAAA,CAAA,sBAAA,gBAAA,OAAA,CAAA"}
|
|
@@ -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
|
|
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";
|
|
2
2
|
import { LABEL_SIZE_MODIFIERS as v, DESCRIPTION_SIZE_MODIFIERS as A } from "../../common/constants/index.js";
|
|
3
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
|
|
5
|
-
import { MessagesMixin as
|
|
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";
|
|
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: [
|
|
13
|
+
mixins: [R],
|
|
14
14
|
inheritAttrs: !1,
|
|
15
15
|
props: {
|
|
16
16
|
/**
|
|
@@ -115,6 +115,13 @@ const k = {
|
|
|
115
115
|
* @type {String | Number}
|
|
116
116
|
*/
|
|
117
117
|
"input",
|
|
118
|
+
/**
|
|
119
|
+
* Event fired to sync the modelValue prop with the parent component
|
|
120
|
+
*
|
|
121
|
+
* @event input
|
|
122
|
+
* @type {String | Number}
|
|
123
|
+
*/
|
|
124
|
+
"update:modelValue",
|
|
118
125
|
/**
|
|
119
126
|
* Native change event
|
|
120
127
|
*
|
|
@@ -149,7 +156,7 @@ const k = {
|
|
|
149
156
|
return P(this.formattedMessages);
|
|
150
157
|
},
|
|
151
158
|
selectKey() {
|
|
152
|
-
return
|
|
159
|
+
return V();
|
|
153
160
|
},
|
|
154
161
|
descriptionKey() {
|
|
155
162
|
return `select-${this.selectKey}-description`;
|
|
@@ -173,10 +180,10 @@ const k = {
|
|
|
173
180
|
this.validateOptionsPresence();
|
|
174
181
|
},
|
|
175
182
|
methods: {
|
|
176
|
-
removeClassStyleAttrs:
|
|
177
|
-
addClassStyleAttrs:
|
|
178
|
-
emitValue(e,
|
|
179
|
-
this.$emit("input", e,
|
|
183
|
+
removeClassStyleAttrs: T,
|
|
184
|
+
addClassStyleAttrs: L,
|
|
185
|
+
emitValue(e, d) {
|
|
186
|
+
this.$emit("update:modelValue", e, d), this.$emit("input", e, d), this.$emit("change", e, d);
|
|
180
187
|
},
|
|
181
188
|
getOptionKey(e) {
|
|
182
189
|
return `select-${this.selectKey}-option-${e}`;
|
|
@@ -187,10 +194,10 @@ const k = {
|
|
|
187
194
|
}
|
|
188
195
|
}
|
|
189
196
|
}, q = ["aria-details"], w = ["id"], z = ["disabled"], N = ["value"];
|
|
190
|
-
function Z(e,
|
|
197
|
+
function Z(e, d, t, B, a, s) {
|
|
191
198
|
const S = g("dt-validation-messages");
|
|
192
199
|
return l(), i("div", y(E(s.addClassStyleAttrs(e.$attrs))), [
|
|
193
|
-
|
|
200
|
+
n("label", null, [
|
|
194
201
|
a.hasSlotContent(e.$slots.label) || t.label ? (l(), i("div", r({
|
|
195
202
|
key: 0,
|
|
196
203
|
"aria-details": s.labelAriaDetails,
|
|
@@ -217,7 +224,7 @@ function Z(e, n, t, B, a, s) {
|
|
|
217
224
|
u(m(t.description), 1)
|
|
218
225
|
])
|
|
219
226
|
], 16, w)) : p("", !0),
|
|
220
|
-
|
|
227
|
+
n("div", {
|
|
221
228
|
class: C([
|
|
222
229
|
"d-select",
|
|
223
230
|
a.SELECT_SIZE_MODIFIERS[t.size],
|
|
@@ -226,7 +233,7 @@ function Z(e, n, t, B, a, s) {
|
|
|
226
233
|
]),
|
|
227
234
|
"data-qa": "dt-select-wrapper"
|
|
228
235
|
}, [
|
|
229
|
-
|
|
236
|
+
n("select", r({
|
|
230
237
|
ref: "selectElement",
|
|
231
238
|
class: [
|
|
232
239
|
"d-select__input",
|
|
@@ -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 * 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('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 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,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("../../common/utils/index.cjs"),i=require("./toggle-constants.cjs"),d=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),o={compatConfig:{MODE:3},name:"DtToggle",inheritAttrs:!1,
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("../../common/utils/index.cjs"),i=require("./toggle-constants.cjs"),d=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),o={compatConfig:{MODE:3},name:"DtToggle",inheritAttrs:!1,props:{id:{type:String,default(){return s.getUniqueString()}},disabled:{type:Boolean,default:!1},modelValue:{type:[Boolean,String],default:!1,validator:t=>i.TOGGLE_CHECKED_VALUES.includes(t)},toggleOnClick:{type:Boolean,default:!0},size:{type:String,default:"md",validator:t=>Object.keys(i.TOGGLE_SIZE_MODIFIERS).includes(t)},showIcon:{type:Boolean,default:!0},labelClass:{type:[String,Array,Object],default:""},labelChildProps:{type:Object,default:()=>({})}},emits:["change","update:modelValue"],data(){return{internalChecked:this.modelValue,hasSlotContent:s.hasSlotContent}},computed:{inputListeners(){return{...s.removeClassStyleAttrs(this.$attrs),onClick:t=>this.toggleCheckedValue()}},isIndeterminate(){return this.internalChecked==="mixed"},toggleRole(){return this.isIndeterminate?"checkbox":"switch"},toggleClasses(){return["d-toggle",i.TOGGLE_SIZE_MODIFIERS[this.size],{"d-toggle--checked":this.internalChecked===!0,"d-toggle--disabled":this.disabled,"d-toggle--indeterminate":this.isIndeterminate}]}},watch:{modelValue(t){this.internalChecked=t}},mounted(){this.runValidations()},methods:{addClassStyleAttrs:s.addClassStyleAttrs,toggleCheckedValue(){this.$emit("change",!this.internalChecked),this.$emit("update:modelValue",!this.internalChecked),this.toggleOnClick&&(this.internalChecked=!this.internalChecked)},hasSlotLabel(){return!!this.$slots.default},runValidations(){this.validateInputLabels(this.hasSlotLabel(),this.$attrs["aria-label"])},validateInputLabels(t,n){!t&&!n&&e.warn("You must provide an aria-label when there is no label passed",this)}}},c=["for"],u=["id","role","aria-checked","disabled","aria-disabled"],h={key:0,class:"d-toggle__inner"};function g(t,n,l,C,r,a){return e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"d-toggle-wrapper"},a.addClassStyleAttrs(t.$attrs)),[r.hasSlotContent(t.$slots.default)?(e.openBlock(),e.createElementBlock("label",e.mergeProps({key:0,class:l.labelClass,for:l.id},l.labelChildProps,{"data-qa":"toggle-label"}),[e.renderSlot(t.$slots,"default")],16,c)):e.createCommentVNode("",!0),e.createElementVNode("button",e.mergeProps({id:l.id,role:a.toggleRole,type:"button","aria-checked":r.internalChecked.toString(),disabled:l.disabled,"aria-disabled":l.disabled.toString(),class:a.toggleClasses},a.inputListeners),[l.showIcon?(e.openBlock(),e.createElementBlock("span",h)):e.createCommentVNode("",!0)],16,u)],16)}const m=d._(o,[["render",g]]);exports.default=m;
|
|
2
2
|
//# sourceMappingURL=toggle.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.cjs","sources":["../../../components/toggle/toggle.vue"],"sourcesContent":["<template>\n <div\n class=\"d-toggle-wrapper\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label\n v-if=\"hasSlotContent($slots.default)\"\n :class=\"labelClass\"\n :for=\"id\"\n v-bind=\"labelChildProps\"\n data-qa=\"toggle-label\"\n >\n <!-- @slot Slot for the main content -->\n <slot />\n </label>\n <button\n :id=\"id\"\n :role=\"toggleRole\"\n type=\"button\"\n :aria-checked=\"internalChecked.toString()\"\n :disabled=\"disabled\"\n :aria-disabled=\"disabled.toString()\"\n :class=\"toggleClasses\"\n v-bind=\"inputListeners\"\n >\n <span\n v-if=\"showIcon\"\n class=\"d-toggle__inner\"\n />\n </button>\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { getUniqueString, hasSlotContent, removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\nimport { TOGGLE_CHECKED_VALUES, TOGGLE_SIZE_MODIFIERS } from '@/components/toggle/toggle_constants';\n\n/**\n * A toggle (or \"switch\") is a button control element that allows the user to make a binary (on/off) selection.\n * @see https://dialtone.dialpad.com/components/toggle.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n\n name: 'DtToggle',\n\n inheritAttrs: false,\n\n
|
|
1
|
+
{"version":3,"file":"toggle.cjs","sources":["../../../components/toggle/toggle.vue"],"sourcesContent":["<template>\n <div\n class=\"d-toggle-wrapper\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label\n v-if=\"hasSlotContent($slots.default)\"\n :class=\"labelClass\"\n :for=\"id\"\n v-bind=\"labelChildProps\"\n data-qa=\"toggle-label\"\n >\n <!-- @slot Slot for the main content -->\n <slot />\n </label>\n <button\n :id=\"id\"\n :role=\"toggleRole\"\n type=\"button\"\n :aria-checked=\"internalChecked.toString()\"\n :disabled=\"disabled\"\n :aria-disabled=\"disabled.toString()\"\n :class=\"toggleClasses\"\n v-bind=\"inputListeners\"\n >\n <span\n v-if=\"showIcon\"\n class=\"d-toggle__inner\"\n />\n </button>\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { getUniqueString, hasSlotContent, removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\nimport { TOGGLE_CHECKED_VALUES, TOGGLE_SIZE_MODIFIERS } from '@/components/toggle/toggle_constants';\n\n/**\n * A toggle (or \"switch\") is a button control element that allows the user to make a binary (on/off) selection.\n * @see https://dialtone.dialpad.com/components/toggle.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n\n name: 'DtToggle',\n\n inheritAttrs: false,\n\n props: {\n\n /**\n * The id of the toggle\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Disables the toggle interactions\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Value of the toggle\n * @model modelValue\n * @values true, false, 'mixed'\n */\n modelValue: {\n type: [Boolean, String],\n default: false,\n validator: (v) => TOGGLE_CHECKED_VALUES.includes(v),\n },\n\n /**\n * Whether the component toggles on click. If you set this to false it means you will handle the toggling manually\n * via the checked prop or v-model. Change events will still be triggered.\n * @values true, false\n */\n toggleOnClick: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The size of the toggle.\n * @values sm, md\n */\n size: {\n type: String,\n default: 'md',\n validator: (s) => Object.keys(TOGGLE_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Shows the icon\n * @values true, false\n */\n showIcon: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\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 emits: [\n /**\n * Toggle change event\n *\n * @event change\n * @type {Boolean}\n * @model change\n */\n 'change',\n\n /**\n * v-model event event\n *\n * @event change\n * @type {Boolean}\n * @model change\n */\n 'update:modelValue',\n ],\n\n data () {\n return {\n internalChecked: this.modelValue,\n hasSlotContent,\n };\n },\n\n computed: {\n inputListeners () {\n return {\n ...removeClassStyleAttrs(this.$attrs),\n onClick: _ => this.toggleCheckedValue(),\n };\n },\n\n isIndeterminate () {\n return this.internalChecked === 'mixed';\n },\n\n toggleRole () {\n return this.isIndeterminate ? 'checkbox' : 'switch';\n },\n\n toggleClasses () {\n return [\n 'd-toggle',\n TOGGLE_SIZE_MODIFIERS[this.size],\n {\n 'd-toggle--checked': this.internalChecked === true,\n 'd-toggle--disabled': this.disabled,\n 'd-toggle--indeterminate': this.isIndeterminate,\n },\n ];\n },\n },\n\n watch: {\n modelValue (newChecked) {\n this.internalChecked = newChecked;\n },\n },\n\n mounted () {\n this.runValidations();\n },\n\n methods: {\n addClassStyleAttrs,\n toggleCheckedValue () {\n this.$emit('change', !this.internalChecked);\n this.$emit('update:modelValue', !this.internalChecked);\n\n if (this.toggleOnClick) {\n this.internalChecked = !this.internalChecked;\n }\n },\n\n hasSlotLabel () {\n return !!(this.$slots.default);\n },\n\n runValidations () {\n this.validateInputLabels(this.hasSlotLabel(), this.$attrs['aria-label']);\n },\n\n validateInputLabels (hasLabel, ariaLabel) {\n if (!hasLabel && !ariaLabel) {\n warn(\n 'You must provide an aria-label when there is no label passed',\n this,\n );\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","getUniqueString","v","TOGGLE_CHECKED_VALUES","s","TOGGLE_SIZE_MODIFIERS","hasSlotContent","removeClassStyleAttrs","_","newChecked","addClassStyleAttrs","hasLabel","ariaLabel","warn","_hoisted_1","_hoisted_2","_createElementBlock","_mergeProps","$options","_ctx","$data","_openBlock","$props","_renderSlot","_createCommentVNode","_createElementVNode","_hoisted_3"],"mappings":"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"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import { warn as
|
|
2
|
-
import { getUniqueString as
|
|
3
|
-
import { TOGGLE_CHECKED_VALUES as
|
|
1
|
+
import { warn as h, openBlock as a, createElementBlock as s, mergeProps as i, renderSlot as c, createCommentVNode as r, createElementVNode as u } from "vue";
|
|
2
|
+
import { getUniqueString as g, hasSlotContent as m, removeClassStyleAttrs as C, addClassStyleAttrs as b } from "../../common/utils/index.js";
|
|
3
|
+
import { TOGGLE_CHECKED_VALUES as f, TOGGLE_SIZE_MODIFIERS as o } from "./toggle-constants.js";
|
|
4
4
|
import { _ as k } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
5
|
const p = {
|
|
6
6
|
compatConfig: { MODE: 3 },
|
|
7
7
|
name: "DtToggle",
|
|
8
8
|
inheritAttrs: !1,
|
|
9
|
-
model: {
|
|
10
|
-
prop: "checked",
|
|
11
|
-
event: "change"
|
|
12
|
-
},
|
|
13
9
|
props: {
|
|
14
10
|
/**
|
|
15
11
|
* The id of the toggle
|
|
@@ -17,7 +13,7 @@ const p = {
|
|
|
17
13
|
id: {
|
|
18
14
|
type: String,
|
|
19
15
|
default() {
|
|
20
|
-
return
|
|
16
|
+
return g();
|
|
21
17
|
}
|
|
22
18
|
},
|
|
23
19
|
/**
|
|
@@ -30,13 +26,13 @@ const p = {
|
|
|
30
26
|
},
|
|
31
27
|
/**
|
|
32
28
|
* Value of the toggle
|
|
33
|
-
* @model
|
|
29
|
+
* @model modelValue
|
|
34
30
|
* @values true, false, 'mixed'
|
|
35
31
|
*/
|
|
36
|
-
|
|
32
|
+
modelValue: {
|
|
37
33
|
type: [Boolean, String],
|
|
38
34
|
default: !1,
|
|
39
|
-
validator: (e) =>
|
|
35
|
+
validator: (e) => f.includes(e)
|
|
40
36
|
},
|
|
41
37
|
/**
|
|
42
38
|
* Whether the component toggles on click. If you set this to false it means you will handle the toggling manually
|
|
@@ -87,18 +83,26 @@ const p = {
|
|
|
87
83
|
* @type {Boolean}
|
|
88
84
|
* @model change
|
|
89
85
|
*/
|
|
90
|
-
"change"
|
|
86
|
+
"change",
|
|
87
|
+
/**
|
|
88
|
+
* v-model event event
|
|
89
|
+
*
|
|
90
|
+
* @event change
|
|
91
|
+
* @type {Boolean}
|
|
92
|
+
* @model change
|
|
93
|
+
*/
|
|
94
|
+
"update:modelValue"
|
|
91
95
|
],
|
|
92
96
|
data() {
|
|
93
97
|
return {
|
|
94
|
-
internalChecked: this.
|
|
98
|
+
internalChecked: this.modelValue,
|
|
95
99
|
hasSlotContent: m
|
|
96
100
|
};
|
|
97
101
|
},
|
|
98
102
|
computed: {
|
|
99
103
|
inputListeners() {
|
|
100
104
|
return {
|
|
101
|
-
...
|
|
105
|
+
...C(this.$attrs),
|
|
102
106
|
onClick: (e) => this.toggleCheckedValue()
|
|
103
107
|
};
|
|
104
108
|
},
|
|
@@ -121,7 +125,7 @@ const p = {
|
|
|
121
125
|
}
|
|
122
126
|
},
|
|
123
127
|
watch: {
|
|
124
|
-
|
|
128
|
+
modelValue(e) {
|
|
125
129
|
this.internalChecked = e;
|
|
126
130
|
}
|
|
127
131
|
},
|
|
@@ -129,9 +133,9 @@ const p = {
|
|
|
129
133
|
this.runValidations();
|
|
130
134
|
},
|
|
131
135
|
methods: {
|
|
132
|
-
addClassStyleAttrs:
|
|
136
|
+
addClassStyleAttrs: b,
|
|
133
137
|
toggleCheckedValue() {
|
|
134
|
-
this.$emit("change", !this.internalChecked), this.toggleOnClick && (this.internalChecked = !this.internalChecked);
|
|
138
|
+
this.$emit("change", !this.internalChecked), this.$emit("update:modelValue", !this.internalChecked), this.toggleOnClick && (this.internalChecked = !this.internalChecked);
|
|
135
139
|
},
|
|
136
140
|
hasSlotLabel() {
|
|
137
141
|
return !!this.$slots.default;
|
|
@@ -140,7 +144,7 @@ const p = {
|
|
|
140
144
|
this.validateInputLabels(this.hasSlotLabel(), this.$attrs["aria-label"]);
|
|
141
145
|
},
|
|
142
146
|
validateInputLabels(e, d) {
|
|
143
|
-
!e && !d &&
|
|
147
|
+
!e && !d && h(
|
|
144
148
|
"You must provide an aria-label when there is no label passed",
|
|
145
149
|
this
|
|
146
150
|
);
|
|
@@ -150,30 +154,30 @@ const p = {
|
|
|
150
154
|
key: 0,
|
|
151
155
|
class: "d-toggle__inner"
|
|
152
156
|
};
|
|
153
|
-
function
|
|
154
|
-
return
|
|
155
|
-
n.hasSlotContent(e.$slots.default) ? (
|
|
157
|
+
function V(e, d, t, E, n, l) {
|
|
158
|
+
return a(), s("div", i({ class: "d-toggle-wrapper" }, l.addClassStyleAttrs(e.$attrs)), [
|
|
159
|
+
n.hasSlotContent(e.$slots.default) ? (a(), s("label", i({
|
|
156
160
|
key: 0,
|
|
157
161
|
class: t.labelClass,
|
|
158
162
|
for: t.id
|
|
159
163
|
}, t.labelChildProps, { "data-qa": "toggle-label" }), [
|
|
160
|
-
|
|
164
|
+
c(e.$slots, "default")
|
|
161
165
|
], 16, _)) : r("", !0),
|
|
162
|
-
|
|
166
|
+
u("button", i({
|
|
163
167
|
id: t.id,
|
|
164
|
-
role:
|
|
168
|
+
role: l.toggleRole,
|
|
165
169
|
type: "button",
|
|
166
170
|
"aria-checked": n.internalChecked.toString(),
|
|
167
171
|
disabled: t.disabled,
|
|
168
172
|
"aria-disabled": t.disabled.toString(),
|
|
169
|
-
class:
|
|
170
|
-
},
|
|
171
|
-
t.showIcon ? (
|
|
173
|
+
class: l.toggleClasses
|
|
174
|
+
}, l.inputListeners), [
|
|
175
|
+
t.showIcon ? (a(), s("span", y)) : r("", !0)
|
|
172
176
|
], 16, S)
|
|
173
177
|
], 16);
|
|
174
178
|
}
|
|
175
|
-
const
|
|
179
|
+
const w = /* @__PURE__ */ k(p, [["render", V]]);
|
|
176
180
|
export {
|
|
177
|
-
|
|
181
|
+
w as default
|
|
178
182
|
};
|
|
179
183
|
//# sourceMappingURL=toggle.js.map
|