{"version":3,"file":"ivr-node.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            importance=\"clear\"\n            kind=\"muted\"\n            data-qa=\"dt-ivr-node-icon\"\n            :aria-label=\"nodeAriaLabel\"\n            :title=\"nodeAriaLabel\"\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              :title=\"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';\nimport { DialtoneLocalization } from '@/localization';\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     * 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      i18n: new DialtoneLocalization(),\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    nodeAriaLabel () {\n      const nodeType = this.nodeType.toUpperCase();\n      return this.i18n.$t(`DIALTONE_IVR_NODE_${nodeType}_ARIA_LABEL`);\n    },\n\n    menuButtonAriaLabel () {\n      return this.i18n.$t('DIALTONE_IVR_NODE_MENU_BUTTON_ARIA_LABEL');\n    },\n  },\n\n  methods: {\n    openMenu () {\n      this.isOpen = true;\n    },\n  },\n};\n</script>\n"],"names":["typeToIcon","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","_sfc_main","DtCard","DtButton","DtDropdown","DtIconMoreVertical","DialtoneLocalization","e","normal","selected","IVR_NODE_CLASS_MAPPING","nodeType","_hoisted_1","_hoisted_3","_openBlock","_createElementBlock","_mergeProps","$options","_toHandlers","$props","_normalizeClass","_createCommentVNode","_ctx","_renderSlot","_createVNode","_component_dt_card","_createElementVNode","_component_dt_button","_createBlock","_resolveDynamicComponent","_hoisted_2","_toDisplayString","_component_dt_dropdown","$data","_cache","$event","_withModifiers","_component_dt_icon_more_vertical","_withCtx","close"],"mappings":"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"}