@dialpad/dialtone 9.133.0 → 9.134.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.
Files changed (55) hide show
  1. package/dist/css/dialtone-default-theme.css +32 -6
  2. package/dist/css/dialtone-default-theme.min.css +1 -1
  3. package/dist/css/dialtone.css +32 -6
  4. package/dist/css/dialtone.min.css +1 -1
  5. package/dist/css/tokens-docs.json +1 -1
  6. package/dist/tokens/doc.json +54092 -54092
  7. package/dist/vue2/common/emoji/index.cjs +1 -1
  8. package/dist/vue2/common/emoji/index.cjs.map +1 -1
  9. package/dist/vue2/common/emoji/index.js +46 -39
  10. package/dist/vue2/common/emoji/index.js.map +1 -1
  11. package/dist/vue2/dialtone-vue.cjs +1 -1
  12. package/dist/vue2/dialtone-vue.js +360 -359
  13. package/dist/vue2/lib/emoji-row/emoji-row.cjs +1 -1
  14. package/dist/vue2/lib/emoji-row/emoji-row.cjs.map +1 -1
  15. package/dist/vue2/lib/emoji-row/emoji-row.js +31 -31
  16. package/dist/vue2/lib/emoji-row/emoji-row.js.map +1 -1
  17. package/dist/vue2/localization/en-US.cjs +1 -1
  18. package/dist/vue2/localization/en-US.cjs.map +1 -1
  19. package/dist/vue2/localization/en-US.js +1 -1
  20. package/dist/vue2/localization/en-US.js.map +1 -1
  21. package/dist/vue2/types/common/emoji/index.d.ts +1 -0
  22. package/dist/vue2/types/common/emoji/index.d.ts.map +1 -1
  23. package/dist/vue2/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  24. package/dist/vue3/common/emoji/index.cjs +1 -1
  25. package/dist/vue3/common/emoji/index.cjs.map +1 -1
  26. package/dist/vue3/common/emoji/index.js +46 -39
  27. package/dist/vue3/common/emoji/index.js.map +1 -1
  28. package/dist/vue3/dialtone-vue.cjs +1 -1
  29. package/dist/vue3/dialtone-vue.js +363 -362
  30. package/dist/vue3/lib/emoji-row/emoji-row.cjs +1 -1
  31. package/dist/vue3/lib/emoji-row/emoji-row.cjs.map +1 -1
  32. package/dist/vue3/lib/emoji-row/emoji-row.js +56 -47
  33. package/dist/vue3/lib/emoji-row/emoji-row.js.map +1 -1
  34. package/dist/vue3/lib/emoji-text-wrapper/emoji-text-wrapper.cjs +1 -1
  35. package/dist/vue3/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  36. package/dist/vue3/lib/emoji-text-wrapper/emoji-text-wrapper.js +1 -0
  37. package/dist/vue3/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  38. package/dist/vue3/lib/toast/toast.cjs +1 -1
  39. package/dist/vue3/lib/toast/toast.cjs.map +1 -1
  40. package/dist/vue3/lib/toast/toast.js +96 -88
  41. package/dist/vue3/lib/toast/toast.js.map +1 -1
  42. package/dist/vue3/localization/en-US.cjs +1 -1
  43. package/dist/vue3/localization/en-US.cjs.map +1 -1
  44. package/dist/vue3/localization/en-US.js +1 -1
  45. package/dist/vue3/localization/en-US.js.map +1 -1
  46. package/dist/vue3/types/common/emoji/index.d.ts +1 -0
  47. package/dist/vue3/types/common/emoji/index.d.ts.map +1 -1
  48. package/dist/vue3/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  49. package/dist/vue3/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +3 -0
  50. package/dist/vue3/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  51. package/dist/vue3/types/components/toast/layouts/toast_layout_default.vue.d.ts +3 -0
  52. package/dist/vue3/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  53. package/dist/vue3/types/components/toast/toast.vue.d.ts +6 -0
  54. package/dist/vue3/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  55. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const _=require("./emoji-row-constants.cjs"),p=require("../../localization/index.cjs"),e=require("vue"),u=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),j=require("../emoji-text-wrapper/emoji-text-wrapper.cjs"),h=require("../emoji/emoji.cjs"),f=require("../button/button.cjs"),w=require("../tooltip/tooltip.cjs"),b={compatConfig:{MODE:3},name:"DtRecipeEmojiRow",components:{DtTooltip:w.default,DtButton:f.default,DtEmoji:h.default,DtEmojiTextWrapper:j.default},props:{reactions:{type:Array,default:()=>[],validator:t=>{for(const i of t)if(!_.REACTIONS_ATTRIBUTES.every(a=>i[a]!==void 0))return!1;return!0}}},emits:["emoji-clicked","emoji-hovered"],data(){return{i18n:new p.DialtoneLocalization}},methods:{emojiClicked(t){this.$emit("emoji-clicked",t.emojiUnicodeOrShortname)},emojiHovered(t,i){this.$emit("emoji-hovered",{reaction:t.emojiUnicodeOrShortname,state:i})},reactionLabel(t){return this.i18n.$t("DIALTONE_EMOJI_ROW_REACTION_LABEL",{names:t.names,reaction:t.emojiUnicodeOrShortname})}}},C={class:"d-recipe-emoji-row"},v={"aria-hidden":"true"},E={class:"d-recipe-emoji-row__emoji"},k={class:"d-recipe-emoji-row__reaction-number"};function S(t,i,c,a,O,n){const l=e.resolveComponent("dt-emoji-text-wrapper"),s=e.resolveComponent("dt-emoji"),d=e.resolveComponent("dt-button"),m=e.resolveComponent("dt-tooltip");return e.openBlock(),e.createElementBlock("span",C,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.reactions,o=>(e.openBlock(),e.createElementBlock("span",{key:o.unicodeOutput},[e.createVNode(m,{class:"d-recipe-emoji-row__tooltip","content-class":"d-recipe-emoji-row__tooltip-content",sticky:"popper",onShown:r=>n.emojiHovered(o,r)},{anchor:e.withCtx(({attrs:r})=>[e.createVNode(d,{importance:"clear",size:"sm","data-qa":"feed-item-reaction-button",class:e.normalizeClass(["d-recipe-emoji-row__reaction",o.isSelected?"d-recipe-emoji-row__reaction--selected":""]),"aria-label":n.reactionLabel(o),attrs:r,onClick:T=>n.emojiClicked(o)},{default:e.withCtx(()=>[e.createElementVNode("span",E,[e.createVNode(s,{size:"200",code:o.emojiUnicodeOrShortname},null,8,["code"])]),e.createElementVNode("span",k,e.toDisplayString(o.num),1)]),_:2},1032,["class","aria-label","attrs","onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",v,[e.createVNode(l,{size:"200"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.reactionLabel(o)),1)]),_:2},1024)])]),_:2},1032,["onShown"])]))),128)),e.renderSlot(t.$slots,"picker")])}const x=u._(b,[["render",S]]);exports.default=x;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const _=require("./emoji-row-constants.cjs"),p=require("../../localization/index.cjs"),u=require("../../common/emoji/index.cjs"),e=require("vue"),j=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),h=require("../emoji-text-wrapper/emoji-text-wrapper.cjs"),w=require("../emoji/emoji.cjs"),b=require("../button/button.cjs"),f=require("../tooltip/tooltip.cjs"),C={compatConfig:{MODE:3},name:"DtRecipeEmojiRow",components:{DtTooltip:f.default,DtButton:b.default,DtEmoji:w.default,DtEmojiTextWrapper:h.default},props:{reactions:{type:Array,default:()=>[],validator:t=>{for(const i of t)if(!_.REACTIONS_ATTRIBUTES.every(a=>i[a]!==void 0))return!1;return!0}}},emits:["emoji-clicked","emoji-hovered"],data(){return{i18n:new p.DialtoneLocalization}},methods:{emojiClicked(t){this.$emit("emoji-clicked",t.emojiUnicodeOrShortname)},emojiHovered(t,i){this.$emit("emoji-hovered",{reaction:t.emojiUnicodeOrShortname,state:i})},reactionLabel(t){return this.i18n.$t("DIALTONE_EMOJI_ROW_REACTION_LABEL",{reaction:u.getEmojiShortCode(t.emojiUnicodeOrShortname)})}}},E={class:"d-recipe-emoji-row"},S={"aria-hidden":"true"},k={class:"d-recipe-emoji-row__tooltip-emoji"},v={class:"d-recipe-emoji-row__tooltip-names"},x=["textContent"],N={class:"d-recipe-emoji-row__emoji"},O={class:"d-recipe-emoji-row__reaction-number"};function g(t,i,c,a,T,n){const l=e.resolveComponent("dt-emoji-text-wrapper"),s=e.resolveComponent("dt-emoji"),m=e.resolveComponent("dt-button"),d=e.resolveComponent("dt-tooltip");return e.openBlock(),e.createElementBlock("span",E,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.reactions,o=>(e.openBlock(),e.createElementBlock("span",{key:o.unicodeOutput},[e.createVNode(d,{class:"d-recipe-emoji-row__tooltip","content-class":"d-recipe-emoji-row__tooltip-content","fallback-placements":["top","bottom"],sticky:"popper",onShown:r=>n.emojiHovered(o,r)},{anchor:e.withCtx(({attrs:r})=>[e.createVNode(m,{importance:"clear",size:"sm","data-qa":"feed-item-reaction-button",class:e.normalizeClass(["d-recipe-emoji-row__reaction",o.isSelected?"d-recipe-emoji-row__reaction--selected":""]),"aria-label":n.reactionLabel(o),attrs:r,onClick:V=>n.emojiClicked(o)},{default:e.withCtx(()=>[e.createElementVNode("span",N,[e.createVNode(s,{class:"d-recipe-emoji-row__emoji","img-class":"d-recipe-emoji-row__emoji-img",code:o.emojiUnicodeOrShortname},null,8,["code"])]),e.createElementVNode("span",O,e.toDisplayString(o.num),1)]),_:2},1032,["class","aria-label","attrs","onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",S,[e.createVNode(l,{size:"800"},{default:e.withCtx(()=>[e.createElementVNode("p",k,e.toDisplayString(o.emojiUnicodeOrShortname),1),e.createElementVNode("p",v,[e.createTextVNode(e.toDisplayString(o.names)+" ",1),e.createElementVNode("span",{class:"d-recipe-emoji-row__tooltip-label",textContent:e.toDisplayString(n.reactionLabel(o))},null,8,x)])]),_:2},1024)])]),_:2},1032,["onShown"])]))),128)),e.renderSlot(t.$slots,"picker")])}const D=j._(C,[["render",g]]);exports.default=D;
2
2
  //# sourceMappingURL=emoji-row.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-row.cjs","sources":["../../../recipes/conversation_view/emoji_row/emoji_row.vue"],"sourcesContent":["<template>\n <span class=\"d-recipe-emoji-row\">\n <span\n v-for=\"reaction in reactions\"\n :key=\"reaction.unicodeOutput\"\n >\n <dt-tooltip\n class=\"d-recipe-emoji-row__tooltip\"\n content-class=\"d-recipe-emoji-row__tooltip-content\"\n sticky=\"popper\"\n @shown=\"(shown) => emojiHovered(reaction, shown)\"\n >\n <span aria-hidden=\"true\">\n <dt-emoji-text-wrapper size=\"200\">\n {{ reactionLabel(reaction) }}\n </dt-emoji-text-wrapper>\n </span>\n <template #anchor=\"{ attrs }\">\n <dt-button\n importance=\"clear\"\n size=\"sm\"\n data-qa=\"feed-item-reaction-button\"\n :class=\"[\n 'd-recipe-emoji-row__reaction',\n reaction.isSelected ? 'd-recipe-emoji-row__reaction--selected' : '',\n ]\"\n :aria-label=\"reactionLabel(reaction)\"\n :attrs=\"attrs\"\n @click=\"emojiClicked(reaction)\"\n >\n <span class=\"d-recipe-emoji-row__emoji\">\n <dt-emoji\n size=\"200\"\n :code=\"reaction.emojiUnicodeOrShortname\"\n />\n </span>\n <span class=\"d-recipe-emoji-row__reaction-number\">\n {{ reaction.num }}\n </span>\n </dt-button>\n </template>\n </dt-tooltip>\n </span>\n <!-- TODO: Replace picker slot with a button with localized text and emit any event needed -->\n <!-- @slot Slot for emoji picker component, including the anchor. -->\n <slot name=\"picker\" />\n </span>\n</template>\n\n<script>\nimport { REACTIONS_ATTRIBUTES } from './emoji_row_constants.js';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtEmoji } from '@/components/emoji';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEmojiRow',\n\n components: { DtTooltip, DtButton, DtEmoji, DtEmojiTextWrapper },\n\n props: {\n /**\n * Provide an array of reaction objects to be shown.\n */\n reactions: {\n type: Array,\n default: () => [],\n validator: (reactions) => {\n for (const reaction of reactions) {\n const validInput = REACTIONS_ATTRIBUTES.every((attribute) => reaction[attribute] !== undefined);\n if (!validInput) return false;\n }\n return true;\n },\n },\n },\n\n emits: [\n 'emoji-clicked',\n 'emoji-hovered',\n ],\n\n data () {\n return {\n i18n: new DialtoneLocalization(),\n };\n },\n\n methods: {\n emojiClicked (reaction) {\n this.$emit('emoji-clicked', reaction.emojiUnicodeOrShortname);\n },\n\n emojiHovered (reaction, state) {\n this.$emit('emoji-hovered', {\n reaction: reaction.emojiUnicodeOrShortname,\n state,\n });\n },\n\n reactionLabel (reaction) {\n return this.i18n.$t('DIALTONE_EMOJI_ROW_REACTION_LABEL', {\n names: reaction.names,\n reaction: reaction.emojiUnicodeOrShortname,\n });\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtTooltip","DtButton","DtEmoji","DtEmojiTextWrapper","reactions","reaction","REACTIONS_ATTRIBUTES","attribute","DialtoneLocalization","state","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_Fragment","_renderList","$props","_createVNode","_component_dt_tooltip","shown","$options","_withCtx","attrs","_component_dt_button","_normalizeClass","$event","_createElementVNode","_component_dt_emoji","_toDisplayString","_component_dt_emoji_text_wrapper","_createTextVNode","_renderSlot","_ctx"],"mappings":"8aAyDKA,EAAU,CACb,aAAc,CAAE,KAAM,GACtB,KAAM,mBAEN,WAAY,CAAA,UAAEC,EAAAA,QAAS,SAAEC,UAAQ,QAAEC,EAAAA,QAAO,mBAAEC,EAAAA,OAAiB,EAE7D,MAAO,CAIL,UAAW,CACT,KAAM,MACN,QAAS,IAAM,CAAA,EACf,UAAYC,GAAc,CACxB,UAAWC,KAAYD,EAErB,GAAI,CADeE,EAAAA,qBAAqB,MAAOC,GAAcF,EAASE,CAAS,IAAM,MAAS,EAC7E,MAAO,GAE1B,MAAO,EACT,IAIJ,MAAO,CACL,gBACA,iBAGF,MAAQ,CACN,MAAO,CACL,KAAM,IAAIC,EAAAA,qBAEd,EAEA,QAAS,CACP,aAAcH,EAAU,CACtB,KAAK,MAAM,gBAAiBA,EAAS,uBAAuB,CAC9D,EAEA,aAAcA,EAAUI,EAAO,CAC7B,KAAK,MAAM,gBAAiB,CAC1B,SAAUJ,EAAS,wBACnB,MAAAI,CACF,CAAC,CACH,EAEA,cAAeJ,EAAU,CACvB,OAAO,KAAK,KAAK,GAAG,oCAAqC,CACvD,MAAOA,EAAS,MAChB,SAAUA,EAAS,uBACrB,CAAC,CACH,EAEJ,EA7GQK,EAAA,CAAA,MAAM,oBAAoB,EAWpBC,EAAA,CAAA,cAAY,MAAM,EAkBdC,EAAA,CAAA,MAAM,2BAA2B,EAMjCC,EAAA,CAAA,MAAM,qCAAqC,oLAnC3D,OAAAC,YAAA,EAAAC,qBA6CO,OA7CPL,EA6CO,EA5CLI,YAAA,EAAA,EAAAC,EAAAA,mBAwCOC,EAAAA,SAAA,KA1CXC,EAAAA,WAGyBC,EAAA,UAAZb,kBADTU,EAAAA,mBAwCO,OAAA,CAtCJ,IAAKV,EAAS,gBAEfc,EAAAA,YAmCaC,EAAA,CAlCX,MAAM,8BACN,gBAAc,sCACd,OAAO,SACN,QAAQC,GAAUC,eAAajB,EAAUgB,CAAK,IAOpC,OAAME,EAAAA,QACf,CAqBY,CAtBO,MAAAC,KAAK,CACxBL,EAAAA,YAqBYM,EAAA,CApBV,WAAW,QACX,KAAK,KACL,UAAQ,4BACP,MAtBbC,EAAAA,eAAA,gCAsBkFrB,EAAS,WAAU,yCAAA,KAIxF,aAAYiB,EAAA,cAAcjB,CAAQ,EAClC,MAAOmB,EACP,QAAKG,GAAEL,EAAA,aAAajB,CAAQ,IA5BzC,QAAAkB,EAAAA,QA8BY,IAKO,CALPK,EAAAA,mBAKO,OALPhB,EAKO,CAJLO,EAAAA,YAGEU,EAAA,CAFA,KAAK,MACJ,KAAMxB,EAAS,4CAGpBuB,EAAAA,mBAEO,OAFPf,EAEOiB,EAAAA,gBADFzB,EAAS,GAAG,EAAA,CAAA,IArC7B,EAAA,oDAAA,QAAAkB,EAAAA,QAYQ,IAIO,CAJPK,EAAAA,mBAIO,OAJPjB,EAIO,CAHLQ,EAAAA,YAEwBY,EAAA,CAFD,KAAK,KAAK,EAAA,CAb3C,QAAAR,EAAAA,QAcY,IAA6B,CAdzCS,EAAAA,gBAAAF,EAAAA,gBAceR,EAAA,cAAcjB,CAAQ,CAAA,EAAA,CAAA,IAdrC,EAAA,aAAA,EAAA,+BA6CI4B,aAAsBC,EAAA,OAAA,QAAA"}
1
+ {"version":3,"file":"emoji-row.cjs","sources":["../../../recipes/conversation_view/emoji_row/emoji_row.vue"],"sourcesContent":["<template>\n <span class=\"d-recipe-emoji-row\">\n <span\n v-for=\"reaction in reactions\"\n :key=\"reaction.unicodeOutput\"\n >\n <dt-tooltip\n class=\"d-recipe-emoji-row__tooltip\"\n content-class=\"d-recipe-emoji-row__tooltip-content\"\n :fallback-placements=\"['top', 'bottom']\"\n sticky=\"popper\"\n @shown=\"(shown) => emojiHovered(reaction, shown)\"\n >\n <span aria-hidden=\"true\">\n <dt-emoji-text-wrapper size=\"800\">\n <p class=\"d-recipe-emoji-row__tooltip-emoji\">\n {{ reaction.emojiUnicodeOrShortname }}\n </p>\n <p class=\"d-recipe-emoji-row__tooltip-names\">\n {{ reaction.names }}\n <span\n class=\"d-recipe-emoji-row__tooltip-label\"\n v-text=\"reactionLabel(reaction)\"\n />\n </p>\n </dt-emoji-text-wrapper>\n </span>\n <template #anchor=\"{ attrs }\">\n <dt-button\n importance=\"clear\"\n size=\"sm\"\n data-qa=\"feed-item-reaction-button\"\n :class=\"[\n 'd-recipe-emoji-row__reaction',\n reaction.isSelected ? 'd-recipe-emoji-row__reaction--selected' : '',\n ]\"\n :aria-label=\"reactionLabel(reaction)\"\n :attrs=\"attrs\"\n @click=\"emojiClicked(reaction)\"\n >\n <span class=\"d-recipe-emoji-row__emoji\">\n <dt-emoji\n class=\"d-recipe-emoji-row__emoji\"\n img-class=\"d-recipe-emoji-row__emoji-img\"\n :code=\"reaction.emojiUnicodeOrShortname\"\n />\n </span>\n <span class=\"d-recipe-emoji-row__reaction-number\">\n {{ reaction.num }}\n </span>\n </dt-button>\n </template>\n </dt-tooltip>\n </span>\n <!-- TODO: Replace picker slot with a button with localized text and emit any event needed -->\n <!-- @slot Slot for emoji picker component, including the anchor. -->\n <slot name=\"picker\" />\n </span>\n</template>\n\n<script>\nimport { REACTIONS_ATTRIBUTES } from './emoji_row_constants.js';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtEmoji } from '@/components/emoji';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DialtoneLocalization } from '@/localization';\nimport { getEmojiShortCode } from '@/common/emoji';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEmojiRow',\n\n components: { DtTooltip, DtButton, DtEmoji, DtEmojiTextWrapper },\n\n props: {\n /**\n * Provide an array of reaction objects to be shown.\n */\n reactions: {\n type: Array,\n default: () => [],\n validator: (reactions) => {\n for (const reaction of reactions) {\n const validInput = REACTIONS_ATTRIBUTES.every((attribute) => reaction[attribute] !== undefined);\n if (!validInput) return false;\n }\n return true;\n },\n },\n },\n\n emits: [\n 'emoji-clicked',\n 'emoji-hovered',\n ],\n\n data () {\n return {\n i18n: new DialtoneLocalization(),\n };\n },\n\n methods: {\n emojiClicked (reaction) {\n this.$emit('emoji-clicked', reaction.emojiUnicodeOrShortname);\n },\n\n emojiHovered (reaction, state) {\n this.$emit('emoji-hovered', {\n reaction: reaction.emojiUnicodeOrShortname,\n state,\n });\n },\n\n reactionLabel (reaction) {\n return this.i18n.$t('DIALTONE_EMOJI_ROW_REACTION_LABEL', {\n reaction: getEmojiShortCode(reaction.emojiUnicodeOrShortname),\n });\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtTooltip","DtButton","DtEmoji","DtEmojiTextWrapper","reactions","reaction","REACTIONS_ATTRIBUTES","attribute","DialtoneLocalization","state","getEmojiShortCode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_openBlock","_createElementBlock","_Fragment","_renderList","$props","_createVNode","_component_dt_tooltip","shown","$options","_withCtx","attrs","_component_dt_button","_normalizeClass","$event","_createElementVNode","_component_dt_emoji","_toDisplayString","_component_dt_emoji_text_wrapper","_createTextVNode","_renderSlot","_ctx"],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { REACTIONS_ATTRIBUTES as w } from "./emoji-row-constants.js";
2
- import { DialtoneLocalization as E } from "../../localization/index.js";
3
- import { resolveComponent as i, createElementBlock as m, openBlock as s, renderSlot as k, Fragment as O, renderList as S, createVNode as n, withCtx as a, createElementVNode as d, createTextVNode as v, toDisplayString as p, normalizeClass as C } from "vue";
4
- import { _ as b } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
2
+ import { DialtoneLocalization as C } from "../../localization/index.js";
3
+ import { getEmojiShortCode as E } from "../../common/emoji/index.js";
4
+ import { resolveComponent as n, createElementBlock as d, openBlock as _, renderSlot as S, Fragment as b, renderList as k, createVNode as c, withCtx as m, createElementVNode as t, toDisplayString as a, createTextVNode as O, normalizeClass as v } from "vue";
5
+ import { _ as x } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
5
6
  import D from "../emoji-text-wrapper/emoji-text-wrapper.js";
6
7
  import T from "../emoji/emoji.js";
7
8
  import L from "../button/button.js";
8
- import x from "../tooltip/tooltip.js";
9
- const I = {
9
+ import I from "../tooltip/tooltip.js";
10
+ const g = {
10
11
  compatConfig: { MODE: 3 },
11
12
  name: "DtRecipeEmojiRow",
12
- components: { DtTooltip: x, DtButton: L, DtEmoji: T, DtEmojiTextWrapper: D },
13
+ components: { DtTooltip: I, DtButton: L, DtEmoji: T, DtEmojiTextWrapper: D },
13
14
  props: {
14
15
  /**
15
16
  * Provide an array of reaction objects to be shown.
@@ -17,9 +18,9 @@ const I = {
17
18
  reactions: {
18
19
  type: Array,
19
20
  default: () => [],
20
- validator: (e) => {
21
- for (const t of e)
22
- if (!w.every((_) => t[_] !== void 0)) return !1;
21
+ validator: (o) => {
22
+ for (const i of o)
23
+ if (!w.every((p) => i[p] !== void 0)) return !1;
23
24
  return !0;
24
25
  }
25
26
  }
@@ -30,69 +31,77 @@ const I = {
30
31
  ],
31
32
  data() {
32
33
  return {
33
- i18n: new E()
34
+ i18n: new C()
34
35
  };
35
36
  },
36
37
  methods: {
37
- emojiClicked(e) {
38
- this.$emit("emoji-clicked", e.emojiUnicodeOrShortname);
38
+ emojiClicked(o) {
39
+ this.$emit("emoji-clicked", o.emojiUnicodeOrShortname);
39
40
  },
40
- emojiHovered(e, t) {
41
+ emojiHovered(o, i) {
41
42
  this.$emit("emoji-hovered", {
42
- reaction: e.emojiUnicodeOrShortname,
43
- state: t
43
+ reaction: o.emojiUnicodeOrShortname,
44
+ state: i
44
45
  });
45
46
  },
46
- reactionLabel(e) {
47
+ reactionLabel(o) {
47
48
  return this.i18n.$t("DIALTONE_EMOJI_ROW_REACTION_LABEL", {
48
- names: e.names,
49
- reaction: e.emojiUnicodeOrShortname
49
+ reaction: E(o.emojiUnicodeOrShortname)
50
50
  });
51
51
  }
52
52
  }
53
- }, y = { class: "d-recipe-emoji-row" }, A = { "aria-hidden": "true" }, N = { class: "d-recipe-emoji-row__emoji" }, R = { class: "d-recipe-emoji-row__reaction-number" };
54
- function z(e, t, l, _, B, r) {
55
- const u = i("dt-emoji-text-wrapper"), j = i("dt-emoji"), f = i("dt-button"), h = i("dt-tooltip");
56
- return s(), m("span", y, [
57
- (s(!0), m(O, null, S(l.reactions, (o) => (s(), m("span", {
58
- key: o.unicodeOutput
53
+ }, y = { class: "d-recipe-emoji-row" }, A = { "aria-hidden": "true" }, N = { class: "d-recipe-emoji-row__tooltip-emoji" }, R = { class: "d-recipe-emoji-row__tooltip-names" }, U = ["textContent"], B = { class: "d-recipe-emoji-row__emoji" }, $ = { class: "d-recipe-emoji-row__reaction-number" };
54
+ function z(o, i, l, p, V, r) {
55
+ const j = n("dt-emoji-text-wrapper"), u = n("dt-emoji"), f = n("dt-button"), h = n("dt-tooltip");
56
+ return _(), d("span", y, [
57
+ (_(!0), d(b, null, k(l.reactions, (e) => (_(), d("span", {
58
+ key: e.unicodeOutput
59
59
  }, [
60
- n(h, {
60
+ c(h, {
61
61
  class: "d-recipe-emoji-row__tooltip",
62
62
  "content-class": "d-recipe-emoji-row__tooltip-content",
63
+ "fallback-placements": ["top", "bottom"],
63
64
  sticky: "popper",
64
- onShown: (c) => r.emojiHovered(o, c)
65
+ onShown: (s) => r.emojiHovered(e, s)
65
66
  }, {
66
- anchor: a(({ attrs: c }) => [
67
- n(f, {
67
+ anchor: m(({ attrs: s }) => [
68
+ c(f, {
68
69
  importance: "clear",
69
70
  size: "sm",
70
71
  "data-qa": "feed-item-reaction-button",
71
- class: C([
72
+ class: v([
72
73
  "d-recipe-emoji-row__reaction",
73
- o.isSelected ? "d-recipe-emoji-row__reaction--selected" : ""
74
+ e.isSelected ? "d-recipe-emoji-row__reaction--selected" : ""
74
75
  ]),
75
- "aria-label": r.reactionLabel(o),
76
- attrs: c,
77
- onClick: (U) => r.emojiClicked(o)
76
+ "aria-label": r.reactionLabel(e),
77
+ attrs: s,
78
+ onClick: (H) => r.emojiClicked(e)
78
79
  }, {
79
- default: a(() => [
80
- d("span", N, [
81
- n(j, {
82
- size: "200",
83
- code: o.emojiUnicodeOrShortname
80
+ default: m(() => [
81
+ t("span", B, [
82
+ c(u, {
83
+ class: "d-recipe-emoji-row__emoji",
84
+ "img-class": "d-recipe-emoji-row__emoji-img",
85
+ code: e.emojiUnicodeOrShortname
84
86
  }, null, 8, ["code"])
85
87
  ]),
86
- d("span", R, p(o.num), 1)
88
+ t("span", $, a(e.num), 1)
87
89
  ]),
88
90
  _: 2
89
91
  }, 1032, ["class", "aria-label", "attrs", "onClick"])
90
92
  ]),
91
- default: a(() => [
92
- d("span", A, [
93
- n(u, { size: "200" }, {
94
- default: a(() => [
95
- v(p(r.reactionLabel(o)), 1)
93
+ default: m(() => [
94
+ t("span", A, [
95
+ c(j, { size: "800" }, {
96
+ default: m(() => [
97
+ t("p", N, a(e.emojiUnicodeOrShortname), 1),
98
+ t("p", R, [
99
+ O(a(e.names) + " ", 1),
100
+ t("span", {
101
+ class: "d-recipe-emoji-row__tooltip-label",
102
+ textContent: a(r.reactionLabel(e))
103
+ }, null, 8, U)
104
+ ])
96
105
  ]),
97
106
  _: 2
98
107
  }, 1024)
@@ -101,11 +110,11 @@ function z(e, t, l, _, B, r) {
101
110
  _: 2
102
111
  }, 1032, ["onShown"])
103
112
  ]))), 128)),
104
- k(e.$slots, "picker")
113
+ S(o.$slots, "picker")
105
114
  ]);
106
115
  }
107
- const J = /* @__PURE__ */ b(I, [["render", z]]);
116
+ const X = /* @__PURE__ */ x(g, [["render", z]]);
108
117
  export {
109
- J as default
118
+ X as default
110
119
  };
111
120
  //# sourceMappingURL=emoji-row.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-row.js","sources":["../../../recipes/conversation_view/emoji_row/emoji_row.vue"],"sourcesContent":["<template>\n <span class=\"d-recipe-emoji-row\">\n <span\n v-for=\"reaction in reactions\"\n :key=\"reaction.unicodeOutput\"\n >\n <dt-tooltip\n class=\"d-recipe-emoji-row__tooltip\"\n content-class=\"d-recipe-emoji-row__tooltip-content\"\n sticky=\"popper\"\n @shown=\"(shown) => emojiHovered(reaction, shown)\"\n >\n <span aria-hidden=\"true\">\n <dt-emoji-text-wrapper size=\"200\">\n {{ reactionLabel(reaction) }}\n </dt-emoji-text-wrapper>\n </span>\n <template #anchor=\"{ attrs }\">\n <dt-button\n importance=\"clear\"\n size=\"sm\"\n data-qa=\"feed-item-reaction-button\"\n :class=\"[\n 'd-recipe-emoji-row__reaction',\n reaction.isSelected ? 'd-recipe-emoji-row__reaction--selected' : '',\n ]\"\n :aria-label=\"reactionLabel(reaction)\"\n :attrs=\"attrs\"\n @click=\"emojiClicked(reaction)\"\n >\n <span class=\"d-recipe-emoji-row__emoji\">\n <dt-emoji\n size=\"200\"\n :code=\"reaction.emojiUnicodeOrShortname\"\n />\n </span>\n <span class=\"d-recipe-emoji-row__reaction-number\">\n {{ reaction.num }}\n </span>\n </dt-button>\n </template>\n </dt-tooltip>\n </span>\n <!-- TODO: Replace picker slot with a button with localized text and emit any event needed -->\n <!-- @slot Slot for emoji picker component, including the anchor. -->\n <slot name=\"picker\" />\n </span>\n</template>\n\n<script>\nimport { REACTIONS_ATTRIBUTES } from './emoji_row_constants.js';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtEmoji } from '@/components/emoji';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEmojiRow',\n\n components: { DtTooltip, DtButton, DtEmoji, DtEmojiTextWrapper },\n\n props: {\n /**\n * Provide an array of reaction objects to be shown.\n */\n reactions: {\n type: Array,\n default: () => [],\n validator: (reactions) => {\n for (const reaction of reactions) {\n const validInput = REACTIONS_ATTRIBUTES.every((attribute) => reaction[attribute] !== undefined);\n if (!validInput) return false;\n }\n return true;\n },\n },\n },\n\n emits: [\n 'emoji-clicked',\n 'emoji-hovered',\n ],\n\n data () {\n return {\n i18n: new DialtoneLocalization(),\n };\n },\n\n methods: {\n emojiClicked (reaction) {\n this.$emit('emoji-clicked', reaction.emojiUnicodeOrShortname);\n },\n\n emojiHovered (reaction, state) {\n this.$emit('emoji-hovered', {\n reaction: reaction.emojiUnicodeOrShortname,\n state,\n });\n },\n\n reactionLabel (reaction) {\n return this.i18n.$t('DIALTONE_EMOJI_ROW_REACTION_LABEL', {\n names: reaction.names,\n reaction: reaction.emojiUnicodeOrShortname,\n });\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtTooltip","DtButton","DtEmoji","DtEmojiTextWrapper","reactions","reaction","REACTIONS_ATTRIBUTES","attribute","DialtoneLocalization","state","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_Fragment","_renderList","$props","_createVNode","_component_dt_tooltip","shown","$options","_withCtx","attrs","_component_dt_button","_normalizeClass","$event","_createElementVNode","_component_dt_emoji","_toDisplayString","_component_dt_emoji_text_wrapper","_createTextVNode","_renderSlot","_ctx"],"mappings":";;;;;;;;AAyDA,MAAKA,IAAU;AAAA,EACb,cAAc,EAAE,MAAM;EACtB,MAAM;AAAA,EAEN,YAAY,EAAE,WAAAC,GAAW,UAAAC,GAAU,SAAAC,GAAO,oBAAEC,EAAiB;AAAA,EAE7D,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,MACf,WAAW,CAACC,MAAc;AACxB,mBAAWC,KAAYD;AAErB,cAAI,CADeE,EAAqB,MAAM,CAACC,MAAcF,EAASE,CAAS,MAAM,MAAS,EAC7E,QAAO;AAE1B,eAAO;AAAA,MACT;AAAA;;EAIJ,OAAO;AAAA,IACL;AAAA,IACA;AAAA;EAGF,OAAQ;AACN,WAAO;AAAA,MACL,MAAM,IAAIC,EAAoB;AAAA;EAElC;AAAA,EAEA,SAAS;AAAA,IACP,aAAcH,GAAU;AACtB,WAAK,MAAM,iBAAiBA,EAAS,uBAAuB;AAAA,IAC9D;AAAA,IAEA,aAAcA,GAAUI,GAAO;AAC7B,WAAK,MAAM,iBAAiB;AAAA,QAC1B,UAAUJ,EAAS;AAAA,QACnB,OAAAI;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,cAAeJ,GAAU;AACvB,aAAO,KAAK,KAAK,GAAG,qCAAqC;AAAA,QACvD,OAAOA,EAAS;AAAA,QAChB,UAAUA,EAAS;AAAA,MACrB,CAAC;AAAA,IACH;AAAA;AAEJ,GA7GQK,IAAA,EAAA,OAAM,qBAAoB,GAWpBC,IAAA,EAAA,eAAY,OAAM,GAkBdC,IAAA,EAAA,OAAM,4BAA2B,GAMjCC,IAAA,EAAA,OAAM,sCAAqC;;;AAnC3D,SAAAC,EAAA,GAAAC,EA6CO,QA7CPL,GA6CO;AAAA,KA5CLI,EAAA,EAAA,GAAAC,EAwCOC,GAAA,MA1CXC,EAGyBC,EAAA,WAHzB,CAGab,YADTU,EAwCO,QAAA;AAAA,MAtCJ,KAAKV,EAAS;AAAA;MAEfc,EAmCaC,GAAA;AAAA,QAlCX,OAAM;AAAA,QACN,iBAAc;AAAA,QACd,QAAO;AAAA,QACN,UAAQC,MAAUC,eAAajB,GAAUgB,CAAK;AAAA;QAOpC,QAAME,EACf,CAqBY,EAtBO,OAAAC,QAAK;AAAA,UACxBL,EAqBYM,GAAA;AAAA,YApBV,YAAW;AAAA,YACX,MAAK;AAAA,YACL,WAAQ;AAAA,YACP,OAtBbC,EAAA;AAAA;cAsBkFrB,EAAS,aAAU,2CAAA;AAAA;YAIxF,cAAYiB,EAAA,cAAcjB,CAAQ;AAAA,YAClC,OAAOmB;AAAA,YACP,SAAK,CAAAG,MAAEL,EAAA,aAAajB,CAAQ;AAAA;YA5BzC,SAAAkB,EA8BY,MAKO;AAAA,cALPK,EAKO,QALPhB,GAKO;AAAA,gBAJLO,EAGEU,GAAA;AAAA,kBAFA,MAAK;AAAA,kBACJ,MAAMxB,EAAS;AAAA;;cAGpBuB,EAEO,QAFPf,GAEOiB,EADFzB,EAAS,GAAG,GAAA,CAAA;AAAA;YArC7B,GAAA;AAAA;;QAAA,SAAAkB,EAYQ,MAIO;AAAA,UAJPK,EAIO,QAJPjB,GAIO;AAAA,YAHLQ,EAEwBY,GAAA,EAFD,MAAK,MAAK,GAAA;AAAA,cAb3C,SAAAR,EAcY,MAA6B;AAAA,gBAdzCS,EAAAF,EAceR,EAAA,cAAcjB,CAAQ,CAAA,GAAA,CAAA;AAAA;cAdrC,GAAA;AAAA;;;QAAA,GAAA;AAAA;;IA6CI4B,EAAsBC,EAAA,QAAA,QAAA;AAAA;;;"}
1
+ {"version":3,"file":"emoji-row.js","sources":["../../../recipes/conversation_view/emoji_row/emoji_row.vue"],"sourcesContent":["<template>\n <span class=\"d-recipe-emoji-row\">\n <span\n v-for=\"reaction in reactions\"\n :key=\"reaction.unicodeOutput\"\n >\n <dt-tooltip\n class=\"d-recipe-emoji-row__tooltip\"\n content-class=\"d-recipe-emoji-row__tooltip-content\"\n :fallback-placements=\"['top', 'bottom']\"\n sticky=\"popper\"\n @shown=\"(shown) => emojiHovered(reaction, shown)\"\n >\n <span aria-hidden=\"true\">\n <dt-emoji-text-wrapper size=\"800\">\n <p class=\"d-recipe-emoji-row__tooltip-emoji\">\n {{ reaction.emojiUnicodeOrShortname }}\n </p>\n <p class=\"d-recipe-emoji-row__tooltip-names\">\n {{ reaction.names }}\n <span\n class=\"d-recipe-emoji-row__tooltip-label\"\n v-text=\"reactionLabel(reaction)\"\n />\n </p>\n </dt-emoji-text-wrapper>\n </span>\n <template #anchor=\"{ attrs }\">\n <dt-button\n importance=\"clear\"\n size=\"sm\"\n data-qa=\"feed-item-reaction-button\"\n :class=\"[\n 'd-recipe-emoji-row__reaction',\n reaction.isSelected ? 'd-recipe-emoji-row__reaction--selected' : '',\n ]\"\n :aria-label=\"reactionLabel(reaction)\"\n :attrs=\"attrs\"\n @click=\"emojiClicked(reaction)\"\n >\n <span class=\"d-recipe-emoji-row__emoji\">\n <dt-emoji\n class=\"d-recipe-emoji-row__emoji\"\n img-class=\"d-recipe-emoji-row__emoji-img\"\n :code=\"reaction.emojiUnicodeOrShortname\"\n />\n </span>\n <span class=\"d-recipe-emoji-row__reaction-number\">\n {{ reaction.num }}\n </span>\n </dt-button>\n </template>\n </dt-tooltip>\n </span>\n <!-- TODO: Replace picker slot with a button with localized text and emit any event needed -->\n <!-- @slot Slot for emoji picker component, including the anchor. -->\n <slot name=\"picker\" />\n </span>\n</template>\n\n<script>\nimport { REACTIONS_ATTRIBUTES } from './emoji_row_constants.js';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtEmoji } from '@/components/emoji';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DialtoneLocalization } from '@/localization';\nimport { getEmojiShortCode } from '@/common/emoji';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeEmojiRow',\n\n components: { DtTooltip, DtButton, DtEmoji, DtEmojiTextWrapper },\n\n props: {\n /**\n * Provide an array of reaction objects to be shown.\n */\n reactions: {\n type: Array,\n default: () => [],\n validator: (reactions) => {\n for (const reaction of reactions) {\n const validInput = REACTIONS_ATTRIBUTES.every((attribute) => reaction[attribute] !== undefined);\n if (!validInput) return false;\n }\n return true;\n },\n },\n },\n\n emits: [\n 'emoji-clicked',\n 'emoji-hovered',\n ],\n\n data () {\n return {\n i18n: new DialtoneLocalization(),\n };\n },\n\n methods: {\n emojiClicked (reaction) {\n this.$emit('emoji-clicked', reaction.emojiUnicodeOrShortname);\n },\n\n emojiHovered (reaction, state) {\n this.$emit('emoji-hovered', {\n reaction: reaction.emojiUnicodeOrShortname,\n state,\n });\n },\n\n reactionLabel (reaction) {\n return this.i18n.$t('DIALTONE_EMOJI_ROW_REACTION_LABEL', {\n reaction: getEmojiShortCode(reaction.emojiUnicodeOrShortname),\n });\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtTooltip","DtButton","DtEmoji","DtEmojiTextWrapper","reactions","reaction","REACTIONS_ATTRIBUTES","attribute","DialtoneLocalization","state","getEmojiShortCode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_openBlock","_createElementBlock","_Fragment","_renderList","$props","_createVNode","_component_dt_tooltip","shown","$options","_withCtx","attrs","_component_dt_button","_normalizeClass","$event","_createElementVNode","_component_dt_emoji","_toDisplayString","_component_dt_emoji_text_wrapper","_createTextVNode","_renderSlot","_ctx"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("../../common/emoji/index.cjs"),n=require("vue"),c=require("../icon/icon-constants.cjs"),a=require("../emoji/emoji.cjs"),l=n.h(n.resolveDynamicComponent(null)).type,p={compatConfig:{MODE:3},name:"DtEmojiTextWrapper",components:{DtEmoji:a.default},props:{elementType:{type:String,default:"div"},size:{type:String,default:"500",validator:e=>Object.keys(c.ICON_SIZE_MODIFIERS).includes(e)}},data(){return{loadingEmojiJson:!0}},async created(){this.loadingEmojiJson=!1},methods:{replaceDtEmojis(e,t){if(!e.length)return t;const r=e.map(s=>s.replace(/\*/g,"\\*")),i=new RegExp(`(${r.join("|")})`,"g");return t.split(i).filter(s=>s.trim()!=="").map(s=>e.includes(s)?n.h(a.default,{code:s,size:this.size}):n.h("span",{class:"d-emoji-text-wrapper__text"},s))},searchVNodes(e){var r;if(typeof e=="string")return this.searchCodes(e);if(e.type===l)return e;if(typeof e.type=="symbol")return this.searchCodes(e.children);if((r=e.props)!=null&&r.innerHTML)return this.searchVNodes(e.props.innerHTML);const t=Array.isArray(e.children)?e.children:[e.children];return n.h(e.type,e.props,t.map(i=>this.searchVNodes(i)))},replaceVueComponentVNodeContent(){},searchCodes(e){const t=o.findShortCodes(e),r=o.findEmojis(e),i=[...t,...r];return i.length===0?e:this.replaceDtEmojis(i,e)}},render(){const e=this.$slots.default?this.$slots.default():[];return n.h(this.elementType,{"data-qa":"emoji-text-wrapper",class:"d-emoji-text-wrapper"},this.loadingEmojiJson?e:e.map(t=>this.searchVNodes(t)))}};exports.default=p;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("../../common/emoji/index.cjs"),n=require("vue"),c=require("../icon/icon-constants.cjs"),a=require("../emoji/emoji.cjs"),l=n.h(n.resolveDynamicComponent(null)).type,p={compatConfig:{MODE:3},name:"DtEmojiTextWrapper",components:{DtEmoji:a.default},props:{elementType:{type:String,default:"div"},size:{type:String,default:"500",validator:e=>Object.keys(c.ICON_SIZE_MODIFIERS).includes(e)}},data(){return{loadingEmojiJson:!0}},async created(){this.loadingEmojiJson=!1},methods:{replaceDtEmojis(e,t){if(!e.length)return t;const s=e.map(r=>r.replace(/\*/g,"\\*")),i=new RegExp(`(${s.join("|")})`,"g");return t.split(i).filter(r=>r.trim()!=="").map(r=>e.includes(r)?n.h(a.default,{code:r,size:this.size}):n.h("span",{class:"d-emoji-text-wrapper__text"},r))},searchVNodes(e){var s;if(!e)return;if(typeof e=="string")return this.searchCodes(e);if(e.type===l)return e;if(typeof e.type=="symbol")return this.searchCodes(e.children);if((s=e.props)!=null&&s.innerHTML)return this.searchVNodes(e.props.innerHTML);const t=Array.isArray(e.children)?e.children:[e.children];return n.h(e.type,e.props,t.map(i=>this.searchVNodes(i)))},replaceVueComponentVNodeContent(){},searchCodes(e){const t=o.findShortCodes(e),s=o.findEmojis(e),i=[...t,...s];return i.length===0?e:this.replaceDtEmojis(i,e)}},render(){const e=this.$slots.default?this.$slots.default():[];return n.h(this.elementType,{"data-qa":"emoji-text-wrapper",class:"d-emoji-text-wrapper"},this.loadingEmojiJson?e:e.map(t=>this.searchVNodes(t)))}};exports.default=p;
2
2
  //# sourceMappingURL=emoji-text-wrapper.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-text-wrapper.cjs","sources":["../../../components/emoji_text_wrapper/emoji_text_wrapper.vue"],"sourcesContent":["<script>\nimport { DtEmoji } from '../emoji';\nimport { findEmojis, findShortCodes } from '@/common/emoji';\nimport { h, resolveDynamicComponent } from 'vue';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants';\n\nconst COMMENT_TYPE = h(resolveDynamicComponent(null)).type;\n\n/**\n * Wrapper to find and replace shortcodes like :smile: or unicode chars such as 😄 with our custom Emojis implementation.\n * @see https://dialtone.dialpad.com/components/emoji_text_wrapper.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtEmojiTextWrapper',\n\n components: {\n DtEmoji,\n },\n\n props: {\n /**\n * Element type (tag name) to use for the wrapper.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * The icon size to render the emojis at: 100 to 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n },\n\n data () {\n return {\n loadingEmojiJson: true,\n };\n },\n\n async created () {\n this.loadingEmojiJson = false;\n },\n\n methods: {\n /**\n * Replaces the valid codes from the text content with a DtEmoji component.\n * @returns {Array<VNode|string>}\n */\n replaceDtEmojis (replaceList, textContent) {\n if (!replaceList.length) return textContent;\n // Escape the asterisk to avoid breaking the regex for the asterisk emoji\n const escapedReplaceList = replaceList.map(item =>\n item.replace(/\\*/g, '\\\\*'),\n );\n\n const regexp = new RegExp(`(${escapedReplaceList.join('|')})`, 'g');\n const items = textContent.split(regexp);\n\n return items\n .filter(item => item.trim() !== '')\n .map((item) => {\n if (replaceList.includes(item)) {\n return h(DtEmoji, { code: item, size: this.size });\n }\n return h('span', { class: 'd-emoji-text-wrapper__text' }, item);\n });\n },\n\n /**\n * Recursively search the Vue virtual DOM to find text\n * @param VNode\n * @returns {VNode|*}\n */\n searchVNodes (VNode) {\n if (typeof VNode === 'string') return this.searchCodes(VNode);\n if (VNode.type === COMMENT_TYPE) return VNode;\n if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);\n if (VNode.props?.innerHTML) return this.searchVNodes(VNode.props.innerHTML);\n\n const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];\n return h(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));\n },\n\n // TODO: Find a way to crawl vue components\n replaceVueComponentVNodeContent () {\n //\n },\n\n /**\n * Find codes in text.\n * @param textContent string\n * @returns {Array<VNode|string>|string}\n */\n searchCodes (textContent) {\n const shortcodes = findShortCodes(textContent);\n const emojis = findEmojis(textContent);\n\n const replaceList = [...shortcodes, ...emojis];\n if (replaceList.length === 0) return textContent;\n return this.replaceDtEmojis(replaceList, textContent);\n },\n },\n\n render () {\n const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];\n return h(\n this.elementType,\n {\n 'data-qa': 'emoji-text-wrapper',\n class: 'd-emoji-text-wrapper',\n },\n this.loadingEmojiJson\n ? defaultSlotContent\n : defaultSlotContent.map(VNode => this.searchVNodes(VNode)),\n );\n },\n};\n</script>\n"],"names":["COMMENT_TYPE","h","resolveDynamicComponent","_sfc_main","DtEmoji","t","ICON_SIZE_MODIFIERS","replaceList","textContent","escapedReplaceList","item","regexp","VNode","_a","children","VNodeChild","shortcodes","findShortCodes","emojis","findEmojis","defaultSlotContent"],"mappings":"qPAMMA,EAAeC,EAAAA,EAAEC,EAAAA,wBAAwB,IAAI,CAAC,EAAE,KAMjDC,EAAU,CACb,aAAc,CAAE,KAAM,GACtB,KAAM,qBAEN,WAAY,CACV,QAAAC,EAAAA,SAGF,MAAO,CAIL,YAAa,CACX,KAAM,OACN,QAAS,OAMX,KAAM,CACJ,KAAM,OACN,QAAS,MACT,UAAYC,GAAM,OAAO,KAAKC,qBAAmB,EAAE,SAASD,CAAC,IAIjE,MAAQ,CACN,MAAO,CACL,iBAAkB,GAEtB,EAEA,MAAM,SAAW,CACf,KAAK,iBAAmB,EAC1B,EAEA,QAAS,CAKP,gBAAiBE,EAAaC,EAAa,CACzC,GAAI,CAACD,EAAY,OAAQ,OAAOC,EAEhC,MAAMC,EAAqBF,EAAY,IAAIG,GACzCA,EAAK,QAAQ,MAAO,KAAK,GAGrBC,EAAS,IAAI,OAAO,IAAIF,EAAmB,KAAK,GAAG,CAAC,IAAK,GAAG,EAGlE,OAFcD,EAAY,MAAMG,CAAM,EAGnC,OAAOD,GAAQA,EAAK,KAAI,IAAO,EAAE,EACjC,IAAKA,GACAH,EAAY,SAASG,CAAI,EACpBT,EAAAA,EAAEG,EAAAA,QAAS,CAAE,KAAMM,EAAM,KAAM,KAAK,KAAM,EAE5CT,EAAAA,EAAE,OAAQ,CAAE,MAAO,4BAA2B,EAAKS,CAAI,CAC/D,CACL,EAOA,aAAcE,EAAO,OACnB,GAAI,OAAOA,GAAU,SAAU,OAAO,KAAK,YAAYA,CAAK,EAC5D,GAAIA,EAAM,OAASZ,EAAc,OAAOY,EACxC,GAAI,OAAOA,EAAM,MAAS,SAAU,OAAO,KAAK,YAAYA,EAAM,QAAQ,EAC1E,IAAIC,EAAAD,EAAM,QAAN,MAAAC,EAAa,UAAW,OAAO,KAAK,aAAaD,EAAM,MAAM,SAAS,EAE1E,MAAME,EAAW,MAAM,QAAQF,EAAM,QAAQ,EAAIA,EAAM,SAAW,CAACA,EAAM,QAAQ,EACjF,OAAOX,EAAAA,EAAEW,EAAM,KAAMA,EAAM,MAAOE,EAAS,IAAIC,GAAc,KAAK,aAAaA,CAAU,CAAC,CAAC,CAC7F,EAGA,iCAAmC,CAEnC,EAOA,YAAaP,EAAa,CACxB,MAAMQ,EAAaC,EAAAA,eAAeT,CAAW,EACvCU,EAASC,EAAAA,WAAWX,CAAW,EAE/BD,EAAc,CAAC,GAAGS,EAAY,GAAGE,CAAM,EAC7C,OAAIX,EAAY,SAAW,EAAUC,EAC9B,KAAK,gBAAgBD,EAAaC,CAAW,CACtD,GAGF,QAAU,CACR,MAAMY,EAAqB,KAAK,OAAO,QAAU,KAAK,OAAO,QAAO,EAAK,CAAA,EACzE,OAAOnB,EAAAA,EACL,KAAK,YACL,CACE,UAAW,qBACX,MAAO,wBAET,KAAK,iBACDmB,EACAA,EAAmB,IAAIR,GAAS,KAAK,aAAaA,CAAK,CAAC,EAEhE,CACF"}
1
+ {"version":3,"file":"emoji-text-wrapper.cjs","sources":["../../../components/emoji_text_wrapper/emoji_text_wrapper.vue"],"sourcesContent":["<script>\nimport { DtEmoji } from '../emoji';\nimport { findEmojis, findShortCodes } from '@/common/emoji';\nimport { h, resolveDynamicComponent } from 'vue';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants';\n\nconst COMMENT_TYPE = h(resolveDynamicComponent(null)).type;\n\n/**\n * Wrapper to find and replace shortcodes like :smile: or unicode chars such as 😄 with our custom Emojis implementation.\n * @see https://dialtone.dialpad.com/components/emoji_text_wrapper.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtEmojiTextWrapper',\n\n components: {\n DtEmoji,\n },\n\n props: {\n /**\n * Element type (tag name) to use for the wrapper.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * The icon size to render the emojis at: 100 to 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n },\n\n data () {\n return {\n loadingEmojiJson: true,\n };\n },\n\n async created () {\n this.loadingEmojiJson = false;\n },\n\n methods: {\n /**\n * Replaces the valid codes from the text content with a DtEmoji component.\n * @returns {Array<VNode|string>}\n */\n replaceDtEmojis (replaceList, textContent) {\n if (!replaceList.length) return textContent;\n // Escape the asterisk to avoid breaking the regex for the asterisk emoji\n const escapedReplaceList = replaceList.map(item =>\n item.replace(/\\*/g, '\\\\*'),\n );\n\n const regexp = new RegExp(`(${escapedReplaceList.join('|')})`, 'g');\n const items = textContent.split(regexp);\n\n return items\n .filter(item => item.trim() !== '')\n .map((item) => {\n if (replaceList.includes(item)) {\n return h(DtEmoji, { code: item, size: this.size });\n }\n return h('span', { class: 'd-emoji-text-wrapper__text' }, item);\n });\n },\n\n /**\n * Recursively search the Vue virtual DOM to find text\n * @param VNode\n * @returns {VNode|*}\n */\n searchVNodes (VNode) {\n if (!VNode) return;\n if (typeof VNode === 'string') return this.searchCodes(VNode);\n if (VNode.type === COMMENT_TYPE) return VNode;\n if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);\n if (VNode.props?.innerHTML) return this.searchVNodes(VNode.props.innerHTML);\n\n const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];\n return h(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));\n },\n\n // TODO: Find a way to crawl vue components\n replaceVueComponentVNodeContent () {\n //\n },\n\n /**\n * Find codes in text.\n * @param textContent string\n * @returns {Array<VNode|string>|string}\n */\n searchCodes (textContent) {\n const shortcodes = findShortCodes(textContent);\n const emojis = findEmojis(textContent);\n\n const replaceList = [...shortcodes, ...emojis];\n if (replaceList.length === 0) return textContent;\n return this.replaceDtEmojis(replaceList, textContent);\n },\n },\n\n render () {\n const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];\n return h(\n this.elementType,\n {\n 'data-qa': 'emoji-text-wrapper',\n class: 'd-emoji-text-wrapper',\n },\n this.loadingEmojiJson\n ? defaultSlotContent\n : defaultSlotContent.map(VNode => this.searchVNodes(VNode)),\n );\n },\n};\n</script>\n"],"names":["COMMENT_TYPE","h","resolveDynamicComponent","_sfc_main","DtEmoji","t","ICON_SIZE_MODIFIERS","replaceList","textContent","escapedReplaceList","item","regexp","VNode","_a","children","VNodeChild","shortcodes","findShortCodes","emojis","findEmojis","defaultSlotContent"],"mappings":"qPAMMA,EAAeC,EAAAA,EAAEC,EAAAA,wBAAwB,IAAI,CAAC,EAAE,KAMjDC,EAAU,CACb,aAAc,CAAE,KAAM,GACtB,KAAM,qBAEN,WAAY,CACV,QAAAC,EAAAA,SAGF,MAAO,CAIL,YAAa,CACX,KAAM,OACN,QAAS,OAMX,KAAM,CACJ,KAAM,OACN,QAAS,MACT,UAAYC,GAAM,OAAO,KAAKC,qBAAmB,EAAE,SAASD,CAAC,IAIjE,MAAQ,CACN,MAAO,CACL,iBAAkB,GAEtB,EAEA,MAAM,SAAW,CACf,KAAK,iBAAmB,EAC1B,EAEA,QAAS,CAKP,gBAAiBE,EAAaC,EAAa,CACzC,GAAI,CAACD,EAAY,OAAQ,OAAOC,EAEhC,MAAMC,EAAqBF,EAAY,IAAIG,GACzCA,EAAK,QAAQ,MAAO,KAAK,GAGrBC,EAAS,IAAI,OAAO,IAAIF,EAAmB,KAAK,GAAG,CAAC,IAAK,GAAG,EAGlE,OAFcD,EAAY,MAAMG,CAAM,EAGnC,OAAOD,GAAQA,EAAK,KAAI,IAAO,EAAE,EACjC,IAAKA,GACAH,EAAY,SAASG,CAAI,EACpBT,EAAAA,EAAEG,EAAAA,QAAS,CAAE,KAAMM,EAAM,KAAM,KAAK,KAAM,EAE5CT,EAAAA,EAAE,OAAQ,CAAE,MAAO,4BAA2B,EAAKS,CAAI,CAC/D,CACL,EAOA,aAAcE,EAAO,OACnB,GAAI,CAACA,EAAO,OACZ,GAAI,OAAOA,GAAU,SAAU,OAAO,KAAK,YAAYA,CAAK,EAC5D,GAAIA,EAAM,OAASZ,EAAc,OAAOY,EACxC,GAAI,OAAOA,EAAM,MAAS,SAAU,OAAO,KAAK,YAAYA,EAAM,QAAQ,EAC1E,IAAIC,EAAAD,EAAM,QAAN,MAAAC,EAAa,UAAW,OAAO,KAAK,aAAaD,EAAM,MAAM,SAAS,EAE1E,MAAME,EAAW,MAAM,QAAQF,EAAM,QAAQ,EAAIA,EAAM,SAAW,CAACA,EAAM,QAAQ,EACjF,OAAOX,EAAAA,EAAEW,EAAM,KAAMA,EAAM,MAAOE,EAAS,IAAIC,GAAc,KAAK,aAAaA,CAAU,CAAC,CAAC,CAC7F,EAGA,iCAAmC,CAEnC,EAOA,YAAaP,EAAa,CACxB,MAAMQ,EAAaC,EAAAA,eAAeT,CAAW,EACvCU,EAASC,EAAAA,WAAWX,CAAW,EAE/BD,EAAc,CAAC,GAAGS,EAAY,GAAGE,CAAM,EAC7C,OAAIX,EAAY,SAAW,EAAUC,EAC9B,KAAK,gBAAgBD,EAAaC,CAAW,CACtD,GAGF,QAAU,CACR,MAAMY,EAAqB,KAAK,OAAO,QAAU,KAAK,OAAO,QAAO,EAAK,CAAA,EACzE,OAAOnB,EAAAA,EACL,KAAK,YACL,CACE,UAAW,qBACX,MAAO,wBAET,KAAK,iBACDmB,EACAA,EAAmB,IAAIR,GAAS,KAAK,aAAaA,CAAK,CAAC,EAEhE,CACF"}
@@ -52,6 +52,7 @@ const m = n(c(null)).type, j = {
52
52
  */
53
53
  searchVNodes(e) {
54
54
  var s;
55
+ if (!e) return;
55
56
  if (typeof e == "string") return this.searchCodes(e);
56
57
  if (e.type === m) return e;
57
58
  if (typeof e.type == "symbol") return this.searchCodes(e.children);
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-text-wrapper.js","sources":["../../../components/emoji_text_wrapper/emoji_text_wrapper.vue"],"sourcesContent":["<script>\nimport { DtEmoji } from '../emoji';\nimport { findEmojis, findShortCodes } from '@/common/emoji';\nimport { h, resolveDynamicComponent } from 'vue';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants';\n\nconst COMMENT_TYPE = h(resolveDynamicComponent(null)).type;\n\n/**\n * Wrapper to find and replace shortcodes like :smile: or unicode chars such as 😄 with our custom Emojis implementation.\n * @see https://dialtone.dialpad.com/components/emoji_text_wrapper.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtEmojiTextWrapper',\n\n components: {\n DtEmoji,\n },\n\n props: {\n /**\n * Element type (tag name) to use for the wrapper.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * The icon size to render the emojis at: 100 to 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n },\n\n data () {\n return {\n loadingEmojiJson: true,\n };\n },\n\n async created () {\n this.loadingEmojiJson = false;\n },\n\n methods: {\n /**\n * Replaces the valid codes from the text content with a DtEmoji component.\n * @returns {Array<VNode|string>}\n */\n replaceDtEmojis (replaceList, textContent) {\n if (!replaceList.length) return textContent;\n // Escape the asterisk to avoid breaking the regex for the asterisk emoji\n const escapedReplaceList = replaceList.map(item =>\n item.replace(/\\*/g, '\\\\*'),\n );\n\n const regexp = new RegExp(`(${escapedReplaceList.join('|')})`, 'g');\n const items = textContent.split(regexp);\n\n return items\n .filter(item => item.trim() !== '')\n .map((item) => {\n if (replaceList.includes(item)) {\n return h(DtEmoji, { code: item, size: this.size });\n }\n return h('span', { class: 'd-emoji-text-wrapper__text' }, item);\n });\n },\n\n /**\n * Recursively search the Vue virtual DOM to find text\n * @param VNode\n * @returns {VNode|*}\n */\n searchVNodes (VNode) {\n if (typeof VNode === 'string') return this.searchCodes(VNode);\n if (VNode.type === COMMENT_TYPE) return VNode;\n if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);\n if (VNode.props?.innerHTML) return this.searchVNodes(VNode.props.innerHTML);\n\n const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];\n return h(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));\n },\n\n // TODO: Find a way to crawl vue components\n replaceVueComponentVNodeContent () {\n //\n },\n\n /**\n * Find codes in text.\n * @param textContent string\n * @returns {Array<VNode|string>|string}\n */\n searchCodes (textContent) {\n const shortcodes = findShortCodes(textContent);\n const emojis = findEmojis(textContent);\n\n const replaceList = [...shortcodes, ...emojis];\n if (replaceList.length === 0) return textContent;\n return this.replaceDtEmojis(replaceList, textContent);\n },\n },\n\n render () {\n const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];\n return h(\n this.elementType,\n {\n 'data-qa': 'emoji-text-wrapper',\n class: 'd-emoji-text-wrapper',\n },\n this.loadingEmojiJson\n ? defaultSlotContent\n : defaultSlotContent.map(VNode => this.searchVNodes(VNode)),\n );\n },\n};\n</script>\n"],"names":["COMMENT_TYPE","h","resolveDynamicComponent","_sfc_main","DtEmoji","t","ICON_SIZE_MODIFIERS","replaceList","textContent","escapedReplaceList","item","regexp","VNode","_a","children","VNodeChild","shortcodes","findShortCodes","emojis","findEmojis","defaultSlotContent"],"mappings":";;;;AAMA,MAAMA,IAAeC,EAAEC,EAAwB,IAAI,CAAC,EAAE,MAMjDC,IAAU;AAAA,EACb,cAAc,EAAE,MAAM;EACtB,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,SAAAC;AAAA;EAGF,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACC,MAAM,OAAO,KAAKC,CAAmB,EAAE,SAASD,CAAC;AAAA;;EAIjE,OAAQ;AACN,WAAO;AAAA,MACL,kBAAkB;AAAA;EAEtB;AAAA,EAEA,MAAM,UAAW;AACf,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,gBAAiBE,GAAaC,GAAa;AACzC,UAAI,CAACD,EAAY,OAAQ,QAAOC;AAEhC,YAAMC,IAAqBF,EAAY;AAAA,QAAI,CAAAG,MACzCA,EAAK,QAAQ,OAAO,KAAK;AAAA,SAGrBC,IAAS,IAAI,OAAO,IAAIF,EAAmB,KAAK,GAAG,CAAC,KAAK,GAAG;AAGlE,aAFcD,EAAY,MAAMG,CAAM,EAGnC,OAAO,CAAAD,MAAQA,EAAK,KAAI,MAAO,EAAE,EACjC,IAAI,CAACA,MACAH,EAAY,SAASG,CAAI,IACpBT,EAAEG,GAAS,EAAE,MAAMM,GAAM,MAAM,KAAK,MAAM,IAE5CT,EAAE,QAAQ,EAAE,OAAO,6BAA2B,GAAKS,CAAI,CAC/D;AAAA,IACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,aAAcE,GAAO;;AACnB,UAAI,OAAOA,KAAU,SAAU,QAAO,KAAK,YAAYA,CAAK;AAC5D,UAAIA,EAAM,SAASZ,EAAc,QAAOY;AACxC,UAAI,OAAOA,EAAM,QAAS,SAAU,QAAO,KAAK,YAAYA,EAAM,QAAQ;AAC1E,WAAIC,IAAAD,EAAM,UAAN,QAAAC,EAAa,UAAW,QAAO,KAAK,aAAaD,EAAM,MAAM,SAAS;AAE1E,YAAME,IAAW,MAAM,QAAQF,EAAM,QAAQ,IAAIA,EAAM,WAAW,CAACA,EAAM,QAAQ;AACjF,aAAOX,EAAEW,EAAM,MAAMA,EAAM,OAAOE,EAAS,IAAI,CAAAC,MAAc,KAAK,aAAaA,CAAU,CAAC,CAAC;AAAA,IAC7F;AAAA;AAAA,IAGA,kCAAmC;AAAA,IAEnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAaP,GAAa;AACxB,YAAMQ,IAAaC,EAAeT,CAAW,GACvCU,IAASC,EAAWX,CAAW,GAE/BD,IAAc,CAAC,GAAGS,GAAY,GAAGE,CAAM;AAC7C,aAAIX,EAAY,WAAW,IAAUC,IAC9B,KAAK,gBAAgBD,GAAaC,CAAW;AAAA,IACtD;AAAA;EAGF,SAAU;AACR,UAAMY,IAAqB,KAAK,OAAO,UAAU,KAAK,OAAO,QAAO,IAAK,CAAA;AACzE,WAAOnB;AAAA,MACL,KAAK;AAAA,MACL;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA;MAET,KAAK,mBACDmB,IACAA,EAAmB,IAAI,CAAAR,MAAS,KAAK,aAAaA,CAAK,CAAC;AAAA;EAEhE;AACF;"}
1
+ {"version":3,"file":"emoji-text-wrapper.js","sources":["../../../components/emoji_text_wrapper/emoji_text_wrapper.vue"],"sourcesContent":["<script>\nimport { DtEmoji } from '../emoji';\nimport { findEmojis, findShortCodes } from '@/common/emoji';\nimport { h, resolveDynamicComponent } from 'vue';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants';\n\nconst COMMENT_TYPE = h(resolveDynamicComponent(null)).type;\n\n/**\n * Wrapper to find and replace shortcodes like :smile: or unicode chars such as 😄 with our custom Emojis implementation.\n * @see https://dialtone.dialpad.com/components/emoji_text_wrapper.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtEmojiTextWrapper',\n\n components: {\n DtEmoji,\n },\n\n props: {\n /**\n * Element type (tag name) to use for the wrapper.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * The icon size to render the emojis at: 100 to 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n },\n\n data () {\n return {\n loadingEmojiJson: true,\n };\n },\n\n async created () {\n this.loadingEmojiJson = false;\n },\n\n methods: {\n /**\n * Replaces the valid codes from the text content with a DtEmoji component.\n * @returns {Array<VNode|string>}\n */\n replaceDtEmojis (replaceList, textContent) {\n if (!replaceList.length) return textContent;\n // Escape the asterisk to avoid breaking the regex for the asterisk emoji\n const escapedReplaceList = replaceList.map(item =>\n item.replace(/\\*/g, '\\\\*'),\n );\n\n const regexp = new RegExp(`(${escapedReplaceList.join('|')})`, 'g');\n const items = textContent.split(regexp);\n\n return items\n .filter(item => item.trim() !== '')\n .map((item) => {\n if (replaceList.includes(item)) {\n return h(DtEmoji, { code: item, size: this.size });\n }\n return h('span', { class: 'd-emoji-text-wrapper__text' }, item);\n });\n },\n\n /**\n * Recursively search the Vue virtual DOM to find text\n * @param VNode\n * @returns {VNode|*}\n */\n searchVNodes (VNode) {\n if (!VNode) return;\n if (typeof VNode === 'string') return this.searchCodes(VNode);\n if (VNode.type === COMMENT_TYPE) return VNode;\n if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);\n if (VNode.props?.innerHTML) return this.searchVNodes(VNode.props.innerHTML);\n\n const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];\n return h(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));\n },\n\n // TODO: Find a way to crawl vue components\n replaceVueComponentVNodeContent () {\n //\n },\n\n /**\n * Find codes in text.\n * @param textContent string\n * @returns {Array<VNode|string>|string}\n */\n searchCodes (textContent) {\n const shortcodes = findShortCodes(textContent);\n const emojis = findEmojis(textContent);\n\n const replaceList = [...shortcodes, ...emojis];\n if (replaceList.length === 0) return textContent;\n return this.replaceDtEmojis(replaceList, textContent);\n },\n },\n\n render () {\n const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];\n return h(\n this.elementType,\n {\n 'data-qa': 'emoji-text-wrapper',\n class: 'd-emoji-text-wrapper',\n },\n this.loadingEmojiJson\n ? defaultSlotContent\n : defaultSlotContent.map(VNode => this.searchVNodes(VNode)),\n );\n },\n};\n</script>\n"],"names":["COMMENT_TYPE","h","resolveDynamicComponent","_sfc_main","DtEmoji","t","ICON_SIZE_MODIFIERS","replaceList","textContent","escapedReplaceList","item","regexp","VNode","_a","children","VNodeChild","shortcodes","findShortCodes","emojis","findEmojis","defaultSlotContent"],"mappings":";;;;AAMA,MAAMA,IAAeC,EAAEC,EAAwB,IAAI,CAAC,EAAE,MAMjDC,IAAU;AAAA,EACb,cAAc,EAAE,MAAM;EACtB,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,SAAAC;AAAA;EAGF,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACC,MAAM,OAAO,KAAKC,CAAmB,EAAE,SAASD,CAAC;AAAA;;EAIjE,OAAQ;AACN,WAAO;AAAA,MACL,kBAAkB;AAAA;EAEtB;AAAA,EAEA,MAAM,UAAW;AACf,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,gBAAiBE,GAAaC,GAAa;AACzC,UAAI,CAACD,EAAY,OAAQ,QAAOC;AAEhC,YAAMC,IAAqBF,EAAY;AAAA,QAAI,CAAAG,MACzCA,EAAK,QAAQ,OAAO,KAAK;AAAA,SAGrBC,IAAS,IAAI,OAAO,IAAIF,EAAmB,KAAK,GAAG,CAAC,KAAK,GAAG;AAGlE,aAFcD,EAAY,MAAMG,CAAM,EAGnC,OAAO,CAAAD,MAAQA,EAAK,KAAI,MAAO,EAAE,EACjC,IAAI,CAACA,MACAH,EAAY,SAASG,CAAI,IACpBT,EAAEG,GAAS,EAAE,MAAMM,GAAM,MAAM,KAAK,MAAM,IAE5CT,EAAE,QAAQ,EAAE,OAAO,6BAA2B,GAAKS,CAAI,CAC/D;AAAA,IACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,aAAcE,GAAO;;AACnB,UAAI,CAACA,EAAO;AACZ,UAAI,OAAOA,KAAU,SAAU,QAAO,KAAK,YAAYA,CAAK;AAC5D,UAAIA,EAAM,SAASZ,EAAc,QAAOY;AACxC,UAAI,OAAOA,EAAM,QAAS,SAAU,QAAO,KAAK,YAAYA,EAAM,QAAQ;AAC1E,WAAIC,IAAAD,EAAM,UAAN,QAAAC,EAAa,UAAW,QAAO,KAAK,aAAaD,EAAM,MAAM,SAAS;AAE1E,YAAME,IAAW,MAAM,QAAQF,EAAM,QAAQ,IAAIA,EAAM,WAAW,CAACA,EAAM,QAAQ;AACjF,aAAOX,EAAEW,EAAM,MAAMA,EAAM,OAAOE,EAAS,IAAI,CAAAC,MAAc,KAAK,aAAaA,CAAU,CAAC,CAAC;AAAA,IAC7F;AAAA;AAAA,IAGA,kCAAmC;AAAA,IAEnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAaP,GAAa;AACxB,YAAMQ,IAAaC,EAAeT,CAAW,GACvCU,IAASC,EAAWX,CAAW,GAE/BD,IAAc,CAAC,GAAGS,GAAY,GAAGE,CAAM;AAC7C,aAAIX,EAAY,WAAW,IAAUC,IAC9B,KAAK,gBAAgBD,GAAaC,CAAW;AAAA,IACtD;AAAA;EAGF,SAAU;AACR,UAAMY,IAAqB,KAAK,OAAO,UAAU,KAAK,OAAO,QAAO,IAAK,CAAA;AACzE,WAAOnB;AAAA,MACL,KAAK;AAAA,MACL;AAAA,QACE,WAAW;AAAA,QACX,OAAO;AAAA;MAET,KAAK,mBACDmB,IACAA,EAAmB,IAAI,CAAAR,MAAS,KAAK,aAAaA,CAAK,CAAC;AAAA;EAEhE;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("./toast-constants.cjs"),d=require("../../common/utils/index.cjs"),e=require("vue"),r=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),S=require("../notice/notice-action.cjs"),g=require("../notice/notice-content.cjs"),I=require("../notice/notice-icon.cjs"),C=require("../notice/notice-constants.cjs"),o=require("@dialpad/dialtone-icons/vue3"),k=require("../icon/icon-constants.cjs"),p={name:"ToastLayoutDefault",components:{DtNoticeIcon:I.default,DtNoticeContent:g.default,DtNoticeAction:S.default},inheritAttrs:!1,props:{isShown:{type:Boolean,default:!1},titleId:{type:String,default(){return d.default.getUniqueString()}},contentId:{type:String,default(){return d.default.getUniqueString()}},title:{type:String,default:""},message:{type:String,default:""},role:{type:String,default:"status",validator:t=>l.TOAST_ROLES.includes(t)},kind:{type:String,default:"base",validator:t=>C.NOTICE_KINDS.includes(t)},important:{type:Boolean,default:!1},hideClose:{type:Boolean,default:!1},hideIcon:{type:Boolean,default:!1},hideAction:{type:Boolean,default:!1}},emits:["close"],computed:{kindClass(){return{error:"d-toast--error",info:"d-toast--info",success:"d-toast--success",warning:"d-toast--warning",base:"d-toast--base"}[this.kind]}}},T=["aria-hidden"],D={class:"d-toast__dialog"};function v(t,a,n,c,s,i){const u=e.resolveComponent("dt-notice-icon"),f=e.resolveComponent("dt-notice-content"),m=e.resolveComponent("dt-notice-action");return n.isShown?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["d-toast",i.kindClass,{"d-toast--important":n.important}]),"data-qa":"dt-toast","aria-hidden":(!n.isShown).toString()},[e.createElementVNode("div",D,[n.hideIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(u,e.mergeProps({key:0,kind:n.kind},t.$attrs),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"icon")]),_:3},16,["kind"])),e.createVNode(f,e.mergeProps({"title-id":n.titleId,"content-id":n.contentId,title:n.title,role:n.role},t.$attrs),{titleOverride:e.withCtx(()=>[e.renderSlot(t.$slots,"titleOverride")]),default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])]),_:3},16,["title-id","content-id","title","role"]),e.createVNode(m,e.mergeProps({"hide-action":n.hideAction,"hide-close":n.hideClose},t.$attrs,{onClose:a[0]||(a[0]=y=>t.$emit("close"))}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"action")]),_:3},16,["hide-action","hide-close"])])],10,T)):e.createCommentVNode("",!0)}const h=r._(p,[["render",v]]),w=new Map([["info",o.DtIconInfo],["success",o.DtIconInfo],["warning",o.DtIconAlertTriangle],["error",o.DtIconInfo],["base",o.DtIconBell],["gradient",o.DtIconSparkle]]),N={compatConfig:{MODE:3},name:"DtToastLayoutAlternateIcon",components:{DtIconInfo:o.DtIconInfo,DtIconAlertTriangle:o.DtIconAlertTriangle,DtIconBell:o.DtIconBell,DtIconSparkle:o.DtIconSparkle},props:{kind:{type:String,default:"base",validate(t){return l.TOAST_ALTERNATE_KINDS.includes(t)}},size:{type:String,default:"400",validator:t=>Object.keys(k.ICON_SIZE_MODIFIERS).includes(t)}},computed:{defaultIcon(){return w.get(this.kind)}}},A={"aria-hidden":"true",class:"d-toast-layout-alternate__icon"};function B(t,a,n,c,s,i){return e.openBlock(),e.createElementBlock("div",A,[e.renderSlot(t.$slots,"default",{},()=>[i.defaultIcon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.defaultIcon),{key:0,size:n.size},null,8,["size"])):e.createCommentVNode("",!0)])])}const O=r._(N,[["render",B]]),E={name:"ToastLayoutAlternate",components:{DtNoticeAction:S.default,DtNoticeContent:g.default,DtToastLayoutAlternateIcon:O},inheritAttrs:!1,props:{isShown:{type:Boolean,default:!1},titleId:{type:String,default(){return d.default.getUniqueString()}},contentId:{type:String,default(){return d.default.getUniqueString()}},title:{type:String,default:""},message:{type:String,default:""},role:{type:String,default:"status",validator:t=>l.TOAST_ROLES.includes(t)},kind:{type:String,default:"base",validator:t=>l.TOAST_ALTERNATE_KINDS.includes(t)},hideClose:{type:Boolean,default:!1},hideIcon:{type:Boolean,default:!1}},computed:{kindClass(){return{error:"d-toast-alternate--error",info:"d-toast-alternate--info",success:"d-toast-alternate--success",warning:"d-toast-alternate--warning",gradient:"d-toast-alternate--gradient"}[this.kind]}}},b=["aria-hidden"],V={class:"d-toast-alternate__dialog"},q={class:"d-toast-alternate__header"},L={class:"d-toast-alternate__content"};function $(t,a,n,c,s,i){const u=e.resolveComponent("dt-toast-layout-alternate-icon"),f=e.resolveComponent("dt-notice-content"),m=e.resolveComponent("dt-notice-action");return n.isShown?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["d-toast-alternate",i.kindClass]),"data-qa":"dt-toast","aria-hidden":(!n.isShown).toString()},[e.createElementVNode("div",V,[e.createElementVNode("div",q,[n.hideIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(u,e.mergeProps({key:0,kind:n.kind,size:"200"},t.$attrs),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"icon")]),_:3},16,["kind"])),e.createVNode(f,e.mergeProps({"title-id":n.titleId,"content-id":n.contentId,title:n.title,role:n.role},t.$attrs),{titleOverride:e.withCtx(()=>[e.renderSlot(t.$slots,"titleOverride")]),_:3},16,["title-id","content-id","title","role"]),e.createVNode(m,e.mergeProps({"hide-action":!0,"hide-close":n.hideClose,"button-size":"xs"},t.$attrs,{onClose:a[0]||(a[0]=y=>t.$emit("close"))}),null,16,["hide-close"])]),e.createElementVNode("div",L,[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])])])],10,b)):e.createCommentVNode("",!0)}const _=r._(E,[["render",$]]),z={compatConfig:{MODE:3},name:"DtToast",components:{ToastLayoutDefault:h,ToastLayoutAlternate:_},inheritAttrs:!1,props:{titleId:{type:String,default:void 0},contentId:{type:String,default:void 0},title:{type:String,default:void 0},message:{type:String,default:void 0},role:{type:String,default:"status"},kind:{type:String,default:void 0},important:{type:Boolean,default:!1},show:{type:Boolean,default:!1},hideClose:{type:Boolean,default:void 0},hideIcon:{type:Boolean,default:void 0},hideAction:{type:Boolean,default:void 0},duration:{type:Number,default:null,validator:t=>t>=l.TOAST_MIN_DURATION},layout:{type:String,default:"default",validator:t=>l.TOAST_LAYOUTS.includes(t)}},emits:["close","update:show"],data(){return{isShown:!1,minDuration:l.TOAST_MIN_DURATION}},computed:{shouldSetTimeout(){return!!this.duration&&this.duration>=this.minDuration},selectedLayout(){return this.layout==="alternate"?_:h}},watch:{show:{handler:function(t){this.isShown=t,t?this.setTimeout():clearTimeout(this.displayTimer)},immediate:!0}},unmounted(){clearTimeout(this.displayTimer)},methods:{setTimeout(){this.shouldSetTimeout&&(this.displayTimer=setTimeout(()=>{this.isShown=!1,this.$emit("update:show",!1)},this.duration))},handleClose(){this.isShown=!1,this.$emit("close"),this.$emit("update:show",!1)}}};function M(t,a,n,c,s,i){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.selectedLayout),e.mergeProps({"is-shown":s.isShown,"title-id":n.titleId,"content-id":n.contentId,title:n.title,message:n.message,role:n.role,kind:n.kind,important:n.important,"hide-close":n.hideClose,"hide-icon":n.hideIcon,"hide-action":n.hideAction},t.$attrs,{onClose:i.handleClose}),{icon:e.withCtx(()=>[e.renderSlot(t.$slots,"icon")]),titleOverride:e.withCtx(()=>[e.renderSlot(t.$slots,"titleOverride")]),action:e.withCtx(()=>[e.renderSlot(t.$slots,"action")]),default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])]),_:3},16,["is-shown","title-id","content-id","title","message","role","kind","important","hide-close","hide-icon","hide-action","onClose"])}const P=r._(z,[["render",M]]);exports.default=P;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./toast-constants.cjs"),l=require("../../common/utils/index.cjs"),e=require("vue"),r=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),S=require("../notice/notice-action.cjs"),g=require("../notice/notice-content.cjs"),I=require("../notice/notice-icon.cjs"),C=require("../notice/notice-constants.cjs"),i=require("@dialpad/dialtone-icons/vue3"),k=require("../icon/icon-constants.cjs"),T={name:"ToastLayoutDefault",components:{DtNoticeIcon:I.default,DtNoticeContent:g.default,DtNoticeAction:S.default},inheritAttrs:!1,props:{isShown:{type:Boolean,default:!1},titleId:{type:String,default(){return l.default.getUniqueString()}},contentId:{type:String,default(){return l.default.getUniqueString()}},title:{type:String,default:""},message:{type:String,default:""},role:{type:String,default:"status",validator:t=>s.TOAST_ROLES.includes(t)},kind:{type:String,default:"base",validator:t=>C.NOTICE_KINDS.includes(t)},important:{type:Boolean,default:!1},hideClose:{type:Boolean,default:!1},hideIcon:{type:Boolean,default:!1},hideAction:{type:Boolean,default:!1}},emits:["close"],computed:{kindClass(){return{error:"d-toast--error",info:"d-toast--info",success:"d-toast--success",warning:"d-toast--warning",base:"d-toast--base"}[this.kind]},toastListeners(){return l.extractVueListeners(this.$attrs)}}},p=["aria-hidden"],D={class:"d-toast__dialog"};function v(t,a,n,c,d,o){const u=e.resolveComponent("dt-notice-icon"),f=e.resolveComponent("dt-notice-content"),m=e.resolveComponent("dt-notice-action");return n.isShown?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["d-toast",o.kindClass,t.$attrs.class,{"d-toast--important":n.important}]),"data-qa":"dt-toast","aria-hidden":(!n.isShown).toString()},[e.createElementVNode("div",D,[n.hideIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(u,e.mergeProps({key:0,kind:n.kind},o.toastListeners),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"icon")]),_:3},16,["kind"])),e.createVNode(f,e.mergeProps({"title-id":n.titleId,"content-id":n.contentId,title:n.title,role:n.role},o.toastListeners),{titleOverride:e.withCtx(()=>[e.renderSlot(t.$slots,"titleOverride")]),default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])]),_:3},16,["title-id","content-id","title","role"]),e.createVNode(m,e.mergeProps({"hide-action":n.hideAction,"hide-close":n.hideClose},o.toastListeners,{onClose:a[0]||(a[0]=y=>t.$emit("close"))}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"action")]),_:3},16,["hide-action","hide-close"])])],10,p)):e.createCommentVNode("",!0)}const h=r._(T,[["render",v]]),w=new Map([["info",i.DtIconInfo],["success",i.DtIconInfo],["warning",i.DtIconAlertTriangle],["error",i.DtIconInfo],["base",i.DtIconBell],["gradient",i.DtIconSparkle]]),N={compatConfig:{MODE:3},name:"DtToastLayoutAlternateIcon",components:{DtIconInfo:i.DtIconInfo,DtIconAlertTriangle:i.DtIconAlertTriangle,DtIconBell:i.DtIconBell,DtIconSparkle:i.DtIconSparkle},props:{kind:{type:String,default:"base",validate(t){return s.TOAST_ALTERNATE_KINDS.includes(t)}},size:{type:String,default:"400",validator:t=>Object.keys(k.ICON_SIZE_MODIFIERS).includes(t)}},computed:{defaultIcon(){return w.get(this.kind)}}},A={"aria-hidden":"true",class:"d-toast-layout-alternate__icon"};function B(t,a,n,c,d,o){return e.openBlock(),e.createElementBlock("div",A,[e.renderSlot(t.$slots,"default",{},()=>[o.defaultIcon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.defaultIcon),{key:0,size:n.size},null,8,["size"])):e.createCommentVNode("",!0)])])}const O=r._(N,[["render",B]]),L={name:"ToastLayoutAlternate",components:{DtNoticeAction:S.default,DtNoticeContent:g.default,DtToastLayoutAlternateIcon:O},inheritAttrs:!1,props:{isShown:{type:Boolean,default:!1},titleId:{type:String,default(){return l.default.getUniqueString()}},contentId:{type:String,default(){return l.default.getUniqueString()}},title:{type:String,default:""},message:{type:String,default:""},role:{type:String,default:"status",validator:t=>s.TOAST_ROLES.includes(t)},kind:{type:String,default:"base",validator:t=>s.TOAST_ALTERNATE_KINDS.includes(t)},hideClose:{type:Boolean,default:!1},hideIcon:{type:Boolean,default:!1}},computed:{kindClass(){return{error:"d-toast-alternate--error",info:"d-toast-alternate--info",success:"d-toast-alternate--success",warning:"d-toast-alternate--warning",gradient:"d-toast-alternate--gradient"}[this.kind]},toastListeners(){return l.extractVueListeners(this.$attrs)}}},V=["aria-hidden"],E={class:"d-toast-alternate__dialog"},b={class:"d-toast-alternate__header"},q={class:"d-toast-alternate__content"};function z(t,a,n,c,d,o){const u=e.resolveComponent("dt-toast-layout-alternate-icon"),f=e.resolveComponent("dt-notice-content"),m=e.resolveComponent("dt-notice-action");return n.isShown?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["d-toast-alternate",t.$attrs.class,o.kindClass]),"data-qa":"dt-toast","aria-hidden":(!n.isShown).toString()},[e.createElementVNode("div",E,[e.createElementVNode("div",b,[n.hideIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(u,e.mergeProps({key:0,kind:n.kind,size:"200"},o.toastListeners),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"icon")]),_:3},16,["kind"])),e.createVNode(f,e.mergeProps({"title-id":n.titleId,"content-id":n.contentId,title:n.title,role:n.role},o.toastListeners),{titleOverride:e.withCtx(()=>[e.renderSlot(t.$slots,"titleOverride")]),_:3},16,["title-id","content-id","title","role"]),e.createVNode(m,e.mergeProps({"hide-action":!0,"hide-close":n.hideClose,"button-size":"xs"},o.toastListeners,{onClose:a[0]||(a[0]=y=>t.$emit("close"))}),null,16,["hide-close"])]),e.createElementVNode("div",q,[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])])])],10,V)):e.createCommentVNode("",!0)}const _=r._(L,[["render",z]]),M={compatConfig:{MODE:3},name:"DtToast",components:{ToastLayoutDefault:h,ToastLayoutAlternate:_},inheritAttrs:!1,props:{titleId:{type:String,default:void 0},contentId:{type:String,default:void 0},title:{type:String,default:void 0},message:{type:String,default:void 0},role:{type:String,default:"status"},kind:{type:String,default:void 0},important:{type:Boolean,default:!1},show:{type:Boolean,default:!1},hideClose:{type:Boolean,default:void 0},hideIcon:{type:Boolean,default:void 0},hideAction:{type:Boolean,default:void 0},duration:{type:Number,default:null,validator:t=>t>=s.TOAST_MIN_DURATION},layout:{type:String,default:"default",validator:t=>s.TOAST_LAYOUTS.includes(t)}},emits:["close","update:show"],data(){return{isShown:!1,minDuration:s.TOAST_MIN_DURATION}},computed:{shouldSetTimeout(){return!!this.duration&&this.duration>=this.minDuration},selectedLayout(){return this.layout==="alternate"?_:h}},watch:{show:{handler:function(t){this.isShown=t,t?this.setTimeout():clearTimeout(this.displayTimer)},immediate:!0}},unmounted(){clearTimeout(this.displayTimer)},methods:{setTimeout(){this.shouldSetTimeout&&(this.displayTimer=setTimeout(()=>{this.isShown=!1,this.$emit("update:show",!1)},this.duration))},handleClose(){this.isShown=!1,this.$emit("close"),this.$emit("update:show",!1)}}};function P(t,a,n,c,d,o){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.selectedLayout),e.mergeProps({"is-shown":d.isShown,"title-id":n.titleId,"content-id":n.contentId,title:n.title,message:n.message,role:n.role,kind:n.kind,important:n.important,"hide-close":n.hideClose,"hide-icon":n.hideIcon,"hide-action":n.hideAction},t.$attrs,{onClose:o.handleClose}),{icon:e.withCtx(()=>[e.renderSlot(t.$slots,"icon")]),titleOverride:e.withCtx(()=>[e.renderSlot(t.$slots,"titleOverride")]),action:e.withCtx(()=>[e.renderSlot(t.$slots,"action")]),default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.message),1)])]),_:3},16,["is-shown","title-id","content-id","title","message","role","kind","important","hide-close","hide-icon","hide-action","onClose"])}const R=r._(M,[["render",P]]);exports.default=R;
2
2
  //# sourceMappingURL=toast.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.cjs","sources":["../../../components/toast/layouts/toast_layout_default.vue","../../../components/toast/layouts/toast_layout_alternate_icon.vue","../../../components/toast/layouts/toast_layout_alternate.vue","../../../components/toast/toast.vue"],"sourcesContent":["<template>\n <div\n v-if=\"isShown\"\n :class=\"[\n 'd-toast',\n kindClass,\n { 'd-toast--important': important },\n ]\"\n data-qa=\"dt-toast\"\n :aria-hidden=\"(!isShown).toString()\"\n >\n <div class=\"d-toast__dialog\">\n <dt-notice-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n v-bind=\"$attrs\"\n >\n <!-- @slot Slot for custom icon -->\n <slot name=\"icon\" />\n </dt-notice-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :role=\"role\"\n v-bind=\"$attrs\"\n >\n <template #titleOverride>\n <!-- @slot Allows you to override the title, only use this if you need to override\n with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the toast -->\n <slot>\n {{ message }}\n </slot>\n </dt-notice-content>\n <dt-notice-action\n :hide-action=\"hideAction\"\n :hide-close=\"hideClose\"\n v-bind=\"$attrs\"\n @close=\"$emit('close')\"\n >\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <slot name=\"action\" />\n </dt-notice-action>\n </div>\n </div>\n</template>\n\n<script>\nimport utils from '@/common/utils';\nimport { DtNoticeIcon, DtNoticeContent, DtNoticeAction, NOTICE_KINDS } from '@/components/notice';\nimport { TOAST_ROLES } from '../toast_constants.js';\nexport default {\n name: 'ToastLayoutDefault',\n\n components: {\n DtNoticeIcon,\n DtNoticeContent,\n DtNoticeAction,\n },\n\n inheritAttrs: false,\n\n props: {\n isShown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: '',\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n validator: (role) => {\n return TOAST_ROLES.includes(role);\n },\n },\n\n /**\n * Severity level of the toast, sets the icon and background\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validator: (kind) => {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: ['close'],\n\n computed: {\n kindClass () {\n const kindClasses = {\n error: 'd-toast--error',\n info: 'd-toast--info',\n success: 'd-toast--success',\n warning: 'd-toast--warning',\n base: 'd-toast--base',\n };\n\n return kindClasses[this.kind];\n },\n },\n};\n</script>\n","<template>\n <div\n aria-hidden=\"true\"\n class=\"d-toast-layout-alternate__icon\"\n >\n <slot>\n <component\n :is=\"defaultIcon\"\n v-if=\"defaultIcon\"\n :size=\"size\"\n />\n </slot>\n </div>\n</template>\n\n<script>\nimport {\n DtIconInfo,\n DtIconAlertTriangle,\n DtIconBell,\n DtIconSparkle,\n} from '@dialpad/dialtone-icons/vue3';\nimport { TOAST_ALTERNATE_KINDS } from '../toast_constants.js';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants.js';\n\nconst kindToIcon = new Map([\n ['info', DtIconInfo],\n ['success', DtIconInfo],\n ['warning', DtIconAlertTriangle],\n ['error', DtIconInfo],\n ['base', DtIconBell],\n ['gradient', DtIconSparkle],\n]);\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtToastLayoutAlternateIcon',\n\n components: {\n DtIconInfo,\n DtIconAlertTriangle,\n DtIconBell,\n DtIconSparkle,\n },\n\n props: {\n /**\n * Kind of icon\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validate (kind) {\n return TOAST_ALTERNATE_KINDS.includes(kind);\n },\n },\n\n size: {\n type: String,\n default: '400',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n },\n\n computed: {\n defaultIcon () {\n return kindToIcon.get(this.kind);\n },\n },\n};\n</script>\n","<template>\n <div\n v-if=\"isShown\"\n :class=\"[\n 'd-toast-alternate',\n kindClass,\n ]\"\n data-qa=\"dt-toast\"\n :aria-hidden=\"(!isShown).toString()\"\n >\n <div class=\"d-toast-alternate__dialog\">\n <div class=\"d-toast-alternate__header\">\n <dt-toast-layout-alternate-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n size=\"200\"\n v-bind=\"$attrs\"\n >\n <slot name=\"icon\" />\n </dt-toast-layout-alternate-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :role=\"role\"\n v-bind=\"$attrs\"\n >\n <template #titleOverride>\n <slot name=\"titleOverride\" />\n </template>\n </dt-notice-content>\n\n <!-- Close Button -->\n <dt-notice-action\n :hide-action=\"true\"\n :hide-close=\"hideClose\"\n button-size=\"xs\"\n v-bind=\"$attrs\"\n @close=\"$emit('close')\"\n />\n </div>\n <!-- Content Section -->\n <div class=\"d-toast-alternate__content\">\n <slot>\n {{ message }}\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport utils from '@/common/utils';\nimport DtToastLayoutAlternateIcon from './toast_layout_alternate_icon.vue';\nimport { DtNoticeAction, DtNoticeContent } from '@/components/notice';\nimport { TOAST_ROLES, TOAST_ALTERNATE_KINDS } from '../toast_constants.js';\nexport default {\n name: 'ToastLayoutAlternate',\n\n components: {\n DtNoticeAction,\n DtNoticeContent,\n DtToastLayoutAlternateIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n isShown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: '',\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n validator: (role) => {\n return TOAST_ROLES.includes(role);\n },\n },\n\n /**\n * Severity level of the toast, sets the icon and background\n * @values base, error, info, success, warning, gradient\n */\n kind: {\n type: String,\n default: 'base',\n validator: (kind) => {\n return TOAST_ALTERNATE_KINDS.includes(kind);\n },\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n kindClass () {\n const kindClasses = {\n error: 'd-toast-alternate--error',\n info: 'd-toast-alternate--info',\n success: 'd-toast-alternate--success',\n warning: 'd-toast-alternate--warning',\n gradient: 'd-toast-alternate--gradient',\n };\n\n return kindClasses[this.kind];\n },\n },\n};\n</script>\n","<template>\n <component\n :is=\"selectedLayout\"\n :is-shown=\"isShown\"\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :message=\"message\"\n :role=\"role\"\n :kind=\"kind\"\n :important=\"important\"\n :hide-close=\"hideClose\"\n :hide-icon=\"hideIcon\"\n :hide-action=\"hideAction\"\n v-bind=\"$attrs\"\n @close=\"handleClose\"\n >\n <!-- @slot Slot for custom icon -->\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #titleOverride>\n <!-- @slot Allows you to override the title, only use this if you need to override\n with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the toast -->\n <slot>\n {{ message }}\n </slot>\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <template #action>\n <slot name=\"action\" />\n </template>\n </component>\n</template>\n\n<script>\nimport { TOAST_MIN_DURATION, TOAST_LAYOUTS } from './toast_constants.js';\nimport ToastLayoutDefault from './layouts/toast_layout_default.vue';\nimport ToastLayoutAlternate from './layouts/toast_layout_alternate.vue';\n\n/**\n * A toast notice, sometimes called a snackbar, is a time-based message that appears based on users' actions.\n * It contains at-a-glance information about outcomes and can be paired with actions.\n * @see https://dialtone.dialpad.com/components/toast.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtToast',\n\n components: {\n ToastLayoutDefault,\n ToastLayoutAlternate,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: undefined,\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: undefined,\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n },\n\n /**\n * Severity level of the toast, could be different depending on which toast layout is used.\n * @values base, error, info, success, warning, gradient\n */\n kind: {\n type: String,\n default: undefined,\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls whether the toast is shown. If a valid duration is provided, the toast will disappear\n * after reaching the duration time, so it's convenient to use `v-model` with this prop to update\n * the data in your component.\n * Supports v-model\n * @values true, false\n */\n show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * The duration in ms the toast will display before disappearing.\n * The toast won't disappear if the duration is not provided.\n * If it's provided, it should be equal to or greater than 6000.\n */\n duration: {\n type: Number,\n default: null,\n validator: (duration) => {\n return duration >= TOAST_MIN_DURATION;\n },\n },\n\n /**\n * The layout / styling you wish to use for the toast.\n * @values default, alternate\n */\n layout: {\n type: String,\n default: 'default',\n validator: (layout) => {\n return TOAST_LAYOUTS.includes(layout);\n },\n },\n },\n\n emits: [\n /**\n * Close button click event\n *\n * @event close\n */\n 'close',\n\n /**\n * Sync show value\n *\n * @event update:show\n */\n 'update:show',\n ],\n\n data () {\n return {\n isShown: false,\n minDuration: TOAST_MIN_DURATION,\n };\n },\n\n computed: {\n shouldSetTimeout () {\n return !!this.duration && this.duration >= this.minDuration;\n },\n\n selectedLayout () {\n return this.layout === 'alternate' ? ToastLayoutAlternate : ToastLayoutDefault;\n },\n },\n\n watch: {\n show: {\n handler: function (show) {\n this.isShown = show;\n if (show) {\n this.setTimeout();\n } else {\n clearTimeout(this.displayTimer);\n }\n },\n\n immediate: true,\n },\n },\n\n unmounted () {\n clearTimeout(this.displayTimer);\n },\n\n methods: {\n setTimeout () {\n if (this.shouldSetTimeout) {\n this.displayTimer = setTimeout(() => {\n this.isShown = false;\n this.$emit('update:show', false);\n }, this.duration);\n }\n },\n\n handleClose () {\n this.isShown = false;\n this.$emit('close');\n this.$emit('update:show', false);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtNoticeIcon","DtNoticeContent","DtNoticeAction","utils","role","TOAST_ROLES","kind","NOTICE_KINDS","_hoisted_1","_hoisted_2","$props","_createElementBlock","_normalizeClass","$options","_createElementVNode","_createCommentVNode","_openBlock","_createBlock","_component_dt_notice_icon","_mergeProps","_ctx","_withCtx","_renderSlot","_createVNode","_component_dt_notice_content","_createTextVNode","_toDisplayString","_component_dt_notice_action","kindToIcon","DtIconInfo","DtIconAlertTriangle","DtIconBell","DtIconSparkle","TOAST_ALTERNATE_KINDS","s","ICON_SIZE_MODIFIERS","_resolveDynamicComponent","DtToastLayoutAlternateIcon","_hoisted_3","_hoisted_4","_component_dt_toast_layout_alternate_icon","ToastLayoutDefault","ToastLayoutAlternate","duration","TOAST_MIN_DURATION","layout","TOAST_LAYOUTS","show","$data"],"mappings":"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"}
1
+ {"version":3,"file":"toast.cjs","sources":["../../../components/toast/layouts/toast_layout_default.vue","../../../components/toast/layouts/toast_layout_alternate_icon.vue","../../../components/toast/layouts/toast_layout_alternate.vue","../../../components/toast/toast.vue"],"sourcesContent":["<template>\n <div\n v-if=\"isShown\"\n :class=\"[\n 'd-toast',\n kindClass,\n $attrs.class,\n { 'd-toast--important': important },\n ]\"\n data-qa=\"dt-toast\"\n :aria-hidden=\"(!isShown).toString()\"\n >\n <div class=\"d-toast__dialog\">\n <dt-notice-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n v-bind=\"toastListeners\"\n >\n <!-- @slot Slot for custom icon -->\n <slot name=\"icon\" />\n </dt-notice-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :role=\"role\"\n v-bind=\"toastListeners\"\n >\n <template #titleOverride>\n <!-- @slot Allows you to override the title, only use this if you need to override\n with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the toast -->\n <slot>\n {{ message }}\n </slot>\n </dt-notice-content>\n <dt-notice-action\n :hide-action=\"hideAction\"\n :hide-close=\"hideClose\"\n v-bind=\"toastListeners\"\n @close=\"$emit('close')\"\n >\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <slot name=\"action\" />\n </dt-notice-action>\n </div>\n </div>\n</template>\n\n<script>\nimport utils from '@/common/utils';\nimport { DtNoticeIcon, DtNoticeContent, DtNoticeAction, NOTICE_KINDS } from '@/components/notice';\nimport { TOAST_ROLES } from '../toast_constants.js';\nimport { extractVueListeners } from \"@/common/utils/index.js\";\n\nexport default {\n name: 'ToastLayoutDefault',\n\n components: {\n DtNoticeIcon,\n DtNoticeContent,\n DtNoticeAction,\n },\n\n inheritAttrs: false,\n\n props: {\n isShown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: '',\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n validator: (role) => {\n return TOAST_ROLES.includes(role);\n },\n },\n\n /**\n * Severity level of the toast, sets the icon and background\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validator: (kind) => {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: ['close'],\n\n computed: {\n kindClass () {\n const kindClasses = {\n error: 'd-toast--error',\n info: 'd-toast--info',\n success: 'd-toast--success',\n warning: 'd-toast--warning',\n base: 'd-toast--base',\n };\n\n return kindClasses[this.kind];\n },\n\n toastListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n};\n</script>\n","<template>\n <div\n aria-hidden=\"true\"\n class=\"d-toast-layout-alternate__icon\"\n >\n <slot>\n <component\n :is=\"defaultIcon\"\n v-if=\"defaultIcon\"\n :size=\"size\"\n />\n </slot>\n </div>\n</template>\n\n<script>\nimport {\n DtIconInfo,\n DtIconAlertTriangle,\n DtIconBell,\n DtIconSparkle,\n} from '@dialpad/dialtone-icons/vue3';\nimport { TOAST_ALTERNATE_KINDS } from '../toast_constants.js';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants.js';\n\nconst kindToIcon = new Map([\n ['info', DtIconInfo],\n ['success', DtIconInfo],\n ['warning', DtIconAlertTriangle],\n ['error', DtIconInfo],\n ['base', DtIconBell],\n ['gradient', DtIconSparkle],\n]);\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtToastLayoutAlternateIcon',\n\n components: {\n DtIconInfo,\n DtIconAlertTriangle,\n DtIconBell,\n DtIconSparkle,\n },\n\n props: {\n /**\n * Kind of icon\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validate (kind) {\n return TOAST_ALTERNATE_KINDS.includes(kind);\n },\n },\n\n size: {\n type: String,\n default: '400',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n },\n\n computed: {\n defaultIcon () {\n return kindToIcon.get(this.kind);\n },\n },\n};\n</script>\n","<template>\n <div\n v-if=\"isShown\"\n :class=\"[\n 'd-toast-alternate',\n $attrs.class,\n kindClass,\n ]\"\n data-qa=\"dt-toast\"\n :aria-hidden=\"(!isShown).toString()\"\n >\n <div class=\"d-toast-alternate__dialog\">\n <div class=\"d-toast-alternate__header\">\n <dt-toast-layout-alternate-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n size=\"200\"\n v-bind=\"toastListeners\"\n >\n <slot name=\"icon\" />\n </dt-toast-layout-alternate-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :role=\"role\"\n v-bind=\"toastListeners\"\n >\n <template #titleOverride>\n <slot name=\"titleOverride\" />\n </template>\n </dt-notice-content>\n\n <!-- Close Button -->\n <dt-notice-action\n :hide-action=\"true\"\n :hide-close=\"hideClose\"\n button-size=\"xs\"\n v-bind=\"toastListeners\"\n @close=\"$emit('close')\"\n />\n </div>\n <!-- Content Section -->\n <div class=\"d-toast-alternate__content\">\n <slot>\n {{ message }}\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport utils from '@/common/utils';\nimport DtToastLayoutAlternateIcon from './toast_layout_alternate_icon.vue';\nimport { DtNoticeAction, DtNoticeContent } from '@/components/notice';\nimport { TOAST_ROLES, TOAST_ALTERNATE_KINDS } from '../toast_constants.js';\nimport { extractVueListeners } from \"@/common/utils/index.js\";\n\nexport default {\n name: 'ToastLayoutAlternate',\n\n components: {\n DtNoticeAction,\n DtNoticeContent,\n DtToastLayoutAlternateIcon,\n },\n\n inheritAttrs: false,\n\n props: {\n isShown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: '',\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n validator: (role) => {\n return TOAST_ROLES.includes(role);\n },\n },\n\n /**\n * Severity level of the toast, sets the icon and background\n * @values base, error, info, success, warning, gradient\n */\n kind: {\n type: String,\n default: 'base',\n validator: (kind) => {\n return TOAST_ALTERNATE_KINDS.includes(kind);\n },\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n kindClass () {\n const kindClasses = {\n error: 'd-toast-alternate--error',\n info: 'd-toast-alternate--info',\n success: 'd-toast-alternate--success',\n warning: 'd-toast-alternate--warning',\n gradient: 'd-toast-alternate--gradient',\n };\n\n return kindClasses[this.kind];\n },\n\n toastListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n};\n</script>\n","<template>\n <component\n :is=\"selectedLayout\"\n :is-shown=\"isShown\"\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n :message=\"message\"\n :role=\"role\"\n :kind=\"kind\"\n :important=\"important\"\n :hide-close=\"hideClose\"\n :hide-icon=\"hideIcon\"\n :hide-action=\"hideAction\"\n v-bind=\"$attrs\"\n @close=\"handleClose\"\n >\n <!-- @slot Slot for custom icon -->\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #titleOverride>\n <!-- @slot Allows you to override the title, only use this if you need to override\n with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the toast -->\n <slot>\n {{ message }}\n </slot>\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <template #action>\n <slot name=\"action\" />\n </template>\n </component>\n</template>\n\n<script>\nimport { TOAST_MIN_DURATION, TOAST_LAYOUTS } from './toast_constants.js';\nimport ToastLayoutDefault from './layouts/toast_layout_default.vue';\nimport ToastLayoutAlternate from './layouts/toast_layout_alternate.vue';\n\n/**\n * A toast notice, sometimes called a snackbar, is a time-based message that appears based on users' actions.\n * It contains at-a-glance information about outcomes and can be paired with actions.\n * @see https://dialtone.dialpad.com/components/toast.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtToast',\n\n components: {\n ToastLayoutDefault,\n ToastLayoutAlternate,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Title header of the toast. This can be left blank to remove the title from the toast entirely.\n */\n title: {\n type: String,\n default: undefined,\n },\n\n /**\n * Message of the toast. Overridden by default slot.\n */\n message: {\n type: String,\n default: undefined,\n },\n\n /**\n * Provides a role for the toast. 'status' is used by default to communicate a message. 'alert' is used to\n * communicate an important message like an error that does not contain any interactive elements.\n * @values status, alert\n */\n role: {\n type: String,\n default: 'status',\n },\n\n /**\n * Severity level of the toast, could be different depending on which toast layout is used.\n * @values base, error, info, success, warning, gradient\n */\n kind: {\n type: String,\n default: undefined,\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls whether the toast is shown. If a valid duration is provided, the toast will disappear\n * after reaching the duration time, so it's convenient to use `v-model` with this prop to update\n * the data in your component.\n * Supports v-model\n * @values true, false\n */\n show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the close button from the toast\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: undefined,\n },\n\n /**\n * The duration in ms the toast will display before disappearing.\n * The toast won't disappear if the duration is not provided.\n * If it's provided, it should be equal to or greater than 6000.\n */\n duration: {\n type: Number,\n default: null,\n validator: (duration) => {\n return duration >= TOAST_MIN_DURATION;\n },\n },\n\n /**\n * The layout / styling you wish to use for the toast.\n * @values default, alternate\n */\n layout: {\n type: String,\n default: 'default',\n validator: (layout) => {\n return TOAST_LAYOUTS.includes(layout);\n },\n },\n },\n\n emits: [\n /**\n * Close button click event\n *\n * @event close\n */\n 'close',\n\n /**\n * Sync show value\n *\n * @event update:show\n */\n 'update:show',\n ],\n\n data () {\n return {\n isShown: false,\n minDuration: TOAST_MIN_DURATION,\n };\n },\n\n computed: {\n shouldSetTimeout () {\n return !!this.duration && this.duration >= this.minDuration;\n },\n\n selectedLayout () {\n return this.layout === 'alternate' ? ToastLayoutAlternate : ToastLayoutDefault;\n },\n },\n\n watch: {\n show: {\n handler: function (show) {\n this.isShown = show;\n if (show) {\n this.setTimeout();\n } else {\n clearTimeout(this.displayTimer);\n }\n },\n\n immediate: true,\n },\n },\n\n unmounted () {\n clearTimeout(this.displayTimer);\n },\n\n methods: {\n setTimeout () {\n if (this.shouldSetTimeout) {\n this.displayTimer = setTimeout(() => {\n this.isShown = false;\n this.$emit('update:show', false);\n }, this.duration);\n }\n },\n\n handleClose () {\n this.isShown = false;\n this.$emit('close');\n this.$emit('update:show', false);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtNoticeIcon","DtNoticeContent","DtNoticeAction","utils","role","TOAST_ROLES","kind","NOTICE_KINDS","extractVueListeners","_hoisted_1","_hoisted_2","$props","_createElementBlock","_normalizeClass","$options","_ctx","_createElementVNode","_createCommentVNode","_openBlock","_createBlock","_component_dt_notice_icon","_mergeProps","_withCtx","_renderSlot","_createVNode","_component_dt_notice_content","_createTextVNode","_toDisplayString","_component_dt_notice_action","kindToIcon","DtIconInfo","DtIconAlertTriangle","DtIconBell","DtIconSparkle","TOAST_ALTERNATE_KINDS","s","ICON_SIZE_MODIFIERS","_resolveDynamicComponent","DtToastLayoutAlternateIcon","_hoisted_3","_hoisted_4","_component_dt_toast_layout_alternate_icon","ToastLayoutDefault","ToastLayoutAlternate","duration","TOAST_MIN_DURATION","layout","TOAST_LAYOUTS","show","$data"],"mappings":"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"}