@leavittsoftware/web 5.20.1 → 5.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/package.json +2 -2
  2. package/titanium/data-table/data-table-core-settings-choose-columns-dialog.d.ts +22 -0
  3. package/titanium/data-table/data-table-core-settings-choose-columns-dialog.js +161 -0
  4. package/titanium/data-table/data-table-core-settings-choose-columns-dialog.js.map +1 -0
  5. package/titanium/data-table/{data-table-core-settings-item.d.ts → data-table-core-settings-choose-columns-item.d.ts} +3 -3
  6. package/titanium/data-table/{data-table-core-settings-item.js → data-table-core-settings-choose-columns-item.js} +11 -11
  7. package/titanium/data-table/data-table-core-settings-choose-columns-item.js.map +1 -0
  8. package/titanium/data-table/data-table-core-settings-sort-dialog.d.ts +21 -0
  9. package/titanium/data-table/data-table-core-settings-sort-dialog.js +208 -0
  10. package/titanium/data-table/data-table-core-settings-sort-dialog.js.map +1 -0
  11. package/titanium/data-table/data-table-core.d.ts +10 -5
  12. package/titanium/data-table/data-table-core.js +176 -89
  13. package/titanium/data-table/data-table-core.js.map +1 -1
  14. package/titanium/data-table/data-table.js +2 -0
  15. package/titanium/data-table/data-table.js.map +1 -1
  16. package/titanium/styles/nice-badge.js +2 -1
  17. package/titanium/styles/nice-badge.js.map +1 -1
  18. package/titanium/data-table/data-table-core-settings-dialog.d.ts +0 -399
  19. package/titanium/data-table/data-table-core-settings-dialog.js +0 -363
  20. package/titanium/data-table/data-table-core-settings-dialog.js.map +0 -1
  21. package/titanium/data-table/data-table-core-settings-item.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leavittsoftware/web",
3
- "version": "5.20.1",
3
+ "version": "5.21.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "",
6
6
  "files": [
@@ -41,5 +41,5 @@
41
41
  "url": "https://github.com/LeavittSoftware/titanium-elements/issues"
42
42
  },
43
43
  "homepage": "https://github.com/LeavittSoftware/titanium-elements/#readme",
44
- "gitHead": "d5bf98ca4e9df8b65662432202f57ab185b6338e"
44
+ "gitHead": "64a77f8efee9442d6b186601a6d685fe92bb63d3"
45
45
  }
@@ -0,0 +1,22 @@
1
+ import '@material/web/dialog/dialog';
2
+ import '@material/web/button/filled-tonal-button';
3
+ import './data-table-core-settings-choose-columns-item';
4
+ import { LitElement, PropertyValues } from 'lit';
5
+ import { TitaniumDataTableCoreMetaData } from './data-table-core';
6
+ export type TitaniumDataTableCoreItemSettings = {
7
+ key: string;
8
+ show: boolean;
9
+ };
10
+ export declare class TitaniumDataTableCoreSettingsChooseColumnsDialog<T extends object> extends LitElement {
11
+ #private;
12
+ accessor tableMetaData: TitaniumDataTableCoreMetaData<T> | null;
13
+ accessor userSettings: TitaniumDataTableCoreItemSettings[];
14
+ accessor customColumnsApplied: boolean;
15
+ private accessor dialog;
16
+ updated(changedProperties: PropertyValues): void;
17
+ resetColumns(): void;
18
+ show(): Promise<"done">;
19
+ static styles: import("lit").CSSResult[];
20
+ render(): import("lit-html").TemplateResult<1>;
21
+ }
22
+ //# sourceMappingURL=data-table-core-settings-choose-columns-dialog.d.ts.map
@@ -0,0 +1,161 @@
1
+ import { __decorate } from "tslib";
2
+ import '@material/web/dialog/dialog';
3
+ import '@material/web/button/filled-tonal-button';
4
+ import './data-table-core-settings-choose-columns-item';
5
+ import { LitElement, css, html } from 'lit';
6
+ import { customElement, property, query, state } from 'lit/decorators.js';
7
+ import { dialogCloseNavigationHack, dialogOpenNavigationHack } from '../hacks/dialog-navigation-hack';
8
+ import { dialogZIndexHack } from '../hacks/dialog-zindex-hack';
9
+ import { repeat } from 'lit/directives/repeat.js';
10
+ let TitaniumDataTableCoreSettingsChooseColumnsDialog = class TitaniumDataTableCoreSettingsChooseColumnsDialog extends LitElement {
11
+ #tableMetaData_accessor_storage = null;
12
+ get tableMetaData() { return this.#tableMetaData_accessor_storage; }
13
+ set tableMetaData(value) { this.#tableMetaData_accessor_storage = value; }
14
+ #userSettings_accessor_storage = [];
15
+ get userSettings() { return this.#userSettings_accessor_storage; }
16
+ set userSettings(value) { this.#userSettings_accessor_storage = value; }
17
+ #customColumnsApplied_accessor_storage = false;
18
+ get customColumnsApplied() { return this.#customColumnsApplied_accessor_storage; }
19
+ set customColumnsApplied(value) { this.#customColumnsApplied_accessor_storage = value; }
20
+ #dialog_accessor_storage;
21
+ get dialog() { return this.#dialog_accessor_storage; }
22
+ set dialog(value) { this.#dialog_accessor_storage = value; }
23
+ updated(changedProperties) {
24
+ if (changedProperties.has('tableMetaData')) {
25
+ //make sure all keys in tableMetaData.itemMetaData are in userSettings
26
+ if (this.tableMetaData?.itemMetaData.some((item) => !this.userSettings.some((setting) => setting.key === item.key))) {
27
+ this.resetColumns();
28
+ }
29
+ //check if columns have been removed
30
+ if (this.tableMetaData?.itemMetaData.length !== this.userSettings.length) {
31
+ this.resetColumns();
32
+ }
33
+ }
34
+ if (changedProperties.has('userSettings') || changedProperties.has('tableMetaData')) {
35
+ const _customColumnsApplied = this.#getNumberOfCustomSettingsApplied(this.userSettings, this.tableMetaData) > 0;
36
+ if (this.customColumnsApplied !== _customColumnsApplied) {
37
+ this.customColumnsApplied = _customColumnsApplied;
38
+ this.dispatchEvent(new Event('custom-columns-applied-change'));
39
+ }
40
+ }
41
+ }
42
+ #getNumberOfCustomSettingsApplied(userSettings, tableMetaData) {
43
+ let settingsCount = 0;
44
+ for (const metaData of tableMetaData?.itemMetaData ?? []) {
45
+ const setting = userSettings.find((setting) => setting.key === metaData.key);
46
+ if (setting?.show && metaData.hideByDefault) {
47
+ settingsCount++;
48
+ }
49
+ if (!setting?.show && !metaData.hideByDefault) {
50
+ settingsCount++;
51
+ }
52
+ }
53
+ //check if items are re-ordered by index, if so count as one change
54
+ if (userSettings.some((setting, index) => setting.key !== tableMetaData?.itemMetaData[index].key) ||
55
+ tableMetaData?.itemMetaData.some((metaData, index) => metaData.key !== userSettings[index].key)) {
56
+ settingsCount++;
57
+ }
58
+ return settingsCount;
59
+ }
60
+ resetColumns() {
61
+ const _userSettings = this.tableMetaData?.itemMetaData.map((item) => ({ key: item.key, show: !item.hideByDefault })) ?? [];
62
+ if (JSON.stringify(_userSettings) !== JSON.stringify(this.userSettings)) {
63
+ this.userSettings = _userSettings;
64
+ this.dispatchEvent(new Event('setting-change'));
65
+ }
66
+ }
67
+ async show() {
68
+ this.dialog.returnValue = '';
69
+ this.dialog?.show();
70
+ return await new Promise((resolve) => {
71
+ this.#resolve = resolve;
72
+ });
73
+ }
74
+ #resolve;
75
+ static { this.styles = [
76
+ css `
77
+ :host {
78
+ display: grid;
79
+ }
80
+
81
+ md-dialog {
82
+ max-width: 450px;
83
+ width: calc(100vw - 24px);
84
+ }
85
+
86
+ form {
87
+ display: grid;
88
+ }
89
+ `,
90
+ ]; }
91
+ render() {
92
+ return html ` <md-dialog
93
+ @open=${(e) => {
94
+ dialogOpenNavigationHack(e.target);
95
+ dialogZIndexHack(e.target);
96
+ }}
97
+ @close=${(e) => {
98
+ if (e.target.returnValue === 'done' || e.target.returnValue === 'navigation-close') {
99
+ dialogCloseNavigationHack(e.target);
100
+ return this.#resolve(e.target.returnValue);
101
+ }
102
+ e.preventDefault();
103
+ }}
104
+ >
105
+ <div slot="headline">Choose columns</div>
106
+
107
+ <form
108
+ slot="content"
109
+ @item-drop=${(e) => {
110
+ e.stopPropagation();
111
+ const items = this.userSettings ?? [];
112
+ //HoverIndex cannot be dropped beyond the length of the array
113
+ const hoverIndex = Math.min(e.hoverIndex, items.length - 1);
114
+ //Ignore if item goes back to where it started
115
+ if (hoverIndex !== e.originIndex) {
116
+ const temp = items[e.originIndex];
117
+ items.splice(e.originIndex, 1);
118
+ items.splice(hoverIndex, 0, temp);
119
+ }
120
+ this.requestUpdate('userSettings');
121
+ this.dispatchEvent(new Event('setting-change'));
122
+ }}
123
+ >
124
+ ${repeat(this.userSettings, (setting) => setting.key, (setting, index) => html `
125
+ <titanium-data-table-core-settings-choose-columns-item
126
+ .index=${index}
127
+ .name=${this.tableMetaData?.itemMetaData.find((item) => item.key === setting.key)?.friendlyName ?? setting.key}
128
+ .selected=${setting.show}
129
+ ?disabled=${setting.show && this.userSettings.filter((s) => s.show).length === 1}
130
+ ?disable-drag=${this.userSettings.length === 1}
131
+ @changed=${(e) => {
132
+ setting.show = e.target.selected;
133
+ this.requestUpdate('userSettings');
134
+ this.dispatchEvent(new Event('setting-change'));
135
+ }}
136
+ ></titanium-data-table-core-settings-choose-columns-item>
137
+ `)}
138
+ </form>
139
+ <div slot="actions">
140
+ <md-filled-tonal-button @click=${() => this.dialog?.close('done')}>Done</md-filled-tonal-button>
141
+ </div>
142
+ </md-dialog>`;
143
+ }
144
+ };
145
+ __decorate([
146
+ property({ type: Object })
147
+ ], TitaniumDataTableCoreSettingsChooseColumnsDialog.prototype, "tableMetaData", null);
148
+ __decorate([
149
+ property({ type: Array })
150
+ ], TitaniumDataTableCoreSettingsChooseColumnsDialog.prototype, "userSettings", null);
151
+ __decorate([
152
+ state()
153
+ ], TitaniumDataTableCoreSettingsChooseColumnsDialog.prototype, "customColumnsApplied", null);
154
+ __decorate([
155
+ query('md-dialog')
156
+ ], TitaniumDataTableCoreSettingsChooseColumnsDialog.prototype, "dialog", null);
157
+ TitaniumDataTableCoreSettingsChooseColumnsDialog = __decorate([
158
+ customElement('titanium-data-table-core-settings-choose-columns-dialog')
159
+ ], TitaniumDataTableCoreSettingsChooseColumnsDialog);
160
+ export { TitaniumDataTableCoreSettingsChooseColumnsDialog };
161
+ //# sourceMappingURL=data-table-core-settings-choose-columns-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-core-settings-choose-columns-dialog.js","sourceRoot":"","sources":["data-table-core-settings-choose-columns-dialog.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,14 @@ import '@material/web/icon/icon';
2
2
  import '@material/web/switch/switch';
3
3
  import '@material/web/elevation/elevation';
4
4
  import { DraggableItemBase } from './draggable-item-base';
5
- export declare class TitaniumDataTableCoreSettingsItem extends DraggableItemBase {
5
+ export declare class TitaniumDataTableCoreSettingsChooseColumnsItem extends DraggableItemBase {
6
6
  accessor name: string;
7
7
  accessor selected: boolean;
8
8
  accessor disabled: boolean;
9
9
  accessor index: number;
10
- get items(): TitaniumDataTableCoreSettingsItem[];
10
+ get items(): TitaniumDataTableCoreSettingsChooseColumnsItem[];
11
11
  get itemsContainer(): HTMLElement | null;
12
12
  static styles: import("lit").CSSResultGroup[];
13
13
  render(): import("lit-html").TemplateResult<1>;
14
14
  }
15
- //# sourceMappingURL=data-table-core-settings-item.d.ts.map
15
+ //# sourceMappingURL=data-table-core-settings-choose-columns-item.d.ts.map
@@ -5,7 +5,7 @@ import '@material/web/elevation/elevation';
5
5
  import { css, html } from 'lit';
6
6
  import { customElement, property } from 'lit/decorators.js';
7
7
  import { DraggableItemBase } from './draggable-item-base';
8
- let TitaniumDataTableCoreSettingsItem = class TitaniumDataTableCoreSettingsItem extends DraggableItemBase {
8
+ let TitaniumDataTableCoreSettingsChooseColumnsItem = class TitaniumDataTableCoreSettingsChooseColumnsItem extends DraggableItemBase {
9
9
  #name_accessor_storage;
10
10
  get name() { return this.#name_accessor_storage; }
11
11
  set name(value) { this.#name_accessor_storage = value; }
@@ -19,7 +19,7 @@ let TitaniumDataTableCoreSettingsItem = class TitaniumDataTableCoreSettingsItem
19
19
  get index() { return this.#index_accessor_storage; }
20
20
  set index(value) { this.#index_accessor_storage = value; }
21
21
  get items() {
22
- return Array.from(this.parentElement?.querySelectorAll('data-table-core-settings-item') ?? []);
22
+ return Array.from(this.parentElement?.querySelectorAll('titanium-data-table-core-settings-choose-columns-item') ?? []);
23
23
  }
24
24
  get itemsContainer() {
25
25
  return this.parentElement;
@@ -85,18 +85,18 @@ let TitaniumDataTableCoreSettingsItem = class TitaniumDataTableCoreSettingsItem
85
85
  };
86
86
  __decorate([
87
87
  property({ type: String })
88
- ], TitaniumDataTableCoreSettingsItem.prototype, "name", null);
88
+ ], TitaniumDataTableCoreSettingsChooseColumnsItem.prototype, "name", null);
89
89
  __decorate([
90
90
  property({ type: Boolean })
91
- ], TitaniumDataTableCoreSettingsItem.prototype, "selected", null);
91
+ ], TitaniumDataTableCoreSettingsChooseColumnsItem.prototype, "selected", null);
92
92
  __decorate([
93
93
  property({ type: Boolean })
94
- ], TitaniumDataTableCoreSettingsItem.prototype, "disabled", null);
94
+ ], TitaniumDataTableCoreSettingsChooseColumnsItem.prototype, "disabled", null);
95
95
  __decorate([
96
96
  property({ type: Number })
97
- ], TitaniumDataTableCoreSettingsItem.prototype, "index", null);
98
- TitaniumDataTableCoreSettingsItem = __decorate([
99
- customElement('data-table-core-settings-item')
100
- ], TitaniumDataTableCoreSettingsItem);
101
- export { TitaniumDataTableCoreSettingsItem };
102
- //# sourceMappingURL=data-table-core-settings-item.js.map
97
+ ], TitaniumDataTableCoreSettingsChooseColumnsItem.prototype, "index", null);
98
+ TitaniumDataTableCoreSettingsChooseColumnsItem = __decorate([
99
+ customElement('titanium-data-table-core-settings-choose-columns-item')
100
+ ], TitaniumDataTableCoreSettingsChooseColumnsItem);
101
+ export { TitaniumDataTableCoreSettingsChooseColumnsItem };
102
+ //# sourceMappingURL=data-table-core-settings-choose-columns-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-core-settings-choose-columns-item.js","sourceRoot":"","sources":["data-table-core-settings-choose-columns-item.ts"],"names":[],"mappings":";AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,6BAA6B,CAAC;AACrC,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGnD,IAAM,8CAA8C,GAApD,MAAM,8CAA+C,SAAQ,iBAAiB;IAC9C,uBAAa;IAAb,IAAA,IAAI,0CAAS;IAAb,IAAA,IAAI,gDAAS;IACZ,2BAAkB;IAAlB,IAAA,QAAQ,8CAAU;IAAlB,IAAA,QAAQ,oDAAU;IAClB,2BAAkB;IAAlB,IAAA,QAAQ,8CAAU;IAAlB,IAAA,QAAQ,oDAAU;IACnB,wBAAc;IAAd,IAAA,KAAK,2CAAS;IAAd,IAAA,KAAK,iDAAS;IAEnD,IAAa,KAAK;QAChB,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAiD,uDAAuD,CAAC,IAAI,EAAE,CACpJ,CAAC;IACJ,CAAC;IAED,IAAa,cAAc;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;aAEM,WAAM,GAAG;QACd,iBAAiB,CAAC,MAAM;QACxB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BF;KACF,AA/BY,CA+BX;IAEF,MAAM;QACJ,OAAO,IAAI,CAAA;;;sCAGuB,IAAI,CAAC,WAAW;;;;uCAIf,IAAI,CAAC,WAAW;;;;4BAI3B,IAAI,CAAC,UAAU,gBAAgB,IAAI,CAAC,UAAU;cAC5D,IAAI,CAAC,IAAI;;oBAEH,IAAI,CAAC,QAAQ;kBACf,GAAG,EAAE;YACb,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,CAAC;;;oBAGW,IAAI,CAAC,QAAQ;;KAE5B,CAAC;IACJ,CAAC;;AAzEoC;IAApC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0EAAuB;AACZ;IAArC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8EAA4B;AAClB;IAArC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8EAA4B;AACnB;IAApC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2EAAwB;AAJxC,8CAA8C;IAD1D,aAAa,CAAC,uDAAuD,CAAC;GAC1D,8CAA8C,CA2E1D"}
@@ -0,0 +1,21 @@
1
+ import '@material/web/dialog/dialog';
2
+ import '@material/web/button/text-button';
3
+ import '@material/web/button/filled-tonal-button';
4
+ import '@material/web/icon/icon';
5
+ import '@material/web/menu/menu';
6
+ import '@material/web/menu/menu-item';
7
+ import './data-table-core-settings-sort-item';
8
+ import { LitElement } from 'lit';
9
+ import { TitaniumDataTableCoreMetaData, TitaniumDataTableCoreSortItem } from './data-table-core';
10
+ export type CloseReason = 'apply' | 'cancel' | 'navigation-close';
11
+ export declare class TitaniumDataTableCoreSettingsSortDialog<T extends object> extends LitElement {
12
+ #private;
13
+ accessor tableMetaData: TitaniumDataTableCoreMetaData<T> | null;
14
+ private accessor dialog;
15
+ accessor sort: TitaniumDataTableCoreSortItem[];
16
+ show(sort: TitaniumDataTableCoreSortItem[]): Promise<CloseReason>;
17
+ hasChanges(sortA: TitaniumDataTableCoreSortItem[], sortB: TitaniumDataTableCoreSortItem[]): boolean;
18
+ static styles: import("lit").CSSResult[];
19
+ render(): import("lit-html").TemplateResult<1>;
20
+ }
21
+ //# sourceMappingURL=data-table-core-settings-sort-dialog.d.ts.map
@@ -0,0 +1,208 @@
1
+ import { __decorate } from "tslib";
2
+ import '@material/web/dialog/dialog';
3
+ import '@material/web/button/text-button';
4
+ import '@material/web/button/filled-tonal-button';
5
+ import '@material/web/icon/icon';
6
+ import '@material/web/menu/menu';
7
+ import '@material/web/menu/menu-item';
8
+ import './data-table-core-settings-sort-item';
9
+ import { LitElement, css, html } from 'lit';
10
+ import { customElement, property, query, state } from 'lit/decorators.js';
11
+ import { dialogCloseNavigationHack, dialogOpenNavigationHack } from '../hacks/dialog-navigation-hack';
12
+ import { dialogZIndexHack } from '../hacks/dialog-zindex-hack';
13
+ import { repeat } from 'lit/directives/repeat.js';
14
+ import { niceBadgeStyles } from '../styles/nice-badge';
15
+ import { p } from '../styles/p';
16
+ let TitaniumDataTableCoreSettingsSortDialog = class TitaniumDataTableCoreSettingsSortDialog extends LitElement {
17
+ #tableMetaData_accessor_storage = null;
18
+ get tableMetaData() { return this.#tableMetaData_accessor_storage; }
19
+ set tableMetaData(value) { this.#tableMetaData_accessor_storage = value; }
20
+ #dialog_accessor_storage;
21
+ get dialog() { return this.#dialog_accessor_storage; }
22
+ set dialog(value) { this.#dialog_accessor_storage = value; }
23
+ #sort_accessor_storage = [];
24
+ get sort() { return this.#sort_accessor_storage; }
25
+ set sort(value) { this.#sort_accessor_storage = value; }
26
+ #originalSort = [];
27
+ async show(sort) {
28
+ this.#originalSort = structuredClone(sort);
29
+ this.sort = structuredClone(sort);
30
+ this.dialog.returnValue = '';
31
+ this.dialog?.show();
32
+ return await new Promise((resolve) => {
33
+ this.#resolve = resolve;
34
+ });
35
+ }
36
+ hasChanges(sortA, sortB) {
37
+ return JSON.stringify(sortA) !== JSON.stringify(sortB);
38
+ }
39
+ #resolve;
40
+ static { this.styles = [
41
+ p,
42
+ niceBadgeStyles,
43
+ css `
44
+ :host {
45
+ display: grid;
46
+ }
47
+
48
+ md-dialog {
49
+ max-width: 450px;
50
+ width: calc(100vw - 24px);
51
+ }
52
+
53
+ main {
54
+ display: grid;
55
+
56
+ data-table-core-settings-sort-item {
57
+ z-index: 0;
58
+ }
59
+
60
+ p[no-sort] {
61
+ opacity: 0.8;
62
+ text-align: center;
63
+ }
64
+ }
65
+
66
+ div[slot='headline'] {
67
+ display: grid;
68
+ gap: 0px;
69
+
70
+ p {
71
+ font-size: 13px;
72
+ line-height: 14px;
73
+ opacity: 0.8;
74
+ }
75
+ }
76
+
77
+ add-container {
78
+ display: grid;
79
+ position: relative;
80
+ }
81
+
82
+ div[slot='actions'] {
83
+ display: flex;
84
+ justify-content: space-between;
85
+ gap: 8px;
86
+ }
87
+ `,
88
+ ]; }
89
+ render() {
90
+ const columnsNotInSort = this.tableMetaData?.itemMetaData.filter((item) => !item.disableSort && !this.sort.some((sort) => sort.key === item.key)) ?? [];
91
+ return html ` <md-dialog
92
+ @open=${(e) => {
93
+ dialogOpenNavigationHack(e.target);
94
+ dialogZIndexHack(e.target);
95
+ }}
96
+ @close=${(e) => {
97
+ if (e.target.returnValue === 'apply' || e.target.returnValue === 'cancel' || e.target.returnValue === 'navigation-close') {
98
+ dialogCloseNavigationHack(e.target);
99
+ return this.#resolve(e.target.returnValue);
100
+ }
101
+ e.preventDefault();
102
+ }}
103
+ >
104
+ <div slot="headline">
105
+ <div>Advanced sort</div>
106
+ <p>Max ${this.tableMetaData?.maxCustomSortColumns ?? 4} sort columns</p>
107
+ </div>
108
+ <main slot="content">
109
+ <form
110
+ @item-drop=${(e) => {
111
+ e.stopPropagation();
112
+ const items = this.sort ?? [];
113
+ //HoverIndex cannot be dropped beyond the length of the array
114
+ const hoverIndex = Math.min(e.hoverIndex, items.length - 1);
115
+ //Ignore if item goes back to where it started
116
+ if (hoverIndex !== e.originIndex) {
117
+ const temp = items[e.originIndex];
118
+ items.splice(e.originIndex, 1);
119
+ items.splice(hoverIndex, 0, temp);
120
+ }
121
+ this.requestUpdate('sort');
122
+ }}
123
+ >
124
+ ${!this.sort.length
125
+ ? html `<p no-sort>No sort columns</p>`
126
+ : repeat(
127
+ //sort by sort order in this.sort
128
+ this.sort, (sort) => sort.key, (sort, index) => html `<data-table-core-settings-sort-item
129
+ .index=${index}
130
+ .name=${this.tableMetaData?.itemMetaData.find((item) => item.key === sort.key)?.friendlyName ?? sort.key}
131
+ sort-direction=${sort.direction}
132
+ ?disable-drag=${this.sort.length === 1}
133
+ @sort-direction-changed=${(e) => {
134
+ this.sort[index].direction = e.target.sortDirection;
135
+ this.requestUpdate('sort');
136
+ }}
137
+ @delete=${() => {
138
+ this.sort.splice(index, 1);
139
+ this.requestUpdate('sort');
140
+ }}
141
+ ></data-table-core-settings-sort-item>`)}
142
+ </form>
143
+ </main>
144
+ <div slot="actions">
145
+ <add-container>
146
+ <md-text-button
147
+ ?disabled=${this.sort.length >= (this.tableMetaData?.maxCustomSortColumns ?? 4)}
148
+ id="menu-anchor"
149
+ leading-icon
150
+ @click=${(e) => {
151
+ e.preventDefault();
152
+ const root = e.target.getRootNode();
153
+ const menu = root.querySelector('#menu');
154
+ menu.open = !menu.open;
155
+ }}
156
+ >
157
+ <span>Add sort column</span>
158
+ <md-icon slot="icon">add</md-icon>
159
+ </md-text-button>
160
+
161
+ <md-menu
162
+ id="menu"
163
+ anchor="menu-anchor"
164
+ positioning="fixed"
165
+ @close-menu=${(e) => {
166
+ e.detail.itemPath?.[0]?.action?.();
167
+ }}
168
+ >
169
+ ${repeat(columnsNotInSort, (column) => column.key, (column) => html `<md-menu-item
170
+ .action=${() => {
171
+ this.sort.push({ key: column.key, direction: 'asc' });
172
+ this.requestUpdate('sort');
173
+ }}
174
+ >
175
+ <md-icon slot="start">sort_by_alpha</md-icon>
176
+ ${column.friendlyName ?? column.key}
177
+ </md-menu-item>`)}
178
+ </md-menu>
179
+ </add-container>
180
+ <div>
181
+ <md-text-button @click=${() => this.dialog?.close('cancel')}>Cancel</md-text-button>
182
+ <md-filled-tonal-button
183
+ ?disabled=${!this.hasChanges(this.sort, this.#originalSort)}
184
+ @click=${() => {
185
+ this.dialog?.close('apply');
186
+ this.dispatchEvent(new Event('sort-changed'));
187
+ }}
188
+ >Apply</md-filled-tonal-button
189
+ >
190
+ </div>
191
+ </div>
192
+ </md-dialog>`;
193
+ }
194
+ };
195
+ __decorate([
196
+ property({ type: Object })
197
+ ], TitaniumDataTableCoreSettingsSortDialog.prototype, "tableMetaData", null);
198
+ __decorate([
199
+ query('md-dialog')
200
+ ], TitaniumDataTableCoreSettingsSortDialog.prototype, "dialog", null);
201
+ __decorate([
202
+ state()
203
+ ], TitaniumDataTableCoreSettingsSortDialog.prototype, "sort", null);
204
+ TitaniumDataTableCoreSettingsSortDialog = __decorate([
205
+ customElement('titanium-data-table-core-settings-sort-dialog')
206
+ ], TitaniumDataTableCoreSettingsSortDialog);
207
+ export { TitaniumDataTableCoreSettingsSortDialog };
208
+ //# sourceMappingURL=data-table-core-settings-sort-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-core-settings-sort-dialog.js","sourceRoot":"","sources":["data-table-core-settings-sort-dialog.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,18 @@ import '@material/web/checkbox/checkbox';
2
2
  import '@material/web/icon/icon';
3
3
  import '@material/web/focus/md-focus-ring';
4
4
  import '@material/web/ripple/ripple';
5
- import './data-table-core-settings-dialog';
6
- import { TitaniumDataTableCoreItemSettings } from './data-table-core-settings-dialog';
5
+ import '@material/web/menu/menu';
6
+ import '@material/web/menu/menu-item';
7
+ import '@material/web/iconbutton/icon-button';
8
+ import './data-table-core-settings-choose-columns-dialog';
9
+ import './data-table-core-settings-sort-dialog';
10
+ import { TitaniumDataTableCoreItemSettings } from './data-table-core-settings-choose-columns-dialog';
7
11
  import { CSSResult, CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
8
12
  export type TitaniumDataTableCoreMetaData<T extends object> = {
9
13
  uniqueKey: (item: T) => string;
10
14
  itemLinkUrl?: (item: T) => string;
11
15
  itemMetaData: TitaniumDataTableCoreItemMetaData<T>[];
16
+ maxCustomSortColumns?: number;
12
17
  };
13
18
  export type TitaniumDataTableCoreItemMetaData<T extends object> = {
14
19
  key: string;
@@ -417,8 +422,8 @@ export declare class TitaniumDataTableCore<T extends object> extends TitaniumDat
417
422
  * Array of currently selected data table objects
418
423
  */
419
424
  accessor selected: Array<T>;
420
- private accessor settingsDialog;
421
- accessor countOfCustomSettingsApplied: number;
425
+ private accessor chooseColumnsDialog;
426
+ private accessor sortDialog;
422
427
  /**
423
428
  * Local storage key to save user settings for this data table.
424
429
  */
@@ -432,7 +437,7 @@ export declare class TitaniumDataTableCore<T extends object> extends TitaniumDat
432
437
  updated(changedProps: PropertyValues<this>): void;
433
438
  selectAll(): void;
434
439
  deselectAll(): void;
435
- showSettingsDialog(): void;
440
+ resetSort(): void;
436
441
  orderByUserPreference(itemMetaData: TitaniumDataTableCoreItemMetaData<T>[], userSettings: TitaniumDataTableCoreItemSettings[]): TitaniumDataTableCoreItemMetaData<T>[];
437
442
  static styles: CSSResult[];
438
443
  render(): TemplateResult<1>;