UNPKG

@dialpad/dialtone-vue

Version:

Vue component library for Dialpad's design system Dialtone

95 lines (94 loc) 3.17 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const vue2 = require("@dialpad/dialtone-icons/vue2"); const sr_only_close_button$1 = require("../../common/mixins/sr_only_close_button.cjs"); const sr_only_close_button = require("../../common/sr_only_close_button.vue.cjs"); const _pluginVue2_normalizer = require("../../_virtual/_plugin-vue2_normalizer.cjs"); const button = require("../button/button.vue.cjs"); const _sfc_main = { name: "DtNoticeAction", components: { DtIconClose: vue2.DtIconClose, DtButton: button.default, SrOnlyCloseButton: sr_only_close_button.default }, mixins: [sr_only_close_button$1.default], props: { /** * Props for the notice close button. */ closeButtonProps: { type: Object, default: () => ({}) }, /** * Hides the close button from the notice * @values true, false */ hideClose: { type: Boolean, default: false }, /** * Hides the action from the notice * @values true, false */ hideAction: { type: Boolean, default: false } }, emits: [ /** * Close button click event * * @event close */ "close" ], computed: { noticeActionListeners() { return { ...this.$listeners, click: (event) => { this.close(); this.$emit("click", event); } }; } }, created() { if (!this.hideClose && !this.closeButtonProps.ariaLabel) { console.error("Invalid props: you must pass in closeButtonProps.ariaLabel if the close button is displayed."); } }, mounted() { if (!this.hideClose) { this.lastFocusedElement = document.activeElement; } }, beforeDestroy() { var _a; (_a = this.lastFocusedElement) == null ? void 0 : _a.focus(); }, methods: { close() { this.$emit("close"); } } }; var _sfc_render = function render() { var _vm = this, _c = _vm._self._c; return _c("div", { staticClass: "d-notice__actions", attrs: { "data-qa": "notice-content-actions" } }, [!_vm.hideAction ? _vm._t("default") : _vm._e(), !_vm.hideClose ? _c("dt-button", _vm._g(_vm._b({ ref: "closeButton", attrs: { "data-qa": "dt-notice-action-close-button", "size": "sm", "importance": "clear", "circle": "", "aria-label": _vm.closeButtonProps.ariaLabel ? _vm.closeButtonProps.ariaLabel : "Close" }, scopedSlots: _vm._u([{ key: "icon", fn: function() { return [_c("dt-icon-close", { attrs: { "size": "200" } })]; }, proxy: true }], null, false, 4156074325) }, "dt-button", _vm.closeButtonProps, false), _vm.noticeActionListeners)) : _vm._e(), _vm.showVisuallyHiddenClose ? _c("sr-only-close-button", { attrs: { "visually-hidden-close-label": _vm.visuallyHiddenCloseLabel }, on: { "close": _vm.close } }) : _vm._e()], 2); }; var _sfc_staticRenderFns = []; var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.default( _sfc_main, _sfc_render, _sfc_staticRenderFns ); const DtNoticeAction = __component__.exports; exports.default = DtNoticeAction; //# sourceMappingURL=notice_action.vue.cjs.map