@3t-transform/threeteeui 0.2.85 → 0.2.87

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 (63) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tttx-data-pattern.cjs.entry.js +25 -0
  3. package/dist/cjs/tttx-expander.cjs.entry.js +17 -6
  4. package/dist/cjs/{tttx-filter.cjs.entry.js → tttx-filter_4.cjs.entry.js} +209 -0
  5. package/dist/cjs/tttx-multiselect-box.cjs.entry.js +2 -2
  6. package/dist/cjs/tttx-tag.cjs.entry.js +3 -2
  7. package/dist/cjs/tttx.cjs.js +1 -1
  8. package/dist/collection/collection-manifest.json +2 -1
  9. package/dist/collection/components/atoms/tttx-tag/tttx-tag.css +0 -1
  10. package/dist/collection/components/atoms/tttx-tag/tttx-tag.js +20 -1
  11. package/dist/collection/components/atoms/tttx-tag/tttx-tag.stories.js +8 -3
  12. package/dist/collection/components/molecules/tttx-expander/tttx-expander.css +13 -0
  13. package/dist/collection/components/molecules/tttx-expander/tttx-expander.js +26 -10
  14. package/dist/collection/components/molecules/tttx-expander/tttx-expander.stories.js +10 -10
  15. package/dist/collection/components/molecules/tttx-multiselect-box/tttx-multiselect-box.css +1 -3
  16. package/dist/collection/components/molecules/tttx-multiselect-box/tttx-multiselect-box.js +1 -1
  17. package/dist/collection/components/organisms/tttx-data-pattern/tttx-data-pattern.css +3 -0
  18. package/dist/collection/components/organisms/tttx-data-pattern/tttx-data-pattern.js +99 -0
  19. package/dist/collection/components/organisms/tttx-data-pattern/tttx-data-pattern.stories.js +35 -0
  20. package/dist/components/index.d.ts +1 -0
  21. package/dist/components/index.js +1 -0
  22. package/dist/components/tttx-data-pattern.d.ts +11 -0
  23. package/dist/components/tttx-data-pattern.js +86 -0
  24. package/dist/components/tttx-expander.js +20 -8
  25. package/dist/components/tttx-filter.js +1 -223
  26. package/dist/{esm/tttx-filter.entry.js → components/tttx-filter2.js} +44 -8
  27. package/dist/components/tttx-list.js +1 -92
  28. package/dist/{esm/tttx-list.entry.js → components/tttx-list2.js} +33 -9
  29. package/dist/components/tttx-multiselect-box.js +2 -2
  30. package/dist/components/tttx-sorter.js +1 -142
  31. package/dist/{esm/tttx-sorter.entry.js → components/tttx-sorter2.js} +38 -8
  32. package/dist/components/tttx-tag.js +5 -3
  33. package/dist/components/tttx-toolbar.js +1 -47
  34. package/dist/{esm/tttx-toolbar.entry.js → components/tttx-toolbar2.js} +25 -7
  35. package/dist/esm/loader.js +1 -1
  36. package/dist/esm/tttx-data-pattern.entry.js +21 -0
  37. package/dist/esm/tttx-expander.entry.js +17 -6
  38. package/dist/esm/tttx-filter_4.entry.js +395 -0
  39. package/dist/esm/tttx-multiselect-box.entry.js +2 -2
  40. package/dist/esm/tttx-tag.entry.js +3 -2
  41. package/dist/esm/tttx.js +1 -1
  42. package/dist/tttx/p-003798cb.entry.js +1 -0
  43. package/dist/tttx/p-02515882.entry.js +1 -0
  44. package/dist/tttx/p-1190c6e5.entry.js +1 -0
  45. package/dist/tttx/p-a2d59582.entry.js +1 -0
  46. package/dist/tttx/{p-8503e35b.entry.js → p-ebcf2c5f.entry.js} +1 -1
  47. package/dist/tttx/tttx.esm.js +1 -1
  48. package/dist/types/components/atoms/tttx-tag/tttx-tag.d.ts +1 -0
  49. package/dist/types/components/atoms/tttx-tag/tttx-tag.stories.d.ts +6 -0
  50. package/dist/types/components/molecules/tttx-expander/tttx-expander.d.ts +9 -3
  51. package/dist/types/components/organisms/tttx-data-pattern/tttx-data-pattern.d.ts +7 -0
  52. package/dist/types/components/organisms/tttx-data-pattern/tttx-data-pattern.stories.d.ts +13 -0
  53. package/dist/types/components.d.ts +26 -3
  54. package/package.json +1 -1
  55. package/dist/cjs/tttx-list.cjs.entry.js +0 -74
  56. package/dist/cjs/tttx-sorter.cjs.entry.js +0 -118
  57. package/dist/cjs/tttx-toolbar.cjs.entry.js +0 -35
  58. package/dist/tttx/p-0343ca04.entry.js +0 -1
  59. package/dist/tttx/p-4d349193.entry.js +0 -1
  60. package/dist/tttx/p-5ca83a07.entry.js +0 -1
  61. package/dist/tttx/p-7346c185.entry.js +0 -1
  62. package/dist/tttx/p-96d6a1ed.entry.js +0 -1
  63. package/dist/tttx/p-df198186.entry.js +0 -1
@@ -0,0 +1,21 @@
1
+ import { r as registerInstance, h, H as Host } from './index-65b1e0d1.js';
2
+
3
+ const tttxDataPatternCss = ":host{display:block}";
4
+
5
+ const TttxDataPattern = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.data = undefined;
9
+ this.sorteroptions = undefined;
10
+ this.filteroptions = undefined;
11
+ this.filterheader = 'Filter';
12
+ }
13
+ render() {
14
+ return (h(Host, null, h("div", { class: "container" }, h("tttx-toolbar", { border: true }, h("span", { slot: "before" }, h("tttx-sorter", { sorterKey: "data-pattern-list", fieldOptionsData: this.sorteroptions, defaultOption: "Sort by" }), h("tttx-filter", { "filter-options": JSON.stringify(this.filteroptions), showSelectAll: false, "show-option-icons": true, "filter-header": this.filterheader, "filter-key": "data-pattern-list" })), h("span", { slot: "after" }, h("tttx-standalone-input", { class: "qualifications-filter", showerrorbubble: false, inputicon: "search", inline: true, required: true, placeholder: "Search", type: "text",
15
+ // onInput={this.debounceFilter.bind(this)}
16
+ maxlength: 30 }))), h("tttx-toolbar", { border: false }, h("span", { slot: "before" }, h("tttx-button", { design: "primary", icon: "add" }, "Add"))), h("tttx-list", { data: this.data }))));
17
+ }
18
+ };
19
+ TttxDataPattern.style = tttxDataPatternCss;
20
+
21
+ export { TttxDataPattern as tttx_data_pattern };
@@ -1,21 +1,32 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-65b1e0d1.js';
2
2
 
3
- const tttxExpanderCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:block}.expander{border-bottom:1px solid #d5d5d5}.expander .panel{display:flex;gap:4px;height:36px;align-items:center;justify-content:space-between;cursor:pointer}.expander .panel .panel-frame{display:flex;gap:4px;height:36px;align-items:center}.expander .panel .panel-frame .name{font-size:16px;font-weight:500;color:#212121}.expander .panel .left-icons,.expander .panel .expand-button{display:flex;height:36px;width:36px;align-items:center;justify-content:center}.expander .panel .left-icons>tttx-icon,.expander .panel .expand-button>tttx-icon{height:24px;cursor:inherit}.expander .content{margin-top:8px;margin-bottom:8px}";
3
+ const tttxExpanderCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:block}.expander{border-bottom:1px solid #d5d5d5}.expander[open] .panel .open{display:initial}.expander[open] .panel .closed{display:none}.expander:not([open]) .panel .open{display:none}.expander:not([open]) .panel .closed{display:initial}.expander .panel{display:flex;gap:4px;height:36px;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}.expander .panel .panel-frame{display:flex;gap:4px;height:36px;align-items:center}.expander .panel .panel-frame .name{font-size:16px;font-weight:500;color:#212121}.expander .panel .left-icons,.expander .panel .expand-button{display:flex;height:36px;width:36px;align-items:center;justify-content:center}.expander .panel .left-icons>tttx-icon,.expander .panel .expand-button>tttx-icon{height:24px;cursor:inherit}.expander .content{margin-top:8px;margin-bottom:8px}";
4
4
 
5
5
  const TttxExpander = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
- this.contentExpanded = createEvent(this, "contentExpanded", 7);
8
+ this.toggleExpander = createEvent(this, "toggleExpander", 7);
9
9
  this.name = undefined;
10
- this.expanded = false;
10
+ this.open = false;
11
11
  this.lefticon = undefined;
12
12
  this.lefticoncolor = undefined;
13
+ this.isExpanded = false;
13
14
  }
14
- handleExpandedClick() {
15
- this.contentExpanded.emit(this.expanded);
15
+ componentWillRender() {
16
+ this.isExpanded = this.open;
17
+ }
18
+ handleExpand() {
19
+ // pre-render logic, so the attribute check is reversed
20
+ if (this.expander.getAttribute('open') === null) {
21
+ this.isExpanded = true;
22
+ }
23
+ else {
24
+ this.isExpanded = false;
25
+ }
26
+ this.toggleExpander.emit({ open: this.isExpanded, name: this.name });
16
27
  }
17
28
  render() {
18
- return (h(Host, null, h("div", { class: "expander" }, h("div", { class: "panel", onClick: this.handleExpandedClick.bind(this), "aria-expanded": `${this.expanded}` }, h("span", { class: "panel-frame" }, this.lefticon && (h("span", { class: "left-icons" }, h("tttx-icon", { icon: this.lefticon, color: this.lefticoncolor }))), h("span", { class: "name" }, this.name)), h("span", { class: "expand-button" }, h("tttx-icon", { icon: this.expanded ? 'expand_more' : 'chevron_right', color: "black" }))), this.expanded && (h("div", { class: "content" }, h("slot", null))))));
29
+ return (h(Host, null, h("details", { class: "expander", open: this.open, "aria-owns": "expanderContent", "aria-expanded": `${this.isExpanded}`, onClick: this.handleExpand.bind(this), ref: el => (this.expander = el) }, h("summary", { class: "panel" }, h("span", { class: "panel-frame" }, this.lefticon && (h("span", { class: "left-icons" }, h("tttx-icon", { icon: this.lefticon, color: this.lefticoncolor }))), h("span", { class: "name" }, this.name)), h("span", { class: "expand-button" }, h("tttx-icon", { class: "open", icon: "expand_more", color: "black" }), h("tttx-icon", { class: "closed", icon: "chevron_right", color: "black" }))), h("div", { id: "expanderContent", class: "content", tabindex: "0" }, h("slot", null)))));
19
30
  }
20
31
  };
21
32
  TttxExpander.style = tttxExpanderCss;
@@ -0,0 +1,395 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, F as Fragment } from './index-65b1e0d1.js';
2
+ import { p as purify, d as domSanitiserOptions } from './domsanitiser.options-68752a19.js';
3
+ import './_commonjsHelpers-9943807e.js';
4
+
5
+ const tttxFilterCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.filter-container{background-color:white;position:relative}.filter-container .filter-button{display:inline-flex;justify-content:center;align-items:center;font-size:14px;font-weight:400;font-family:\"Roboto\", serif;text-transform:uppercase;color:#212121;border:1px solid #d5d5d5;border-radius:4px;background:transparent;height:36px;width:95px;margin:0;padding-right:16px;cursor:pointer}@media (max-width: 475px){.filter-container .filter-button{padding-left:4px}}.filter-container .filter-button .filter-icon{padding-left:8px;padding-right:4px}.filter-container .filter-button.--list-icon{font-size:0;width:36px;height:36px;padding:0}.filter-container .filter-button.--list-icon .filter-icon{padding:0}.filter-container .filter-button.--list-icon:hover{background:#e3e3e3}.filter-container .filter-button.--table-icon{font-size:0;width:36px;height:36px;padding:0;border:none}.filter-container .filter-button.--table-icon .filter-icon{padding:0;width:24px;height:24px}.filter-container .filter-button.--table-icon:hover{background:#e3e3e3;border-radius:50%;width:36px;height:36px}.filter-container .filter-button:hover{background:#e3e3e3}.filter-container .filter-popover-container{display:flex;flex-direction:column;gap:8px;border-radius:4px;box-shadow:0px 1px 5px #1111114D;position:absolute;top:36px;left:0px;background-color:white;padding:8px 16px}.filter-container .filter-popover-container .filter-header{color:#757575;text-transform:uppercase;font-size:14px;font-weight:500;font-family:\"Roboto\", serif;padding-top:4px;padding-bottom:5px}.filter-container .filter-popover-container .filter-options-container{display:flex;flex-direction:column;gap:4px;border-top:1px solid #d5d5d5;border-bottom:1px solid #d5d5d5;padding-bottom:8px}.filter-container .filter-popover-container .filter-option{display:flex;flex-direction:row;align-items:center;min-height:36px;padding-left:8px}.filter-container .filter-popover-container .filter-option .select-all-icon{padding-right:6px}.filter-container .filter-popover-container .filter-option .checkbox-icon{padding-right:8px}.filter-container .filter-popover-container .filter-option .filter-label{padding-left:8px;padding-bottom:3px;font-size:16px;font-weight:500;font-family:\"Roboto\", serif}.filter-container .filter-popover-container .filter-option:first-child{padding-top:8px}.filter-container .filter-popover-container .filter-popover-button-container{display:flex;justify-content:flex-end;align-items:center}.filter-container .filter-popover-container .filter-popover-button-container .close-button{height:36px;width:74px;background-color:white;border:1px solid #d5d5d5;border-radius:4px;text-transform:uppercase;margin-right:8px;font-size:14px;font-weight:400;font-family:\"Roboto\", serif;color:#212121}.filter-container .filter-popover-container .filter-popover-button-container .apply-button{height:36px;width:73px;background-color:#1479c6;color:white;border-radius:4px;border:none;text-transform:uppercase;font-size:14px;font-weight:400;font-family:\"Roboto\", serif}.filter-container .filter-popover-container.--with-search-field .filter-header{border-bottom:1px solid #d5d5d5}.filter-container .filter-popover-container.--with-search-field .search-field-container{position:relative;color:#d5d5d5;height:36px}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-icon{position:absolute;top:6px;left:8px}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input{padding-left:36px;border:1px solid #d5d5d5;border-radius:4px;height:36px;width:100%;font-size:16px;font-family:\"Roboto\", serif;font-weight:500;box-sizing:border-box}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input:focus-visible,.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input:focus{outline:none;border:1px solid #1479c6}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input::placeholder{color:#9e9e9e;font-size:16px;font-family:\"Roboto\", serif;font-weight:500}";
6
+
7
+ const TttxFilter = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.filterChangeEvent = createEvent(this, "filterChangeEvent", 7);
11
+ this.toggleFilter = createEvent(this, "toggleFilter", 7);
12
+ this.filterKey = undefined;
13
+ this.filterOptions = [
14
+ { optionIcon: 'cancel', optionIconColor: 'darkred', optionText: 'Expired' },
15
+ { optionIcon: 'warning', optionIconColor: 'orange', optionText: 'Expiring soon' },
16
+ { optionIcon: 'check_circle', optionIconColor: 'green', optionText: 'Active' },
17
+ ];
18
+ this.showSelectAll = true;
19
+ this.showSearchField = false;
20
+ this.showOptionIcons = true;
21
+ this.filterButtonStyle = 'list filter';
22
+ this.filterHeader = 'Qualification status';
23
+ this.defaultFilterOptions = undefined;
24
+ this.popoverWidth = '193px';
25
+ this.showPopover = false;
26
+ this.displayedFilterSettings = undefined;
27
+ this.selectedFilters = undefined;
28
+ this.filterSearchTerm = '';
29
+ this.allSelected = undefined;
30
+ }
31
+ handleCloseFilter() {
32
+ this.showPopover = false;
33
+ }
34
+ emitFilterEvent() {
35
+ this.filterChangeEvent.emit({
36
+ selectedFilters: this.selectedFilters,
37
+ filterKey: this.filterKey,
38
+ allSelected: this.allSelected,
39
+ });
40
+ }
41
+ onFilterButtonClick() {
42
+ this.togglePopover();
43
+ }
44
+ onCloseButtonClick() {
45
+ this.togglePopover();
46
+ }
47
+ onApplyFilterButtonClick() {
48
+ this.emitFilterEvent();
49
+ this.togglePopover();
50
+ }
51
+ onFilterOptionSelected(selectedOption) {
52
+ this.allSelected = false;
53
+ if (this.selectedFilters.includes(selectedOption)) {
54
+ this.selectedFilters = this.selectedFilters.filter((filter) => filter != selectedOption);
55
+ }
56
+ else {
57
+ this.selectedFilters = [...this.selectedFilters, selectedOption];
58
+ }
59
+ }
60
+ componentWillLoad() {
61
+ this.displayedFilterSettings = this.parseFilterOptions();
62
+ if (this.defaultFilterOptions !== undefined) {
63
+ const parsedDefaultFilterOptions = this.parseDefaultFilterOptions();
64
+ this.selectedFilters = parsedDefaultFilterOptions;
65
+ let allSelected = true;
66
+ this.parseFilterOptions().map(filterOption => {
67
+ if (!this.selectedFilters.includes(filterOption.optionText)) {
68
+ allSelected = false;
69
+ }
70
+ });
71
+ this.allSelected = allSelected;
72
+ }
73
+ else {
74
+ this.allSelected = true;
75
+ this.selectedFilters = this.displayedFilterSettings.map((filterOption) => filterOption.optionText);
76
+ }
77
+ }
78
+ togglePopover() {
79
+ this.showPopover = !this.showPopover;
80
+ this.toggleFilter.emit(this.showPopover);
81
+ // if(!this.showPopover) {
82
+ // // this._focussedElementIndex = -1;
83
+ // }
84
+ }
85
+ // Commented out keyboard interaction for now
86
+ // @Listen('keyup')
87
+ // handleKeyUp(event: KeyboardEvent) {
88
+ // const keyboardEventValue = event.key;
89
+ // if (document.activeElement.id != `filter__${this.filterKey}`) return;
90
+ // if (event.key == " " || event.code == "Space" || event.keyCode == 32) {
91
+ // if (this._focussedElementIndex == 0) {
92
+ // this.onSelectAllClick()
93
+ // } else {
94
+ // const options = this.el.shadowRoot.querySelectorAll('.filter-option') as HTMLElement[];
95
+ // this.onFilterOptionSelected(options[this._focussedElementIndex].textContent)
96
+ // }
97
+ // return;
98
+ // }
99
+ // switch (keyboardEventValue) {
100
+ // case 'Enter':
101
+ // if(!this.showPopover) {
102
+ // this.showPopover=true
103
+ // } else {
104
+ // this.emitFilterEvent()
105
+ // }
106
+ // break;
107
+ // case 'Escape':
108
+ // this.showPopover = false;
109
+ // this._focussedElementIndex = -1;
110
+ // break;
111
+ // case 'ArrowDown':
112
+ // this.showPopover = true;
113
+ // if (this._focussedElementIndex == -1) {
114
+ // this._focussedElementIndex = 0;
115
+ // } else {
116
+ // const options = this.el.shadowRoot.querySelectorAll('.filter-option') as HTMLElement[];
117
+ // const currentOption = options[this._focussedElementIndex] as HTMLElement;
118
+ // currentOption.blur();
119
+ // // options[this._focussedElementIndex].focus();
120
+ // this._focussedElementIndex + 1 < options.length ? this._focussedElementIndex++ : (this._focussedElementIndex = 0);
121
+ // }
122
+ // break;
123
+ // case 'ArrowUp':
124
+ // if (this._focussedElementIndex == -1) {
125
+ // this.showPopover = true;
126
+ // this._focussedElementIndex = 0;
127
+ // } else {
128
+ // const options = this.el.shadowRoot.querySelectorAll('.filter-option') as HTMLElement[];
129
+ // const currentOption = options[this._focussedElementIndex] as HTMLElement;
130
+ // currentOption.blur();
131
+ // // options[this._focussedElementIndex].focus();
132
+ // this._focussedElementIndex > 0 ? this._focussedElementIndex-- : (this._focussedElementIndex = options.length - 1);
133
+ // }
134
+ // break;
135
+ // }
136
+ // }
137
+ handleFilterChange(event) {
138
+ const target = event.target;
139
+ this.filterSearchTerm = target.value;
140
+ const filteredResults = this.parseFilterOptions().filter((filterOption) => {
141
+ const lowercaseOption = filterOption.optionText.toLowerCase();
142
+ const filterTerm = this.filterSearchTerm.toLowerCase();
143
+ return lowercaseOption.includes(filterTerm);
144
+ });
145
+ this.displayedFilterSettings = filteredResults;
146
+ }
147
+ onSelectAllClick() {
148
+ this.allSelected = !this.allSelected;
149
+ if (this.allSelected) {
150
+ this.displayedFilterSettings.forEach((filterSetting) => { this.selectedFilters = [...this.selectedFilters, filterSetting.optionText]; });
151
+ }
152
+ else {
153
+ this.selectedFilters = [];
154
+ }
155
+ }
156
+ getFilterButtonClassName(buttonStyle) {
157
+ switch (buttonStyle) {
158
+ case 'table icon': {
159
+ return '--table-icon';
160
+ }
161
+ case 'list icon': {
162
+ return '--list-icon';
163
+ }
164
+ default: {
165
+ return '';
166
+ }
167
+ }
168
+ }
169
+ parseFilterOptions() {
170
+ return typeof this.filterOptions === 'string' ? JSON.parse(this.filterOptions) : this.filterOptions;
171
+ }
172
+ parseDefaultFilterOptions() {
173
+ return typeof this.defaultFilterOptions === 'string' ? JSON.parse(this.defaultFilterOptions) : this.defaultFilterOptions;
174
+ }
175
+ render() {
176
+ const filterPopoverContainerClassNameModifier = this.showSearchField ? '--with-search-field' : '';
177
+ const selectAllCheckboxIcon = this.allSelected ? 'check_box' : 'check_box_outline_blank';
178
+ const selectAllCheckboxColor = this.allSelected ? 'blue' : 'grey';
179
+ const buttonStyleClassNameModifier = this.getFilterButtonClassName(this.filterButtonStyle);
180
+ const filterKey = `filter__${this.filterKey}`;
181
+ return (h(Host, { id: filterKey }, h("div", { class: 'filter-container' }, h("button", { class: `filter-button ${buttonStyleClassNameModifier}`, type: 'button', onClick: this.onFilterButtonClick.bind(this) }, h("tttx-icon", { icon: 'filter_list', class: 'filter-icon', color: 'black' }), "Filter"), this.showPopover && (h("div", { class: `filter-popover-container ${filterPopoverContainerClassNameModifier}`, style: { width: this.popoverWidth } }, h("div", { class: 'filter-header' }, this.filterHeader), this.showSearchField ? (h("div", { class: 'search-field-container' }, h("tttx-icon", { icon: 'search', class: 'search-icon' }), h("input", { type: 'text', class: 'search-input', placeholder: 'Search', value: this.filterSearchTerm, onInput: this.handleFilterChange.bind(this) }))) : (''), h("div", { class: 'filter-options-container' }, this.showSelectAll ? (h("div", { class: 'filter-option', tabIndex: -1, onClick: this.onSelectAllClick.bind(this) }, h("tttx-icon", { icon: selectAllCheckboxIcon, color: selectAllCheckboxColor, class: 'select-all-icon' }), h("label", { class: 'filter-label' }, "Select all"))) : (''), this.displayedFilterSettings.map((option) => {
182
+ const checkboxIcon = this.selectedFilters.includes(option.optionText) ? 'check_box' : 'check_box_outline_blank';
183
+ const checkboxColor = this.selectedFilters.includes(option.optionText) ? 'blue' : 'grey';
184
+ return h("div", { class: 'filter-option', tabIndex: -1, onClick: () => this.onFilterOptionSelected(option.optionText), key: option.optionText }, h("tttx-icon", { icon: checkboxIcon, color: checkboxColor, class: 'checkbox-icon' }), this.showOptionIcons && h("tttx-icon", { icon: option.optionIcon, color: option.optionIconColor }), h("label", { class: 'filter-label' }, option.optionText));
185
+ })), h("div", { class: 'filter-popover-button-container' }, h("button", { type: 'button', class: 'close-button', onClick: this.onCloseButtonClick.bind(this) }, "Close"), h("button", { type: 'button', class: 'apply-button', onClick: this.onApplyFilterButtonClick.bind(this) }, "Apply")))))));
186
+ }
187
+ get el() { return getElement(this); }
188
+ };
189
+ TttxFilter.style = tttxFilterCss;
190
+
191
+ const tttxListCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-family:\"Material Symbols Rounded\", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}:host{display:flex;flex-direction:column}.list{margin:0;padding:0}li{display:flex;align-items:flex-start}li.item{list-style:none;margin:0;padding:8px;border-bottom:1px solid #d5d5d5;min-height:36px}li.item:first-of-type{border-top:1px solid #d5d5d5}li.item.clickable:hover{cursor:pointer}li.item.toggleable:hover{cursor:pointer}li.item.active{background-color:rgba(17, 17, 17, 0.1)}li.item.active:hover{background-color:rgba(17, 17, 17, 0.15)}li.item.selected{background-color:#ebfbfc}li.item.selected:hover{background-color:#e0f8f9}li.item.selected.active{background-color:#ccf3f6}li.item.selected.active:hover{background-color:#bff0f3}li.item .icons{display:flex;justify-content:flex-end;flex-grow:1;align-items:center;height:36px}li.item .icons tttx-icon:hover{cursor:pointer}li.item .icons *{display:flex}li.item:hover{background-color:rgba(17, 17, 17, 0.05)}.align-right{margin-left:auto}.item-content{display:flex;align-items:center;flex-grow:2;min-height:36px}.checkbox{padding:6px;margin-left:-8px}";
192
+
193
+ const TttxList = class {
194
+ constructor(hostRef) {
195
+ registerInstance(this, hostRef);
196
+ this.rowClick = createEvent(this, "listRowClick", 7);
197
+ this.rowCheckboxClick = createEvent(this, "listRowCheckboxClick", 7);
198
+ this.data = undefined;
199
+ this._data = undefined;
200
+ this.name = undefined;
201
+ }
202
+ onDataChange() {
203
+ if (!this.data) {
204
+ return;
205
+ }
206
+ if (typeof this.data === 'string') {
207
+ this._data = JSON.parse(this.data);
208
+ }
209
+ else {
210
+ this._data = [...this.data];
211
+ }
212
+ for (const data of this._data) {
213
+ if (data.hasCheckbox && data.checked === undefined) {
214
+ data.checked = false;
215
+ }
216
+ }
217
+ }
218
+ componentWillLoad() {
219
+ // dynamic constructor: any props can be added later
220
+ this.onDataChange();
221
+ }
222
+ onRowCheckboxHandler(event, item) {
223
+ event.stopPropagation();
224
+ if (!item.rowData)
225
+ return;
226
+ this.rowCheckboxClick.emit({ key: item.key, name: this.name, data: item.rowData });
227
+ }
228
+ onRowClickHandler(item) {
229
+ if ((!item.clickable && !item.toggleable) || !item.rowData)
230
+ return;
231
+ this.rowClick.emit({ key: item.key, name: this.name, data: item.rowData });
232
+ }
233
+ renderListItem(item) {
234
+ const cleanHTML = purify.sanitize(item.element, domSanitiserOptions);
235
+ return (h(Fragment, null, item.hasCheckbox && (h("div", { class: "checkbox" }, h("tttx-icon", { icon: item.checked ? 'check_box' : 'check_box_outline_blank', color: item.checked ? 'blue' : 'grey', onClick: event => {
236
+ this.onRowCheckboxHandler(event, item);
237
+ } }))), item.element && h("span", { class: "item-content", innerHTML: cleanHTML }), item.icon && (h("span", { class: "icons" }, h("tttx-icon", { class: "align-right", icon: item.icon, color: 'black' })))));
238
+ }
239
+ render() {
240
+ if (!this._data)
241
+ return;
242
+ return (h("ul", { class: "list" }, this._data.map((item) => (h("li", { key: item.key, class: 'item' +
243
+ (item.clickable ? ' clickable' : '') +
244
+ (item.toggleable ? ' toggleable' : '') +
245
+ (item.checked ? ' selected' : '') +
246
+ (item.active ? ' active' : ''), onClick: () => {
247
+ this.onRowClickHandler(item);
248
+ } }, this.renderListItem(item))))));
249
+ }
250
+ static get watchers() { return {
251
+ "data": ["onDataChange"]
252
+ }; }
253
+ };
254
+ TttxList.style = tttxListCss;
255
+
256
+ const tttxSorterCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.sorter-container{display:flex;flex-direction:row;position:relative;border:1px solid #d5d5d5;border-radius:4px;font-weight:400;box-sizing:border-box;height:36px;cursor:pointer;width:220px}@media (max-width: 475px){.sorter-container{width:68px}}.sorter-container .arrow-toggle-button{display:inline-flex;justify-content:center;align-items:center;flex-direction:column;background-color:white;border:none;border-bottom-left-radius:4px;border-top-left-radius:4px}@media (max-width: 475px){.sorter-container .arrow-toggle-button{padding-right:0px;padding-left:8px}}.sorter-container .arrow-toggle-button .hydrated{display:flex;justify-content:center;align-items:center;cursor:pointer}.sorter-container .arrow-toggle-button span{display:block;margin:auto;line-height:16px}.sorter-container .arrow-toggle-button .material-symbols-rounded{color:#212121}.sorter-container .dropdown-selector{display:inline-flex;position:relative;flex-grow:1}.sorter-container .dropdown-selector .dropdown-selector-button{display:inline-flex;flex-direction:row;gap:4px;padding-right:4px;align-items:center;color:#212121;width:100%}@media (max-width: 475px){.sorter-container .dropdown-selector .dropdown-selector-button .dropdown-selector-text{display:none}}.sorter-container .dropdown-selector .dropdown-selector-chevron{display:inline-flex;margin-left:auto;right:0;top:0;flex-direction:row;align-items:center;height:36px}.sorter-container .dropdown-selector .dropdown-selector-chevron .hydrated{height:24px;cursor:pointer}@media (max-width: 475px){.sorter-container .dropdown-selector .dropdown-selector-chevron{padding-right:2px}}.sorter-container .dropdown-options-list{position:absolute;top:36px;left:0;z-index:1;width:220px;line-height:21px;font-size:16px;border-radius:4px;padding-top:8px;padding-bottom:7px;box-shadow:0px 1px 5px #1111114D;box-sizing:border-box;background-color:white}@media (max-width: 475px){.sorter-container .dropdown-options-list{width:220px;padding-top:8px}}.sorter-container .dropdown-options-list .dropdown-option{padding:8px 16px;font-size:16px;line-height:21px}.sorter-container .dropdown-options-list .dropdown-option:hover,.sorter-container .dropdown-options-list .dropdown-option:focus{background-color:#ebfbfc}.sorter-container.--expanded{border-color:#1579c6}@media (max-width: 475px){.sorter-container.--expanded{border:none}}";
257
+
258
+ const TttxSorter = class {
259
+ constructor(hostRef) {
260
+ registerInstance(this, hostRef);
261
+ this.sorterChangeEvent = createEvent(this, "sorterChangeEvent", 7);
262
+ this.toggleSorter = createEvent(this, "toggleSorter", 7);
263
+ this.sorterKey = undefined;
264
+ this.defaultSortDirection = 'descending';
265
+ this.fieldOptionsData = null;
266
+ this.defaultOption = '';
267
+ this.selectedField = this.defaultOption;
268
+ this.sortDirection = this.defaultSortDirection;
269
+ this.dropdownExpand = false;
270
+ this.dropdownOptions = undefined;
271
+ }
272
+ handleCloseSorter() {
273
+ this.dropdownExpand = false;
274
+ }
275
+ emitSortEvent() {
276
+ this.sorterChangeEvent.emit({
277
+ sorterDirection: this.sortDirection,
278
+ sorterKey: this.sorterKey,
279
+ sortField: this.selectedField,
280
+ });
281
+ }
282
+ onSortToggleClick(event) {
283
+ event.preventDefault();
284
+ if (this.sortDirection == 'ascending') {
285
+ this.sortDirection = 'descending';
286
+ }
287
+ else {
288
+ this.sortDirection = 'ascending';
289
+ }
290
+ this.emitSortEvent();
291
+ }
292
+ onDropdownClicked() {
293
+ this.dropdownExpand = !this.dropdownExpand;
294
+ this.toggleSorter.emit(this.dropdownExpand);
295
+ }
296
+ onDropdownSelected(event) {
297
+ this.dropdownExpand = false;
298
+ const target = event.target;
299
+ this.selectedField = target.innerHTML;
300
+ this.emitSortEvent();
301
+ this.toggleSorter.emit(this.dropdownExpand);
302
+ }
303
+ // getOptionsList() {
304
+ // return this.el.shadowRoot.querySelectorAll('.dropdown-option');
305
+ // }
306
+ // /* istanbul ignore next */
307
+ // @Listen('keyup')
308
+ // handleKeyDown(ev: KeyboardEvent) {
309
+ // const keyboardEventValue = ev.key;
310
+ // if (document.activeElement.id != `sorter__${this.sorterKey}`) return;
311
+ // switch (keyboardEventValue) {
312
+ // case 'Enter':
313
+ // if (this._focussedElementIndex > -1) {
314
+ // const options = this.el.shadowRoot.querySelectorAll('.dropdown-option');
315
+ // this.selectedField = options[this._focussedElementIndex].innerHTML;
316
+ // this.emitSortEvent();
317
+ // }
318
+ // this.dropdownExpand = false;
319
+ // break;
320
+ // case 'Escape':
321
+ // this.dropdownExpand = false;
322
+ // break;
323
+ // case 'ArrowDown':
324
+ // this.dropdownExpand = true;
325
+ // if (this._focussedElementIndex > -1) {
326
+ // const options = this.getOptionsList();
327
+ // const currentOption = options[this._focussedElementIndex] as HTMLElement;
328
+ // currentOption.blur();
329
+ // options[this._focussedElementIndex].focus();
330
+ // this._focussedElementIndex + 1 < options.length ? this._focussedElementIndex++ : (this._focussedElementIndex = 0);
331
+ // } else {
332
+ // this._focussedElementIndex++;
333
+ // }
334
+ // break;
335
+ // case 'ArrowUp':
336
+ // this.dropdownExpand = true;
337
+ // if (this._focussedElementIndex == -1) {
338
+ // const options = this.getOptionsList();
339
+ // this._focussedElementIndex = options.length - 1;
340
+ // } else {
341
+ // const options = this.getOptionsList();
342
+ // const currentOption = options[this._focussedElementIndex] as HTMLElement;
343
+ // currentOption.blur();
344
+ // this._focussedElementIndex > 0 ? this._focussedElementIndex-- : (this._focussedElementIndex = options.length - 1);
345
+ // options[this._focussedElementIndex].focus();
346
+ // }
347
+ // break;
348
+ // }
349
+ // }
350
+ render() {
351
+ const parsedFieldOptionsData = typeof this.fieldOptionsData === 'string' ? JSON.parse(this.fieldOptionsData) : this.fieldOptionsData;
352
+ if (!this.fieldOptionsData)
353
+ return;
354
+ const arrowIcon = this.sortDirection == 'ascending' ? 'arrow_upward' : 'arrow_downward';
355
+ const chevronIcon = this.dropdownExpand ? 'expand_less' : 'expand_more';
356
+ const selectedOption = this.selectedField;
357
+ const dropdownSelectorClassNameModifier = this.dropdownExpand ? '--expanded' : '';
358
+ const sorterKey = `sorter__${this.sorterKey}`;
359
+ return (h(Host, { id: sorterKey }, h("div", { tabindex: 0, class: `sorter-container ${dropdownSelectorClassNameModifier}` }, h("button", { class: "arrow-toggle-button", type: "button", onClick: this.onSortToggleClick.bind(this) }, h("tttx-icon", { icon: arrowIcon, color: "black" })), h("div", { class: "dropdown-selector", onClick: this.onDropdownClicked.bind(this) }, h("div", { class: "dropdown-selector-button" }, h("div", { class: "dropdown-selector-text" }, selectedOption), h("div", { class: "dropdown-selector-chevron" }, h("tttx-icon", { icon: chevronIcon, color: "black" })))), this.dropdownExpand && (h("div", { class: "dropdown-options-list" }, parsedFieldOptionsData.sorterOptions.map(option => {
360
+ return (h("div", { class: "dropdown-option", tabIndex: -1, onClick: this.onDropdownSelected.bind(this), key: option.optionLabel }, option.optionLabel));
361
+ }))))));
362
+ }
363
+ get el() { return getElement(this); }
364
+ };
365
+ TttxSorter.style = tttxSorterCss;
366
+
367
+ const tttxToolbarCss = ".container{display:flex;align-items:flex-end;row-gap:8px;padding:8px 0;flex-wrap:wrap}.container.bordered{border-bottom:1px solid #d5d5d5}.desktop ::slotted([slot=before]){flex:1 1 0px}.desktop ::slotted([slot=center]){flex:0 1 fit-content}.desktop ::slotted([slot=after]){flex:1 1 0px}::slotted([slot=before]){display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px}::slotted([slot=center]){display:flex;justify-content:center;align-items:flex-end;flex-wrap:wrap;gap:8px}::slotted([slot=after]){display:flex;justify-content:end;align-items:flex-end;flex-wrap:wrap;gap:8px}";
368
+
369
+ const TttxToolbar = class {
370
+ constructor(hostRef) {
371
+ registerInstance(this, hostRef);
372
+ this.border = true;
373
+ this.viewSize = undefined;
374
+ }
375
+ handleResize() {
376
+ this.setViewSize();
377
+ }
378
+ async componentWillLoad() {
379
+ this.setViewSize();
380
+ }
381
+ setViewSize() {
382
+ if (window.innerWidth < 698) {
383
+ this.viewSize = 'mobile';
384
+ }
385
+ else {
386
+ this.viewSize = 'desktop';
387
+ }
388
+ }
389
+ render() {
390
+ return (h(Host, null, h("div", { class: `container ${this.border ? 'bordered' : ''} ${this.viewSize}` }, h("slot", { name: 'before' }), h("slot", { name: 'center' }), h("slot", { name: 'after' }))));
391
+ }
392
+ };
393
+ TttxToolbar.style = tttxToolbarCss;
394
+
395
+ export { TttxFilter as tttx_filter, TttxList as tttx_list, TttxSorter as tttx_sorter, TttxToolbar as tttx_toolbar };
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
  import { p as purify, d as domSanitiserOptions } from './domsanitiser.options-68752a19.js';
3
3
  import './_commonjsHelpers-9943807e.js';
4
4
 
5
- const tttxMultiselectBoxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:flex;gap:4px}.label{font-size:16px;font-style:normal;font-weight:500;line-height:normal}:host(.inline) .label{padding-top:8px}:host(.block){flex-direction:column}.dropdown-container{display:grid;position:relative;display:flex;flex-direction:column;width:100%}.dropdown-container:focus-visible{outline:none}.dropdown-container:focus .dropdown-selector{border:1px solid #1479c6}.dropdown-selector,.dropdown-body{display:flex;border-radius:4px;background-color:white}.dropdown-selector{grid-row:1;align-items:center;gap:8px;padding:6px 8px 6px 16px;cursor:pointer;border:1px solid #d5d5d5}.dropdown-selector-chevron{margin-left:auto;height:24px}.dropdown-selector-chevron>tttx-icon{cursor:pointer}.dropdown-selector-html-content{display:flex;gap:8px;flex-wrap:wrap}.dropdown-body-container{grid-row:2;position:relative}.dropdown-body{position:absolute;display:flex;position:absolute;flex-direction:column;box-shadow:0px 1px 5px #1111114D;padding-bottom:8px;border:1px solid #d5d5d5;width:100%}.dropdown-options-list{display:flex;flex-direction:column;overflow-y:auto;scrollbar-gutter:stable;max-height:288px}.dropdown-option{padding:6px 8px 6px 16px;cursor:pointer;display:flex;gap:8px}.dropdown-option .checkbox-icon{height:24px}.dropdown-option .plaintext-option{line-height:24px}.dropdown-option:hover{background-color:#1111110d}.dropdown-option:active,.dropdown-option.selected{background-color:#ebfbfc}.placeholder{color:#9e9e9e}.searchbox{padding:8px 16px 8px 16px;height:52px;box-sizing:border-box}.searchbox tttx-standalone-input{margin-top:-4px}.hidden{display:none}.footer{display:flex;gap:8px;flex-direction:row-reverse;padding:8px 16px 0 16px;border-top:1px solid #d5d5d5}";
5
+ const tttxMultiselectBoxCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}:host{display:flex;gap:4px}.label{font-size:16px;font-style:normal;font-weight:500;line-height:normal}:host(.inline) .label{padding-top:8px}:host(.block){flex-direction:column}.dropdown-container{position:relative;display:flex;flex-direction:column;width:100%}.dropdown-container:focus-visible{outline:none}.dropdown-container:focus .dropdown-selector{border:1px solid #1479c6}.dropdown-selector,.dropdown-body{display:flex;border-radius:4px;background-color:white}.dropdown-selector{align-items:center;gap:8px;padding:6px 8px 6px 16px;cursor:pointer;border:1px solid #d5d5d5}.dropdown-selector-chevron{margin-left:auto;height:24px;align-self:flex-start}.dropdown-selector-chevron>tttx-icon{cursor:pointer}.dropdown-selector-html-content{display:flex;gap:8px;flex-wrap:wrap}.dropdown-body-container{position:relative}.dropdown-body{position:absolute;display:flex;position:absolute;flex-direction:column;box-shadow:0px 1px 5px #1111114D;padding-bottom:8px;border:1px solid #d5d5d5;width:100%}.dropdown-options-list{display:flex;flex-direction:column;overflow-y:auto;scrollbar-gutter:stable;max-height:288px}.dropdown-option{padding:6px 8px 6px 16px;cursor:pointer;display:flex;gap:8px}.dropdown-option .checkbox-icon{height:24px}.dropdown-option .plaintext-option{line-height:24px}.dropdown-option:hover{background-color:#1111110d}.dropdown-option:active,.dropdown-option.selected{background-color:#ebfbfc}.placeholder{color:#9e9e9e}.searchbox{padding:8px 16px 8px 16px;height:52px;box-sizing:border-box}.searchbox tttx-standalone-input{margin-top:-4px}.hidden{display:none}.footer{display:flex;gap:8px;flex-direction:row-reverse;padding:8px 16px 0 16px;border-top:1px solid #d5d5d5}";
6
6
 
7
7
  const TttxMultiselectBox = class {
8
8
  constructor(hostRef) {
@@ -121,7 +121,7 @@ const TttxMultiselectBox = class {
121
121
  const chevronIcon = this.open ? 'expand_less' : 'expand_more';
122
122
  return (h(Host, { class: this.inline ? 'inline' : 'block' }, this.label && h("div", { class: "label" }, this.label), h("div", { tabindex: "0", class: "dropdown-container" }, h("div", { class: "dropdown-selector", onClick: this.onDropdownClicked.bind(this) }, this.dropdownSelectorContent(), h("div", { class: "dropdown-selector-chevron" }, h("tttx-icon", { icon: chevronIcon, color: "black" }))), this.open && (h("div", { class: "dropdown-body-container" }, h("div", { class: "dropdown-body", style: Object.assign({}, this.bodyOffset) }, this.searchEnabled &&
123
123
  /* istanbul ignore next */
124
- h("div", { class: "searchbox" }, h("tttx-standalone-input", { type: "text", label: "", required: true, showerrorbubble: false, iconleft: 'search', onInput: this.handleSearchInput.bind(this), inline: true })), h("div", { class: "dropdown-options-list" }, this.unsavedSelectedItems.map((option) => {
124
+ h("div", { class: "searchbox" }, h("tttx-standalone-input", { type: "text", placeholder: 'Search', label: "", required: true, showerrorbubble: false, iconleft: 'search', onInput: this.handleSearchInput.bind(this), inline: true })), h("div", { class: "dropdown-options-list" }, this.unsavedSelectedItems.map((option) => {
125
125
  return this.dropdownOption(option);
126
126
  })), h("div", { class: 'footer' }, h("tttx-button", { design: "primary", onClick: this.applyChanges.bind(this) }, "Apply"), h("tttx-button", { onClick: this.onCancel.bind(this) }, "Cancel"))))))));
127
127
  }
@@ -1,15 +1,16 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-65b1e0d1.js';
2
2
 
3
- const tttxTagCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}button{cursor:pointer}.button{font-family:Roboto, serif;box-sizing:border-box;height:36px;min-width:36px;padding:0;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:500}.button-content{display:block;padding:0 16px}.icon-left,.icon-right{margin-top:4px}.iconleft{padding-left:8px}.iconleft .button-content{padding-left:4px}.iconright{padding-right:8px}.iconright .button-content{padding-right:4px}.notext{padding:0 6px}.button:active{background:rgba(17, 17, 17, 0.2);border:1px solid #d5d5d5}.primary{background:#1479c6;border:1px solid #1479c6;color:white}.primary:active{background:#1464a2;border:1px solid #1464a2}.borderless{background:transparent;border:none;color:#212121}.borderless:active{background:rgba(17, 17, 17, 0.2);border:none}.borderless-circle{background:transparent;border:none;color:#212121;border-radius:50%}.borderless-circle:active{border:none}.borderless-circle:focus{border-color:transparent}.danger{background:#dc0000;border:1px solid #dc0000;color:white}.danger:active{background:#b00000;border:1px solid #b00000}.disabled{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:active{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}@media (hover: hover){.button:hover{background:rgba(17, 17, 17, 0.1);border:1px solid #d5d5d5}.primary:hover{background:#146eb3;border:1px solid #146eb3}.borderless:hover{background:rgba(17, 17, 17, 0.1);border:none}.borderless-circle:hover{background:rgba(17, 17, 17, 0.1);border:none}.danger:hover{background:#c60000;border:1px solid #c60000}.disabled:hover{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}}:host{display:inline-block}.tag{border-radius:20px;padding:4px;font-family:\"Roboto\", sans-serif;font-size:14px;font-weight:400}.tag span{margin-left:4px;margin-right:4px;color:#212121}.icon{height:18px;width:18px;font-weight:400}";
3
+ const tttxTagCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}button{cursor:pointer}.button{font-family:Roboto, serif;box-sizing:border-box;height:36px;min-width:36px;padding:0;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:500}.button-content{display:block;padding:0 16px}.icon-left,.icon-right{margin-top:4px}.iconleft{padding-left:8px}.iconleft .button-content{padding-left:4px}.iconright{padding-right:8px}.iconright .button-content{padding-right:4px}.notext{padding:0 6px}.button:active{background:rgba(17, 17, 17, 0.2);border:1px solid #d5d5d5}.primary{background:#1479c6;border:1px solid #1479c6;color:white}.primary:active{background:#1464a2;border:1px solid #1464a2}.borderless{background:transparent;border:none;color:#212121}.borderless:active{background:rgba(17, 17, 17, 0.2);border:none}.borderless-circle{background:transparent;border:none;color:#212121;border-radius:50%}.borderless-circle:active{border:none}.borderless-circle:focus{border-color:transparent}.danger{background:#dc0000;border:1px solid #dc0000;color:white}.danger:active{background:#b00000;border:1px solid #b00000}.disabled{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:active{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}@media (hover: hover){.button:hover{background:rgba(17, 17, 17, 0.1);border:1px solid #d5d5d5}.primary:hover{background:#146eb3;border:1px solid #146eb3}.borderless:hover{background:rgba(17, 17, 17, 0.1);border:none}.borderless-circle:hover{background:rgba(17, 17, 17, 0.1);border:none}.danger:hover{background:#c60000;border:1px solid #c60000}.disabled:hover{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}}:host{display:inline-block}.tag{border-radius:20px;padding:4px;font-family:\"Roboto\", sans-serif;font-size:14px;font-weight:400}.tag span{margin-left:4px;margin-right:4px}.icon{height:18px;width:18px;font-weight:400}";
4
4
 
5
5
  const TttxTag = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  this.text = undefined;
9
9
  this.color = '#d5d5d5';
10
+ this.textColor = '#212121';
10
11
  }
11
12
  render() {
12
- return (h(Host, null, h("div", { class: "tag", style: { 'background-color': this.color } }, h("span", null, this.text))));
13
+ return (h(Host, null, h("div", { class: "tag", style: { 'background-color': this.color, color: this.textColor } }, h("span", null, this.text))));
13
14
  }
14
15
  };
15
16
  TttxTag.style = tttxTagCss;
package/dist/esm/tttx.js CHANGED
@@ -14,5 +14,5 @@ const patchBrowser = () => {
14
14
  };
15
15
 
16
16
  patchBrowser().then(options => {
17
- return bootstrapLazy([["tttx-multiselect-box",[[1,"tttx-multiselect-box",{"optionsData":[1,"options-data"],"label":[1],"inline":[4],"placeholder":[1],"searchEnabled":[4,"search-enabled"],"htmlVisibleValue":[4,"html-visible-value"],"visibleValue":[1,"visible-value"],"open":[32],"unsavedSelectedItems":[32],"searchTerm":[32]},[[0,"closeSelectBox","handleCloseSelectBox"],[0,"blur","handleBlur"]]]]],["tttx-dialog-box",[[1,"tttx-dialog-box",{"data":[1025],"size":[1],"open":[1028],"allowOverflow":[4,"allow-overflow"],"elementSize":[32]},[[9,"resize","handleResize"]]]]],["tttx-select-box",[[1,"tttx-select-box",{"optionsData":[1,"options-data"],"label":[1],"inline":[4],"placeholder":[1],"searchEnabled":[4,"search-enabled"],"selectedValue":[1,"selected-value"],"open":[32],"selectedItem":[32],"searchTerm":[32]},[[0,"closeSelectBox","handleCloseSelectBox"],[0,"blur","handleBlur"]]]]],["tttx-tree-view",[[1,"tttx-tree-view",{"data":[1040],"treeData":[32],"selectedId":[32]}]]],["tttx-expander",[[1,"tttx-expander",{"name":[1],"expanded":[4],"lefticon":[1],"lefticoncolor":[1]}]]],["tttx-filter",[[1,"tttx-filter",{"filterKey":[1,"filter-key"],"filterOptions":[1,"filter-options"],"showSelectAll":[4,"show-select-all"],"showSearchField":[4,"show-search-field"],"showOptionIcons":[4,"show-option-icons"],"filterButtonStyle":[1,"filter-button-style"],"filterHeader":[1,"filter-header"],"defaultFilterOptions":[1,"default-filter-options"],"popoverWidth":[1,"popover-width"],"showPopover":[32],"displayedFilterSettings":[32],"selectedFilters":[32],"filterSearchTerm":[32],"allSelected":[32]},[[0,"closeFilter","handleCloseFilter"]]]]],["tttx-list",[[1,"tttx-list",{"data":[1025],"name":[1],"_data":[32]}]]],["tttx-sorter",[[1,"tttx-sorter",{"sorterKey":[1,"sorter-key"],"defaultSortDirection":[1,"default-sort-direction"],"fieldOptionsData":[1,"field-options-data"],"defaultOption":[1,"default-option"],"selectedField":[32],"sortDirection":[32],"dropdownExpand":[32],"dropdownOptions":[32]},[[0,"closeSorter","handleCloseSorter"]]]]],["tttx-tabs",[[2,"tttx-tabs",{"tabsName":[1,"tabs-name"],"navigation":[4],"wide":[4],"tabs":[1],"_tabs":[32]},[[0,"keydown","handleKeyDown"]]]]],["tttx-form",[[1,"tttx-form",{"formschema":[1025],"data":[1032],"submit":[64]}]]],["tttx-keyvalue-block",[[1,"tttx-keyvalue-block",{"keyvalues":[1],"horizontal":[4],"spacedout":[4],"_elements":[32]}]]],["tttx-loading-spinner",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]],["tttx-percentage-bar",[[2,"tttx-percentage-bar",{"percentage":[8],"thresholds":[1],"color":[1],"min":[1],"labelid":[1],"_percentage":[32],"_ranges":[32],"_min":[32]}]]],["tttx-qrcode",[[1,"tttx-qrcode",{"link":[1025],"size":[1026]}]]],["tttx-tag",[[1,"tttx-tag",{"text":[1],"color":[1]}]]],["tttx-textarea",[[2,"tttx-textarea",{"label":[1],"secondarylabel":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"rows":[2],"textareaautofocus":[4],"inputkeyhint":[1],"inputindex":[8],"inputtitle":[1],"disabled":[4],"maxlength":[8],"name":[1],"placeholder":[1],"readonly":[8],"required":[4],"value":[1032]}]]],["tttx-toolbar",[[1,"tttx-toolbar",{"border":[4],"viewSize":[32]},[[9,"resize","handleResize"]]]]],["tttx-icon",[[1,"tttx-icon",{"icon":[1],"color":[1]}]]],["tttx-standalone-input",[[2,"tttx-standalone-input",{"label":[1],"secondarylabel":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"iconleft":[1],"iconleftcolor":[1],"iconright":[1],"iconrightcolor":[1],"inputicon":[1],"inputiconcolor":[1],"inline":[4],"inputautocapitalize":[1],"inputautofocus":[4],"inputkeyhint":[1],"inputindex":[8],"inputtitle":[1],"autocomplete":[1],"checked":[4],"disabled":[4],"max":[8],"maxlength":[8],"min":[8],"minlength":[8],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[8],"required":[4],"step":[8],"type":[1],"value":[1032]}]]],["tttx-button",[[1,"tttx-button",{"notext":[4],"icon":[1],"iconposition":[1],"iconcolor":[1025],"design":[1]}]]]], options);
17
+ return bootstrapLazy([["tttx-data-pattern",[[1,"tttx-data-pattern",{"data":[1],"sorteroptions":[1],"filteroptions":[1],"filterheader":[1]}]]],["tttx-multiselect-box",[[1,"tttx-multiselect-box",{"optionsData":[1,"options-data"],"label":[1],"inline":[4],"placeholder":[1],"searchEnabled":[4,"search-enabled"],"htmlVisibleValue":[4,"html-visible-value"],"visibleValue":[1,"visible-value"],"open":[32],"unsavedSelectedItems":[32],"searchTerm":[32]},[[0,"closeSelectBox","handleCloseSelectBox"],[0,"blur","handleBlur"]]]]],["tttx-dialog-box",[[1,"tttx-dialog-box",{"data":[1025],"size":[1],"open":[1028],"allowOverflow":[4,"allow-overflow"],"elementSize":[32]},[[9,"resize","handleResize"]]]]],["tttx-select-box",[[1,"tttx-select-box",{"optionsData":[1,"options-data"],"label":[1],"inline":[4],"placeholder":[1],"searchEnabled":[4,"search-enabled"],"selectedValue":[1,"selected-value"],"open":[32],"selectedItem":[32],"searchTerm":[32]},[[0,"closeSelectBox","handleCloseSelectBox"],[0,"blur","handleBlur"]]]]],["tttx-tree-view",[[1,"tttx-tree-view",{"data":[1040],"treeData":[32],"selectedId":[32]}]]],["tttx-expander",[[1,"tttx-expander",{"name":[1],"open":[4],"lefticon":[1],"lefticoncolor":[1],"isExpanded":[32]}]]],["tttx-tabs",[[2,"tttx-tabs",{"tabsName":[1,"tabs-name"],"navigation":[4],"wide":[4],"tabs":[1],"_tabs":[32]},[[0,"keydown","handleKeyDown"]]]]],["tttx-form",[[1,"tttx-form",{"formschema":[1025],"data":[1032],"submit":[64]}]]],["tttx-keyvalue-block",[[1,"tttx-keyvalue-block",{"keyvalues":[1],"horizontal":[4],"spacedout":[4],"_elements":[32]}]]],["tttx-loading-spinner",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]],["tttx-percentage-bar",[[2,"tttx-percentage-bar",{"percentage":[8],"thresholds":[1],"color":[1],"min":[1],"labelid":[1],"_percentage":[32],"_ranges":[32],"_min":[32]}]]],["tttx-qrcode",[[1,"tttx-qrcode",{"link":[1025],"size":[1026]}]]],["tttx-tag",[[1,"tttx-tag",{"text":[1],"color":[1],"textColor":[1,"text-color"]}]]],["tttx-textarea",[[2,"tttx-textarea",{"label":[1],"secondarylabel":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"rows":[2],"textareaautofocus":[4],"inputkeyhint":[1],"inputindex":[8],"inputtitle":[1],"disabled":[4],"maxlength":[8],"name":[1],"placeholder":[1],"readonly":[8],"required":[4],"value":[1032]}]]],["tttx-icon",[[1,"tttx-icon",{"icon":[1],"color":[1]}]]],["tttx-standalone-input",[[2,"tttx-standalone-input",{"label":[1],"secondarylabel":[1],"showerrormsg":[4],"showerrorbubble":[4],"errormsg":[1],"iconleft":[1],"iconleftcolor":[1],"iconright":[1],"iconrightcolor":[1],"inputicon":[1],"inputiconcolor":[1],"inline":[4],"inputautocapitalize":[1],"inputautofocus":[4],"inputkeyhint":[1],"inputindex":[8],"inputtitle":[1],"autocomplete":[1],"checked":[4],"disabled":[4],"max":[8],"maxlength":[8],"min":[8],"minlength":[8],"name":[1],"pattern":[1],"placeholder":[1],"readonly":[8],"required":[4],"step":[8],"type":[1],"value":[1032]}]]],["tttx-filter_4",[[1,"tttx-filter",{"filterKey":[1,"filter-key"],"filterOptions":[1,"filter-options"],"showSelectAll":[4,"show-select-all"],"showSearchField":[4,"show-search-field"],"showOptionIcons":[4,"show-option-icons"],"filterButtonStyle":[1,"filter-button-style"],"filterHeader":[1,"filter-header"],"defaultFilterOptions":[1,"default-filter-options"],"popoverWidth":[1,"popover-width"],"showPopover":[32],"displayedFilterSettings":[32],"selectedFilters":[32],"filterSearchTerm":[32],"allSelected":[32]},[[0,"closeFilter","handleCloseFilter"]]],[1,"tttx-list",{"data":[1025],"name":[1],"_data":[32]}],[1,"tttx-sorter",{"sorterKey":[1,"sorter-key"],"defaultSortDirection":[1,"default-sort-direction"],"fieldOptionsData":[1,"field-options-data"],"defaultOption":[1,"default-option"],"selectedField":[32],"sortDirection":[32],"dropdownExpand":[32],"dropdownOptions":[32]},[[0,"closeSorter","handleCloseSorter"]]],[1,"tttx-toolbar",{"border":[4],"viewSize":[32]},[[9,"resize","handleResize"]]]]],["tttx-button",[[1,"tttx-button",{"notext":[4],"icon":[1],"iconposition":[1],"iconcolor":[1025],"design":[1]}]]]], options);
18
18
  });
@@ -0,0 +1 @@
1
+ import{r as t,c as i,h as e,H as o,g as r,F as n}from"./p-99a41e8e.js";import{p as s,d as l}from"./p-88ee2406.js";import"./p-112455b1.js";const a=class{constructor(e){t(this,e),this.filterChangeEvent=i(this,"filterChangeEvent",7),this.toggleFilter=i(this,"toggleFilter",7),this.filterKey=void 0,this.filterOptions=[{optionIcon:"cancel",optionIconColor:"darkred",optionText:"Expired"},{optionIcon:"warning",optionIconColor:"orange",optionText:"Expiring soon"},{optionIcon:"check_circle",optionIconColor:"green",optionText:"Active"}],this.showSelectAll=!0,this.showSearchField=!1,this.showOptionIcons=!0,this.filterButtonStyle="list filter",this.filterHeader="Qualification status",this.defaultFilterOptions=void 0,this.popoverWidth="193px",this.showPopover=!1,this.displayedFilterSettings=void 0,this.selectedFilters=void 0,this.filterSearchTerm="",this.allSelected=void 0}handleCloseFilter(){this.showPopover=!1}emitFilterEvent(){this.filterChangeEvent.emit({selectedFilters:this.selectedFilters,filterKey:this.filterKey,allSelected:this.allSelected})}onFilterButtonClick(){this.togglePopover()}onCloseButtonClick(){this.togglePopover()}onApplyFilterButtonClick(){this.emitFilterEvent(),this.togglePopover()}onFilterOptionSelected(t){this.allSelected=!1,this.selectedFilters=this.selectedFilters.includes(t)?this.selectedFilters.filter((i=>i!=t)):[...this.selectedFilters,t]}componentWillLoad(){if(this.displayedFilterSettings=this.parseFilterOptions(),void 0!==this.defaultFilterOptions){const t=this.parseDefaultFilterOptions();this.selectedFilters=t;let i=!0;this.parseFilterOptions().map((t=>{this.selectedFilters.includes(t.optionText)||(i=!1)})),this.allSelected=i}else this.allSelected=!0,this.selectedFilters=this.displayedFilterSettings.map((t=>t.optionText))}togglePopover(){this.showPopover=!this.showPopover,this.toggleFilter.emit(this.showPopover)}handleFilterChange(t){this.filterSearchTerm=t.target.value;const i=this.parseFilterOptions().filter((t=>{const i=t.optionText.toLowerCase(),e=this.filterSearchTerm.toLowerCase();return i.includes(e)}));this.displayedFilterSettings=i}onSelectAllClick(){this.allSelected=!this.allSelected,this.allSelected?this.displayedFilterSettings.forEach((t=>{this.selectedFilters=[...this.selectedFilters,t.optionText]})):this.selectedFilters=[]}getFilterButtonClassName(t){switch(t){case"table icon":return"--table-icon";case"list icon":return"--list-icon";default:return""}}parseFilterOptions(){return"string"==typeof this.filterOptions?JSON.parse(this.filterOptions):this.filterOptions}parseDefaultFilterOptions(){return"string"==typeof this.defaultFilterOptions?JSON.parse(this.defaultFilterOptions):this.defaultFilterOptions}render(){const t=this.showSearchField?"--with-search-field":"",i=this.allSelected?"check_box":"check_box_outline_blank",r=this.allSelected?"blue":"grey",n=this.getFilterButtonClassName(this.filterButtonStyle);return e(o,{id:`filter__${this.filterKey}`},e("div",{class:"filter-container"},e("button",{class:`filter-button ${n}`,type:"button",onClick:this.onFilterButtonClick.bind(this)},e("tttx-icon",{icon:"filter_list",class:"filter-icon",color:"black"}),"Filter"),this.showPopover&&e("div",{class:`filter-popover-container ${t}`,style:{width:this.popoverWidth}},e("div",{class:"filter-header"},this.filterHeader),this.showSearchField?e("div",{class:"search-field-container"},e("tttx-icon",{icon:"search",class:"search-icon"}),e("input",{type:"text",class:"search-input",placeholder:"Search",value:this.filterSearchTerm,onInput:this.handleFilterChange.bind(this)})):"",e("div",{class:"filter-options-container"},this.showSelectAll?e("div",{class:"filter-option",tabIndex:-1,onClick:this.onSelectAllClick.bind(this)},e("tttx-icon",{icon:i,color:r,class:"select-all-icon"}),e("label",{class:"filter-label"},"Select all")):"",this.displayedFilterSettings.map((t=>{const i=this.selectedFilters.includes(t.optionText)?"check_box":"check_box_outline_blank",o=this.selectedFilters.includes(t.optionText)?"blue":"grey";return e("div",{class:"filter-option",tabIndex:-1,onClick:()=>this.onFilterOptionSelected(t.optionText),key:t.optionText},e("tttx-icon",{icon:i,color:o,class:"checkbox-icon"}),this.showOptionIcons&&e("tttx-icon",{icon:t.optionIcon,color:t.optionIconColor}),e("label",{class:"filter-label"},t.optionText))}))),e("div",{class:"filter-popover-button-container"},e("button",{type:"button",class:"close-button",onClick:this.onCloseButtonClick.bind(this)},"Close"),e("button",{type:"button",class:"apply-button",onClick:this.onApplyFilterButtonClick.bind(this)},"Apply")))))}get el(){return r(this)}};a.style='.material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}.material-symbols-rounded{font-family:"Material Symbols Rounded", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}.filter-container{background-color:white;position:relative}.filter-container .filter-button{display:inline-flex;justify-content:center;align-items:center;font-size:14px;font-weight:400;font-family:"Roboto", serif;text-transform:uppercase;color:#212121;border:1px solid #d5d5d5;border-radius:4px;background:transparent;height:36px;width:95px;margin:0;padding-right:16px;cursor:pointer}@media (max-width: 475px){.filter-container .filter-button{padding-left:4px}}.filter-container .filter-button .filter-icon{padding-left:8px;padding-right:4px}.filter-container .filter-button.--list-icon{font-size:0;width:36px;height:36px;padding:0}.filter-container .filter-button.--list-icon .filter-icon{padding:0}.filter-container .filter-button.--list-icon:hover{background:#e3e3e3}.filter-container .filter-button.--table-icon{font-size:0;width:36px;height:36px;padding:0;border:none}.filter-container .filter-button.--table-icon .filter-icon{padding:0;width:24px;height:24px}.filter-container .filter-button.--table-icon:hover{background:#e3e3e3;border-radius:50%;width:36px;height:36px}.filter-container .filter-button:hover{background:#e3e3e3}.filter-container .filter-popover-container{display:flex;flex-direction:column;gap:8px;border-radius:4px;box-shadow:0px 1px 5px #1111114D;position:absolute;top:36px;left:0px;background-color:white;padding:8px 16px}.filter-container .filter-popover-container .filter-header{color:#757575;text-transform:uppercase;font-size:14px;font-weight:500;font-family:"Roboto", serif;padding-top:4px;padding-bottom:5px}.filter-container .filter-popover-container .filter-options-container{display:flex;flex-direction:column;gap:4px;border-top:1px solid #d5d5d5;border-bottom:1px solid #d5d5d5;padding-bottom:8px}.filter-container .filter-popover-container .filter-option{display:flex;flex-direction:row;align-items:center;min-height:36px;padding-left:8px}.filter-container .filter-popover-container .filter-option .select-all-icon{padding-right:6px}.filter-container .filter-popover-container .filter-option .checkbox-icon{padding-right:8px}.filter-container .filter-popover-container .filter-option .filter-label{padding-left:8px;padding-bottom:3px;font-size:16px;font-weight:500;font-family:"Roboto", serif}.filter-container .filter-popover-container .filter-option:first-child{padding-top:8px}.filter-container .filter-popover-container .filter-popover-button-container{display:flex;justify-content:flex-end;align-items:center}.filter-container .filter-popover-container .filter-popover-button-container .close-button{height:36px;width:74px;background-color:white;border:1px solid #d5d5d5;border-radius:4px;text-transform:uppercase;margin-right:8px;font-size:14px;font-weight:400;font-family:"Roboto", serif;color:#212121}.filter-container .filter-popover-container .filter-popover-button-container .apply-button{height:36px;width:73px;background-color:#1479c6;color:white;border-radius:4px;border:none;text-transform:uppercase;font-size:14px;font-weight:400;font-family:"Roboto", serif}.filter-container .filter-popover-container.--with-search-field .filter-header{border-bottom:1px solid #d5d5d5}.filter-container .filter-popover-container.--with-search-field .search-field-container{position:relative;color:#d5d5d5;height:36px}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-icon{position:absolute;top:6px;left:8px}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input{padding-left:36px;border:1px solid #d5d5d5;border-radius:4px;height:36px;width:100%;font-size:16px;font-family:"Roboto", serif;font-weight:500;box-sizing:border-box}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input:focus-visible,.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input:focus{outline:none;border:1px solid #1479c6}.filter-container .filter-popover-container.--with-search-field .search-field-container .search-input::placeholder{color:#9e9e9e;font-size:16px;font-family:"Roboto", serif;font-weight:500}';const c=class{constructor(e){t(this,e),this.rowClick=i(this,"listRowClick",7),this.rowCheckboxClick=i(this,"listRowCheckboxClick",7),this.data=void 0,this._data=void 0,this.name=void 0}onDataChange(){if(this.data){this._data="string"==typeof this.data?JSON.parse(this.data):[...this.data];for(const t of this._data)t.hasCheckbox&&void 0===t.checked&&(t.checked=!1)}}componentWillLoad(){this.onDataChange()}onRowCheckboxHandler(t,i){t.stopPropagation(),i.rowData&&this.rowCheckboxClick.emit({key:i.key,name:this.name,data:i.rowData})}onRowClickHandler(t){(t.clickable||t.toggleable)&&t.rowData&&this.rowClick.emit({key:t.key,name:this.name,data:t.rowData})}renderListItem(t){const i=s.sanitize(t.element,l);return e(n,null,t.hasCheckbox&&e("div",{class:"checkbox"},e("tttx-icon",{icon:t.checked?"check_box":"check_box_outline_blank",color:t.checked?"blue":"grey",onClick:i=>{this.onRowCheckboxHandler(i,t)}})),t.element&&e("span",{class:"item-content",innerHTML:i}),t.icon&&e("span",{class:"icons"},e("tttx-icon",{class:"align-right",icon:t.icon,color:"black"})))}render(){if(this._data)return e("ul",{class:"list"},this._data.map((t=>e("li",{key:t.key,class:"item"+(t.clickable?" clickable":"")+(t.toggleable?" toggleable":"")+(t.checked?" selected":"")+(t.active?" active":""),onClick:()=>{this.onRowClickHandler(t)}},this.renderListItem(t)))))}static get watchers(){return{data:["onDataChange"]}}};c.style='.material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}.material-symbols-rounded{font-family:"Material Symbols Rounded", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}:host{display:flex;flex-direction:column}.list{margin:0;padding:0}li{display:flex;align-items:flex-start}li.item{list-style:none;margin:0;padding:8px;border-bottom:1px solid #d5d5d5;min-height:36px}li.item:first-of-type{border-top:1px solid #d5d5d5}li.item.clickable:hover{cursor:pointer}li.item.toggleable:hover{cursor:pointer}li.item.active{background-color:rgba(17, 17, 17, 0.1)}li.item.active:hover{background-color:rgba(17, 17, 17, 0.15)}li.item.selected{background-color:#ebfbfc}li.item.selected:hover{background-color:#e0f8f9}li.item.selected.active{background-color:#ccf3f6}li.item.selected.active:hover{background-color:#bff0f3}li.item .icons{display:flex;justify-content:flex-end;flex-grow:1;align-items:center;height:36px}li.item .icons tttx-icon:hover{cursor:pointer}li.item .icons *{display:flex}li.item:hover{background-color:rgba(17, 17, 17, 0.05)}.align-right{margin-left:auto}.item-content{display:flex;align-items:center;flex-grow:2;min-height:36px}.checkbox{padding:6px;margin-left:-8px}';const d=class{constructor(e){t(this,e),this.sorterChangeEvent=i(this,"sorterChangeEvent",7),this.toggleSorter=i(this,"toggleSorter",7),this.sorterKey=void 0,this.defaultSortDirection="descending",this.fieldOptionsData=null,this.defaultOption="",this.selectedField=this.defaultOption,this.sortDirection=this.defaultSortDirection,this.dropdownExpand=!1,this.dropdownOptions=void 0}handleCloseSorter(){this.dropdownExpand=!1}emitSortEvent(){this.sorterChangeEvent.emit({sorterDirection:this.sortDirection,sorterKey:this.sorterKey,sortField:this.selectedField})}onSortToggleClick(t){t.preventDefault(),this.sortDirection="ascending"==this.sortDirection?"descending":"ascending",this.emitSortEvent()}onDropdownClicked(){this.dropdownExpand=!this.dropdownExpand,this.toggleSorter.emit(this.dropdownExpand)}onDropdownSelected(t){this.dropdownExpand=!1,this.selectedField=t.target.innerHTML,this.emitSortEvent(),this.toggleSorter.emit(this.dropdownExpand)}render(){const t="string"==typeof this.fieldOptionsData?JSON.parse(this.fieldOptionsData):this.fieldOptionsData;if(!this.fieldOptionsData)return;const i="ascending"==this.sortDirection?"arrow_upward":"arrow_downward",r=this.dropdownExpand?"expand_less":"expand_more",n=this.selectedField;return e(o,{id:`sorter__${this.sorterKey}`},e("div",{tabindex:0,class:"sorter-container "+(this.dropdownExpand?"--expanded":"")},e("button",{class:"arrow-toggle-button",type:"button",onClick:this.onSortToggleClick.bind(this)},e("tttx-icon",{icon:i,color:"black"})),e("div",{class:"dropdown-selector",onClick:this.onDropdownClicked.bind(this)},e("div",{class:"dropdown-selector-button"},e("div",{class:"dropdown-selector-text"},n),e("div",{class:"dropdown-selector-chevron"},e("tttx-icon",{icon:r,color:"black"})))),this.dropdownExpand&&e("div",{class:"dropdown-options-list"},t.sorterOptions.map((t=>e("div",{class:"dropdown-option",tabIndex:-1,onClick:this.onDropdownSelected.bind(this),key:t.optionLabel},t.optionLabel))))))}get el(){return r(this)}};d.style='.material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}.sorter-container{display:flex;flex-direction:row;position:relative;border:1px solid #d5d5d5;border-radius:4px;font-weight:400;box-sizing:border-box;height:36px;cursor:pointer;width:220px}@media (max-width: 475px){.sorter-container{width:68px}}.sorter-container .arrow-toggle-button{display:inline-flex;justify-content:center;align-items:center;flex-direction:column;background-color:white;border:none;border-bottom-left-radius:4px;border-top-left-radius:4px}@media (max-width: 475px){.sorter-container .arrow-toggle-button{padding-right:0px;padding-left:8px}}.sorter-container .arrow-toggle-button .hydrated{display:flex;justify-content:center;align-items:center;cursor:pointer}.sorter-container .arrow-toggle-button span{display:block;margin:auto;line-height:16px}.sorter-container .arrow-toggle-button .material-symbols-rounded{color:#212121}.sorter-container .dropdown-selector{display:inline-flex;position:relative;flex-grow:1}.sorter-container .dropdown-selector .dropdown-selector-button{display:inline-flex;flex-direction:row;gap:4px;padding-right:4px;align-items:center;color:#212121;width:100%}@media (max-width: 475px){.sorter-container .dropdown-selector .dropdown-selector-button .dropdown-selector-text{display:none}}.sorter-container .dropdown-selector .dropdown-selector-chevron{display:inline-flex;margin-left:auto;right:0;top:0;flex-direction:row;align-items:center;height:36px}.sorter-container .dropdown-selector .dropdown-selector-chevron .hydrated{height:24px;cursor:pointer}@media (max-width: 475px){.sorter-container .dropdown-selector .dropdown-selector-chevron{padding-right:2px}}.sorter-container .dropdown-options-list{position:absolute;top:36px;left:0;z-index:1;width:220px;line-height:21px;font-size:16px;border-radius:4px;padding-top:8px;padding-bottom:7px;box-shadow:0px 1px 5px #1111114D;box-sizing:border-box;background-color:white}@media (max-width: 475px){.sorter-container .dropdown-options-list{width:220px;padding-top:8px}}.sorter-container .dropdown-options-list .dropdown-option{padding:8px 16px;font-size:16px;line-height:21px}.sorter-container .dropdown-options-list .dropdown-option:hover,.sorter-container .dropdown-options-list .dropdown-option:focus{background-color:#ebfbfc}.sorter-container.--expanded{border-color:#1579c6}@media (max-width: 475px){.sorter-container.--expanded{border:none}}';const p=class{constructor(i){t(this,i),this.border=!0,this.viewSize=void 0}handleResize(){this.setViewSize()}async componentWillLoad(){this.setViewSize()}setViewSize(){this.viewSize=window.innerWidth<698?"mobile":"desktop"}render(){return e(o,null,e("div",{class:`container ${this.border?"bordered":""} ${this.viewSize}`},e("slot",{name:"before"}),e("slot",{name:"center"}),e("slot",{name:"after"})))}};p.style=".container{display:flex;align-items:flex-end;row-gap:8px;padding:8px 0;flex-wrap:wrap}.container.bordered{border-bottom:1px solid #d5d5d5}.desktop ::slotted([slot=before]){flex:1 1 0px}.desktop ::slotted([slot=center]){flex:0 1 fit-content}.desktop ::slotted([slot=after]){flex:1 1 0px}::slotted([slot=before]){display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px}::slotted([slot=center]){display:flex;justify-content:center;align-items:flex-end;flex-wrap:wrap;gap:8px}::slotted([slot=after]){display:flex;justify-content:end;align-items:flex-end;flex-wrap:wrap;gap:8px}";export{a as tttx_filter,c as tttx_list,d as tttx_sorter,p as tttx_toolbar}
@@ -0,0 +1 @@
1
+ import{r as t,h as e,H as r}from"./p-99a41e8e.js";const s=class{constructor(e){t(this,e),this.data=void 0,this.sorteroptions=void 0,this.filteroptions=void 0,this.filterheader="Filter"}render(){return e(r,null,e("div",{class:"container"},e("tttx-toolbar",{border:!0},e("span",{slot:"before"},e("tttx-sorter",{sorterKey:"data-pattern-list",fieldOptionsData:this.sorteroptions,defaultOption:"Sort by"}),e("tttx-filter",{"filter-options":JSON.stringify(this.filteroptions),showSelectAll:!1,"show-option-icons":!0,"filter-header":this.filterheader,"filter-key":"data-pattern-list"})),e("span",{slot:"after"},e("tttx-standalone-input",{class:"qualifications-filter",showerrorbubble:!1,inputicon:"search",inline:!0,required:!0,placeholder:"Search",type:"text",maxlength:30}))),e("tttx-toolbar",{border:!1},e("span",{slot:"before"},e("tttx-button",{design:"primary",icon:"add"},"Add"))),e("tttx-list",{data:this.data})))}};s.style=":host{display:block}";export{s as tttx_data_pattern}
@@ -0,0 +1 @@
1
+ import{r as e,c as n,h as t,H as a}from"./p-99a41e8e.js";const s=class{constructor(t){e(this,t),this.toggleExpander=n(this,"toggleExpander",7),this.name=void 0,this.open=!1,this.lefticon=void 0,this.lefticoncolor=void 0,this.isExpanded=!1}componentWillRender(){this.isExpanded=this.open}handleExpand(){this.isExpanded=null===this.expander.getAttribute("open"),this.toggleExpander.emit({open:this.isExpanded,name:this.name})}render(){return t(a,null,t("details",{class:"expander",open:this.open,"aria-owns":"expanderContent","aria-expanded":`${this.isExpanded}`,onClick:this.handleExpand.bind(this),ref:e=>this.expander=e},t("summary",{class:"panel"},t("span",{class:"panel-frame"},this.lefticon&&t("span",{class:"left-icons"},t("tttx-icon",{icon:this.lefticon,color:this.lefticoncolor})),t("span",{class:"name"},this.name)),t("span",{class:"expand-button"},t("tttx-icon",{class:"open",icon:"expand_more",color:"black"}),t("tttx-icon",{class:"closed",icon:"chevron_right",color:"black"}))),t("div",{id:"expanderContent",class:"content",tabindex:"0"},t("slot",null))))}};s.style='.material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}:host{display:block}.expander{border-bottom:1px solid #d5d5d5}.expander[open] .panel .open{display:initial}.expander[open] .panel .closed{display:none}.expander:not([open]) .panel .open{display:none}.expander:not([open]) .panel .closed{display:initial}.expander .panel{display:flex;gap:4px;height:36px;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}.expander .panel .panel-frame{display:flex;gap:4px;height:36px;align-items:center}.expander .panel .panel-frame .name{font-size:16px;font-weight:500;color:#212121}.expander .panel .left-icons,.expander .panel .expand-button{display:flex;height:36px;width:36px;align-items:center;justify-content:center}.expander .panel .left-icons>tttx-icon,.expander .panel .expand-button>tttx-icon{height:24px;cursor:inherit}.expander .content{margin-top:8px;margin-bottom:8px}';export{s as tttx_expander}
@@ -0,0 +1 @@
1
+ import{r,h as o,H as e}from"./p-99a41e8e.js";const n=class{constructor(o){r(this,o),this.text=void 0,this.color="#d5d5d5",this.textColor="#212121"}render(){return o(e,null,o("div",{class:"tag",style:{"background-color":this.color,color:this.textColor}},o("span",null,this.text)))}};n.style='.material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}button{cursor:pointer}.button{font-family:Roboto, serif;box-sizing:border-box;height:36px;min-width:36px;padding:0;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:500}.button-content{display:block;padding:0 16px}.icon-left,.icon-right{margin-top:4px}.iconleft{padding-left:8px}.iconleft .button-content{padding-left:4px}.iconright{padding-right:8px}.iconright .button-content{padding-right:4px}.notext{padding:0 6px}.button:active{background:rgba(17, 17, 17, 0.2);border:1px solid #d5d5d5}.primary{background:#1479c6;border:1px solid #1479c6;color:white}.primary:active{background:#1464a2;border:1px solid #1464a2}.borderless{background:transparent;border:none;color:#212121}.borderless:active{background:rgba(17, 17, 17, 0.2);border:none}.borderless-circle{background:transparent;border:none;color:#212121;border-radius:50%}.borderless-circle:active{border:none}.borderless-circle:focus{border-color:transparent}.danger{background:#dc0000;border:1px solid #dc0000;color:white}.danger:active{background:#b00000;border:1px solid #b00000}.disabled{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:active{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}@media (hover: hover){.button:hover{background:rgba(17, 17, 17, 0.1);border:1px solid #d5d5d5}.primary:hover{background:#146eb3;border:1px solid #146eb3}.borderless:hover{background:rgba(17, 17, 17, 0.1);border:none}.borderless-circle:hover{background:rgba(17, 17, 17, 0.1);border:none}.danger:hover{background:#c60000;border:1px solid #c60000}.disabled:hover{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}}:host{display:inline-block}.tag{border-radius:20px;padding:4px;font-family:"Roboto", sans-serif;font-size:14px;font-weight:400}.tag span{margin-left:4px;margin-right:4px}.icon{height:18px;width:18px;font-weight:400}';export{n as tttx_tag}