@ui5/webcomponents-fiori 2.21.0 → 2.22.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Timeline.d.ts +35 -3
- package/dist/Timeline.js +62 -4
- package/dist/Timeline.js.map +1 -1
- package/dist/TimelineFilterOption.d.ts +37 -0
- package/dist/TimelineFilterOption.js +59 -0
- package/dist/TimelineFilterOption.js.map +1 -0
- package/dist/TimelineHeaderBar.d.ts +120 -0
- package/dist/TimelineHeaderBar.js +273 -0
- package/dist/TimelineHeaderBar.js.map +1 -0
- package/dist/TimelineHeaderBarTemplate.d.ts +2 -0
- package/dist/TimelineHeaderBarTemplate.js +18 -0
- package/dist/TimelineHeaderBarTemplate.js.map +1 -0
- package/dist/TimelineItem.d.ts +2 -0
- package/dist/TimelineItem.js +2 -0
- package/dist/TimelineItem.js.map +1 -1
- package/dist/TimelineTemplate.js +1 -1
- package/dist/TimelineTemplate.js.map +1 -1
- package/dist/ViewSettingsDialog.d.ts +40 -1
- package/dist/ViewSettingsDialog.js +114 -7
- package/dist/ViewSettingsDialog.js.map +1 -1
- package/dist/ViewSettingsDialogCustomTab.d.ts +52 -0
- package/dist/ViewSettingsDialogCustomTab.js +81 -0
- package/dist/ViewSettingsDialogCustomTab.js.map +1 -0
- package/dist/ViewSettingsDialogCustomTabTemplate.d.ts +2 -0
- package/dist/ViewSettingsDialogCustomTabTemplate.js +5 -0
- package/dist/ViewSettingsDialogCustomTabTemplate.js.map +1 -0
- package/dist/ViewSettingsDialogTemplate.js +8 -1
- package/dist/ViewSettingsDialogTemplate.js.map +1 -1
- package/dist/bundle.esm.js +3 -0
- package/dist/bundle.esm.js.map +1 -1
- package/dist/css/themes/Timeline.css +1 -1
- package/dist/css/themes/TimelineHeaderBar.css +1 -0
- package/dist/css/themes/ViewSettingsDialog.css +1 -1
- package/dist/custom-elements-internal.json +746 -60
- package/dist/custom-elements.json +511 -9
- package/dist/generated/i18n/i18n-defaults.d.ts +11 -1
- package/dist/generated/i18n/i18n-defaults.js +11 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Timeline.css.d.ts +1 -1
- package/dist/generated/themes/Timeline.css.js +1 -1
- package/dist/generated/themes/Timeline.css.js.map +1 -1
- package/dist/generated/themes/TimelineHeaderBar.css.d.ts +2 -0
- package/dist/generated/themes/TimelineHeaderBar.css.js +8 -0
- package/dist/generated/themes/TimelineHeaderBar.css.js.map +1 -0
- package/dist/generated/themes/ViewSettingsDialog.css.d.ts +1 -1
- package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
- package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
- package/dist/types/TimelineSortOrder.d.ts +18 -0
- package/dist/types/TimelineSortOrder.js +20 -0
- package/dist/types/TimelineSortOrder.js.map +1 -0
- package/dist/vscode.html-custom-data.json +88 -2
- package/dist/web-types.json +257 -3
- package/package.json +7 -7
- package/src/TimelineHeaderBarTemplate.tsx +104 -0
- package/src/TimelineTemplate.tsx +7 -0
- package/src/ViewSettingsDialogCustomTabTemplate.tsx +5 -0
- package/src/ViewSettingsDialogTemplate.tsx +31 -0
- package/src/i18n/messagebundle.properties +30 -0
- package/src/themes/Timeline.css +21 -7
- package/src/themes/TimelineHeaderBar.css +17 -0
- package/src/themes/ViewSettingsDialog.css +33 -0
|
@@ -27,6 +27,7 @@ import { VSD_DIALOG_TITLE_SORT, VSD_SUBMIT_BUTTON, VSD_CANCEL_BUTTON, VSD_RESET_
|
|
|
27
27
|
import ViewSettingsDialogTemplate from "./ViewSettingsDialogTemplate.js";
|
|
28
28
|
// Styles
|
|
29
29
|
import viewSettingsDialogCSS from "./generated/themes/ViewSettingsDialog.css.js";
|
|
30
|
+
const CUSTOM_MODE_PREFIX = "customTabs-";
|
|
30
31
|
/**
|
|
31
32
|
* @class
|
|
32
33
|
* ### Overview
|
|
@@ -78,6 +79,18 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
78
79
|
* @since 2.0.0
|
|
79
80
|
*/
|
|
80
81
|
this.open = false;
|
|
82
|
+
/**
|
|
83
|
+
* Defines whether the Reset button is always enabled.
|
|
84
|
+
*
|
|
85
|
+
* **Note:** By default, the Reset button is only enabled when the dialog settings
|
|
86
|
+
* differ from their initial state. Set this property to `true` to keep the Reset
|
|
87
|
+
* button always enabled, which is useful when working with custom tabs
|
|
88
|
+
* whose internal state changes cannot be detected by the component.
|
|
89
|
+
* @default false
|
|
90
|
+
* @public
|
|
91
|
+
* @since 2.22.0
|
|
92
|
+
*/
|
|
93
|
+
this.enableReset = false;
|
|
81
94
|
/**
|
|
82
95
|
* Stores current settings of the dialog.
|
|
83
96
|
* @private
|
|
@@ -104,7 +117,7 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
104
117
|
* @since 1.0.0-rc.16
|
|
105
118
|
* @private
|
|
106
119
|
*/
|
|
107
|
-
this._currentMode =
|
|
120
|
+
this._currentMode = ViewSettingsDialogMode.Sort;
|
|
108
121
|
/**
|
|
109
122
|
* When in Filter By mode, defines whether we need to show the list of keys, or the list with values.
|
|
110
123
|
* @since 1.0.0-rc.16
|
|
@@ -125,6 +138,10 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
125
138
|
}
|
|
126
139
|
if (this.shouldBuildGroup) {
|
|
127
140
|
this._currentMode = ViewSettingsDialogMode.Group;
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (this.shouldBuildCustomTabs && (!this.isModeCustom || !this._selectedCustomTab)) {
|
|
144
|
+
this._currentMode = this._defaultMode;
|
|
128
145
|
}
|
|
129
146
|
}
|
|
130
147
|
onInvalidation(changeInfo) {
|
|
@@ -165,9 +182,44 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
165
182
|
get shouldBuildGroup() {
|
|
166
183
|
return !!this.groupItems.length;
|
|
167
184
|
}
|
|
185
|
+
get shouldBuildCustomTabs() {
|
|
186
|
+
return !!this._renderableCustomTabs.length;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Returns only custom tabs that have an icon defined and can be rendered.
|
|
190
|
+
*/
|
|
191
|
+
get _renderableCustomTabs() {
|
|
192
|
+
return this.customTabs.filter(tab => tab.icon);
|
|
193
|
+
}
|
|
168
194
|
get hasPagination() {
|
|
169
|
-
const
|
|
170
|
-
|
|
195
|
+
const builtInTabsCount = [this.shouldBuildSort, this.shouldBuildFilter, this.shouldBuildGroup]
|
|
196
|
+
.filter(condition => condition)
|
|
197
|
+
.length;
|
|
198
|
+
if (this.shouldBuildCustomTabs) {
|
|
199
|
+
return builtInTabsCount + this._renderableCustomTabs.length > 1;
|
|
200
|
+
}
|
|
201
|
+
return builtInTabsCount > 1;
|
|
202
|
+
}
|
|
203
|
+
get _defaultMode() {
|
|
204
|
+
if (this.shouldBuildSort) {
|
|
205
|
+
return ViewSettingsDialogMode.Sort;
|
|
206
|
+
}
|
|
207
|
+
if (this.shouldBuildFilter) {
|
|
208
|
+
return ViewSettingsDialogMode.Filter;
|
|
209
|
+
}
|
|
210
|
+
if (this.shouldBuildGroup) {
|
|
211
|
+
return ViewSettingsDialogMode.Group;
|
|
212
|
+
}
|
|
213
|
+
if (this.shouldBuildCustomTabs) {
|
|
214
|
+
return this._customTabMode(this._renderableCustomTabs[0]);
|
|
215
|
+
}
|
|
216
|
+
return ViewSettingsDialogMode.Sort;
|
|
217
|
+
}
|
|
218
|
+
get _selectedCustomTab() {
|
|
219
|
+
if (!this._isCustomMode(this._currentMode)) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
return this._renderableCustomTabs.find(tab => this._customTabMode(tab) === this._currentMode);
|
|
171
223
|
}
|
|
172
224
|
get _filterByTitle() {
|
|
173
225
|
const selectedFilterText = this._selectedFilter ? this._selectedFilter.text : "";
|
|
@@ -233,6 +285,9 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
233
285
|
* Determines disabled state of the `Reset` button.
|
|
234
286
|
*/
|
|
235
287
|
get _disableResetButton() {
|
|
288
|
+
if (this.enableReset) {
|
|
289
|
+
return false;
|
|
290
|
+
}
|
|
236
291
|
return this._dialog && this._settingsAreInitial && this._filteresAreInitial;
|
|
237
292
|
}
|
|
238
293
|
get _settingsAreInitial() {
|
|
@@ -334,6 +389,9 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
334
389
|
get isModeGroup() {
|
|
335
390
|
return this._currentMode === ViewSettingsDialogMode.Group;
|
|
336
391
|
}
|
|
392
|
+
get isModeCustom() {
|
|
393
|
+
return this._isCustomMode(this._currentMode);
|
|
394
|
+
}
|
|
337
395
|
get showBackButton() {
|
|
338
396
|
return this.isModeFilter && this._filterStepTwo;
|
|
339
397
|
}
|
|
@@ -362,7 +420,10 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
362
420
|
}
|
|
363
421
|
_handleModeChange(e) {
|
|
364
422
|
const mode = e.detail.selectedItems[0].getAttribute("data-mode");
|
|
365
|
-
this.
|
|
423
|
+
if (!mode || !this._isValidMode(mode)) {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
this._currentMode = mode;
|
|
366
427
|
}
|
|
367
428
|
_handleFilterValueItemClick(e) {
|
|
368
429
|
const itemText = e.detail.targetItem.innerText;
|
|
@@ -483,7 +544,7 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
483
544
|
_restoreConfirmedOnEscape(evt) {
|
|
484
545
|
if (evt.detail.escPressed) {
|
|
485
546
|
this._cancelSettings();
|
|
486
|
-
this._currentMode =
|
|
547
|
+
this._currentMode = this._defaultMode;
|
|
487
548
|
this._filterStepTwo = false;
|
|
488
549
|
}
|
|
489
550
|
}
|
|
@@ -495,6 +556,7 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
495
556
|
this._recentlyFocused = this._sortOrder;
|
|
496
557
|
this._focusRecentlyUsedControl();
|
|
497
558
|
announce(this._resetButtonAction, InvisibleMessageMode.Assertive);
|
|
559
|
+
this.fireDecoratorEvent("reset-click");
|
|
498
560
|
}
|
|
499
561
|
/**
|
|
500
562
|
* Sets current settings to ones passed as `settings` argument.
|
|
@@ -502,9 +564,29 @@ let ViewSettingsDialog = ViewSettingsDialog_1 = class ViewSettingsDialog extends
|
|
|
502
564
|
*/
|
|
503
565
|
_restoreSettings(settings) {
|
|
504
566
|
this._currentSettings = JSON.parse(JSON.stringify(settings));
|
|
505
|
-
this._currentMode =
|
|
567
|
+
this._currentMode = this._defaultMode;
|
|
506
568
|
this._filterStepTwo = false;
|
|
507
569
|
}
|
|
570
|
+
isCurrentCustomTabMode(tab) {
|
|
571
|
+
return this._currentMode === this._customTabMode(tab);
|
|
572
|
+
}
|
|
573
|
+
_customTabMode(tab) {
|
|
574
|
+
return tab._individualSlot;
|
|
575
|
+
}
|
|
576
|
+
_isCustomMode(mode) {
|
|
577
|
+
return mode.startsWith(CUSTOM_MODE_PREFIX);
|
|
578
|
+
}
|
|
579
|
+
_isValidMode(mode) {
|
|
580
|
+
if (mode === ViewSettingsDialogMode.Sort
|
|
581
|
+
|| mode === ViewSettingsDialogMode.Filter
|
|
582
|
+
|| mode === ViewSettingsDialogMode.Group) {
|
|
583
|
+
return true;
|
|
584
|
+
}
|
|
585
|
+
if (this._isCustomMode(mode)) {
|
|
586
|
+
return this._renderableCustomTabs.some(tab => this._customTabMode(tab) === mode);
|
|
587
|
+
}
|
|
588
|
+
return false;
|
|
589
|
+
}
|
|
508
590
|
/**
|
|
509
591
|
* Stores `Sort Order` list as recently used control and its selected item in current state.
|
|
510
592
|
*/
|
|
@@ -637,6 +719,9 @@ __decorate([
|
|
|
637
719
|
__decorate([
|
|
638
720
|
property({ type: Boolean })
|
|
639
721
|
], ViewSettingsDialog.prototype, "open", void 0);
|
|
722
|
+
__decorate([
|
|
723
|
+
property({ type: Boolean })
|
|
724
|
+
], ViewSettingsDialog.prototype, "enableReset", void 0);
|
|
640
725
|
__decorate([
|
|
641
726
|
property({ type: Object })
|
|
642
727
|
], ViewSettingsDialog.prototype, "_recentlyFocused", void 0);
|
|
@@ -650,7 +735,7 @@ __decorate([
|
|
|
650
735
|
property({ type: Object })
|
|
651
736
|
], ViewSettingsDialog.prototype, "_confirmedSettings", void 0);
|
|
652
737
|
__decorate([
|
|
653
|
-
property()
|
|
738
|
+
property({ noAttribute: true })
|
|
654
739
|
], ViewSettingsDialog.prototype, "_currentMode", void 0);
|
|
655
740
|
__decorate([
|
|
656
741
|
property({ type: Boolean, noAttribute: true })
|
|
@@ -664,6 +749,16 @@ __decorate([
|
|
|
664
749
|
__decorate([
|
|
665
750
|
slot()
|
|
666
751
|
], ViewSettingsDialog.prototype, "groupItems", void 0);
|
|
752
|
+
__decorate([
|
|
753
|
+
slot({
|
|
754
|
+
type: HTMLElement,
|
|
755
|
+
individualSlots: true,
|
|
756
|
+
invalidateOnChildChange: {
|
|
757
|
+
properties: true,
|
|
758
|
+
slots: false,
|
|
759
|
+
},
|
|
760
|
+
})
|
|
761
|
+
], ViewSettingsDialog.prototype, "customTabs", void 0);
|
|
667
762
|
__decorate([
|
|
668
763
|
query("[ui5-list]")
|
|
669
764
|
], ViewSettingsDialog.prototype, "_list", void 0);
|
|
@@ -758,6 +853,18 @@ ViewSettingsDialog = ViewSettingsDialog_1 = __decorate([
|
|
|
758
853
|
event("close", {
|
|
759
854
|
bubbles: true,
|
|
760
855
|
})
|
|
856
|
+
/**
|
|
857
|
+
* Fired when the Reset button is clicked.
|
|
858
|
+
*
|
|
859
|
+
* **Note:** Use this event to reset the state of custom tab content,
|
|
860
|
+
* as the component cannot detect changes within custom tabs.
|
|
861
|
+
* @since 2.22.0
|
|
862
|
+
* @public
|
|
863
|
+
*/
|
|
864
|
+
,
|
|
865
|
+
event("reset-click", {
|
|
866
|
+
bubbles: true,
|
|
867
|
+
})
|
|
761
868
|
], ViewSettingsDialog);
|
|
762
869
|
ViewSettingsDialog.define();
|
|
763
870
|
export default ViewSettingsDialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSettingsDialog.js","sourceRoot":"","sources":["../src/ViewSettingsDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type Dialog from \"@ui5/webcomponents/dist/Dialog.js\";\nimport type List from \"@ui5/webcomponents/dist/List.js\";\nimport type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport ViewSettingsDialogMode from \"./types/ViewSettingsDialogMode.js\";\n\nimport \"@ui5/webcomponents-icons/dist/sort.js\";\nimport \"@ui5/webcomponents-icons/dist/filter.js\";\nimport \"@ui5/webcomponents-icons/dist/group-2.js\";\nimport \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport type SortItem from \"./SortItem.js\";\nimport type FilterItem from \"./FilterItem.js\";\nimport type GroupItem from \"./GroupItem.js\";\n\nimport {\n\tVSD_DIALOG_TITLE_SORT,\n\tVSD_SUBMIT_BUTTON,\n\tVSD_CANCEL_BUTTON,\n\tVSD_RESET_BUTTON,\n\tVSD_SORT_ORDER,\n\tVSD_SORT_BY,\n\tVSD_GROUP_ORDER,\n\tVSD_GROUP_BY,\n\tVSD_ORDER_ASCENDING,\n\tVSD_ORDER_DESCENDING,\n\tVSD_FILTER_BY,\n\tVSD_SORT_TOOLTIP,\n\tVSD_FILTER_TOOLTIP,\n\tVSD_GROUP_TOOLTIP,\n\tVSD_RESET_BUTTON_ACTION,\n\tVSD_FILTER_ITEM_LABEL_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport ViewSettingsDialogTemplate from \"./ViewSettingsDialogTemplate.js\";\n\n// Styles\nimport viewSettingsDialogCSS from \"./generated/themes/ViewSettingsDialog.css.js\";\n\ntype VSDFilter = Record<string, Array<string>> // {\"Filter 1\": [\"Filter 5\", \"Filter 6\"]}\ntype VSDFilters = Array<VSDFilter> // [{\"Filter 1\": [\"Filter 5\", \"Filter 6\"]}, {\"Filter 3\": [\"Filter 8\"]}]\n\n// The data, passed to the public method + part of the events' detail\ntype VSDSettings = {\n\tsortOrder: string,\n\tsortBy: string,\n\tfilters: VSDFilters,\n\tgroupOrder: string,\n\tgroupBy: string,\n}\n\n// Events' detail\ntype ViewSettingsDialogConfirmEventDetail = VSDSettings & {\n\tsortByItem: SortItem,\n\tsortDescending: boolean,\n\tgroupByItem: GroupItem,\n\tgroupDescending: boolean,\n}\n\ntype ViewSettingsDialogCancelEventDetail = VSDSettings & {\n\tsortByItem: SortItem,\n\tsortDescending: boolean,\n\tgroupByItem: GroupItem,\n\tgroupDescending: boolean,\n}\n\n// Common properties for several VSDInternalSettings fields\ntype VSDItem = {text?: string, selected: boolean}\n\n// Used for the private properties _initialSettings, _confirmedSettings and _currentSettings\ntype VSDInternalSettings = {\n\tsortOrder: Array<VSDItem>,\n\tsortBy: Array<VSDItem & {index: number}>,\n\tfilters: Array<VSDItem & {filterOptions: Array<VSDItem>}>,\n\tgroupOrder: Array<VSDItem>,\n\tgroupBy: Array<VSDItem & {index: number}>,\n}\n\n/**\n * @class\n * ### Overview\n * The `ui5-view-settings-dialog` component helps the user to sort data within a list or a table.\n * It consists of several lists like `Sort order` which is built-in and `Sort By` and `Filter By` lists,\n * for which you must be provide items(`ui5-sort-item` & `ui5-filter-item` respectively)\n * These options can be used to create sorters for a table.\n *\n * The `ui5-view-settings-dialog` interrupts the current application processing as it is the only focused UI element and\n * the main screen is dimmed/blocked.\n * The `ui5-view-settings-dialog` is modal, which means that user action is required before returning to the parent window is possible.\n *\n * ### Structure\n * A `ui5-view-settings-dialog` consists of a header, content, and a footer for action buttons.\n * The `ui5-view-settings-dialog` is usually displayed at the center of the screen.\n *\n * ### Responsive Behavior\n * `ui5-view-settings-dialog` stretches on full screen on phones.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/ViewSettingsDialog.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.16\n * @public\n * @csspart header - Used to style the header.\n */\n@customElement({\n\ttag: \"ui5-view-settings-dialog\",\n\trenderer: jsxRenderer,\n\tstyles: viewSettingsDialogCSS,\n\ttemplate: ViewSettingsDialogTemplate,\n})\n\n/**\n * Fired when confirmation button is activated.\n * @param {String} sortOrder The current sort order selected.\n * @param {String} sortBy The currently selected `ui5-sort-item` text attribute.\n * @param {HTMLElement} sortByItem The currently selected `ui5-sort-item`.\n * @param {Boolean} sortDescending The selected sort order (true = descending, false = ascending).\n * @param {String} groupOrder The current group order selected.\n * @param {String} groupBy The currently selected `ui5-group-item` text attribute.\n * @param {HTMLElement} groupByItem The currently selected `ui5-group-item`.\n * @param {Boolean} groupDescending The selected group order (true = descending, false = ascending).\n * @param {Array} filters The selected filters items.\n * @public\n */\n@event(\"confirm\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when cancel button is activated.\n * @param {String} sortOrder The current sort order selected.\n * @param {String} sortBy The currently selected `ui5-sort-item` text attribute.\n * @param {HTMLElement} sortByItem The currently selected `ui5-sort-item`.\n * @param {Boolean} sortDescending The selected sort order (true = descending, false = ascending).\n * @param {String} groupOrder The current group order selected.\n * @param {String} groupBy The currently selected `ui5-group-item` text attribute.\n * @param {HTMLElement} groupByItem The currently selected `ui5-group-item`.\n * @param {Boolean} groupDescending The selected group order (true = descending, false = ascending).\n * @param {Array} filters The selected filters items.\n * @public\n */\n@event(\"cancel\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the component is opened.\n * @public\n */\n@event(\"before-open\", {\n\tcancelable: true,\n})\n/**\n * Fired after the dialog is opened.\n * @since 2.0.0\n * @public\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n/**\n * Fired after the dialog is closed.\n * @since 2.0.0\n * @public\n */\n@event(\"close\", {\n\tbubbles: true,\n})\nclass ViewSettingsDialog extends UI5Element {\n\teventDetails!: {\n\t\t\"confirm\": ViewSettingsDialogConfirmEventDetail,\n\t\t\"cancel\": ViewSettingsDialogCancelEventDetail,\n\t\t\"before-open\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t}\n\t/**\n\t * Defines the initial sort order.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tsortDescending = false;\n\n\t/**\n\t * Defines the initial group order.\n\t * @default false\n\t * @since 2.13.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tgroupDescending = false;\n\n\t/**\n\t * Indicates if the dialog is open.\n\t * @public\n\t * @default false\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Keeps recently focused list in order to focus it on next dialog open.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_recentlyFocused?: List;\n\n\t/**\n\t * Stores current settings of the dialog.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_currentSettings: VSDInternalSettings = {\n\t\tsortOrder: [],\n\t\tsortBy: [],\n\t\tfilters: [],\n\t\tgroupOrder: [],\n\t\tgroupBy: [],\n\t};\n\n\t/**\n\t * Stores settings of the dialog before the initial open.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_initialSettings: VSDInternalSettings = this._currentSettings;\n\n\t/**\n\t * Stores settings of the dialog after confirmation.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_confirmedSettings: VSDInternalSettings = this._currentSettings;\n\n\t/**\n\t * Defnies the current mode of the component.\n\t * @since 1.0.0-rc.16\n\t * @private\n\t */\n\t@property()\n\t_currentMode: `${ViewSettingsDialogMode}` = \"Sort\";\n\n\t/**\n\t * When in Filter By mode, defines whether we need to show the list of keys, or the list with values.\n\t * @since 1.0.0-rc.16\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_filterStepTwo = false;\n\n\t/**\n\t * Defines the list of items against which the user could sort data.\n\t *\n\t * **Note:** If you want to use this slot, you need to import used item: `import \"@ui5/webcomponents-fiori/dist/SortItem.js\";`\n\t * @public\n\t */\n\t@slot()\n\tsortItems!: Slot<SortItem>;\n\n\t/**\n\t * Defines the `filterItems` list.\n\t *\n\t * **Note:** If you want to use this slot, you need to import used item: `import \"@ui5/webcomponents-fiori/dist/FilterItem.js\";`\n\t * @public\n\t */\n\t@slot()\n\tfilterItems!: Slot<FilterItem>;\n\n\t/**\n\t * Defines the list of items against which the user could group data.\n\t *\n\t * **Note:** If you want to use this slot, you need to import used item: `import \"@ui5/webcomponents-fiori/dist/GroupItem.js\";`\n\t * @public\n\t */\n\t@slot()\n\tgroupItems!: Slot<GroupItem>;\n\n\t@query(\"[ui5-list]\")\n\t_list!: List;\n\n\t@query(\"[ui5-dialog]\")\n\t_dialog?: Dialog;\n\n\t@query(\"[ui5-list][sort-order]\")\n\t_sortOrder?: List;\n\n\t@query(\"[ui5-list][sort-by]\")\n\t_sortBy?: List;\n\n\t@query(\"[ui5-list][group-order]\")\n\t_groupOrder?: List;\n\n\t@query(\"[ui5-list][group-by]\")\n\t_groupBy?: List;\n\n\t@query(\"[ui5-list][filter-list]\")\n\t_filterList?: List;\n\n\t@query(\"[ui5-list][filter-options]\")\n\t_filterOptions?: List;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tif (this._currentSettings.filters && this._currentSettings.filters.length) {\n\t\t\tthis._setAdditionalTexts();\n\t\t}\n\n\t\tif (this.shouldBuildSort) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.shouldBuildFilter) {\n\t\t\tthis._currentMode = ViewSettingsDialogMode.Filter;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.shouldBuildGroup) {\n\t\t\tthis._currentMode = ViewSettingsDialogMode.Group;\n\t\t}\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.type === \"slot\") {\n\t\t\tthis._confirmedSettings = this._settings;\n\t\t}\n\t}\n\n\t_setAdditionalTexts() {\n\t\t// Add the additional text to the filter options\n\t\tthis.filterItems.forEach((filter, index) => {\n\t\t\tlet selectedCount = 0;\n\t\t\tfor (let i = 0; i < filter.values.length; i++) {\n\t\t\t\tif (this._currentSettings.filters[index].filterOptions[i].selected) {\n\t\t\t\t\tselectedCount++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfilter.additionalText = !selectedCount ? \"\" : `${selectedCount}`;\n\t\t});\n\t}\n\n\tget _selectedFilter() {\n\t\tfor (let i = 0; i < this._currentSettings.filters.length; i++) {\n\t\t\tif (this._currentSettings.filters[i].selected) {\n\t\t\t\treturn this._currentSettings.filters[i];\n\t\t\t}\n\t\t}\n\t}\n\n\t_selectedFiltersLabel(item: FilterItem) {\n\t\tconst text = item.text ? `${item.text},` : \"\";\n\t\tconst additionalText = item.additionalText ? `${item.additionalText},` : \"\";\n\t\treturn additionalText ? ViewSettingsDialog.i18nBundle.getText(VSD_FILTER_ITEM_LABEL_TEXT, text, additionalText) : text;\n\t}\n\n\tget shouldBuildSort() {\n\t\treturn !!this.sortItems.length;\n\t}\n\n\tget shouldBuildFilter() {\n\t\treturn !!this.filterItems.length;\n\t}\n\n\tget shouldBuildGroup() {\n\t\treturn !!this.groupItems.length;\n\t}\n\n\tget hasPagination() {\n\t\tconst buildConditions = [this.shouldBuildSort, this.shouldBuildFilter, this.shouldBuildGroup];\n\t\treturn buildConditions.filter(condition => condition).length > 1;\n\t}\n\n\tget _filterByTitle() {\n\t\tconst selectedFilterText = this._selectedFilter ? this._selectedFilter.text : \"\";\n\t\treturn `${ViewSettingsDialog.i18nBundle.getText(VSD_FILTER_BY)}: ${selectedFilterText}`;\n\t}\n\n\tget _dialogTitle() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_DIALOG_TITLE_SORT);\n\t}\n\n\tget _okButtonLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_SUBMIT_BUTTON);\n\t}\n\n\tget _cancelButtonLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_CANCEL_BUTTON);\n\t}\n\n\tget _resetButtonLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_RESET_BUTTON);\n\t}\n\n\tget _ascendingLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_ORDER_ASCENDING);\n\t}\n\n\tget _descendingLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_ORDER_DESCENDING);\n\t}\n\n\tget _sortOrderLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_SORT_ORDER);\n\t}\n\n\tget _groupOrderLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_GROUP_ORDER);\n\t}\n\n\tget _filterByLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_FILTER_BY);\n\t}\n\n\tget _sortByLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_SORT_BY);\n\t}\n\n\tget _groupByLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_GROUP_BY);\n\t}\n\n\tget _sortButtonTooltip() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_SORT_TOOLTIP);\n\t}\n\n\tget _filterButtonTooltip() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_FILTER_TOOLTIP);\n\t}\n\n\tget _groupButtonTooltip() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_GROUP_TOOLTIP);\n\t}\n\n\tget _resetButtonAction() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_RESET_BUTTON_ACTION);\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _sortAscending() {\n\t\treturn !this.sortDescending;\n\t}\n\n\tget _title() {\n\t\treturn this.showBackButton\n\t\t\t? this._filterByTitle\n\t\t\t: this._dialogTitle;\n\t}\n\n\t/**\n\t * Determines disabled state of the `Reset` button.\n\t */\n\tget _disableResetButton() {\n\t\treturn this._dialog && this._settingsAreInitial && this._filteresAreInitial;\n\t}\n\n\tget _settingsAreInitial() {\n\t\tlet settingsAreInitial = true;\n\t\t[\"sortBy\", \"sortOrder\", \"groupBy\", \"groupOrder\"].forEach(settingsList => {\n\t\t\tthis._currentSettings[settingsList as keyof VSDInternalSettings].forEach((item, index) => {\n\t\t\t\tif (item.selected !== this._initialSettings[settingsList as keyof VSDInternalSettings][index].selected) {\n\t\t\t\t\tsettingsAreInitial = false;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn settingsAreInitial;\n\t}\n\n\tget _filteresAreInitial() {\n\t\tlet filtersAreInitial = true;\n\t\tthis._currentSettings.filters.forEach((filter, index) => {\n\t\t\tfor (let i = 0; i < filter.filterOptions.length; i++) {\n\t\t\t\tif (filter.filterOptions[i].selected !== this._initialSettings.filters[index].filterOptions[i].selected) {\n\t\t\t\t\tfiltersAreInitial = false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn filtersAreInitial;\n\t}\n\n\t/**\n\t * Returns the current settings (current state of all lists).\n\t */\n\tget _settings(): VSDInternalSettings {\n\t\treturn {\n\t\t\tsortOrder: JSON.parse(JSON.stringify(this.initSortOrderItems)),\n\t\t\tsortBy: JSON.parse(JSON.stringify(this.initSortByItems)),\n\t\t\tgroupOrder: JSON.parse(JSON.stringify(this.initGroupOrderItems)),\n\t\t\tgroupBy: JSON.parse(JSON.stringify(this.initGroupByItems)),\n\t\t\tfilters: this.filterItems.map(item => {\n\t\t\t\treturn {\n\t\t\t\t\ttext: item.text || \"\",\n\t\t\t\t\tselected: false,\n\t\t\t\t\tfilterOptions: item.values.map(optionValue => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: optionValue.text || \"\",\n\t\t\t\t\t\t\tselected: optionValue.selected,\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t}\n\n\tget initSortByItems() {\n\t\treturn this.sortItems.map((item, index) => {\n\t\t\treturn {\n\t\t\t\ttext: item.text,\n\t\t\t\tselected: item.selected,\n\t\t\t\tindex,\n\t\t\t};\n\t\t});\n\t}\n\n\tget initGroupByItems() {\n\t\treturn this.groupItems.map((item, index) => {\n\t\t\treturn {\n\t\t\t\ttext: item.text,\n\t\t\t\tselected: item.selected,\n\t\t\t\tindex,\n\t\t\t};\n\t\t});\n\t}\n\n\tget initSortOrderItems() {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: this._ascendingLabel,\n\t\t\t\tselected: !this.sortDescending,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: this._descendingLabel,\n\t\t\t\tselected: this.sortDescending,\n\t\t\t},\n\t\t];\n\t}\n\n\tget initGroupOrderItems() {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: this._ascendingLabel,\n\t\t\t\tselected: !this.groupDescending,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: this._descendingLabel,\n\t\t\t\tselected: this.groupDescending,\n\t\t\t},\n\t\t];\n\t}\n\n\tget expandContent() {\n\t\treturn this._filterStepTwo || !this.hasPagination;\n\t}\n\n\tget isModeSort() {\n\t\treturn this._currentMode === ViewSettingsDialogMode.Sort;\n\t}\n\n\tget isModeFilter() {\n\t\treturn this._currentMode === ViewSettingsDialogMode.Filter;\n\t}\n\n\tget isModeGroup() {\n\t\treturn this._currentMode === ViewSettingsDialogMode.Group;\n\t}\n\n\tget showBackButton() {\n\t\treturn this.isModeFilter && this._filterStepTwo;\n\t}\n\n\t/**\n\t * Shows the dialog.\n\t */\n\tbeforeDialogOpen(): void {\n\t\t// first time opening - initialize settings\n\t\tif (this._currentSettings.sortOrder.length === 0) {\n\t\t\tthis._initialSettings = this._settings;\n\t\t\tthis._currentSettings = this._settings;\n\t\t\tthis._confirmedSettings = this._settings;\n\t\t} else {\n\t\t\tthis._restoreSettings(this._confirmedSettings);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"before-open\");\n\t}\n\n\tafterDialogOpen(): void {\n\t\tthis._list?.focusFirstItem();\n\n\t\tthis._focusRecentlyUsedControl();\n\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\tafterDialogClose(): void {\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleModeChange(e: CustomEvent) { // use SegmentedButton event when done\n\t\tconst mode: ViewSettingsDialogMode = e.detail.selectedItems[0].getAttribute(\"data-mode\");\n\t\tthis._currentMode = ViewSettingsDialogMode[mode];\n\t}\n\n\t_handleFilterValueItemClick(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst itemText = e.detail.targetItem.innerText;\n\n\t\t// Update the component state\n\t\tthis._currentSettings.filters = this._currentSettings.filters.map(filter => {\n\t\t\tif (filter.selected) {\n\t\t\t\tfilter.filterOptions.forEach(option => {\n\t\t\t\t\tif (option.text === itemText) {\n\t\t\t\t\t\toption.selected = !option.selected;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn filter;\n\t\t});\n\n\t\tthis._setSelectedProp(itemText);\n\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Sets the selected property of the clicked item.\n\t * @private\n\t */\n\t_setSelectedProp(itemText: string) {\n\t\tthis.filterItems.forEach(filterItem => {\n\t\t\tfilterItem.values.forEach(option => {\n\t\t\t\tif (option.text === itemText) {\n\t\t\t\t\toption.selected = !option.selected;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tasync _navigateToFilters() {\n\t\tthis._filterStepTwo = false;\n\t\tawait renderFinished();\n\t\tif (this._filterList) {\n\t\t\tthis._filterList.focusFirstItem();\n\t\t}\n\t}\n\n\tasync _changeCurrentFilter(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tthis._filterStepTwo = true;\n\t\tthis._currentSettings.filters = this._currentSettings.filters.map(filter => {\n\t\t\tfilter.selected = filter.text === e.detail.item.innerText;\n\t\t\treturn filter;\n\t\t});\n\t\tawait renderFinished();\n\t\tif (this._filterOptions) {\n\t\t\tconst selectedItems = this._filterOptions.getSelectedItems();\n\t\t\tif (selectedItems.length) {\n\t\t\t\tselectedItems[0].focus();\n\t\t\t} else {\n\t\t\t\tthis._filterOptions.focusFirstItem();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets focus on recently used control within the dialog.\n\t */\n\t_focusRecentlyUsedControl() {\n\t\tif (!this._recentlyFocused || !Object.keys(this._recentlyFocused).length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst recentlyFocusedSelectedItems = this._recentlyFocused.getSelectedItems();\n\t\tif (recentlyFocusedSelectedItems.length) {\n\t\t\trecentlyFocusedSelectedItems[0].focus();\n\t\t}\n\t}\n\n\t/**\n\t * Stores current settings as confirmed and fires `confirm` event.\n\t */\n\t_confirmSettings() {\n\t\tthis.open = false;\n\t\tthis._confirmedSettings = this._currentSettings;\n\n\t\tthis.fireDecoratorEvent(\"confirm\", this.eventsParams);\n\t}\n\n\t/**\n\t * Sets current settings to recently confirmed ones and fires `cancel` event.\n\t */\n\t_cancelSettings() {\n\t\tthis._restoreSettings(this._confirmedSettings);\n\n\t\tthis.fireDecoratorEvent(\"cancel\", this.eventsParams);\n\t\tthis.open = false;\n\t}\n\n\tget eventsParams() {\n\t\tconst _currentSortOrderSelected = this._currentSettings.sortOrder.filter(item => item.selected)[0],\n\t\t\t_currentSortBySelected = this._currentSettings.sortBy.filter(item => item.selected)[0],\n\t\t\t_currentGroupOrderSelected = this._currentSettings.groupOrder.filter(item => item.selected)[0],\n\t\t\t_currentGroupBySelected = this._currentSettings.groupBy.filter(item => item.selected)[0],\n\t\t\tsortOrder = _currentSortOrderSelected && (_currentSortOrderSelected.text || \"\"),\n\t\t\tsortDescending = !this._currentSettings.sortOrder[0].selected,\n\t\t\tsortBy = _currentSortBySelected && (_currentSortBySelected.text || \"\"),\n\t\t\tsortByElementIndex = _currentSortBySelected && _currentSortBySelected.index,\n\t\t\tsortByItem = this.sortItems[sortByElementIndex],\n\t\t\tgroupOrder = _currentGroupOrderSelected && (_currentGroupOrderSelected.text || \"\"),\n\t\t\tgroupDescending = !this._currentSettings.groupOrder[0].selected,\n\t\t\tgroupBy = _currentGroupBySelected && (_currentGroupBySelected.text || \"\"),\n\t\t\tgroupByElementIndex = _currentGroupBySelected && _currentGroupBySelected.index,\n\t\t\tgroupByItem = this.groupItems[groupByElementIndex],\n\t\t\tselectedFilterItems = this.filterItems.filter(filterItem => filterItem.values.some(item => item.selected));\n\t\treturn {\n\t\t\tsortOrder,\n\t\t\tsortDescending,\n\t\t\tsortBy,\n\t\t\tsortByItem,\n\t\t\tgroupOrder,\n\t\t\tgroupDescending,\n\t\t\tgroupBy,\n\t\t\tgroupByItem,\n\t\t\tfilters: this.selectedFilters,\n\t\t\tfilterItems: selectedFilterItems,\n\t\t};\n\t}\n\n\tget selectedFilters() {\n\t\tconst result: VSDFilters = [];\n\n\t\tthis._currentSettings.filters.forEach(filter => {\n\t\t\tconst selectedOptions: Array<string> = [];\n\n\t\t\tfilter.filterOptions.forEach(option => {\n\t\t\t\tif (option.selected) {\n\t\t\t\t\tselectedOptions.push(option.text || \"\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (selectedOptions.length) {\n\t\t\t\tresult.push({});\n\t\t\t\tresult[result.length - 1][filter.text || \"\"] = selectedOptions;\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * If the dialog is closed by [Escape] key, do the same as if the `Cancel` button is pressed.\n\t * @param evt\n\t */\n\t_restoreConfirmedOnEscape(evt: CustomEvent) { // Dialog#before-close\n\t\tif (evt.detail.escPressed) {\n\t\t\tthis._cancelSettings();\n\t\t\tthis._currentMode = ViewSettingsDialogMode.Sort;\n\t\t\tthis._filterStepTwo = false;\n\t\t}\n\t}\n\n\t/**\n\t * Resets the control settings to their initial state.\n\t */\n\t_resetSettings() {\n\t\tthis._restoreSettings(this._initialSettings);\n\t\tthis._recentlyFocused = this._sortOrder!;\n\t\tthis._focusRecentlyUsedControl();\n\t\tannounce(this._resetButtonAction, InvisibleMessageMode.Assertive);\n\t}\n\n\t/**\n\t * Sets current settings to ones passed as `settings` argument.\n\t * @param settings\n\t */\n\t_restoreSettings(settings: VSDInternalSettings) {\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(settings));\n\t\tthis._currentMode = ViewSettingsDialogMode.Sort;\n\t\tthis._filterStepTwo = false;\n\t}\n\n\t/**\n\t * Stores `Sort Order` list as recently used control and its selected item in current state.\n\t */\n\t_onSortOrderChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tthis._recentlyFocused = this._sortOrder!;\n\t\tthis._currentSettings.sortOrder = this.initSortOrderItems.map(item => {\n\t\t\titem.selected = item.text === e.detail.targetItem.innerText;\n\t\t\treturn item;\n\t\t});\n\n\t\t// Invalidate\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Stores `Sort By` list as recently used control and its selected item in current state.\n\t */\n\t_onSortByChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst selectedItemIndex = Number(e.detail.targetItem.getAttribute(\"data-ui5-external-action-item-index\"));\n\t\tthis._recentlyFocused = this._sortBy!;\n\t\tthis._currentSettings.sortBy = this.initSortByItems.map((item, index) => {\n\t\t\titem.selected = index === selectedItemIndex;\n\t\t\treturn item;\n\t\t});\n\t\t// Invalidate\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Stores `Group Order` list as recently used control and its selected item in current state.\n\t */\n\t_onGroupOrderChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tthis._recentlyFocused = this._groupOrder!;\n\t\tthis._currentSettings.groupOrder = this.initGroupOrderItems.map(item => {\n\t\t\titem.selected = item.text === e.detail.targetItem.innerText;\n\t\t\treturn item;\n\t\t});\n\n\t\t// Invalidate\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Stores `Group By` list as recently used control and its selected item in current state.\n\t */\n\t_onGroupByChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst selectedItemIndex = Number(e.detail.targetItem.getAttribute(\"data-ui5-external-action-item-index\"));\n\t\tthis._recentlyFocused = this._groupBy!;\n\t\tthis._currentSettings.groupBy = this.initGroupByItems.map((item, index) => {\n\t\t\titem.selected = index === selectedItemIndex;\n\t\t\treturn item;\n\t\t});\n\n\t\t// Invalidate\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Sets a JavaScript object, as settings to the `ui5-view-settings-dialog`.\n\t * This method can be used after the dialog is initially open, as the dialog needs\n\t * to set its initial settings.\n\t * The `ui5-view-settings-dialog` throws an event called \"before-open\",\n\t * which can be used as a trigger point.\n\t * The object should have the following format:\n\t * @param settings - predefined settings.\n\t * @public\n\t */\n\tsetConfirmedSettings(settings: VSDSettings): void {\n\t\tif (settings && this._dialog && !this._dialog.open) {\n\t\t\tconst tempSettings: VSDInternalSettings = JSON.parse(JSON.stringify(this._confirmedSettings));\n\t\t\tif (settings.sortOrder) {\n\t\t\t\tfor (let i = 0; i < tempSettings.sortOrder.length; i++) {\n\t\t\t\t\tif (tempSettings.sortOrder[i].text === settings.sortOrder) {\n\t\t\t\t\t\ttempSettings.sortOrder[i].selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempSettings.sortOrder[i].selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.sortBy) {\n\t\t\t\tfor (let i = 0; i < tempSettings.sortBy.length; i++) {\n\t\t\t\t\tif (tempSettings.sortBy[i].text === settings.sortBy) {\n\t\t\t\t\t\ttempSettings.sortBy[i].selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempSettings.sortBy[i].selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.groupOrder) {\n\t\t\t\tfor (let i = 0; i < tempSettings.groupOrder.length; i++) {\n\t\t\t\t\tif (tempSettings.groupOrder[i].text === settings.groupOrder) {\n\t\t\t\t\t\ttempSettings.groupOrder[i].selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempSettings.groupOrder[i].selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.groupBy) {\n\t\t\t\tfor (let i = 0; i < tempSettings.groupBy.length; i++) {\n\t\t\t\t\tif (tempSettings.groupBy[i].text === settings.groupBy) {\n\t\t\t\t\t\ttempSettings.groupBy[i].selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempSettings.groupBy[i].selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.filters) {\n\t\t\t\tconst inputFilters: VSDFilter = {};\n\t\t\t\tfor (let i = 0; i < settings.filters.length; i++) {\n\t\t\t\t\tinputFilters[Object.keys(settings.filters[i])[0]] = settings.filters[i][Object.keys(settings.filters[i])[0]];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = 0; i < tempSettings.filters.length; i++) {\n\t\t\t\t\tfor (let j = 0; j < tempSettings.filters[i].filterOptions.length; j++) {\n\t\t\t\t\t\tif (inputFilters[tempSettings.filters[i].text || \"\"] && inputFilters[tempSettings.filters[i].text || \"\"].indexOf(tempSettings.filters[i].filterOptions[j].text || \"\") > -1) {\n\t\t\t\t\t\t\ttempSettings.filters[i].filterOptions[j].selected = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttempSettings.filters[i].filterOptions[j].selected = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._confirmedSettings = JSON.parse(JSON.stringify(tempSettings));\n\t\t}\n\t}\n}\n\nViewSettingsDialog.define();\n\nexport default ViewSettingsDialog;\nexport type {\n\tViewSettingsDialogConfirmEventDetail,\n\tViewSettingsDialogCancelEventDetail,\n\tVSDSettings,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ViewSettingsDialog.js","sourceRoot":"","sources":["../src/ViewSettingsDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type Dialog from \"@ui5/webcomponents/dist/Dialog.js\";\nimport type List from \"@ui5/webcomponents/dist/List.js\";\nimport type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport ViewSettingsDialogMode from \"./types/ViewSettingsDialogMode.js\";\n\nimport \"@ui5/webcomponents-icons/dist/sort.js\";\nimport \"@ui5/webcomponents-icons/dist/filter.js\";\nimport \"@ui5/webcomponents-icons/dist/group-2.js\";\nimport \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport type SortItem from \"./SortItem.js\";\nimport type FilterItem from \"./FilterItem.js\";\nimport type GroupItem from \"./GroupItem.js\";\nimport type ViewSettingsDialogCustomTab from \"./ViewSettingsDialogCustomTab.js\";\n\nimport {\n\tVSD_DIALOG_TITLE_SORT,\n\tVSD_SUBMIT_BUTTON,\n\tVSD_CANCEL_BUTTON,\n\tVSD_RESET_BUTTON,\n\tVSD_SORT_ORDER,\n\tVSD_SORT_BY,\n\tVSD_GROUP_ORDER,\n\tVSD_GROUP_BY,\n\tVSD_ORDER_ASCENDING,\n\tVSD_ORDER_DESCENDING,\n\tVSD_FILTER_BY,\n\tVSD_SORT_TOOLTIP,\n\tVSD_FILTER_TOOLTIP,\n\tVSD_GROUP_TOOLTIP,\n\tVSD_RESET_BUTTON_ACTION,\n\tVSD_FILTER_ITEM_LABEL_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport ViewSettingsDialogTemplate from \"./ViewSettingsDialogTemplate.js\";\n\n// Styles\nimport viewSettingsDialogCSS from \"./generated/themes/ViewSettingsDialog.css.js\";\n\ntype VSDFilter = Record<string, Array<string>> // {\"Filter 1\": [\"Filter 5\", \"Filter 6\"]}\ntype VSDFilters = Array<VSDFilter> // [{\"Filter 1\": [\"Filter 5\", \"Filter 6\"]}, {\"Filter 3\": [\"Filter 8\"]}]\n\n// The data, passed to the public method + part of the events' detail\ntype VSDSettings = {\n\tsortOrder: string,\n\tsortBy: string,\n\tfilters: VSDFilters,\n\tgroupOrder: string,\n\tgroupBy: string,\n}\n\n// Events' detail\ntype ViewSettingsDialogConfirmEventDetail = VSDSettings & {\n\tsortByItem: SortItem,\n\tsortDescending: boolean,\n\tgroupByItem: GroupItem,\n\tgroupDescending: boolean,\n}\n\ntype ViewSettingsDialogCancelEventDetail = VSDSettings & {\n\tsortByItem: SortItem,\n\tsortDescending: boolean,\n\tgroupByItem: GroupItem,\n\tgroupDescending: boolean,\n}\n\n// Common properties for several VSDInternalSettings fields\ntype VSDItem = {text?: string, selected: boolean}\n\n// Used for the private properties _initialSettings, _confirmedSettings and _currentSettings\ntype VSDInternalSettings = {\n\tsortOrder: Array<VSDItem>,\n\tsortBy: Array<VSDItem & {index: number}>,\n\tfilters: Array<VSDItem & {filterOptions: Array<VSDItem>}>,\n\tgroupOrder: Array<VSDItem>,\n\tgroupBy: Array<VSDItem & {index: number}>,\n}\n\nconst CUSTOM_MODE_PREFIX = \"customTabs-\";\n\ntype ViewSettingsCustomMode = `${typeof CUSTOM_MODE_PREFIX}${number}`;\ntype ViewSettingsDialogInternalMode = `${ViewSettingsDialogMode}` | ViewSettingsCustomMode;\n\n/**\n * @class\n * ### Overview\n * The `ui5-view-settings-dialog` component helps the user to sort data within a list or a table.\n * It consists of several lists like `Sort order` which is built-in and `Sort By` and `Filter By` lists,\n * for which you must be provide items(`ui5-sort-item` & `ui5-filter-item` respectively)\n * These options can be used to create sorters for a table.\n *\n * The `ui5-view-settings-dialog` interrupts the current application processing as it is the only focused UI element and\n * the main screen is dimmed/blocked.\n * The `ui5-view-settings-dialog` is modal, which means that user action is required before returning to the parent window is possible.\n *\n * ### Structure\n * A `ui5-view-settings-dialog` consists of a header, content, and a footer for action buttons.\n * The `ui5-view-settings-dialog` is usually displayed at the center of the screen.\n *\n * ### Responsive Behavior\n * `ui5-view-settings-dialog` stretches on full screen on phones.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/ViewSettingsDialog.js\";`\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.16\n * @public\n * @csspart header - Used to style the header.\n */\n@customElement({\n\ttag: \"ui5-view-settings-dialog\",\n\trenderer: jsxRenderer,\n\tstyles: viewSettingsDialogCSS,\n\ttemplate: ViewSettingsDialogTemplate,\n})\n\n/**\n * Fired when confirmation button is activated.\n * @param {String} sortOrder The current sort order selected.\n * @param {String} sortBy The currently selected `ui5-sort-item` text attribute.\n * @param {HTMLElement} sortByItem The currently selected `ui5-sort-item`.\n * @param {Boolean} sortDescending The selected sort order (true = descending, false = ascending).\n * @param {String} groupOrder The current group order selected.\n * @param {String} groupBy The currently selected `ui5-group-item` text attribute.\n * @param {HTMLElement} groupByItem The currently selected `ui5-group-item`.\n * @param {Boolean} groupDescending The selected group order (true = descending, false = ascending).\n * @param {Array} filters The selected filters items.\n * @public\n */\n@event(\"confirm\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when cancel button is activated.\n * @param {String} sortOrder The current sort order selected.\n * @param {String} sortBy The currently selected `ui5-sort-item` text attribute.\n * @param {HTMLElement} sortByItem The currently selected `ui5-sort-item`.\n * @param {Boolean} sortDescending The selected sort order (true = descending, false = ascending).\n * @param {String} groupOrder The current group order selected.\n * @param {String} groupBy The currently selected `ui5-group-item` text attribute.\n * @param {HTMLElement} groupByItem The currently selected `ui5-group-item`.\n * @param {Boolean} groupDescending The selected group order (true = descending, false = ascending).\n * @param {Array} filters The selected filters items.\n * @public\n */\n@event(\"cancel\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before the component is opened.\n * @public\n */\n@event(\"before-open\", {\n\tcancelable: true,\n})\n/**\n * Fired after the dialog is opened.\n * @since 2.0.0\n * @public\n */\n@event(\"open\", {\n\tbubbles: true,\n})\n/**\n * Fired after the dialog is closed.\n * @since 2.0.0\n * @public\n */\n@event(\"close\", {\n\tbubbles: true,\n})\n/**\n * Fired when the Reset button is clicked.\n *\n * **Note:** Use this event to reset the state of custom tab content,\n * as the component cannot detect changes within custom tabs.\n * @since 2.22.0\n * @public\n */\n@event(\"reset-click\", {\n\tbubbles: true,\n})\nclass ViewSettingsDialog extends UI5Element {\n\teventDetails!: {\n\t\t\"confirm\": ViewSettingsDialogConfirmEventDetail,\n\t\t\"cancel\": ViewSettingsDialogCancelEventDetail,\n\t\t\"before-open\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t\t\"reset-click\": void,\n\t}\n\t/**\n\t * Defines the initial sort order.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tsortDescending = false;\n\n\t/**\n\t * Defines the initial group order.\n\t * @default false\n\t * @since 2.13.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tgroupDescending = false;\n\n\t/**\n\t * Indicates if the dialog is open.\n\t * @public\n\t * @default false\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines whether the Reset button is always enabled.\n\t *\n\t * **Note:** By default, the Reset button is only enabled when the dialog settings\n\t * differ from their initial state. Set this property to `true` to keep the Reset\n\t * button always enabled, which is useful when working with custom tabs\n\t * whose internal state changes cannot be detected by the component.\n\t * @default false\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@property({ type: Boolean })\n\tenableReset = false;\n\n\t/**\n\t * Keeps recently focused list in order to focus it on next dialog open.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_recentlyFocused?: List;\n\n\t/**\n\t * Stores current settings of the dialog.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_currentSettings: VSDInternalSettings = {\n\t\tsortOrder: [],\n\t\tsortBy: [],\n\t\tfilters: [],\n\t\tgroupOrder: [],\n\t\tgroupBy: [],\n\t};\n\n\t/**\n\t * Stores settings of the dialog before the initial open.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_initialSettings: VSDInternalSettings = this._currentSettings;\n\n\t/**\n\t * Stores settings of the dialog after confirmation.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_confirmedSettings: VSDInternalSettings = this._currentSettings;\n\n\t/**\n\t * Defnies the current mode of the component.\n\t * @since 1.0.0-rc.16\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_currentMode: ViewSettingsDialogInternalMode = ViewSettingsDialogMode.Sort;\n\n\t/**\n\t * When in Filter By mode, defines whether we need to show the list of keys, or the list with values.\n\t * @since 1.0.0-rc.16\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_filterStepTwo = false;\n\n\t/**\n\t * Defines the list of items against which the user could sort data.\n\t *\n\t * **Note:** If you want to use this slot, you need to import used item: `import \"@ui5/webcomponents-fiori/dist/SortItem.js\";`\n\t * @public\n\t */\n\t@slot()\n\tsortItems!: Slot<SortItem>;\n\n\t/**\n\t * Defines the `filterItems` list.\n\t *\n\t * **Note:** If you want to use this slot, you need to import used item: `import \"@ui5/webcomponents-fiori/dist/FilterItem.js\";`\n\t * @public\n\t */\n\t@slot()\n\tfilterItems!: Slot<FilterItem>;\n\n\t/**\n\t * Defines the list of items against which the user could group data.\n\t *\n\t * **Note:** If you want to use this slot, you need to import used item: `import \"@ui5/webcomponents-fiori/dist/GroupItem.js\";`\n\t * @public\n\t */\n\t@slot()\n\tgroupItems!: Slot<GroupItem>;\n\n\t/**\n\t * Defines custom tabs for the dialog.\n\t *\n\t * The custom tabs are rendered after the built-in tabs (`Sort`, `Filter`, `Group`).\n\t *\n\t * **Note:** If you want to use this slot, you need to import the item: `import \"@ui5/webcomponents-fiori/dist/ViewSettingsDialogCustomTab.js\";`\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcustomTabs!: Slot<ViewSettingsDialogCustomTab>;\n\n\t@query(\"[ui5-list]\")\n\t_list!: List;\n\n\t@query(\"[ui5-dialog]\")\n\t_dialog?: Dialog;\n\n\t@query(\"[ui5-list][sort-order]\")\n\t_sortOrder?: List;\n\n\t@query(\"[ui5-list][sort-by]\")\n\t_sortBy?: List;\n\n\t@query(\"[ui5-list][group-order]\")\n\t_groupOrder?: List;\n\n\t@query(\"[ui5-list][group-by]\")\n\t_groupBy?: List;\n\n\t@query(\"[ui5-list][filter-list]\")\n\t_filterList?: List;\n\n\t@query(\"[ui5-list][filter-options]\")\n\t_filterOptions?: List;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tif (this._currentSettings.filters && this._currentSettings.filters.length) {\n\t\t\tthis._setAdditionalTexts();\n\t\t}\n\n\t\tif (this.shouldBuildSort) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.shouldBuildFilter) {\n\t\t\tthis._currentMode = ViewSettingsDialogMode.Filter;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.shouldBuildGroup) {\n\t\t\tthis._currentMode = ViewSettingsDialogMode.Group;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.shouldBuildCustomTabs && (!this.isModeCustom || !this._selectedCustomTab)) {\n\t\t\tthis._currentMode = this._defaultMode;\n\t\t}\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.type === \"slot\") {\n\t\t\tthis._confirmedSettings = this._settings;\n\t\t}\n\t}\n\n\t_setAdditionalTexts() {\n\t\t// Add the additional text to the filter options\n\t\tthis.filterItems.forEach((filter, index) => {\n\t\t\tlet selectedCount = 0;\n\t\t\tfor (let i = 0; i < filter.values.length; i++) {\n\t\t\t\tif (this._currentSettings.filters[index].filterOptions[i].selected) {\n\t\t\t\t\tselectedCount++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfilter.additionalText = !selectedCount ? \"\" : `${selectedCount}`;\n\t\t});\n\t}\n\n\tget _selectedFilter() {\n\t\tfor (let i = 0; i < this._currentSettings.filters.length; i++) {\n\t\t\tif (this._currentSettings.filters[i].selected) {\n\t\t\t\treturn this._currentSettings.filters[i];\n\t\t\t}\n\t\t}\n\t}\n\n\t_selectedFiltersLabel(item: FilterItem) {\n\t\tconst text = item.text ? `${item.text},` : \"\";\n\t\tconst additionalText = item.additionalText ? `${item.additionalText},` : \"\";\n\t\treturn additionalText ? ViewSettingsDialog.i18nBundle.getText(VSD_FILTER_ITEM_LABEL_TEXT, text, additionalText) : text;\n\t}\n\n\tget shouldBuildSort() {\n\t\treturn !!this.sortItems.length;\n\t}\n\n\tget shouldBuildFilter() {\n\t\treturn !!this.filterItems.length;\n\t}\n\n\tget shouldBuildGroup() {\n\t\treturn !!this.groupItems.length;\n\t}\n\n\tget shouldBuildCustomTabs() {\n\t\treturn !!this._renderableCustomTabs.length;\n\t}\n\n\t/**\n\t * Returns only custom tabs that have an icon defined and can be rendered.\n\t */\n\tget _renderableCustomTabs() {\n\t\treturn this.customTabs.filter(tab => tab.icon);\n\t}\n\n\tget hasPagination() {\n\t\tconst builtInTabsCount = [this.shouldBuildSort, this.shouldBuildFilter, this.shouldBuildGroup]\n\t\t\t.filter(condition => condition)\n\t\t\t.length;\n\n\t\tif (this.shouldBuildCustomTabs) {\n\t\t\treturn builtInTabsCount + this._renderableCustomTabs.length > 1;\n\t\t}\n\n\t\treturn builtInTabsCount > 1;\n\t}\n\n\tget _defaultMode(): ViewSettingsDialogInternalMode {\n\t\tif (this.shouldBuildSort) {\n\t\t\treturn ViewSettingsDialogMode.Sort;\n\t\t}\n\n\t\tif (this.shouldBuildFilter) {\n\t\t\treturn ViewSettingsDialogMode.Filter;\n\t\t}\n\n\t\tif (this.shouldBuildGroup) {\n\t\t\treturn ViewSettingsDialogMode.Group;\n\t\t}\n\n\t\tif (this.shouldBuildCustomTabs) {\n\t\t\treturn this._customTabMode(this._renderableCustomTabs[0]);\n\t\t}\n\n\t\treturn ViewSettingsDialogMode.Sort;\n\t}\n\n\tget _selectedCustomTab() {\n\t\tif (!this._isCustomMode(this._currentMode)) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this._renderableCustomTabs.find(tab => this._customTabMode(tab) === this._currentMode);\n\t}\n\n\tget _filterByTitle() {\n\t\tconst selectedFilterText = this._selectedFilter ? this._selectedFilter.text : \"\";\n\t\treturn `${ViewSettingsDialog.i18nBundle.getText(VSD_FILTER_BY)}: ${selectedFilterText}`;\n\t}\n\n\tget _dialogTitle() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_DIALOG_TITLE_SORT);\n\t}\n\n\tget _okButtonLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_SUBMIT_BUTTON);\n\t}\n\n\tget _cancelButtonLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_CANCEL_BUTTON);\n\t}\n\n\tget _resetButtonLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_RESET_BUTTON);\n\t}\n\n\tget _ascendingLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_ORDER_ASCENDING);\n\t}\n\n\tget _descendingLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_ORDER_DESCENDING);\n\t}\n\n\tget _sortOrderLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_SORT_ORDER);\n\t}\n\n\tget _groupOrderLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_GROUP_ORDER);\n\t}\n\n\tget _filterByLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_FILTER_BY);\n\t}\n\n\tget _sortByLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_SORT_BY);\n\t}\n\n\tget _groupByLabel() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_GROUP_BY);\n\t}\n\n\tget _sortButtonTooltip() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_SORT_TOOLTIP);\n\t}\n\n\tget _filterButtonTooltip() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_FILTER_TOOLTIP);\n\t}\n\n\tget _groupButtonTooltip() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_GROUP_TOOLTIP);\n\t}\n\n\tget _resetButtonAction() {\n\t\treturn ViewSettingsDialog.i18nBundle.getText(VSD_RESET_BUTTON_ACTION);\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _sortAscending() {\n\t\treturn !this.sortDescending;\n\t}\n\n\tget _title() {\n\t\treturn this.showBackButton\n\t\t\t? this._filterByTitle\n\t\t\t: this._dialogTitle;\n\t}\n\n\t/**\n\t * Determines disabled state of the `Reset` button.\n\t */\n\tget _disableResetButton() {\n\t\tif (this.enableReset) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this._dialog && this._settingsAreInitial && this._filteresAreInitial;\n\t}\n\n\tget _settingsAreInitial() {\n\t\tlet settingsAreInitial = true;\n\t\t[\"sortBy\", \"sortOrder\", \"groupBy\", \"groupOrder\"].forEach(settingsList => {\n\t\t\tthis._currentSettings[settingsList as keyof VSDInternalSettings].forEach((item, index) => {\n\t\t\t\tif (item.selected !== this._initialSettings[settingsList as keyof VSDInternalSettings][index].selected) {\n\t\t\t\t\tsettingsAreInitial = false;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn settingsAreInitial;\n\t}\n\n\tget _filteresAreInitial() {\n\t\tlet filtersAreInitial = true;\n\t\tthis._currentSettings.filters.forEach((filter, index) => {\n\t\t\tfor (let i = 0; i < filter.filterOptions.length; i++) {\n\t\t\t\tif (filter.filterOptions[i].selected !== this._initialSettings.filters[index].filterOptions[i].selected) {\n\t\t\t\t\tfiltersAreInitial = false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn filtersAreInitial;\n\t}\n\n\t/**\n\t * Returns the current settings (current state of all lists).\n\t */\n\tget _settings(): VSDInternalSettings {\n\t\treturn {\n\t\t\tsortOrder: JSON.parse(JSON.stringify(this.initSortOrderItems)),\n\t\t\tsortBy: JSON.parse(JSON.stringify(this.initSortByItems)),\n\t\t\tgroupOrder: JSON.parse(JSON.stringify(this.initGroupOrderItems)),\n\t\t\tgroupBy: JSON.parse(JSON.stringify(this.initGroupByItems)),\n\t\t\tfilters: this.filterItems.map(item => {\n\t\t\t\treturn {\n\t\t\t\t\ttext: item.text || \"\",\n\t\t\t\t\tselected: false,\n\t\t\t\t\tfilterOptions: item.values.map(optionValue => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: optionValue.text || \"\",\n\t\t\t\t\t\t\tselected: optionValue.selected,\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t}\n\n\tget initSortByItems() {\n\t\treturn this.sortItems.map((item, index) => {\n\t\t\treturn {\n\t\t\t\ttext: item.text,\n\t\t\t\tselected: item.selected,\n\t\t\t\tindex,\n\t\t\t};\n\t\t});\n\t}\n\n\tget initGroupByItems() {\n\t\treturn this.groupItems.map((item, index) => {\n\t\t\treturn {\n\t\t\t\ttext: item.text,\n\t\t\t\tselected: item.selected,\n\t\t\t\tindex,\n\t\t\t};\n\t\t});\n\t}\n\n\tget initSortOrderItems() {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: this._ascendingLabel,\n\t\t\t\tselected: !this.sortDescending,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: this._descendingLabel,\n\t\t\t\tselected: this.sortDescending,\n\t\t\t},\n\t\t];\n\t}\n\n\tget initGroupOrderItems() {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: this._ascendingLabel,\n\t\t\t\tselected: !this.groupDescending,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: this._descendingLabel,\n\t\t\t\tselected: this.groupDescending,\n\t\t\t},\n\t\t];\n\t}\n\n\tget expandContent() {\n\t\treturn this._filterStepTwo || !this.hasPagination;\n\t}\n\n\tget isModeSort() {\n\t\treturn this._currentMode === ViewSettingsDialogMode.Sort;\n\t}\n\n\tget isModeFilter() {\n\t\treturn this._currentMode === ViewSettingsDialogMode.Filter;\n\t}\n\n\tget isModeGroup() {\n\t\treturn this._currentMode === ViewSettingsDialogMode.Group;\n\t}\n\n\tget isModeCustom() {\n\t\treturn this._isCustomMode(this._currentMode);\n\t}\n\n\tget showBackButton() {\n\t\treturn this.isModeFilter && this._filterStepTwo;\n\t}\n\n\t/**\n\t * Shows the dialog.\n\t */\n\tbeforeDialogOpen(): void {\n\t\t// first time opening - initialize settings\n\t\tif (this._currentSettings.sortOrder.length === 0) {\n\t\t\tthis._initialSettings = this._settings;\n\t\t\tthis._currentSettings = this._settings;\n\t\t\tthis._confirmedSettings = this._settings;\n\t\t} else {\n\t\t\tthis._restoreSettings(this._confirmedSettings);\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"before-open\");\n\t}\n\n\tafterDialogOpen(): void {\n\t\tthis._list?.focusFirstItem();\n\n\t\tthis._focusRecentlyUsedControl();\n\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\tafterDialogClose(): void {\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleModeChange(e: CustomEvent) { // use SegmentedButton event when done\n\t\tconst mode = (e.detail.selectedItems[0].getAttribute(\"data-mode\") as string | null);\n\n\t\tif (!mode || !this._isValidMode(mode)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._currentMode = mode;\n\t}\n\n\t_handleFilterValueItemClick(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst itemText = e.detail.targetItem.innerText;\n\n\t\t// Update the component state\n\t\tthis._currentSettings.filters = this._currentSettings.filters.map(filter => {\n\t\t\tif (filter.selected) {\n\t\t\t\tfilter.filterOptions.forEach(option => {\n\t\t\t\t\tif (option.text === itemText) {\n\t\t\t\t\t\toption.selected = !option.selected;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn filter;\n\t\t});\n\n\t\tthis._setSelectedProp(itemText);\n\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Sets the selected property of the clicked item.\n\t * @private\n\t */\n\t_setSelectedProp(itemText: string) {\n\t\tthis.filterItems.forEach(filterItem => {\n\t\t\tfilterItem.values.forEach(option => {\n\t\t\t\tif (option.text === itemText) {\n\t\t\t\t\toption.selected = !option.selected;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tasync _navigateToFilters() {\n\t\tthis._filterStepTwo = false;\n\t\tawait renderFinished();\n\t\tif (this._filterList) {\n\t\t\tthis._filterList.focusFirstItem();\n\t\t}\n\t}\n\n\tasync _changeCurrentFilter(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tthis._filterStepTwo = true;\n\t\tthis._currentSettings.filters = this._currentSettings.filters.map(filter => {\n\t\t\tfilter.selected = filter.text === e.detail.item.innerText;\n\t\t\treturn filter;\n\t\t});\n\t\tawait renderFinished();\n\t\tif (this._filterOptions) {\n\t\t\tconst selectedItems = this._filterOptions.getSelectedItems();\n\t\t\tif (selectedItems.length) {\n\t\t\t\tselectedItems[0].focus();\n\t\t\t} else {\n\t\t\t\tthis._filterOptions.focusFirstItem();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sets focus on recently used control within the dialog.\n\t */\n\t_focusRecentlyUsedControl() {\n\t\tif (!this._recentlyFocused || !Object.keys(this._recentlyFocused).length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst recentlyFocusedSelectedItems = this._recentlyFocused.getSelectedItems();\n\t\tif (recentlyFocusedSelectedItems.length) {\n\t\t\trecentlyFocusedSelectedItems[0].focus();\n\t\t}\n\t}\n\n\t/**\n\t * Stores current settings as confirmed and fires `confirm` event.\n\t */\n\t_confirmSettings() {\n\t\tthis.open = false;\n\t\tthis._confirmedSettings = this._currentSettings;\n\n\t\tthis.fireDecoratorEvent(\"confirm\", this.eventsParams);\n\t}\n\n\t/**\n\t * Sets current settings to recently confirmed ones and fires `cancel` event.\n\t */\n\t_cancelSettings() {\n\t\tthis._restoreSettings(this._confirmedSettings);\n\n\t\tthis.fireDecoratorEvent(\"cancel\", this.eventsParams);\n\t\tthis.open = false;\n\t}\n\n\tget eventsParams() {\n\t\tconst _currentSortOrderSelected = this._currentSettings.sortOrder.filter(item => item.selected)[0],\n\t\t\t_currentSortBySelected = this._currentSettings.sortBy.filter(item => item.selected)[0],\n\t\t\t_currentGroupOrderSelected = this._currentSettings.groupOrder.filter(item => item.selected)[0],\n\t\t\t_currentGroupBySelected = this._currentSettings.groupBy.filter(item => item.selected)[0],\n\t\t\tsortOrder = _currentSortOrderSelected && (_currentSortOrderSelected.text || \"\"),\n\t\t\tsortDescending = !this._currentSettings.sortOrder[0].selected,\n\t\t\tsortBy = _currentSortBySelected && (_currentSortBySelected.text || \"\"),\n\t\t\tsortByElementIndex = _currentSortBySelected && _currentSortBySelected.index,\n\t\t\tsortByItem = this.sortItems[sortByElementIndex],\n\t\t\tgroupOrder = _currentGroupOrderSelected && (_currentGroupOrderSelected.text || \"\"),\n\t\t\tgroupDescending = !this._currentSettings.groupOrder[0].selected,\n\t\t\tgroupBy = _currentGroupBySelected && (_currentGroupBySelected.text || \"\"),\n\t\t\tgroupByElementIndex = _currentGroupBySelected && _currentGroupBySelected.index,\n\t\t\tgroupByItem = this.groupItems[groupByElementIndex],\n\t\t\tselectedFilterItems = this.filterItems.filter(filterItem => filterItem.values.some(item => item.selected));\n\t\treturn {\n\t\t\tsortOrder,\n\t\t\tsortDescending,\n\t\t\tsortBy,\n\t\t\tsortByItem,\n\t\t\tgroupOrder,\n\t\t\tgroupDescending,\n\t\t\tgroupBy,\n\t\t\tgroupByItem,\n\t\t\tfilters: this.selectedFilters,\n\t\t\tfilterItems: selectedFilterItems,\n\t\t};\n\t}\n\n\tget selectedFilters() {\n\t\tconst result: VSDFilters = [];\n\n\t\tthis._currentSettings.filters.forEach(filter => {\n\t\t\tconst selectedOptions: Array<string> = [];\n\n\t\t\tfilter.filterOptions.forEach(option => {\n\t\t\t\tif (option.selected) {\n\t\t\t\t\tselectedOptions.push(option.text || \"\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (selectedOptions.length) {\n\t\t\t\tresult.push({});\n\t\t\t\tresult[result.length - 1][filter.text || \"\"] = selectedOptions;\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * If the dialog is closed by [Escape] key, do the same as if the `Cancel` button is pressed.\n\t * @param evt\n\t */\n\t_restoreConfirmedOnEscape(evt: CustomEvent) { // Dialog#before-close\n\t\tif (evt.detail.escPressed) {\n\t\t\tthis._cancelSettings();\n\t\t\tthis._currentMode = this._defaultMode;\n\t\t\tthis._filterStepTwo = false;\n\t\t}\n\t}\n\n\t/**\n\t * Resets the control settings to their initial state.\n\t */\n\t_resetSettings() {\n\t\tthis._restoreSettings(this._initialSettings);\n\t\tthis._recentlyFocused = this._sortOrder!;\n\t\tthis._focusRecentlyUsedControl();\n\t\tannounce(this._resetButtonAction, InvisibleMessageMode.Assertive);\n\t\tthis.fireDecoratorEvent(\"reset-click\");\n\t}\n\n\t/**\n\t * Sets current settings to ones passed as `settings` argument.\n\t * @param settings\n\t */\n\t_restoreSettings(settings: VSDInternalSettings) {\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(settings));\n\t\tthis._currentMode = this._defaultMode;\n\t\tthis._filterStepTwo = false;\n\t}\n\n\tisCurrentCustomTabMode(tab: ViewSettingsDialogCustomTab) {\n\t\treturn this._currentMode === this._customTabMode(tab);\n\t}\n\n\t_customTabMode(tab: ViewSettingsDialogCustomTab): ViewSettingsCustomMode {\n\t\treturn tab._individualSlot as ViewSettingsCustomMode;\n\t}\n\n\t_isCustomMode(mode: string): mode is ViewSettingsCustomMode {\n\t\treturn mode.startsWith(CUSTOM_MODE_PREFIX);\n\t}\n\n\t_isValidMode(mode: string): mode is ViewSettingsDialogInternalMode {\n\t\tif (mode === (ViewSettingsDialogMode.Sort as string)\n\t\t\t|| mode === (ViewSettingsDialogMode.Filter as string)\n\t\t\t|| mode === (ViewSettingsDialogMode.Group as string)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this._isCustomMode(mode)) {\n\t\t\treturn this._renderableCustomTabs.some(tab => this._customTabMode(tab) === mode);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Stores `Sort Order` list as recently used control and its selected item in current state.\n\t */\n\t_onSortOrderChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tthis._recentlyFocused = this._sortOrder!;\n\t\tthis._currentSettings.sortOrder = this.initSortOrderItems.map(item => {\n\t\t\titem.selected = item.text === e.detail.targetItem.innerText;\n\t\t\treturn item;\n\t\t});\n\n\t\t// Invalidate\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Stores `Sort By` list as recently used control and its selected item in current state.\n\t */\n\t_onSortByChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst selectedItemIndex = Number(e.detail.targetItem.getAttribute(\"data-ui5-external-action-item-index\"));\n\t\tthis._recentlyFocused = this._sortBy!;\n\t\tthis._currentSettings.sortBy = this.initSortByItems.map((item, index) => {\n\t\t\titem.selected = index === selectedItemIndex;\n\t\t\treturn item;\n\t\t});\n\t\t// Invalidate\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Stores `Group Order` list as recently used control and its selected item in current state.\n\t */\n\t_onGroupOrderChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tthis._recentlyFocused = this._groupOrder!;\n\t\tthis._currentSettings.groupOrder = this.initGroupOrderItems.map(item => {\n\t\t\titem.selected = item.text === e.detail.targetItem.innerText;\n\t\t\treturn item;\n\t\t});\n\n\t\t// Invalidate\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Stores `Group By` list as recently used control and its selected item in current state.\n\t */\n\t_onGroupByChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst selectedItemIndex = Number(e.detail.targetItem.getAttribute(\"data-ui5-external-action-item-index\"));\n\t\tthis._recentlyFocused = this._groupBy!;\n\t\tthis._currentSettings.groupBy = this.initGroupByItems.map((item, index) => {\n\t\t\titem.selected = index === selectedItemIndex;\n\t\t\treturn item;\n\t\t});\n\n\t\t// Invalidate\n\t\tthis._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));\n\t}\n\n\t/**\n\t * Sets a JavaScript object, as settings to the `ui5-view-settings-dialog`.\n\t * This method can be used after the dialog is initially open, as the dialog needs\n\t * to set its initial settings.\n\t * The `ui5-view-settings-dialog` throws an event called \"before-open\",\n\t * which can be used as a trigger point.\n\t * The object should have the following format:\n\t * @param settings - predefined settings.\n\t * @public\n\t */\n\tsetConfirmedSettings(settings: VSDSettings): void {\n\t\tif (settings && this._dialog && !this._dialog.open) {\n\t\t\tconst tempSettings: VSDInternalSettings = JSON.parse(JSON.stringify(this._confirmedSettings));\n\t\t\tif (settings.sortOrder) {\n\t\t\t\tfor (let i = 0; i < tempSettings.sortOrder.length; i++) {\n\t\t\t\t\tif (tempSettings.sortOrder[i].text === settings.sortOrder) {\n\t\t\t\t\t\ttempSettings.sortOrder[i].selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempSettings.sortOrder[i].selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.sortBy) {\n\t\t\t\tfor (let i = 0; i < tempSettings.sortBy.length; i++) {\n\t\t\t\t\tif (tempSettings.sortBy[i].text === settings.sortBy) {\n\t\t\t\t\t\ttempSettings.sortBy[i].selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempSettings.sortBy[i].selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.groupOrder) {\n\t\t\t\tfor (let i = 0; i < tempSettings.groupOrder.length; i++) {\n\t\t\t\t\tif (tempSettings.groupOrder[i].text === settings.groupOrder) {\n\t\t\t\t\t\ttempSettings.groupOrder[i].selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempSettings.groupOrder[i].selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.groupBy) {\n\t\t\t\tfor (let i = 0; i < tempSettings.groupBy.length; i++) {\n\t\t\t\t\tif (tempSettings.groupBy[i].text === settings.groupBy) {\n\t\t\t\t\t\ttempSettings.groupBy[i].selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttempSettings.groupBy[i].selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (settings.filters) {\n\t\t\t\tconst inputFilters: VSDFilter = {};\n\t\t\t\tfor (let i = 0; i < settings.filters.length; i++) {\n\t\t\t\t\tinputFilters[Object.keys(settings.filters[i])[0]] = settings.filters[i][Object.keys(settings.filters[i])[0]];\n\t\t\t\t}\n\n\t\t\t\tfor (let i = 0; i < tempSettings.filters.length; i++) {\n\t\t\t\t\tfor (let j = 0; j < tempSettings.filters[i].filterOptions.length; j++) {\n\t\t\t\t\t\tif (inputFilters[tempSettings.filters[i].text || \"\"] && inputFilters[tempSettings.filters[i].text || \"\"].indexOf(tempSettings.filters[i].filterOptions[j].text || \"\") > -1) {\n\t\t\t\t\t\t\ttempSettings.filters[i].filterOptions[j].selected = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttempSettings.filters[i].filterOptions[j].selected = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._confirmedSettings = JSON.parse(JSON.stringify(tempSettings));\n\t\t}\n\t}\n}\n\nViewSettingsDialog.define();\n\nexport default ViewSettingsDialog;\nexport type {\n\tViewSettingsDialogConfirmEventDetail,\n\tViewSettingsDialogCancelEventDetail,\n\tVSDSettings,\n};\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
|
+
/**
|
|
4
|
+
* @class
|
|
5
|
+
*
|
|
6
|
+
* ### Overview
|
|
7
|
+
*
|
|
8
|
+
* The `ui5-view-settings-dialog-custom-tab` component allows defining custom tabs for the `ui5-view-settings-dialog`.
|
|
9
|
+
*
|
|
10
|
+
* ### ES6 Module Import
|
|
11
|
+
*
|
|
12
|
+
* `import "@ui5/webcomponents-fiori/dist/ViewSettingsDialogCustomTab.js";`
|
|
13
|
+
*
|
|
14
|
+
* @constructor
|
|
15
|
+
* @extends UI5Element
|
|
16
|
+
* @since 2.22.0
|
|
17
|
+
* @public
|
|
18
|
+
* @abstract
|
|
19
|
+
* @slot {Node[]} default - Defines the custom tab content.
|
|
20
|
+
*/
|
|
21
|
+
declare class ViewSettingsDialogCustomTab extends UI5Element {
|
|
22
|
+
/**
|
|
23
|
+
* Defines the title of the custom tab.
|
|
24
|
+
*
|
|
25
|
+
* **Note:** It is displayed in the dialog header when this tab is selected.
|
|
26
|
+
* @default ""
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
title: string;
|
|
30
|
+
/**
|
|
31
|
+
* Defines the tooltip of the custom tab button.
|
|
32
|
+
*
|
|
33
|
+
* **Note:** It is shown on the segmented button item.
|
|
34
|
+
* @default ""
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
tooltip: string;
|
|
38
|
+
/**
|
|
39
|
+
* Defines the icon of the custom tab.
|
|
40
|
+
*
|
|
41
|
+
* **Note:** If not provided, the tab should not be rendered.
|
|
42
|
+
* @default ""
|
|
43
|
+
* @public
|
|
44
|
+
*/
|
|
45
|
+
icon: string;
|
|
46
|
+
/**
|
|
47
|
+
* Defines the custom tab content.
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
content: DefaultSlot<Node>;
|
|
51
|
+
}
|
|
52
|
+
export default ViewSettingsDialogCustomTab;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
10
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
11
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
12
|
+
import ViewSettingsDialogCustomTabTemplate from "./ViewSettingsDialogCustomTabTemplate.js";
|
|
13
|
+
/**
|
|
14
|
+
* @class
|
|
15
|
+
*
|
|
16
|
+
* ### Overview
|
|
17
|
+
*
|
|
18
|
+
* The `ui5-view-settings-dialog-custom-tab` component allows defining custom tabs for the `ui5-view-settings-dialog`.
|
|
19
|
+
*
|
|
20
|
+
* ### ES6 Module Import
|
|
21
|
+
*
|
|
22
|
+
* `import "@ui5/webcomponents-fiori/dist/ViewSettingsDialogCustomTab.js";`
|
|
23
|
+
*
|
|
24
|
+
* @constructor
|
|
25
|
+
* @extends UI5Element
|
|
26
|
+
* @since 2.22.0
|
|
27
|
+
* @public
|
|
28
|
+
* @abstract
|
|
29
|
+
* @slot {Node[]} default - Defines the custom tab content.
|
|
30
|
+
*/
|
|
31
|
+
let ViewSettingsDialogCustomTab = class ViewSettingsDialogCustomTab extends UI5Element {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
/**
|
|
35
|
+
* Defines the title of the custom tab.
|
|
36
|
+
*
|
|
37
|
+
* **Note:** It is displayed in the dialog header when this tab is selected.
|
|
38
|
+
* @default ""
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
this.title = "";
|
|
42
|
+
/**
|
|
43
|
+
* Defines the tooltip of the custom tab button.
|
|
44
|
+
*
|
|
45
|
+
* **Note:** It is shown on the segmented button item.
|
|
46
|
+
* @default ""
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
this.tooltip = "";
|
|
50
|
+
/**
|
|
51
|
+
* Defines the icon of the custom tab.
|
|
52
|
+
*
|
|
53
|
+
* **Note:** If not provided, the tab should not be rendered.
|
|
54
|
+
* @default ""
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
this.icon = "";
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
__decorate([
|
|
61
|
+
property({ type: String })
|
|
62
|
+
], ViewSettingsDialogCustomTab.prototype, "title", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
property({ type: String })
|
|
65
|
+
], ViewSettingsDialogCustomTab.prototype, "tooltip", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
property({ type: String })
|
|
68
|
+
], ViewSettingsDialogCustomTab.prototype, "icon", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
slot({ type: Node, "default": true })
|
|
71
|
+
], ViewSettingsDialogCustomTab.prototype, "content", void 0);
|
|
72
|
+
ViewSettingsDialogCustomTab = __decorate([
|
|
73
|
+
customElement({
|
|
74
|
+
tag: "ui5-view-settings-dialog-custom-tab",
|
|
75
|
+
renderer: jsxRenderer,
|
|
76
|
+
template: ViewSettingsDialogCustomTabTemplate,
|
|
77
|
+
})
|
|
78
|
+
], ViewSettingsDialogCustomTab);
|
|
79
|
+
ViewSettingsDialogCustomTab.define();
|
|
80
|
+
export default ViewSettingsDialogCustomTab;
|
|
81
|
+
//# sourceMappingURL=ViewSettingsDialogCustomTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewSettingsDialogCustomTab.js","sourceRoot":"","sources":["../src/ViewSettingsDialogCustomTab.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,mCAAmC,MAAM,0CAA0C,CAAC;AAE3F;;;;;;;;;;;;;;;;;GAiBG;AAMH,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,UAAU;IAApD;;QACC;;;;;;WAMG;QAEH,UAAK,GAAG,EAAE,CAAC;QAEX;;;;;;WAMG;QAEH,YAAO,GAAG,EAAE,CAAC;QAEb;;;;;;WAMG;QAEH,SAAI,GAAG,EAAE,CAAC;IAQX,CAAC;CAAA,CAAA;AA5BA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DAChB;AAUX;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4DACd;AAUb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACjB;AAOV;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;4DACV;AApCvB,2BAA2B;IALhC,aAAa,CAAC;QACd,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,mCAAmC;KAC7C,CAAC;GACI,2BAA2B,CAqChC;AAED,2BAA2B,CAAC,MAAM,EAAE,CAAC;AAErC,eAAe,2BAA2B,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ViewSettingsDialogCustomTabTemplate from \"./ViewSettingsDialogCustomTabTemplate.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-view-settings-dialog-custom-tab` component allows defining custom tabs for the `ui5-view-settings-dialog`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/ViewSettingsDialogCustomTab.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.22.0\n * @public\n * @abstract\n * @slot {Node[]} default - Defines the custom tab content.\n */\n@customElement({\n\ttag: \"ui5-view-settings-dialog-custom-tab\",\n\trenderer: jsxRenderer,\n\ttemplate: ViewSettingsDialogCustomTabTemplate,\n})\nclass ViewSettingsDialogCustomTab extends UI5Element {\n\t/**\n\t * Defines the title of the custom tab.\n\t *\n\t * **Note:** It is displayed in the dialog header when this tab is selected.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ type: String })\n\ttitle = \"\";\n\n\t/**\n\t * Defines the tooltip of the custom tab button.\n\t *\n\t * **Note:** It is shown on the segmented button item.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ type: String })\n\ttooltip = \"\";\n\n\t/**\n\t * Defines the icon of the custom tab.\n\t *\n\t * **Note:** If not provided, the tab should not be rendered.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ type: String })\n\ticon = \"\";\n\n\t/**\n\t * Defines the custom tab content.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\tcontent!: DefaultSlot<Node>;\n}\n\nViewSettingsDialogCustomTab.define();\n\nexport default ViewSettingsDialogCustomTab;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewSettingsDialogCustomTabTemplate.js","sourceRoot":"","sources":["../src/ViewSettingsDialogCustomTabTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,mCAAmC;IAC1D,OAAO,gBAAa,CAAC;AACtB,CAAC","sourcesContent":["import type ViewSettingsDialogCustomTab from \"./ViewSettingsDialogCustomTab.js\";\n\nexport default function ViewSettingsDialogCustomTabTemplate(this: ViewSettingsDialogCustomTab) {\n\treturn <slot></slot>;\n}\n"]}
|