aloha-vue 2.74.0 → 2.75.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.
Files changed (166) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +22 -21
  3. package/dist/aloha-vue.css +13594 -13594
  4. package/dist/aloha-vue.css.map +1 -1
  5. package/dist/aloha-vue.es.js +59266 -64918
  6. package/dist/aloha-vue.umd.js +338 -211
  7. package/package.json +27 -34
  8. package/scss/components/ATable.scss +2 -2
  9. package/scss/utils/button.scss +362 -362
  10. package/scss/utils/funktions.scss +162 -162
  11. package/src/AAccordion/AAccordionItem/AAccordionItem.js +235 -230
  12. package/src/ACarousel/ACarousel.js +7 -2
  13. package/src/ADropdown/ADropdown.js +4 -1
  14. package/src/AFilters/AFilterCenter/AFilterCenter.js +5 -1
  15. package/src/AFilters/AFilterCenter/AFilterCenterItem/AFilterCenterItem.js +7 -2
  16. package/src/AFilters/AFiltersHorizontal/AFiltersHorizontal.js +412 -396
  17. package/src/AFilters/AFiltersHorizontal/AFiltersHorizontalFilter/AFiltersHorizontalFilter.js +102 -99
  18. package/src/AFilters/AFiltersHorizontal/compositionAPI/FiltersSavedDeleteAPI.js +108 -108
  19. package/src/AFilters/AFiltersMain/AFiltersMain.js +114 -111
  20. package/src/AFilters/AFiltersSaveModal/compositionAPI/SaveAPI.js +65 -65
  21. package/src/ALinkCopy/ALinkCopy.js +98 -95
  22. package/src/ALinkCopy/compositionAPI/CopyAPI.js +48 -48
  23. package/src/AList/__tests__/AList.test.js +33 -33
  24. package/src/AList/compositionAPI/__tests__/TagAPI.test.js +43 -43
  25. package/src/AMenu/AMenu.js +4 -1
  26. package/src/AMenu/AMenuBreadcrumbs/AMenuBreadcrumbs.js +240 -237
  27. package/src/AMenu/AMenuPanelLink/AMenuPanelLink.js +4 -1
  28. package/src/AMenu/AMenuSearchPanelBreadcrumbs/AMenuSearchPanelBreadcrumbs.js +122 -119
  29. package/src/AModalWizard/AModalWizard.js +58 -53
  30. package/src/AModalWizard/compositionAPI/__tests__/ScrollAPI.test.js +46 -46
  31. package/src/APagination/APaginationPages/APaginationPages.js +15 -4
  32. package/src/ARate/ARate.js +254 -249
  33. package/src/ARate/ARateIcon/ADecimalIcon/ADecimalIcon.js +53 -50
  34. package/src/ARate/ARateIcon/ARateIcon.js +109 -104
  35. package/src/AResizer/AResizer.js +167 -162
  36. package/src/ATable/ATableHeaderTh/compositionAPI/SortAPI.js +172 -167
  37. package/src/ATable/ATableHeaderThAction/ATableHeaderThAction.js +14 -4
  38. package/src/ATable/ATableHeaderThAction/ATableHeaderThActionItem/ATableHeaderThActionItem.js +191 -184
  39. package/src/ATable/ATablePreviewDown/ATablePreviewDown.js +72 -69
  40. package/src/ATable/ATablePreviewRight/ATablePreviewRight.js +265 -258
  41. package/src/ATable/ATableSortingAdditional/ATableSortingAdditional.js +224 -219
  42. package/src/ATable/ATableSortingAdditional/__tests__/ATableSortingAdditional.AttributesAPI.test.js +39 -39
  43. package/src/ATable/ATableSortingAdditional/__tests__/ATableSortingAdditional.ColumnsAPI.test.js +68 -68
  44. package/src/ATable/ATableSortingAdditional/__tests__/ATableSortingAdditional.DropdownAPI.test.js +45 -45
  45. package/src/ATable/ATableSortingAdditional/__tests__/ATableSortingAdditional.FormAPI.test.js +95 -95
  46. package/src/ATable/ATableSortingAdditional/__tests__/ATableSortingAdditional.ModelAPI.test.js +1 -1
  47. package/src/ATable/ATableTd/ATableTd.js +4 -1
  48. package/src/ATable/ATableTdAction/ATableTdAction.js +19 -12
  49. package/src/ATable/ATableTopPanel/ATableTopPanel.js +11 -3
  50. package/src/ATable/ATableTr/ATableTr.js +408 -405
  51. package/src/ATable/__tests__/ATable.HeaderSlot.test.js +102 -97
  52. package/src/ATable/__tests__/ATable.RowIdsAPI.test.js +66 -66
  53. package/src/ATableForm/ATableForm.js +88 -85
  54. package/src/ATableForm/ATableFormCellAction/ATableFormCellAction.js +14 -4
  55. package/src/ATableForm/ATableFormCellDnd/ATableFormCellDnd.js +196 -187
  56. package/src/ATableForm/ATableFormRow/compositionAPI/EditAPI.js +104 -104
  57. package/src/ATableForm/__tests__/ATableForm.DragAndDropAPI.test.js +200 -212
  58. package/src/ATableForm/__tests__/ATableForm.ListView.test.js +134 -174
  59. package/src/ATableForm/compositionAPI/IconsAPI.js +24 -21
  60. package/src/AVerticalScroll/AVerticalScroll.js +182 -177
  61. package/src/AWizard/AWizard.js +26 -21
  62. package/src/AWizard/AWizardStep/AWizardStep.js +275 -270
  63. package/src/AWizard/compositionAPI/__tests__/ChangeStepAPI.test.js +32 -32
  64. package/src/AWizard/compositionAPI/__tests__/LocalAPI.test.js +55 -55
  65. package/src/PuxDatepicker/PuxDatepickerCalendarPanel/PuxDatepickerCalendarPanel.js +646 -648
  66. package/src/PuxDatepicker/panel/PanelDate/PanelDate.js +300 -301
  67. package/src/PuxDatepicker/panel/PanelMonth/PanelMonth.js +148 -149
  68. package/src/PuxDatepicker/panel/PanelTime/PanelTime.js +256 -257
  69. package/src/PuxDatepicker/panel/PanelYear/PanelYear.js +136 -137
  70. package/src/PuxDatepicker/utils/index.js +100 -100
  71. package/src/compositionAPI/AHttpAPI.js +593 -593
  72. package/src/compositionAPI/__tests__/AHttpAPI.test.js +42 -42
  73. package/src/filters/__tests__/filterBoolean.test.js +38 -38
  74. package/src/filters/__tests__/filterCapitalize.test.js +38 -38
  75. package/src/filters/__tests__/filterCurrency.test.js +21 -21
  76. package/src/filters/__tests__/filterDate.test.js +42 -42
  77. package/src/filters/__tests__/filterDefaultForEmpty.test.js +24 -24
  78. package/src/filters/__tests__/filterEmail.test.js +42 -42
  79. package/src/filters/__tests__/filterEscapeHtml.test.js +45 -45
  80. package/src/filters/__tests__/filterFileSize.test.js +45 -45
  81. package/src/filters/__tests__/filterFloat.test.js +74 -74
  82. package/src/filters/__tests__/filterJson.test.js +74 -74
  83. package/src/filters/__tests__/filterKeyValue.test.js +50 -50
  84. package/src/filters/__tests__/filterLimitTo.test.js +39 -39
  85. package/src/filters/__tests__/filterLink.test.js +41 -41
  86. package/src/filters/__tests__/filterList.test.js +149 -149
  87. package/src/filters/__tests__/filterLowerCase.test.js +38 -38
  88. package/src/filters/__tests__/filterMask.test.js +80 -80
  89. package/src/filters/__tests__/filterPropertyByValue.test.js +27 -27
  90. package/src/filters/__tests__/filterSearchHighlight.test.js +129 -129
  91. package/src/filters/__tests__/filterUpperCase.test.js +38 -38
  92. package/src/filters/__tests__/filterValueByCondition.test.js +3 -3
  93. package/src/filters/filterJson.js +39 -39
  94. package/src/filters/filterValueByCondition.js +2 -2
  95. package/src/plugins/AAlertPlugin.js +16 -5
  96. package/src/plugins/AMultiselectOrderedPlugin.js +88 -81
  97. package/src/plugins/ASelectPlugin.js +12 -10
  98. package/src/ui/ACheckbox/ACheckbox.js +82 -79
  99. package/src/ui/ADatepicker/compositionAPI/EventsAPI.js +297 -297
  100. package/src/ui/ADatepicker/utils/index.js +76 -76
  101. package/src/ui/ADatepickerAlt/ADatepicker.js +912 -912
  102. package/src/ui/ADatepickerAlt/utils/index.js +98 -98
  103. package/src/ui/AFieldset/__tests__/AFieldset.ClassColumn.test.js +113 -114
  104. package/src/ui/AFormElementBtnClear/AFormElementBtnClear.js +4 -1
  105. package/src/ui/AInputCurrency/AInputCurrency.js +20 -15
  106. package/src/ui/AInputCurrency/__tests__/AInputCurrency.ModelAPI.test.js +73 -73
  107. package/src/ui/AInputNumber/AInputNumber.js +17 -12
  108. package/src/ui/AJson/AJson.js +12 -3
  109. package/src/ui/AJson/compositionAPI/JsonAPI.js +116 -116
  110. package/src/ui/ALabel/__tests__/ALabel.IdAPI.test.js +42 -42
  111. package/src/ui/ALabel/__tests__/ALabel.LabelAPI.test.js +33 -33
  112. package/src/ui/ARadio/ARadio.js +80 -77
  113. package/src/ui/ASelect/ASelect.js +390 -383
  114. package/src/ui/ASelect/ASelectElement/ASelectElement.js +179 -176
  115. package/src/ui/ASelect/ASelectValueCloseable/ASelectValueCloseable.js +143 -141
  116. package/src/ui/ASelect/__tests__/SelectedFirstAPI.test.js +101 -101
  117. package/src/ui/ASelect/__tests__/SelectedVisibleAPI.test.js +98 -98
  118. package/src/ui/ASlider/compositionAPI/SliderAPI.js +23 -23
  119. package/src/ui/AValidatedJson/AValidatedJson.js +4 -1
  120. package/src/ui/AValidatedJson/AValidatedJsonItem/AValidatedJsonItem.js +308 -298
  121. package/src/ui/compositionApi/UiCollapseAPI.js +68 -63
  122. package/src/ui/compositionApi/UiInputAutofillAPI.js +41 -41
  123. package/src/ui/compositionApi/__tests__/UIDataGroupAPI.test.js +106 -106
  124. package/src/ui/compositionApi/__tests__/UIExcludeRenderAttributesAPI.test.js +39 -39
  125. package/src/ui/compositionApi/__tests__/UiDataWithKeyIdAndLabelAPI.test.js +128 -128
  126. package/src/ui/compositionApi/__tests__/UiSearchAPI.test.js +71 -71
  127. package/src/utils/EventBus.js +51 -8
  128. package/src/utils/__tests__/EventBus.test.js +138 -0
  129. package/src/utils/__tests__/utils.aOrderBy.test.js +1 -1
  130. package/src/utils/__tests__/utils.aSortBy.test.js +1 -1
  131. package/src/utils/__tests__/utils.getTotalNestedCount.test.js +56 -56
  132. package/src/utils/__tests__/utils.isArrayOfArrays.test.js +44 -44
  133. package/src/utils/__tests__/utils.isArrayOfStrings.test.js +36 -36
  134. package/src/utils/__tests__/utilsArray.aFirst.test.js +1 -1
  135. package/src/utils/__tests__/utilsArray.aLast.test.js +1 -1
  136. package/src/utils/__tests__/utilsLang.isArguments.test.js +1 -1
  137. package/src/utils/__tests__/utilsLang.isArray.test.js +1 -1
  138. package/src/utils/__tests__/utilsLang.isArrayBuffer.test.js +1 -1
  139. package/src/utils/__tests__/utilsLang.isBoolean.test.js +1 -1
  140. package/src/utils/__tests__/utilsLang.isBuffer.test.js +1 -1
  141. package/src/utils/__tests__/utilsLang.isDate.test.js +1 -1
  142. package/src/utils/__tests__/utilsLang.isElement.test.js +5 -3
  143. package/src/utils/__tests__/utilsLang.isError.test.js +1 -1
  144. package/src/utils/__tests__/utilsLang.isFinite.test.js +1 -1
  145. package/src/utils/__tests__/utilsLang.isFunction.test.js +1 -1
  146. package/src/utils/__tests__/utilsLang.isInteger.test.js +1 -1
  147. package/src/utils/__tests__/utilsLang.isMap.test.js +1 -1
  148. package/src/utils/__tests__/utilsLang.isNaN.test.js +1 -1
  149. package/src/utils/__tests__/utilsLang.isNil.test.js +1 -1
  150. package/src/utils/__tests__/utilsLang.isNull.test.js +1 -1
  151. package/src/utils/__tests__/utilsLang.isNumber.test.js +1 -1
  152. package/src/utils/__tests__/utilsLang.isObject.test.js +1 -1
  153. package/src/utils/__tests__/utilsLang.isObjectLike.test.js +5 -3
  154. package/src/utils/__tests__/utilsLang.isPlainObject.test.js +3 -2
  155. package/src/utils/__tests__/utilsLang.isPromise.test.js +5 -2
  156. package/src/utils/__tests__/utilsLang.isRegExp.test.js +1 -1
  157. package/src/utils/__tests__/utilsLang.isSet.test.js +1 -1
  158. package/src/utils/__tests__/utilsLang.isString.test.js +1 -1
  159. package/src/utils/__tests__/utilsLang.isSymbol.test.js +5 -3
  160. package/src/utils/__tests__/utilsLang.isUndefined.test.js +1 -1
  161. package/src/utils/__tests__/utilsLang.isWeakMap.test.js +1 -1
  162. package/src/utils/__tests__/utilsLang.isWeakSet.test.js +1 -1
  163. package/src/utils/__tests__/utilsMath.isEven.test.js +43 -43
  164. package/src/utils/__tests__/utilsMath.isOdd.test.js +43 -43
  165. package/src/utils/__tests__/utilsUi.isModelForFilterNotEmpty.test.js +65 -65
  166. package/src/utils/autosize.js +1 -1
@@ -1,237 +1,240 @@
1
- import {
2
- h,
3
- inject,
4
- withDirectives,
5
- } from "vue";
6
-
7
- import AButton from "../../AButton/AButton";
8
- import ADropdown from "../../ADropdown/ADropdown";
9
- import ATranslation from "../../ATranslation/ATranslation";
10
-
11
- import EventsAPI from "./compositionAPI/EventsAPI";
12
- import ItemsAPI from "./compositionAPI/ItemsAPI";
13
- import RenderTruncatedAPI from "./compositionAPI/RenderTruncatedAPI";
14
-
15
- import AOnHooks from "../../directives/AOnHooks";
16
- import ThreeDots from "aloha-svg/dist/js/bootstrap/ThreeDots";
17
-
18
- export default {
19
- name: "AMenuBreadcrumbs",
20
- props: {
21
- breadcrumbsLinkClass: {
22
- type: [String, Object],
23
- required: false,
24
- default: undefined,
25
- },
26
- breadcrumbsTruncatedDropdownProps: {
27
- type: Object,
28
- required: false,
29
- default: () => ({}),
30
- },
31
- isBreadcrumbsTruncated: {
32
- type: Boolean,
33
- required: true,
34
- },
35
- isSearchActive: {
36
- type: Boolean,
37
- required: true,
38
- },
39
- isPanelMain: {
40
- type: Boolean,
41
- required: false,
42
- },
43
- dataKeyById: {
44
- type: Object,
45
- required: true,
46
- },
47
- panelParentsOpen: {
48
- type: Array,
49
- required: true,
50
- },
51
- },
52
- setup(props) {
53
- const breadcrumbsTruncatedOffset = inject("breadcrumbsTruncatedOffset");
54
-
55
- const {
56
- breadcrumbsItems,
57
- } = ItemsAPI(props);
58
-
59
- const {
60
- goBack,
61
- goBackKeydown,
62
- } = EventsAPI();
63
-
64
- const {
65
- breadcrumbsItemsDropdown,
66
- breadcrumbsItemsTruncated,
67
- isRenderedAll,
68
- renderItem,
69
- renderParent,
70
- } = RenderTruncatedAPI({
71
- breadcrumbsItems,
72
- breadcrumbsTruncatedOffset,
73
- });
74
-
75
- return {
76
- breadcrumbsItems,
77
- breadcrumbsItemsDropdown,
78
- breadcrumbsItemsTruncated,
79
- goBack,
80
- goBackKeydown,
81
- isRenderedAll,
82
- renderItem,
83
- renderParent,
84
- };
85
- },
86
- render() {
87
- if (this.isSearchActive || this.isPanelMain) {
88
- return null;
89
- }
90
-
91
- if (this.isBreadcrumbsTruncated) {
92
- return h(ATranslation, {
93
- ariaLabel: "_A_MENU_2_BREADCRUMB_",
94
- class: "a_menu__breadcrumb a_menu__breadcrumb_secondary",
95
- tag: "nav",
96
- }, () => [
97
- withDirectives(h("ul", {
98
- class: [
99
- "a_menu__breadcrumb__ul a_menu__breadcrumb__ul_truncated",
100
- ],
101
- }, [
102
- this.breadcrumbsItemsDropdown.length > 0 ?
103
- h("li", {
104
- class: "a_menu__breadcrumbs__item",
105
- }, [
106
- h(ADropdown, {
107
- buttonClass: "a_btn a_btn_secondary a_btn_small a_menu__breadcrumb__ul_truncated__btn",
108
- buttonIconLeft: ThreeDots,
109
- buttonTextScreenReader: "_A_MENU_2_BREADCRUMB_SHOW_BTN_",
110
- buttonTitle: "_A_MENU_2_BREADCRUMB_SHOW_BTN_",
111
- dropdownClass: "a_menu__breadcrumb__ul_truncated__dropdown",
112
- hasCaret: false,
113
- inBody: true,
114
- ...this.breadcrumbsTruncatedDropdownProps,
115
- }, {
116
- dropdown: () => [
117
- this.breadcrumbsItemsDropdown.map(breadcrumbsItem => {
118
- const ATTR = breadcrumbsItem.panelParentId ?
119
- {
120
- tag: "a",
121
- class: [
122
- "a_menu__breadcrumbs__link",
123
- this.breadcrumbsLinkClass,
124
- ],
125
- role: "button",
126
- tabindex: 0,
127
- onClick: () => this.goBack({ parentId: breadcrumbsItem.panelParentId }),
128
- onKeydown: $event => this.goBackKeydown({ $event, parentId: breadcrumbsItem.panelParentId }),
129
- } :
130
- {
131
- class: "a_menu__breadcrumbs__link",
132
- tag: "strong",
133
- };
134
- return h("li", {
135
- key: breadcrumbsItem.panelParentId,
136
- class: "a_menu__breadcrumbs__item",
137
- }, [
138
- h(AButton, {
139
- text: breadcrumbsItem.label,
140
- title: breadcrumbsItem.label,
141
- ...ATTR,
142
- }),
143
- h("span", {
144
- class: "a_menu__breadcrumbs__item__divider",
145
- }, "/"),
146
- ]);
147
- }),
148
- ],
149
- }),
150
- ]) :
151
- "",
152
- this.breadcrumbsItemsTruncated.map(breadcrumbsItem => {
153
- const ATTR = breadcrumbsItem.panelParentId ?
154
- {
155
- tag: "a",
156
- class: [
157
- "a_menu__breadcrumbs__link",
158
- this.breadcrumbsLinkClass,
159
- ],
160
- role: "button",
161
- tabindex: 0,
162
- onClick: () => this.goBack({ parentId: breadcrumbsItem.panelParentId }),
163
- onKeydown: $event => this.goBackKeydown({ $event, parentId: breadcrumbsItem.panelParentId }),
164
- } :
165
- {
166
- class: "a_menu__breadcrumbs__link",
167
- tag: "strong",
168
- };
169
- return withDirectives(h("li", {
170
- key: breadcrumbsItem.panelParentId,
171
- class: "a_menu__breadcrumbs__item",
172
- }, [
173
- !breadcrumbsItem.isFirst && h("span", {
174
- class: "a_menu__breadcrumbs__item__divider",
175
- }, "/"),
176
- h(AButton, {
177
- text: breadcrumbsItem.label,
178
- title: breadcrumbsItem.label,
179
- ...ATTR,
180
- }),
181
- ]), [
182
- [AOnHooks, { mounted: this.renderItem }],
183
- ]);
184
- }),
185
- ]), [
186
- [AOnHooks, { mounted: this.renderParent }],
187
- ]),
188
- ]);
189
- }
190
-
191
- if (!this.isBreadcrumbsTruncated) {
192
- return h(ATranslation, {
193
- ariaLabel: "_A_MENU_2_BREADCRUMB_",
194
- class: "a_menu__breadcrumb a_menu__breadcrumb_secondary",
195
- tag: "nav",
196
- }, () => [
197
- h("ul", {
198
- class: [
199
- "a_menu__breadcrumb__ul",
200
- ],
201
- }, [
202
- this.breadcrumbsItems.map(breadcrumbsItem => {
203
- const ATTR = breadcrumbsItem.panelParentId ?
204
- {
205
- tag: "a",
206
- class: [
207
- "a_menu__breadcrumbs__link",
208
- this.breadcrumbsLinkClass,
209
- ],
210
- role: "button",
211
- tabindex: 0,
212
- onClick: () => this.goBack({ parentId: breadcrumbsItem.panelParentId }),
213
- onKeydown: $event => this.goBackKeydown({ $event, parentId: breadcrumbsItem.panelParentId }),
214
- } :
215
- {
216
- class: "a_menu__breadcrumbs__link",
217
- tag: "strong",
218
- };
219
- return h("li", {
220
- key: breadcrumbsItem.panelParentId,
221
- class: "a_menu__breadcrumbs__item",
222
- }, [
223
- !breadcrumbsItem.isFirst && h("span", {
224
- class: "a_menu__breadcrumbs__item__divider",
225
- }, "/"),
226
- h(AButton, {
227
- text: breadcrumbsItem.label,
228
- title: breadcrumbsItem.label,
229
- ...ATTR,
230
- }),
231
- ]);
232
- }),
233
- ]),
234
- ]);
235
- }
236
- },
237
- };
1
+ import {
2
+ h,
3
+ inject,
4
+ withDirectives,
5
+ } from "vue";
6
+
7
+ import AButton from "../../AButton/AButton";
8
+ import ADropdown from "../../ADropdown/ADropdown";
9
+ import ATranslation from "../../ATranslation/ATranslation";
10
+
11
+ import EventsAPI from "./compositionAPI/EventsAPI";
12
+ import ItemsAPI from "./compositionAPI/ItemsAPI";
13
+ import RenderTruncatedAPI from "./compositionAPI/RenderTruncatedAPI";
14
+
15
+ import AOnHooks from "../../directives/AOnHooks";
16
+
17
+ const ThreeDots = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-three-dots" viewBox="0 0 16 16">
18
+ <path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3"/>
19
+ </svg>`;
20
+
21
+ export default {
22
+ name: "AMenuBreadcrumbs",
23
+ props: {
24
+ breadcrumbsLinkClass: {
25
+ type: [String, Object],
26
+ required: false,
27
+ default: undefined,
28
+ },
29
+ breadcrumbsTruncatedDropdownProps: {
30
+ type: Object,
31
+ required: false,
32
+ default: () => ({}),
33
+ },
34
+ isBreadcrumbsTruncated: {
35
+ type: Boolean,
36
+ required: true,
37
+ },
38
+ isSearchActive: {
39
+ type: Boolean,
40
+ required: true,
41
+ },
42
+ isPanelMain: {
43
+ type: Boolean,
44
+ required: false,
45
+ },
46
+ dataKeyById: {
47
+ type: Object,
48
+ required: true,
49
+ },
50
+ panelParentsOpen: {
51
+ type: Array,
52
+ required: true,
53
+ },
54
+ },
55
+ setup(props) {
56
+ const breadcrumbsTruncatedOffset = inject("breadcrumbsTruncatedOffset");
57
+
58
+ const {
59
+ breadcrumbsItems,
60
+ } = ItemsAPI(props);
61
+
62
+ const {
63
+ goBack,
64
+ goBackKeydown,
65
+ } = EventsAPI();
66
+
67
+ const {
68
+ breadcrumbsItemsDropdown,
69
+ breadcrumbsItemsTruncated,
70
+ isRenderedAll,
71
+ renderItem,
72
+ renderParent,
73
+ } = RenderTruncatedAPI({
74
+ breadcrumbsItems,
75
+ breadcrumbsTruncatedOffset,
76
+ });
77
+
78
+ return {
79
+ breadcrumbsItems,
80
+ breadcrumbsItemsDropdown,
81
+ breadcrumbsItemsTruncated,
82
+ goBack,
83
+ goBackKeydown,
84
+ isRenderedAll,
85
+ renderItem,
86
+ renderParent,
87
+ };
88
+ },
89
+ render() {
90
+ if (this.isSearchActive || this.isPanelMain) {
91
+ return null;
92
+ }
93
+
94
+ if (this.isBreadcrumbsTruncated) {
95
+ return h(ATranslation, {
96
+ ariaLabel: "_A_MENU_2_BREADCRUMB_",
97
+ class: "a_menu__breadcrumb a_menu__breadcrumb_secondary",
98
+ tag: "nav",
99
+ }, () => [
100
+ withDirectives(h("ul", {
101
+ class: [
102
+ "a_menu__breadcrumb__ul a_menu__breadcrumb__ul_truncated",
103
+ ],
104
+ }, [
105
+ this.breadcrumbsItemsDropdown.length > 0 ?
106
+ h("li", {
107
+ class: "a_menu__breadcrumbs__item",
108
+ }, [
109
+ h(ADropdown, {
110
+ buttonClass: "a_btn a_btn_secondary a_btn_small a_menu__breadcrumb__ul_truncated__btn",
111
+ buttonIconLeft: ThreeDots,
112
+ buttonTextScreenReader: "_A_MENU_2_BREADCRUMB_SHOW_BTN_",
113
+ buttonTitle: "_A_MENU_2_BREADCRUMB_SHOW_BTN_",
114
+ dropdownClass: "a_menu__breadcrumb__ul_truncated__dropdown",
115
+ hasCaret: false,
116
+ inBody: true,
117
+ ...this.breadcrumbsTruncatedDropdownProps,
118
+ }, {
119
+ dropdown: () => [
120
+ this.breadcrumbsItemsDropdown.map(breadcrumbsItem => {
121
+ const ATTR = breadcrumbsItem.panelParentId ?
122
+ {
123
+ tag: "a",
124
+ class: [
125
+ "a_menu__breadcrumbs__link",
126
+ this.breadcrumbsLinkClass,
127
+ ],
128
+ role: "button",
129
+ tabindex: 0,
130
+ onClick: () => this.goBack({ parentId: breadcrumbsItem.panelParentId }),
131
+ onKeydown: $event => this.goBackKeydown({ $event, parentId: breadcrumbsItem.panelParentId }),
132
+ } :
133
+ {
134
+ class: "a_menu__breadcrumbs__link",
135
+ tag: "strong",
136
+ };
137
+ return h("li", {
138
+ key: breadcrumbsItem.panelParentId,
139
+ class: "a_menu__breadcrumbs__item",
140
+ }, [
141
+ h(AButton, {
142
+ text: breadcrumbsItem.label,
143
+ title: breadcrumbsItem.label,
144
+ ...ATTR,
145
+ }),
146
+ h("span", {
147
+ class: "a_menu__breadcrumbs__item__divider",
148
+ }, "/"),
149
+ ]);
150
+ }),
151
+ ],
152
+ }),
153
+ ]) :
154
+ "",
155
+ this.breadcrumbsItemsTruncated.map(breadcrumbsItem => {
156
+ const ATTR = breadcrumbsItem.panelParentId ?
157
+ {
158
+ tag: "a",
159
+ class: [
160
+ "a_menu__breadcrumbs__link",
161
+ this.breadcrumbsLinkClass,
162
+ ],
163
+ role: "button",
164
+ tabindex: 0,
165
+ onClick: () => this.goBack({ parentId: breadcrumbsItem.panelParentId }),
166
+ onKeydown: $event => this.goBackKeydown({ $event, parentId: breadcrumbsItem.panelParentId }),
167
+ } :
168
+ {
169
+ class: "a_menu__breadcrumbs__link",
170
+ tag: "strong",
171
+ };
172
+ return withDirectives(h("li", {
173
+ key: breadcrumbsItem.panelParentId,
174
+ class: "a_menu__breadcrumbs__item",
175
+ }, [
176
+ !breadcrumbsItem.isFirst && h("span", {
177
+ class: "a_menu__breadcrumbs__item__divider",
178
+ }, "/"),
179
+ h(AButton, {
180
+ text: breadcrumbsItem.label,
181
+ title: breadcrumbsItem.label,
182
+ ...ATTR,
183
+ }),
184
+ ]), [
185
+ [AOnHooks, { mounted: this.renderItem }],
186
+ ]);
187
+ }),
188
+ ]), [
189
+ [AOnHooks, { mounted: this.renderParent }],
190
+ ]),
191
+ ]);
192
+ }
193
+
194
+ if (!this.isBreadcrumbsTruncated) {
195
+ return h(ATranslation, {
196
+ ariaLabel: "_A_MENU_2_BREADCRUMB_",
197
+ class: "a_menu__breadcrumb a_menu__breadcrumb_secondary",
198
+ tag: "nav",
199
+ }, () => [
200
+ h("ul", {
201
+ class: [
202
+ "a_menu__breadcrumb__ul",
203
+ ],
204
+ }, [
205
+ this.breadcrumbsItems.map(breadcrumbsItem => {
206
+ const ATTR = breadcrumbsItem.panelParentId ?
207
+ {
208
+ tag: "a",
209
+ class: [
210
+ "a_menu__breadcrumbs__link",
211
+ this.breadcrumbsLinkClass,
212
+ ],
213
+ role: "button",
214
+ tabindex: 0,
215
+ onClick: () => this.goBack({ parentId: breadcrumbsItem.panelParentId }),
216
+ onKeydown: $event => this.goBackKeydown({ $event, parentId: breadcrumbsItem.panelParentId }),
217
+ } :
218
+ {
219
+ class: "a_menu__breadcrumbs__link",
220
+ tag: "strong",
221
+ };
222
+ return h("li", {
223
+ key: breadcrumbsItem.panelParentId,
224
+ class: "a_menu__breadcrumbs__item",
225
+ }, [
226
+ !breadcrumbsItem.isFirst && h("span", {
227
+ class: "a_menu__breadcrumbs__item__divider",
228
+ }, "/"),
229
+ h(AButton, {
230
+ text: breadcrumbsItem.label,
231
+ title: breadcrumbsItem.label,
232
+ ...ATTR,
233
+ }),
234
+ ]);
235
+ }),
236
+ ]),
237
+ ]);
238
+ }
239
+ },
240
+ };
@@ -18,7 +18,10 @@ import SlotAPI from "./compositionAPI/SlotAPI";
18
18
  import TabindexAPI from "./compositionAPI/TabindexAPI";
19
19
  import TitleAPI from "./compositionAPI/TitleAPI";
20
20
 
21
- import ChevronRight from "aloha-svg/dist/js/bootstrap/ChevronRight";
21
+ const ChevronRight = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
22
+ <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
23
+ </svg>`;
24
+
22
25
 
23
26
  export default {
24
27
  name: "AMenuPanelLink",