@dialpad/dialtone
Version:
Dialpad's Dialtone design system monorepo
95 lines (94 loc) • 3.17 kB
JavaScript
;
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