@3t-transform/threeteeui 0.0.11 → 0.0.13

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 (29) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tttx-list.cjs.entry.js +198 -0
  3. package/dist/cjs/tttx-standalone-input.cjs.entry.js +9 -7
  4. package/dist/cjs/tttx.cjs.js +1 -1
  5. package/dist/collection/collection-manifest.json +2 -1
  6. package/dist/collection/components/molecules/tttx-list/tttx-list.css +56 -0
  7. package/dist/collection/components/molecules/tttx-list/tttx-list.js +311 -0
  8. package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +37 -0
  9. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +37 -29
  10. package/dist/components/index.d.ts +1 -0
  11. package/dist/components/index.js +1 -0
  12. package/dist/components/tttx-list.d.ts +11 -0
  13. package/dist/components/tttx-list.js +225 -0
  14. package/dist/components/tttx-loading-spinner.js +1 -38
  15. package/dist/components/tttx-loading-spinner2.js +40 -0
  16. package/dist/components/tttx-standalone-input.js +10 -10
  17. package/dist/esm/loader.js +1 -1
  18. package/dist/esm/tttx-list.entry.js +194 -0
  19. package/dist/esm/tttx-standalone-input.entry.js +9 -7
  20. package/dist/esm/tttx.js +1 -1
  21. package/dist/tttx/p-25953f82.entry.js +1 -0
  22. package/dist/tttx/p-2b6720ac.entry.js +1 -0
  23. package/dist/tttx/tttx.esm.js +1 -1
  24. package/dist/types/components/molecules/tttx-list/tttx-list.d.ts +51 -0
  25. package/dist/types/components/molecules/tttx-list/tttx-list.stories.d.ts +13 -0
  26. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +4 -4
  27. package/dist/types/components.d.ts +26 -2
  28. package/package.json +1 -1
  29. package/dist/tttx/p-338b3976.entry.js +0 -1
@@ -1,9 +1,7 @@
1
1
  import { Host, h } from '@stencil/core';
2
2
  export class TttxInput {
3
3
  constructor() {
4
- this.isfocused = false;
5
4
  this.label = undefined;
6
- this.valid = undefined;
7
5
  this.showerrormsg = undefined;
8
6
  this.errormsg = undefined;
9
7
  this.iconleft = undefined;
@@ -31,11 +29,13 @@ export class TttxInput {
31
29
  this.value = target.value;
32
30
  this.valueChanged.emit(target.value);
33
31
  }
34
- handleFocus() {
35
- this.isfocused = true;
32
+ handleFocus(event) {
33
+ const target = event.target;
34
+ this.valueChanged.emit(target.value);
36
35
  }
37
- handleBlur() {
38
- this.isfocused = false;
36
+ handleBlur(event) {
37
+ const target = event.target;
38
+ this.valueChanged.emit(target.value);
39
39
  }
40
40
  render() {
41
41
  const classNames = ['standalone', this.showerrormsg ? 'invalid' : ''].join(' ');
@@ -65,7 +65,7 @@ export class TttxInput {
65
65
  this.type === 'number' ||
66
66
  this.type === 'range'
67
67
  ? this.min
68
- : null, minlength: this.maxlength, name: this.name, pattern: this.type === 'text' ||
68
+ : null, minlength: this.minlength, name: this.name, pattern: this.type === 'text' ||
69
69
  this.type === 'date' ||
70
70
  this.type === 'search' ||
71
71
  this.type === 'url' ||
@@ -150,23 +150,6 @@ export class TttxInput {
150
150
  "attribute": "label",
151
151
  "reflect": false
152
152
  },
153
- "valid": {
154
- "type": "boolean",
155
- "mutable": false,
156
- "complexType": {
157
- "original": "boolean",
158
- "resolved": "boolean",
159
- "references": {}
160
- },
161
- "required": false,
162
- "optional": false,
163
- "docs": {
164
- "tags": [],
165
- "text": ""
166
- },
167
- "attribute": "valid",
168
- "reflect": false
169
- },
170
153
  "showerrormsg": {
171
154
  "type": "boolean",
172
155
  "mutable": false,
@@ -535,11 +518,6 @@ export class TttxInput {
535
518
  }
536
519
  };
537
520
  }
538
- static get states() {
539
- return {
540
- "isfocused": {}
541
- };
542
- }
543
521
  static get events() {
544
522
  return [{
545
523
  "method": "valueChanged",
@@ -556,6 +534,36 @@ export class TttxInput {
556
534
  "resolved": "string",
557
535
  "references": {}
558
536
  }
537
+ }, {
538
+ "method": "focusChanged",
539
+ "name": "focusChanged",
540
+ "bubbles": true,
541
+ "cancelable": true,
542
+ "composed": true,
543
+ "docs": {
544
+ "tags": [],
545
+ "text": ""
546
+ },
547
+ "complexType": {
548
+ "original": "string",
549
+ "resolved": "string",
550
+ "references": {}
551
+ }
552
+ }, {
553
+ "method": "blurChanged",
554
+ "name": "blurChanged",
555
+ "bubbles": true,
556
+ "cancelable": true,
557
+ "composed": true,
558
+ "docs": {
559
+ "tags": [],
560
+ "text": ""
561
+ },
562
+ "complexType": {
563
+ "original": "string",
564
+ "resolved": "string",
565
+ "references": {}
566
+ }
559
567
  }];
560
568
  }
561
569
  }
@@ -3,6 +3,7 @@ export { TttxButton as TttxButton } from '../types/components/atoms/tttx-button/
3
3
  export { TttxCheckbox as TttxCheckbox } from '../types/components/atoms/ttx-checkbox/tttx-checkbox';
4
4
  export { TttxForm as TttxForm } from '../types/components/molecules/tttx-form/tttx-form';
5
5
  export { TttxIcon as TttxIcon } from '../types/components/atoms/tttx-icon/tttx-icon';
6
+ export { TttxList as TttxList } from '../types/components/molecules/tttx-list/tttx-list';
6
7
  export { TttxLoadingSpinner as TttxLoadingSpinner } from '../types/components/atoms/tttx-loading-spinner/tttx-loading-spinner';
7
8
  export { TttxPopoverContent as TttxPopoverContent } from '../types/components/atoms/tttx-popover-content/tttx-popover-content';
8
9
  export { TttxInput as TttxStandaloneInput } from '../types/components/molecules/tttx-standalone-input/tttx-standalone-input';
@@ -3,6 +3,7 @@ export { TttxButton, defineCustomElement as defineCustomElementTttxButton } from
3
3
  export { TttxCheckbox, defineCustomElement as defineCustomElementTttxCheckbox } from './tttx-checkbox.js';
4
4
  export { TttxForm, defineCustomElement as defineCustomElementTttxForm } from './tttx-form.js';
5
5
  export { TttxIcon, defineCustomElement as defineCustomElementTttxIcon } from './tttx-icon.js';
6
+ export { TttxList, defineCustomElement as defineCustomElementTttxList } from './tttx-list.js';
6
7
  export { TttxLoadingSpinner, defineCustomElement as defineCustomElementTttxLoadingSpinner } from './tttx-loading-spinner.js';
7
8
  export { TttxPopoverContent, defineCustomElement as defineCustomElementTttxPopoverContent } from './tttx-popover-content.js';
8
9
  export { TttxStandaloneInput, defineCustomElement as defineCustomElementTttxStandaloneInput } from './tttx-standalone-input.js';
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface TttxList extends Components.TttxList, HTMLElement {}
4
+ export const TttxList: {
5
+ prototype: TttxList;
6
+ new (): TttxList;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,225 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$2 } from './tttx-loading-spinner2.js';
3
+
4
+ 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}.tttx-list__row{min-height:52px;line-height:36px;padding:8px;display:flex;flex-direction:row;align-items:center;cursor:pointer;border-bottom:1px solid #d5d5d5}.tttx-list__row .generic-template__content{width:100%;display:flex;align-items:center;gap:8px}.tttx-list__row:first-of-type{border-top:1px solid #d5d5d5}.tttx-list__row:focus,.tttx-list__row:active{background-color:#e6e6e6}.tttx-list__row.selected{background-color:#e7f1f9}.load-indicator{display:flex;justify-content:center}";
5
+
6
+ const TttxList$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.__attachShadow();
11
+ this.listPaginate = createEvent(this, "listPaginate", 7);
12
+ this.listSelectedEvent = createEvent(this, "listSelectedEvent", 7);
13
+ this.listItemClick = createEvent(this, "listItemClick", 7);
14
+ this.rowCount = 0;
15
+ this.name = undefined;
16
+ this.selectable = undefined;
17
+ this.items = [];
18
+ this.selectedIds = [];
19
+ this.loading = true;
20
+ this.lastPage = false;
21
+ }
22
+ listLoadHandler(event) {
23
+ if (event.detail.name !== this.name)
24
+ return;
25
+ this.items = [...this.items, ...event.detail.items];
26
+ this.loading = false;
27
+ this.lastPage = event.detail.lastPage;
28
+ this.renderRows(event.detail.items);
29
+ if (this.scrollableParent.clientHeight === this.scrollableParent.scrollHeight)
30
+ this.listPaginateHandler();
31
+ }
32
+ listPaginateHandler() {
33
+ // We don't want to emit an event to load the next page if this is the last page, or if we're already loading
34
+ if (this.lastPage || this.loading)
35
+ return;
36
+ this.loading = true;
37
+ this.listPaginate.emit({ name: this.name });
38
+ }
39
+ listClearDataCacheHandler(event) {
40
+ if (event.detail.name !== this.name)
41
+ return;
42
+ this.items = [];
43
+ this.selectedIds = [];
44
+ this.listItemContainer()
45
+ .querySelectorAll(".tttx-list__row")
46
+ .forEach((node) => {
47
+ node.remove();
48
+ });
49
+ this.rowCount = 0;
50
+ this.lastPage = false;
51
+ this.loading = false;
52
+ }
53
+ listActionSelectedEventHandler(event) {
54
+ if (event.detail.name !== this.name || !this.selectable || this.selectedIds.length === 0)
55
+ return;
56
+ const selectedRows = this.selectedIds.map(id => {
57
+ return this.items[id];
58
+ });
59
+ if (event.detail.removeRows)
60
+ this.removeSelectedRows();
61
+ this.listSelectedEvent.emit({
62
+ name: this.name,
63
+ eventName: event.detail.eventName,
64
+ selectedRows,
65
+ });
66
+ }
67
+ removeSelectedRows() {
68
+ const orderedSelectedIds = [...this.selectedIds].sort((a, b) => {
69
+ return b - a;
70
+ });
71
+ orderedSelectedIds.forEach(itemIndex => {
72
+ this.items.splice(itemIndex, 1);
73
+ this.listItemContainer().removeChild(this.listItemContainer().querySelector(`[data-row-id="${itemIndex}"]`));
74
+ // If this removes the scrollbar and we're not on the last page, load in a new page
75
+ if (this.scrollableParent.clientHeight === this.scrollableParent.scrollHeight)
76
+ this.listPaginateHandler();
77
+ });
78
+ // Empty selected ids with mutation rather than assignment to avoid unecessary component rerender
79
+ this.selectedIds.splice(0, this.selectedIds.length);
80
+ }
81
+ listItemClickHandler(itemData) {
82
+ if (this.selectedIds.length !== 0)
83
+ return;
84
+ this.listItemClick.emit({ itemData, name: this.name });
85
+ }
86
+ componentWillLoad() {
87
+ this.template = this.host.querySelector("template");
88
+ this.scrollableParent = this.getScrollableParent(this.host);
89
+ const scrollableContext = this.scrollableParent === document.scrollingElement ? document : this.scrollableParent;
90
+ scrollableContext.addEventListener("scroll", this.scrollHandler.bind(this));
91
+ window.addEventListener("resize", this.scrollHandler.bind(this));
92
+ }
93
+ componentDidLoad() {
94
+ // Emit event to load first page
95
+ this.listPaginate.emit({ name: this.name });
96
+ }
97
+ listItemContainer() {
98
+ return this.host.shadowRoot.querySelector(".list-item-container");
99
+ }
100
+ async scrollHandler() {
101
+ const { clientHeight, scrollTop, scrollHeight } = this.scrollableParent;
102
+ if (Math.abs(scrollHeight - clientHeight - scrollTop) < 26)
103
+ this.listPaginateHandler();
104
+ }
105
+ isScrollable(node) {
106
+ const hasScrollbar = ["scroll", "auto"].includes(node.style.overflowY);
107
+ return hasScrollbar;
108
+ }
109
+ getScrollableParent(node) {
110
+ if (!node || node === document.body) {
111
+ return document.scrollingElement;
112
+ }
113
+ else {
114
+ return this.isScrollable(node) ? node : this.getScrollableParent(node.parentElement);
115
+ }
116
+ }
117
+ appendRowCheckbox(rowContainer) {
118
+ if (!this.selectable)
119
+ return;
120
+ const rowId = this.rowCount;
121
+ const checkbox = document.createElement("input");
122
+ checkbox.setAttribute("type", "checkbox");
123
+ checkbox.addEventListener("click", e => {
124
+ e.stopPropagation();
125
+ if (e.target.checked) {
126
+ this.selectedIds = [...this.selectedIds, rowId];
127
+ rowContainer.classList.add("selected");
128
+ }
129
+ else {
130
+ this.selectedIds = this.selectedIds.filter(id => {
131
+ return id !== rowId;
132
+ });
133
+ rowContainer.classList.remove("selected");
134
+ }
135
+ });
136
+ rowContainer.setAttribute("data-row-id", `${rowId}`);
137
+ this.rowCount++;
138
+ rowContainer.appendChild(checkbox);
139
+ }
140
+ appendSeededTemplate(rowData, rowContainer) {
141
+ this.template.childNodes.forEach(child => {
142
+ const clone = child.cloneNode(false);
143
+ if (clone.getAttribute("data-fields")) {
144
+ const fields = clone.getAttribute("data-fields").replace(/\s/g, "").split(",");
145
+ const filteredRowData = Object.fromEntries(fields.map((field) => {
146
+ return [field, rowData[field]];
147
+ }));
148
+ clone.setAttribute("row-data", JSON.stringify(filteredRowData));
149
+ }
150
+ else {
151
+ clone.setAttribute("row-data", JSON.stringify(rowData));
152
+ }
153
+ rowContainer.appendChild(clone);
154
+ });
155
+ }
156
+ appendGenericTemplate(rowData, rowContainer) {
157
+ const row = document.createElement("div");
158
+ row.classList.add("generic-template__content");
159
+ row.textContent = rowData.text;
160
+ rowContainer.appendChild(row);
161
+ if (!rowData.icon)
162
+ return;
163
+ const icon = document.createElement("span");
164
+ icon.classList.add("material-symbols-rounded");
165
+ icon.textContent = rowData.icon;
166
+ if (rowData.iconColor)
167
+ icon.style["color"] = rowData.iconColor;
168
+ row.prepend(icon);
169
+ }
170
+ row(rowData) {
171
+ const rowContainer = document.createElement("div");
172
+ rowContainer.classList.add("tttx-list__row");
173
+ rowContainer.addEventListener("click", () => {
174
+ this.listItemClickHandler(rowData);
175
+ });
176
+ this.appendRowCheckbox(rowContainer);
177
+ this.template ? this.appendSeededTemplate(rowData, rowContainer) : this.appendGenericTemplate(rowData, rowContainer);
178
+ return rowContainer;
179
+ }
180
+ renderRows(batchData) {
181
+ batchData.forEach(rowData => {
182
+ this.listItemContainer().appendChild(this.row(rowData));
183
+ });
184
+ }
185
+ loadIndicator() {
186
+ if (!this.loading)
187
+ return;
188
+ return h("div", { class: "load-indicator" }, h("tttx-loading-spinner", { size: 'large' }));
189
+ }
190
+ render() {
191
+ return (h(Host, null, h("div", { class: "list-item-container", tabindex: "0" }, !this.loading && this.items.length === 0 ? "No data to display" : undefined), this.loadIndicator()));
192
+ }
193
+ get host() { return this; }
194
+ static get style() { return tttxListCss; }
195
+ }, [1, "tttx-list", {
196
+ "name": [1],
197
+ "selectable": [4],
198
+ "items": [32],
199
+ "selectedIds": [32],
200
+ "loading": [32],
201
+ "lastPage": [32]
202
+ }, [[4, "listPageLoad", "listLoadHandler"], [4, "listClearDataCache", "listClearDataCacheHandler"], [4, "listActionSelectedEvent", "listActionSelectedEventHandler"]]]);
203
+ function defineCustomElement$1() {
204
+ if (typeof customElements === "undefined") {
205
+ return;
206
+ }
207
+ const components = ["tttx-list", "tttx-loading-spinner"];
208
+ components.forEach(tagName => { switch (tagName) {
209
+ case "tttx-list":
210
+ if (!customElements.get(tagName)) {
211
+ customElements.define(tagName, TttxList$1);
212
+ }
213
+ break;
214
+ case "tttx-loading-spinner":
215
+ if (!customElements.get(tagName)) {
216
+ defineCustomElement$2();
217
+ }
218
+ break;
219
+ } });
220
+ }
221
+
222
+ const TttxList = TttxList$1;
223
+ const defineCustomElement = defineCustomElement$1;
224
+
225
+ export { TttxList, defineCustomElement };
@@ -1,41 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
-
3
- const tttxLoadingSpinnerCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.spinner-container{position:absolute}.loading-box{display:flex;align-items:center;justify-content:center}.loading-text{font-size:16px;font-weight:400;padding-top:10px;text-align:center}.spinner{border:solid #1479c6;border-bottom-color:#d5d5d5;border-radius:50%;position:relative;box-sizing:border-box;animation:rotation 1s linear infinite}.spinner.small{height:20px;width:20px;border-width:4px}.spinner.large{height:60px;width:60px;border-width:8px}@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";
4
-
5
- const TttxLoadingSpinner$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
- constructor() {
7
- super();
8
- this.__registerHost();
9
- this.__attachShadow();
10
- this.loadingMessage = undefined;
11
- this.size = 'large';
12
- }
13
- renderLoadingMessage() {
14
- if (!this.loadingMessage)
15
- return '';
16
- return h("div", { class: "loading-text" }, "Loading, please wait...");
17
- }
18
- render() {
19
- return (h("div", { class: "spinner-container" }, h("div", { class: "loading-box" }, h("span", { class: `spinner ${this.size}` })), this.renderLoadingMessage()));
20
- }
21
- static get style() { return tttxLoadingSpinnerCss; }
22
- }, [1, "tttx-loading-spinner", {
23
- "loadingMessage": [1028, "loading-message"],
24
- "size": [1025]
25
- }]);
26
- function defineCustomElement$1() {
27
- if (typeof customElements === "undefined") {
28
- return;
29
- }
30
- const components = ["tttx-loading-spinner"];
31
- components.forEach(tagName => { switch (tagName) {
32
- case "tttx-loading-spinner":
33
- if (!customElements.get(tagName)) {
34
- customElements.define(tagName, TttxLoadingSpinner$1);
35
- }
36
- break;
37
- } });
38
- }
1
+ import { T as TttxLoadingSpinner$1, d as defineCustomElement$1 } from './tttx-loading-spinner2.js';
39
2
 
40
3
  const TttxLoadingSpinner = TttxLoadingSpinner$1;
41
4
  const defineCustomElement = defineCustomElement$1;
@@ -0,0 +1,40 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+
3
+ const tttxLoadingSpinnerCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.spinner-container{position:absolute}.loading-box{display:flex;align-items:center;justify-content:center}.loading-text{font-size:16px;font-weight:400;padding-top:10px;text-align:center}.spinner{border:solid #1479c6;border-bottom-color:#d5d5d5;border-radius:50%;position:relative;box-sizing:border-box;animation:rotation 1s linear infinite}.spinner.small{height:20px;width:20px;border-width:4px}.spinner.large{height:60px;width:60px;border-width:8px}@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";
4
+
5
+ const TttxLoadingSpinner = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ this.__attachShadow();
10
+ this.loadingMessage = undefined;
11
+ this.size = 'large';
12
+ }
13
+ renderLoadingMessage() {
14
+ if (!this.loadingMessage)
15
+ return '';
16
+ return h("div", { class: "loading-text" }, "Loading, please wait...");
17
+ }
18
+ render() {
19
+ return (h("div", { class: "spinner-container" }, h("div", { class: "loading-box" }, h("span", { class: `spinner ${this.size}` })), this.renderLoadingMessage()));
20
+ }
21
+ static get style() { return tttxLoadingSpinnerCss; }
22
+ }, [1, "tttx-loading-spinner", {
23
+ "loadingMessage": [1028, "loading-message"],
24
+ "size": [1025]
25
+ }]);
26
+ function defineCustomElement() {
27
+ if (typeof customElements === "undefined") {
28
+ return;
29
+ }
30
+ const components = ["tttx-loading-spinner"];
31
+ components.forEach(tagName => { switch (tagName) {
32
+ case "tttx-loading-spinner":
33
+ if (!customElements.get(tagName)) {
34
+ customElements.define(tagName, TttxLoadingSpinner);
35
+ }
36
+ break;
37
+ } });
38
+ }
39
+
40
+ export { TttxLoadingSpinner as T, defineCustomElement as d };
@@ -8,9 +8,9 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
8
8
  super();
9
9
  this.__registerHost();
10
10
  this.valueChanged = createEvent(this, "valueChanged", 7);
11
- this.isfocused = false;
11
+ this.focusChanged = createEvent(this, "focusChanged", 7);
12
+ this.blurChanged = createEvent(this, "blurChanged", 7);
12
13
  this.label = undefined;
13
- this.valid = undefined;
14
14
  this.showerrormsg = undefined;
15
15
  this.errormsg = undefined;
16
16
  this.iconleft = undefined;
@@ -38,11 +38,13 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
38
38
  this.value = target.value;
39
39
  this.valueChanged.emit(target.value);
40
40
  }
41
- handleFocus() {
42
- this.isfocused = true;
41
+ handleFocus(event) {
42
+ const target = event.target;
43
+ this.valueChanged.emit(target.value);
43
44
  }
44
- handleBlur() {
45
- this.isfocused = false;
45
+ handleBlur(event) {
46
+ const target = event.target;
47
+ this.valueChanged.emit(target.value);
46
48
  }
47
49
  render() {
48
50
  const classNames = ['standalone', this.showerrormsg ? 'invalid' : ''].join(' ');
@@ -72,7 +74,7 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
72
74
  this.type === 'number' ||
73
75
  this.type === 'range'
74
76
  ? this.min
75
- : null, minlength: this.maxlength, name: this.name, pattern: this.type === 'text' ||
77
+ : null, minlength: this.minlength, name: this.name, pattern: this.type === 'text' ||
76
78
  this.type === 'date' ||
77
79
  this.type === 'search' ||
78
80
  this.type === 'url' ||
@@ -129,7 +131,6 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
129
131
  static get style() { return tttxStandaloneInputCss; }
130
132
  }, [2, "tttx-standalone-input", {
131
133
  "label": [1],
132
- "valid": [4],
133
134
  "showerrormsg": [4],
134
135
  "errormsg": [1],
135
136
  "iconleft": [1],
@@ -150,8 +151,7 @@ const TttxInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
150
151
  "required": [4],
151
152
  "step": [8],
152
153
  "type": [1],
153
- "value": [1032],
154
- "isfocused": [32]
154
+ "value": [1032]
155
155
  }]);
156
156
  function defineCustomElement$1() {
157
157
  if (typeof customElements === "undefined") {
@@ -11,7 +11,7 @@ const patchEsm = () => {
11
11
  const defineCustomElements = (win, options) => {
12
12
  if (typeof window === 'undefined') return Promise.resolve();
13
13
  return patchEsm().then(() => {
14
- return bootstrapLazy([["tttx-standalone-input",[[2,"tttx-standalone-input",{"label":[1],"valid":[4],"showerrormsg":[4],"errormsg":[1],"iconleft":[1],"iconright":[1],"autocapitalize":[1],"autocomplete":[1],"autofocus":[4],"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],"isfocused":[32]}]]],["tttx-button",[[1,"tttx-button",{"fontColor":[1,"font-color"],"buttonStyle":[1,"button-style"]},[[0,"clickEvent","onClicked"]]]]],["tttx-checkbox",[[1,"tttx-checkbox",{"value":[4],"label":[1],"required":[4]}]]],["tttx-form",[[1,"tttx-form",{"formschema":[8],"submitValue":[8,"submit-value"]}]]],["tttx-loading-spinner",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]],["tttx-popover-content",[[1,"tttx-popover-content",{"header":[1],"body":[1],"linkcontext":[1],"linktext":[1]}]]],["tttx-icon",[[1,"tttx-icon",{"icon":[1],"colour":[1]},[[4,"click","handleDocumentClick"]]]]]], options);
14
+ return bootstrapLazy([["tttx-list",[[1,"tttx-list",{"name":[1],"selectable":[4],"items":[32],"selectedIds":[32],"loading":[32],"lastPage":[32]},[[4,"listPageLoad","listLoadHandler"],[4,"listClearDataCache","listClearDataCacheHandler"],[4,"listActionSelectedEvent","listActionSelectedEventHandler"]]]]],["tttx-standalone-input",[[2,"tttx-standalone-input",{"label":[1],"showerrormsg":[4],"errormsg":[1],"iconleft":[1],"iconright":[1],"autocapitalize":[1],"autocomplete":[1],"autofocus":[4],"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",{"fontColor":[1,"font-color"],"buttonStyle":[1,"button-style"]},[[0,"clickEvent","onClicked"]]]]],["tttx-checkbox",[[1,"tttx-checkbox",{"value":[4],"label":[1],"required":[4]}]]],["tttx-form",[[1,"tttx-form",{"formschema":[8],"submitValue":[8,"submit-value"]}]]],["tttx-popover-content",[[1,"tttx-popover-content",{"header":[1],"body":[1],"linkcontext":[1],"linktext":[1]}]]],["tttx-icon",[[1,"tttx-icon",{"icon":[1],"colour":[1]},[[4,"click","handleDocumentClick"]]]]],["tttx-loading-spinner",[[1,"tttx-loading-spinner",{"loadingMessage":[1028,"loading-message"],"size":[1025]}]]]], options);
15
15
  });
16
16
  };
17
17