@dialpad/dialtone 9.111.1 → 9.112.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/css/dialtone-default-theme.css +143 -112
- package/dist/css/dialtone-default-theme.min.css +1 -1
- package/dist/css/dialtone.css +143 -112
- package/dist/css/dialtone.min.css +1 -1
- package/dist/tokens/doc.json +12060 -12060
- package/dist/vue2/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
- package/dist/vue2/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
- package/dist/vue2/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +5 -5
- package/dist/vue2/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
- package/dist/vue2/lib/root-layout/root-layout.cjs +1 -1
- package/dist/vue2/lib/root-layout/root-layout.cjs.map +1 -1
- package/dist/vue2/lib/root-layout/root-layout.js +10 -7
- package/dist/vue2/lib/root-layout/root-layout.js.map +1 -1
- package/dist/vue2/types/components/root_layout/root_layout.vue.d.ts +1 -0
- package/dist/vue2/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
- package/dist/vue3/common/mixins/input.cjs +1 -1
- package/dist/vue3/common/mixins/input.cjs.map +1 -1
- package/dist/vue3/common/mixins/input.js +12 -16
- package/dist/vue3/common/mixins/input.js.map +1 -1
- package/dist/vue3/component-documentation.json +1 -1
- package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
- package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
- package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +5 -4
- package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
- package/dist/vue3/lib/checkbox/checkbox.cjs +1 -1
- package/dist/vue3/lib/checkbox/checkbox.cjs.map +1 -1
- package/dist/vue3/lib/checkbox/checkbox.js +8 -1
- package/dist/vue3/lib/checkbox/checkbox.js.map +1 -1
- package/dist/vue3/lib/checkbox-group/checkbox-group.cjs +1 -1
- package/dist/vue3/lib/checkbox-group/checkbox-group.cjs.map +1 -1
- package/dist/vue3/lib/checkbox-group/checkbox-group.js +15 -11
- package/dist/vue3/lib/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/vue3/lib/editor/editor.cjs +1 -1
- package/dist/vue3/lib/editor/editor.cjs.map +1 -1
- package/dist/vue3/lib/editor/editor.js +22 -16
- package/dist/vue3/lib/editor/editor.js.map +1 -1
- package/dist/vue3/lib/radio/radio.cjs +1 -1
- package/dist/vue3/lib/radio/radio.cjs.map +1 -1
- package/dist/vue3/lib/radio/radio.js +16 -9
- package/dist/vue3/lib/radio/radio.js.map +1 -1
- package/dist/vue3/lib/radio-group/radio-group.cjs +1 -1
- package/dist/vue3/lib/radio-group/radio-group.cjs.map +1 -1
- package/dist/vue3/lib/radio-group/radio-group.js +12 -5
- package/dist/vue3/lib/radio-group/radio-group.js.map +1 -1
- package/dist/vue3/lib/root-layout/root-layout.cjs +1 -1
- package/dist/vue3/lib/root-layout/root-layout.cjs.map +1 -1
- package/dist/vue3/lib/root-layout/root-layout.js +21 -18
- package/dist/vue3/lib/root-layout/root-layout.js.map +1 -1
- package/dist/vue3/lib/select-menu/select-menu.cjs +1 -1
- package/dist/vue3/lib/select-menu/select-menu.cjs.map +1 -1
- package/dist/vue3/lib/select-menu/select-menu.js +20 -13
- package/dist/vue3/lib/select-menu/select-menu.js.map +1 -1
- package/dist/vue3/lib/toggle/toggle.cjs +1 -1
- package/dist/vue3/lib/toggle/toggle.cjs.map +1 -1
- package/dist/vue3/lib/toggle/toggle.js +33 -29
- package/dist/vue3/lib/toggle/toggle.js.map +1 -1
- package/dist/vue3/types/common/mixins/input.d.ts +2 -5
- package/dist/vue3/types/common/mixins/input.d.ts.map +1 -1
- package/dist/vue3/types/components/checkbox/checkbox.vue.d.ts +4 -6
- package/dist/vue3/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/checkbox_group/checkbox_group.vue.d.ts +5 -4
- package/dist/vue3/types/components/input/input.vue.d.ts +2 -2
- package/dist/vue3/types/components/radio/radio.vue.d.ts +4 -6
- package/dist/vue3/types/components/radio/radio.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/radio_group/radio_group.vue.d.ts +5 -4
- package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +2 -2
- package/dist/vue3/types/components/root_layout/root_layout.vue.d.ts +1 -0
- package/dist/vue3/types/components/select_menu/select_menu.vue.d.ts +2 -1
- package/dist/vue3/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/toggle/toggle.vue.d.ts +5 -4
- package/dist/vue3/types/components/toggle/toggle.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +5 -4
- package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
- package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("@dialpad/dialtone-icons/vue3"),n=require("../../common/utils/index.cjs"),t=require("vue"),p=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),b=require("../callbar-button/callbar-button.cjs"),h=require("../dropdown/dropdown.cjs"),w=require("../button/button.cjs"),f=require("../callbar-button/callbar-button-constants.cjs"),m={name:"DtRecipeCallbarButtonWithDropdown",components:{DtRecipeCallbarButton:b.default,DtDropdown:h.default,DtButton:w.default,DtIconChevronUp:u.DtIconChevronUp},inheritAttrs:!1,props:{id:{type:String,default(){return n.default.getUniqueString()}},ariaLabel:{type:String,default:null,validator:e=>e||(void 0).$slots.default},arrowButtonLabel:{type:String,required:!0,validator:e=>!!e},placement:{type:String,default:"top"},fallbackPlacements:{type:Array,default:()=>["auto"]},disabled:{type:Boolean,default:!1},forceShowArrow:{type:Boolean,default:!1},active:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},onClick:{type:Function,default:null},buttonClass:{type:[String,Array,Object],default:""},textClass:{type:[String,Array,Object],default:""},buttonWidthSize:{type:String,default:"xl",validator:e=>f.CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(e)},invertedTooltip:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:null},tooltipText:{type:String,default:void 0},tooltipDelay:{type:Boolean,default:void 0}},emits:["arrow-click","click","opened"],data(){return{open:!1}},computed:{showArrowButton(){return this.forceShowArrow||!this.disabled},isCompactMode(){return this.buttonWidthSize==="sm"||this.buttonWidthSize==="md"},showDropdown(){return!this.openDropdown||this.open?(this.syncOpenState(),!1):this.toggleOpen()}},mounted(){n.warnIfUnmounted(n.returnFirstEl(this.$el),this.$options.name)},methods:{removeClassStyleAttrs:n.removeClassStyleAttrs,addClassStyleAttrs:n.addClassStyleAttrs,arrowClick(e){return this.$emit("arrow-click",e),this.toggleOpen()},toggleOpen(){return this.open=!this.open},syncOpenState(){this.open=this.openDropdown},buttonClick(e){this.$props.onClick?this.$emit("click",e):this.arrowClick(e)},onModalIsOpened(e){this.open=e,this.$emit("opened",e)}}};function _(e,y,o,S,a,l){const r=t.resolveComponent("dt-recipe-callbar-button"),i=t.resolveComponent("dt-icon-chevron-up"),d=t.resolveComponent("dt-button"),s=t.resolveComponent("dt-dropdown");return t.openBlock(),t.createElementBlock("div",t.mergeProps({class:"dt-recipe--callbar-button-with-dropdown"},l.addClassStyleAttrs(e.$attrs)),[t.createVNode(r,{active:o.active,"aria-label":o.ariaLabel,"button-class":o.buttonClass,"button-width-size":o.buttonWidthSize,danger:o.danger,disabled:o.disabled,"inverted-tooltip":o.invertedTooltip,"show-tooltip":o.showTooltip,"text-class":o.textClass,"tooltip-delay":o.tooltipDelay,"tooltip-text":o.tooltipText,class:"dt-recipe--callbar-button-with-dropdown--main-button",onClick:l.buttonClick},{icon:t.withCtx(()=>[t.renderSlot(e.$slots,"icon")]),tooltip:t.withCtx(()=>[t.renderSlot(e.$slots,"tooltip")]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["active","aria-label","button-class","button-width-size","danger","disabled","inverted-tooltip","show-tooltip","text-class","tooltip-delay","tooltip-text","onClick"]),l.showArrowButton?(t.openBlock(),t.createBlock(s,t.mergeProps({key:0,id:o.id,"fallback-placements":o.fallbackPlacements,open:a.open,placement:o.placement,class:"dt-recipe--callbar-button-with-dropdown--dropdown-wrapper",padding:"none"},l.removeClassStyleAttrs(e.$attrs),{onOpened:l.onModalIsOpened}),{anchor:t.withCtx(()=>[t.createVNode(d,{active:a.open,"aria-label":o.arrowButtonLabel,class:t.normalizeClass(["dt-recipe--callbar-button-with-dropdown--arrow",{"dt-recipe--callbar-button-with-dropdown--arrow--large":!l.isCompactMode}]),circle:"",importance:"clear",size:"lg",width:"2rem",onClick:l.arrowClick},{icon:t.withCtx(()=>[t.createVNode(i,{class:"dt-recipe--callbar-button-with-dropdown--arrow__icon",size:"200"})]),_:1},8,["active","aria-label","class","onClick"])]),list:t.withCtx(({close:c})=>[t.renderSlot(e.$slots,"list",{close:c})]),_:3},16,["id","fallback-placements","open","placement","onOpened"])):t.createCommentVNode("",!0)],16)}const C=p._(m,[["render",_]]);exports.default=C;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("@dialpad/dialtone-icons/vue3"),n=require("../../common/utils/index.cjs"),t=require("vue"),p=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),b=require("../callbar-button/callbar-button.cjs"),h=require("../dropdown/dropdown.cjs"),w=require("../button/button.cjs"),f=require("../callbar-button/callbar-button-constants.cjs"),m={name:"DtRecipeCallbarButtonWithDropdown",components:{DtRecipeCallbarButton:b.default,DtDropdown:h.default,DtButton:w.default,DtIconChevronUp:u.DtIconChevronUp},inheritAttrs:!1,props:{id:{type:String,default(){return n.default.getUniqueString()}},ariaLabel:{type:String,default:null,validator:e=>e||(void 0).$slots.default},arrowButtonLabel:{type:String,required:!0,validator:e=>!!e},placement:{type:String,default:"top"},fallbackPlacements:{type:Array,default:()=>["auto"]},disabled:{type:Boolean,default:!1},forceShowArrow:{type:Boolean,default:!1},active:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},onClick:{type:Function,default:null},buttonClass:{type:[String,Array,Object],default:""},textClass:{type:[String,Array,Object],default:""},buttonWidthSize:{type:String,default:"xl",validator:e=>f.CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(e)},invertedTooltip:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:null},tooltipText:{type:String,default:void 0},tooltipDelay:{type:Boolean,default:void 0}},emits:["arrow-click","click","opened"],data(){return{open:!1}},computed:{showArrowButton(){return this.forceShowArrow||!this.disabled},isCompactMode(){return this.buttonWidthSize==="sm"||this.buttonWidthSize==="md"},showDropdown(){return!this.openDropdown||this.open?(this.syncOpenState(),!1):this.toggleOpen()}},mounted(){n.warnIfUnmounted(n.returnFirstEl(this.$el),this.$options.name)},methods:{removeClassStyleAttrs:n.removeClassStyleAttrs,addClassStyleAttrs:n.addClassStyleAttrs,arrowClick(e){return this.$emit("arrow-click",e),this.toggleOpen()},toggleOpen(){return this.open=!this.open},syncOpenState(){this.open=this.openDropdown},buttonClick(e){this.$props.onClick?this.$emit("click",e):this.arrowClick(e)},onModalIsOpened(e){this.open=e,this.$emit("opened",e)}}};function _(e,y,o,S,a,l){const r=t.resolveComponent("dt-recipe-callbar-button"),i=t.resolveComponent("dt-icon-chevron-up"),d=t.resolveComponent("dt-button"),s=t.resolveComponent("dt-dropdown");return t.openBlock(),t.createElementBlock("div",t.mergeProps({class:"dt-recipe--callbar-button-with-dropdown"},l.addClassStyleAttrs(e.$attrs)),[t.createVNode(r,{active:o.active,"aria-label":o.ariaLabel,"button-class":o.buttonClass,"button-width-size":o.buttonWidthSize,danger:o.danger,disabled:o.disabled,"inverted-tooltip":o.invertedTooltip,"show-tooltip":o.showTooltip,"text-class":o.textClass,"tooltip-delay":o.tooltipDelay,"tooltip-text":o.tooltipText,class:"dt-recipe--callbar-button-with-dropdown--main-button",onClick:l.buttonClick},{icon:t.withCtx(()=>[t.renderSlot(e.$slots,"icon")]),tooltip:t.withCtx(()=>[t.renderSlot(e.$slots,"tooltip")]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["active","aria-label","button-class","button-width-size","danger","disabled","inverted-tooltip","show-tooltip","text-class","tooltip-delay","tooltip-text","onClick"]),l.showArrowButton?(t.openBlock(),t.createBlock(s,t.mergeProps({key:0,id:o.id,"fallback-placements":o.fallbackPlacements,open:a.open,modal:!1,placement:o.placement,class:"dt-recipe--callbar-button-with-dropdown--dropdown-wrapper",padding:"none"},l.removeClassStyleAttrs(e.$attrs),{onOpened:l.onModalIsOpened}),{anchor:t.withCtx(()=>[t.createVNode(d,{active:a.open,"aria-label":o.arrowButtonLabel,class:t.normalizeClass(["dt-recipe--callbar-button-with-dropdown--arrow",{"dt-recipe--callbar-button-with-dropdown--arrow--large":!l.isCompactMode}]),circle:"",importance:"clear",size:"lg",width:"2rem",onClick:l.arrowClick},{icon:t.withCtx(()=>[t.createVNode(i,{class:"dt-recipe--callbar-button-with-dropdown--arrow__icon",size:"200"})]),_:1},8,["active","aria-label","class","onClick"])]),list:t.withCtx(({close:c})=>[t.renderSlot(e.$slots,"list",{close:c})]),_:3},16,["id","fallback-placements","open","placement","onOpened"])):t.createCommentVNode("",!0)],16)}const C=p._(m,[["render",_]]);exports.default=C;
|
|
2
2
|
//# sourceMappingURL=callbar-button-with-dropdown.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbar-button-with-dropdown.cjs","sources":["../../../recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-dropdown\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <dt-recipe-callbar-button\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :danger=\"danger\"\n :disabled=\"disabled\"\n :inverted-tooltip=\"invertedTooltip\"\n :show-tooltip=\"showTooltip\"\n :text-class=\"textClass\"\n :tooltip-delay=\"tooltipDelay\"\n :tooltip-text=\"tooltipText\"\n class=\"dt-recipe--callbar-button-with-dropdown--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-dropdown\n v-if=\"showArrowButton\"\n :id=\"id\"\n :fallback-placements=\"fallbackPlacements\"\n :open=\"open\"\n :placement=\"placement\"\n class=\"dt-recipe--callbar-button-with-dropdown--dropdown-wrapper\"\n padding=\"none\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n :active=\"open\"\n :aria-label=\"arrowButtonLabel\"\n :class=\"['dt-recipe--callbar-button-with-dropdown--arrow',\n { 'dt-recipe--callbar-button-with-dropdown--arrow--large': !isCompactMode }]\"\n circle\n importance=\"clear\"\n size=\"lg\"\n width=\"2rem\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon-chevron-up\n class=\"dt-recipe--callbar-button-with-dropdown--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <slot\n :close=\"close\"\n name=\"list\"\n />\n </template>\n </dt-dropdown>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils, { warnIfUnmounted, removeClassStyleAttrs, addClassStyleAttrs, returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithDropdown',\n\n components: { DtRecipeCallbarButton, DtDropdown, DtButton, DtIconChevronUp },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Whether the tooltip has an inverted background color.\n * @values true, false\n */\n invertedTooltip: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Use this if you would like to manually override the logic for when the tooltip shows.\n * Otherwise it will just show on hover/focus.\n * @values null, true, false\n */\n showTooltip: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The message that displays in the tooltip. This will be overridden by the tooltip slot.\n */\n tooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Whether there is a delay before the tooltip shows on hover/focus.\n * @values true, false\n */\n tooltipDelay: {\n type: Boolean,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal dropdown is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showDropdown () {\n if (!this.openDropdown || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openDropdown;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the dropdown\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n"],"names":["_sfc_main","DtRecipeCallbarButton","DtDropdown","DtButton","DtIconChevronUp","utils","label","this","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","warnIfUnmounted","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","ev","isOpened","_createElementBlock","_mergeProps","$options","_ctx","_createVNode","_component_dt_recipe_callbar_button","$props","_renderSlot","_withCtx","_openBlock","_createBlock","_component_dt_dropdown","$data","_component_dt_button","_normalizeClass","_component_dt_icon_chevron_up","close","_createCommentVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"callbar-button-with-dropdown.cjs","sources":["../../../recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-dropdown\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <dt-recipe-callbar-button\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :danger=\"danger\"\n :disabled=\"disabled\"\n :inverted-tooltip=\"invertedTooltip\"\n :show-tooltip=\"showTooltip\"\n :text-class=\"textClass\"\n :tooltip-delay=\"tooltipDelay\"\n :tooltip-text=\"tooltipText\"\n class=\"dt-recipe--callbar-button-with-dropdown--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-dropdown\n v-if=\"showArrowButton\"\n :id=\"id\"\n :fallback-placements=\"fallbackPlacements\"\n :open=\"open\"\n :modal=\"false\"\n :placement=\"placement\"\n class=\"dt-recipe--callbar-button-with-dropdown--dropdown-wrapper\"\n padding=\"none\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n :active=\"open\"\n :aria-label=\"arrowButtonLabel\"\n :class=\"['dt-recipe--callbar-button-with-dropdown--arrow',\n { 'dt-recipe--callbar-button-with-dropdown--arrow--large': !isCompactMode }]\"\n circle\n importance=\"clear\"\n size=\"lg\"\n width=\"2rem\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon-chevron-up\n class=\"dt-recipe--callbar-button-with-dropdown--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <slot\n :close=\"close\"\n name=\"list\"\n />\n </template>\n </dt-dropdown>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils, { warnIfUnmounted, removeClassStyleAttrs, addClassStyleAttrs, returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithDropdown',\n\n components: { DtRecipeCallbarButton, DtDropdown, DtButton, DtIconChevronUp },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Whether the tooltip has an inverted background color.\n * @values true, false\n */\n invertedTooltip: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Use this if you would like to manually override the logic for when the tooltip shows.\n * Otherwise it will just show on hover/focus.\n * @values null, true, false\n */\n showTooltip: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The message that displays in the tooltip. This will be overridden by the tooltip slot.\n */\n tooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Whether there is a delay before the tooltip shows on hover/focus.\n * @values true, false\n */\n tooltipDelay: {\n type: Boolean,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal dropdown is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showDropdown () {\n if (!this.openDropdown || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openDropdown;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the dropdown\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n"],"names":["_sfc_main","DtRecipeCallbarButton","DtDropdown","DtButton","DtIconChevronUp","utils","label","this","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","warnIfUnmounted","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","ev","isOpened","_createElementBlock","_mergeProps","$options","_ctx","_createVNode","_component_dt_recipe_callbar_button","$props","_renderSlot","_withCtx","_openBlock","_createBlock","_component_dt_dropdown","$data","_component_dt_button","_normalizeClass","_component_dt_icon_chevron_up","close","_createCommentVNode"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DtIconChevronUp as
|
|
2
|
-
import
|
|
1
|
+
import { DtIconChevronUp as f } from "@dialpad/dialtone-icons/vue3";
|
|
2
|
+
import h, { warnIfUnmounted as w, returnFirstEl as y, removeClassStyleAttrs as _, addClassStyleAttrs as C } from "../../common/utils/index.js";
|
|
3
3
|
import { resolveComponent as n, openBlock as d, createElementBlock as g, mergeProps as s, createVNode as r, withCtx as l, renderSlot as a, createBlock as k, normalizeClass as S, createCommentVNode as v } from "vue";
|
|
4
4
|
import { _ as B } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
5
|
import A from "../callbar-button/callbar-button.js";
|
|
@@ -8,7 +8,7 @@ import O from "../button/button.js";
|
|
|
8
8
|
import { CALLBAR_BUTTON_VALID_WIDTH_SIZE as z } from "../callbar-button/callbar-button-constants.js";
|
|
9
9
|
const T = {
|
|
10
10
|
name: "DtRecipeCallbarButtonWithDropdown",
|
|
11
|
-
components: { DtRecipeCallbarButton: A, DtDropdown: D, DtButton: O, DtIconChevronUp:
|
|
11
|
+
components: { DtRecipeCallbarButton: A, DtDropdown: D, DtButton: O, DtIconChevronUp: f },
|
|
12
12
|
/* inheritAttrs: false is generally an option we want to set on library
|
|
13
13
|
components. This allows any attributes passed in that are not recognized
|
|
14
14
|
as props to be passed down to another element or component using v-bind:$attrs
|
|
@@ -21,7 +21,7 @@ const T = {
|
|
|
21
21
|
id: {
|
|
22
22
|
type: String,
|
|
23
23
|
default() {
|
|
24
|
-
return
|
|
24
|
+
return h.getUniqueString();
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
/**
|
|
@@ -262,6 +262,7 @@ function x(t, I, e, L, i, o) {
|
|
|
262
262
|
id: e.id,
|
|
263
263
|
"fallback-placements": e.fallbackPlacements,
|
|
264
264
|
open: i.open,
|
|
265
|
+
modal: !1,
|
|
265
266
|
placement: e.placement,
|
|
266
267
|
class: "dt-recipe--callbar-button-with-dropdown--dropdown-wrapper",
|
|
267
268
|
padding: "none"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbar-button-with-dropdown.js","sources":["../../../recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-dropdown\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <dt-recipe-callbar-button\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :danger=\"danger\"\n :disabled=\"disabled\"\n :inverted-tooltip=\"invertedTooltip\"\n :show-tooltip=\"showTooltip\"\n :text-class=\"textClass\"\n :tooltip-delay=\"tooltipDelay\"\n :tooltip-text=\"tooltipText\"\n class=\"dt-recipe--callbar-button-with-dropdown--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-dropdown\n v-if=\"showArrowButton\"\n :id=\"id\"\n :fallback-placements=\"fallbackPlacements\"\n :open=\"open\"\n :placement=\"placement\"\n class=\"dt-recipe--callbar-button-with-dropdown--dropdown-wrapper\"\n padding=\"none\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n :active=\"open\"\n :aria-label=\"arrowButtonLabel\"\n :class=\"['dt-recipe--callbar-button-with-dropdown--arrow',\n { 'dt-recipe--callbar-button-with-dropdown--arrow--large': !isCompactMode }]\"\n circle\n importance=\"clear\"\n size=\"lg\"\n width=\"2rem\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon-chevron-up\n class=\"dt-recipe--callbar-button-with-dropdown--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <slot\n :close=\"close\"\n name=\"list\"\n />\n </template>\n </dt-dropdown>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils, { warnIfUnmounted, removeClassStyleAttrs, addClassStyleAttrs, returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithDropdown',\n\n components: { DtRecipeCallbarButton, DtDropdown, DtButton, DtIconChevronUp },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Whether the tooltip has an inverted background color.\n * @values true, false\n */\n invertedTooltip: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Use this if you would like to manually override the logic for when the tooltip shows.\n * Otherwise it will just show on hover/focus.\n * @values null, true, false\n */\n showTooltip: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The message that displays in the tooltip. This will be overridden by the tooltip slot.\n */\n tooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Whether there is a delay before the tooltip shows on hover/focus.\n * @values true, false\n */\n tooltipDelay: {\n type: Boolean,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal dropdown is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showDropdown () {\n if (!this.openDropdown || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openDropdown;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the dropdown\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n"],"names":["_sfc_main","DtRecipeCallbarButton","DtDropdown","DtButton","DtIconChevronUp","utils","label","this","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","warnIfUnmounted","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","ev","isOpened","_createElementBlock","_mergeProps","$options","_ctx","_createVNode","_component_dt_recipe_callbar_button","$props","_renderSlot","_withCtx","_openBlock","_createBlock","_component_dt_dropdown","$data","_component_dt_button","_normalizeClass","_component_dt_icon_chevron_up","close","_createCommentVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"callbar-button-with-dropdown.js","sources":["../../../recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-dropdown\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <dt-recipe-callbar-button\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :danger=\"danger\"\n :disabled=\"disabled\"\n :inverted-tooltip=\"invertedTooltip\"\n :show-tooltip=\"showTooltip\"\n :text-class=\"textClass\"\n :tooltip-delay=\"tooltipDelay\"\n :tooltip-text=\"tooltipText\"\n class=\"dt-recipe--callbar-button-with-dropdown--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-dropdown\n v-if=\"showArrowButton\"\n :id=\"id\"\n :fallback-placements=\"fallbackPlacements\"\n :open=\"open\"\n :modal=\"false\"\n :placement=\"placement\"\n class=\"dt-recipe--callbar-button-with-dropdown--dropdown-wrapper\"\n padding=\"none\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n :active=\"open\"\n :aria-label=\"arrowButtonLabel\"\n :class=\"['dt-recipe--callbar-button-with-dropdown--arrow',\n { 'dt-recipe--callbar-button-with-dropdown--arrow--large': !isCompactMode }]\"\n circle\n importance=\"clear\"\n size=\"lg\"\n width=\"2rem\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon-chevron-up\n class=\"dt-recipe--callbar-button-with-dropdown--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <slot\n :close=\"close\"\n name=\"list\"\n />\n </template>\n </dt-dropdown>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils, { warnIfUnmounted, removeClassStyleAttrs, addClassStyleAttrs, returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithDropdown',\n\n components: { DtRecipeCallbarButton, DtDropdown, DtButton, DtIconChevronUp },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Whether the tooltip has an inverted background color.\n * @values true, false\n */\n invertedTooltip: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Use this if you would like to manually override the logic for when the tooltip shows.\n * Otherwise it will just show on hover/focus.\n * @values null, true, false\n */\n showTooltip: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The message that displays in the tooltip. This will be overridden by the tooltip slot.\n */\n tooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Whether there is a delay before the tooltip shows on hover/focus.\n * @values true, false\n */\n tooltipDelay: {\n type: Boolean,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal dropdown is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showDropdown () {\n if (!this.openDropdown || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openDropdown;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the dropdown\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n"],"names":["_sfc_main","DtRecipeCallbarButton","DtDropdown","DtButton","DtIconChevronUp","utils","label","this","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","warnIfUnmounted","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","ev","isOpened","_createElementBlock","_mergeProps","$options","_ctx","_createVNode","_component_dt_recipe_callbar_button","$props","_renderSlot","_withCtx","_openBlock","_createBlock","_component_dt_dropdown","$data","_component_dt_button","_normalizeClass","_component_dt_icon_chevron_up","close","_createCommentVNode"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("../../common/mixins/input.cjs"),o=require("../../common/utils/index.cjs"),r=require("./checkbox-constants.cjs"),s=require("vue"),d=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),c=require("../validation-messages/validation-messages.cjs"),u={compatConfig:{MODE:3},name:"DtCheckbox",components:{DtValidationMessages:c.default},mixins:[l.InputMixin,l.CheckableMixin,l.GroupableMixin,l.MessagesMixin],inheritAttrs:!1,emits:["input","focusin","focusout"],computed:{inputValidationClass(){return r.CHECKBOX_INPUT_VALIDATION_CLASSES[this.internalValidationState]},checkboxGroupValueChecked(){var e,a;return((a=(e=this.groupContext)==null?void 0:e.selectedValues)==null?void 0:a.includes(this.value))??!1},hasLabel(){return!!(this.$slots.default||this.label)},hasMessages(){return this.formattedMessages.length&&this.showMessages},inputListeners(){return{input:()=>{},focusin:e=>this.$emit("focusin",e),focusout:e=>this.$emit("focusout",e),change:e=>this.emitValue(e.target)}}},watch:{checkboxGroupValueChecked:{immediate:!0,handler(e){this.hasGroup&&(this.internalChecked=e)}}},mounted(){this.runValidations()},methods:{removeClassStyleAttrs:o.removeClassStyleAttrs,addClassStyleAttrs:o.addClassStyleAttrs,emitValue(e){let{value:a,checked:i}=e;this.internalIndeterminate&&(i=!1,this.internalIndeterminate=!1,e.checked=!1),this.setGroupValue(a,i),this.$emit("input",i)},runValidations(){this.validateInputLabels(this.hasLabel,this.$attrs["aria-label"])}}},h={class:"d-checkbox__input"},m=["checked","name","value","disabled",".indeterminate"],p={key:0,class:"d-checkbox__messages","data-qa":"checkbox-description-messages"};function b(e,a,i,g,C,t){const n=s.resolveComponent("dt-validation-messages");return s.openBlock(),s.createElementBlock("div",s.normalizeProps(s.guardReactiveProps(t.addClassStyleAttrs(e.$attrs))),[s.createElementVNode("label",{class:s.normalizeClass(["d-checkbox-group",{"d-checkbox-group--disabled":e.internalDisabled}])},[s.createElementVNode("div",h,[s.createElementVNode("input",s.mergeProps({type:"checkbox",checked:e.internalChecked,name:e.internalName,value:e.value,disabled:e.internalDisabled,class:["d-checkbox",t.inputValidationClass,e.inputClass]},t.removeClassStyleAttrs(e.$attrs),{".indeterminate":e.internalIndeterminate},s.toHandlers(t.inputListeners,!0)),null,48,m)]),t.hasLabel?(s.openBlock(),s.createElementBlock("div",s.mergeProps({key:0,class:[e.labelClass,"d-checkbox__copy d-checkbox__label"]},e.labelChildProps,{"data-qa":"checkbox-label"}),[s.renderSlot(e.$slots,"default",{},()=>[s.createTextVNode(s.toDisplayString(e.label),1)])],16)):s.createCommentVNode("",!0)],2),e.$slots.description||e.description||t.hasMessages?(s.openBlock(),s.createElementBlock("div",p,[e.$slots.description||e.description?(s.openBlock(),s.createElementBlock("div",s.mergeProps({key:0,class:["d-description",e.descriptionClass]},e.descriptionChildProps,{"data-qa":"checkbox-description"}),[s.renderSlot(e.$slots,"description",{},()=>[s.createTextVNode(s.toDisplayString(e.description),1)])],16)):s.createCommentVNode("",!0),s.createVNode(n,s.mergeProps({"validation-messages":e.formattedMessages,"show-messages":e.showMessages,class:e.messagesClass},e.messagesChildProps,{"data-qa":"dt-checkbox-validation-messages"}),null,16,["validation-messages","show-messages","class"])])):s.createCommentVNode("",!0)],16)}const k=d._(u,[["render",b]]);exports.default=k;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("../../common/mixins/input.cjs"),o=require("../../common/utils/index.cjs"),r=require("./checkbox-constants.cjs"),s=require("vue"),d=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),c=require("../validation-messages/validation-messages.cjs"),u={compatConfig:{MODE:3},name:"DtCheckbox",components:{DtValidationMessages:c.default},mixins:[l.InputMixin,l.CheckableMixin,l.GroupableMixin,l.MessagesMixin],inheritAttrs:!1,emits:["input","update:modelValue","focusin","focusout"],computed:{inputValidationClass(){return r.CHECKBOX_INPUT_VALIDATION_CLASSES[this.internalValidationState]},checkboxGroupValueChecked(){var e,a;return((a=(e=this.groupContext)==null?void 0:e.selectedValues)==null?void 0:a.includes(this.value))??!1},hasLabel(){return!!(this.$slots.default||this.label)},hasMessages(){return this.formattedMessages.length&&this.showMessages},inputListeners(){return{input:()=>{},focusin:e=>this.$emit("focusin",e),focusout:e=>this.$emit("focusout",e),change:e=>this.emitValue(e.target)}}},watch:{checkboxGroupValueChecked:{immediate:!0,handler(e){this.hasGroup&&(this.internalChecked=e)}}},mounted(){this.runValidations()},methods:{removeClassStyleAttrs:o.removeClassStyleAttrs,addClassStyleAttrs:o.addClassStyleAttrs,emitValue(e){let{value:a,checked:i}=e;this.internalIndeterminate&&(i=!1,this.internalIndeterminate=!1,e.checked=!1),this.setGroupValue(a,i),this.$emit("input",i),this.$emit("update:modelValue",i)},runValidations(){this.validateInputLabels(this.hasLabel,this.$attrs["aria-label"])}}},h={class:"d-checkbox__input"},m=["checked","name","value","disabled",".indeterminate"],p={key:0,class:"d-checkbox__messages","data-qa":"checkbox-description-messages"};function b(e,a,i,g,C,t){const n=s.resolveComponent("dt-validation-messages");return s.openBlock(),s.createElementBlock("div",s.normalizeProps(s.guardReactiveProps(t.addClassStyleAttrs(e.$attrs))),[s.createElementVNode("label",{class:s.normalizeClass(["d-checkbox-group",{"d-checkbox-group--disabled":e.internalDisabled}])},[s.createElementVNode("div",h,[s.createElementVNode("input",s.mergeProps({type:"checkbox",checked:e.internalChecked,name:e.internalName,value:e.value,disabled:e.internalDisabled,class:["d-checkbox",t.inputValidationClass,e.inputClass]},t.removeClassStyleAttrs(e.$attrs),{".indeterminate":e.internalIndeterminate},s.toHandlers(t.inputListeners,!0)),null,48,m)]),t.hasLabel?(s.openBlock(),s.createElementBlock("div",s.mergeProps({key:0,class:[e.labelClass,"d-checkbox__copy d-checkbox__label"]},e.labelChildProps,{"data-qa":"checkbox-label"}),[s.renderSlot(e.$slots,"default",{},()=>[s.createTextVNode(s.toDisplayString(e.label),1)])],16)):s.createCommentVNode("",!0)],2),e.$slots.description||e.description||t.hasMessages?(s.openBlock(),s.createElementBlock("div",p,[e.$slots.description||e.description?(s.openBlock(),s.createElementBlock("div",s.mergeProps({key:0,class:["d-description",e.descriptionClass]},e.descriptionChildProps,{"data-qa":"checkbox-description"}),[s.renderSlot(e.$slots,"description",{},()=>[s.createTextVNode(s.toDisplayString(e.description),1)])],16)):s.createCommentVNode("",!0),s.createVNode(n,s.mergeProps({"validation-messages":e.formattedMessages,"show-messages":e.showMessages,class:e.messagesClass},e.messagesChildProps,{"data-qa":"dt-checkbox-validation-messages"}),null,16,["validation-messages","show-messages","class"])])):s.createCommentVNode("",!0)],16)}const k=d._(u,[["render",b]]);exports.default=k;
|
|
2
2
|
//# sourceMappingURL=checkbox.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.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=\"$slots.description || description || hasMessages\"\n class=\"d-checkbox__messages\"\n data-qa=\"checkbox-description-messages\"\n >\n <div\n v-if=\"$slots.description || description\"\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 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":["_sfc_main","DtValidationMessages","InputMixin","CheckableMixin","GroupableMixin","MessagesMixin","CHECKBOX_INPUT_VALIDATION_CLASSES","_b","_a","event","newCheckboxGroupValueChecked","removeClassStyleAttrs","addClassStyleAttrs","target","value","checked","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","$options","_ctx","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_createVNode","_component_dt_validation_messages"],"mappings":"oXAwEKA,EAAU,CACb,aAAc,CAAE,KAAM,CAAG,EACzB,KAAM,aAEN,WAAY,CAAEC,qBAAAA,EAAAA,OAAsB,EAEpC,OAAQ,CAACC,EAAU,WAAEC,iBAAgBC,EAAAA,eAAgBC,EAAAA,aAAa,EAElE,aAAc,GAEd,MAAO,CAOL,
|
|
1
|
+
{"version":3,"file":"checkbox.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=\"$slots.description || description || hasMessages\"\n class=\"d-checkbox__messages\"\n data-qa=\"checkbox-description-messages\"\n >\n <div\n v-if=\"$slots.description || description\"\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 * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {Boolean}\n */\n 'update:modelValue',\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 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 this.$emit('update:modelValue', checked);\n },\n\n runValidations () {\n this.validateInputLabels(this.hasLabel, this.$attrs['aria-label']);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtValidationMessages","InputMixin","CheckableMixin","GroupableMixin","MessagesMixin","CHECKBOX_INPUT_VALIDATION_CLASSES","_b","_a","event","newCheckboxGroupValueChecked","removeClassStyleAttrs","addClassStyleAttrs","target","value","checked","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","$options","_ctx","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_createVNode","_component_dt_validation_messages"],"mappings":"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"}
|
|
@@ -18,6 +18,13 @@ const I = {
|
|
|
18
18
|
* @type {Boolean}
|
|
19
19
|
*/
|
|
20
20
|
"input",
|
|
21
|
+
/**
|
|
22
|
+
* Event fired to sync the modelValue prop with the parent component
|
|
23
|
+
*
|
|
24
|
+
* @event update:modelValue
|
|
25
|
+
* @type {Boolean}
|
|
26
|
+
*/
|
|
27
|
+
"update:modelValue",
|
|
21
28
|
/**
|
|
22
29
|
* Native input focusin event
|
|
23
30
|
*
|
|
@@ -78,7 +85,7 @@ const I = {
|
|
|
78
85
|
addClassStyleAttrs: g,
|
|
79
86
|
emitValue(e) {
|
|
80
87
|
let { value: a, checked: t } = e;
|
|
81
|
-
this.internalIndeterminate && (t = !1, this.internalIndeterminate = !1, e.checked = !1), this.setGroupValue(a, t), this.$emit("input", t);
|
|
88
|
+
this.internalIndeterminate && (t = !1, this.internalIndeterminate = !1, e.checked = !1), this.setGroupValue(a, t), this.$emit("input", t), this.$emit("update:modelValue", t);
|
|
82
89
|
},
|
|
83
90
|
runValidations() {
|
|
84
91
|
this.validateInputLabels(this.hasLabel, this.$attrs["aria-label"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.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=\"$slots.description || description || hasMessages\"\n class=\"d-checkbox__messages\"\n data-qa=\"checkbox-description-messages\"\n >\n <div\n v-if=\"$slots.description || description\"\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 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":["_sfc_main","DtValidationMessages","InputMixin","CheckableMixin","GroupableMixin","MessagesMixin","CHECKBOX_INPUT_VALIDATION_CLASSES","_b","_a","event","newCheckboxGroupValueChecked","removeClassStyleAttrs","addClassStyleAttrs","target","value","checked","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","$options","_ctx","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_createVNode","_component_dt_validation_messages"],"mappings":";;;;;;AAwEA,MAAKA,IAAU;AAAA,EACb,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,MAAM;AAAA,EAEN,YAAY,EAAE,sBAAAC,EAAsB;AAAA,EAEpC,QAAQ,CAACC,GAAYC,GAAgBC,GAAgBC,CAAa;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,EAAkC,KAAK,uBAAuB;AAAA,IACtE;AAAA,IAED,4BAA6B;;AAC3B,eAAOC,KAAAC,IAAA,KAAK,iBAAL,gBAAAA,EAAmB,mBAAnB,gBAAAD,EAAmC,SAAS,KAAK,WAAU;AAAA,IACnE;AAAA,IAED,WAAY;AACV,aAAO,CAAC,EAAE,KAAK,OAAO,WAAW,KAAK;AAAA,IACvC;AAAA,IAED,cAAe;AACb,aAAO,KAAK,kBAAkB,UAAU,KAAK;AAAA,IAC9C;AAAA,IAED,iBAAkB;AAChB,aAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAML,OAAO,MAAM;AAAA,QAAE;AAAA,QACf,SAAS,CAAAE,MAAS,KAAK,MAAM,WAAWA,CAAK;AAAA,QAC7C,UAAU,CAAAA,MAAS,KAAK,MAAM,YAAYA,CAAK;AAAA,QAC/C,QAAQ,CAAAA,MAAS,KAAK,UAAUA,EAAM,MAAM;AAAA;IAE/C;AAAA,EACF;AAAA,EAED,OAAO;AAAA,IACL,2BAA2B;AAAA,MACzB,WAAW;AAAA,MACX,QAASC,GAA8B;AACrC,QAAI,KAAK,aAEP,KAAK,kBAAkBA;AAAA,MAE1B;AAAA,IACF;AAAA,EACF;AAAA,EAED,UAAW;AACT,SAAK,eAAc;AAAA,EACpB;AAAA,EAED,SAAS;AAAA,IACP,uBAAAC;AAAA,IACA,oBAAAC;AAAA,IAEA,UAAWC,GAAQ;AACjB,UAAI,EAAE,OAAAC,GAAO,SAAAC,EAAU,IAAEF;AAGzB,MAAI,KAAK,0BACPE,IAAU,IACV,KAAK,wBAAwB,IAC7BF,EAAO,UAAU,KAGnB,KAAK,cAAcC,GAAOC,CAAO,GAGjC,KAAK,MAAM,SAASA,CAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"checkbox.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=\"$slots.description || description || hasMessages\"\n class=\"d-checkbox__messages\"\n data-qa=\"checkbox-description-messages\"\n >\n <div\n v-if=\"$slots.description || description\"\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 * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {Boolean}\n */\n 'update:modelValue',\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 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 this.$emit('update:modelValue', checked);\n },\n\n runValidations () {\n this.validateInputLabels(this.hasLabel, this.$attrs['aria-label']);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtValidationMessages","InputMixin","CheckableMixin","GroupableMixin","MessagesMixin","CHECKBOX_INPUT_VALIDATION_CLASSES","_b","_a","event","newCheckboxGroupValueChecked","removeClassStyleAttrs","addClassStyleAttrs","target","value","checked","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","$options","_ctx","_createElementVNode","_normalizeClass","_mergeProps","_toHandlers","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_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 u=require("vue"),l=require("../input-group/input-group.cjs"),s={compatConfig:{MODE:3},name:"DtCheckboxGroup",extends:l.default,
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("vue"),l=require("../input-group/input-group.cjs"),s={compatConfig:{MODE:3},name:"DtCheckboxGroup",extends:l.default,props:{modelValue:{type:[],default:null,validator:e=>e?(u.warn("Component uses selectedValues to initialize the model, modelValue is not supported by this component",void 0),!1):!0},selectedValues:{type:Array,default(){return[]}},dataQaGroup:{type:String,default:"checkbox-group"},dataQaGroupLegend:{type:String,default:"checkbox-group-legend"},dataQaGroupMessages:{type:String,default:"checkbox-group-messages"}},emits:["input","update:selectedValues"],data(){return{internalValue:this.selectedValues}},watch:{selectedValues(e){this.internalValue=e},internalValue:{immediate:!0,handler(e){this.provideObj.selectedValues=e}}},methods:{setGroupValue(e,t){t?this.internalValue.includes(e)||this.internalValue.push(e):this.internalValue=this.internalValue.filter(a=>a!==e),this.$emit("input",this.internalValue),this.$emit("update:selectedValues",this.internalValue)},getMessageKey(e,t){return`checkbox-group-message-${e}-${t}-${this.id}`}}};exports.default=s;
|
|
2
2
|
//# sourceMappingURL=checkbox-group.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-group.cjs","sources":["../../../components/checkbox_group/checkbox_group.vue"],"sourcesContent":["<script>\nimport { warn } from 'vue';\nimport { DtInputGroup } from '../input_group';\n\n/**\n * Checkbox Groups are convenience components for a grouping of related Checkboxes.\n * While each Checkbox within the group is independent, the `v-model` on the group provides\n * a convenient interface for determining which Checkboxes within the group are checked.\n * @see https://dialtone.dialpad.com/components/checkbox_group.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCheckboxGroup',\n\n extends: DtInputGroup,\n\n
|
|
1
|
+
{"version":3,"file":"checkbox-group.cjs","sources":["../../../components/checkbox_group/checkbox_group.vue"],"sourcesContent":["<script>\nimport { warn } from 'vue';\nimport { DtInputGroup } from '../input_group';\n\n/**\n * Checkbox Groups are convenience components for a grouping of related Checkboxes.\n * While each Checkbox within the group is independent, the `v-model` on the group provides\n * a convenient interface for determining which Checkboxes within the group are checked.\n * @see https://dialtone.dialpad.com/components/checkbox_group.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCheckboxGroup',\n\n extends: DtInputGroup,\n\n props: {\n /**\n * Not supported by this component, please use selectedValues\n */\n modelValue: {\n type: [],\n default: null,\n validator: value => {\n if (!value) {\n return true;\n }\n\n warn(\n 'Component uses selectedValues to initialize the model, modelValue is not supported by this component',\n this,\n );\n\n return false;\n },\n },\n\n /**\n * A provided list of selected values(s) for the checkbox group\n * @model selectedValues\n */\n selectedValues: {\n type: Array,\n default () {\n return [];\n },\n },\n\n /**\n * A data qa tag for the radio group\n */\n dataQaGroup: {\n type: String,\n default: 'checkbox-group',\n },\n\n /**\n * A data qa tag for the radio group legend\n */\n dataQaGroupLegend: {\n type: String,\n default: 'checkbox-group-legend',\n },\n\n /**\n * A data qa tag for the radio group messages\n */\n dataQaGroupMessages: {\n type: String,\n default: 'checkbox-group-messages',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {Array}\n */\n 'input',\n /**\n * Selected values for the checkbox group\n *\n * @event input\n * @type {Array}\n */\n 'update:selectedValues',\n ],\n\n data () {\n return {\n internalValue: this.selectedValues,\n };\n },\n\n watch: {\n selectedValues (newSelectedValues) {\n this.internalValue = newSelectedValues;\n },\n\n /*\n * watching value to support 2 way binding for slotted checkboxes.\n * need this to pass value to slotted checkboxes if modified outside\n * checkbox group.\n */\n internalValue: {\n immediate: true,\n handler (newInternalValue) {\n this.provideObj.selectedValues = newInternalValue;\n },\n },\n },\n\n methods: {\n /*\n * provided value to support 2 way binding for slotted checkboxes.\n * slotted checkbox will change this value and need to emit new value up.\n */\n setGroupValue (value, checked) {\n if (!checked) {\n this.internalValue = this.internalValue.filter(checkedValue => checkedValue !== value);\n } else if (!this.internalValue.includes(value)) {\n this.internalValue.push(value);\n }\n\n this.$emit('input', this.internalValue);\n this.$emit('update:selectedValues', this.internalValue);\n },\n\n getMessageKey (type, index) {\n return `checkbox-group-message-${type}-${index}-${this.id}`;\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtInputGroup","value","warn","this","newSelectedValues","newInternalValue","checked","checkedValue","type","index"],"mappings":"+KAUKA,EAAU,CACb,aAAc,CAAE,KAAM,CAAG,EACzB,KAAM,kBAEN,QAASC,EAAY,QAErB,MAAO,CAIL,WAAY,CACV,KAAM,CAAE,EACR,QAAS,KACT,UAAWC,GACJA,GAILC,EAAI,KACF,uGACAC,QAGK,IARE,EAUZ,EAMD,eAAgB,CACd,KAAM,MACN,SAAW,CACT,MAAO,EACR,CACF,EAKD,YAAa,CACX,KAAM,OACN,QAAS,gBACV,EAKD,kBAAmB,CACjB,KAAM,OACN,QAAS,uBACV,EAKD,oBAAqB,CACnB,KAAM,OACN,QAAS,yBACV,CACF,EAED,MAAO,CAOL,QAOA,uBACD,EAED,MAAQ,CACN,MAAO,CACL,cAAe,KAAK,eAEvB,EAED,MAAO,CACL,eAAgBC,EAAmB,CACjC,KAAK,cAAgBA,CACtB,EAOD,cAAe,CACb,UAAW,GACX,QAASC,EAAkB,CACzB,KAAK,WAAW,eAAiBA,CAClC,CACF,CACF,EAED,QAAS,CAKP,cAAeJ,EAAOK,EAAS,CACxBA,EAEO,KAAK,cAAc,SAASL,CAAK,GAC3C,KAAK,cAAc,KAAKA,CAAK,EAF7B,KAAK,cAAgB,KAAK,cAAc,OAAOM,GAAgBA,IAAiBN,CAAK,EAKvF,KAAK,MAAM,QAAS,KAAK,aAAa,EACtC,KAAK,MAAM,wBAAyB,KAAK,aAAa,CACvD,EAED,cAAeO,EAAMC,EAAO,CAC1B,MAAO,0BAA0BD,CAAI,IAAIC,CAAK,IAAI,KAAK,EAAE,EAC1D,CACF,CACH"}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { warn as s } from "vue";
|
|
2
|
-
import
|
|
3
|
-
const
|
|
2
|
+
import l from "../input-group/input-group.js";
|
|
3
|
+
const n = {
|
|
4
4
|
compatConfig: { MODE: 3 },
|
|
5
5
|
name: "DtCheckboxGroup",
|
|
6
|
-
extends:
|
|
7
|
-
model: {
|
|
8
|
-
prop: "selectedValues"
|
|
9
|
-
},
|
|
6
|
+
extends: l,
|
|
10
7
|
props: {
|
|
11
8
|
/**
|
|
12
9
|
* Not supported by this component, please use selectedValues
|
|
13
10
|
*/
|
|
14
|
-
|
|
11
|
+
modelValue: {
|
|
15
12
|
type: [],
|
|
16
13
|
default: null,
|
|
17
14
|
validator: (e) => e ? (s(
|
|
18
|
-
"Component uses selectedValues to initialize the model,
|
|
15
|
+
"Component uses selectedValues to initialize the model, modelValue is not supported by this component",
|
|
19
16
|
void 0
|
|
20
17
|
), !1) : !0
|
|
21
18
|
},
|
|
@@ -58,7 +55,14 @@ const i = {
|
|
|
58
55
|
* @event input
|
|
59
56
|
* @type {Array}
|
|
60
57
|
*/
|
|
61
|
-
"input"
|
|
58
|
+
"input",
|
|
59
|
+
/**
|
|
60
|
+
* Selected values for the checkbox group
|
|
61
|
+
*
|
|
62
|
+
* @event input
|
|
63
|
+
* @type {Array}
|
|
64
|
+
*/
|
|
65
|
+
"update:selectedValues"
|
|
62
66
|
],
|
|
63
67
|
data() {
|
|
64
68
|
return {
|
|
@@ -87,7 +91,7 @@ const i = {
|
|
|
87
91
|
* slotted checkbox will change this value and need to emit new value up.
|
|
88
92
|
*/
|
|
89
93
|
setGroupValue(e, t) {
|
|
90
|
-
t ? this.internalValue.includes(e) || this.internalValue.push(e) : this.internalValue = this.internalValue.filter((a) => a !== e), this.$emit("input", this.internalValue);
|
|
94
|
+
t ? this.internalValue.includes(e) || this.internalValue.push(e) : this.internalValue = this.internalValue.filter((a) => a !== e), this.$emit("input", this.internalValue), this.$emit("update:selectedValues", this.internalValue);
|
|
91
95
|
},
|
|
92
96
|
getMessageKey(e, t) {
|
|
93
97
|
return `checkbox-group-message-${e}-${t}-${this.id}`;
|
|
@@ -95,6 +99,6 @@ const i = {
|
|
|
95
99
|
}
|
|
96
100
|
};
|
|
97
101
|
export {
|
|
98
|
-
|
|
102
|
+
n as default
|
|
99
103
|
};
|
|
100
104
|
//# sourceMappingURL=checkbox-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-group.js","sources":["../../../components/checkbox_group/checkbox_group.vue"],"sourcesContent":["<script>\nimport { warn } from 'vue';\nimport { DtInputGroup } from '../input_group';\n\n/**\n * Checkbox Groups are convenience components for a grouping of related Checkboxes.\n * While each Checkbox within the group is independent, the `v-model` on the group provides\n * a convenient interface for determining which Checkboxes within the group are checked.\n * @see https://dialtone.dialpad.com/components/checkbox_group.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCheckboxGroup',\n\n extends: DtInputGroup,\n\n
|
|
1
|
+
{"version":3,"file":"checkbox-group.js","sources":["../../../components/checkbox_group/checkbox_group.vue"],"sourcesContent":["<script>\nimport { warn } from 'vue';\nimport { DtInputGroup } from '../input_group';\n\n/**\n * Checkbox Groups are convenience components for a grouping of related Checkboxes.\n * While each Checkbox within the group is independent, the `v-model` on the group provides\n * a convenient interface for determining which Checkboxes within the group are checked.\n * @see https://dialtone.dialpad.com/components/checkbox_group.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCheckboxGroup',\n\n extends: DtInputGroup,\n\n props: {\n /**\n * Not supported by this component, please use selectedValues\n */\n modelValue: {\n type: [],\n default: null,\n validator: value => {\n if (!value) {\n return true;\n }\n\n warn(\n 'Component uses selectedValues to initialize the model, modelValue is not supported by this component',\n this,\n );\n\n return false;\n },\n },\n\n /**\n * A provided list of selected values(s) for the checkbox group\n * @model selectedValues\n */\n selectedValues: {\n type: Array,\n default () {\n return [];\n },\n },\n\n /**\n * A data qa tag for the radio group\n */\n dataQaGroup: {\n type: String,\n default: 'checkbox-group',\n },\n\n /**\n * A data qa tag for the radio group legend\n */\n dataQaGroupLegend: {\n type: String,\n default: 'checkbox-group-legend',\n },\n\n /**\n * A data qa tag for the radio group messages\n */\n dataQaGroupMessages: {\n type: String,\n default: 'checkbox-group-messages',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {Array}\n */\n 'input',\n /**\n * Selected values for the checkbox group\n *\n * @event input\n * @type {Array}\n */\n 'update:selectedValues',\n ],\n\n data () {\n return {\n internalValue: this.selectedValues,\n };\n },\n\n watch: {\n selectedValues (newSelectedValues) {\n this.internalValue = newSelectedValues;\n },\n\n /*\n * watching value to support 2 way binding for slotted checkboxes.\n * need this to pass value to slotted checkboxes if modified outside\n * checkbox group.\n */\n internalValue: {\n immediate: true,\n handler (newInternalValue) {\n this.provideObj.selectedValues = newInternalValue;\n },\n },\n },\n\n methods: {\n /*\n * provided value to support 2 way binding for slotted checkboxes.\n * slotted checkbox will change this value and need to emit new value up.\n */\n setGroupValue (value, checked) {\n if (!checked) {\n this.internalValue = this.internalValue.filter(checkedValue => checkedValue !== value);\n } else if (!this.internalValue.includes(value)) {\n this.internalValue.push(value);\n }\n\n this.$emit('input', this.internalValue);\n this.$emit('update:selectedValues', this.internalValue);\n },\n\n getMessageKey (type, index) {\n return `checkbox-group-message-${type}-${index}-${this.id}`;\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtInputGroup","value","warn","this","newSelectedValues","newInternalValue","checked","checkedValue","type","index"],"mappings":";;AAUK,MAAAA,IAAU;AAAA,EACb,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,MAAM;AAAA,EAEN,SAASC;AAAA,EAET,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,YAAY;AAAA,MACV,MAAM,CAAE;AAAA,MACR,SAAS;AAAA,MACT,WAAW,CAAAC,MACJA,KAILC;AAAA,QACE;AAAA,QACAC;AAAAA,SAGK,MARE;AAAA,IAUZ;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,UAAW;AACT,eAAO;MACR;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL,eAAe,KAAK;AAAA;EAEvB;AAAA,EAED,OAAO;AAAA,IACL,eAAgBC,GAAmB;AACjC,WAAK,gBAAgBA;AAAA,IACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,eAAe;AAAA,MACb,WAAW;AAAA,MACX,QAASC,GAAkB;AACzB,aAAK,WAAW,iBAAiBA;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAED,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,cAAeJ,GAAOK,GAAS;AAC7B,MAAKA,IAEO,KAAK,cAAc,SAASL,CAAK,KAC3C,KAAK,cAAc,KAAKA,CAAK,IAF7B,KAAK,gBAAgB,KAAK,cAAc,OAAO,CAAAM,MAAgBA,MAAiBN,CAAK,GAKvF,KAAK,MAAM,SAAS,KAAK,aAAa,GACtC,KAAK,MAAM,yBAAyB,KAAK,aAAa;AAAA,IACvD;AAAA,IAED,cAAeO,GAAMC,GAAO;AAC1B,aAAO,0BAA0BD,CAAI,IAAIC,CAAK,IAAI,KAAK,EAAE;AAAA,IAC1D;AAAA,EACF;AACH;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const g=require("./editor-constants.cjs"),B=require("../../common/utils/index.cjs"),o=require("@dialpad/dialtone-icons/vue3"),e=require("vue"),C=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),L=require("../rich-text-editor/rich-text-editor.cjs"),T=require("../button/button.cjs"),b=require("../popover/popover.cjs"),x=require("../stack/stack.cjs"),A=require("../input/input.cjs"),_=require("../tooltip/tooltip.cjs"),f=require("../rich-text-editor/rich-text-editor-constants.cjs"),y={compatConfig:{MODE:3},name:"DtRecipeEditor",components:{DtRichTextEditor:L.default,DtButton:T.default,DtPopover:b.default,DtStack:x.default,DtInput:A.default,DtTooltip:_.default,DtIconLightningBolt:o.DtIconLightningBolt,DtIconBold:o.DtIconBold,DtIconItalic:o.DtIconItalic,DtIconUnderline:o.DtIconUnderline,DtIconStrikethrough:o.DtIconStrikethrough,DtIconListBullet:o.DtIconListBullet,DtIconListOrdered:o.DtIconListOrdered,DtIconAlignLeft:o.DtIconAlignLeft,DtIconAlignCenter:o.DtIconAlignCenter,DtIconAlignRight:o.DtIconAlignRight,DtIconAlignJustify:o.DtIconAlignJustify,DtIconQuote:o.DtIconQuote,DtIconCodeBlock:o.DtIconCodeBlock,DtIconLink2:o.DtIconLink2,DtIconImage:o.DtIconImage},mixins:[],inheritAttrs:!1,props:{value:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:""},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(t){return typeof t=="string"?f.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(t):!0}},placeholder:{type:String,default:""},maxHeight:{type:String,default:"unset"},confirmSetLinkButton:{type:Object,default:()=>({label:"Confirm",ariaLabel:"Confirm set link"})},removeLinkButton:{type:Object,default:()=>({label:"Remove",ariaLabel:"Remove link"})},cancelSetLinkButton:{type:Object,default:()=>({label:"Cancel",ariaLabel:"Cancel set link"})},setLinkPlaceholder:{type:String,default:""},showBoldButton:{type:Boolean,default:!0},showItalicsButton:{type:Boolean,default:!0},showUnderlineButton:{type:Boolean,default:!0},showStrikeButton:{type:Boolean,default:!0},showListItemsButton:{type:Boolean,default:!0},showOrderedListButton:{type:Boolean,default:!0},showAlignLeftButton:{type:Boolean,default:!0},showAlignCenterButton:{type:Boolean,default:!0},showAlignRightButton:{type:Boolean,default:!0},showAlignJustifyButton:{type:Boolean,default:!0},showQuoteButton:{type:Boolean,default:!0},showCodeBlockButton:{type:Boolean,default:!0},showQuickRepliesButton:{type:Boolean,default:!0},showInlineImageButton:{type:Boolean,default:!1},showAddLink:{type:Object,default:()=>({showAddLinkButton:!0,setLinkTitle:"Add a link",setLinkInputAriaLabel:"Input field to add link"})},useDivTags:{type:Boolean,default:!1}},emits:["focus","blur","input","quick-replies-click","inline-image-click","text-input"],data(){return{internalInputValue:this.value,hasFocus:!1,linkOptions:{class:"d-recipe-editor__link"},showLinkInput:!1,linkInput:""}},computed:{inputLength(){return this.internalInputValue.length},htmlOutputFormat(){return f.RICH_TEXT_EDITOR_OUTPUT_FORMATS[2]},showingTextFormatButtons(){return this.showBoldButton||this.showItalicsButton||this.showStrikeButton||this.showUnderlineButton},showingAlignmentButtons(){return this.showAlignLeftButton||this.showAlignCenterButton||this.showAlignRightButton||this.showAlignJustifyButton},showingListButtons(){return this.showListItemsButton||this.showOrderedListButton},buttonGroups(){const t=this.individualButtons.map(i=>({key:i.selector,buttonGroup:[i]}));return[{key:"new",buttonGroup:this.newButtons},{key:"format",buttonGroup:this.textFormatButtons},{key:"alignment",buttonGroup:this.alignmentButtons},{key:"list",buttonGroup:this.listButtons},...t].filter(i=>i.buttonGroup.length>0)},newButtons(){return[{showBtn:this.showQuickRepliesButton,label:"Quick reply",selector:"quickReplies",icon:o.DtIconLightningBolt,dataQA:"dt-recipe-editor-quick-replies-btn",tooltipMessage:"Quick Reply",onClick:this.onQuickRepliesClick}].filter(t=>t.showBtn)},textFormatButtons(){return[{showBtn:this.showBoldButton,selector:"bold",icon:o.DtIconBold,dataQA:"dt-recipe-editor-bold-btn",tooltipMessage:"Bold",onClick:this.onBoldTextToggle},{showBtn:this.showItalicsButton,selector:"italic",icon:o.DtIconItalic,dataQA:"dt-recipe-editor-italics-btn",tooltipMessage:"Italics",onClick:this.onItalicTextToggle},{showBtn:this.showUnderlineButton,selector:"underline",icon:o.DtIconUnderline,dataQA:"dt-recipe-editor-underline-btn",tooltipMessage:"Underline",onClick:this.onUnderlineTextToggle},{showBtn:this.showStrikeButton,selector:"strike",icon:o.DtIconStrikethrough,dataQA:"dt-recipe-editor-strike-btn",tooltipMessage:"Strike",onClick:this.onStrikethroughTextToggle}].filter(t=>t.showBtn)},alignmentButtons(){return[{showBtn:this.showAlignLeftButton,selector:{textAlign:"left"},icon:o.DtIconAlignLeft,dataQA:"dt-recipe-editor-align-left-btn",tooltipMessage:"Align Left",onClick:()=>this.onTextAlign("left")},{showBtn:this.showAlignCenterButton,selector:{textAlign:"center"},icon:o.DtIconAlignCenter,dataQA:"dt-recipe-editor-align-center-btn",tooltipMessage:"Align Center",onClick:()=>this.onTextAlign("center")},{showBtn:this.showAlignRightButton,selector:{textAlign:"right"},icon:o.DtIconAlignRight,dataQA:"dt-recipe-editor-align-right-btn",tooltipMessage:"Align Right",onClick:()=>this.onTextAlign("right")},{showBtn:this.showAlignJustifyButton,selector:{textAlign:"justify"},icon:o.DtIconAlignJustify,dataQA:"dt-recipe-editor-align-justify-btn",tooltipMessage:"Align Justify",onClick:()=>this.onTextAlign("justify")}].filter(t=>t.showBtn)},listButtons(){return[{showBtn:this.showListItemsButton,selector:"bulletList",icon:o.DtIconListBullet,dataQA:"dt-recipe-editor-list-items-btn",tooltipMessage:"Bullet List",onClick:this.onBulletListToggle},{showBtn:this.showOrderedListButton,selector:"orderedList",icon:o.DtIconListOrdered,dataQA:"dt-recipe-editor-ordered-list-items-btn",tooltipMessage:"Ordered List",onClick:this.onOrderedListToggle}].filter(t=>t.showBtn)},individualButtons(){return[{showBtn:this.showQuoteButton,selector:"blockquote",icon:o.DtIconQuote,dataQA:"dt-recipe-editor-blockquote-btn",tooltipMessage:"Quote",onClick:this.onBlockquoteToggle},{showBtn:this.showCodeBlockButton,selector:"codeBlock",icon:o.DtIconCodeBlock,dataQA:"dt-recipe-editor-code-block-btn",tooltipMessage:"Code",onClick:this.onCodeBlockToggle},{showBtn:this.showInlineImageButton,selector:"image",icon:o.DtIconImage,dataQA:"dt-recipe-editor-inline-image-btn",tooltipMessage:"Image",onClick:this.onInsertInlineImageClick}].filter(t=>t.showBtn)},linkButton(){return{showBtn:this.showAddLink.showAddLinkButton,selector:"link",icon:o.DtIconLink2,dataQA:"dt-recipe-editor-add-link-btn",tooltipMessage:"Link",onClick:this.openLinkInput}}},watch:{value(t){this.internalInputValue=t}},methods:{removeClassStyleAttrs:B.removeClassStyleAttrs,addClassStyleAttrs:B.addClassStyleAttrs,onInputFocus(t){t==null||t.stopPropagation()},removeLink(){var t,i,l,s,r;(r=(s=(l=(i=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:i.chain())==null?void 0:l.focus())==null?void 0:s.unsetLink())==null||r.run(),this.closeLinkInput()},setLink(t){var r,n,u;const i=(r=this.$refs.richTextEditor)==null?void 0:r.editor;if(t==null||t.preventDefault(),t==null||t.stopPropagation(),!this.linkInput){this.removeLink();return}g.EDITOR_SUPPORTED_LINK_PROTOCOLS.find(d=>d.test(this.linkInput))||(this.linkInput=`${g.EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`);const s=(u=(n=i==null?void 0:i.view)==null?void 0:n.state)==null?void 0:u.selection;s.anchor===s.head?i.chain().focus().insertContentAt(s.anchor,`<a class="${this.linkOptions.class}" href=${this.linkInput}>${this.linkInput}</a>`).run():i.chain().focus().extendMarkRange("link").setLink({href:this.linkInput,class:this.linkOptions.class}).run(),this.closeLinkInput()},openLinkInput(){this.showLinkInput=!0},updateInput(t){var i,l,s;if(!t)return this.closeLinkInput();this.linkInput=(s=(l=(i=this.$refs.richTextEditor)==null?void 0:i.editor)==null?void 0:l.getAttributes("link"))==null?void 0:s.href},closeLinkInput(){var t;this.showLinkInput=!1,this.linkInput="",(t=this.$refs.richTextEditor.editor)==null||t.chain().focus()},onBoldTextToggle(){var t,i;(i=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null||i.chain().focus().toggleBold().run()},onItalicTextToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleItalic().run()},onUnderlineTextToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleUnderline().run()},onStrikethroughTextToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleStrike().run()},onTextAlign(t){var i,l,s,r;if((l=(i=this.$refs.richTextEditor)==null?void 0:i.editor)!=null&&l.isActive({textAlign:t}))return(s=this.$refs.richTextEditor)==null?void 0:s.editor.chain().focus().unsetTextAlign().run();(r=this.$refs.richTextEditor)==null||r.editor.chain().focus().setTextAlign(t).run()},onBulletListToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleBulletList().run()},onOrderedListToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleOrderedList().run()},onCodeBlockToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleCodeBlock().run()},onQuickRepliesClick(){this.$emit("quick-replies-click")},onInsertInlineImageClick(){this.$emit("inline-image-click")},insertInlineImage(t){var i;(i=this.$refs.richTextEditor)==null||i.editor.chain().focus().setImage({src:t}).run()},insertInMessageBody(t){var i;(i=this.$refs.richTextEditor)==null||i.editor.chain().focus().insertContent(t).run()},setCursorPosition(t=null){var i;(i=this.$refs.richTextEditor)==null||i.editor.chain().focus(t).run()},onBlockquoteToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleBlockquote().run()},onTextInput(t){this.$emit("text-input",t)},onFocus(t){this.hasFocus=!0,this.$emit("focus",t)},onBlur(t){this.hasFocus=!1,this.$emit("blur",t)},onInput(t){this.$emit("input",t)}}},D=e.createElementVNode("div",{class:"d-recipe-editor__button-group-divider"},null,-1),v={class:"d-recipe-editor__popover-content"},E={key:0};function S(t,i,l,s,r,n){const u=e.resolveComponent("dt-button"),d=e.resolveComponent("dt-tooltip"),h=e.resolveComponent("dt-stack"),I=e.resolveComponent("dt-input"),m=e.resolveComponent("dt-popover"),w=e.resolveComponent("dt-rich-text-editor");return e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"d-recipe-editor"},n.addClassStyleAttrs(t.$attrs),{"data-qa":"dt-recipe-editor",role:"presentation",onClick:i[4]||(i[4]=a=>t.$refs.richTextEditor.focusEditor())}),[e.createVNode(h,{class:"d-recipe-editor__top-bar",direction:"row",gap:"450"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.buttonGroups,a=>(e.openBlock(),e.createBlock(h,{key:a.key,direction:"row",gap:"300"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.buttonGroup,c=>(e.openBlock(),e.createBlock(d,{key:`${a.key}-${JSON.stringify(c.selector)}`,message:c.tooltipMessage,placement:"top"},{anchor:e.withCtx(()=>{var p,k;return[e.createVNode(u,{active:(k=(p=t.$refs.richTextEditor)==null?void 0:p.editor)==null?void 0:k.isActive(c.selector),"aria-label":c.tooltipMessage,"data-qa":c.dataQA,importance:"clear",kind:"muted",size:"xs",onClick:q=>c.onClick()},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.icon),{size:"200"}))]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(c==null?void 0:c.label),1)]),_:2},1032,["active","aria-label","data-qa","onClick"])]}),_:2},1032,["message"]))),128)),D]),_:2},1024))),128)),n.linkButton.showBtn?(e.openBlock(),e.createBlock(h,{key:0,direction:"row",gap:"300"},{default:e.withCtx(()=>[e.createVNode(m,{open:r.showLinkInput,"show-close-button":!1,"visually-hidden-close":!0,"visually-hidden-close-label":"Close link input popover","data-qa":"dt-recipe-editor-link-input-popover",padding:"none",placement:"bottom-start",onClick:[n.onInputFocus,e.withModifiers(n.onInputFocus,["stop"])],onOpened:n.updateInput},{anchor:e.withCtx(()=>[(e.openBlock(),e.createBlock(d,{key:n.linkButton.key,message:n.linkButton.tooltipMessage,placement:"top"},{anchor:e.withCtx(()=>{var a,c;return[e.createVNode(u,{active:(c=(a=t.$refs.richTextEditor)==null?void 0:a.editor)==null?void 0:c.isActive(n.linkButton.selector),"aria-label":n.linkButton.tooltipMessage,"data-qa":n.linkButton.dataQA,importance:"clear",kind:"muted",size:"xs",onClick:i[0]||(i[0]=p=>n.linkButton.onClick())},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.linkButton.icon),{size:"200"}))]),_:1},8,["active","aria-label","data-qa"])]}),_:1},8,["message"]))]),content:e.withCtx(()=>[e.createElementVNode("div",v,[l.showAddLink.setLinkTitle.length>0?(e.openBlock(),e.createElementBlock("span",E,e.toDisplayString(l.showAddLink.setLinkTitle),1)):e.createCommentVNode("",!0),e.createVNode(I,{modelValue:r.linkInput,"onUpdate:modelValue":i[1]||(i[1]=a=>r.linkInput=a),"input-aria-label":l.showAddLink.setLinkInputAriaLabel,placeholder:l.setLinkPlaceholder,"data-qa":"dt-recipe-editor-link-input","input-wrapper-class":"d-recipe-editor-link__input-wrapper",onClick:[n.onInputFocus,e.withModifiers(n.onInputFocus,["stop"])],onFocus:n.onInputFocus,onKeydown:e.withKeys(n.setLink,["enter"])},null,8,["modelValue","input-aria-label","placeholder","onClick","onFocus","onKeydown"])])]),footerContent:e.withCtx(()=>[e.createVNode(h,{direction:"row",gap:"300",class:"d-recipe-editor__popover-footer"},{default:e.withCtx(()=>[e.createVNode(u,{"aria-label":l.removeLinkButton.ariaLabel,"data-qa":"dt-recipe-editor-remove-link-btn",importance:"clear",kind:"muted",size:"sm",onClick:n.removeLink},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.removeLinkButton.label),1)]),_:1},8,["aria-label","onClick"]),e.createVNode(u,{"aria-label":l.cancelSetLinkButton.ariaLabel,"data-qa":"dt-recipe-editor-set-link-cancel-btn",importance:"clear",kind:"muted",size:"sm",onClick:n.closeLinkInput},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.cancelSetLinkButton.label),1)]),_:1},8,["aria-label","onClick"]),e.createVNode(u,{"aria-label":l.confirmSetLinkButton.ariaLabel,"data-qa":"dt-recipe-editor-set-link-confirm-btn",size:"sm",onClick:n.setLink},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.confirmSetLinkButton.label),1)]),_:1},8,["aria-label","onClick"])]),_:1})]),_:1},8,["open","onClick","onOpened"])]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",{style:e.normalizeStyle({"max-height":l.maxHeight}),class:"d-recipe-editor__content"},[e.createVNode(w,e.mergeProps({ref:"richTextEditor",modelValue:r.internalInputValue,"onUpdate:modelValue":i[2]||(i[2]=a=>r.internalInputValue=a),"allow-inline-images":!0,"allow-line-breaks":!0,"hide-link-bubble-menu":!0,"auto-focus":l.autoFocus,editable:l.editable,"input-aria-label":l.inputAriaLabel,"input-class":`d-recipe-editor__content-input ${l.inputClass}`,link:!0,"output-format":n.htmlOutputFormat,placeholder:l.placeholder,"use-div-tags":l.useDivTags,"data-qa":"dt-rich-text-editor"},n.removeClassStyleAttrs(t.$attrs),{onTextInput:n.onTextInput,onBlur:n.onBlur,onFocus:n.onFocus,onInput:i[3]||(i[3]=a=>n.onInput(a))}),null,16,["modelValue","auto-focus","editable","input-aria-label","input-class","output-format","placeholder","use-div-tags","onTextInput","onBlur","onFocus"])],4)],16)}const O=C._(y,[["render",S]]);exports.default=O;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const g=require("./editor-constants.cjs"),B=require("../../common/utils/index.cjs"),o=require("@dialpad/dialtone-icons/vue3"),e=require("vue"),C=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),L=require("../rich-text-editor/rich-text-editor.cjs"),T=require("../button/button.cjs"),b=require("../popover/popover.cjs"),x=require("../stack/stack.cjs"),A=require("../input/input.cjs"),_=require("../tooltip/tooltip.cjs"),f=require("../rich-text-editor/rich-text-editor-constants.cjs"),y={compatConfig:{MODE:3},name:"DtRecipeEditor",components:{DtRichTextEditor:L.default,DtButton:T.default,DtPopover:b.default,DtStack:x.default,DtInput:A.default,DtTooltip:_.default,DtIconLightningBolt:o.DtIconLightningBolt,DtIconBold:o.DtIconBold,DtIconItalic:o.DtIconItalic,DtIconUnderline:o.DtIconUnderline,DtIconStrikethrough:o.DtIconStrikethrough,DtIconListBullet:o.DtIconListBullet,DtIconListOrdered:o.DtIconListOrdered,DtIconAlignLeft:o.DtIconAlignLeft,DtIconAlignCenter:o.DtIconAlignCenter,DtIconAlignRight:o.DtIconAlignRight,DtIconAlignJustify:o.DtIconAlignJustify,DtIconQuote:o.DtIconQuote,DtIconCodeBlock:o.DtIconCodeBlock,DtIconLink2:o.DtIconLink2,DtIconImage:o.DtIconImage},mixins:[],inheritAttrs:!1,props:{modelValue:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:""},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(t){return typeof t=="string"?f.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(t):!0}},placeholder:{type:String,default:""},maxHeight:{type:String,default:"unset"},confirmSetLinkButton:{type:Object,default:()=>({label:"Confirm",ariaLabel:"Confirm set link"})},removeLinkButton:{type:Object,default:()=>({label:"Remove",ariaLabel:"Remove link"})},cancelSetLinkButton:{type:Object,default:()=>({label:"Cancel",ariaLabel:"Cancel set link"})},setLinkPlaceholder:{type:String,default:""},showBoldButton:{type:Boolean,default:!0},showItalicsButton:{type:Boolean,default:!0},showUnderlineButton:{type:Boolean,default:!0},showStrikeButton:{type:Boolean,default:!0},showListItemsButton:{type:Boolean,default:!0},showOrderedListButton:{type:Boolean,default:!0},showAlignLeftButton:{type:Boolean,default:!0},showAlignCenterButton:{type:Boolean,default:!0},showAlignRightButton:{type:Boolean,default:!0},showAlignJustifyButton:{type:Boolean,default:!0},showQuoteButton:{type:Boolean,default:!0},showCodeBlockButton:{type:Boolean,default:!0},showQuickRepliesButton:{type:Boolean,default:!0},showInlineImageButton:{type:Boolean,default:!1},showAddLink:{type:Object,default:()=>({showAddLinkButton:!0,setLinkTitle:"Add a link",setLinkInputAriaLabel:"Input field to add link"})},useDivTags:{type:Boolean,default:!1}},emits:["focus","blur","input","update:modelValue","quick-replies-click","inline-image-click","text-input"],data(){return{internalInputValue:this.modelValue,hasFocus:!1,linkOptions:{class:"d-recipe-editor__link"},showLinkInput:!1,linkInput:""}},computed:{inputLength(){return this.internalInputValue.length},htmlOutputFormat(){return f.RICH_TEXT_EDITOR_OUTPUT_FORMATS[2]},showingTextFormatButtons(){return this.showBoldButton||this.showItalicsButton||this.showStrikeButton||this.showUnderlineButton},showingAlignmentButtons(){return this.showAlignLeftButton||this.showAlignCenterButton||this.showAlignRightButton||this.showAlignJustifyButton},showingListButtons(){return this.showListItemsButton||this.showOrderedListButton},buttonGroups(){const t=this.individualButtons.map(i=>({key:i.selector,buttonGroup:[i]}));return[{key:"new",buttonGroup:this.newButtons},{key:"format",buttonGroup:this.textFormatButtons},{key:"alignment",buttonGroup:this.alignmentButtons},{key:"list",buttonGroup:this.listButtons},...t].filter(i=>i.buttonGroup.length>0)},newButtons(){return[{showBtn:this.showQuickRepliesButton,label:"Quick reply",selector:"quickReplies",icon:o.DtIconLightningBolt,dataQA:"dt-recipe-editor-quick-replies-btn",tooltipMessage:"Quick Reply",onClick:this.onQuickRepliesClick}].filter(t=>t.showBtn)},textFormatButtons(){return[{showBtn:this.showBoldButton,selector:"bold",icon:o.DtIconBold,dataQA:"dt-recipe-editor-bold-btn",tooltipMessage:"Bold",onClick:this.onBoldTextToggle},{showBtn:this.showItalicsButton,selector:"italic",icon:o.DtIconItalic,dataQA:"dt-recipe-editor-italics-btn",tooltipMessage:"Italics",onClick:this.onItalicTextToggle},{showBtn:this.showUnderlineButton,selector:"underline",icon:o.DtIconUnderline,dataQA:"dt-recipe-editor-underline-btn",tooltipMessage:"Underline",onClick:this.onUnderlineTextToggle},{showBtn:this.showStrikeButton,selector:"strike",icon:o.DtIconStrikethrough,dataQA:"dt-recipe-editor-strike-btn",tooltipMessage:"Strike",onClick:this.onStrikethroughTextToggle}].filter(t=>t.showBtn)},alignmentButtons(){return[{showBtn:this.showAlignLeftButton,selector:{textAlign:"left"},icon:o.DtIconAlignLeft,dataQA:"dt-recipe-editor-align-left-btn",tooltipMessage:"Align Left",onClick:()=>this.onTextAlign("left")},{showBtn:this.showAlignCenterButton,selector:{textAlign:"center"},icon:o.DtIconAlignCenter,dataQA:"dt-recipe-editor-align-center-btn",tooltipMessage:"Align Center",onClick:()=>this.onTextAlign("center")},{showBtn:this.showAlignRightButton,selector:{textAlign:"right"},icon:o.DtIconAlignRight,dataQA:"dt-recipe-editor-align-right-btn",tooltipMessage:"Align Right",onClick:()=>this.onTextAlign("right")},{showBtn:this.showAlignJustifyButton,selector:{textAlign:"justify"},icon:o.DtIconAlignJustify,dataQA:"dt-recipe-editor-align-justify-btn",tooltipMessage:"Align Justify",onClick:()=>this.onTextAlign("justify")}].filter(t=>t.showBtn)},listButtons(){return[{showBtn:this.showListItemsButton,selector:"bulletList",icon:o.DtIconListBullet,dataQA:"dt-recipe-editor-list-items-btn",tooltipMessage:"Bullet List",onClick:this.onBulletListToggle},{showBtn:this.showOrderedListButton,selector:"orderedList",icon:o.DtIconListOrdered,dataQA:"dt-recipe-editor-ordered-list-items-btn",tooltipMessage:"Ordered List",onClick:this.onOrderedListToggle}].filter(t=>t.showBtn)},individualButtons(){return[{showBtn:this.showQuoteButton,selector:"blockquote",icon:o.DtIconQuote,dataQA:"dt-recipe-editor-blockquote-btn",tooltipMessage:"Quote",onClick:this.onBlockquoteToggle},{showBtn:this.showCodeBlockButton,selector:"codeBlock",icon:o.DtIconCodeBlock,dataQA:"dt-recipe-editor-code-block-btn",tooltipMessage:"Code",onClick:this.onCodeBlockToggle},{showBtn:this.showInlineImageButton,selector:"image",icon:o.DtIconImage,dataQA:"dt-recipe-editor-inline-image-btn",tooltipMessage:"Image",onClick:this.onInsertInlineImageClick}].filter(t=>t.showBtn)},linkButton(){return{showBtn:this.showAddLink.showAddLinkButton,selector:"link",icon:o.DtIconLink2,dataQA:"dt-recipe-editor-add-link-btn",tooltipMessage:"Link",onClick:this.openLinkInput}}},watch:{modelValue(t){this.internalInputValue=t}},methods:{removeClassStyleAttrs:B.removeClassStyleAttrs,addClassStyleAttrs:B.addClassStyleAttrs,onInputFocus(t){t==null||t.stopPropagation()},removeLink(){var t,i,l,s,r;(r=(s=(l=(i=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:i.chain())==null?void 0:l.focus())==null?void 0:s.unsetLink())==null||r.run(),this.closeLinkInput()},setLink(t){var r,n,u;const i=(r=this.$refs.richTextEditor)==null?void 0:r.editor;if(t==null||t.preventDefault(),t==null||t.stopPropagation(),!this.linkInput){this.removeLink();return}g.EDITOR_SUPPORTED_LINK_PROTOCOLS.find(d=>d.test(this.linkInput))||(this.linkInput=`${g.EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`);const s=(u=(n=i==null?void 0:i.view)==null?void 0:n.state)==null?void 0:u.selection;s.anchor===s.head?i.chain().focus().insertContentAt(s.anchor,`<a class="${this.linkOptions.class}" href=${this.linkInput}>${this.linkInput}</a>`).run():i.chain().focus().extendMarkRange("link").setLink({href:this.linkInput,class:this.linkOptions.class}).run(),this.closeLinkInput()},openLinkInput(){this.showLinkInput=!0},updateInput(t){var i,l,s;if(!t)return this.closeLinkInput();this.linkInput=(s=(l=(i=this.$refs.richTextEditor)==null?void 0:i.editor)==null?void 0:l.getAttributes("link"))==null?void 0:s.href},closeLinkInput(){var t;this.showLinkInput=!1,this.linkInput="",(t=this.$refs.richTextEditor.editor)==null||t.chain().focus()},onBoldTextToggle(){var t,i;(i=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null||i.chain().focus().toggleBold().run()},onItalicTextToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleItalic().run()},onUnderlineTextToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleUnderline().run()},onStrikethroughTextToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleStrike().run()},onTextAlign(t){var i,l,s,r;if((l=(i=this.$refs.richTextEditor)==null?void 0:i.editor)!=null&&l.isActive({textAlign:t}))return(s=this.$refs.richTextEditor)==null?void 0:s.editor.chain().focus().unsetTextAlign().run();(r=this.$refs.richTextEditor)==null||r.editor.chain().focus().setTextAlign(t).run()},onBulletListToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleBulletList().run()},onOrderedListToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleOrderedList().run()},onCodeBlockToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleCodeBlock().run()},onQuickRepliesClick(){this.$emit("quick-replies-click")},onInsertInlineImageClick(){this.$emit("inline-image-click")},insertInlineImage(t){var i;(i=this.$refs.richTextEditor)==null||i.editor.chain().focus().setImage({src:t}).run()},insertInMessageBody(t){var i;(i=this.$refs.richTextEditor)==null||i.editor.chain().focus().insertContent(t).run()},setCursorPosition(t=null){var i;(i=this.$refs.richTextEditor)==null||i.editor.chain().focus(t).run()},onBlockquoteToggle(){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().toggleBlockquote().run()},onTextInput(t){this.$emit("text-input",t)},onFocus(t){this.hasFocus=!0,this.$emit("focus",t)},onBlur(t){this.hasFocus=!1,this.$emit("blur",t)},onInput(t){this.$emit("input",t),this.$emit("update:modelValue",t)}}},D=e.createElementVNode("div",{class:"d-recipe-editor__button-group-divider"},null,-1),E={class:"d-recipe-editor__popover-content"},v={key:0};function S(t,i,l,s,r,n){const u=e.resolveComponent("dt-button"),d=e.resolveComponent("dt-tooltip"),h=e.resolveComponent("dt-stack"),m=e.resolveComponent("dt-input"),I=e.resolveComponent("dt-popover"),w=e.resolveComponent("dt-rich-text-editor");return e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"d-recipe-editor"},n.addClassStyleAttrs(t.$attrs),{"data-qa":"dt-recipe-editor",role:"presentation",onClick:i[4]||(i[4]=a=>t.$refs.richTextEditor.focusEditor())}),[e.createVNode(h,{class:"d-recipe-editor__top-bar",direction:"row",gap:"450"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.buttonGroups,a=>(e.openBlock(),e.createBlock(h,{key:a.key,direction:"row",gap:"300"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.buttonGroup,c=>(e.openBlock(),e.createBlock(d,{key:`${a.key}-${JSON.stringify(c.selector)}`,message:c.tooltipMessage,placement:"top"},{anchor:e.withCtx(()=>{var p,k;return[e.createVNode(u,{active:(k=(p=t.$refs.richTextEditor)==null?void 0:p.editor)==null?void 0:k.isActive(c.selector),"aria-label":c.tooltipMessage,"data-qa":c.dataQA,importance:"clear",kind:"muted",size:"xs",onClick:V=>c.onClick()},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.icon),{size:"200"}))]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(c==null?void 0:c.label),1)]),_:2},1032,["active","aria-label","data-qa","onClick"])]}),_:2},1032,["message"]))),128)),D]),_:2},1024))),128)),n.linkButton.showBtn?(e.openBlock(),e.createBlock(h,{key:0,direction:"row",gap:"300"},{default:e.withCtx(()=>[e.createVNode(I,{open:r.showLinkInput,"show-close-button":!1,"visually-hidden-close":!0,"visually-hidden-close-label":"Close link input popover","data-qa":"dt-recipe-editor-link-input-popover",padding:"none",placement:"bottom-start",onClick:[n.onInputFocus,e.withModifiers(n.onInputFocus,["stop"])],onOpened:n.updateInput},{anchor:e.withCtx(()=>[(e.openBlock(),e.createBlock(d,{key:n.linkButton.key,message:n.linkButton.tooltipMessage,placement:"top"},{anchor:e.withCtx(()=>{var a,c;return[e.createVNode(u,{active:(c=(a=t.$refs.richTextEditor)==null?void 0:a.editor)==null?void 0:c.isActive(n.linkButton.selector),"aria-label":n.linkButton.tooltipMessage,"data-qa":n.linkButton.dataQA,importance:"clear",kind:"muted",size:"xs",onClick:i[0]||(i[0]=p=>n.linkButton.onClick())},{icon:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.linkButton.icon),{size:"200"}))]),_:1},8,["active","aria-label","data-qa"])]}),_:1},8,["message"]))]),content:e.withCtx(()=>[e.createElementVNode("div",E,[l.showAddLink.setLinkTitle.length>0?(e.openBlock(),e.createElementBlock("span",v,e.toDisplayString(l.showAddLink.setLinkTitle),1)):e.createCommentVNode("",!0),e.createVNode(m,{modelValue:r.linkInput,"onUpdate:modelValue":i[1]||(i[1]=a=>r.linkInput=a),"input-aria-label":l.showAddLink.setLinkInputAriaLabel,placeholder:l.setLinkPlaceholder,"data-qa":"dt-recipe-editor-link-input","input-wrapper-class":"d-recipe-editor-link__input-wrapper",onClick:[n.onInputFocus,e.withModifiers(n.onInputFocus,["stop"])],onFocus:n.onInputFocus,onKeydown:e.withKeys(n.setLink,["enter"])},null,8,["modelValue","input-aria-label","placeholder","onClick","onFocus","onKeydown"])])]),footerContent:e.withCtx(()=>[e.createVNode(h,{direction:"row",gap:"300",class:"d-recipe-editor__popover-footer"},{default:e.withCtx(()=>[e.createVNode(u,{"aria-label":l.removeLinkButton.ariaLabel,"data-qa":"dt-recipe-editor-remove-link-btn",importance:"clear",kind:"muted",size:"sm",onClick:n.removeLink},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.removeLinkButton.label),1)]),_:1},8,["aria-label","onClick"]),e.createVNode(u,{"aria-label":l.cancelSetLinkButton.ariaLabel,"data-qa":"dt-recipe-editor-set-link-cancel-btn",importance:"clear",kind:"muted",size:"sm",onClick:n.closeLinkInput},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.cancelSetLinkButton.label),1)]),_:1},8,["aria-label","onClick"]),e.createVNode(u,{"aria-label":l.confirmSetLinkButton.ariaLabel,"data-qa":"dt-recipe-editor-set-link-confirm-btn",size:"sm",onClick:n.setLink},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.confirmSetLinkButton.label),1)]),_:1},8,["aria-label","onClick"])]),_:1})]),_:1},8,["open","onClick","onOpened"])]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",{style:e.normalizeStyle({"max-height":l.maxHeight}),class:"d-recipe-editor__content"},[e.createVNode(w,e.mergeProps({ref:"richTextEditor",modelValue:r.internalInputValue,"onUpdate:modelValue":i[2]||(i[2]=a=>r.internalInputValue=a),"allow-inline-images":!0,"allow-line-breaks":!0,"hide-link-bubble-menu":!0,"auto-focus":l.autoFocus,editable:l.editable,"input-aria-label":l.inputAriaLabel,"input-class":`d-recipe-editor__content-input ${l.inputClass}`,link:!0,"output-format":n.htmlOutputFormat,placeholder:l.placeholder,"use-div-tags":l.useDivTags,"data-qa":"dt-rich-text-editor"},n.removeClassStyleAttrs(t.$attrs),{onTextInput:n.onTextInput,onBlur:n.onBlur,onFocus:n.onFocus,onInput:i[3]||(i[3]=a=>n.onInput(a))}),null,16,["modelValue","auto-focus","editable","input-aria-label","input-class","output-format","placeholder","use-div-tags","onTextInput","onBlur","onFocus"])],4)],16)}const O=C._(y,[["render",S]]);exports.default=O;
|
|
2
2
|
//# sourceMappingURL=editor.cjs.map
|