@watermarkinsights/ripple 5.12.0-11 → 5.12.0-12
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/cjs/{chartFunctions-0436714f.js → chartFunctions-a1981e06.js} +1 -1
- package/dist/cjs/{functions-e24249e6.js → functions-4b187487.js} +1473 -159
- package/dist/cjs/{global-da3d372b.js → global-a84891eb.js} +1 -1
- package/dist/cjs/{intl-a70cf8c2.js → intl-7fd0760e.js} +104 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/priv-calendar.cjs.entry.js +1 -1
- package/dist/cjs/priv-chart-popover.cjs.entry.js +1 -1
- package/dist/cjs/priv-option-list.cjs.entry.js +11 -48
- package/dist/cjs/ripple.cjs.js +1 -1
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +1 -1
- package/dist/cjs/wm-button.cjs.entry.js +1 -1
- package/dist/cjs/wm-chart.cjs.entry.js +3 -3
- package/dist/cjs/wm-date-range.cjs.entry.js +14 -3
- package/dist/cjs/wm-datepicker.cjs.entry.js +1 -1
- package/dist/cjs/wm-file.cjs.entry.js +1 -1
- package/dist/cjs/wm-input.cjs.entry.js +2 -2
- package/dist/cjs/wm-line-chart.cjs.entry.js +7 -6
- package/dist/cjs/wm-modal-pss_3.cjs.entry.js +2 -2
- package/dist/cjs/wm-modal_3.cjs.entry.js +2 -2
- package/dist/cjs/wm-navigation_3.cjs.entry.js +2 -2
- package/dist/cjs/wm-navigator.cjs.entry.js +1 -1
- package/dist/cjs/wm-nested-select.cjs.entry.js +11 -50
- package/dist/cjs/wm-optgroup.cjs.entry.js +1 -1
- package/dist/cjs/wm-option_2.cjs.entry.js +5 -17
- package/dist/cjs/wm-pagination.cjs.entry.js +63 -11
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +2 -2
- package/dist/cjs/wm-search.cjs.entry.js +2 -2
- package/dist/cjs/wm-snackbar.cjs.entry.js +9 -4
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +7 -2
- package/dist/cjs/wm-tag-input.cjs.entry.js +24 -18
- package/dist/cjs/wm-tag-option.cjs.entry.js +1 -1
- package/dist/cjs/wm-textarea.cjs.entry.js +2 -2
- package/dist/cjs/wm-timepicker.cjs.entry.js +1 -1
- package/dist/cjs/wm-toggletip.cjs.entry.js +1 -1
- package/dist/cjs/wm-uploader.cjs.entry.js +2 -2
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +5 -4
- package/dist/collection/components/datepickers/wm-date-range.js +13 -2
- package/dist/collection/components/selects/priv-option-list/priv-option-list.js +11 -48
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +14 -53
- package/dist/collection/components/selects/wm-select/wm-select.js +8 -20
- package/dist/collection/components/wm-pagination/wm-pagination.js +63 -11
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +8 -3
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +7 -2
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +22 -16
- package/dist/collection/global/intl.js +102 -0
- package/dist/collection/lang/piglatin.js +9 -1
- package/dist/esm/{chartFunctions-7a2b7a90.js → chartFunctions-9099c7e9.js} +1 -1
- package/dist/esm/{functions-899cea51.js → functions-00e1916b.js} +1473 -159
- package/dist/esm/{global-c1827d25.js → global-20d1dc7b.js} +1 -1
- package/dist/esm/{intl-87b9b541.js → intl-a6f16883.js} +104 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/priv-calendar.entry.js +1 -1
- package/dist/esm/priv-chart-popover.entry.js +1 -1
- package/dist/esm/priv-option-list.entry.js +11 -48
- package/dist/esm/ripple.js +1 -1
- package/dist/esm/wm-action-menu_2.entry.js +1 -1
- package/dist/esm/wm-button.entry.js +1 -1
- package/dist/esm/wm-chart.entry.js +3 -3
- package/dist/esm/wm-date-range.entry.js +14 -3
- package/dist/esm/wm-datepicker.entry.js +1 -1
- package/dist/esm/wm-file.entry.js +1 -1
- package/dist/esm/wm-input.entry.js +2 -2
- package/dist/esm/wm-line-chart.entry.js +7 -6
- package/dist/esm/wm-modal-pss_3.entry.js +2 -2
- package/dist/esm/wm-modal_3.entry.js +2 -2
- package/dist/esm/wm-navigation_3.entry.js +2 -2
- package/dist/esm/wm-navigator.entry.js +1 -1
- package/dist/esm/wm-nested-select.entry.js +11 -50
- package/dist/esm/wm-optgroup.entry.js +1 -1
- package/dist/esm/wm-option_2.entry.js +5 -17
- package/dist/esm/wm-pagination.entry.js +63 -11
- package/dist/esm/wm-progress-indicator_3.entry.js +2 -2
- package/dist/esm/wm-search.entry.js +2 -2
- package/dist/esm/wm-snackbar.entry.js +9 -4
- package/dist/esm/wm-tab-item_3.entry.js +7 -2
- package/dist/esm/wm-tag-input.entry.js +24 -18
- package/dist/esm/wm-tag-option.entry.js +1 -1
- package/dist/esm/wm-textarea.entry.js +2 -2
- package/dist/esm/wm-timepicker.entry.js +1 -1
- package/dist/esm/wm-toggletip.entry.js +1 -1
- package/dist/esm/wm-uploader.entry.js +2 -2
- package/dist/esm-es5/{chartFunctions-7a2b7a90.js → chartFunctions-9099c7e9.js} +1 -1
- package/dist/esm-es5/functions-00e1916b.js +1 -0
- package/dist/esm-es5/{global-c1827d25.js → global-20d1dc7b.js} +1 -1
- package/dist/esm-es5/intl-a6f16883.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/priv-calendar.entry.js +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
- package/dist/esm-es5/priv-option-list.entry.js +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-date-range.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-line-chart.entry.js +1 -1
- package/dist/esm-es5/wm-modal-pss_3.entry.js +1 -1
- package/dist/esm-es5/wm-modal_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigator.entry.js +1 -1
- package/dist/esm-es5/wm-nested-select.entry.js +1 -1
- package/dist/esm-es5/wm-optgroup.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-tag-option.entry.js +1 -1
- package/dist/esm-es5/wm-textarea.entry.js +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js +1 -1
- package/dist/esm-es5/wm-uploader.entry.js +1 -1
- package/dist/ripple/{p-39436e07.system.entry.js → p-00e4af22.system.entry.js} +1 -1
- package/dist/ripple/p-05ae54d7.entry.js +1 -0
- package/dist/ripple/{p-92b3a061.system.js → p-06bf8746.system.js} +1 -1
- package/dist/ripple/{p-639011da.system.entry.js → p-0d89d63c.system.entry.js} +1 -1
- package/dist/ripple/p-118c47eb.system.entry.js +1 -0
- package/dist/ripple/{p-08c0a003.system.entry.js → p-1a4b7504.system.entry.js} +1 -1
- package/dist/ripple/{p-90f4a160.entry.js → p-1a951dfb.entry.js} +1 -1
- package/dist/ripple/{p-4392f369.system.entry.js → p-1c8f550f.system.entry.js} +1 -1
- package/dist/ripple/p-1f751b87.js +1 -0
- package/dist/ripple/p-1fac5bf9.js +1 -0
- package/dist/ripple/p-20a8f732.system.entry.js +1 -0
- package/dist/ripple/{p-dd566933.entry.js → p-249b56fb.entry.js} +1 -1
- package/dist/ripple/{p-56f88847.system.entry.js → p-249d13a1.system.entry.js} +1 -1
- package/dist/ripple/p-26906899.entry.js +1 -0
- package/dist/ripple/{p-49faa27e.system.entry.js → p-28119645.system.entry.js} +1 -1
- package/dist/ripple/{p-3703934b.system.js → p-2f37f3ee.system.js} +1 -1
- package/dist/ripple/{p-b22b8da5.system.entry.js → p-335c03d3.system.entry.js} +1 -1
- package/dist/ripple/{p-50ba37b9.entry.js → p-363b534b.entry.js} +1 -1
- package/dist/ripple/{p-17a72fc6.system.entry.js → p-39f79d71.system.entry.js} +1 -1
- package/dist/ripple/{p-dbca5668.system.entry.js → p-3a231f4b.system.entry.js} +1 -1
- package/dist/ripple/{p-66b8e9a0.entry.js → p-3d4bb85f.entry.js} +1 -1
- package/dist/ripple/{p-3ffd83ff.entry.js → p-4228de00.entry.js} +1 -1
- package/dist/ripple/{p-c850c123.system.entry.js → p-522ecb7d.system.entry.js} +1 -1
- package/dist/ripple/p-54d6f0f9.entry.js +1 -0
- package/dist/ripple/p-56aeee6e.system.entry.js +1 -0
- package/dist/ripple/p-5e6a4f70.system.js +1 -0
- package/dist/ripple/{p-6c7e754c.js → p-5f5fe905.js} +1 -1
- package/dist/ripple/{p-fa0dcbe4.entry.js → p-617c2c75.entry.js} +1 -1
- package/dist/ripple/{p-0b779f0c.system.entry.js → p-6524c53e.system.entry.js} +1 -1
- package/dist/ripple/{p-b7577799.entry.js → p-6834a6d3.entry.js} +1 -1
- package/dist/ripple/{p-ce219de1.system.entry.js → p-68fddfaa.system.entry.js} +1 -1
- package/dist/ripple/{p-c32d42ff.system.entry.js → p-694903e6.system.entry.js} +1 -1
- package/dist/ripple/{p-94cf5830.system.entry.js → p-7b6a65f8.system.entry.js} +1 -1
- package/dist/ripple/{p-f3b7781a.system.entry.js → p-7b7e1eb5.system.entry.js} +1 -1
- package/dist/ripple/{p-e9177cb5.entry.js → p-89810563.entry.js} +1 -1
- package/dist/ripple/{p-4b6ef736.system.js → p-8acdee87.system.js} +1 -1
- package/dist/ripple/{p-e27499cc.entry.js → p-8c1d27a7.entry.js} +1 -1
- package/dist/ripple/{p-f6ec10c6.entry.js → p-8e9c24f3.entry.js} +1 -1
- package/dist/ripple/{p-3f3dadc5.system.entry.js → p-8f836507.system.entry.js} +1 -1
- package/dist/ripple/p-9872623b.entry.js +1 -0
- package/dist/ripple/{p-9609af5c.system.entry.js → p-9ab3c088.system.entry.js} +1 -1
- package/dist/ripple/{p-98f95d71.entry.js → p-9aedd599.entry.js} +1 -1
- package/dist/ripple/{p-ab7a7407.entry.js → p-9b848151.entry.js} +1 -1
- package/dist/ripple/{p-8a555fea.system.entry.js → p-a78bb423.system.entry.js} +1 -1
- package/dist/ripple/{p-555091aa.system.entry.js → p-a880d9a0.system.entry.js} +1 -1
- package/dist/ripple/{p-1fcea04c.entry.js → p-b165d61a.entry.js} +1 -1
- package/dist/ripple/{p-e917500f.entry.js → p-b39377c7.entry.js} +1 -1
- package/dist/ripple/{p-9479898e.entry.js → p-b9bca547.entry.js} +1 -1
- package/dist/ripple/{p-688b090d.entry.js → p-bae2c236.entry.js} +1 -1
- package/dist/ripple/{p-5567f97d.system.entry.js → p-c53f3704.system.entry.js} +1 -1
- package/dist/ripple/p-c56ff16f.entry.js +1 -0
- package/dist/ripple/{p-00daed0d.system.entry.js → p-c8cf09a2.system.entry.js} +1 -1
- package/dist/ripple/{p-2d0b6f97.entry.js → p-cbdceb6e.entry.js} +1 -1
- package/dist/ripple/p-cc813406.system.js +1 -0
- package/dist/ripple/{p-930a43cd.system.entry.js → p-d20a0f0c.system.entry.js} +1 -1
- package/dist/ripple/{p-a7709012.entry.js → p-d6111226.entry.js} +1 -1
- package/dist/ripple/{p-a94b1ea9.entry.js → p-da68c87c.entry.js} +1 -1
- package/dist/ripple/{p-20cb733d.js → p-dba66df1.js} +1 -1
- package/dist/ripple/p-ddef82fa.system.entry.js +1 -0
- package/dist/ripple/{p-338f476b.entry.js → p-dee6d5a3.entry.js} +1 -1
- package/dist/ripple/p-e55d5371.entry.js +1 -0
- package/dist/ripple/{p-63faf802.system.entry.js → p-e8c22f01.system.entry.js} +1 -1
- package/dist/ripple/{p-d1da356b.entry.js → p-f555831b.entry.js} +1 -1
- package/dist/ripple/{p-08cae940.system.entry.js → p-f5c40e9e.system.entry.js} +1 -1
- package/dist/ripple/{p-15778b2d.entry.js → p-f9cade98.entry.js} +1 -1
- package/dist/ripple/{p-bda32fc9.system.entry.js → p-fa09191b.system.entry.js} +1 -1
- package/dist/ripple/{p-8fcd6f3e.system.entry.js → p-fdfca58b.entry.js} +1 -1
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +0 -6
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +6 -0
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +1 -0
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +1 -0
- package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +2 -1
- package/dist/types/global/intl.d.ts +22 -0
- package/package.json +2 -2
- package/dist/esm-es5/functions-899cea51.js +0 -1
- package/dist/esm-es5/intl-87b9b541.js +0 -1
- package/dist/ripple/p-1a6699ee.entry.js +0 -1
- package/dist/ripple/p-29bc2e29.entry.js +0 -1
- package/dist/ripple/p-466c31d7.entry.js +0 -1
- package/dist/ripple/p-47285fc5.system.entry.js +0 -1
- package/dist/ripple/p-529bf080.system.js +0 -1
- package/dist/ripple/p-69d44bc5.js +0 -1
- package/dist/ripple/p-7dc6ea5b.system.js +0 -1
- package/dist/ripple/p-98c0893f.system.entry.js +0 -1
- package/dist/ripple/p-b027e0e7.entry.js +0 -1
- package/dist/ripple/p-bfe5815c.system.entry.js +0 -1
- package/dist/ripple/p-c0deae46.entry.js +0 -1
- package/dist/ripple/p-f0645532.entry.js +0 -1
- package/dist/ripple/p-f594d6e1.entry.js +0 -1
- package/dist/ripple/p-f8192441.js +0 -1
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
|
-
import { debounce } from "../../global/functions";
|
|
2
|
+
import { debounce, intl } from "../../global/functions";
|
|
3
|
+
import { globalMessages } from "../../global/intl";
|
|
3
4
|
export class Pagination {
|
|
4
5
|
constructor() {
|
|
5
6
|
this.totalPages = 0;
|
|
7
|
+
this.navigationLabel = intl.formatMessage({
|
|
8
|
+
id: "pagination.navLabel",
|
|
9
|
+
defaultMessage: "Pagination navigation.",
|
|
10
|
+
description: "Label for a navigation HTML element within a pagination UI element",
|
|
11
|
+
});
|
|
12
|
+
this.nextPageButtonLabel = intl.formatMessage({
|
|
13
|
+
id: "pagination.nextPageButtonLabel",
|
|
14
|
+
defaultMessage: "Go to next page",
|
|
15
|
+
description: "Page refers to a paginated list of items",
|
|
16
|
+
});
|
|
17
|
+
this.previousPageButtonLabel = intl.formatMessage({
|
|
18
|
+
id: "pagination.previousPageButtonLabel",
|
|
19
|
+
defaultMessage: "Go to previous page",
|
|
20
|
+
description: "Page refers to a paginated list of items",
|
|
21
|
+
});
|
|
6
22
|
this.debouncedResize = debounce(() => (this.isLargeSize = this.el.clientWidth > 500), 100);
|
|
7
23
|
this.getMiddlePageNums = () => {
|
|
8
24
|
let coreBtns;
|
|
@@ -25,6 +41,33 @@ export class Pagination {
|
|
|
25
41
|
this.isLargeSize = window.innerWidth > 600;
|
|
26
42
|
this.srAnnouncement = "";
|
|
27
43
|
}
|
|
44
|
+
pageButtonLabel(pageNum) {
|
|
45
|
+
return intl.formatMessage({
|
|
46
|
+
id: "pagination.pageButtonLabel",
|
|
47
|
+
defaultMessage: `Go to page {pageNum}`,
|
|
48
|
+
description: "Page refers to a paginated list of items",
|
|
49
|
+
}, {
|
|
50
|
+
pageNum: pageNum,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
lastPageButtonLabel(totalPages) {
|
|
54
|
+
return intl.formatMessage({
|
|
55
|
+
id: "pagination.lastPageButtonLabel",
|
|
56
|
+
defaultMessage: `Go to last page, page {totalPages}`,
|
|
57
|
+
description: "Page refers to a paginated list of items",
|
|
58
|
+
}, {
|
|
59
|
+
totalPages: totalPages,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
currentPageAnnouncement(currentPage) {
|
|
63
|
+
return intl.formatMessage({
|
|
64
|
+
id: "pagination.currentPageAnnouncement",
|
|
65
|
+
defaultMessage: "Current page, {currentPage}.",
|
|
66
|
+
description: "Page refers to a paginated list of items",
|
|
67
|
+
}, {
|
|
68
|
+
currentPage: currentPage,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
28
71
|
maintainFocusOnNumberChange(el) {
|
|
29
72
|
window.requestAnimationFrame(() => {
|
|
30
73
|
switch (el) {
|
|
@@ -73,7 +116,7 @@ export class Pagination {
|
|
|
73
116
|
updatePageDisplayed(pageNum) {
|
|
74
117
|
this.value = pageNum;
|
|
75
118
|
this.wmPaginationPageClicked.emit();
|
|
76
|
-
this.srAnnouncement =
|
|
119
|
+
this.srAnnouncement = `${this.currentPageAnnouncement(this.currentPage)} ${this.getCurrentPagesInView()}`;
|
|
77
120
|
}
|
|
78
121
|
displayShortPagination() {
|
|
79
122
|
let pages = [];
|
|
@@ -97,7 +140,7 @@ export class Pagination {
|
|
|
97
140
|
this.currentPage = pageNum;
|
|
98
141
|
this.updatePageDisplayed(pageNum);
|
|
99
142
|
this.maintainFocusOnNumberChange("page");
|
|
100
|
-
}, value: pageNum, "aria-label": this.currentPage !== pageNum ?
|
|
143
|
+
}, value: pageNum, "aria-label": this.currentPage !== pageNum ? this.pageButtonLabel(pageNum) : "", "aria-current": this.currentPage === pageNum ? "page" : undefined }, pageNum));
|
|
101
144
|
}
|
|
102
145
|
displayEllipsis() {
|
|
103
146
|
return h("span", { class: "ellipsis" }, "...");
|
|
@@ -116,42 +159,51 @@ export class Pagination {
|
|
|
116
159
|
if (end > this.totalItems) {
|
|
117
160
|
end = this.totalItems;
|
|
118
161
|
}
|
|
119
|
-
return
|
|
162
|
+
return intl.formatMessage({
|
|
163
|
+
id: "pagination.pagesInView",
|
|
164
|
+
defaultMessage: "Viewing {atEnd, select, true {{itemStart}} other {{itemStart}-{itemEnd} of {totalItems}}}",
|
|
165
|
+
description: "Text indicating the range of items displayed in a list, and the total amount of items the list contains",
|
|
166
|
+
}, {
|
|
167
|
+
atEnd: begin === end,
|
|
168
|
+
itemStart: begin,
|
|
169
|
+
itemEnd: end,
|
|
170
|
+
totalItems: this.totalItems,
|
|
171
|
+
});
|
|
120
172
|
}
|
|
121
173
|
renderLarge() {
|
|
122
174
|
return (h("div", { class: "largescreen" }, h("div", { class: "pageview" }, this.getCurrentPagesInView()), h("div", { class: "pagebtncontainer" }, h("button", { id: "previous", class: "paginationbtn previousbtn", onClick: () => {
|
|
123
175
|
this.currentPage = this.currentPage - 1;
|
|
124
176
|
this.updatePageDisplayed(this.currentPage);
|
|
125
177
|
this.maintainFocusOnNumberChange("previous");
|
|
126
|
-
}, disabled: this.currentPage === 1, "aria-label":
|
|
178
|
+
}, disabled: this.currentPage === 1, "aria-label": this.previousPageButtonLabel, "aria-controls": "status" }, globalMessages.previous), this.totalPages < 6 ? this.displayShortPagination() : this.displayLongPagination(), h("button", { id: "next", class: "paginationbtn nextbtn", onClick: () => {
|
|
127
179
|
this.currentPage = this.currentPage + 1;
|
|
128
180
|
this.updatePageDisplayed(this.currentPage);
|
|
129
181
|
this.maintainFocusOnNumberChange("next");
|
|
130
|
-
}, disabled: this.currentPage === this.totalPages, "aria-label":
|
|
182
|
+
}, disabled: this.currentPage === this.totalPages, "aria-label": this.nextPageButtonLabel, "aria-controls": "status" }, globalMessages.next))));
|
|
131
183
|
}
|
|
132
184
|
renderSmall() {
|
|
133
185
|
return (h("div", { class: "smallscreen" }, h("div", { class: "pagebtncontainer" }, h("button", { id: "wm-1-arw", class: "paginationbtn", onClick: () => {
|
|
134
186
|
this.currentPage = 1;
|
|
135
187
|
this.updatePageDisplayed(1);
|
|
136
188
|
this.maintainFocusOnNumberChange("prev-arrow");
|
|
137
|
-
}, value: 1, "aria-current": this.currentPage === 1 ? "page" : undefined, "aria-label":
|
|
189
|
+
}, value: 1, "aria-current": this.currentPage === 1 ? "page" : undefined, "aria-label": this.pageButtonLabel(1), "aria-controls": "status", disabled: this.currentPage === 1 }, h("svg", { width: "16", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6zM15.41 10.59L10.83 6l4.58-4.59L14 0 8 6l6 6z" }))), h("button", { id: "previous-arw", class: "paginationbtn previousbtn", onClick: () => {
|
|
138
190
|
this.currentPage -= 1;
|
|
139
191
|
this.updatePageDisplayed(this.currentPage);
|
|
140
192
|
this.maintainFocusOnNumberChange("prev-arrow");
|
|
141
|
-
}, disabled: this.currentPage === 1, "aria-label":
|
|
193
|
+
}, disabled: this.currentPage === 1, "aria-label": this.previousPageButtonLabel }, h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6z" }))), "Page ", this.currentPage, " of ", this.totalPages, h("button", { id: "next-arw", class: "paginationbtn nextbtn", onClick: () => {
|
|
142
194
|
this.currentPage += 1;
|
|
143
195
|
this.updatePageDisplayed(this.currentPage);
|
|
144
196
|
this.maintainFocusOnNumberChange("next-arrow");
|
|
145
|
-
}, disabled: this.currentPage === this.totalPages, "aria-label":
|
|
197
|
+
}, disabled: this.currentPage === this.totalPages, "aria-label": this.nextPageButtonLabel }, h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6z" }))), h("button", { id: `wm-${this.totalPages}-arw`, class: "paginationbtn", onClick: () => {
|
|
146
198
|
this.currentPage = this.totalPages;
|
|
147
199
|
this.updatePageDisplayed(this.totalPages);
|
|
148
200
|
this.maintainFocusOnNumberChange("next-arrow");
|
|
149
|
-
}, value: this.totalPages, "aria-current": this.currentPage === this.totalPages ? "page" : undefined, "aria-label":
|
|
201
|
+
}, value: this.totalPages, "aria-current": this.currentPage === this.totalPages ? "page" : undefined, "aria-label": this.lastPageButtonLabel(this.totalPages), "aria-controls": "status", disabled: this.currentPage === this.totalPages }, h("svg", { width: "17", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6zM9.59 10.59L14.17 6 9.59 1.41 11 0l6 6-6 6z" }))))));
|
|
150
202
|
}
|
|
151
203
|
render() {
|
|
152
204
|
return (
|
|
153
205
|
// do not render the component if there's only one page
|
|
154
|
-
this.totalItems > this.itemsPerPage && (h("nav", { "aria-label":
|
|
206
|
+
this.totalItems > this.itemsPerPage && (h("nav", { "aria-label": `${this.navigationLabel} ${this.getCurrentPagesInView()}. ${this.currentPageAnnouncement(this.currentPage)}` }, this.isLargeSize ? this.renderLarge() : this.renderSmall(), h("div", { id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
|
|
155
207
|
}
|
|
156
208
|
static get is() { return "wm-pagination"; }
|
|
157
209
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
|
-
import { generateId, hideTooltip, showTooltip } from "../../global/functions";
|
|
2
|
+
import { generateId, hideTooltip, intl, showTooltip } from "../../global/functions";
|
|
3
3
|
import { globalMessages } from "../../global/intl";
|
|
4
4
|
export class Snackbar {
|
|
5
5
|
constructor() {
|
|
@@ -7,6 +7,11 @@ export class Snackbar {
|
|
|
7
7
|
this.uid = this.el.id ? this.el.id : generateId();
|
|
8
8
|
this.focusOnDismiss = null;
|
|
9
9
|
this.timers = {};
|
|
10
|
+
this.closeSnackMessage = intl.formatMessage({
|
|
11
|
+
id: "snackbar.closeNotification",
|
|
12
|
+
defaultMessage: "Close this notification",
|
|
13
|
+
description: "Notification refers to a notification UI element that can be dismissed",
|
|
14
|
+
});
|
|
10
15
|
this.notifications = "[]";
|
|
11
16
|
this.isTabbing = false;
|
|
12
17
|
this.announcement = "";
|
|
@@ -145,9 +150,9 @@ export class Snackbar {
|
|
|
145
150
|
this.announcement = message;
|
|
146
151
|
}
|
|
147
152
|
renderSnackbars() {
|
|
148
|
-
return this.parsedNotifications.map((notification) => (h("div", { class: "wm-snack-wrapper", key: `snack-${notification.id}` }, h("div", { id: `snack-${notification.id}`, class: "wm-snackbar active neutral" }, h("div", { class: "sr-only", tabindex: notification.link ? 0 : -1, onFocus: () => notification.link && this.snackDismissed(notification) }), h("div", { class: "content-wrapper" }, h("div", { class: "msg-wrapper" }, h("span", { class: "msg" }, notification.message), notification.link && (h("a", { id: `action-${notification.id}`, class: `link ${notification.newWindow ? "new-window" : ""}`, "aria-label":
|
|
153
|
+
return this.parsedNotifications.map((notification) => (h("div", { class: "wm-snack-wrapper", key: `snack-${notification.id}` }, h("div", { id: `snack-${notification.id}`, class: "wm-snackbar active neutral" }, h("div", { class: "sr-only", tabindex: notification.link ? 0 : -1, onFocus: () => notification.link && this.snackDismissed(notification) }), h("div", { class: "content-wrapper" }, h("div", { class: "msg-wrapper" }, h("span", { class: "msg" }, notification.message), notification.link && (h("a", { id: `action-${notification.id}`, class: `link ${notification.newWindow ? "new-window" : ""}`, "aria-label": `${notification.link}${notification.newWindow ? " " + globalMessages.newWindow : ""}`, tabindex: 0, onClick: () => {
|
|
149
154
|
this.snackLinkClicked(notification);
|
|
150
|
-
}, onKeyDown: (ev) => ev.key === "Enter" && this.snackLinkClicked(notification) }, h("span", { "aria-hidden": "true" }, notification.link), notification.newWindow && h("div", { class: "svg-icon svg-open-in-new" })))), h("button", { id: `close-button-${notification.id}`, "aria-label":
|
|
155
|
+
}, onKeyDown: (ev) => ev.key === "Enter" && this.snackLinkClicked(notification) }, h("span", { "aria-hidden": "true" }, notification.link), notification.newWindow && h("div", { class: "svg-icon svg-open-in-new" })))), h("button", { id: `close-button-${notification.id}`, "aria-label": this.closeSnackMessage, class: "closesnack", tabindex: notification.link ? 0 : -1, onClick: () => this.snackDismissed(notification), onMouseEnter: (ev) => showTooltip("bottom", ev.target, globalMessages.close), onMouseLeave: () => hideTooltip(), onFocus: (ev) => this.isTabbing && showTooltip("bottom", ev.target, globalMessages.close), onBlur: () => hideTooltip() }, h("div", { class: "svg-icon svg-close" }))), h("div", { class: "sr-only", tabindex: notification.link ? 0 : -1, onFocus: () => notification.link && this.snackDismissed(notification) })))));
|
|
151
156
|
}
|
|
152
157
|
render() {
|
|
153
158
|
return (h(Host, null, h("div", { ref: (el) => (this.snackAreaEl = el), class: {
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { forceUpdate, h, Host } from "@stencil/core";
|
|
2
|
-
import { debounce } from "../../../global/functions";
|
|
2
|
+
import { debounce, intl } from "../../../global/functions";
|
|
3
3
|
export class TabList {
|
|
4
4
|
constructor() {
|
|
5
|
+
this.selectLabel = intl.formatMessage({
|
|
6
|
+
id: "tab.selectLabel",
|
|
7
|
+
defaultMessage: "Choose a tab",
|
|
8
|
+
description: "Tab refers to a tab UI element",
|
|
9
|
+
});
|
|
5
10
|
this.debouncedSetLayout = debounce(() => {
|
|
6
11
|
if (!this.listWidth) {
|
|
7
12
|
this.setListWidth();
|
|
@@ -135,7 +140,7 @@ export class TabList {
|
|
|
135
140
|
renderMenuOrTabs() {
|
|
136
141
|
if (this.menuLayout) {
|
|
137
142
|
this.hideItems();
|
|
138
|
-
return (h("wm-select", { label:
|
|
143
|
+
return (h("wm-select", { label: this.selectLabel, "label-position": "none" }, this.renderOptions()));
|
|
139
144
|
}
|
|
140
145
|
else {
|
|
141
146
|
this.showItems();
|
|
@@ -6,25 +6,31 @@ export class TagInput {
|
|
|
6
6
|
this.addNewHelpText = intl.formatMessage({
|
|
7
7
|
id: "tagInput.addNewHelpText",
|
|
8
8
|
defaultMessage: "Press the Enter or Comma key to add a new tag.",
|
|
9
|
-
description: "
|
|
9
|
+
description: "Instructional text, where tag refers to a tag UI element that can be added to a list. Use imperative",
|
|
10
10
|
});
|
|
11
11
|
this.selectionHelpText = intl.formatMessage({
|
|
12
12
|
id: "tagInput.selectionHelpText",
|
|
13
13
|
defaultMessage: "Search and select a tag.",
|
|
14
|
-
description: "
|
|
14
|
+
description: "Instructional text, where tag refers to a tag UI element that can be added to a list. Use imperative",
|
|
15
15
|
});
|
|
16
16
|
this.maxTagsReachedMessage = intl.formatMessage({
|
|
17
17
|
id: "tagInput.maxTagsReached",
|
|
18
18
|
defaultMessage: "No more tags can be added because the limit has been reached.",
|
|
19
|
+
description: "Tag refers to a tag UI element that can be added to a list.",
|
|
19
20
|
});
|
|
20
21
|
this.tagAreaInstructions = intl.formatMessage({
|
|
21
22
|
id: "tagInput.tagAreaInstructions",
|
|
22
23
|
defaultMessage: "tag selection. Press Backspace or Delete to remove a tag.",
|
|
24
|
+
description: "Label for a UI element where a user can select from a list of tags.",
|
|
23
25
|
});
|
|
24
26
|
this.tagsAddedMessage = intl.formatMessage({
|
|
25
27
|
id: "tagInput.tagsAdded",
|
|
26
28
|
defaultMessage: "Tags added",
|
|
27
|
-
description: "Full message for context: 'Tags added: x/y",
|
|
29
|
+
description: "Tag refers to a tag UI element that can be added to a list. Full message for context: 'Tags added: x/y",
|
|
30
|
+
});
|
|
31
|
+
this.noResultsMessage = intl.formatMessage({
|
|
32
|
+
id: "tagInput.noResults",
|
|
33
|
+
defaultMessage: "No results match your search.",
|
|
28
34
|
});
|
|
29
35
|
this.openUp = false;
|
|
30
36
|
this.inModal = false;
|
|
@@ -51,6 +57,13 @@ export class TagInput {
|
|
|
51
57
|
this.focusedTagIndex = undefined;
|
|
52
58
|
this.tagsList = [];
|
|
53
59
|
}
|
|
60
|
+
addNewTagMessage(newTagName) {
|
|
61
|
+
return intl.formatMessage({
|
|
62
|
+
id: "tagInput.addNewTag",
|
|
63
|
+
defaultMessage: "Add {newTagName}",
|
|
64
|
+
description: "Button text to add a new tag to a list of tags",
|
|
65
|
+
}, { newTagName: newTagName });
|
|
66
|
+
}
|
|
54
67
|
toggleKeyingOn() {
|
|
55
68
|
this.isKeying = true;
|
|
56
69
|
}
|
|
@@ -142,13 +155,6 @@ export class TagInput {
|
|
|
142
155
|
get tagLimitReached() {
|
|
143
156
|
return !!(this.maxTags && this.taggedOptions.length >= this.maxTags);
|
|
144
157
|
}
|
|
145
|
-
get noResultsMessage() {
|
|
146
|
-
return intl.formatMessage({
|
|
147
|
-
id: "tagInput.noResults",
|
|
148
|
-
defaultMessage: "No results match your search.",
|
|
149
|
-
description: "Message displayed when a user's search returns empty.",
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
158
|
get inputMinimumWidth() {
|
|
153
159
|
if (this._tagEls) {
|
|
154
160
|
// 150px is the minimum width of the input field, or the length of the placeholder text
|
|
@@ -180,28 +186,28 @@ export class TagInput {
|
|
|
180
186
|
return intl.formatMessage({
|
|
181
187
|
id: "tagInput.tagAdded",
|
|
182
188
|
defaultMessage: "{tagName} added.",
|
|
183
|
-
description: "
|
|
189
|
+
description: "Confirmation for adding a tag UI element to a list of tags.",
|
|
184
190
|
}, { tagName: tag });
|
|
185
191
|
}
|
|
186
192
|
tagRemovedMessage(tag) {
|
|
187
193
|
return intl.formatMessage({
|
|
188
194
|
id: "tagInput.tagRemoved",
|
|
189
195
|
defaultMessage: "{tagName} removed.",
|
|
190
|
-
description: "
|
|
196
|
+
description: "Confirmation for removing a tag UI element from a list of tags.",
|
|
191
197
|
}, { tagName: tag });
|
|
192
198
|
}
|
|
193
199
|
tagAlreadyAddedMessage(tag) {
|
|
194
200
|
return intl.formatMessage({
|
|
195
201
|
id: "tagInput.tagAlreadyAdded",
|
|
196
202
|
defaultMessage: "{tagName} has already been added.",
|
|
197
|
-
description: "
|
|
203
|
+
description: "Alert for adding a tag UI element that is already included in the list.",
|
|
198
204
|
}, { tagName: tag });
|
|
199
205
|
}
|
|
200
206
|
tagLockedMessage(tag) {
|
|
201
207
|
return intl.formatMessage({
|
|
202
208
|
id: "tagInput.tagLocked",
|
|
203
209
|
defaultMessage: "{tagName} is locked and cannot be removed.",
|
|
204
|
-
description: "
|
|
210
|
+
description: "Alert indicating a tag UI element cannot be removed from its list.",
|
|
205
211
|
}, { tagName: tag });
|
|
206
212
|
}
|
|
207
213
|
isElOrChild(el) {
|
|
@@ -779,7 +785,7 @@ export class TagInput {
|
|
|
779
785
|
const optionAlreadyExists = this.isExistingTag(this.inputEl.value.trim());
|
|
780
786
|
return (this.addNew &&
|
|
781
787
|
hasNonWhiteSpaceCharacters &&
|
|
782
|
-
!optionAlreadyExists && (h("li", { ref: (el) => (this.addNewButton = el), id: "add-new-btn", class: "add-new-btn", onClick: () => this.addTags(inputValue) },
|
|
788
|
+
!optionAlreadyExists && (h("li", { ref: (el) => (this.addNewButton = el), id: "add-new-btn", class: "add-new-btn", onClick: () => this.addTags(inputValue) }, this.addNewTagMessage(inputValue))));
|
|
783
789
|
}
|
|
784
790
|
renderTable() {
|
|
785
791
|
return (h("div", { class: "table-wrapper", onScroll: () => this.dismissTooltip() }, h("table", { id: "table", role: "grid", class: `${this.colWidths ? "fixed-widths" : ""}`, "aria-label": this.label, "aria-multiselectable": "true" }, this.renderTableHeaders(), this.filteredOptionEls.length ? (this.filteredOptionEls.map((o) => this.renderTableRow(o))) : (h("div", { class: "no-results" }, this.noResultsMessage)))));
|
|
@@ -840,7 +846,7 @@ export class TagInput {
|
|
|
840
846
|
const classes = {
|
|
841
847
|
focused: !!this._focusedCell && cellId === this._focusedCell.id,
|
|
842
848
|
};
|
|
843
|
-
return (h("td", { id: cellId, class: classes, role: "gridcell", "aria-describedby": `${cellId}-description`, "aria-selected": o.selected ? "true" : "false", "aria-readonly": o.locked ? "true" : null, onMouseEnter: (ev) => this.handleCellMouseEnter(ev), onMouseLeave: () => hideTooltip() }, h("div", { class: `cell-content-wrapper ${overflowRule}` }, o.locked && idx == 0 && h("div", { class: "svg-icon svg-locked" }), val), h("div", { class: "description", id: `${cellId}-description` }, o.locked ?
|
|
849
|
+
return (h("td", { id: cellId, class: classes, role: "gridcell", "aria-describedby": `${cellId}-description`, "aria-selected": o.selected ? "true" : "false", "aria-readonly": o.locked ? "true" : null, onMouseEnter: (ev) => this.handleCellMouseEnter(ev), onMouseLeave: () => hideTooltip() }, h("div", { class: `cell-content-wrapper ${overflowRule}` }, o.locked && idx == 0 && h("div", { class: "svg-icon svg-locked" }), val), h("div", { class: "description", id: `${cellId}-description` }, o.locked ? globalMessages.locked : "")));
|
|
844
850
|
});
|
|
845
851
|
}
|
|
846
852
|
renderTableRow(o) {
|
|
@@ -19,6 +19,11 @@ export const globalMessages = {
|
|
|
19
19
|
defaultMessage: "Hide",
|
|
20
20
|
description: "For a button, to hide something",
|
|
21
21
|
}),
|
|
22
|
+
locked: intl.formatMessage({
|
|
23
|
+
id: "global.locked",
|
|
24
|
+
defaultMessage: "locked",
|
|
25
|
+
description: "For an interactive element, indicating its state cannot be changed",
|
|
26
|
+
}),
|
|
22
27
|
newWindow: intl.formatMessage({
|
|
23
28
|
id: "global.newWindowLink",
|
|
24
29
|
defaultMessage: "Opens in a new window.",
|
|
@@ -159,6 +164,11 @@ export const lineChartMessages = {
|
|
|
159
164
|
defaultMessage: "No Data",
|
|
160
165
|
description: "Message displayed when a data point has missing data",
|
|
161
166
|
}),
|
|
167
|
+
highlightQualifier: intl.formatMessage({
|
|
168
|
+
id: "linechart.highlightQualifier",
|
|
169
|
+
defaultMessage: "highlighted",
|
|
170
|
+
description: "Descriptor for highlighted areas of a chart",
|
|
171
|
+
}),
|
|
162
172
|
// -------------------------------------------------------------------------- //
|
|
163
173
|
// Functions //
|
|
164
174
|
// -------------------------------------------------------------------------- //
|
|
@@ -169,4 +179,96 @@ export const lineChartMessages = {
|
|
|
169
179
|
}, {
|
|
170
180
|
time: prevXValue,
|
|
171
181
|
}),
|
|
182
|
+
getToggleButtonLabel: (itemCount) => intl.formatMessage({
|
|
183
|
+
id: "linechart.toggleButtonLabel",
|
|
184
|
+
defaultMessage: "Toggle line visibility, list with {itemCount} items",
|
|
185
|
+
}, {
|
|
186
|
+
itemCount: itemCount,
|
|
187
|
+
}),
|
|
188
|
+
getToggleButtonState: (isPressed) => intl.formatMessage({
|
|
189
|
+
id: "linechart.toggleButtonState",
|
|
190
|
+
defaultMessage: "toggle {isPressed, select, true {pressed} other {}}",
|
|
191
|
+
description: "Descriptor and state for a toggle button UI element",
|
|
192
|
+
}, {
|
|
193
|
+
isPressed: isPressed,
|
|
194
|
+
}),
|
|
195
|
+
getLineFocusAnnouncement: (label, lineNumber, lineTotal, lineLength) => intl.formatMessage({
|
|
196
|
+
id: "linechart.getLineFocusAnnouncement",
|
|
197
|
+
defaultMessage: `{label}, line {lineNumber} of {lineTotal} with {lineLength} data points`,
|
|
198
|
+
}, {
|
|
199
|
+
label: label,
|
|
200
|
+
lineNumber: lineNumber,
|
|
201
|
+
lineTotal: lineTotal,
|
|
202
|
+
lineLength: lineLength,
|
|
203
|
+
}),
|
|
204
|
+
};
|
|
205
|
+
export const selectMessages = {
|
|
206
|
+
multiPlaceholder: intl.formatMessage({
|
|
207
|
+
id: "select.multiPlaceholder",
|
|
208
|
+
defaultMessage: "Make a selection",
|
|
209
|
+
}),
|
|
210
|
+
singlePlaceholder: intl.formatMessage({
|
|
211
|
+
id: "select.singlePlaceholder",
|
|
212
|
+
defaultMessage: "Select an Option",
|
|
213
|
+
}),
|
|
214
|
+
multiClearSelection: intl.formatMessage({
|
|
215
|
+
id: "select.multiClearSelection",
|
|
216
|
+
defaultMessage: "Clear all Selections",
|
|
217
|
+
description: "Clear as in remove. Use imperative",
|
|
218
|
+
}),
|
|
219
|
+
singleClearSelection: intl.formatMessage({
|
|
220
|
+
id: "select.singleClearSelection",
|
|
221
|
+
defaultMessage: "Clear Selection",
|
|
222
|
+
description: "Clear as in remove. Use imperative",
|
|
223
|
+
}),
|
|
224
|
+
selectionCleared: intl.formatMessage({
|
|
225
|
+
id: "select.selectionCleared",
|
|
226
|
+
defaultMessage: "Selection cleared",
|
|
227
|
+
}),
|
|
228
|
+
searchPlaceholder: intl.formatMessage({
|
|
229
|
+
id: "select.searchPlaceholder",
|
|
230
|
+
defaultMessage: "Search",
|
|
231
|
+
description: "Appears in a search field UI element",
|
|
232
|
+
}),
|
|
233
|
+
allSelected: intl.formatMessage({
|
|
234
|
+
id: "select.allSelected",
|
|
235
|
+
defaultMessage: "All selected",
|
|
236
|
+
description: "Indicates all possible options have been selected",
|
|
237
|
+
}),
|
|
238
|
+
selectAllMessage: intl.formatMessage({
|
|
239
|
+
id: "select.selectAll",
|
|
240
|
+
defaultMessage: "Select All",
|
|
241
|
+
}),
|
|
242
|
+
deselectAllMessage: intl.formatMessage({
|
|
243
|
+
id: "select.deselectAll",
|
|
244
|
+
defaultMessage: "Deselect All",
|
|
245
|
+
}),
|
|
246
|
+
allOptionsSelectedMessage: intl.formatMessage({
|
|
247
|
+
id: "select.allOptionsSelected",
|
|
248
|
+
defaultMessage: "All options selected",
|
|
249
|
+
}),
|
|
250
|
+
allOptionsDeselectedMessage: intl.formatMessage({
|
|
251
|
+
id: "select.allOptionsDeselected",
|
|
252
|
+
defaultMessage: "All options deselected",
|
|
253
|
+
}),
|
|
254
|
+
noSearchResults: intl.formatMessage({
|
|
255
|
+
id: "select.noSearchResults",
|
|
256
|
+
defaultMessage: "No results found. Please try your search again.",
|
|
257
|
+
}),
|
|
258
|
+
optgroupSingleSelectionCount: () => intl.formatMessage({
|
|
259
|
+
id: "select.optgroupSingleSelectionCount",
|
|
260
|
+
defaultMessage: "Item Selected",
|
|
261
|
+
description: "Item refers to an option in a list",
|
|
262
|
+
}),
|
|
263
|
+
// -------------------------------------------------------------------------- //
|
|
264
|
+
// Functions //
|
|
265
|
+
// -------------------------------------------------------------------------- //
|
|
266
|
+
getOptgroupMultipleSelectionCount: (selectionCount) => intl.formatMessage({
|
|
267
|
+
id: "select.optgroupMultipleSelectionCount",
|
|
268
|
+
defaultMessage: "{numberSelected} selected",
|
|
269
|
+
}, { numberSelected: selectionCount }),
|
|
270
|
+
getSearchResultsFound: (numResults) => intl.formatMessage({
|
|
271
|
+
id: "select.searchResultsFound",
|
|
272
|
+
defaultMessage: "{numberResults, plural, one {1 option found} other {# options found}}",
|
|
273
|
+
}, { numberResults: numResults }),
|
|
172
274
|
};
|
|
@@ -83,11 +83,19 @@ function pigLatinize(word) {
|
|
|
83
83
|
return specialKBefore + word + specialKAfter;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
function pigifyIgnoringTags(word) {
|
|
87
|
+
const tagPattern = /<\/?[^>]+>/g;
|
|
88
|
+
|
|
89
|
+
const strippedText = word.replace(tagPattern, "");
|
|
90
|
+
const pigifiedText = pigLatinize(strippedText);
|
|
91
|
+
return word.replace(strippedText, pigifiedText);
|
|
92
|
+
}
|
|
93
|
+
|
|
86
94
|
function translateSentence(string) {
|
|
87
95
|
let words = string.split(" ");
|
|
88
96
|
return words
|
|
89
97
|
.reduce((acc, word) => {
|
|
90
|
-
return acc + " " +
|
|
98
|
+
return acc + " " + pigifyIgnoringTags(word);
|
|
91
99
|
}, "")
|
|
92
100
|
.substring(1); // rm leading space
|
|
93
101
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h } from './index-558b5a82.js';
|
|
2
|
-
import { i as intl, c as checkForActiveElInShadow, e as safeMultiplyFloat, f as getPosition } from './functions-
|
|
2
|
+
import { i as intl, c as checkForActiveElInShadow, e as safeMultiplyFloat, f as getPosition } from './functions-00e1916b.js';
|
|
3
3
|
|
|
4
4
|
const colors = {
|
|
5
5
|
salmon: "#ff5f4e",
|