@dialpad/dialtone 9.109.0 → 9.110.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.
Files changed (93) hide show
  1. package/dist/css/dialtone-default-theme.css +110 -0
  2. package/dist/css/dialtone-default-theme.min.css +1 -1
  3. package/dist/css/dialtone.css +110 -0
  4. package/dist/css/dialtone.min.css +1 -1
  5. package/dist/tokens/doc.json +21857 -21857
  6. package/dist/vue2/component-documentation.json +1 -1
  7. package/dist/vue2/components/checkbox/checkbox.vue.cjs +9 -6
  8. package/dist/vue2/components/checkbox/checkbox.vue.cjs.map +1 -1
  9. package/dist/vue2/components/checkbox/checkbox.vue.js +9 -6
  10. package/dist/vue2/components/checkbox/checkbox.vue.js.map +1 -1
  11. package/dist/vue2/components/popover/popover.vue.cjs +1 -9
  12. package/dist/vue2/components/popover/popover.vue.cjs.map +1 -1
  13. package/dist/vue2/components/popover/popover.vue.js +1 -9
  14. package/dist/vue2/components/popover/popover.vue.js.map +1 -1
  15. package/dist/vue2/components/popover/popover_header_footer.vue.cjs +4 -10
  16. package/dist/vue2/components/popover/popover_header_footer.vue.cjs.map +1 -1
  17. package/dist/vue2/components/popover/popover_header_footer.vue.js +4 -10
  18. package/dist/vue2/components/popover/popover_header_footer.vue.js.map +1 -1
  19. package/dist/vue2/components/radio/radio.vue.cjs +13 -4
  20. package/dist/vue2/components/radio/radio.vue.cjs.map +1 -1
  21. package/dist/vue2/components/radio/radio.vue.js +13 -4
  22. package/dist/vue2/components/radio/radio.vue.js.map +1 -1
  23. package/dist/vue2/components/stack/stack.vue.cjs +1 -1
  24. package/dist/vue2/components/stack/stack.vue.cjs.map +1 -1
  25. package/dist/vue2/components/stack/stack.vue.js +1 -1
  26. package/dist/vue2/components/stack/stack.vue.js.map +1 -1
  27. package/dist/vue2/components/stack/stack_constants.cjs +1 -1
  28. package/dist/vue2/components/stack/stack_constants.cjs.map +1 -1
  29. package/dist/vue2/components/stack/stack_constants.js +1 -1
  30. package/dist/vue2/components/stack/stack_constants.js.map +1 -1
  31. package/dist/vue2/dialtone-vue.cjs +2 -0
  32. package/dist/vue2/dialtone-vue.cjs.map +1 -1
  33. package/dist/vue2/dialtone-vue.js +2 -0
  34. package/dist/vue2/dialtone-vue.js.map +1 -1
  35. package/dist/vue2/localization/dp-DP.ftl.cjs +5 -0
  36. package/dist/vue2/localization/dp-DP.ftl.cjs.map +1 -0
  37. package/dist/vue2/localization/dp-DP.ftl.js +5 -0
  38. package/dist/vue2/localization/dp-DP.ftl.js.map +1 -0
  39. package/dist/vue2/localization/en-US.ftl.cjs +5 -0
  40. package/dist/vue2/localization/en-US.ftl.cjs.map +1 -0
  41. package/dist/vue2/localization/en-US.ftl.js +5 -0
  42. package/dist/vue2/localization/en-US.ftl.js.map +1 -0
  43. package/dist/vue2/localization/es-LA.ftl.cjs +5 -0
  44. package/dist/vue2/localization/es-LA.ftl.cjs.map +1 -0
  45. package/dist/vue2/localization/es-LA.ftl.js +5 -0
  46. package/dist/vue2/localization/es-LA.ftl.js.map +1 -0
  47. package/dist/vue2/localization/index.cjs +33 -0
  48. package/dist/vue2/localization/index.cjs.map +1 -0
  49. package/dist/vue2/localization/index.js +33 -0
  50. package/dist/vue2/localization/index.js.map +1 -0
  51. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs +9 -2
  52. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  53. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js +9 -2
  54. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  55. package/dist/vue2/types/components/checkbox/checkbox.vue.d.ts +2 -1
  56. package/dist/vue2/types/components/popover/popover.vue.d.ts +0 -9
  57. package/dist/vue2/types/components/popover/popover.vue.d.ts.map +1 -1
  58. package/dist/vue2/types/components/popover/popover_header_footer.vue.d.ts +1 -9
  59. package/dist/vue2/types/components/radio/radio.vue.d.ts +3 -0
  60. package/dist/vue2/types/components/radio/radio.vue.d.ts.map +1 -1
  61. package/dist/vue2/types/components/stack/stack_constants.d.ts.map +1 -1
  62. package/dist/vue2/types/index.d.ts +1 -0
  63. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +2 -1
  64. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  65. package/dist/vue3/component-documentation.json +1 -1
  66. package/dist/vue3/components/checkbox/checkbox.vue.cjs +44 -43
  67. package/dist/vue3/components/checkbox/checkbox.vue.cjs.map +1 -1
  68. package/dist/vue3/components/checkbox/checkbox.vue.js +44 -43
  69. package/dist/vue3/components/checkbox/checkbox.vue.js.map +1 -1
  70. package/dist/vue3/components/radio/radio.vue.cjs +47 -37
  71. package/dist/vue3/components/radio/radio.vue.cjs.map +1 -1
  72. package/dist/vue3/components/radio/radio.vue.js +47 -37
  73. package/dist/vue3/components/radio/radio.vue.js.map +1 -1
  74. package/dist/vue3/components/stack/stack.vue.cjs +1 -1
  75. package/dist/vue3/components/stack/stack.vue.cjs.map +1 -1
  76. package/dist/vue3/components/stack/stack.vue.js +1 -1
  77. package/dist/vue3/components/stack/stack.vue.js.map +1 -1
  78. package/dist/vue3/components/stack/stack_constants.cjs +1 -1
  79. package/dist/vue3/components/stack/stack_constants.cjs.map +1 -1
  80. package/dist/vue3/components/stack/stack_constants.js +1 -1
  81. package/dist/vue3/components/stack/stack_constants.js.map +1 -1
  82. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs +12 -2
  83. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  84. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js +12 -2
  85. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  86. package/dist/vue3/types/components/checkbox/checkbox.vue.d.ts +2 -1
  87. package/dist/vue3/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
  88. package/dist/vue3/types/components/radio/radio.vue.d.ts +3 -0
  89. package/dist/vue3/types/components/radio/radio.vue.d.ts.map +1 -1
  90. package/dist/vue3/types/components/stack/stack_constants.d.ts.map +1 -1
  91. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +3 -1
  92. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  93. package/package.json +5 -5
@@ -49,8 +49,11 @@ const _sfc_main = {
49
49
  hasDescription() {
50
50
  return !!(this.$slots.description || this.description);
51
51
  },
52
- hasLabelOrDescription() {
53
- return this.hasLabel || this.hasDescription;
52
+ hasDescriptionOrMessages() {
53
+ return this.hasDescription || this.hasMessages;
54
+ },
55
+ hasMessages() {
56
+ return this.formattedMessages.length && this.showMessages;
54
57
  },
55
58
  inputListeners() {
56
59
  return {
@@ -102,51 +105,49 @@ const _hoisted_1 = { class: "d-checkbox__input" };
102
105
  const _hoisted_2 = ["checked", "name", "value", "disabled", ".indeterminate"];
103
106
  const _hoisted_3 = {
104
107
  key: 0,
105
- class: "d-checkbox__copy d-checkbox__label",
106
- "data-qa": "checkbox-label-description-container"
108
+ class: "d-checkbox__messages",
109
+ "data-qa": "checkbox-description-messages"
107
110
  };
108
111
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
109
112
  const _component_dt_validation_messages = vue.resolveComponent("dt-validation-messages");
110
113
  return vue.openBlock(), vue.createElementBlock("div", vue.normalizeProps(vue.guardReactiveProps($options.addClassStyleAttrs(_ctx.$attrs))), [
111
- vue.createElementVNode("label", null, [
112
- vue.createElementVNode("div", {
113
- class: vue.normalizeClass(["d-checkbox-group", { "d-checkbox-group--disabled": _ctx.internalDisabled }])
114
- }, [
115
- vue.createElementVNode("div", _hoisted_1, [
116
- vue.createElementVNode("input", vue.mergeProps({
117
- type: "checkbox",
118
- checked: _ctx.internalChecked,
119
- name: _ctx.internalName,
120
- value: _ctx.value,
121
- disabled: _ctx.internalDisabled,
122
- class: ["d-checkbox", $options.inputValidationClass, _ctx.inputClass]
123
- }, $options.removeClassStyleAttrs(_ctx.$attrs), { ".indeterminate": _ctx.internalIndeterminate }, vue.toHandlers($options.inputListeners, true)), null, 48, _hoisted_2)
124
- ]),
125
- $options.hasLabelOrDescription ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
126
- $options.hasLabel ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
127
- key: 0,
128
- class: _ctx.labelClass
129
- }, _ctx.labelChildProps, { "data-qa": "checkbox-label" }), [
130
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
131
- vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
132
- ])
133
- ], 16)) : vue.createCommentVNode("", true),
134
- $options.hasDescription ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
135
- key: 1,
136
- class: ["d-description", _ctx.descriptionClass]
137
- }, _ctx.descriptionChildProps, { "data-qa": "checkbox-description" }), [
138
- vue.renderSlot(_ctx.$slots, "description", {}, () => [
139
- vue.createTextVNode(vue.toDisplayString(_ctx.description), 1)
140
- ])
141
- ], 16)) : vue.createCommentVNode("", true),
142
- vue.createVNode(_component_dt_validation_messages, vue.mergeProps({
143
- "validation-messages": _ctx.formattedMessages,
144
- "show-messages": _ctx.showMessages,
145
- class: _ctx.messagesClass
146
- }, _ctx.messagesChildProps, { "data-qa": "dt-checkbox-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
147
- ])) : vue.createCommentVNode("", true)
148
- ], 2)
149
- ])
114
+ vue.createElementVNode("label", {
115
+ class: vue.normalizeClass(["d-checkbox-group", { "d-checkbox-group--disabled": _ctx.internalDisabled }])
116
+ }, [
117
+ vue.createElementVNode("div", _hoisted_1, [
118
+ vue.createElementVNode("input", vue.mergeProps({
119
+ type: "checkbox",
120
+ checked: _ctx.internalChecked,
121
+ name: _ctx.internalName,
122
+ value: _ctx.value,
123
+ disabled: _ctx.internalDisabled,
124
+ class: ["d-checkbox", $options.inputValidationClass, _ctx.inputClass]
125
+ }, $options.removeClassStyleAttrs(_ctx.$attrs), { ".indeterminate": _ctx.internalIndeterminate }, vue.toHandlers($options.inputListeners, true)), null, 48, _hoisted_2)
126
+ ]),
127
+ $options.hasLabel ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
128
+ key: 0,
129
+ class: [_ctx.labelClass, "d-checkbox__copy d-checkbox__label"]
130
+ }, _ctx.labelChildProps, { "data-qa": "checkbox-label" }), [
131
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
132
+ vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
133
+ ])
134
+ ], 16)) : vue.createCommentVNode("", true)
135
+ ], 2),
136
+ $options.hasDescriptionOrMessages ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
137
+ $options.hasDescription ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
138
+ key: 0,
139
+ class: ["d-description", _ctx.descriptionClass]
140
+ }, _ctx.descriptionChildProps, { "data-qa": "checkbox-description" }), [
141
+ vue.renderSlot(_ctx.$slots, "description", {}, () => [
142
+ vue.createTextVNode(vue.toDisplayString(_ctx.description), 1)
143
+ ])
144
+ ], 16)) : vue.createCommentVNode("", true),
145
+ vue.createVNode(_component_dt_validation_messages, vue.mergeProps({
146
+ "validation-messages": _ctx.formattedMessages,
147
+ "show-messages": _ctx.showMessages,
148
+ class: _ctx.messagesClass
149
+ }, _ctx.messagesChildProps, { "data-qa": "dt-checkbox-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
150
+ ])) : vue.createCommentVNode("", true)
150
151
  ], 16);
151
152
  }
152
153
  const checkbox = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.vue.cjs","sources":["../../../components/checkbox/checkbox.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label>\n <div :class=\"['d-checkbox-group', { 'd-checkbox-group--disabled': internalDisabled }]\">\n <div class=\"d-checkbox__input\">\n <input\n type=\"checkbox\"\n :checked=\"internalChecked\"\n :name=\"internalName\"\n :value=\"value\"\n :disabled=\"internalDisabled\"\n :class=\"['d-checkbox', inputValidationClass, inputClass]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n :indeterminate.prop=\"internalIndeterminate\"\n v-on=\"inputListeners\"\n >\n </div>\n <div\n v-if=\"hasLabelOrDescription\"\n class=\"d-checkbox__copy d-checkbox__label\"\n data-qa=\"checkbox-label-description-container\"\n >\n <div\n v-if=\"hasLabel\"\n :class=\"labelClass\"\n v-bind=\"labelChildProps\"\n data-qa=\"checkbox-label\"\n >\n <!-- @slot slot for Checkbox Label -->\n <slot>{{ label }}</slot>\n </div>\n <div\n v-if=\"hasDescription\"\n :class=\"['d-description', descriptionClass]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"checkbox-description\"\n >\n <!-- @slot slot for Checkbox Description -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-checkbox-validation-messages\"\n />\n </div>\n </div>\n </label>\n </div>\n</template>\n\n<script>\n// Imports\nimport {\n InputMixin,\n CheckableMixin,\n GroupableMixin,\n MessagesMixin,\n} from '@/common/mixins/input';\nimport { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\nimport { CHECKBOX_INPUT_VALIDATION_CLASSES } from './checkbox_constants';\nimport { DtValidationMessages } from '../validation_messages';\n\n/**\n * Checkboxes are control elements that allow the user to make a selection.They are typically used in a\n * Checkbox Group which allows the user to make one or more selections from a list of options.\n * @see https://dialtone.dialpad.com/components/checkbox.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCheckbox',\n\n components: { DtValidationMessages },\n\n mixins: [InputMixin, CheckableMixin, GroupableMixin, MessagesMixin],\n\n inheritAttrs: false,\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {Boolean}\n */\n 'input',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n ],\n\n computed: {\n inputValidationClass () {\n return CHECKBOX_INPUT_VALIDATION_CLASSES[this.internalValidationState];\n },\n\n checkboxGroupValueChecked () {\n return this.groupContext?.selectedValues?.includes(this.value) ?? false;\n },\n\n hasLabel () {\n return !!(this.$slots.default || this.label);\n },\n\n hasDescription () {\n return !!(this.$slots.description || this.description);\n },\n\n hasLabelOrDescription () {\n return this.hasLabel || this.hasDescription;\n },\n\n inputListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through\n * onto the input element which will result in the handler being called twice\n * (once on the input element and once by the emitted input event by the change listener).\n */\n input: () => {},\n focusin: event => this.$emit('focusin', event),\n focusout: event => this.$emit('focusout', event),\n change: event => this.emitValue(event.target),\n };\n },\n },\n\n watch: {\n checkboxGroupValueChecked: {\n immediate: true,\n handler (newCheckboxGroupValueChecked) {\n if (this.hasGroup) {\n // update internal value when the checkbox group value changes\n this.internalChecked = newCheckboxGroupValueChecked;\n }\n },\n },\n },\n\n mounted () {\n this.runValidations();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n emitValue (target) {\n let { value, checked } = target;\n // Expected: Indeterminate -> unchecked. We need to manually set DOM property `checked` to false\n // and update this.internalIndeterminate.\n if (this.internalIndeterminate) {\n checked = false;\n this.internalIndeterminate = false;\n target.checked = false;\n }\n // update provided value if injected\n this.setGroupValue(value, checked);\n\n // emit the state of the checkbox\n this.$emit('input', checked);\n },\n\n runValidations () {\n this.validateInputLabels(this.hasLabel, this.$attrs['aria-label']);\n },\n },\n};\n</script>\n"],"names":["DtValidationMessages","InputMixin","CheckableMixin","GroupableMixin","MessagesMixin","CHECKBOX_INPUT_VALIDATION_CLASSES","removeClassStyleAttrs","addClassStyleAttrs","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode"],"mappings":";;;;;;;;AAwEA,MAAK,YAAU;AAAA,EACb,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,MAAM;AAAA,EAEN,YAAY,EAAEA,sBAAAA,oBAAAA,QAAsB;AAAA,EAEpC,QAAQ,CAACC,MAAU,YAAEC,sBAAgBC,MAAAA,gBAAgBC,MAAAA,aAAa;AAAA,EAElE,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA,EACD;AAAA,EAED,UAAU;AAAA,IACR,uBAAwB;AACtB,aAAOC,mBAAiC,kCAAC,KAAK,uBAAuB;AAAA,IACtE;AAAA,IAED,4BAA6B;;AAC3B,eAAO,gBAAK,iBAAL,mBAAmB,mBAAnB,mBAAmC,SAAS,KAAK,WAAU;AAAA,IACnE;AAAA,IAED,WAAY;AACV,aAAO,CAAC,EAAE,KAAK,OAAO,WAAW,KAAK;AAAA,IACvC;AAAA,IAED,iBAAkB;AAChB,aAAO,CAAC,EAAE,KAAK,OAAO,eAAe,KAAK;AAAA,IAC3C;AAAA,IAED,wBAAyB;AACvB,aAAO,KAAK,YAAY,KAAK;AAAA,IAC9B;AAAA,IAED,iBAAkB;AAChB,aAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAML,OAAO,MAAM;AAAA,QAAE;AAAA,QACf,SAAS,WAAS,KAAK,MAAM,WAAW,KAAK;AAAA,QAC7C,UAAU,WAAS,KAAK,MAAM,YAAY,KAAK;AAAA,QAC/C,QAAQ,WAAS,KAAK,UAAU,MAAM,MAAM;AAAA;IAE/C;AAAA,EACF;AAAA,EAED,OAAO;AAAA,IACL,2BAA2B;AAAA,MACzB,WAAW;AAAA,MACX,QAAS,8BAA8B;AACrC,YAAI,KAAK,UAAU;AAEjB,eAAK,kBAAkB;AAAA,QACzB;AAAA,MACD;AAAA,IACF;AAAA,EACF;AAAA,EAED,UAAW;AACT,SAAK,eAAc;AAAA,EACpB;AAAA,EAED,SAAS;AAAA,IACP,uBAAAC,aAAqB;AAAA,IACrB,oBAAAC,aAAkB;AAAA,IAElB,UAAW,QAAQ;AACjB,UAAI,EAAE,OAAO,QAAU,IAAE;AAGzB,UAAI,KAAK,uBAAuB;AAC9B,kBAAU;AACV,aAAK,wBAAwB;AAC7B,eAAO,UAAU;AAAA,MACnB;AAEA,WAAK,cAAc,OAAO,OAAO;AAGjC,WAAK,MAAM,SAAS,OAAO;AAAA,IAC5B;AAAA,IAED,iBAAkB;AAChB,WAAK,oBAAoB,KAAK,UAAU,KAAK,OAAO,YAAY,CAAC;AAAA,IAClE;AAAA,EACF;AACH;AAlLa,MAAA,aAAA,EAAA,OAAM,oBAAmB;AANtC,MAAA,aAAA,CAAA,WAAA,QAAA,SAAA,YAAA,gBAAA;;EAAA,KAAA;AAAA,EAqBU,OAAM;AAAA,EACN,WAAQ;;;;AArBhB,SAAAC,cAAA,GAAAC,uBAmDM,OApDRC,IAAAA,eAAAC,IAAAA,mBAEY,SAAA,mBAAmB,KAAM,MAAA,CAAA,CAAA,GAAA;AAAA,IAEjCC,IA+CQ,mBAAA,SAAA,MAAA;AAAA,MA9CNA,IAAAA,mBA6CM,OAAA;AAAA,QA7CA,OALZC,wEAKwE,KAAgB,iBAAA,CAAA,CAAA;AAAA;QAChFD,IAAA,mBAYM,OAZN,YAYM;AAAA,UAXJA,IAAA,mBAUC,SAVDE,eAUC;AAAA,YATC,MAAK;AAAA,YACJ,SAAS,KAAe;AAAA,YACxB,MAAM,KAAY;AAAA,YAClB,OAAO,KAAK;AAAA,YACZ,UAAU,KAAgB;AAAA,YAC1B,OAAK,CAAA,cAAiB,SAAoB,sBAAE,KAAU,UAAA;AAAA,aAC/C,SAAqB,sBAAC,KAAM,MAAA,GAAA,EACnC,kBAAoB,2BACrB,GAAAC,IAAA,WAAqB,SAAf,gBAhBlB,IAAA,CAAA,GAAA,MAAA,IAAA,UAAA;AAAA;QAoBgB,SAAqB,yBAD7BP,IAAAA,aAAAC,IAAAA,mBA8BM,OA9BN,YA8BM;AAAA,UAxBI,SAAQ,YADhBD,IAAAA,aAAAC,IAAAA,mBAQM,OARNK,eAQM;AAAA,YAhChB,KAAA;AAAA,YA0Ba,OAAO,KAAU;AAAA,aACV,KAAe,iBAAA,EACvB,WAAQ,iBAAgB,CAAA,GAAA;AAAA,YAGxBE,IAAAA,WAAwB,4BAAxB,MAAwB;AAAA,cA/BpCC,IAAAA,gBAAAC,IAAAA,gBA+BqB,KAAK,KAAA,GAAA,CAAA;AAAA;oBA/B1BC,IAAA,mBAAA,IAAA,IAAA;AAAA,UAkCkB,SAAc,kBADtBX,IAAAA,aAAAC,IAAAA,mBAQM,OARNK,eAQM;AAAA,YAzChB,KAAA;AAAA,YAmCa,yBAAyB,KAAgB,gBAAA;AAAA,aAClC,KAAqB,uBAAA,EAC7B,WAAQ,uBAAsB,CAAA,GAAA;AAAA,YAG9BE,IAAAA,WAAiD,gCAAjD,MAAiD;AAAA,cAxC7DC,IAAAA,gBAAAC,IAAAA,gBAwCwC,KAAW,WAAA,GAAA,CAAA;AAAA;oBAxCnDC,IAAA,mBAAA,IAAA,IAAA;AAAA,UA0CUC,IAAA,YAME,mCANFN,eAME;AAAA,YALC,uBAAqB,KAAiB;AAAA,YACtC,iBAAe,KAAY;AAAA,YAC3B,OAAO,KAAa;AAAA,aACb,KAAkB,oBAAA,EAC1B,WAAQ,kCAAiC,CAAA,GAAA,MAAA,IAAA,CAAA,uBAAA,iBAAA,OAAA,CAAA;AAAA,cA/CrDK,IAAA,mBAAA,IAAA,IAAA;AAAA;;;;;;"}
1
+ {"version":3,"file":"checkbox.vue.cjs","sources":["../../../components/checkbox/checkbox.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label :class=\"['d-checkbox-group', { 'd-checkbox-group--disabled': internalDisabled }]\">\n <div class=\"d-checkbox__input\">\n <input\n type=\"checkbox\"\n :checked=\"internalChecked\"\n :name=\"internalName\"\n :value=\"value\"\n :disabled=\"internalDisabled\"\n :class=\"['d-checkbox', inputValidationClass, inputClass]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n :indeterminate.prop=\"internalIndeterminate\"\n v-on=\"inputListeners\"\n >\n </div>\n <div\n v-if=\"hasLabel\"\n :class=\"[labelClass, 'd-checkbox__copy d-checkbox__label']\"\n v-bind=\"labelChildProps\"\n data-qa=\"checkbox-label\"\n >\n <!-- @slot slot for Checkbox Label -->\n <slot>{{ label }}</slot>\n </div>\n </label>\n <div\n v-if=\"hasDescriptionOrMessages\"\n class=\"d-checkbox__messages\"\n data-qa=\"checkbox-description-messages\"\n >\n <div\n v-if=\"hasDescription\"\n :class=\"['d-description', descriptionClass]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"checkbox-description\"\n >\n <!-- @slot slot for Checkbox Description -->\n <slot name=\"description\">\n {{ description }}\n </slot>\n </div>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-checkbox-validation-messages\"\n />\n </div>\n </div>\n</template>\n\n<script>\n// Imports\nimport {\n InputMixin,\n CheckableMixin,\n GroupableMixin,\n MessagesMixin,\n} from '@/common/mixins/input';\nimport { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\nimport { CHECKBOX_INPUT_VALIDATION_CLASSES } from './checkbox_constants';\nimport { DtValidationMessages } from '../validation_messages';\n\n/**\n * Checkboxes are control elements that allow the user to make a selection.They are typically used in a\n * Checkbox Group which allows the user to make one or more selections from a list of options.\n * @see https://dialtone.dialpad.com/components/checkbox.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCheckbox',\n\n components: { DtValidationMessages },\n\n mixins: [InputMixin, CheckableMixin, GroupableMixin, MessagesMixin],\n\n inheritAttrs: false,\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {Boolean}\n */\n 'input',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n ],\n\n computed: {\n inputValidationClass () {\n return CHECKBOX_INPUT_VALIDATION_CLASSES[this.internalValidationState];\n },\n\n checkboxGroupValueChecked () {\n return this.groupContext?.selectedValues?.includes(this.value) ?? false;\n },\n\n hasLabel () {\n return !!(this.$slots.default || this.label);\n },\n\n hasDescription () {\n return !!(this.$slots.description || this.description);\n },\n\n hasDescriptionOrMessages () {\n return this.hasDescription || this.hasMessages;\n },\n\n hasMessages () {\n return this.formattedMessages.length && this.showMessages;\n },\n\n inputListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through\n * onto the input element which will result in the handler being called twice\n * (once on the input element and once by the emitted input event by the change listener).\n */\n input: () => {},\n focusin: event => this.$emit('focusin', event),\n focusout: event => this.$emit('focusout', event),\n change: event => this.emitValue(event.target),\n };\n },\n },\n\n watch: {\n checkboxGroupValueChecked: {\n immediate: true,\n handler (newCheckboxGroupValueChecked) {\n if (this.hasGroup) {\n // update internal value when the checkbox group value changes\n this.internalChecked = newCheckboxGroupValueChecked;\n }\n },\n },\n },\n\n mounted () {\n this.runValidations();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n emitValue (target) {\n let { value, checked } = target;\n // Expected: Indeterminate -> unchecked. We need to manually set DOM property `checked` to false\n // and update this.internalIndeterminate.\n if (this.internalIndeterminate) {\n checked = false;\n this.internalIndeterminate = false;\n target.checked = false;\n }\n // update provided value if injected\n this.setGroupValue(value, checked);\n\n // emit the state of the checkbox\n this.$emit('input', checked);\n },\n\n runValidations () {\n this.validateInputLabels(this.hasLabel, this.$attrs['aria-label']);\n },\n },\n};\n</script>\n"],"names":["DtValidationMessages","InputMixin","CheckableMixin","GroupableMixin","MessagesMixin","CHECKBOX_INPUT_VALIDATION_CLASSES","removeClassStyleAttrs","addClassStyleAttrs","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode"],"mappings":"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"}
@@ -47,8 +47,11 @@ const _sfc_main = {
47
47
  hasDescription() {
48
48
  return !!(this.$slots.description || this.description);
49
49
  },
50
- hasLabelOrDescription() {
51
- return this.hasLabel || this.hasDescription;
50
+ hasDescriptionOrMessages() {
51
+ return this.hasDescription || this.hasMessages;
52
+ },
53
+ hasMessages() {
54
+ return this.formattedMessages.length && this.showMessages;
52
55
  },
53
56
  inputListeners() {
54
57
  return {
@@ -100,51 +103,49 @@ const _hoisted_1 = { class: "d-checkbox__input" };
100
103
  const _hoisted_2 = ["checked", "name", "value", "disabled", ".indeterminate"];
101
104
  const _hoisted_3 = {
102
105
  key: 0,
103
- class: "d-checkbox__copy d-checkbox__label",
104
- "data-qa": "checkbox-label-description-container"
106
+ class: "d-checkbox__messages",
107
+ "data-qa": "checkbox-description-messages"
105
108
  };
106
109
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
107
110
  const _component_dt_validation_messages = resolveComponent("dt-validation-messages");
108
111
  return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps($options.addClassStyleAttrs(_ctx.$attrs))), [
109
- createElementVNode("label", null, [
110
- createElementVNode("div", {
111
- class: normalizeClass(["d-checkbox-group", { "d-checkbox-group--disabled": _ctx.internalDisabled }])
112
- }, [
113
- createElementVNode("div", _hoisted_1, [
114
- createElementVNode("input", mergeProps({
115
- type: "checkbox",
116
- checked: _ctx.internalChecked,
117
- name: _ctx.internalName,
118
- value: _ctx.value,
119
- disabled: _ctx.internalDisabled,
120
- class: ["d-checkbox", $options.inputValidationClass, _ctx.inputClass]
121
- }, $options.removeClassStyleAttrs(_ctx.$attrs), { ".indeterminate": _ctx.internalIndeterminate }, toHandlers($options.inputListeners, true)), null, 48, _hoisted_2)
122
- ]),
123
- $options.hasLabelOrDescription ? (openBlock(), createElementBlock("div", _hoisted_3, [
124
- $options.hasLabel ? (openBlock(), createElementBlock("div", mergeProps({
125
- key: 0,
126
- class: _ctx.labelClass
127
- }, _ctx.labelChildProps, { "data-qa": "checkbox-label" }), [
128
- renderSlot(_ctx.$slots, "default", {}, () => [
129
- createTextVNode(toDisplayString(_ctx.label), 1)
130
- ])
131
- ], 16)) : createCommentVNode("", true),
132
- $options.hasDescription ? (openBlock(), createElementBlock("div", mergeProps({
133
- key: 1,
134
- class: ["d-description", _ctx.descriptionClass]
135
- }, _ctx.descriptionChildProps, { "data-qa": "checkbox-description" }), [
136
- renderSlot(_ctx.$slots, "description", {}, () => [
137
- createTextVNode(toDisplayString(_ctx.description), 1)
138
- ])
139
- ], 16)) : createCommentVNode("", true),
140
- createVNode(_component_dt_validation_messages, mergeProps({
141
- "validation-messages": _ctx.formattedMessages,
142
- "show-messages": _ctx.showMessages,
143
- class: _ctx.messagesClass
144
- }, _ctx.messagesChildProps, { "data-qa": "dt-checkbox-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
145
- ])) : createCommentVNode("", true)
146
- ], 2)
147
- ])
112
+ createElementVNode("label", {
113
+ class: normalizeClass(["d-checkbox-group", { "d-checkbox-group--disabled": _ctx.internalDisabled }])
114
+ }, [
115
+ createElementVNode("div", _hoisted_1, [
116
+ createElementVNode("input", mergeProps({
117
+ type: "checkbox",
118
+ checked: _ctx.internalChecked,
119
+ name: _ctx.internalName,
120
+ value: _ctx.value,
121
+ disabled: _ctx.internalDisabled,
122
+ class: ["d-checkbox", $options.inputValidationClass, _ctx.inputClass]
123
+ }, $options.removeClassStyleAttrs(_ctx.$attrs), { ".indeterminate": _ctx.internalIndeterminate }, toHandlers($options.inputListeners, true)), null, 48, _hoisted_2)
124
+ ]),
125
+ $options.hasLabel ? (openBlock(), createElementBlock("div", mergeProps({
126
+ key: 0,
127
+ class: [_ctx.labelClass, "d-checkbox__copy d-checkbox__label"]
128
+ }, _ctx.labelChildProps, { "data-qa": "checkbox-label" }), [
129
+ renderSlot(_ctx.$slots, "default", {}, () => [
130
+ createTextVNode(toDisplayString(_ctx.label), 1)
131
+ ])
132
+ ], 16)) : createCommentVNode("", true)
133
+ ], 2),
134
+ $options.hasDescriptionOrMessages ? (openBlock(), createElementBlock("div", _hoisted_3, [
135
+ $options.hasDescription ? (openBlock(), createElementBlock("div", mergeProps({
136
+ key: 0,
137
+ class: ["d-description", _ctx.descriptionClass]
138
+ }, _ctx.descriptionChildProps, { "data-qa": "checkbox-description" }), [
139
+ renderSlot(_ctx.$slots, "description", {}, () => [
140
+ createTextVNode(toDisplayString(_ctx.description), 1)
141
+ ])
142
+ ], 16)) : createCommentVNode("", true),
143
+ createVNode(_component_dt_validation_messages, mergeProps({
144
+ "validation-messages": _ctx.formattedMessages,
145
+ "show-messages": _ctx.showMessages,
146
+ class: _ctx.messagesClass
147
+ }, _ctx.messagesChildProps, { "data-qa": "dt-checkbox-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
148
+ ])) : createCommentVNode("", true)
148
149
  ], 16);
149
150
  }
150
151
  const checkbox = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.vue.js","sources":["../../../components/checkbox/checkbox.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label>\n <div :class=\"['d-checkbox-group', { 'd-checkbox-group--disabled': internalDisabled }]\">\n <div class=\"d-checkbox__input\">\n <input\n type=\"checkbox\"\n :checked=\"internalChecked\"\n :name=\"internalName\"\n :value=\"value\"\n :disabled=\"internalDisabled\"\n :class=\"['d-checkbox', inputValidationClass, inputClass]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n :indeterminate.prop=\"internalIndeterminate\"\n v-on=\"inputListeners\"\n >\n </div>\n <div\n v-if=\"hasLabelOrDescription\"\n class=\"d-checkbox__copy d-checkbox__label\"\n data-qa=\"checkbox-label-description-container\"\n >\n <div\n v-if=\"hasLabel\"\n :class=\"labelClass\"\n v-bind=\"labelChildProps\"\n data-qa=\"checkbox-label\"\n >\n <!-- @slot slot for Checkbox Label -->\n <slot>{{ label }}</slot>\n </div>\n <div\n v-if=\"hasDescription\"\n :class=\"['d-description', descriptionClass]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"checkbox-description\"\n >\n <!-- @slot slot for Checkbox Description -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-checkbox-validation-messages\"\n />\n </div>\n </div>\n </label>\n </div>\n</template>\n\n<script>\n// Imports\nimport {\n InputMixin,\n CheckableMixin,\n GroupableMixin,\n MessagesMixin,\n} from '@/common/mixins/input';\nimport { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\nimport { CHECKBOX_INPUT_VALIDATION_CLASSES } from './checkbox_constants';\nimport { DtValidationMessages } from '../validation_messages';\n\n/**\n * Checkboxes are control elements that allow the user to make a selection.They are typically used in a\n * Checkbox Group which allows the user to make one or more selections from a list of options.\n * @see https://dialtone.dialpad.com/components/checkbox.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCheckbox',\n\n components: { DtValidationMessages },\n\n mixins: [InputMixin, CheckableMixin, GroupableMixin, MessagesMixin],\n\n inheritAttrs: false,\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {Boolean}\n */\n 'input',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n ],\n\n computed: {\n inputValidationClass () {\n return CHECKBOX_INPUT_VALIDATION_CLASSES[this.internalValidationState];\n },\n\n checkboxGroupValueChecked () {\n return this.groupContext?.selectedValues?.includes(this.value) ?? false;\n },\n\n hasLabel () {\n return !!(this.$slots.default || this.label);\n },\n\n hasDescription () {\n return !!(this.$slots.description || this.description);\n },\n\n hasLabelOrDescription () {\n return this.hasLabel || this.hasDescription;\n },\n\n inputListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through\n * onto the input element which will result in the handler being called twice\n * (once on the input element and once by the emitted input event by the change listener).\n */\n input: () => {},\n focusin: event => this.$emit('focusin', event),\n focusout: event => this.$emit('focusout', event),\n change: event => this.emitValue(event.target),\n };\n },\n },\n\n watch: {\n checkboxGroupValueChecked: {\n immediate: true,\n handler (newCheckboxGroupValueChecked) {\n if (this.hasGroup) {\n // update internal value when the checkbox group value changes\n this.internalChecked = newCheckboxGroupValueChecked;\n }\n },\n },\n },\n\n mounted () {\n this.runValidations();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n emitValue (target) {\n let { value, checked } = target;\n // Expected: Indeterminate -> unchecked. We need to manually set DOM property `checked` to false\n // and update this.internalIndeterminate.\n if (this.internalIndeterminate) {\n checked = false;\n this.internalIndeterminate = false;\n target.checked = false;\n }\n // update provided value if injected\n this.setGroupValue(value, checked);\n\n // emit the state of the checkbox\n this.$emit('input', checked);\n },\n\n runValidations () {\n this.validateInputLabels(this.hasLabel, this.$attrs['aria-label']);\n },\n },\n};\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"checkbox.vue.js","sources":["../../../components/checkbox/checkbox.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label :class=\"['d-checkbox-group', { 'd-checkbox-group--disabled': internalDisabled }]\">\n <div class=\"d-checkbox__input\">\n <input\n type=\"checkbox\"\n :checked=\"internalChecked\"\n :name=\"internalName\"\n :value=\"value\"\n :disabled=\"internalDisabled\"\n :class=\"['d-checkbox', inputValidationClass, inputClass]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n :indeterminate.prop=\"internalIndeterminate\"\n v-on=\"inputListeners\"\n >\n </div>\n <div\n v-if=\"hasLabel\"\n :class=\"[labelClass, 'd-checkbox__copy d-checkbox__label']\"\n v-bind=\"labelChildProps\"\n data-qa=\"checkbox-label\"\n >\n <!-- @slot slot for Checkbox Label -->\n <slot>{{ label }}</slot>\n </div>\n </label>\n <div\n v-if=\"hasDescriptionOrMessages\"\n class=\"d-checkbox__messages\"\n data-qa=\"checkbox-description-messages\"\n >\n <div\n v-if=\"hasDescription\"\n :class=\"['d-description', descriptionClass]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"checkbox-description\"\n >\n <!-- @slot slot for Checkbox Description -->\n <slot name=\"description\">\n {{ description }}\n </slot>\n </div>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-checkbox-validation-messages\"\n />\n </div>\n </div>\n</template>\n\n<script>\n// Imports\nimport {\n InputMixin,\n CheckableMixin,\n GroupableMixin,\n MessagesMixin,\n} from '@/common/mixins/input';\nimport { removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\nimport { CHECKBOX_INPUT_VALIDATION_CLASSES } from './checkbox_constants';\nimport { DtValidationMessages } from '../validation_messages';\n\n/**\n * Checkboxes are control elements that allow the user to make a selection.They are typically used in a\n * Checkbox Group which allows the user to make one or more selections from a list of options.\n * @see https://dialtone.dialpad.com/components/checkbox.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCheckbox',\n\n components: { DtValidationMessages },\n\n mixins: [InputMixin, CheckableMixin, GroupableMixin, MessagesMixin],\n\n inheritAttrs: false,\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {Boolean}\n */\n 'input',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n ],\n\n computed: {\n inputValidationClass () {\n return CHECKBOX_INPUT_VALIDATION_CLASSES[this.internalValidationState];\n },\n\n checkboxGroupValueChecked () {\n return this.groupContext?.selectedValues?.includes(this.value) ?? false;\n },\n\n hasLabel () {\n return !!(this.$slots.default || this.label);\n },\n\n hasDescription () {\n return !!(this.$slots.description || this.description);\n },\n\n hasDescriptionOrMessages () {\n return this.hasDescription || this.hasMessages;\n },\n\n hasMessages () {\n return this.formattedMessages.length && this.showMessages;\n },\n\n inputListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through\n * onto the input element which will result in the handler being called twice\n * (once on the input element and once by the emitted input event by the change listener).\n */\n input: () => {},\n focusin: event => this.$emit('focusin', event),\n focusout: event => this.$emit('focusout', event),\n change: event => this.emitValue(event.target),\n };\n },\n },\n\n watch: {\n checkboxGroupValueChecked: {\n immediate: true,\n handler (newCheckboxGroupValueChecked) {\n if (this.hasGroup) {\n // update internal value when the checkbox group value changes\n this.internalChecked = newCheckboxGroupValueChecked;\n }\n },\n },\n },\n\n mounted () {\n this.runValidations();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n emitValue (target) {\n let { value, checked } = target;\n // Expected: Indeterminate -> unchecked. We need to manually set DOM property `checked` to false\n // and update this.internalIndeterminate.\n if (this.internalIndeterminate) {\n checked = false;\n this.internalIndeterminate = false;\n target.checked = false;\n }\n // update provided value if injected\n this.setGroupValue(value, checked);\n\n // emit the state of the checkbox\n this.$emit('input', checked);\n },\n\n runValidations () {\n this.validateInputLabels(this.hasLabel, this.$attrs['aria-label']);\n },\n },\n};\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode"],"mappings":"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"}
@@ -84,6 +84,15 @@ const _sfc_main = {
84
84
  focusout: (event) => this.$emit("focusout", event),
85
85
  change: (event) => this.emitValue(event.target.value)
86
86
  };
87
+ },
88
+ hasDescription() {
89
+ return !!(this.$slots.description || this.description);
90
+ },
91
+ hasDescriptionOrMessages() {
92
+ return this.hasDescription || this.hasMessages;
93
+ },
94
+ hasMessages() {
95
+ return this.formattedMessages.length && this.showMessages;
87
96
  }
88
97
  },
89
98
  watch: {
@@ -110,48 +119,49 @@ const _sfc_main = {
110
119
  const _hoisted_1 = { class: "d-radio__input" };
111
120
  const _hoisted_2 = ["checked", "name", "value", "disabled"];
112
121
  const _hoisted_3 = {
113
- class: "d-radio__copy d-radio__label",
114
- "data-qa": "radio-label-description-container"
122
+ key: 0,
123
+ class: "d-radio__messages",
124
+ "data-qa": "radio-description-messages"
115
125
  };
116
126
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
117
127
  const _component_dt_validation_messages = vue.resolveComponent("dt-validation-messages");
118
128
  return vue.openBlock(), vue.createElementBlock("div", vue.normalizeProps(vue.guardReactiveProps($options.addClassStyleAttrs(_ctx.$attrs))), [
119
- vue.createElementVNode("label", null, [
120
- vue.createElementVNode("div", {
121
- class: vue.normalizeClass(["d-radio-group", { "d-radio-group--disabled": _ctx.internalDisabled }])
122
- }, [
123
- vue.createElementVNode("div", _hoisted_1, [
124
- vue.createElementVNode("input", vue.mergeProps({
125
- checked: _ctx.internalChecked,
126
- name: _ctx.internalName,
127
- value: $props.value,
128
- disabled: _ctx.internalDisabled,
129
- type: "radio",
130
- class: ["d-radio", $options.inputValidationClass, _ctx.inputClass]
131
- }, $options.removeClassStyleAttrs(_ctx.$attrs), vue.toHandlers($options.inputListeners, true)), null, 16, _hoisted_2)
132
- ]),
133
- vue.createElementVNode("div", _hoisted_3, [
134
- vue.createElementVNode("div", vue.mergeProps({ class: _ctx.labelClass }, _ctx.labelChildProps, { "data-qa": "radio-label" }), [
135
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
136
- vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
137
- ])
138
- ], 16),
139
- _ctx.$slots.description || _ctx.description ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
140
- key: 0,
141
- class: ["d-description", _ctx.descriptionClass]
142
- }, _ctx.descriptionChildProps, { "data-qa": "radio-description" }), [
143
- vue.renderSlot(_ctx.$slots, "description", {}, () => [
144
- vue.createTextVNode(vue.toDisplayString(_ctx.description), 1)
145
- ])
146
- ], 16)) : vue.createCommentVNode("", true),
147
- vue.createVNode(_component_dt_validation_messages, vue.mergeProps({
148
- "validation-messages": _ctx.formattedMessages,
149
- "show-messages": _ctx.showMessages,
150
- class: _ctx.messagesClass
151
- }, _ctx.messagesChildProps, { "data-qa": "dt-radio-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
129
+ vue.createElementVNode("label", {
130
+ class: vue.normalizeClass(["d-radio-group", { "d-radio-group--disabled": _ctx.internalDisabled }])
131
+ }, [
132
+ vue.createElementVNode("div", _hoisted_1, [
133
+ vue.createElementVNode("input", vue.mergeProps({
134
+ checked: _ctx.internalChecked,
135
+ name: _ctx.internalName,
136
+ value: $props.value,
137
+ disabled: _ctx.internalDisabled,
138
+ type: "radio",
139
+ class: ["d-radio", $options.inputValidationClass, _ctx.inputClass]
140
+ }, $options.removeClassStyleAttrs(_ctx.$attrs), vue.toHandlers($options.inputListeners, true)), null, 16, _hoisted_2)
141
+ ]),
142
+ vue.createElementVNode("div", vue.mergeProps({
143
+ class: [_ctx.labelClass, "d-radio__copy d-radio__label"]
144
+ }, _ctx.labelChildProps, { "data-qa": "radio-label" }), [
145
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
146
+ vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
147
+ ])
148
+ ], 16)
149
+ ], 2),
150
+ $options.hasDescriptionOrMessages ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
151
+ $options.hasDescription ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
152
+ key: 0,
153
+ class: ["d-description", _ctx.descriptionClass]
154
+ }, _ctx.descriptionChildProps, { "data-qa": "radio-description" }), [
155
+ vue.renderSlot(_ctx.$slots, "description", {}, () => [
156
+ vue.createTextVNode(vue.toDisplayString(_ctx.description), 1)
152
157
  ])
153
- ], 2)
154
- ])
158
+ ], 16)) : vue.createCommentVNode("", true),
159
+ vue.createVNode(_component_dt_validation_messages, vue.mergeProps({
160
+ "validation-messages": _ctx.formattedMessages,
161
+ "show-messages": _ctx.showMessages,
162
+ class: _ctx.messagesClass
163
+ }, _ctx.messagesChildProps, { "data-qa": "dt-radio-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
164
+ ])) : vue.createCommentVNode("", true)
155
165
  ], 16);
156
166
  }
157
167
  const radio = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
@@ -1 +1 @@
1
- {"version":3,"file":"radio.vue.cjs","sources":["../../../components/radio/radio.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label>\n <div :class=\"['d-radio-group', { 'd-radio-group--disabled': internalDisabled }]\">\n <div class=\"d-radio__input\">\n <input\n :checked=\"internalChecked\"\n :name=\"internalName\"\n :value=\"value\"\n :disabled=\"internalDisabled\"\n type=\"radio\"\n :class=\"['d-radio', inputValidationClass, inputClass]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"inputListeners\"\n >\n </div>\n <div\n class=\"d-radio__copy d-radio__label\"\n data-qa=\"radio-label-description-container\"\n >\n <div\n :class=\"labelClass\"\n v-bind=\"labelChildProps\"\n data-qa=\"radio-label\"\n >\n <!-- @slot slot for Radio Label -->\n <slot>{{ label }}</slot>\n </div>\n <div\n v-if=\"$slots.description || description\"\n :class=\"['d-description', descriptionClass]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"radio-description\"\n >\n <!-- @slot slot for Radio Description -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-radio-validation-messages\"\n />\n </div>\n </div>\n </label>\n </div>\n</template>\n\n<script>\nimport {\n InputMixin,\n CheckableMixin,\n GroupableMixin,\n MessagesMixin,\n} from '@/common/mixins/input';\nimport { RADIO_INPUT_VALIDATION_CLASSES } from './radio_constants';\nimport { DtValidationMessages } from '../validation_messages';\nimport { hasSlotContent, removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\n\n/**\n * Radios are control elements that allow the user to make a single selection.\n * They are typically used in a Radio Group which allows the user to make a selection from a list of options.\n * @see https://dialtone.dialpad.com/components/radio.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRadio',\n\n components: { DtValidationMessages },\n\n mixins: [InputMixin, CheckableMixin, GroupableMixin, MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * A provided value for the radio\n */\n value: {\n type: [String, Number],\n default: '',\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 input focus event\n *\n * @event focus\n * @type {FocusEvent}\n */\n 'focus',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @property {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @property {FocusEvent}\n */\n 'focusout',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n hasSlotContent,\n };\n },\n\n computed: {\n inputValidationClass () {\n return RADIO_INPUT_VALIDATION_CLASSES[this.internalValidationState];\n },\n\n radioGroupValue () {\n return this.groupContext?.selectedValue;\n },\n\n inputListeners () {\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\n * (once on the input element and once by the emitted input event by the change listener).\n */\n input: () => {},\n focusin: event => this.$emit('focusin', event),\n focusout: event => this.$emit('focusout', event),\n change: event => this.emitValue(event.target.value),\n };\n },\n },\n\n watch: {\n radioGroupValue: {\n immediate: true,\n handler (newRadioGroupValue) {\n if (this.hasGroup) {\n // update internal value when the radio group value changes\n this.internalChecked = newRadioGroupValue === this.value;\n }\n },\n },\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n emitValue (value) {\n if (value !== this.radioGroupValue) {\n // update provided value if injected\n this.setGroupValue(value);\n\n this.$emit('input', value);\n }\n },\n },\n};\n</script>\n"],"names":["DtValidationMessages","InputMixin","CheckableMixin","GroupableMixin","MessagesMixin","hasSlotContent","RADIO_INPUT_VALIDATION_CLASSES","removeClassStyleAttrs","addClassStyleAttrs","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"radio.vue.cjs","sources":["../../../components/radio/radio.vue"],"sourcesContent":["<template>\n <div\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <label :class=\"['d-radio-group', { 'd-radio-group--disabled': internalDisabled }]\">\n <div class=\"d-radio__input\">\n <input\n :checked=\"internalChecked\"\n :name=\"internalName\"\n :value=\"value\"\n :disabled=\"internalDisabled\"\n type=\"radio\"\n :class=\"['d-radio', inputValidationClass, inputClass]\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"inputListeners\"\n >\n </div>\n <div\n :class=\"[labelClass, 'd-radio__copy d-radio__label']\"\n v-bind=\"labelChildProps\"\n data-qa=\"radio-label\"\n >\n <!-- @slot slot for Radio Label -->\n <slot>{{ label }}</slot>\n </div>\n </label>\n <div\n v-if=\"hasDescriptionOrMessages\"\n class=\"d-radio__messages\"\n data-qa=\"radio-description-messages\"\n >\n <div\n v-if=\"hasDescription\"\n :class=\"['d-description', descriptionClass]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"radio-description\"\n >\n <!-- @slot slot for Radio Description -->\n <slot name=\"description\">\n {{ description }}\n </slot>\n </div>\n <dt-validation-messages\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-radio-validation-messages\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport {\n InputMixin,\n CheckableMixin,\n GroupableMixin,\n MessagesMixin,\n} from '@/common/mixins/input';\nimport { RADIO_INPUT_VALIDATION_CLASSES } from './radio_constants';\nimport { DtValidationMessages } from '../validation_messages';\nimport { hasSlotContent, removeClassStyleAttrs, addClassStyleAttrs } from '@/common/utils';\n\n/**\n * Radios are control elements that allow the user to make a single selection.\n * They are typically used in a Radio Group which allows the user to make a selection from a list of options.\n * @see https://dialtone.dialpad.com/components/radio.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRadio',\n\n components: { DtValidationMessages },\n\n mixins: [InputMixin, CheckableMixin, GroupableMixin, MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * A provided value for the radio\n */\n value: {\n type: [String, Number],\n default: '',\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 input focus event\n *\n * @event focus\n * @type {FocusEvent}\n */\n 'focus',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @property {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @property {FocusEvent}\n */\n 'focusout',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n hasSlotContent,\n };\n },\n\n computed: {\n inputValidationClass () {\n return RADIO_INPUT_VALIDATION_CLASSES[this.internalValidationState];\n },\n\n radioGroupValue () {\n return this.groupContext?.selectedValue;\n },\n\n inputListeners () {\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\n * (once on the input element and once by the emitted input event by the change listener).\n */\n input: () => {},\n focusin: event => this.$emit('focusin', event),\n focusout: event => this.$emit('focusout', event),\n change: event => this.emitValue(event.target.value),\n };\n },\n\n hasDescription () {\n return !!(this.$slots.description || this.description);\n },\n\n hasDescriptionOrMessages () {\n return this.hasDescription || this.hasMessages;\n },\n\n hasMessages () {\n return this.formattedMessages.length && this.showMessages;\n },\n },\n\n watch: {\n radioGroupValue: {\n immediate: true,\n handler (newRadioGroupValue) {\n if (this.hasGroup) {\n // update internal value when the radio group value changes\n this.internalChecked = newRadioGroupValue === this.value;\n }\n },\n },\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n emitValue (value) {\n if (value !== this.radioGroupValue) {\n // update provided value if injected\n this.setGroupValue(value);\n\n this.$emit('input', value);\n }\n },\n },\n};\n</script>\n"],"names":["DtValidationMessages","InputMixin","CheckableMixin","GroupableMixin","MessagesMixin","hasSlotContent","RADIO_INPUT_VALIDATION_CLASSES","removeClassStyleAttrs","addClassStyleAttrs","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode"],"mappings":"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"}
@@ -82,6 +82,15 @@ const _sfc_main = {
82
82
  focusout: (event) => this.$emit("focusout", event),
83
83
  change: (event) => this.emitValue(event.target.value)
84
84
  };
85
+ },
86
+ hasDescription() {
87
+ return !!(this.$slots.description || this.description);
88
+ },
89
+ hasDescriptionOrMessages() {
90
+ return this.hasDescription || this.hasMessages;
91
+ },
92
+ hasMessages() {
93
+ return this.formattedMessages.length && this.showMessages;
85
94
  }
86
95
  },
87
96
  watch: {
@@ -108,48 +117,49 @@ const _sfc_main = {
108
117
  const _hoisted_1 = { class: "d-radio__input" };
109
118
  const _hoisted_2 = ["checked", "name", "value", "disabled"];
110
119
  const _hoisted_3 = {
111
- class: "d-radio__copy d-radio__label",
112
- "data-qa": "radio-label-description-container"
120
+ key: 0,
121
+ class: "d-radio__messages",
122
+ "data-qa": "radio-description-messages"
113
123
  };
114
124
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
115
125
  const _component_dt_validation_messages = resolveComponent("dt-validation-messages");
116
126
  return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps($options.addClassStyleAttrs(_ctx.$attrs))), [
117
- createElementVNode("label", null, [
118
- createElementVNode("div", {
119
- class: normalizeClass(["d-radio-group", { "d-radio-group--disabled": _ctx.internalDisabled }])
120
- }, [
121
- createElementVNode("div", _hoisted_1, [
122
- createElementVNode("input", mergeProps({
123
- checked: _ctx.internalChecked,
124
- name: _ctx.internalName,
125
- value: $props.value,
126
- disabled: _ctx.internalDisabled,
127
- type: "radio",
128
- class: ["d-radio", $options.inputValidationClass, _ctx.inputClass]
129
- }, $options.removeClassStyleAttrs(_ctx.$attrs), toHandlers($options.inputListeners, true)), null, 16, _hoisted_2)
130
- ]),
131
- createElementVNode("div", _hoisted_3, [
132
- createElementVNode("div", mergeProps({ class: _ctx.labelClass }, _ctx.labelChildProps, { "data-qa": "radio-label" }), [
133
- renderSlot(_ctx.$slots, "default", {}, () => [
134
- createTextVNode(toDisplayString(_ctx.label), 1)
135
- ])
136
- ], 16),
137
- _ctx.$slots.description || _ctx.description ? (openBlock(), createElementBlock("div", mergeProps({
138
- key: 0,
139
- class: ["d-description", _ctx.descriptionClass]
140
- }, _ctx.descriptionChildProps, { "data-qa": "radio-description" }), [
141
- renderSlot(_ctx.$slots, "description", {}, () => [
142
- createTextVNode(toDisplayString(_ctx.description), 1)
143
- ])
144
- ], 16)) : createCommentVNode("", true),
145
- createVNode(_component_dt_validation_messages, mergeProps({
146
- "validation-messages": _ctx.formattedMessages,
147
- "show-messages": _ctx.showMessages,
148
- class: _ctx.messagesClass
149
- }, _ctx.messagesChildProps, { "data-qa": "dt-radio-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
127
+ createElementVNode("label", {
128
+ class: normalizeClass(["d-radio-group", { "d-radio-group--disabled": _ctx.internalDisabled }])
129
+ }, [
130
+ createElementVNode("div", _hoisted_1, [
131
+ createElementVNode("input", mergeProps({
132
+ checked: _ctx.internalChecked,
133
+ name: _ctx.internalName,
134
+ value: $props.value,
135
+ disabled: _ctx.internalDisabled,
136
+ type: "radio",
137
+ class: ["d-radio", $options.inputValidationClass, _ctx.inputClass]
138
+ }, $options.removeClassStyleAttrs(_ctx.$attrs), toHandlers($options.inputListeners, true)), null, 16, _hoisted_2)
139
+ ]),
140
+ createElementVNode("div", mergeProps({
141
+ class: [_ctx.labelClass, "d-radio__copy d-radio__label"]
142
+ }, _ctx.labelChildProps, { "data-qa": "radio-label" }), [
143
+ renderSlot(_ctx.$slots, "default", {}, () => [
144
+ createTextVNode(toDisplayString(_ctx.label), 1)
145
+ ])
146
+ ], 16)
147
+ ], 2),
148
+ $options.hasDescriptionOrMessages ? (openBlock(), createElementBlock("div", _hoisted_3, [
149
+ $options.hasDescription ? (openBlock(), createElementBlock("div", mergeProps({
150
+ key: 0,
151
+ class: ["d-description", _ctx.descriptionClass]
152
+ }, _ctx.descriptionChildProps, { "data-qa": "radio-description" }), [
153
+ renderSlot(_ctx.$slots, "description", {}, () => [
154
+ createTextVNode(toDisplayString(_ctx.description), 1)
150
155
  ])
151
- ], 2)
152
- ])
156
+ ], 16)) : createCommentVNode("", true),
157
+ createVNode(_component_dt_validation_messages, mergeProps({
158
+ "validation-messages": _ctx.formattedMessages,
159
+ "show-messages": _ctx.showMessages,
160
+ class: _ctx.messagesClass
161
+ }, _ctx.messagesChildProps, { "data-qa": "dt-radio-validation-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
162
+ ])) : createCommentVNode("", true)
153
163
  ], 16);
154
164
  }
155
165
  const radio = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);