@ui5/webcomponents 0.31.18 → 0.31.22

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 (73) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/dist/Card.js +44 -19
  3. package/dist/Dialog.js +7 -7
  4. package/dist/Icon.js +11 -1
  5. package/dist/Input.js +9 -5
  6. package/dist/List.js +93 -20
  7. package/dist/Popover.js +1 -1
  8. package/dist/Popup.js +5 -5
  9. package/dist/api.json +1 -1
  10. package/dist/features/InputSuggestions.js +1 -3
  11. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  12. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  13. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  14. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  15. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  16. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  17. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  18. package/dist/generated/i18n/i18n-defaults.js +2 -2
  19. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +1 -1
  20. package/dist/generated/templates/CardTemplate.lit.js +1 -1
  21. package/dist/generated/templates/ListTemplate.lit.js +2 -2
  22. package/dist/generated/templates/TableTemplate.lit.js +1 -1
  23. package/dist/generated/themes/Badge.css.js +1 -1
  24. package/dist/generated/themes/Button.css.js +1 -1
  25. package/dist/generated/themes/Card.css.js +1 -1
  26. package/dist/generated/themes/CheckBox.css.js +1 -1
  27. package/dist/generated/themes/ComboBox.css.js +1 -1
  28. package/dist/generated/themes/DatePicker.css.js +1 -1
  29. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  30. package/dist/generated/themes/Input.css.js +1 -1
  31. package/dist/generated/themes/InvisibleTextStyles.css.js +1 -1
  32. package/dist/generated/themes/Label.css.js +1 -1
  33. package/dist/generated/themes/Link.css.js +1 -1
  34. package/dist/generated/themes/List.css.js +1 -1
  35. package/dist/generated/themes/ListItem.css.js +1 -1
  36. package/dist/generated/themes/MessageStrip.css.js +1 -1
  37. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  38. package/dist/generated/themes/Panel.css.js +1 -1
  39. package/dist/generated/themes/RadioButton.css.js +1 -1
  40. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  41. package/dist/generated/themes/Select.css.js +1 -1
  42. package/dist/generated/themes/SliderBase.css.js +1 -1
  43. package/dist/generated/themes/StepInput.css.js +1 -1
  44. package/dist/generated/themes/Switch.css.js +1 -1
  45. package/dist/generated/themes/TextArea.css.js +1 -1
  46. package/dist/generated/themes/Tokenizer.css.js +1 -1
  47. package/dist/generated/themes/Tree.css.js +1 -1
  48. package/dist/generated/themes/TreeListItem.css.js +1 -1
  49. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  50. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  51. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  52. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  53. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  54. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  55. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  56. package/dist/i18n/messagebundle.properties +9 -0
  57. package/dist/i18n/messagebundle_id.properties +218 -0
  58. package/package.json +7 -7
  59. package/src/BusyIndicator.hbs +1 -0
  60. package/src/Card.hbs +3 -5
  61. package/src/Card.js +44 -19
  62. package/src/Dialog.js +7 -7
  63. package/src/Icon.js +11 -1
  64. package/src/Input.js +9 -5
  65. package/src/List.hbs +3 -0
  66. package/src/List.js +93 -20
  67. package/src/Popover.js +1 -1
  68. package/src/Popup.js +5 -5
  69. package/src/Table.hbs +1 -0
  70. package/src/features/InputSuggestions.js +1 -3
  71. package/src/i18n/messagebundle.properties +9 -0
  72. package/src/i18n/messagebundle_id.properties +218 -0
  73. package/.port +0 -1
package/src/List.js CHANGED
@@ -6,7 +6,7 @@ import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
6
6
  import { getLastTabbableElement } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
7
7
  import { isTabNext, isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
8
8
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
9
- import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
9
+ import findNodeOwner from "@ui5/webcomponents-base/dist/util/findNodeOwner.js";
10
10
  import { fetchI18nBundle, getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
11
11
  import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
12
12
  import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
@@ -22,7 +22,11 @@ import ListTemplate from "./generated/templates/ListTemplate.lit.js";
22
22
  import listCss from "./generated/themes/List.css.js";
23
23
 
24
24
  // Texts
25
- import { LOAD_MORE_TEXT } from "./generated/i18n/i18n-defaults.js";
25
+ import {
26
+ LOAD_MORE_TEXT, ARIA_LABEL_LIST_SELECTABLE,
27
+ ARIA_LABEL_LIST_MULTISELECTABLE,
28
+ ARIA_LABEL_LIST_DELETABLE,
29
+ } from "./generated/i18n/i18n-defaults.js";
26
30
 
27
31
  const INFINITE_SCROLL_DEBOUNCE_RATE = 250; // ms
28
32
 
@@ -167,7 +171,7 @@ const metadata = {
167
171
  * @since 1.0.0-rc.13
168
172
  * @public
169
173
  */
170
- growing: {
174
+ growing: {
171
175
  type: ListGrowingMode,
172
176
  defaultValue: ListGrowingMode.None,
173
177
  },
@@ -185,12 +189,14 @@ const metadata = {
185
189
  },
186
190
 
187
191
  /**
192
+ * Sets the accessible aria name of the component.
193
+ *
188
194
  * @type {String}
189
195
  * @defaultvalue ""
190
- * @private
191
- * @since 1.0.0-rc.8
196
+ * @public
197
+ * @since 1.0.0-rc.15
192
198
  */
193
- ariaLabel: {
199
+ accessibleName: {
194
200
  type: String,
195
201
  },
196
202
 
@@ -199,10 +205,10 @@ const metadata = {
199
205
  *
200
206
  * @type {String}
201
207
  * @defaultvalue ""
202
- * @private
203
- * @since 1.0.0-rc.8
208
+ * @public
209
+ * @since 1.0.0-rc.15
204
210
  */
205
- ariaLabelledby: {
211
+ accessibleNameRef: {
206
212
  type: String,
207
213
  defaultValue: "",
208
214
  },
@@ -210,15 +216,13 @@ const metadata = {
210
216
  /**
211
217
  * Defines the accessible role of the component.
212
218
  * <br><br>
213
- * <b>Note:</b> If you use notification list items,
214
- * it's recommended to set <code>accessible-role="list"</code> for better accessibility.
215
219
  *
216
- * @private
220
+ * @public
217
221
  * @type {String}
218
222
  * @defaultvalue "list"
219
223
  * @since 1.0.0-rc.15
220
224
  */
221
- accessibleRole: {
225
+ accessibleRole: {
222
226
  type: String,
223
227
  defaultValue: "list",
224
228
  },
@@ -227,7 +231,7 @@ const metadata = {
227
231
  * Defines if the entire list is in view port.
228
232
  * @private
229
233
  */
230
- _inViewport: {
234
+ _inViewport: {
231
235
  type: Boolean,
232
236
  },
233
237
 
@@ -235,7 +239,7 @@ const metadata = {
235
239
  * Defines the active state of the <code>More</code> button.
236
240
  * @private
237
241
  */
238
- _loadMoreActive: {
242
+ _loadMoreActive: {
239
243
  type: Boolean,
240
244
  },
241
245
  },
@@ -459,6 +463,35 @@ class List extends UI5Element {
459
463
  }
460
464
  }
461
465
 
466
+ getEffectiveAriaLabelText(el) {
467
+ if (!el.accessibleNameRef) {
468
+ if (el.accessibleName) {
469
+ return el.accessibleName;
470
+ }
471
+
472
+ return undefined;
473
+ }
474
+
475
+ return this.getAriaLabelledByTexts(el);
476
+ };
477
+
478
+ getAriaLabelledByTexts(el, ownerDocument, readyIds = "") {
479
+ const ids = (readyIds && readyIds.split(" ")) || el.accessibleNameRef.split(" ");
480
+ const owner = ownerDocument || findNodeOwner(el);
481
+ let result = "";
482
+
483
+ ids.forEach((elementId, index) => {
484
+ const element = owner.querySelector(`[id='${elementId}']`);
485
+ result += `${element ? element.textContent : ""}`;
486
+
487
+ if (index < ids.length - 1) {
488
+ result += " ";
489
+ }
490
+ });
491
+
492
+ return result;
493
+ };
494
+
462
495
  get shouldRenderH1() {
463
496
  return !this.header.length && this.headerText;
464
497
  }
@@ -467,6 +500,10 @@ class List extends UI5Element {
467
500
  return `${this._id}-header`;
468
501
  }
469
502
 
503
+ get modeLabelID() {
504
+ return `${this._id}-modeLabel`;
505
+ }
506
+
470
507
  get listEndDOM() {
471
508
  return this.shadowRoot.querySelector(".ui5-list-end-marker");
472
509
  }
@@ -479,20 +516,56 @@ class List extends UI5Element {
479
516
  return !this.hasData && this.noDataText;
480
517
  }
481
518
 
519
+ get isDelete() {
520
+ return this.mode === ListMode.Delete;
521
+ }
522
+
523
+ get isSingleSelect() {
524
+ return [
525
+ ListMode.SingleSelect,
526
+ ListMode.SingleSelectBegin,
527
+ ListMode.SingleSelectEnd,
528
+ ListMode.SingleSelectAuto,
529
+ ].includes(this.mode);
530
+ }
531
+
482
532
  get isMultiSelect() {
483
533
  return this.mode === ListMode.MultiSelect;
484
534
  }
485
-
535
+
486
536
  get ariaLabelledBy() {
487
- if (this.ariaLabelledby || this.ariaLabel) {
537
+ if (this.accessibleNameRef || this.accessibleName) {
488
538
  return undefined;
489
539
  }
540
+ const ids = [];
490
541
 
491
- return this.shouldRenderH1 ? this.headerID : undefined;
492
- }
542
+ if (this.isMultiSelect || this.isSingleSelect || this.isDelete) {
543
+ ids.push(this.modeLabelID);
544
+ }
493
545
 
546
+ if (this.shouldRenderH1) {
547
+ ids.push(this.headerID);
548
+ }
549
+
550
+ return ids.length ? ids.join(" ") : undefined;
551
+ }
552
+
494
553
  get ariaLabelТxt() {
495
- return getEffectiveAriaLabelText(this);
554
+ return this.getEffectiveAriaLabelText(this);
555
+ }
556
+
557
+ get ariaLabelModeText() {
558
+ if (this.isMultiSelect) {
559
+ return this.i18nBundle.getText(ARIA_LABEL_LIST_MULTISELECTABLE);
560
+ }
561
+ if (this.isSingleSelect) {
562
+ return this.i18nBundle.getText(ARIA_LABEL_LIST_SELECTABLE);
563
+ }
564
+ if (this.isDelete) {
565
+ return this.i18nBundle.getText(ARIA_LABEL_LIST_DELETABLE);
566
+ }
567
+
568
+ return undefined;
496
569
  }
497
570
 
498
571
  get grows() {
package/src/Popover.js CHANGED
@@ -666,7 +666,7 @@ class Popover extends Popup {
666
666
  }
667
667
 
668
668
  get _ariaLabelledBy() { // Required by Popup.js
669
- return this.ariaLabel ? undefined : "ui5-popup-header";
669
+ return this.accessibleName ? undefined : "ui5-popup-header";
670
670
  }
671
671
 
672
672
  get _ariaModal() { // Required by Popup.js
package/src/Popup.js CHANGED
@@ -67,14 +67,14 @@ const metadata = {
67
67
  },
68
68
 
69
69
  /**
70
- * Defines the aria-label attribute for the popup
70
+ * Sets the accessible aria name of the component.
71
71
  *
72
72
  * @type {String}
73
73
  * @defaultvalue ""
74
- * @private
75
- * @since 1.0.0-rc.8
74
+ * @public
75
+ * @since 1.0.0-rc.15
76
76
  */
77
- ariaLabel: {
77
+ accessibleName: {
78
78
  type: String,
79
79
  defaultValue: undefined,
80
80
  },
@@ -535,7 +535,7 @@ class Popup extends UI5Element {
535
535
  * @protected
536
536
  */
537
537
  get _ariaLabel() {
538
- return this.ariaLabel || undefined;
538
+ return this.accessibleName || undefined;
539
539
  }
540
540
 
541
541
  get _root() {
package/src/Table.hbs CHANGED
@@ -81,6 +81,7 @@
81
81
  style="{{styles.busy}}"
82
82
  active
83
83
  size="Medium"
84
+ data-sap-focus-ref
84
85
  ></ui5-busyindicator>
85
86
  </div>
86
87
  {{/inline}}
@@ -130,9 +130,7 @@ class Suggestions {
130
130
  this.responsivePopover = await this._respPopover();
131
131
  this._beforeOpen();
132
132
 
133
- if (this._getItems().length) {
134
- this.responsivePopover.open(this._getComponent());
135
- }
133
+ this.responsivePopover.open(this._getComponent());
136
134
  }
137
135
 
138
136
  async close(preventFocusRestore = false) {
@@ -103,6 +103,15 @@ ARIA_LABEL_LIST_ITEM_CHECKBOX = Multiple Selection mode.
103
103
  #XBUT: List Single Selection Mode RadioButton aria-label text
104
104
  ARIA_LABEL_LIST_ITEM_RADIO_BUTTON=Item Selection.
105
105
 
106
+ #XACT: ARIA announcement for the list which allows single selections
107
+ ARIA_LABEL_LIST_SELECTABLE=Contains Selectable Items
108
+
109
+ #XACT: ARIA announcement for the list which allows multiple selections
110
+ ARIA_LABEL_LIST_MULTISELECTABLE=Contains Multi-Selectable Items
111
+
112
+ #XACT: ARIA announcement for the list which has deletable items
113
+ ARIA_LABEL_LIST_DELETABLE=Contains Deletable Items
114
+
106
115
  #XTOL: Tooltip of messgae strip close button
107
116
  MESSAGE_STRIP_CLOSE_BUTTON=Message Strip Close
108
117
 
@@ -0,0 +1,218 @@
1
+
2
+ ARIA_LABEL_CARD_CONTENT=Konten Kartu
3
+
4
+ ARIA_ROLEDESCRIPTION_CARD=Kartu
5
+
6
+ ARIA_ROLEDESCRIPTION_CARD_HEADER=Header Kartu
7
+
8
+ ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER=Header Kartu Interaktif
9
+
10
+ AVATAR_TOOLTIP=Avatar
11
+
12
+ AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL={0} ditampilkan, {1} disembunyikan.
13
+
14
+ AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL=Aktifkan untuk daftar lengkap.
15
+
16
+ AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL=Avatar individu.
17
+
18
+ AVATAR_GROUP_ARIA_LABEL_GROUP=Avatar tergabung.
19
+
20
+ AVATAR_GROUP_MOVE=Tekan tombol PANAH untuk berpindah.
21
+
22
+ BADGE_DESCRIPTION=Lencana
23
+
24
+ BREADCRUMBS_ARIA_LABEL=Jejak Breadcrumb
25
+
26
+ BREADCRUMBS_OVERFLOW_ARIA_LABEL=Lebih Banyak
27
+
28
+ BREADCRUMBS_CANCEL_BUTTON=Batalkan
29
+
30
+ BUSY_INDICATOR_TITLE=Mohon tunggu
31
+
32
+ BUTTON_ARIA_TYPE_ACCEPT=Tindakan Positif
33
+
34
+ BUTTON_ARIA_TYPE_REJECT=Tindakan Negatif
35
+
36
+ BUTTON_ARIA_TYPE_EMPHASIZED=Ditekankan
37
+
38
+ CAROUSEL_OF_TEXT=dari
39
+
40
+ CAROUSEL_DOT_TEXT=Item {0} dari {1} ditampilkan
41
+
42
+ CAROUSEL_PREVIOUS_ARROW_TEXT=Halaman Sebelumnya
43
+
44
+ CAROUSEL_NEXT_ARROW_TEXT=Halaman Selanjutnya
45
+
46
+ COLORPALETTE_CONTAINER_LABEL=Palet Warna - Warna yang Ditentukan Sebelumnya
47
+
48
+ COLORPALETTE_POPOVER_TITLE=Palet Warna
49
+
50
+ COLORPALETTE_COLOR_LABEL=Warna
51
+
52
+ COLOR_PALETTE_DIALOG_CANCEL_BUTTON=Batalkan
53
+
54
+ COLOR_PALETTE_DIALOG_OK_BUTTON=OKE
55
+
56
+ COLOR_PALETTE_DIALOG_TITLE=Ubah Warna
57
+
58
+ COLOR_PALETTE_MORE_COLORS_TEXT=Lebih Banyak Warna...
59
+
60
+ DATEPICKER_OPEN_ICON_TITLE=Buka Pemilih
61
+
62
+ DATEPICKER_DATE_DESCRIPTION=Input Tanggal
63
+
64
+ DATETIME_DESCRIPTION=Input Tanggal Waktu
65
+
66
+ DATERANGE_DESCRIPTION=Input Rentang Tanggal
67
+
68
+ DELETE=Hapus
69
+
70
+ FILEUPLOAD_BROWSE=Telusuri...
71
+
72
+ FILEUPLOADER_TITLE=Unggah File
73
+
74
+ GROUP_HEADER_TEXT=Header Grup
75
+
76
+ SELECT_OPTIONS=Pilih Opsi
77
+
78
+ INPUT_SUGGESTIONS=Saran yang Tersedia
79
+
80
+ INPUT_SUGGESTIONS_TITLE=Pilih
81
+
82
+ INPUT_SUGGESTIONS_ONE_HIT=1 hasil tersedia
83
+
84
+ INPUT_SUGGESTIONS_MORE_HITS={0} hasil tersedia
85
+
86
+ INPUT_SUGGESTIONS_NO_HIT=Tidak ada hasil
87
+
88
+ LINK_SUBTLE=Halus
89
+
90
+ LINK_EMPHASIZED=Ditekankan
91
+
92
+ LIST_ITEM_POSITION=Cantumkan item {0} dari {1}
93
+
94
+ LIST_ITEM_SELECTED=Dipilih
95
+
96
+ LIST_ITEM_NOT_SELECTED=Tidak Dipilih
97
+
98
+ ARIA_LABEL_LIST_ITEM_CHECKBOX=Mode Banyak Pilihan
99
+
100
+ ARIA_LABEL_LIST_ITEM_RADIO_BUTTON=Pilihan Item.
101
+
102
+ MESSAGE_STRIP_CLOSE_BUTTON=Strip Pesan Tutup
103
+
104
+ MULTICOMBOBOX_DIALOG_OK_BUTTON=OKE
105
+
106
+ VALUE_STATE_ERROR_ALREADY_SELECTED=Nilai ini telah dipilih.
107
+
108
+ MULTIINPUT_ROLEDESCRIPTION_TEXT=Input Banyak Nilai
109
+
110
+ MULTIINPUT_SHOW_MORE_TOKENS={0} Lebih Banyak
111
+
112
+ PANEL_ICON=Perluas/Ciutkan
113
+
114
+ RANGE_SLIDER_ARIA_DESCRIPTION=Rentang
115
+
116
+ RANGE_SLIDER_START_HANDLE_DESCRIPTION=Pegangan kiri
117
+
118
+ RANGE_SLIDER_END_HANDLE_DESCRIPTION=Pegangan kanan
119
+
120
+ RATING_INDICATOR_TOOLTIP_TEXT=Peringkat
121
+
122
+ RATING_INDICATOR_TEXT=Indikator Peringkat
123
+
124
+ RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON=Tolak
125
+
126
+ SEGMENTEDBUTTON_ARIA_DESCRIPTION=Kelompok tombol tersegmentasi
127
+
128
+ SEGMENTEDBUTTON_ARIA_DESCRIBEDBY=Tekan SPASI atau ENTER untuk memilih suatu item
129
+
130
+ SEGMENTEDBUTTONITEM_ARIA_DESCRIPTION=Tombol tersegmentasi
131
+
132
+ SLIDER_ARIA_DESCRIPTION=Pegangan slider
133
+
134
+ SWITCH_ON=Aktif
135
+
136
+ SWITCH_OFF=Nonaktif
137
+
138
+ LOAD_MORE_TEXT=Lebih Banyak
139
+
140
+ TABLE_HEADER_ROW_TEXT=Baris Header
141
+
142
+ TABLE_ROW_POSITION={0} dari {1}
143
+
144
+ TABLE_GROUP_ROW_ARIA_LABEL=Baris Header Grup
145
+
146
+ ARIA_LABEL_ROW_SELECTION=Pilihan Item
147
+
148
+ ARIA_LABEL_SELECT_ALL_CHECKBOX=Pilih Semua Baris
149
+
150
+ TABCONTAINER_NEXT_ICON_ACC_NAME=Selanjutnya
151
+
152
+ TABCONTAINER_PREVIOUS_ICON_ACC_NAME=Sebelumnya
153
+
154
+ TABCONTAINER_OVERFLOW_MENU_TITLE=Menu Tambahan
155
+
156
+ TEXTAREA_CHARACTERS_LEFT={0} karakter tersisa
157
+
158
+ TEXTAREA_CHARACTERS_EXCEEDED={0} karakter melebihi batas
159
+
160
+ TIMEPICKER_HOURS_LABEL=Jam
161
+
162
+ TIMEPICKER_MINUTES_LABEL=Menit
163
+
164
+ TIMEPICKER_SECONDS_LABEL=Detik
165
+
166
+ TIMEPICKER_PERIODS_LABEL=AM/PM
167
+
168
+ TIMEPICKER_SUBMIT_BUTTON=OKE
169
+
170
+ TIMEPICKER_CANCEL_BUTTON=Batalkan
171
+
172
+ TIMEPICKER_INPUT_DESCRIPTION=Input Waktu
173
+
174
+ DURATION_INPUT_DESCRIPTION=Input Durasi
175
+
176
+ DATETIME_PICKER_DATE_BUTTON=Tanggal
177
+
178
+ DATETIME_PICKER_TIME_BUTTON=Waktu
179
+
180
+ TOKEN_ARIA_DELETABLE=Dapat Dihapus
181
+
182
+ TOKENIZER_ARIA_CONTAIN_TOKEN=Tidak Ada Token
183
+
184
+ TOKENIZER_ARIA_CONTAIN_ONE_TOKEN=Berisi 1 token
185
+
186
+ TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS=Berisi {0} token
187
+
188
+ TOKENIZER_ARIA_LABEL=Pembuat Token
189
+
190
+ TOKENIZER_POPOVER_REMOVE=Hapus
191
+
192
+ TREE_ITEM_ARIA_LABEL=Item Pohon
193
+
194
+ TREE_ITEM_EXPAND_NODE=Perluas Node
195
+
196
+ TREE_ITEM_COLLAPSE_NODE=Ciutkan Node
197
+
198
+ VALUE_STATE_ERROR=Entri tidak valid
199
+
200
+ VALUE_STATE_WARNING=Peringatan diterbitkan
201
+
202
+ VALUE_STATE_INFORMATION=Entri informatif
203
+
204
+ VALUE_STATE_SUCCESS=Entri berhasil divalidasi
205
+
206
+ CALENDAR_HEADER_NEXT_BUTTON=Selanjutnya
207
+
208
+ CALENDAR_HEADER_PREVIOUS_BUTTON=Sebelumnya
209
+
210
+ DAY_PICKER_WEEK_NUMBER_TEXT=Jumlah Minggu
211
+
212
+ DAY_PICKER_NON_WORKING_DAY=Non-Hari Kerja
213
+
214
+ DAY_PICKER_TODAY=Hari Ini
215
+
216
+ STEPINPUT_DEC_ICON_TITLE=Turunkan
217
+
218
+ STEPINPUT_INC_ICON_TITLE=Tingkatkan
package/.port DELETED
@@ -1 +0,0 @@
1
- 8080