@dialpad/dialtone-vue 2.159.0-beta.2 → 2.159.0
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/common/storybook_utils.cjs +8 -0
- package/dist/common/storybook_utils.cjs.map +1 -0
- package/dist/common/storybook_utils.js +8 -0
- package/dist/common/storybook_utils.js.map +1 -0
- package/dist/component-documentation.json +1 -1
- package/dist/components/avatar/avatar.vue.cjs +24 -13
- package/dist/components/avatar/avatar.vue.cjs.map +1 -1
- package/dist/components/avatar/avatar.vue.js +24 -13
- package/dist/components/avatar/avatar.vue.js.map +1 -1
- package/dist/components/badge/badge.vue.cjs +34 -13
- package/dist/components/badge/badge.vue.cjs.map +1 -1
- package/dist/components/badge/badge.vue.js +34 -13
- 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 +3 -4
- package/dist/components/collapsible/collapsible.vue.cjs.map +1 -1
- package/dist/components/collapsible/collapsible.vue.js +3 -4
- package/dist/components/collapsible/collapsible.vue.js.map +1 -1
- package/dist/components/datepicker/modules/month-year-picker.vue.cjs +6 -14
- package/dist/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
- package/dist/components/datepicker/modules/month-year-picker.vue.js +6 -14
- package/dist/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
- package/dist/components/emoji_picker/modules/emoji_search.vue.cjs +5 -6
- package/dist/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
- package/dist/components/emoji_picker/modules/emoji_search.vue.js +5 -6
- package/dist/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
- package/dist/components/emoji_picker/modules/emoji_tabset.vue.cjs +14 -23
- package/dist/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
- package/dist/components/emoji_picker/modules/emoji_tabset.vue.js +14 -23
- package/dist/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
- package/dist/components/empty_state/empty_state.vue.cjs +80 -20
- package/dist/components/empty_state/empty_state.vue.cjs.map +1 -1
- package/dist/components/empty_state/empty_state.vue.js +81 -21
- package/dist/components/empty_state/empty_state.vue.js.map +1 -1
- package/dist/components/empty_state/empty_state_constants.cjs +0 -18
- package/dist/components/empty_state/empty_state_constants.cjs.map +1 -1
- package/dist/components/empty_state/empty_state_constants.js +0 -18
- 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 +9 -24
- package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
- package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.js +7 -22
- package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
- package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +14 -8
- package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
- package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.js +15 -9
- 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 +8 -12
- package/dist/components/notice/notice_icon.vue.cjs.map +1 -1
- package/dist/components/notice/notice_icon.vue.js +8 -12
- package/dist/components/notice/notice_icon.vue.js.map +1 -1
- package/dist/components/pagination/pagination.vue.cjs +5 -11
- package/dist/components/pagination/pagination.vue.cjs.map +1 -1
- package/dist/components/pagination/pagination.vue.js +5 -11
- 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 +3 -0
- package/dist/dialtone-vue.cjs.map +1 -1
- package/dist/dialtone-vue.js +5 -2
- package/dist/lib/general-row.cjs +1 -0
- package/dist/lib/general-row.cjs.map +1 -1
- package/dist/lib/general-row.js +2 -1
- package/dist/lib/keyboard-shortcut.cjs +2 -0
- package/dist/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/lib/keyboard-shortcut.js +4 -2
- 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 +5 -25
- package/dist/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
- package/dist/recipes/cards/ivr_node/ivr_node.vue.js +6 -26
- 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 +19 -6
- 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 +19 -6
- 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 +4 -5
- 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 +4 -5
- 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 +22 -35
- package/dist/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
- package/dist/recipes/conversation_view/editor/editor.vue.js +22 -35
- 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 +6 -7
- 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 +6 -7
- 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 +17 -9
- 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 +17 -9
- 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 +5 -6
- 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 +5 -6
- 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 +11 -22
- 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 +11 -22
- 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 +10 -14
- 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 +10 -14
- package/dist/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
- package/dist/recipes/leftbar/callbox/callbox.vue.cjs +3 -6
- package/dist/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/callbox/callbox.vue.js +3 -6
- package/dist/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
- package/dist/recipes/leftbar/contact_row/contact_row.vue.cjs +5 -6
- package/dist/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/contact_row/contact_row.vue.js +5 -6
- package/dist/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row.vue.cjs +7 -8
- package/dist/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row.vue.js +7 -8
- package/dist/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row_constants.cjs +17 -0
- package/dist/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row_constants.js +17 -0
- 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 +4 -36
- 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 +5 -37
- 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 +3 -4
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.js +3 -4
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
- package/dist/style.css +132 -135
- package/dist/types/common/storybook_utils.d.ts +35 -0
- package/dist/types/common/storybook_utils.d.ts.map +1 -0
- package/dist/types/components/avatar/avatar.vue.d.ts +34 -4
- package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
- package/dist/types/components/badge/badge.vue.d.ts +45 -16
- 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 +67 -1
- package/dist/types/components/empty_state/empty_state_constants.d.ts +0 -27
- package/dist/types/components/keyboard_shortcut/index.d.ts +1 -1
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +15 -7
- 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 +11 -0
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
- package/dist/types/components/modal/modal.vue.d.ts +6 -4
- package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_action.vue.d.ts +4 -5
- 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 +1 -0
- 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 +16 -2
- 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 +6 -4
- 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 +16 -3
- 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 +1 -0
- 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 +6 -0
- 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 +3 -3
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { EMPTY_STATE_SIZE_MODIFIERS
|
|
1
|
+
import { EMPTY_STATE_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";
|
|
3
5
|
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";
|
|
4
8
|
const _sfc_main = {
|
|
5
9
|
name: "DtEmptyState",
|
|
6
10
|
components: {
|
|
11
|
+
DtIllustration,
|
|
12
|
+
DtIcon,
|
|
7
13
|
DtStack
|
|
8
14
|
},
|
|
9
15
|
props: {
|
|
@@ -16,6 +22,28 @@ const _sfc_main = {
|
|
|
16
22
|
default: "lg",
|
|
17
23
|
validator: (s) => Object.keys(EMPTY_STATE_SIZE_MODIFIERS).includes(s)
|
|
18
24
|
},
|
|
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
|
+
},
|
|
19
47
|
/**
|
|
20
48
|
* Header text
|
|
21
49
|
* @type {String}
|
|
@@ -31,31 +59,36 @@ const _sfc_main = {
|
|
|
31
59
|
bodyText: {
|
|
32
60
|
type: String,
|
|
33
61
|
default: null
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* Whether to show the illustration
|
|
65
|
+
* @type {Boolean}
|
|
66
|
+
*/
|
|
67
|
+
showIllustration: {
|
|
68
|
+
type: Boolean,
|
|
69
|
+
default: true
|
|
34
70
|
}
|
|
35
71
|
},
|
|
36
72
|
computed: {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
isSmallSize() {
|
|
44
|
-
return this.size === "sm";
|
|
73
|
+
/**
|
|
74
|
+
* Illustration will always be shown in lg and md size
|
|
75
|
+
* Illustration will not be shown in sm size
|
|
76
|
+
*/
|
|
77
|
+
showIllustrationComponent() {
|
|
78
|
+
return this.illustrationName && this.notSmSize;
|
|
45
79
|
},
|
|
46
80
|
/**
|
|
47
81
|
* Icon will be shown in lg and md size only if illustration is not provided
|
|
48
82
|
* Icon will always be shown in sm size
|
|
49
83
|
*/
|
|
50
84
|
showIcon() {
|
|
51
|
-
|
|
85
|
+
if (!this.iconName) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
return !(this.illustrationName && this.notSmSize);
|
|
52
89
|
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
* Illustration will not be shown in sm size
|
|
56
|
-
*/
|
|
57
|
-
showIllustration() {
|
|
58
|
-
return this.hasIllustration && !this.isSmallSize;
|
|
90
|
+
notSmSize() {
|
|
91
|
+
return this.size !== "sm";
|
|
59
92
|
},
|
|
60
93
|
sizeClass() {
|
|
61
94
|
return EMPTY_STATE_SIZE_MODIFIERS[this.size];
|
|
@@ -64,24 +97,51 @@ const _sfc_main = {
|
|
|
64
97
|
return ["d-empty-state", this.sizeClass];
|
|
65
98
|
},
|
|
66
99
|
contentClass() {
|
|
67
|
-
|
|
100
|
+
switch (this.size) {
|
|
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
|
+
}
|
|
68
110
|
},
|
|
69
111
|
headlineClass() {
|
|
70
|
-
|
|
112
|
+
switch (this.size) {
|
|
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
|
+
}
|
|
71
122
|
},
|
|
72
123
|
bodyClass() {
|
|
73
|
-
|
|
124
|
+
switch (this.size) {
|
|
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
|
+
}
|
|
74
134
|
}
|
|
75
135
|
},
|
|
76
136
|
mounted() {
|
|
77
137
|
if (!this.bodyText && !this.$slots.body) {
|
|
78
|
-
console.
|
|
138
|
+
console.warn("Dialtone Empty State component: You should provide either bodyText or content on body slot.");
|
|
79
139
|
}
|
|
80
140
|
}
|
|
81
141
|
};
|
|
82
142
|
var _sfc_render = function render() {
|
|
83
143
|
var _vm = this, _c = _vm._self._c;
|
|
84
|
-
return _c("dt-stack", { class: _vm.emptyStateClasses }, [_vm.showIllustration ? _c("span", { staticClass: "d-empty-
|
|
144
|
+
return _c("dt-stack", { class: _vm.emptyStateClasses }, [_vm.showIllustration ? [_vm.showIcon ? _c("span", { staticClass: "d-empty-state__icon" }, [_c("dt-icon", { attrs: { "name": _vm.iconName, "size": "800" } })], 1) : _vm._e(), _vm.showIllustrationComponent ? _c("span", { staticClass: "d-empty-state__illustration" }, [_c("dt-illustration", { attrs: { "name": _vm.illustrationName } })], 1) : _vm._e()] : _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);
|
|
85
145
|
};
|
|
86
146
|
var _sfc_staticRenderFns = [];
|
|
87
147
|
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 <span\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 <template v-if=\"showIllustration\">\n <span\n v-if=\"showIcon\"\n class=\"d-empty-state__icon\"\n >\n <dt-icon\n :name=\"iconName\"\n size=\"800\"\n />\n </span>\n\n <span\n v-if=\"showIllustrationComponent\"\n class=\"d-empty-state__illustration\"\n >\n <dt-illustration\n :name=\"illustrationName\"\n />\n </span>\n </template>\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 { EMPTY_STATE_SIZE_MODIFIERS } from './empty_state_constants.js';\nimport { DtIllustration, ILLUSTRATION_NAMES } from '@/components/illustration';\nimport { DtIcon, ICON_NAMES } from '@/components/icon';\nimport { DtStack } from '@/components/stack';\n\nexport default {\n name: 'DtEmptyState',\n\n components: {\n DtIllustration,\n DtIcon,\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 * The illustration name in kebab-case\n * This only displays when size is 'lg' or 'md'\n * This has priority over icon.\n * @type {String}\n */\n illustrationName: {\n type: String,\n default: null,\n validator: (name) => ILLUSTRATION_NAMES.includes(name),\n },\n\n /**\n * The icon name in kebab-case\n * This will be shown in 'lg' and 'md' size only if illustrationName prop is not provided and\n * Will always be shown in 'sm' size.\n * @type {String}\n */\n iconName: {\n type: String,\n default: null,\n validator: (name) => ICON_NAMES.includes(name),\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 * Whether to show the illustration\n * @type {Boolean}\n */\n showIllustration: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n /**\n * Illustration will always be shown in lg and md size\n * Illustration will not be shown in sm size\n */\n showIllustrationComponent () {\n return this.illustrationName && this.notSmSize;\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 if (!this.iconName) {\n return false;\n }\n\n return !(this.illustrationName && this.notSmSize);\n },\n\n notSmSize () {\n return this.size !== 'sm';\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 switch (this.size) {\n case 'sm':\n return 'd-empty-state__content--sm';\n case 'md':\n return 'd-empty-state__content--md';\n case 'lg':\n return 'd-empty-state__content--lg';\n default:\n return 'd-empty-state__content--lg';\n }\n },\n\n headlineClass () {\n switch (this.size) {\n case 'sm':\n return 'd-headline--md';\n case 'md':\n return 'd-headline--xl';\n case 'lg':\n return 'd-headline--xxl';\n default:\n return 'd-headline--xxl';\n }\n },\n\n bodyClass () {\n switch (this.size) {\n case 'sm':\n return 'd-body--sm';\n case 'md':\n return 'd-body--sm';\n case 'lg':\n return 'd-body--md';\n default:\n return 'd-body--md';\n }\n },\n },\n\n mounted () {\n if (!this.bodyText && !this.$slots.body) {\n console.warn('Dialtone Empty State component: You should provide either bodyText or content on body slot.');\n }\n },\n};\n</script>\n"],"names":[],"mappings":";;;;;;;AAmDA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,IACA;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;AAAA;AAAA,IAQA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,SAAA,mBAAA,SAAA,IAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,SAAA,WAAA,SAAA,IAAA;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;AAAA;AAAA;AAAA;AAAA,IAMA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,4BAAA;AACA,aAAA,KAAA,oBAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AACA,UAAA,CAAA,KAAA,UAAA;AACA,eAAA;AAAA,MACA;AAEA,aAAA,EAAA,KAAA,oBAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,KAAA,SAAA;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,cAAA,KAAA,MAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA;AACA,iBAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,gBAAA;AACA,cAAA,KAAA,MAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA;AACA,iBAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,cAAA,KAAA,MAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA;AACA,iBAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,QAAA,CAAA,KAAA,YAAA,CAAA,KAAA,OAAA,MAAA;AACA,cAAA,KAAA,6FAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;"}
|
|
@@ -5,23 +5,5 @@ 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;
|
|
26
8
|
exports.EMPTY_STATE_SIZE_MODIFIERS = EMPTY_STATE_SIZE_MODIFIERS;
|
|
27
9
|
//# 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
|
|
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;;"}
|
|
@@ -3,25 +3,7 @@ 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
|
-
};
|
|
21
6
|
export {
|
|
22
|
-
EMPTY_STATE_BODY_SIZE_MODIFIERS,
|
|
23
|
-
EMPTY_STATE_CONTENT_SIZE_MODIFIERS,
|
|
24
|
-
EMPTY_STATE_HEADLINE_SIZE_MODIFIERS,
|
|
25
7
|
EMPTY_STATE_SIZE_MODIFIERS
|
|
26
8
|
};
|
|
27
9
|
//# 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
|
|
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;"}
|
|
@@ -48,8 +48,8 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
|
48
48
|
null,
|
|
49
49
|
null
|
|
50
50
|
);
|
|
51
|
-
const
|
|
51
|
+
const DtIcon = __component__.exports;
|
|
52
52
|
export {
|
|
53
|
-
|
|
53
|
+
DtIcon 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 DtIllustration = __component__.exports;
|
|
37
|
+
module.exports = DtIllustration;
|
|
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 DtIllustration = __component__.exports;
|
|
36
36
|
export {
|
|
37
|
-
|
|
37
|
+
DtIllustration 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");
|
|
5
4
|
const vueSimplePortal = require("@linusborg/vue-simple-portal");
|
|
6
5
|
const _pluginVue2_normalizer = require("../../_virtual/_plugin-vue2_normalizer.cjs");
|
|
7
6
|
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
|
+
DtIcon: icon
|
|
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
|
|
180
|
-
}, proxy: true }], null, false,
|
|
179
|
+
return [_c("dt-icon", { staticClass: "d-image-viewer__close-button", attrs: { "name": "close", "size": "400" } })];
|
|
180
|
+
}, proxy: true }], null, false, 1620344283) }) : _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\n class=\"d-image-viewer__close-button\"\n name=\"close\"\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 { DtIcon } from '@/components/icon';\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 DtIcon,\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","DtIcon","Modal","EVENT_KEYNAMES"],"mappings":";;;;;;;AA2EA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,QAAAA,gBAAA;AAAA,IACA,UAAAC;AAAAA,IACA,QAAAC;AAAAA,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";
|
|
4
3
|
import { Portal } from "@linusborg/vue-simple-portal";
|
|
5
4
|
import normalizeComponent from "../../_virtual/_plugin-vue2_normalizer.js";
|
|
6
5
|
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
|
+
DtIcon
|
|
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
|
|
179
|
-
}, proxy: true }], null, false,
|
|
178
|
+
return [_c("dt-icon", { staticClass: "d-image-viewer__close-button", attrs: { "name": "close", "size": "400" } })];
|
|
179
|
+
}, proxy: true }], null, false, 1620344283) }) : _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\n class=\"d-image-viewer__close-button\"\n name=\"close\"\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 { DtIcon } from '@/components/icon';\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 DtIcon,\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":";;;;;;AA2EA,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,24 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const
|
|
2
|
+
const keyboard_shortcut_constants = require("./keyboard_shortcut_constants.cjs");
|
|
3
3
|
const _pluginVue2_normalizer = require("../../_virtual/_plugin-vue2_normalizer.cjs");
|
|
4
|
-
const
|
|
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
|
-
};
|
|
4
|
+
const icon = require("../icon/icon.vue.cjs");
|
|
12
5
|
const _sfc_main = {
|
|
13
6
|
name: "DtKeyboardShortcut",
|
|
14
7
|
components: {
|
|
15
|
-
|
|
16
|
-
DtIconArrowRight: vue2.DtIconArrowRight,
|
|
17
|
-
DtIconArrowLeft: vue2.DtIconArrowLeft,
|
|
18
|
-
DtIconArrowUp: vue2.DtIconArrowUp,
|
|
19
|
-
DtIconArrowDown: vue2.DtIconArrowDown,
|
|
20
|
-
DtIconCommand: vue2.DtIconCommand,
|
|
21
|
-
DtIconPlus: vue2.DtIconPlus
|
|
8
|
+
DtIcon: icon
|
|
22
9
|
},
|
|
23
10
|
props: {
|
|
24
11
|
/**
|
|
@@ -47,22 +34,20 @@ const _sfc_main = {
|
|
|
47
34
|
},
|
|
48
35
|
data() {
|
|
49
36
|
return {
|
|
37
|
+
SHORTCUTS_ICON_ALIASES: keyboard_shortcut_constants.SHORTCUTS_ICON_ALIASES,
|
|
50
38
|
separator: /\+/gi
|
|
51
39
|
};
|
|
52
40
|
},
|
|
53
41
|
computed: {
|
|
54
42
|
icons() {
|
|
55
|
-
return {
|
|
56
|
-
...SHORTCUTS_ICON_ALIASES,
|
|
57
|
-
"{plus}": vue2.DtIconPlus
|
|
58
|
-
};
|
|
43
|
+
return { ...keyboard_shortcut_constants.SHORTCUTS_ICON_ALIASES, ...keyboard_shortcut_constants.SHORTCUTS_ICON_SEPARATOR };
|
|
59
44
|
},
|
|
60
45
|
shortcutWithSeparator() {
|
|
61
46
|
return this.shortcut.replace(this.separator, "{plus}");
|
|
62
47
|
},
|
|
63
48
|
formattedShortcut() {
|
|
64
|
-
return Object.keys(SHORTCUTS_ICON_ALIASES).reduce((result, key) => {
|
|
65
|
-
return result.replace(new RegExp("{" + key + "}", "gi"), SHORTCUTS_ICON_ALIASES[key]);
|
|
49
|
+
return Object.keys(keyboard_shortcut_constants.SHORTCUTS_ICON_ALIASES).reduce((result, key) => {
|
|
50
|
+
return result.replace(new RegExp("{" + key + "}", "gi"), keyboard_shortcut_constants.SHORTCUTS_ICON_ALIASES[key]);
|
|
66
51
|
}, this.shortcutWithSeparator);
|
|
67
52
|
},
|
|
68
53
|
// Splits any icon based aliases into their own array items.
|
|
@@ -79,10 +64,10 @@ var _sfc_render = function render() {
|
|
|
79
64
|
"d-keyboard-shortcut",
|
|
80
65
|
{ "d-keyboard-shortcut--inverted": _vm.inverted }
|
|
81
66
|
] }, [_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) {
|
|
82
|
-
return [_vm.icons[item] ? _c(
|
|
67
|
+
return [_vm.icons[item] ? _c("dt-icon", { key: `${i}-${item}`, class: [
|
|
83
68
|
"d-keyboard-shortcut__icon",
|
|
84
69
|
{ "d-keyboard-shortcut__icon--inverted": _vm.inverted }
|
|
85
|
-
], attrs: { "size": "100", "aria-hidden": "true" } }) : _c("span", { key: `${i}-${item}`, class: [
|
|
70
|
+
], attrs: { "name": _vm.icons[item], "size": "100", "aria-hidden": "true" } }) : _c("span", { key: `${i}-${item}`, class: [
|
|
86
71
|
"d-keyboard-shortcut__item",
|
|
87
72
|
{ "d-keyboard-shortcut__item--inverted": _vm.inverted }
|
|
88
73
|
], 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 <dt-icon\n v-if=\"icons[item]\"\n :key=\"`${i}-${item}`\"\n :name=\"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 { DtIcon } from '@/components/icon';\nimport { SHORTCUTS_ICON_ALIASES, SHORTCUTS_ICON_SEPARATOR } from './keyboard_shortcut_constants';\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 DtIcon,\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 SHORTCUTS_ICON_ALIASES,\n separator: /\\+/gi,\n };\n },\n\n computed: {\n icons () {\n return { ...SHORTCUTS_ICON_ALIASES, ...SHORTCUTS_ICON_SEPARATOR };\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":["DtIcon","SHORTCUTS_ICON_ALIASES","SHORTCUTS_ICON_SEPARATOR"],"mappings":";;;;AAkDA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,QAAAA;AAAAA,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,wBAAAC,4BAAA;AAAA,MACA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAA,EAAA,GAAAA,4BAAAA,wBAAA,GAAAC,4BAAAA;IACA;AAAA,IAEA,wBAAA;AACA,aAAA,KAAA,SAAA,QAAA,KAAA,WAAA,QAAA;AAAA,IACA;AAAA,IAEA,oBAAA;AACA,aAAA,OAAA,KAAAD,4BAAA,sBAAA,EAAA,OAAA,CAAA,QAAA,QAAA;AACA,eAAA,OAAA,QAAA,IAAA,OAAA,MAAA,MAAA,KAAA,IAAA,GAAAA,mDAAA,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,23 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SHORTCUTS_ICON_ALIASES, SHORTCUTS_ICON_SEPARATOR } from "./keyboard_shortcut_constants.js";
|
|
2
2
|
import normalizeComponent from "../../_virtual/_plugin-vue2_normalizer.js";
|
|
3
|
-
|
|
4
|
-
"{win}": DtIconLayoutGrid,
|
|
5
|
-
"{arrow-right}": DtIconArrowRight,
|
|
6
|
-
"{arrow-left}": DtIconArrowLeft,
|
|
7
|
-
"{arrow-up}": DtIconArrowUp,
|
|
8
|
-
"{arrow-down}": DtIconArrowDown,
|
|
9
|
-
"{cmd}": DtIconCommand
|
|
10
|
-
};
|
|
3
|
+
import DtIcon from "../icon/icon.vue.js";
|
|
11
4
|
const _sfc_main = {
|
|
12
5
|
name: "DtKeyboardShortcut",
|
|
13
6
|
components: {
|
|
14
|
-
|
|
15
|
-
DtIconArrowRight,
|
|
16
|
-
DtIconArrowLeft,
|
|
17
|
-
DtIconArrowUp,
|
|
18
|
-
DtIconArrowDown,
|
|
19
|
-
DtIconCommand,
|
|
20
|
-
DtIconPlus
|
|
7
|
+
DtIcon
|
|
21
8
|
},
|
|
22
9
|
props: {
|
|
23
10
|
/**
|
|
@@ -46,15 +33,13 @@ const _sfc_main = {
|
|
|
46
33
|
},
|
|
47
34
|
data() {
|
|
48
35
|
return {
|
|
36
|
+
SHORTCUTS_ICON_ALIASES,
|
|
49
37
|
separator: /\+/gi
|
|
50
38
|
};
|
|
51
39
|
},
|
|
52
40
|
computed: {
|
|
53
41
|
icons() {
|
|
54
|
-
return {
|
|
55
|
-
...SHORTCUTS_ICON_ALIASES,
|
|
56
|
-
"{plus}": DtIconPlus
|
|
57
|
-
};
|
|
42
|
+
return { ...SHORTCUTS_ICON_ALIASES, ...SHORTCUTS_ICON_SEPARATOR };
|
|
58
43
|
},
|
|
59
44
|
shortcutWithSeparator() {
|
|
60
45
|
return this.shortcut.replace(this.separator, "{plus}");
|
|
@@ -78,10 +63,10 @@ var _sfc_render = function render() {
|
|
|
78
63
|
"d-keyboard-shortcut",
|
|
79
64
|
{ "d-keyboard-shortcut--inverted": _vm.inverted }
|
|
80
65
|
] }, [_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) {
|
|
81
|
-
return [_vm.icons[item] ? _c(
|
|
66
|
+
return [_vm.icons[item] ? _c("dt-icon", { key: `${i}-${item}`, class: [
|
|
82
67
|
"d-keyboard-shortcut__icon",
|
|
83
68
|
{ "d-keyboard-shortcut__icon--inverted": _vm.inverted }
|
|
84
|
-
], attrs: { "size": "100", "aria-hidden": "true" } }) : _c("span", { key: `${i}-${item}`, class: [
|
|
69
|
+
], attrs: { "name": _vm.icons[item], "size": "100", "aria-hidden": "true" } }) : _c("span", { key: `${i}-${item}`, class: [
|
|
85
70
|
"d-keyboard-shortcut__item",
|
|
86
71
|
{ "d-keyboard-shortcut__item--inverted": _vm.inverted }
|
|
87
72
|
], attrs: { "aria-hidden": "true" }, domProps: { "innerHTML": _vm._s(item) } })];
|