{"version":3,"file":"ivr_node.vue.cjs","sources":["../../../../recipes/cards/ivr_node/ivr_node.vue"],"sourcesContent":["<template>\n  <div\n    :class=\"[\n      'd-recipe-ivr-node',\n      nodeClass,\n    ]\"\n    v-on=\"nodeListeners\"\n  >\n    <div\n      v-if=\"dtmfKey\"\n      data-qa=\"dt-top-connector-dtmf\"\n      class=\"d-recipe-ivr-node__connector d-recipe-ivr-node__connector-dtmf\"\n      :class=\"{ 'd-recipe-ivr-node__connector-dtmf--selected': isSelected }\"\n    >\n      {{ dtmfKey }}\n    </div>\n    <slot\n      v-if=\"$slots.connector\"\n      name=\"connector\"\n    />\n    <div\n      v-if=\"!dtmfKey && !$slots.connector\"\n      data-qa=\"dt-top-connector\"\n      class=\"d-recipe-ivr-node__connector\"\n      :class=\"{ 'd-recipe-ivr-node__connector--selected': isSelected }\"\n    />\n    <dt-card>\n      <template #header>\n        <!-- node label and icon section on left of the header -->\n        <div class=\"d-recipe-ivr-node__header-left\">\n          <dt-button\n            :aria-label=\"nodeType\"\n            importance=\"clear\"\n            kind=\"muted\"\n            data-qa=\"dt-ivr-node-icon\"\n          >\n            <template #icon>\n              <component\n                :is=\"nodeIcon\"\n                size=\"200\"\n                :class=\"['', { 'd-recipe-ivr-node__goto-icon': isGotoNode }]\"\n              />\n            </template>\n          </dt-button>\n          <p\n            class=\"d-recipe-ivr-node__label\"\n            data-qa=\"ivr-node-label\"\n          >\n            {{ nodeLabel }}\n          </p>\n        </div>\n        <!-- node menu for actions like edit, copy, delete -->\n        <dt-dropdown\n          v-model:open=\"isOpen\"\n          placement=\"bottom\"\n        >\n          <template #anchor>\n            <dt-button\n              importance=\"clear\"\n              kind=\"muted\"\n              :aria-label=\"menuButtonAriaLabel\"\n              @click.stop.prevent=\"openMenu\"\n            >\n              <template #icon>\n                <dt-icon-more-vertical size=\"200\" />\n              </template>\n            </dt-button>\n          </template>\n          <template #list=\"{ close }\">\n            <div class=\"d-recipe-ivr-node__dropdown-list\">\n              <slot\n                name=\"menuItems\"\n                :close=\"close\"\n              />\n            </div>\n          </template>\n        </dt-dropdown>\n      </template>\n      <template #content>\n        <slot name=\"content\" />\n      </template>\n    </dt-card>\n  </div>\n</template>\n\n<script>\nimport { DtCard } from '@/components/card';\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport {\n  DtIconKeypad,\n  DtIconDialer,\n  DtIconVolume2,\n  DtIconExpertNode,\n  DtIconBranch,\n  DtIconCallMerge,\n  DtIconChevronsRight,\n  DtIconTransfer,\n  DtIconPhoneHangUp,\n  DtIconMoreVertical,\n  DtIconListBullet,\n} from '@dialpad/dialtone-icons/vue3';\nimport {\n  IVR_NODE_CLASS_MAPPING,\n  IVR_NODE_PROMPT_MENU,\n  IVR_NODE_PROMPT_COLLECT,\n  IVR_NODE_PROMPT_PLAY,\n  IVR_NODE_EXPERT,\n  IVR_NODE_BRANCH,\n  IVR_NODE_GO_TO,\n  IVR_NODE_ASSIGN,\n  IVR_NODE_TRANSFER,\n  IVR_NODE_HANGUP,\n  IVR_NODE_CUSTOMER_DATA,\n} from './ivr_node_constants';\n\nconst typeToIcon = new Map([\n  [IVR_NODE_PROMPT_MENU, DtIconKeypad],\n  [IVR_NODE_PROMPT_COLLECT, DtIconDialer],\n  [IVR_NODE_PROMPT_PLAY, DtIconVolume2],\n  [IVR_NODE_EXPERT, DtIconExpertNode],\n  [IVR_NODE_BRANCH, DtIconBranch],\n  [IVR_NODE_GO_TO, DtIconCallMerge],\n  [IVR_NODE_ASSIGN, DtIconChevronsRight],\n  [IVR_NODE_CUSTOMER_DATA, DtIconListBullet],\n  [IVR_NODE_TRANSFER, DtIconTransfer],\n  [IVR_NODE_HANGUP, DtIconPhoneHangUp],\n]);\n\nexport default {\n  compatConfig: { MODE: 3 },\n  name: 'DtRecipeIvrNode',\n\n  components: {\n    DtCard,\n    DtButton,\n    DtDropdown,\n    DtIconKeypad,\n    DtIconDialer,\n    DtIconVolume2,\n    DtIconExpertNode,\n    DtIconBranch,\n    DtIconCallMerge,\n    DtIconChevronsRight,\n    DtIconTransfer,\n    DtIconPhoneHangUp,\n    DtIconMoreVertical,\n    DtIconListBullet,\n  },\n\n  props: {\n\n    /**\n     * type of IVR Node.\n     */\n    nodeType: {\n      type: String,\n      required: true,\n    },\n\n    /**\n     * Descriptive label for the node name.\n     */\n\n    nodeLabel: {\n      type: String,\n      required: true,\n    },\n\n    /**\n     * Selected state of the node\n     */\n    isSelected: {\n      type: Boolean,\n      default: false,\n    },\n\n    /**\n     * Translated aria-label for header menu button\n     */\n    menuButtonAriaLabel: {\n      type: String,\n      required: true,\n    },\n\n    /**\n     * DTMF input\n     */\n    dtmfKey: {\n      type: String,\n      default: null,\n    },\n  },\n\n  emits: [\n    /**\n     * Add node click event\n     *\n     * @event click\n     * @type {PointerEvent | KeyboardEvent}\n     */\n    'click',\n  ],\n\n  data () {\n    return {\n      isOpen: false,\n    };\n  },\n\n  computed: {\n    nodeListeners () {\n      return {\n        click: (e) => this.$emit('click', e),\n      };\n    },\n\n    nodeIcon () {\n      return typeToIcon.get(this.nodeType);\n    },\n\n    nodeClass () {\n      const { normal, selected } = IVR_NODE_CLASS_MAPPING[this.nodeType];\n      return this.isSelected ? selected : normal;\n    },\n\n    isGotoNode () {\n      return this.nodeType === IVR_NODE_GO_TO;\n    },\n  },\n\n  methods: {\n    openMenu () {\n      this.isOpen = true;\n    },\n  },\n};\n</script>\n"],"names":["IVR_NODE_PROMPT_MENU","DtIconKeypad","IVR_NODE_PROMPT_COLLECT","DtIconDialer","IVR_NODE_PROMPT_PLAY","DtIconVolume2","IVR_NODE_EXPERT","DtIconExpertNode","IVR_NODE_BRANCH","DtIconBranch","IVR_NODE_GO_TO","DtIconCallMerge","IVR_NODE_ASSIGN","DtIconChevronsRight","IVR_NODE_CUSTOMER_DATA","DtIconListBullet","IVR_NODE_TRANSFER","DtIconTransfer","IVR_NODE_HANGUP","DtIconPhoneHangUp","DtCard","DtButton","DtDropdown","DtIconMoreVertical","IVR_NODE_CLASS_MAPPING","_openBlock","_createElementBlock","_mergeProps","_toHandlers","_normalizeClass","_createCommentVNode","_renderSlot","_createVNode","_createElementVNode","_createBlock","_resolveDynamicComponent","_toDisplayString","_withModifiers","_withCtx"],"mappings":";;;;;;;;;AAoHA,MAAM,aAAa,oBAAI,IAAI;AAAA,EACzB,CAACA,mBAAAA,sBAAsBC,KAAAA,YAAY;AAAA,EACnC,CAACC,mBAAAA,yBAAyBC,KAAAA,YAAY;AAAA,EACtC,CAACC,mBAAAA,sBAAsBC,KAAAA,aAAa;AAAA,EACpC,CAACC,mBAAAA,iBAAiBC,KAAAA,gBAAgB;AAAA,EAClC,CAACC,mBAAAA,iBAAiBC,KAAAA,YAAY;AAAA,EAC9B,CAACC,mBAAAA,gBAAgBC,KAAAA,eAAe;AAAA,EAChC,CAACC,mBAAAA,iBAAiBC,KAAAA,mBAAmB;AAAA,EACrC,CAACC,mBAAAA,wBAAwBC,KAAAA,gBAAgB;AAAA,EACzC,CAACC,mBAAAA,mBAAmBC,KAAAA,cAAc;AAAA,EAClC,CAACC,mBAAAA,iBAAiBC,KAAAA,iBAAiB;AACrC,CAAC;AAED,MAAK,YAAU;AAAA,EACb,cAAc,EAAE,MAAM,EAAG;AAAA,EACzB,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,QAAAC,KAAM;AAAA,IACN,UAAAC,OAAQ;AAAA,gBACRC,SAAU;AAAA,kBACVrB,KAAY;AAAA,kBACZE,KAAY;AAAA,mBACZE,KAAa;AAAA,IACb,kBAAAE,KAAgB;AAAA,kBAChBE,KAAY;AAAA,IACZ,iBAAAE,KAAe;AAAA,IACf,qBAAAE,KAAmB;AAAA,IACnB,gBAAAI,KAAc;AAAA,IACd,mBAAAE,KAAiB;AAAA,IACjB,oBAAAI,KAAkB;AAAA,IAClB,kBAAAR,KAAgB;AAAA,EACjB;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA,IAKL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAMD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAKD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAKD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL,QAAQ;AAAA;EAEX;AAAA,EAED,UAAU;AAAA,IACR,gBAAiB;AACf,aAAO;AAAA,QACL,OAAO,CAAC,MAAM,KAAK,MAAM,SAAS,CAAC;AAAA;IAEtC;AAAA,IAED,WAAY;AACV,aAAO,WAAW,IAAI,KAAK,QAAQ;AAAA,IACpC;AAAA,IAED,YAAa;AACX,YAAM,EAAE,QAAQ,SAAS,IAAIS,mBAAAA,uBAAuB,KAAK,QAAQ;AACjE,aAAO,KAAK,aAAa,WAAW;AAAA,IACrC;AAAA,IAED,aAAc;AACZ,aAAO,KAAK,aAAad;IAC1B;AAAA,EACF;AAAA,EAED,SAAS;AAAA,IACP,WAAY;AACV,WAAK,SAAS;AAAA,IACf;AAAA,EACF;AACH;AA/Ma,MAAA,aAAA,EAAA,OAAM,iCAAgC;;EAgBvC,OAAM;AAAA,EACN,WAAQ;;AAuBH,MAAA,aAAA,EAAA,OAAM,mCAAkC;;;;;;AApEvD,SAAAe,cAAA,GAAAC,uBAiFM,OAjFNC,IAAAA,WAiFM;AAAA,IAhFH,OAAK;AAAA;MAAqC,SAAS;AAAA;EAIpD,GAAAC,IAAA,WAAoB,SAAD,eAAA,IAAA,CAAA,GAAA;AAAA,IAGX,OAAO,4BADfF,IAOM,mBAAA,OAAA;AAAA,MAfV,KAAA;AAAA,MAUM,WAAQ;AAAA,MACR,OAXNG,IAAA,eAAA,CAWY,kEAAgE,EAAA,+CACb,OAAU,WAAA,CAAA,CAAA;AAAA,2BAEhE,OAAO,OAAA,GAAA,CAAA,KAdhBC,IAAA,mBAAA,IAAA,IAAA;AAAA,IAiBY,KAAA,OAAO,YADfC,IAAA,WAGE,4BAnBN,KAAA,GAAA,IAAAD,IAAA,mBAAA,IAAA,IAAA;AAAA,KAqBa,OAAO,WAAA,CAAK,KAAM,OAAC,8BAD5BJ,IAKE,mBAAA,OAAA;AAAA,MAzBN,KAAA;AAAA,MAsBM,WAAQ;AAAA,MACR,OAvBNG,IAAA,eAAA,CAuBY,gCAA8B,EAAA,0CACgB,OAAU,WAAA,CAAA,CAAA;AAAA,mBAxBpEC,IAAA,mBAAA,IAAA,IAAA;AAAA,IA0BIE,IAuDU,YAAA,oBAAA,MAAA;AAAA,MAtDG,oBAET,MAqBM;AAAA,QArBNC,IAAA,mBAqBM,OArBN,YAqBM;AAAA,UApBJD,IAAAA,YAaY,sBAAA;AAAA,YAZT,cAAY,OAAQ;AAAA,YACrB,YAAW;AAAA,YACX,MAAK;AAAA,YACL,WAAQ;AAAA;YAEG,kBACT,MAIE;AAAA,gCAJFE,IAIE,YAzChBC,4BAsCqB,SAAQ,QAAA,GAAA;AAAA,gBACb,MAAK;AAAA,gBACJ,OAxCjBN,0DAwC+D,SAAU,WAAA,CAAA,CAAA;AAAA;;YAxCzE,GAAA;AAAA;UA4CUI,IAKI,mBAAA,KALJ,YAKIG,IAAAA,gBADC,OAAS,SAAA,GAAA,CAAA;AAAA;QAIhBJ,IAAAA,YAwBc,wBAAA;AAAA,UAvBJ,MAAM,MAAM;AAAA,UArD9B,iBAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAqDwB,MAAM,SAAA;AAAA,UACpB,WAAU;AAAA;UAEC,oBACT,MASY;AAAA,YATZA,IAAAA,YASY,sBAAA;AAAA,cARV,YAAW;AAAA,cACX,MAAK;AAAA,cACJ,cAAY,OAAmB;AAAA,cAC/B,SA7DfK,kBA6DmC,SAAQ,UAAA,CAAA,QAAA,SAAA,CAAA;AAAA;cAElB,kBACT,MAAoC;AAAA,gBAApCL,IAAAA,YAAoC,kCAAA,EAAb,MAAK,MAAK,CAAA;AAAA;cAhEjD,GAAA;AAAA;;UAoEqB,MAAIM,IAAA,QACb,CAKM,EANW,YAAK;AAAA,YACtBL,IAAA,mBAKM,OALN,YAKM;AAAA,cAJJF,IAGE,WAAA,KAAA,QAAA,aAAA,EADC,OAAY;AAAA;;UAxE7B,GAAA;AAAA;;MA8EiB,qBACT,MAAuB;AAAA,QAAvBA,eAAuB,KAAA,QAAA,SAAA;AAAA;MA/E/B,GAAA;AAAA;;;;;"}