@dialpad/dialtone-vue 2.160.0 → 2.162.0-beta.1
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.
- package/dist/common/sr_only_close_button.vue.cjs +3 -3
- package/dist/common/sr_only_close_button.vue.cjs.map +1 -1
- package/dist/common/sr_only_close_button.vue.js +3 -3
- package/dist/common/sr_only_close_button.vue.js.map +1 -1
- package/dist/component-documentation.json +1 -1
- package/dist/components/avatar/avatar.vue.cjs +13 -24
- package/dist/components/avatar/avatar.vue.cjs.map +1 -1
- package/dist/components/avatar/avatar.vue.js +13 -24
- package/dist/components/avatar/avatar.vue.js.map +1 -1
- package/dist/components/badge/badge.vue.cjs +13 -34
- package/dist/components/badge/badge.vue.cjs.map +1 -1
- package/dist/components/badge/badge.vue.js +13 -34
- package/dist/components/badge/badge.vue.js.map +1 -1
- package/dist/components/chip/chip.vue.cjs +4 -4
- package/dist/components/chip/chip.vue.cjs.map +1 -1
- package/dist/components/chip/chip.vue.js +4 -4
- package/dist/components/chip/chip.vue.js.map +1 -1
- package/dist/components/collapsible/collapsible.vue.cjs +4 -3
- package/dist/components/collapsible/collapsible.vue.cjs.map +1 -1
- package/dist/components/collapsible/collapsible.vue.js +4 -3
- package/dist/components/collapsible/collapsible.vue.js.map +1 -1
- package/dist/components/datepicker/modules/month-year-picker.vue.cjs +14 -6
- package/dist/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
- package/dist/components/datepicker/modules/month-year-picker.vue.js +14 -6
- package/dist/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
- package/dist/components/emoji_picker/modules/emoji_search.vue.cjs +6 -5
- package/dist/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
- package/dist/components/emoji_picker/modules/emoji_search.vue.js +6 -5
- package/dist/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
- package/dist/components/emoji_picker/modules/emoji_tabset.vue.cjs +23 -14
- package/dist/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
- package/dist/components/emoji_picker/modules/emoji_tabset.vue.js +23 -14
- package/dist/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
- package/dist/components/empty_state/empty_state.vue.cjs +20 -80
- package/dist/components/empty_state/empty_state.vue.cjs.map +1 -1
- package/dist/components/empty_state/empty_state.vue.js +21 -81
- package/dist/components/empty_state/empty_state.vue.js.map +1 -1
- package/dist/components/empty_state/empty_state_constants.cjs +18 -0
- package/dist/components/empty_state/empty_state_constants.cjs.map +1 -1
- package/dist/components/empty_state/empty_state_constants.js +18 -0
- package/dist/components/empty_state/empty_state_constants.js.map +1 -1
- package/dist/components/icon/icon.vue.cjs +2 -2
- package/dist/components/icon/icon.vue.js +2 -2
- package/dist/components/illustration/illustration.vue.cjs +2 -2
- package/dist/components/illustration/illustration.vue.js +2 -2
- package/dist/components/image_viewer/image_viewer.vue.cjs +4 -4
- package/dist/components/image_viewer/image_viewer.vue.cjs.map +1 -1
- package/dist/components/image_viewer/image_viewer.vue.js +4 -4
- package/dist/components/image_viewer/image_viewer.vue.js.map +1 -1
- package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +24 -9
- package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
- package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.js +22 -7
- package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
- package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +8 -14
- package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
- package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.js +9 -15
- package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
- package/dist/components/list_item/list_item.vue.cjs +3 -3
- package/dist/components/list_item/list_item.vue.cjs.map +1 -1
- package/dist/components/list_item/list_item.vue.js +3 -3
- package/dist/components/list_item/list_item.vue.js.map +1 -1
- package/dist/components/modal/modal.vue.cjs +4 -4
- package/dist/components/modal/modal.vue.cjs.map +1 -1
- package/dist/components/modal/modal.vue.js +4 -4
- package/dist/components/modal/modal.vue.js.map +1 -1
- package/dist/components/notice/notice_action.vue.cjs +4 -4
- package/dist/components/notice/notice_action.vue.cjs.map +1 -1
- package/dist/components/notice/notice_action.vue.js +4 -4
- package/dist/components/notice/notice_action.vue.js.map +1 -1
- package/dist/components/notice/notice_icon.vue.cjs +12 -8
- package/dist/components/notice/notice_icon.vue.cjs.map +1 -1
- package/dist/components/notice/notice_icon.vue.js +12 -8
- package/dist/components/notice/notice_icon.vue.js.map +1 -1
- package/dist/components/pagination/pagination.vue.cjs +11 -5
- package/dist/components/pagination/pagination.vue.cjs.map +1 -1
- package/dist/components/pagination/pagination.vue.js +11 -5
- package/dist/components/pagination/pagination.vue.js.map +1 -1
- package/dist/components/popover/popover_header_footer.vue.cjs +4 -4
- package/dist/components/popover/popover_header_footer.vue.cjs.map +1 -1
- package/dist/components/popover/popover_header_footer.vue.js +4 -4
- package/dist/components/popover/popover_header_footer.vue.js.map +1 -1
- package/dist/dialtone-vue.cjs +0 -3
- package/dist/dialtone-vue.cjs.map +1 -1
- package/dist/dialtone-vue.js +2 -5
- package/dist/lib/general-row.cjs +0 -1
- package/dist/lib/general-row.cjs.map +1 -1
- package/dist/lib/general-row.js +1 -2
- package/dist/lib/keyboard-shortcut.cjs +0 -2
- package/dist/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/lib/keyboard-shortcut.js +2 -4
- package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +5 -5
- package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
- package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +5 -5
- package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
- package/dist/recipes/cards/ivr_node/ivr_node.vue.cjs +25 -5
- package/dist/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
- package/dist/recipes/cards/ivr_node/ivr_node.vue.js +26 -6
- package/dist/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
- package/dist/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs +16 -2
- package/dist/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.cjs.map +1 -1
- package/dist/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js +16 -2
- package/dist/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.js.map +1 -1
- package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +5 -4
- package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
- package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +5 -4
- package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
- package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +3 -3
- package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
- package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +3 -3
- package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
- package/dist/recipes/conversation_view/editor/editor.vue.cjs +35 -22
- package/dist/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
- package/dist/recipes/conversation_view/editor/editor.vue.js +35 -22
- package/dist/recipes/conversation_view/editor/editor.vue.js.map +1 -1
- package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +7 -6
- package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
- package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +7 -6
- package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
- package/dist/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs +9 -17
- package/dist/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs.map +1 -1
- package/dist/recipes/conversation_view/feed_pill/feed_item_pill.vue.js +9 -17
- package/dist/recipes/conversation_view/feed_pill/feed_item_pill.vue.js.map +1 -1
- package/dist/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +6 -5
- package/dist/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
- package/dist/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +6 -5
- package/dist/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
- package/dist/recipes/conversation_view/message_input/message_input.vue.cjs +22 -11
- package/dist/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
- package/dist/recipes/conversation_view/message_input/message_input.vue.js +22 -11
- package/dist/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
- package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -6
- package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
- package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -6
- package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
- package/dist/recipes/item_layout/contact_info/contact_info.vue.cjs +14 -10
- package/dist/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
- package/dist/recipes/item_layout/contact_info/contact_info.vue.js +14 -10
- package/dist/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
- package/dist/recipes/leftbar/callbox/callbox.vue.cjs +6 -3
- package/dist/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/callbox/callbox.vue.js +6 -3
- package/dist/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
- package/dist/recipes/leftbar/contact_row/contact_row.vue.cjs +6 -5
- package/dist/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/contact_row/contact_row.vue.js +6 -5
- package/dist/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row.vue.cjs +8 -7
- package/dist/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row.vue.js +8 -7
- package/dist/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row_constants.cjs +0 -17
- package/dist/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row_constants.js +0 -17
- package/dist/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
- package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +36 -4
- package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +37 -5
- package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
- package/dist/recipes/leftbar/group_row/group_row.vue.cjs +3 -3
- package/dist/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/group_row/group_row.vue.js +3 -3
- package/dist/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.cjs +4 -3
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.js +4 -3
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
- package/dist/style.css +139 -132
- package/dist/types/components/avatar/avatar.vue.d.ts +4 -34
- package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
- package/dist/types/components/badge/badge.vue.d.ts +16 -45
- package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
- package/dist/types/components/chip/chip.vue.d.ts +1 -1
- package/dist/types/components/collapsible/collapsible.vue.d.ts +1 -1
- package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
- package/dist/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts +1 -67
- package/dist/types/components/empty_state/empty_state_constants.d.ts +27 -0
- package/dist/types/components/keyboard_shortcut/index.d.ts +1 -1
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +7 -15
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +0 -11
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
- package/dist/types/components/modal/modal.vue.d.ts +4 -6
- package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_action.vue.d.ts +5 -4
- package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_icon.vue.d.ts +1 -1
- package/dist/types/components/notice/notice_icon.vue.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
- package/dist/types/components/split_button/split_button-omega.vue.d.ts +1 -1
- package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
- package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
- package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +8 -8
- package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +0 -1
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +2 -16
- package/dist/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts +4 -6
- package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
- package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +3 -16
- package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +0 -1
- package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
- package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/general_row/general_row_constants.d.ts +0 -6
- package/dist/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/general_row/index.d.ts +1 -1
- package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
- package/dist/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/common/storybook_utils.cjs +0 -8
- package/dist/common/storybook_utils.cjs.map +0 -1
- package/dist/common/storybook_utils.js +0 -8
- package/dist/common/storybook_utils.js.map +0 -1
- package/dist/types/common/storybook_utils.d.ts +0 -35
- package/dist/types/common/storybook_utils.d.ts.map +0 -1
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
import { EMPTY_STATE_SIZE_MODIFIERS } from "./empty_state_constants.js";
|
|
1
|
+
import { EMPTY_STATE_SIZE_MODIFIERS, EMPTY_STATE_CONTENT_SIZE_MODIFIERS, EMPTY_STATE_HEADLINE_SIZE_MODIFIERS, EMPTY_STATE_BODY_SIZE_MODIFIERS } from "./empty_state_constants.js";
|
|
2
2
|
import normalizeComponent from "../../_virtual/_plugin-vue2_normalizer.js";
|
|
3
|
-
import DtIllustration from "../illustration/illustration.vue.js";
|
|
4
|
-
import DtIcon from "../icon/icon.vue.js";
|
|
5
3
|
import DtStack from "../stack/stack.vue.js";
|
|
6
|
-
import { ILLUSTRATION_NAMES } from "../illustration/illustration_constants.js";
|
|
7
|
-
import { ICON_NAMES } from "../icon/icon_constants.js";
|
|
8
4
|
const _sfc_main = {
|
|
9
5
|
name: "DtEmptyState",
|
|
10
6
|
components: {
|
|
11
|
-
DtIllustration,
|
|
12
|
-
DtIcon,
|
|
13
7
|
DtStack
|
|
14
8
|
},
|
|
15
9
|
props: {
|
|
@@ -22,28 +16,6 @@ const _sfc_main = {
|
|
|
22
16
|
default: "lg",
|
|
23
17
|
validator: (s) => Object.keys(EMPTY_STATE_SIZE_MODIFIERS).includes(s)
|
|
24
18
|
},
|
|
25
|
-
/**
|
|
26
|
-
* The illustration name in kebab-case
|
|
27
|
-
* This only displays when size is 'lg' or 'md'
|
|
28
|
-
* This has priority over icon.
|
|
29
|
-
* @type {String}
|
|
30
|
-
*/
|
|
31
|
-
illustrationName: {
|
|
32
|
-
type: String,
|
|
33
|
-
default: null,
|
|
34
|
-
validator: (name) => ILLUSTRATION_NAMES.includes(name)
|
|
35
|
-
},
|
|
36
|
-
/**
|
|
37
|
-
* The icon name in kebab-case
|
|
38
|
-
* This will be shown in 'lg' and 'md' size only if illustrationName prop is not provided and
|
|
39
|
-
* Will always be shown in 'sm' size.
|
|
40
|
-
* @type {String}
|
|
41
|
-
*/
|
|
42
|
-
iconName: {
|
|
43
|
-
type: String,
|
|
44
|
-
default: null,
|
|
45
|
-
validator: (name) => ICON_NAMES.includes(name)
|
|
46
|
-
},
|
|
47
19
|
/**
|
|
48
20
|
* Header text
|
|
49
21
|
* @type {String}
|
|
@@ -59,36 +31,31 @@ const _sfc_main = {
|
|
|
59
31
|
bodyText: {
|
|
60
32
|
type: String,
|
|
61
33
|
default: null
|
|
62
|
-
},
|
|
63
|
-
/**
|
|
64
|
-
* Whether to show the illustration
|
|
65
|
-
* @type {Boolean}
|
|
66
|
-
*/
|
|
67
|
-
showIllustration: {
|
|
68
|
-
type: Boolean,
|
|
69
|
-
default: true
|
|
70
34
|
}
|
|
71
35
|
},
|
|
72
36
|
computed: {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
37
|
+
hasIcon() {
|
|
38
|
+
return this.$scopedSlots.icon && this.$scopedSlots.icon();
|
|
39
|
+
},
|
|
40
|
+
hasIllustration() {
|
|
41
|
+
return this.$scopedSlots.illustration && this.$scopedSlots.illustration();
|
|
42
|
+
},
|
|
43
|
+
isSmallSize() {
|
|
44
|
+
return this.size === "sm";
|
|
79
45
|
},
|
|
80
46
|
/**
|
|
81
47
|
* Icon will be shown in lg and md size only if illustration is not provided
|
|
82
48
|
* Icon will always be shown in sm size
|
|
83
49
|
*/
|
|
84
50
|
showIcon() {
|
|
85
|
-
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
return !(this.illustrationName && this.notSmSize);
|
|
51
|
+
return this.hasIcon && (!this.hasIllustration || this.isSmallSize);
|
|
89
52
|
},
|
|
90
|
-
|
|
91
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Illustration will always be shown in lg and md size
|
|
55
|
+
* Illustration will not be shown in sm size
|
|
56
|
+
*/
|
|
57
|
+
showIllustration() {
|
|
58
|
+
return this.hasIllustration && !this.isSmallSize;
|
|
92
59
|
},
|
|
93
60
|
sizeClass() {
|
|
94
61
|
return EMPTY_STATE_SIZE_MODIFIERS[this.size];
|
|
@@ -97,51 +64,24 @@ const _sfc_main = {
|
|
|
97
64
|
return ["d-empty-state", this.sizeClass];
|
|
98
65
|
},
|
|
99
66
|
contentClass() {
|
|
100
|
-
|
|
101
|
-
case "sm":
|
|
102
|
-
return "d-empty-state__content--sm";
|
|
103
|
-
case "md":
|
|
104
|
-
return "d-empty-state__content--md";
|
|
105
|
-
case "lg":
|
|
106
|
-
return "d-empty-state__content--lg";
|
|
107
|
-
default:
|
|
108
|
-
return "d-empty-state__content--lg";
|
|
109
|
-
}
|
|
67
|
+
return EMPTY_STATE_CONTENT_SIZE_MODIFIERS[this.size];
|
|
110
68
|
},
|
|
111
69
|
headlineClass() {
|
|
112
|
-
|
|
113
|
-
case "sm":
|
|
114
|
-
return "d-headline--md";
|
|
115
|
-
case "md":
|
|
116
|
-
return "d-headline--xl";
|
|
117
|
-
case "lg":
|
|
118
|
-
return "d-headline--xxl";
|
|
119
|
-
default:
|
|
120
|
-
return "d-headline--xxl";
|
|
121
|
-
}
|
|
70
|
+
return EMPTY_STATE_HEADLINE_SIZE_MODIFIERS[this.size];
|
|
122
71
|
},
|
|
123
72
|
bodyClass() {
|
|
124
|
-
|
|
125
|
-
case "sm":
|
|
126
|
-
return "d-body--sm";
|
|
127
|
-
case "md":
|
|
128
|
-
return "d-body--sm";
|
|
129
|
-
case "lg":
|
|
130
|
-
return "d-body--md";
|
|
131
|
-
default:
|
|
132
|
-
return "d-body--md";
|
|
133
|
-
}
|
|
73
|
+
return EMPTY_STATE_BODY_SIZE_MODIFIERS[this.size];
|
|
134
74
|
}
|
|
135
75
|
},
|
|
136
76
|
mounted() {
|
|
137
77
|
if (!this.bodyText && !this.$slots.body) {
|
|
138
|
-
console.
|
|
78
|
+
console.error("DtEmptyState: You should provide either bodyText or content on body slot.");
|
|
139
79
|
}
|
|
140
80
|
}
|
|
141
81
|
};
|
|
142
82
|
var _sfc_render = function render() {
|
|
143
83
|
var _vm = this, _c = _vm._self._c;
|
|
144
|
-
return _c("dt-stack", { class: _vm.emptyStateClasses }, [_vm.showIllustration ?
|
|
84
|
+
return _c("dt-stack", { class: _vm.emptyStateClasses }, [_vm.showIllustration ? _c("span", { staticClass: "d-empty-state__illustration" }, [_vm._t("illustration")], 2) : _vm._e(), _vm.showIcon ? _c("span", { staticClass: "d-empty-state__icon" }, [_vm._t("icon", null, { "iconSize": "800" })], 2) : _vm._e(), _c("dt-stack", { class: ["d-empty-state__content", _vm.contentClass], attrs: { "gap": "450" } }, [_c("div", { class: ["d-empty-state__header-text", _vm.headlineClass] }, [_vm._v(" " + _vm._s(_vm.headerText) + " ")]), _vm.bodyText ? _c("p", { class: ["d-empty-state__body-text", _vm.bodyClass] }, [_vm._v(" " + _vm._s(_vm.bodyText) + " ")]) : _vm._e()]), _vm._t("body")], 2);
|
|
145
85
|
};
|
|
146
86
|
var _sfc_staticRenderFns = [];
|
|
147
87
|
var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty_state.vue.js","sources":["../../../components/empty_state/empty_state.vue"],"sourcesContent":["<template>\n <dt-stack\n :class=\"emptyStateClasses\"\n >\n <
|
|
1
|
+
{"version":3,"file":"empty_state.vue.js","sources":["../../../components/empty_state/empty_state.vue"],"sourcesContent":["<template>\n <dt-stack\n :class=\"emptyStateClasses\"\n >\n <span\n v-if=\"showIllustration\"\n class=\"d-empty-state__illustration\"\n >\n <!-- @slot Slot for the illustration. Displays when size is 'lg' or 'md'. Overrides icon. -->\n <slot name=\"illustration\" />\n </span>\n\n <span\n v-if=\"showIcon\"\n class=\"d-empty-state__icon\"\n >\n <!-- @slot Slot for the icon. Displayed if illustration is not provided. -->\n <slot\n name=\"icon\"\n :icon-size=\"'800'\"\n />\n </span>\n\n <dt-stack\n gap=\"450\"\n :class=\"['d-empty-state__content', contentClass]\"\n >\n <div :class=\"['d-empty-state__header-text', headlineClass]\">\n {{ headerText }}\n </div>\n\n <p\n v-if=\"bodyText\"\n :class=\"['d-empty-state__body-text', bodyClass]\"\n >\n {{ bodyText }}\n </p>\n </dt-stack>\n\n <slot name=\"body\" />\n </dt-stack>\n</template>\n\n<script>\nimport {\n EMPTY_STATE_BODY_SIZE_MODIFIERS,\n EMPTY_STATE_CONTENT_SIZE_MODIFIERS,\n EMPTY_STATE_HEADLINE_SIZE_MODIFIERS,\n EMPTY_STATE_SIZE_MODIFIERS,\n} from './empty_state_constants.js';\nimport { DtStack } from '@/components/stack';\n\nexport default {\n name: 'DtEmptyState',\n\n components: {\n DtStack,\n },\n\n props: {\n /**\n * The empty state size.\n * @values 'sm', 'md', 'lg'\n */\n size: {\n type: String,\n default: 'lg',\n validator: (s) => Object.keys(EMPTY_STATE_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Header text\n * @type {String}\n */\n headerText: {\n type: String,\n required: true,\n },\n\n /**\n * Body text\n * @type {String}\n */\n bodyText: {\n type: String,\n default: null,\n },\n },\n\n computed: {\n hasIcon () {\n return this.$scopedSlots.icon && this.$scopedSlots.icon();\n },\n\n hasIllustration () {\n return this.$scopedSlots.illustration && this.$scopedSlots.illustration();\n },\n\n isSmallSize () {\n return this.size === 'sm';\n },\n\n /**\n * Icon will be shown in lg and md size only if illustration is not provided\n * Icon will always be shown in sm size\n */\n showIcon () {\n return this.hasIcon && (!this.hasIllustration || this.isSmallSize);\n },\n\n /**\n * Illustration will always be shown in lg and md size\n * Illustration will not be shown in sm size\n */\n showIllustration () {\n return this.hasIllustration && !this.isSmallSize;\n },\n\n sizeClass () {\n return EMPTY_STATE_SIZE_MODIFIERS[this.size];\n },\n\n emptyStateClasses () {\n return ['d-empty-state', this.sizeClass];\n },\n\n contentClass () {\n return EMPTY_STATE_CONTENT_SIZE_MODIFIERS[this.size];\n },\n\n headlineClass () {\n return EMPTY_STATE_HEADLINE_SIZE_MODIFIERS[this.size];\n },\n\n bodyClass () {\n return EMPTY_STATE_BODY_SIZE_MODIFIERS[this.size];\n },\n },\n\n mounted () {\n if (!this.bodyText && !this.$slots.body) {\n console.error('DtEmptyState: You should provide either bodyText or content on body slot.');\n }\n },\n};\n</script>\n"],"names":[],"mappings":";;;AAoDA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,MAAA,OAAA,KAAA,0BAAA,EAAA,SAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,UAAA;AACA,aAAA,KAAA,aAAA,QAAA,KAAA,aAAA;IACA;AAAA,IAEA,kBAAA;AACA,aAAA,KAAA,aAAA,gBAAA,KAAA,aAAA;IACA;AAAA,IAEA,cAAA;AACA,aAAA,KAAA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AACA,aAAA,KAAA,YAAA,CAAA,KAAA,mBAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,mBAAA;AACA,aAAA,KAAA,mBAAA,CAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,2BAAA,KAAA,IAAA;AAAA,IACA;AAAA,IAEA,oBAAA;AACA,aAAA,CAAA,iBAAA,KAAA,SAAA;AAAA,IACA;AAAA,IAEA,eAAA;AACA,aAAA,mCAAA,KAAA,IAAA;AAAA,IACA;AAAA,IAEA,gBAAA;AACA,aAAA,oCAAA,KAAA,IAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,gCAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,QAAA,CAAA,KAAA,YAAA,CAAA,KAAA,OAAA,MAAA;AACA,cAAA,MAAA,2EAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;"}
|
|
@@ -5,5 +5,23 @@ const EMPTY_STATE_SIZE_MODIFIERS = {
|
|
|
5
5
|
md: "d-empty-state--size-md",
|
|
6
6
|
lg: "d-empty-state--size-lg"
|
|
7
7
|
};
|
|
8
|
+
const EMPTY_STATE_CONTENT_SIZE_MODIFIERS = {
|
|
9
|
+
sm: "d-empty-state__content--sm",
|
|
10
|
+
md: "d-empty-state__content--md",
|
|
11
|
+
lg: "d-empty-state__content--lg"
|
|
12
|
+
};
|
|
13
|
+
const EMPTY_STATE_HEADLINE_SIZE_MODIFIERS = {
|
|
14
|
+
sm: "d-headline--md",
|
|
15
|
+
md: "d-headline--xl",
|
|
16
|
+
lg: "d-headline--xxl"
|
|
17
|
+
};
|
|
18
|
+
const EMPTY_STATE_BODY_SIZE_MODIFIERS = {
|
|
19
|
+
sm: "d-body--sm",
|
|
20
|
+
md: "d-body--sm",
|
|
21
|
+
lg: "d-body--md"
|
|
22
|
+
};
|
|
23
|
+
exports.EMPTY_STATE_BODY_SIZE_MODIFIERS = EMPTY_STATE_BODY_SIZE_MODIFIERS;
|
|
24
|
+
exports.EMPTY_STATE_CONTENT_SIZE_MODIFIERS = EMPTY_STATE_CONTENT_SIZE_MODIFIERS;
|
|
25
|
+
exports.EMPTY_STATE_HEADLINE_SIZE_MODIFIERS = EMPTY_STATE_HEADLINE_SIZE_MODIFIERS;
|
|
8
26
|
exports.EMPTY_STATE_SIZE_MODIFIERS = EMPTY_STATE_SIZE_MODIFIERS;
|
|
9
27
|
//# sourceMappingURL=empty_state_constants.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty_state_constants.cjs","sources":["../../../components/empty_state/empty_state_constants.js"],"sourcesContent":["export const EMPTY_STATE_SIZE_MODIFIERS = {\n sm: 'd-empty-state--size-sm',\n md: 'd-empty-state--size-md',\n lg: 'd-empty-state--size-lg',\n};\n\nexport default {\n EMPTY_STATE_SIZE_MODIFIERS,\n};\n"],"names":[],"mappings":";;AAAY,MAAC,6BAA6B;AAAA,EACxC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN
|
|
1
|
+
{"version":3,"file":"empty_state_constants.cjs","sources":["../../../components/empty_state/empty_state_constants.js"],"sourcesContent":["export const EMPTY_STATE_SIZE_MODIFIERS = {\n sm: 'd-empty-state--size-sm',\n md: 'd-empty-state--size-md',\n lg: 'd-empty-state--size-lg',\n};\n\nexport const EMPTY_STATE_CONTENT_SIZE_MODIFIERS = {\n sm: 'd-empty-state__content--sm',\n md: 'd-empty-state__content--md',\n lg: 'd-empty-state__content--lg',\n};\n\nexport const EMPTY_STATE_HEADLINE_SIZE_MODIFIERS = {\n sm: 'd-headline--md',\n md: 'd-headline--xl',\n lg: 'd-headline--xxl',\n};\n\nexport const EMPTY_STATE_BODY_SIZE_MODIFIERS = {\n sm: 'd-body--sm',\n md: 'd-body--sm',\n lg: 'd-body--md',\n};\n\nexport default {\n EMPTY_STATE_SIZE_MODIFIERS,\n EMPTY_STATE_CONTENT_SIZE_MODIFIERS,\n EMPTY_STATE_HEADLINE_SIZE_MODIFIERS,\n EMPTY_STATE_BODY_SIZE_MODIFIERS,\n};\n"],"names":[],"mappings":";;AAAY,MAAC,6BAA6B;AAAA,EACxC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEY,MAAC,qCAAqC;AAAA,EAChD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEY,MAAC,sCAAsC;AAAA,EACjD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEY,MAAC,kCAAkC;AAAA,EAC7C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;;;;;"}
|
|
@@ -3,7 +3,25 @@ const EMPTY_STATE_SIZE_MODIFIERS = {
|
|
|
3
3
|
md: "d-empty-state--size-md",
|
|
4
4
|
lg: "d-empty-state--size-lg"
|
|
5
5
|
};
|
|
6
|
+
const EMPTY_STATE_CONTENT_SIZE_MODIFIERS = {
|
|
7
|
+
sm: "d-empty-state__content--sm",
|
|
8
|
+
md: "d-empty-state__content--md",
|
|
9
|
+
lg: "d-empty-state__content--lg"
|
|
10
|
+
};
|
|
11
|
+
const EMPTY_STATE_HEADLINE_SIZE_MODIFIERS = {
|
|
12
|
+
sm: "d-headline--md",
|
|
13
|
+
md: "d-headline--xl",
|
|
14
|
+
lg: "d-headline--xxl"
|
|
15
|
+
};
|
|
16
|
+
const EMPTY_STATE_BODY_SIZE_MODIFIERS = {
|
|
17
|
+
sm: "d-body--sm",
|
|
18
|
+
md: "d-body--sm",
|
|
19
|
+
lg: "d-body--md"
|
|
20
|
+
};
|
|
6
21
|
export {
|
|
22
|
+
EMPTY_STATE_BODY_SIZE_MODIFIERS,
|
|
23
|
+
EMPTY_STATE_CONTENT_SIZE_MODIFIERS,
|
|
24
|
+
EMPTY_STATE_HEADLINE_SIZE_MODIFIERS,
|
|
7
25
|
EMPTY_STATE_SIZE_MODIFIERS
|
|
8
26
|
};
|
|
9
27
|
//# sourceMappingURL=empty_state_constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty_state_constants.js","sources":["../../../components/empty_state/empty_state_constants.js"],"sourcesContent":["export const EMPTY_STATE_SIZE_MODIFIERS = {\n sm: 'd-empty-state--size-sm',\n md: 'd-empty-state--size-md',\n lg: 'd-empty-state--size-lg',\n};\n\nexport default {\n EMPTY_STATE_SIZE_MODIFIERS,\n};\n"],"names":[],"mappings":"AAAY,MAAC,6BAA6B;AAAA,EACxC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;"}
|
|
1
|
+
{"version":3,"file":"empty_state_constants.js","sources":["../../../components/empty_state/empty_state_constants.js"],"sourcesContent":["export const EMPTY_STATE_SIZE_MODIFIERS = {\n sm: 'd-empty-state--size-sm',\n md: 'd-empty-state--size-md',\n lg: 'd-empty-state--size-lg',\n};\n\nexport const EMPTY_STATE_CONTENT_SIZE_MODIFIERS = {\n sm: 'd-empty-state__content--sm',\n md: 'd-empty-state__content--md',\n lg: 'd-empty-state__content--lg',\n};\n\nexport const EMPTY_STATE_HEADLINE_SIZE_MODIFIERS = {\n sm: 'd-headline--md',\n md: 'd-headline--xl',\n lg: 'd-headline--xxl',\n};\n\nexport const EMPTY_STATE_BODY_SIZE_MODIFIERS = {\n sm: 'd-body--sm',\n md: 'd-body--sm',\n lg: 'd-body--md',\n};\n\nexport default {\n EMPTY_STATE_SIZE_MODIFIERS,\n EMPTY_STATE_CONTENT_SIZE_MODIFIERS,\n EMPTY_STATE_HEADLINE_SIZE_MODIFIERS,\n EMPTY_STATE_BODY_SIZE_MODIFIERS,\n};\n"],"names":[],"mappings":"AAAY,MAAC,6BAA6B;AAAA,EACxC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEY,MAAC,qCAAqC;AAAA,EAChD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEY,MAAC,sCAAsC;AAAA,EACjD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEY,MAAC,kCAAkC;AAAA,EAC7C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;"}
|
|
@@ -48,8 +48,8 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
|
48
48
|
null,
|
|
49
49
|
null
|
|
50
50
|
);
|
|
51
|
-
const
|
|
51
|
+
const icon = __component__.exports;
|
|
52
52
|
export {
|
|
53
|
-
|
|
53
|
+
icon as default
|
|
54
54
|
};
|
|
55
55
|
//# sourceMappingURL=icon.vue.js.map
|
|
@@ -33,6 +33,6 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer(
|
|
|
33
33
|
null,
|
|
34
34
|
null
|
|
35
35
|
);
|
|
36
|
-
const
|
|
37
|
-
module.exports =
|
|
36
|
+
const illustration = __component__.exports;
|
|
37
|
+
module.exports = illustration;
|
|
38
38
|
//# sourceMappingURL=illustration.vue.cjs.map
|
|
@@ -32,8 +32,8 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
|
32
32
|
null,
|
|
33
33
|
null
|
|
34
34
|
);
|
|
35
|
-
const
|
|
35
|
+
const illustration = __component__.exports;
|
|
36
36
|
export {
|
|
37
|
-
|
|
37
|
+
illustration as default
|
|
38
38
|
};
|
|
39
39
|
//# sourceMappingURL=illustration.vue.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const modal = require("../../common/mixins/modal.cjs");
|
|
3
3
|
const common_constants = require("../../common/constants.cjs");
|
|
4
|
+
const vue2 = require("@dialpad/dialtone-icons/vue2");
|
|
4
5
|
const vueSimplePortal = require("@linusborg/vue-simple-portal");
|
|
5
6
|
const _pluginVue2_normalizer = require("../../_virtual/_plugin-vue2_normalizer.cjs");
|
|
6
7
|
const button = require("../button/button.vue.cjs");
|
|
7
|
-
const icon = require("../icon/icon.vue.cjs");
|
|
8
8
|
const _sfc_main = {
|
|
9
9
|
name: "DtImageViewer",
|
|
10
10
|
components: {
|
|
11
11
|
Portal: vueSimplePortal.Portal,
|
|
12
12
|
DtButton: button,
|
|
13
|
-
|
|
13
|
+
DtIconClose: vue2.DtIconClose
|
|
14
14
|
},
|
|
15
15
|
mixins: [modal],
|
|
16
16
|
props: {
|
|
@@ -176,8 +176,8 @@ var _sfc_render = function render() {
|
|
|
176
176
|
}, "focusout": function($event) {
|
|
177
177
|
_vm.showCloseButton = false;
|
|
178
178
|
} } }, _vm.modalListeners), [_c("div", { staticClass: "d-image-viewer__full", attrs: { "data-qa": "dt-image-viewer-full", "role": "dialog", "aria-modal": "true" } }, [_c("img", { staticClass: "d-image-viewer__full__image", attrs: { "src": _vm.imageSrc, "alt": _vm.imageAlt } })]), _c("transition", { attrs: { "name": "fade" } }, [_vm.showCloseButton ? _c("dt-button", { ref: "closeImage", staticClass: "d-modal__close", attrs: { "data-qa": "dt-image-viewer-close-btn", "circle": "", "size": "lg", "importance": "clear", "kind": "inverted", "aria-label": _vm.closeAriaLabel }, on: { "click": _vm.close }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
|
|
179
|
-
return [_c("dt-icon", { staticClass: "d-image-viewer__close-button", attrs: { "
|
|
180
|
-
}, proxy: true }], null, false,
|
|
179
|
+
return [_c("dt-icon-close", { staticClass: "d-image-viewer__close-button", attrs: { "size": "400" } })];
|
|
180
|
+
}, proxy: true }], null, false, 3317018023) }) : _vm._e()], 1)], 1)]) : _vm._e()], 1);
|
|
181
181
|
};
|
|
182
182
|
var _sfc_staticRenderFns = [];
|
|
183
183
|
var __component__ = /* @__PURE__ */ _pluginVue2_normalizer(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image_viewer.vue.cjs","sources":["../../../components/image_viewer/image_viewer.vue"],"sourcesContent":["<template>\n <div>\n <dt-button\n data-qa=\"dt-image-viewer-preview\"\n class=\"d-image-viewer__preview-button\"\n :aria-label=\"ariaLabel\"\n importance=\"clear\"\n @click=\"openModal\"\n >\n <img\n :class=\"imageButtonClass\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n </dt-button>\n <portal\n
|
|
1
|
+
{"version":3,"file":"image_viewer.vue.cjs","sources":["../../../components/image_viewer/image_viewer.vue"],"sourcesContent":["<template>\n <div>\n <dt-button\n data-qa=\"dt-image-viewer-preview\"\n class=\"d-image-viewer__preview-button\"\n :aria-label=\"ariaLabel\"\n importance=\"clear\"\n @click=\"openModal\"\n >\n <img\n :class=\"imageButtonClass\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n </dt-button>\n <portal\n v-if=\"isOpen\"\n :selector=\"appendTo\"\n >\n <div\n :aria-hidden=\"!isOpen ? 'true' : 'false'\"\n class=\"d-modal\"\n data-qa=\"dt-modal\"\n v-on=\"modalListeners\"\n @mouseover=\"showCloseButton = true\"\n @mouseleave=\"showCloseButton = false\"\n @focusin=\" showCloseButton = true\"\n @focusout=\" showCloseButton = false\"\n >\n <div\n data-qa=\"dt-image-viewer-full\"\n class=\"d-image-viewer__full\"\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <img\n class=\"d-image-viewer__full__image\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n </div>\n <transition name=\"fade\">\n <dt-button\n v-if=\"showCloseButton\"\n ref=\"closeImage\"\n data-qa=\"dt-image-viewer-close-btn\"\n class=\"d-modal__close\"\n circle\n size=\"lg\"\n importance=\"clear\"\n kind=\"inverted\"\n :aria-label=\"closeAriaLabel\"\n @click=\"close\"\n >\n <template #icon>\n <dt-icon-close\n class=\"d-image-viewer__close-button\"\n size=\"400\"\n />\n </template>\n </dt-button>\n </transition>\n </div>\n </portal>\n </div>\n</template>\n\n<script>\nimport Modal from '@/common/mixins/modal';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue2';\nimport { DtButton } from '@/components/button';\nimport { Portal } from '@linusborg/vue-simple-portal';\n\nexport default {\n name: 'DtImageViewer',\n\n components: {\n Portal,\n DtButton,\n DtIconClose,\n },\n\n mixins: [Modal],\n\n props: {\n /**\n * By default the portal appends to the body of the root parent. We can modify\n * this behaviour by passing an appendTo prop that points to an id or an html tag from the root of the parent.\n * The appendTo prop expects a CSS selector string or an actual DOM node.\n * type: string | HTMLElement, default: 'body'\n */\n appendTo: {\n type: String,\n default: 'body',\n },\n\n /**\n * Controls whether the image modal is shown. Leaving this null will have the image modal\n * trigger on click by default.\n * If you set this value, the default trigger behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * URL of the image to be shown\n */\n imageSrc: {\n type: String,\n required: true,\n },\n\n /**\n * Alt text of image\n */\n imageAlt: {\n type: String,\n required: true,\n },\n\n /**\n * Image Class\n */\n imageButtonClass: {\n type: String,\n required: false,\n default: '',\n },\n\n /**\n * Aria label\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Aria label for close button\n */\n closeAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Emitted when popover is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n ],\n\n data () {\n return {\n showCloseButton: true,\n isOpen: false,\n };\n },\n\n computed: {\n modalListeners () {\n return {\n ...this.$listeners,\n\n click: event => {\n (event.target === event.currentTarget) && this.close();\n },\n\n keydown: event => {\n switch (event.code) {\n case EVENT_KEYNAMES.esc:\n case EVENT_KEYNAMES.escape:\n this.close();\n break;\n case EVENT_KEYNAMES.tab:\n this.trapFocus(event);\n break;\n }\n },\n };\n },\n },\n\n watch: {\n isOpen: {\n immediate: true,\n handler (isShowing) {\n if (isShowing) {\n // Set a reference to the previously-active element, to which we'll return focus on modal close.\n this.previousActiveElement = document.activeElement;\n } else {\n // Modal is being hidden, so return focus to the previously active element before clearing the reference.\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n }\n },\n },\n\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n methods: {\n openModal () {\n // Has custom control passed in\n if (this.open !== null) {\n return;\n }\n this.isOpen = true;\n this.showCloseButton = true;\n this.$emit('opened', true);\n\n setTimeout(() => {\n this.focusAfterOpen();\n });\n },\n\n close () {\n this.isOpen = false;\n this.$emit('opened', false);\n\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n focusAfterOpen () {\n this.$refs.closeImage?.$el.focus();\n },\n\n trapFocus (e) {\n if (this.isOpen) {\n this.focusTrappedTabPress(e);\n }\n },\n\n },\n};\n</script>\n"],"names":["Portal","DtButton","DtIconClose","Modal","EVENT_KEYNAMES"],"mappings":";;;;;;;AA0EA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,QAAAA,gBAAA;AAAA,IACA,UAAAC;AAAAA,IACA,aAAAC,KAAA;AAAA,EACA;AAAA,EAEA,QAAA,CAAAC,KAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,iBAAA;AACA,aAAA;AAAA,QACA,GAAA,KAAA;AAAA,QAEA,OAAA,WAAA;AACA,UAAA,MAAA,WAAA,MAAA,iBAAA,KAAA;QACA;AAAA,QAEA,SAAA,WAAA;AACA,kBAAA,MAAA,MAAA;AAAA,YACA,KAAAC,iBAAAA,eAAA;AAAA,YACA,KAAAA,iBAAA,eAAA;AACA,mBAAA,MAAA;AACA;AAAA,YACA,KAAAA,iBAAA,eAAA;AACA,mBAAA,UAAA,KAAA;AACA;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA,WAAA;;AACA,YAAA,WAAA;AAEA,eAAA,wBAAA,SAAA;AAAA,QACA,OAAA;AAEA,qBAAA,0BAAA,mBAAA;AACA,eAAA,wBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,MAAA;AAAA,MACA,SAAA,SAAA,MAAA;AACA,YAAA,SAAA,MAAA;AACA,eAAA,SAAA;AAAA,QACA;AAAA,MACA;AAAA,MAEA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,YAAA;AAEA,UAAA,KAAA,SAAA,MAAA;AACA;AAAA,MACA;AACA,WAAA,SAAA;AACA,WAAA,kBAAA;AACA,WAAA,MAAA,UAAA,IAAA;AAEA,iBAAA,MAAA;AACA,aAAA,eAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,IAEA,QAAA;AACA,WAAA,SAAA;AACA,WAAA,MAAA,UAAA,KAAA;AAEA,UAAA,KAAA,SAAA,MAAA;AACA,aAAA,MAAA,eAAA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,iBAAA;;AACA,iBAAA,MAAA,eAAA,mBAAA,IAAA;AAAA,IACA;AAAA,IAEA,UAAA,GAAA;AACA,UAAA,KAAA,QAAA;AACA,aAAA,qBAAA,CAAA;AAAA,MACA;AAAA,IACA;AAAA,EAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import Modal from "../../common/mixins/modal.js";
|
|
2
2
|
import { EVENT_KEYNAMES } from "../../common/constants.js";
|
|
3
|
+
import { DtIconClose } from "@dialpad/dialtone-icons/vue2";
|
|
3
4
|
import { Portal } from "@linusborg/vue-simple-portal";
|
|
4
5
|
import normalizeComponent from "../../_virtual/_plugin-vue2_normalizer.js";
|
|
5
6
|
import DtButton from "../button/button.vue.js";
|
|
6
|
-
import DtIcon from "../icon/icon.vue.js";
|
|
7
7
|
const _sfc_main = {
|
|
8
8
|
name: "DtImageViewer",
|
|
9
9
|
components: {
|
|
10
10
|
Portal,
|
|
11
11
|
DtButton,
|
|
12
|
-
|
|
12
|
+
DtIconClose
|
|
13
13
|
},
|
|
14
14
|
mixins: [Modal],
|
|
15
15
|
props: {
|
|
@@ -175,8 +175,8 @@ var _sfc_render = function render() {
|
|
|
175
175
|
}, "focusout": function($event) {
|
|
176
176
|
_vm.showCloseButton = false;
|
|
177
177
|
} } }, _vm.modalListeners), [_c("div", { staticClass: "d-image-viewer__full", attrs: { "data-qa": "dt-image-viewer-full", "role": "dialog", "aria-modal": "true" } }, [_c("img", { staticClass: "d-image-viewer__full__image", attrs: { "src": _vm.imageSrc, "alt": _vm.imageAlt } })]), _c("transition", { attrs: { "name": "fade" } }, [_vm.showCloseButton ? _c("dt-button", { ref: "closeImage", staticClass: "d-modal__close", attrs: { "data-qa": "dt-image-viewer-close-btn", "circle": "", "size": "lg", "importance": "clear", "kind": "inverted", "aria-label": _vm.closeAriaLabel }, on: { "click": _vm.close }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
|
|
178
|
-
return [_c("dt-icon", { staticClass: "d-image-viewer__close-button", attrs: { "
|
|
179
|
-
}, proxy: true }], null, false,
|
|
178
|
+
return [_c("dt-icon-close", { staticClass: "d-image-viewer__close-button", attrs: { "size": "400" } })];
|
|
179
|
+
}, proxy: true }], null, false, 3317018023) }) : _vm._e()], 1)], 1)]) : _vm._e()], 1);
|
|
180
180
|
};
|
|
181
181
|
var _sfc_staticRenderFns = [];
|
|
182
182
|
var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image_viewer.vue.js","sources":["../../../components/image_viewer/image_viewer.vue"],"sourcesContent":["<template>\n <div>\n <dt-button\n data-qa=\"dt-image-viewer-preview\"\n class=\"d-image-viewer__preview-button\"\n :aria-label=\"ariaLabel\"\n importance=\"clear\"\n @click=\"openModal\"\n >\n <img\n :class=\"imageButtonClass\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n </dt-button>\n <portal\n
|
|
1
|
+
{"version":3,"file":"image_viewer.vue.js","sources":["../../../components/image_viewer/image_viewer.vue"],"sourcesContent":["<template>\n <div>\n <dt-button\n data-qa=\"dt-image-viewer-preview\"\n class=\"d-image-viewer__preview-button\"\n :aria-label=\"ariaLabel\"\n importance=\"clear\"\n @click=\"openModal\"\n >\n <img\n :class=\"imageButtonClass\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n </dt-button>\n <portal\n v-if=\"isOpen\"\n :selector=\"appendTo\"\n >\n <div\n :aria-hidden=\"!isOpen ? 'true' : 'false'\"\n class=\"d-modal\"\n data-qa=\"dt-modal\"\n v-on=\"modalListeners\"\n @mouseover=\"showCloseButton = true\"\n @mouseleave=\"showCloseButton = false\"\n @focusin=\" showCloseButton = true\"\n @focusout=\" showCloseButton = false\"\n >\n <div\n data-qa=\"dt-image-viewer-full\"\n class=\"d-image-viewer__full\"\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <img\n class=\"d-image-viewer__full__image\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n </div>\n <transition name=\"fade\">\n <dt-button\n v-if=\"showCloseButton\"\n ref=\"closeImage\"\n data-qa=\"dt-image-viewer-close-btn\"\n class=\"d-modal__close\"\n circle\n size=\"lg\"\n importance=\"clear\"\n kind=\"inverted\"\n :aria-label=\"closeAriaLabel\"\n @click=\"close\"\n >\n <template #icon>\n <dt-icon-close\n class=\"d-image-viewer__close-button\"\n size=\"400\"\n />\n </template>\n </dt-button>\n </transition>\n </div>\n </portal>\n </div>\n</template>\n\n<script>\nimport Modal from '@/common/mixins/modal';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue2';\nimport { DtButton } from '@/components/button';\nimport { Portal } from '@linusborg/vue-simple-portal';\n\nexport default {\n name: 'DtImageViewer',\n\n components: {\n Portal,\n DtButton,\n DtIconClose,\n },\n\n mixins: [Modal],\n\n props: {\n /**\n * By default the portal appends to the body of the root parent. We can modify\n * this behaviour by passing an appendTo prop that points to an id or an html tag from the root of the parent.\n * The appendTo prop expects a CSS selector string or an actual DOM node.\n * type: string | HTMLElement, default: 'body'\n */\n appendTo: {\n type: String,\n default: 'body',\n },\n\n /**\n * Controls whether the image modal is shown. Leaving this null will have the image modal\n * trigger on click by default.\n * If you set this value, the default trigger behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * URL of the image to be shown\n */\n imageSrc: {\n type: String,\n required: true,\n },\n\n /**\n * Alt text of image\n */\n imageAlt: {\n type: String,\n required: true,\n },\n\n /**\n * Image Class\n */\n imageButtonClass: {\n type: String,\n required: false,\n default: '',\n },\n\n /**\n * Aria label\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Aria label for close button\n */\n closeAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Emitted when popover is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n ],\n\n data () {\n return {\n showCloseButton: true,\n isOpen: false,\n };\n },\n\n computed: {\n modalListeners () {\n return {\n ...this.$listeners,\n\n click: event => {\n (event.target === event.currentTarget) && this.close();\n },\n\n keydown: event => {\n switch (event.code) {\n case EVENT_KEYNAMES.esc:\n case EVENT_KEYNAMES.escape:\n this.close();\n break;\n case EVENT_KEYNAMES.tab:\n this.trapFocus(event);\n break;\n }\n },\n };\n },\n },\n\n watch: {\n isOpen: {\n immediate: true,\n handler (isShowing) {\n if (isShowing) {\n // Set a reference to the previously-active element, to which we'll return focus on modal close.\n this.previousActiveElement = document.activeElement;\n } else {\n // Modal is being hidden, so return focus to the previously active element before clearing the reference.\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n }\n },\n },\n\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n methods: {\n openModal () {\n // Has custom control passed in\n if (this.open !== null) {\n return;\n }\n this.isOpen = true;\n this.showCloseButton = true;\n this.$emit('opened', true);\n\n setTimeout(() => {\n this.focusAfterOpen();\n });\n },\n\n close () {\n this.isOpen = false;\n this.$emit('opened', false);\n\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n focusAfterOpen () {\n this.$refs.closeImage?.$el.focus();\n },\n\n trapFocus (e) {\n if (this.isOpen) {\n this.focusTrappedTabPress(e);\n }\n },\n\n },\n};\n</script>\n"],"names":[],"mappings":";;;;;;AA0EA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA,CAAA,KAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,iBAAA;AACA,aAAA;AAAA,QACA,GAAA,KAAA;AAAA,QAEA,OAAA,WAAA;AACA,UAAA,MAAA,WAAA,MAAA,iBAAA,KAAA;QACA;AAAA,QAEA,SAAA,WAAA;AACA,kBAAA,MAAA,MAAA;AAAA,YACA,KAAA,eAAA;AAAA,YACA,KAAA,eAAA;AACA,mBAAA,MAAA;AACA;AAAA,YACA,KAAA,eAAA;AACA,mBAAA,UAAA,KAAA;AACA;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA,WAAA;;AACA,YAAA,WAAA;AAEA,eAAA,wBAAA,SAAA;AAAA,QACA,OAAA;AAEA,qBAAA,0BAAA,mBAAA;AACA,eAAA,wBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,MAAA;AAAA,MACA,SAAA,SAAA,MAAA;AACA,YAAA,SAAA,MAAA;AACA,eAAA,SAAA;AAAA,QACA;AAAA,MACA;AAAA,MAEA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,YAAA;AAEA,UAAA,KAAA,SAAA,MAAA;AACA;AAAA,MACA;AACA,WAAA,SAAA;AACA,WAAA,kBAAA;AACA,WAAA,MAAA,UAAA,IAAA;AAEA,iBAAA,MAAA;AACA,aAAA,eAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,IAEA,QAAA;AACA,WAAA,SAAA;AACA,WAAA,MAAA,UAAA,KAAA;AAEA,UAAA,KAAA,SAAA,MAAA;AACA,aAAA,MAAA,eAAA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,iBAAA;;AACA,iBAAA,MAAA,eAAA,mBAAA,IAAA;AAAA,IACA;AAAA,IAEA,UAAA,GAAA;AACA,UAAA,KAAA,QAAA;AACA,aAAA,qBAAA,CAAA;AAAA,MACA;AAAA,IACA;AAAA,EAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const
|
|
2
|
+
const vue2 = require("@dialpad/dialtone-icons/vue2");
|
|
3
3
|
const _pluginVue2_normalizer = require("../../_virtual/_plugin-vue2_normalizer.cjs");
|
|
4
|
-
const
|
|
4
|
+
const SHORTCUTS_ICON_ALIASES = {
|
|
5
|
+
"{win}": vue2.DtIconLayoutGrid,
|
|
6
|
+
"{arrow-right}": vue2.DtIconArrowRight,
|
|
7
|
+
"{arrow-left}": vue2.DtIconArrowLeft,
|
|
8
|
+
"{arrow-up}": vue2.DtIconArrowUp,
|
|
9
|
+
"{arrow-down}": vue2.DtIconArrowDown,
|
|
10
|
+
"{cmd}": vue2.DtIconCommand
|
|
11
|
+
};
|
|
5
12
|
const _sfc_main = {
|
|
6
13
|
name: "DtKeyboardShortcut",
|
|
7
14
|
components: {
|
|
8
|
-
|
|
15
|
+
DtIconLayoutGrid: vue2.DtIconLayoutGrid,
|
|
16
|
+
DtIconArrowRight: vue2.DtIconArrowRight,
|
|
17
|
+
DtIconArrowLeft: vue2.DtIconArrowLeft,
|
|
18
|
+
DtIconArrowUp: vue2.DtIconArrowUp,
|
|
19
|
+
DtIconArrowDown: vue2.DtIconArrowDown,
|
|
20
|
+
DtIconCommand: vue2.DtIconCommand,
|
|
21
|
+
DtIconPlus: vue2.DtIconPlus
|
|
9
22
|
},
|
|
10
23
|
props: {
|
|
11
24
|
/**
|
|
@@ -34,20 +47,22 @@ const _sfc_main = {
|
|
|
34
47
|
},
|
|
35
48
|
data() {
|
|
36
49
|
return {
|
|
37
|
-
SHORTCUTS_ICON_ALIASES: keyboard_shortcut_constants.SHORTCUTS_ICON_ALIASES,
|
|
38
50
|
separator: /\+/gi
|
|
39
51
|
};
|
|
40
52
|
},
|
|
41
53
|
computed: {
|
|
42
54
|
icons() {
|
|
43
|
-
return {
|
|
55
|
+
return {
|
|
56
|
+
...SHORTCUTS_ICON_ALIASES,
|
|
57
|
+
"{plus}": vue2.DtIconPlus
|
|
58
|
+
};
|
|
44
59
|
},
|
|
45
60
|
shortcutWithSeparator() {
|
|
46
61
|
return this.shortcut.replace(this.separator, "{plus}");
|
|
47
62
|
},
|
|
48
63
|
formattedShortcut() {
|
|
49
|
-
return Object.keys(
|
|
50
|
-
return result.replace(new RegExp("{" + key + "}", "gi"),
|
|
64
|
+
return Object.keys(SHORTCUTS_ICON_ALIASES).reduce((result, key) => {
|
|
65
|
+
return result.replace(new RegExp("{" + key + "}", "gi"), SHORTCUTS_ICON_ALIASES[key]);
|
|
51
66
|
}, this.shortcutWithSeparator);
|
|
52
67
|
},
|
|
53
68
|
// Splits any icon based aliases into their own array items.
|
|
@@ -64,10 +79,10 @@ var _sfc_render = function render() {
|
|
|
64
79
|
"d-keyboard-shortcut",
|
|
65
80
|
{ "d-keyboard-shortcut--inverted": _vm.inverted }
|
|
66
81
|
] }, [_vm.screenReaderText ? _c("span", { staticClass: "d-keyboard-shortcut--sr-only" }, [_vm._v(" " + _vm._s(_vm.screenReaderText) + " ")]) : _vm._e(), _vm._l(_vm.formattedShortcutSplit, function(item, i) {
|
|
67
|
-
return [_vm.icons[item] ? _c(
|
|
82
|
+
return [_vm.icons[item] ? _c(_vm.icons[item], { key: `${i}-${item}`, tag: "component", class: [
|
|
68
83
|
"d-keyboard-shortcut__icon",
|
|
69
84
|
{ "d-keyboard-shortcut__icon--inverted": _vm.inverted }
|
|
70
|
-
], attrs: { "
|
|
85
|
+
], attrs: { "size": "100", "aria-hidden": "true" } }) : _c("span", { key: `${i}-${item}`, class: [
|
|
71
86
|
"d-keyboard-shortcut__item",
|
|
72
87
|
{ "d-keyboard-shortcut__item--inverted": _vm.inverted }
|
|
73
88
|
], attrs: { "aria-hidden": "true" }, domProps: { "innerHTML": _vm._s(item) } })];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard_shortcut.vue.cjs","sources":["../../../components/keyboard_shortcut/keyboard_shortcut.vue"],"sourcesContent":["<!-- eslint-disable vue/no-v-html -->\n<template>\n <kbd\n :class=\"[\n 'd-keyboard-shortcut',\n { 'd-keyboard-shortcut--inverted': inverted },\n ]\"\n >\n <span\n v-if=\"screenReaderText\"\n class=\"d-keyboard-shortcut--sr-only\"\n >\n {{ screenReaderText }}\n </span>\n <template\n v-for=\"(item, i) in formattedShortcutSplit\"\n >\n <
|
|
1
|
+
{"version":3,"file":"keyboard_shortcut.vue.cjs","sources":["../../../components/keyboard_shortcut/keyboard_shortcut.vue"],"sourcesContent":["<!-- eslint-disable vue/no-v-html -->\n<template>\n <kbd\n :class=\"[\n 'd-keyboard-shortcut',\n { 'd-keyboard-shortcut--inverted': inverted },\n ]\"\n >\n <span\n v-if=\"screenReaderText\"\n class=\"d-keyboard-shortcut--sr-only\"\n >\n {{ screenReaderText }}\n </span>\n <template\n v-for=\"(item, i) in formattedShortcutSplit\"\n >\n <component\n v-if=\"icons[item]\"\n :key=\"`${i}-${item}`\"\n :is=\"icons[item]\"\n size=\"100\"\n aria-hidden=\"true\"\n :class=\"[\n 'd-keyboard-shortcut__icon',\n { 'd-keyboard-shortcut__icon--inverted': inverted },\n ]\"\n />\n <span\n v-else\n :key=\"`${i}-${item}`\"\n aria-hidden=\"true\"\n :class=\"[\n 'd-keyboard-shortcut__item',\n { 'd-keyboard-shortcut__item--inverted': inverted },\n ]\"\n v-html=\"item\"\n />\n </template>\n </kbd>\n</template>\n\n<script>\nimport {\n DtIconLayoutGrid,\n DtIconArrowRight,\n DtIconArrowLeft,\n DtIconArrowUp,\n DtIconArrowDown,\n DtIconCommand,\n DtIconPlus,\n} from '@dialpad/dialtone-icons/vue2';\n\nconst SHORTCUTS_ICON_ALIASES = {\n '{win}': DtIconLayoutGrid,\n '{arrow-right}': DtIconArrowRight,\n '{arrow-left}': DtIconArrowLeft,\n '{arrow-up}': DtIconArrowUp,\n '{arrow-down}': DtIconArrowDown,\n '{cmd}': DtIconCommand,\n};\n\n/**\n * This component displays a visual representation of a keyboard shortcut to the user.\n * @see https://dialtone.dialpad.com/components/keyboard_shortcut.html\n */\nexport default {\n name: 'DtKeyboardShortcut',\n\n components: {\n DtIconLayoutGrid,\n DtIconArrowRight,\n DtIconArrowLeft,\n DtIconArrowUp,\n DtIconArrowDown,\n DtIconCommand,\n DtIconPlus,\n },\n\n props: {\n /**\n * If true, applies inverted styles.\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Include any of these tokens in your string to render the corresponding symbol:\n * {cmd} {win} {arrow-right} {arrow-left} {arrow-up} {arrow-down}\n */\n shortcut: {\n type: String,\n required: true,\n },\n\n /**\n * Text entered here will be read by assistive technology. If null this component will be ignored by AT.\n */\n screenReaderText: {\n type: String,\n default: null,\n },\n },\n\n data () {\n return {\n separator: /\\+/gi,\n };\n },\n\n computed: {\n icons () {\n return {\n ...SHORTCUTS_ICON_ALIASES,\n '{plus}': DtIconPlus,\n };\n },\n\n shortcutWithSeparator () {\n return this.shortcut.replace(this.separator, '{plus}');\n },\n\n formattedShortcut () {\n return Object.keys(SHORTCUTS_ICON_ALIASES).reduce((result, key) => {\n return result.replace(new RegExp('{' + key + '}', 'gi'), SHORTCUTS_ICON_ALIASES[key]);\n }, this.shortcutWithSeparator);\n },\n\n // Splits any icon based aliases into their own array items.\n formattedShortcutSplit () {\n const iconAliasString = Object.keys(this.icons).join('|');\n\n /*\n The regexp splits a given string with icon alias and is filtered by empty strings after:\n if {win} is our delimiter AKA shortcut icon alias\n '{win} + D K + {win}' returned value will be [{win}, ' ', '{plus}', ' D K ', '{plus}', ' ', {win}]\n */\n const regex = new RegExp(`(${iconAliasString})`, 'gi');\n return this.formattedShortcut.split(regex).filter(Boolean);\n },\n },\n};\n</script>\n"],"names":["DtIconLayoutGrid","DtIconArrowRight","DtIconArrowLeft","DtIconArrowUp","DtIconArrowDown","DtIconCommand","DtIconPlus"],"mappings":";;;AAqDA,MAAA,yBAAA;AAAA,EACA,SAAAA,KAAA;AAAA,EACA,iBAAAC,KAAA;AAAA,EACA,gBAAAC,KAAA;AAAA,EACA,cAAAC,KAAA;AAAA,EACA,gBAAAC,KAAA;AAAA,EACA,SAAAC,KAAA;AACA;AAMA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,kBAAAL,KAAA;AAAA,IACA,kBAAAC,KAAA;AAAA,IACA,iBAAAC,KAAA;AAAA,IACA,eAAAC,KAAA;AAAA,IACA,iBAAAC,KAAA;AAAA,IACA,eAAAC,KAAA;AAAA,IACA,YAAAC,KAAA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAA;AAAA,QACA,GAAA;AAAA,QACA,UAAAA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,wBAAA;AACA,aAAA,KAAA,SAAA,QAAA,KAAA,WAAA,QAAA;AAAA,IACA;AAAA,IAEA,oBAAA;AACA,aAAA,OAAA,KAAA,sBAAA,EAAA,OAAA,CAAA,QAAA,QAAA;AACA,eAAA,OAAA,QAAA,IAAA,OAAA,MAAA,MAAA,KAAA,IAAA,GAAA,uBAAA,GAAA,CAAA;AAAA,MACA,GAAA,KAAA,qBAAA;AAAA,IACA;AAAA;AAAA,IAGA,yBAAA;AACA,YAAA,kBAAA,OAAA,KAAA,KAAA,KAAA,EAAA,KAAA,GAAA;AAOA,YAAA,QAAA,IAAA,OAAA,IAAA,eAAA,KAAA,IAAA;AACA,aAAA,KAAA,kBAAA,MAAA,KAAA,EAAA,OAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DtIconLayoutGrid, DtIconArrowRight, DtIconArrowLeft, DtIconArrowUp, DtIconArrowDown, DtIconCommand, DtIconPlus } from "@dialpad/dialtone-icons/vue2";
|
|
2
2
|
import normalizeComponent from "../../_virtual/_plugin-vue2_normalizer.js";
|
|
3
|
-
|
|
3
|
+
const SHORTCUTS_ICON_ALIASES = {
|
|
4
|
+
"{win}": DtIconLayoutGrid,
|
|
5
|
+
"{arrow-right}": DtIconArrowRight,
|
|
6
|
+
"{arrow-left}": DtIconArrowLeft,
|
|
7
|
+
"{arrow-up}": DtIconArrowUp,
|
|
8
|
+
"{arrow-down}": DtIconArrowDown,
|
|
9
|
+
"{cmd}": DtIconCommand
|
|
10
|
+
};
|
|
4
11
|
const _sfc_main = {
|
|
5
12
|
name: "DtKeyboardShortcut",
|
|
6
13
|
components: {
|
|
7
|
-
|
|
14
|
+
DtIconLayoutGrid,
|
|
15
|
+
DtIconArrowRight,
|
|
16
|
+
DtIconArrowLeft,
|
|
17
|
+
DtIconArrowUp,
|
|
18
|
+
DtIconArrowDown,
|
|
19
|
+
DtIconCommand,
|
|
20
|
+
DtIconPlus
|
|
8
21
|
},
|
|
9
22
|
props: {
|
|
10
23
|
/**
|
|
@@ -33,13 +46,15 @@ const _sfc_main = {
|
|
|
33
46
|
},
|
|
34
47
|
data() {
|
|
35
48
|
return {
|
|
36
|
-
SHORTCUTS_ICON_ALIASES,
|
|
37
49
|
separator: /\+/gi
|
|
38
50
|
};
|
|
39
51
|
},
|
|
40
52
|
computed: {
|
|
41
53
|
icons() {
|
|
42
|
-
return {
|
|
54
|
+
return {
|
|
55
|
+
...SHORTCUTS_ICON_ALIASES,
|
|
56
|
+
"{plus}": DtIconPlus
|
|
57
|
+
};
|
|
43
58
|
},
|
|
44
59
|
shortcutWithSeparator() {
|
|
45
60
|
return this.shortcut.replace(this.separator, "{plus}");
|
|
@@ -63,10 +78,10 @@ var _sfc_render = function render() {
|
|
|
63
78
|
"d-keyboard-shortcut",
|
|
64
79
|
{ "d-keyboard-shortcut--inverted": _vm.inverted }
|
|
65
80
|
] }, [_vm.screenReaderText ? _c("span", { staticClass: "d-keyboard-shortcut--sr-only" }, [_vm._v(" " + _vm._s(_vm.screenReaderText) + " ")]) : _vm._e(), _vm._l(_vm.formattedShortcutSplit, function(item, i) {
|
|
66
|
-
return [_vm.icons[item] ? _c(
|
|
81
|
+
return [_vm.icons[item] ? _c(_vm.icons[item], { key: `${i}-${item}`, tag: "component", class: [
|
|
67
82
|
"d-keyboard-shortcut__icon",
|
|
68
83
|
{ "d-keyboard-shortcut__icon--inverted": _vm.inverted }
|
|
69
|
-
], attrs: { "
|
|
84
|
+
], attrs: { "size": "100", "aria-hidden": "true" } }) : _c("span", { key: `${i}-${item}`, class: [
|
|
70
85
|
"d-keyboard-shortcut__item",
|
|
71
86
|
{ "d-keyboard-shortcut__item--inverted": _vm.inverted }
|
|
72
87
|
], attrs: { "aria-hidden": "true" }, domProps: { "innerHTML": _vm._s(item) } })];
|