@3t-transform/threeteeui 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{tttx-button_1_2_0.cjs.entry.js → tttx-button_1_3_0.cjs.entry.js} +2 -2
- package/dist/cjs/{tttx-checkbox-group-caption_1_2_0.cjs.entry.js → tttx-checkbox-group-caption_1_3_0.cjs.entry.js} +1 -1
- package/dist/cjs/{tttx-checkbox-group-heading_1_2_0.cjs.entry.js → tttx-checkbox-group-heading_1_3_0.cjs.entry.js} +1 -1
- package/dist/cjs/{tttx-checkbox-group_1_2_0.cjs.entry.js → tttx-checkbox-group_1_3_0.cjs.entry.js} +1 -1
- package/dist/cjs/{tttx-checkbox_1_2_0.cjs.entry.js → tttx-checkbox_1_3_0.cjs.entry.js} +2 -2
- package/dist/cjs/{tttx-data-pattern_1_2_0.cjs.entry.js → tttx-data-pattern_1_3_0.cjs.entry.js} +2 -2
- package/dist/cjs/{tttx-dialog-box_1_2_0.cjs.entry.js → tttx-dialog-box_1_3_0.cjs.entry.js} +3 -3
- package/dist/cjs/{tttx-dialog_1_2_0.cjs.entry.js → tttx-dialog_1_3_0.cjs.entry.js} +2 -2
- package/dist/cjs/{tttx-expander_1_2_0.cjs.entry.js → tttx-expander_1_3_0.cjs.entry.js} +2 -2
- package/dist/cjs/{tttx-filter_1_2_0_4.cjs.entry.js → tttx-filter_1_3_0_4.cjs.entry.js} +17 -10
- package/dist/cjs/{tttx-form_1_2_0.cjs.entry.js → tttx-form_1_3_0.cjs.entry.js} +159 -127
- package/dist/cjs/{tttx-icon_1_2_0.cjs.entry.js → tttx-icon_1_3_0.cjs.entry.js} +1 -1
- package/dist/cjs/{tttx-keyvalue-block_1_2_0.cjs.entry.js → tttx-keyvalue-block_1_3_0.cjs.entry.js} +1 -1
- package/dist/cjs/{tttx-loading-spinner_1_2_0.cjs.entry.js → tttx-loading-spinner_1_3_0.cjs.entry.js} +1 -1
- package/dist/cjs/{tttx-multiselect-box_1_2_0.cjs.entry.js → tttx-multiselect-box_1_3_0.cjs.entry.js} +6 -6
- package/dist/cjs/{tttx-percentage-bar_1_2_0.cjs.entry.js → tttx-percentage-bar_1_3_0.cjs.entry.js} +2 -2
- package/dist/cjs/{tttx-qrcode_1_2_0.cjs.entry.js → tttx-qrcode_1_3_0.cjs.entry.js} +1 -1
- package/dist/cjs/{tttx-select-box_1_2_0.cjs.entry.js → tttx-select-box_1_3_0.cjs.entry.js} +3 -3
- package/dist/cjs/tttx-standalone-input_1_3_0.cjs.entry.js +94 -0
- package/dist/cjs/{tttx-tabs_1_2_0.cjs.entry.js → tttx-tabs_1_3_0.cjs.entry.js} +4 -4
- package/dist/cjs/{tttx-tag_1_2_0.cjs.entry.js → tttx-tag_1_3_0.cjs.entry.js} +1 -1
- package/dist/cjs/{tttx-textarea_1_2_0.cjs.entry.js → tttx-textarea_1_3_0.cjs.entry.js} +2 -2
- package/dist/cjs/{tttx-tree-view_1_2_0.cjs.entry.js → tttx-tree-view_1_3_0.cjs.entry.js} +3 -3
- package/dist/cjs/tttx.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/atoms/tttx-button/tttx-button.js +2 -2
- package/dist/collection/components/atoms/tttx-button/tttx-button.stories.js +20 -20
- package/dist/collection/components/atoms/tttx-checkbox/tttx-checkbox.js +2 -2
- package/dist/collection/components/atoms/tttx-checkbox/tttx-checkbox.stories.js +1 -1
- package/dist/collection/components/atoms/tttx-icon/tttx-icon.js +1 -1
- package/dist/collection/components/atoms/tttx-icon/tttx-icon.stories.js +1 -1
- package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.js +1 -1
- package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.js +6 -6
- package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.js +1 -1
- package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.js +1 -1
- package/dist/collection/components/atoms/tttx-percentage-bar/tttx-percentage-bar.js +1 -1
- package/dist/collection/components/atoms/tttx-percentage-bar/tttx-percentage-bar.stories.js +5 -5
- package/dist/collection/components/atoms/tttx-qrcode/tttx-qrcode.js +1 -1
- package/dist/collection/components/atoms/tttx-qrcode/tttx-qrcode.stories.js +1 -1
- package/dist/collection/components/atoms/tttx-tag/tttx-tag.js +1 -1
- package/dist/collection/components/atoms/tttx-tag/tttx-tag.stories.js +6 -6
- package/dist/collection/components/molecules/tttx-checkbox-group/components/tttx-checkbox-group-caption.js +1 -1
- package/dist/collection/components/molecules/tttx-checkbox-group/components/tttx-checkbox-group-heading.js +1 -1
- package/dist/collection/components/molecules/tttx-checkbox-group/tttx-checkbox-group.js +1 -1
- package/dist/collection/components/molecules/tttx-checkbox-group/tttx-checkbox-group.stories.js +10 -10
- package/dist/collection/components/molecules/tttx-dialog/tttx-dialog.js +2 -2
- package/dist/collection/components/molecules/tttx-dialog/tttx-dialog.stories.js +6 -6
- package/dist/collection/components/molecules/tttx-dialog-box/tttx-dialog-box.js +3 -3
- package/dist/collection/components/molecules/tttx-dialog-box/tttx-dialog-box.stories.js +24 -24
- package/dist/collection/components/molecules/tttx-expander/tttx-expander.js +2 -2
- package/dist/collection/components/molecules/tttx-expander/tttx-expander.stories.js +9 -9
- package/dist/collection/components/molecules/tttx-filter/tttx-filter.js +3 -3
- package/dist/collection/components/molecules/tttx-filter/tttx-filter.stories.js +2 -2
- package/dist/collection/components/molecules/tttx-form/lib/setErrorState.js +0 -1
- package/dist/collection/components/molecules/tttx-form/lib/timecomparatorChecks.js +64 -0
- package/dist/collection/components/molecules/tttx-form/tttx-form.js +103 -129
- package/dist/collection/components/molecules/tttx-form/tttx-form.stories.js +5 -5
- package/dist/collection/components/molecules/tttx-list/tttx-list.js +11 -4
- package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +46 -46
- package/dist/collection/components/molecules/tttx-multiselect-box/tttx-multiselect-box.js +6 -6
- package/dist/collection/components/molecules/tttx-multiselect-box/tttx-multiselect-box.stories.js +33 -33
- package/dist/collection/components/molecules/tttx-select-box/tttx-select-box.js +3 -3
- package/dist/collection/components/molecules/tttx-select-box/tttx-select-box.stories.js +16 -16
- package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.js +2 -2
- package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.stories.js +1 -1
- package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +4 -4
- package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js +1 -1
- package/dist/collection/components/molecules/tttx-tabs/tttx-tabs.js +3 -3
- package/dist/collection/components/molecules/tttx-tabs/tttx-tabs.stories.js +4 -4
- package/dist/collection/components/molecules/tttx-textarea/tttx-textarea.js +3 -3
- package/dist/collection/components/molecules/tttx-textarea/tttx-textarea.stories.js +1 -1
- package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.js +1 -1
- package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.stories.js +37 -37
- package/dist/collection/components/molecules/tttx-tree-view/tttx-tree-view.js +3 -3
- package/dist/collection/components/molecules/tttx-tree-view/tttx-tree-view.stories.js +8 -8
- package/dist/collection/components/organisms/tttx-data-pattern/tttx-data-pattern.js +2 -2
- package/dist/collection/components/organisms/tttx-data-pattern/tttx-data-pattern.stories.js +5 -5
- package/dist/components/index.d.ts +26 -26
- package/dist/components/index.js +26 -26
- package/dist/components/tttx-button.js +5 -5
- package/dist/components/{tttx-button_1_2_0.d.ts → tttx-button_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-button_1_2_0.js → tttx-button_1_3_0.js} +2 -2
- package/dist/components/tttx-checkbox-group-caption_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-checkbox-group-caption_1_2_0.js → tttx-checkbox-group-caption_1_3_0.js} +5 -5
- package/dist/components/tttx-checkbox-group-heading_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-checkbox-group-heading_1_2_0.js → tttx-checkbox-group-heading_1_3_0.js} +5 -5
- package/dist/components/tttx-checkbox-group_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-checkbox-group_1_2_0.js → tttx-checkbox-group_1_3_0.js} +5 -5
- package/dist/components/{tttx-textarea_1_2_0.d.ts → tttx-checkbox_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-checkbox_1_2_0.js → tttx-checkbox_1_3_0.js} +7 -7
- package/dist/components/tttx-data-pattern_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-data-pattern_1_2_0.js → tttx-data-pattern_1_3_0.js} +13 -13
- package/dist/components/{tttx-dialog-box_1_2_0.d.ts → tttx-dialog-box_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-dialog-box_1_2_0.js → tttx-dialog-box_1_3_0.js} +9 -9
- package/dist/components/{tttx-filter_1_2_0.d.ts → tttx-dialog_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-dialog_1_2_0.js → tttx-dialog_1_3_0.js} +8 -8
- package/dist/components/{tttx-expander_1_2_0.d.ts → tttx-expander_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-expander_1_2_0.js → tttx-expander_1_3_0.js} +7 -7
- package/dist/components/tttx-filter.js +6 -6
- package/dist/components/{tttx-qrcode_1_2_0.d.ts → tttx-filter_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-filter_1_2_0.js → tttx-filter_1_3_0.js} +2 -2
- package/dist/components/{tttx-icon_1_2_0.d.ts → tttx-form_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-form_1_2_0.js → tttx-form_1_3_0.js} +166 -134
- package/dist/components/tttx-icon.js +3 -3
- package/dist/components/{tttx-list_1_2_0.d.ts → tttx-icon_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-icon_1_2_0.js → tttx-icon_1_3_0.js} +2 -2
- package/dist/components/tttx-keyvalue-block_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-keyvalue-block_1_2_0.js → tttx-keyvalue-block_1_3_0.js} +5 -5
- package/dist/components/tttx-list.js +14 -7
- package/dist/components/{tttx-form_1_2_0.d.ts → tttx-list_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-list_1_2_0.js → tttx-list_1_3_0.js} +2 -2
- package/dist/components/tttx-loading-spinner_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-loading-spinner_1_2_0.js → tttx-loading-spinner_1_3_0.js} +5 -5
- package/dist/components/tttx-multiselect-box_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-multiselect-box_1_2_0.js → tttx-multiselect-box_1_3_0.js} +13 -13
- package/dist/components/tttx-percentage-bar_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-percentage-bar_1_2_0.js → tttx-percentage-bar_1_3_0.js} +6 -6
- package/dist/components/{tttx-dialog_1_2_0.d.ts → tttx-qrcode_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-qrcode_1_2_0.js → tttx-qrcode_1_3_0.js} +5 -5
- package/dist/components/tttx-select-box.js +7 -7
- package/dist/components/tttx-select-box_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-select-box_1_2_0.js → tttx-select-box_1_3_0.js} +2 -2
- package/dist/components/tttx-sorter.js +5 -5
- package/dist/components/tttx-sorter_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-sorter_1_2_0.js → tttx-sorter_1_3_0.js} +2 -2
- package/dist/components/tttx-standalone-input.js +6 -6
- package/dist/components/tttx-standalone-input_1_3_0.d.ts +11 -0
- package/dist/components/{tttx-standalone-input_1_2_0.js → tttx-standalone-input_1_3_0.js} +2 -2
- package/dist/components/{tttx-tabs_1_2_0.d.ts → tttx-tabs_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-tabs_1_2_0.js → tttx-tabs_1_3_0.js} +9 -9
- package/dist/components/{tttx-tag_1_2_0.d.ts → tttx-tag_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-tag_1_2_0.js → tttx-tag_1_3_0.js} +5 -5
- package/dist/components/{tttx-checkbox_1_2_0.d.ts → tttx-textarea_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-textarea_1_2_0.js → tttx-textarea_1_3_0.js} +6 -6
- package/dist/components/tttx-toolbar.js +3 -3
- package/dist/components/{tttx-toolbar_1_2_0.d.ts → tttx-toolbar_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-toolbar_1_2_0.js → tttx-toolbar_1_3_0.js} +2 -2
- package/dist/components/{tttx-tree-view_1_2_0.d.ts → tttx-tree-view_1_3_0.d.ts} +4 -4
- package/dist/components/{tttx-tree-view_1_2_0.js → tttx-tree-view_1_3_0.js} +9 -9
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{tttx-button_1_2_0.entry.js → tttx-button_1_3_0.entry.js} +2 -2
- package/dist/esm/{tttx-checkbox-group-caption_1_2_0.entry.js → tttx-checkbox-group-caption_1_3_0.entry.js} +1 -1
- package/dist/esm/{tttx-checkbox-group-heading_1_2_0.entry.js → tttx-checkbox-group-heading_1_3_0.entry.js} +1 -1
- package/dist/esm/{tttx-checkbox-group_1_2_0.entry.js → tttx-checkbox-group_1_3_0.entry.js} +1 -1
- package/dist/esm/{tttx-checkbox_1_2_0.entry.js → tttx-checkbox_1_3_0.entry.js} +2 -2
- package/dist/esm/{tttx-data-pattern_1_2_0.entry.js → tttx-data-pattern_1_3_0.entry.js} +2 -2
- package/dist/esm/{tttx-dialog-box_1_2_0.entry.js → tttx-dialog-box_1_3_0.entry.js} +3 -3
- package/dist/esm/{tttx-dialog_1_2_0.entry.js → tttx-dialog_1_3_0.entry.js} +2 -2
- package/dist/esm/{tttx-expander_1_2_0.entry.js → tttx-expander_1_3_0.entry.js} +2 -2
- package/dist/esm/{tttx-filter_1_2_0_4.entry.js → tttx-filter_1_3_0_4.entry.js} +14 -7
- package/dist/esm/{tttx-form_1_2_0.entry.js → tttx-form_1_3_0.entry.js} +159 -127
- package/dist/esm/{tttx-icon_1_2_0.entry.js → tttx-icon_1_3_0.entry.js} +1 -1
- package/dist/esm/{tttx-keyvalue-block_1_2_0.entry.js → tttx-keyvalue-block_1_3_0.entry.js} +1 -1
- package/dist/esm/{tttx-loading-spinner_1_2_0.entry.js → tttx-loading-spinner_1_3_0.entry.js} +1 -1
- package/dist/esm/{tttx-multiselect-box_1_2_0.entry.js → tttx-multiselect-box_1_3_0.entry.js} +6 -6
- package/dist/esm/{tttx-percentage-bar_1_2_0.entry.js → tttx-percentage-bar_1_3_0.entry.js} +2 -2
- package/dist/esm/{tttx-qrcode_1_2_0.entry.js → tttx-qrcode_1_3_0.entry.js} +1 -1
- package/dist/esm/{tttx-select-box_1_2_0.entry.js → tttx-select-box_1_3_0.entry.js} +3 -3
- package/dist/esm/tttx-standalone-input_1_3_0.entry.js +90 -0
- package/dist/esm/{tttx-tabs_1_2_0.entry.js → tttx-tabs_1_3_0.entry.js} +4 -4
- package/dist/esm/{tttx-tag_1_2_0.entry.js → tttx-tag_1_3_0.entry.js} +1 -1
- package/dist/esm/{tttx-textarea_1_2_0.entry.js → tttx-textarea_1_3_0.entry.js} +2 -2
- package/dist/esm/{tttx-tree-view_1_2_0.entry.js → tttx-tree-view_1_3_0.entry.js} +3 -3
- package/dist/esm/tttx.js +1 -1
- package/dist/tttx/p-0e515960.entry.js +1 -1
- package/dist/tttx/p-1e5ff5f8.entry.js +1 -1
- package/dist/tttx/p-23f45005.entry.js +1 -1
- package/dist/tttx/p-3676cddd.entry.js +1 -0
- package/dist/tttx/p-56c8c353.entry.js +1 -1
- package/dist/tttx/p-59c7b049.entry.js +1 -1
- package/dist/tttx/p-5d2706b1.entry.js +1 -1
- package/dist/tttx/p-63ad6fb7.entry.js +1 -1
- package/dist/tttx/p-6b1c7a21.entry.js +1 -1
- package/dist/tttx/p-6deb8699.entry.js +1 -1
- package/dist/tttx/p-796f699a.entry.js +1 -1
- package/dist/tttx/p-81aaafa0.entry.js +1 -1
- package/dist/tttx/p-822ec9dc.entry.js +1 -0
- package/dist/tttx/p-884f37d3.entry.js +1 -1
- package/dist/tttx/p-9434561e.entry.js +1 -1
- package/dist/tttx/p-983d63ff.entry.js +1 -1
- package/dist/tttx/p-a01e679a.entry.js +1 -1
- package/dist/tttx/p-a8e76e78.entry.js +1 -1
- package/dist/tttx/p-c170e3b8.entry.js +1 -1
- package/dist/tttx/p-ee358ce4.entry.js +1 -1
- package/dist/tttx/p-f374e293.entry.js +1 -1
- package/dist/tttx/p-f4db1cf2.entry.js +1 -1
- package/dist/tttx/p-fe967031.entry.js +1 -1
- package/dist/tttx/tttx.esm.js +1 -1
- package/dist/types/components/molecules/tttx-form/lib/timecomparatorChecks.d.ts +4 -0
- package/dist/types/components/molecules/tttx-form/tttx-form.d.ts +35 -14
- package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +2 -2
- package/dist/types/components/molecules/tttx-textarea/tttx-textarea.d.ts +2 -2
- package/dist/types/components.d.ts +305 -304
- package/package.json +2 -1
- package/dist/cjs/tttx-standalone-input_1_2_0.cjs.entry.js +0 -94
- package/dist/components/tttx-checkbox-group-caption_1_2_0.d.ts +0 -11
- package/dist/components/tttx-checkbox-group-heading_1_2_0.d.ts +0 -11
- package/dist/components/tttx-checkbox-group_1_2_0.d.ts +0 -11
- package/dist/components/tttx-data-pattern_1_2_0.d.ts +0 -11
- package/dist/components/tttx-keyvalue-block_1_2_0.d.ts +0 -11
- package/dist/components/tttx-loading-spinner_1_2_0.d.ts +0 -11
- package/dist/components/tttx-multiselect-box_1_2_0.d.ts +0 -11
- package/dist/components/tttx-percentage-bar_1_2_0.d.ts +0 -11
- package/dist/components/tttx-select-box_1_2_0.d.ts +0 -11
- package/dist/components/tttx-sorter_1_2_0.d.ts +0 -11
- package/dist/components/tttx-standalone-input_1_2_0.d.ts +0 -11
- package/dist/esm/tttx-standalone-input_1_2_0.entry.js +0 -90
- package/dist/tttx/p-34be6c6d.entry.js +0 -1
- package/dist/tttx/p-c8589436.entry.js +0 -1
|
@@ -117,7 +117,6 @@ function setErrorState(target, hasError, errorMessage, parent = undefined) {
|
|
|
117
117
|
errorBubble.innerHTML = '';
|
|
118
118
|
errorBubble.append(errorIcon);
|
|
119
119
|
errorBubble.append(errorMessage);
|
|
120
|
-
// errorBubble.replaceChildren(errorIcon, errorMessage);
|
|
121
120
|
}
|
|
122
121
|
// If no error was detected, remove the "invalid" class from the input field and clear the error bubble
|
|
123
122
|
else {
|
|
@@ -127,6 +126,70 @@ function setErrorState(target, hasError, errorMessage, parent = undefined) {
|
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
128
|
|
|
129
|
+
function startEndTimeComparator(event) {
|
|
130
|
+
var _a, _b;
|
|
131
|
+
const target = event.target;
|
|
132
|
+
const formKey = target.getAttribute('data-formkey');
|
|
133
|
+
const timeFields = Array.from(target.parentElement.parentElement.parentElement.querySelectorAll(`[data-formkey=${formKey}]`));
|
|
134
|
+
if (timeFields.length === 4) {
|
|
135
|
+
const startTime = timeFields.find(t => t.name.endsWith('starttime'));
|
|
136
|
+
const endTime = timeFields.find(t => t.name.endsWith('endtime'));
|
|
137
|
+
const startDate = timeFields.find(t => t.name.endsWith('startdate'));
|
|
138
|
+
const endDate = timeFields.find(t => t.name.endsWith('enddate'));
|
|
139
|
+
if (startTime.valueAsNumber >= endTime.valueAsNumber && ((_a = startDate.valueAsDate) === null || _a === void 0 ? void 0 : _a.valueOf()) === ((_b = endDate.valueAsDate) === null || _b === void 0 ? void 0 : _b.valueOf())) {
|
|
140
|
+
setErrorState(endTime, true, 'End time cannot be the same or before the start time');
|
|
141
|
+
if (target.name.endsWith('starttime')) {
|
|
142
|
+
this.validityCheckWrapper(event);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// clear any end time comparitor errors and perform the standard validity check on the event
|
|
147
|
+
endTime.setCustomValidity('');
|
|
148
|
+
setErrorState(endTime, false, null);
|
|
149
|
+
this.validityCheckWrapper(event);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function clearTimeComparator(event) {
|
|
154
|
+
const target = event.target;
|
|
155
|
+
const formKey = target.getAttribute('data-formkey');
|
|
156
|
+
const timeFields = Array.from(target.parentElement.parentElement.parentElement.querySelectorAll(`[type=time][data-formkey=${formKey}]`));
|
|
157
|
+
if (timeFields.length) {
|
|
158
|
+
const endTime = timeFields.find(t => t.name.endsWith('endtime'));
|
|
159
|
+
endTime.setCustomValidity('');
|
|
160
|
+
setErrorState(endTime, false, null);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
function endDateComparisonValidator(event, triggeredByStartDate = false) {
|
|
164
|
+
var _a, _b, _c, _d;
|
|
165
|
+
const endDate = event.target;
|
|
166
|
+
if (!endDate.value && triggeredByStartDate) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const compareWithName = endDate.getAttribute('data-compare-with');
|
|
170
|
+
const startDate = endDate.parentElement.parentElement.parentElement.querySelector(`[name=${compareWithName}]`);
|
|
171
|
+
if (((_a = endDate.valueAsDate) === null || _a === void 0 ? void 0 : _a.valueOf()) < ((_b = startDate.valueAsDate) === null || _b === void 0 ? void 0 : _b.valueOf())) {
|
|
172
|
+
endDate.setCustomValidity(endDate.getAttribute('data-compare'));
|
|
173
|
+
setErrorState(endDate, true, endDate.getAttribute('data-compare'));
|
|
174
|
+
}
|
|
175
|
+
else if (((_c = endDate.valueAsDate) === null || _c === void 0 ? void 0 : _c.valueOf()) === ((_d = startDate.valueAsDate) === null || _d === void 0 ? void 0 : _d.valueOf())) {
|
|
176
|
+
endDate.setCustomValidity('');
|
|
177
|
+
this.validityCheckWrapper(event);
|
|
178
|
+
startEndTimeComparator.bind(this)(event);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
clearTimeComparator.bind(this)(event);
|
|
182
|
+
this.validityCheckWrapper(event);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function startDateComparisonValidator(event) {
|
|
186
|
+
const startDate = event.target;
|
|
187
|
+
const compareToName = startDate.getAttribute('data-compare-to');
|
|
188
|
+
const endDate = startDate.parentElement.parentElement.parentElement.querySelector(`[name=${compareToName}]`);
|
|
189
|
+
endDateComparisonValidator.bind(this)({ target: endDate }, true);
|
|
190
|
+
this.validityCheckWrapper(event);
|
|
191
|
+
}
|
|
192
|
+
|
|
130
193
|
const tttxFormCss = ".material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}label{font-weight:500;font-size:16px;line-height:18.752px;color:#212121}label .optional{color:#757575;font-weight:normal}label .outer-container{position:relative}label .outer-container .left-icons,label .outer-container .right-icons{display:flex;position:absolute;height:24px;gap:8px}label .outer-container .left-icons tttx-icon,label .outer-container .right-icons tttx-icon{height:24px;width:24px}label .outer-container .left-icons{left:8px}label .outer-container .right-icons{right:8px}label .outer-container input,label .outer-container textarea{color:#212121;box-sizing:border-box;border:1px solid #d5d5d5;border-radius:4px;padding:0;padding-left:16px;padding-right:16px;margin-top:4px;}label .outer-container input.has-input-icon,label .outer-container textarea.has-input-icon{padding-left:40px}label .outer-container input.has-input-icon.has-left-icon,label .outer-container textarea.has-input-icon.has-left-icon{padding-left:72px}label .outer-container input.has-left-icon,label .outer-container textarea.has-left-icon{padding-left:40px}label .outer-container input.has-right-icon,label .outer-container textarea.has-right-icon{padding-right:40px}label .outer-container input.invalid,label .outer-container textarea.invalid{border:1px solid #dc0000}label .outer-container input:not([type=submit]),label .outer-container textarea:not([type=submit]){font-family:\"Roboto\", serif;width:100%;height:36px;font-size:16px;line-height:18.752px}label .outer-container input[type=radio],label .outer-container textarea[type=radio]{width:20px;height:20px}label .outer-container input[type=date],label .outer-container textarea[type=date]{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}label .outer-container input[readonly],label .outer-container textarea[readonly]{cursor:default;pointer-events:none;user-select:none;color:gray}label .outer-container input:focus,label .outer-container textarea:focus{border-color:#1479c6}label .outer-container input:focus-visible,label .outer-container textarea:focus-visible{outline:none}label .outer-container textarea{padding:8px;height:auto;min-height:100px;resize:vertical}label .outer-container.inputBlock{display:flex;align-items:center;line-height:21px}label .outer-container.inputBlock .left-icons,label .outer-container.inputBlock .right-icons{margin-top:4px}label .outer-container.inputBlock.readonly{pointer-events:none;user-select:none;color:gray}label .outer-container.inputBlock.radioBlock{display:block}label .outer-container.inputInline{display:flex;white-space:nowrap;align-items:center;margin:0}label .outer-container.inputInline input{margin-top:0}label .secondarylabel{color:#757575;font-size:14px;line-height:16.408px;font-weight:normal;display:flex;margin-top:4px}label .errorBubble{position:relative;font-size:14px;line-height:16.408px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center;margin-top:4px}label .errorBubble:not(.visible){display:none}label .errorBubble span{color:#dc0000;font-size:16px;margin-right:4px}.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}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:block}fieldset{margin:0;padding:0;border:none}label{display:block;position:relative;margin-bottom:16px}.inlineLabel{font-weight:400;display:inline-block;vertical-align:top;padding-top:4px}input[type=checkbox]{width:18px;height:18px}input~label{font-weight:400}select{font-family:\"Roboto\", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}.placeholder{color:#9e9e9e}.placeholder option{color:initial}select.invalid:invalid{border:1px solid #dc0000}select~.errorBubble{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center}select~.errorBubble:not(.visible){visibility:hidden}select~.errorBubble span{color:#dc0000;font-size:16px;margin-right:4px;height:16px}select.invalid:invalid~.errorBubble{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;visibility:visible}select:focus{border-color:#1479c6}select:focus-visible{outline:none}.button{padding:0 16px}.footer{display:flex;gap:16px;flex-direction:row-reverse}label.flex-label{display:flex;flex-direction:column;width:346px;box-sizing:border-box}label>.outer-container>input[type=date]{min-width:0;width:200px}label.flex-label input[type=time]{min-width:auto;text-align:center;width:130px;margin-left:16px}label>.outer-container>input[type=date],label.flex-label input[type=time]{line-height:36px}";
|
|
131
194
|
|
|
132
195
|
const TttxForm = class {
|
|
@@ -141,13 +204,6 @@ const TttxForm = class {
|
|
|
141
204
|
}
|
|
142
205
|
// This method is called whenever the "formschema" property changes
|
|
143
206
|
onFormSchemaChange(newValue) {
|
|
144
|
-
// If the formSchema changes and the form data is uncontrolled, store the data since the fields will be removed to avoid form duplication
|
|
145
|
-
if (!this.data && this.form && this._formSchema) {
|
|
146
|
-
const formData = new FormData(this.form);
|
|
147
|
-
this._data = Object.fromEntries(Object.keys(this._formSchema.properties).map(formKey => {
|
|
148
|
-
return [formKey, formData.get(formKey)];
|
|
149
|
-
}));
|
|
150
|
-
}
|
|
151
207
|
// Check if the new value is a string, indicating that it needs to be parsed
|
|
152
208
|
if (typeof newValue === 'string') {
|
|
153
209
|
// Parse the string and set the "_formSchema" property
|
|
@@ -157,6 +213,7 @@ const TttxForm = class {
|
|
|
157
213
|
// If the new value is already an object, set the "_formSchema" property directly
|
|
158
214
|
this._formSchema = newValue;
|
|
159
215
|
}
|
|
216
|
+
return this._formSchema;
|
|
160
217
|
}
|
|
161
218
|
onDataChange(newValue) {
|
|
162
219
|
if (typeof newValue === 'string') {
|
|
@@ -165,6 +222,7 @@ const TttxForm = class {
|
|
|
165
222
|
else {
|
|
166
223
|
this._data = newValue;
|
|
167
224
|
}
|
|
225
|
+
return this._data;
|
|
168
226
|
}
|
|
169
227
|
/**
|
|
170
228
|
* Handles the focus event for a form field and emits a "dataChanged" event
|
|
@@ -204,7 +262,6 @@ const TttxForm = class {
|
|
|
204
262
|
}
|
|
205
263
|
select.replaceChildren(fragment);
|
|
206
264
|
tttxSelect.optionsData = options;
|
|
207
|
-
//await tttxSelect.setOptionsData(options);
|
|
208
265
|
await tttxSelect.setSelectedItem(options[0].value);
|
|
209
266
|
}
|
|
210
267
|
/**
|
|
@@ -262,9 +319,10 @@ const TttxForm = class {
|
|
|
262
319
|
formProperties.options.forEach(optionProperties => {
|
|
263
320
|
this.appendOption(select, optionProperties);
|
|
264
321
|
});
|
|
265
|
-
if ((_a = this._data) === null || _a === void 0 ? void 0 : _a[formKey])
|
|
322
|
+
if ((_a = this._data) === null || _a === void 0 ? void 0 : _a[formKey]) {
|
|
266
323
|
select.classList.remove('placeholder');
|
|
267
|
-
|
|
324
|
+
}
|
|
325
|
+
const tttxSelect = document.createElement('tttx-select-box_1_3_0');
|
|
268
326
|
tttxSelect.optionsData = (_b = formProperties.options) === null || _b === void 0 ? void 0 : _b.filter(o => !o.placeholder);
|
|
269
327
|
tttxSelect.placeholder = (_d = (_c = formProperties.options) === null || _c === void 0 ? void 0 : _c.filter(o => o.placeholder)[0]) === null || _d === void 0 ? void 0 : _d.label;
|
|
270
328
|
tttxSelect.inline = false;
|
|
@@ -275,13 +333,18 @@ const TttxForm = class {
|
|
|
275
333
|
const fragment = document.createDocumentFragment();
|
|
276
334
|
fragment.append(tttxSelect);
|
|
277
335
|
select.style.display = 'none';
|
|
278
|
-
tttxSelect.addEventListener('selectItemEvent',
|
|
279
|
-
select.value = ev.detail.value;
|
|
280
|
-
select.onblur({ target: select }); // triggers validator
|
|
281
|
-
select.onchange({ target: select }); // triggers dataChanged event
|
|
282
|
-
});
|
|
336
|
+
tttxSelect.addEventListener('selectItemEvent', this.selectItemEventCallback.bind(select));
|
|
283
337
|
return { input: select, overlay: fragment };
|
|
284
338
|
}
|
|
339
|
+
selectItemEventCallback(ev) {
|
|
340
|
+
// this function MUST be bound to a HTMLSelectElement
|
|
341
|
+
// 'this' will be the select element
|
|
342
|
+
// the function was split out for testing
|
|
343
|
+
const select = this;
|
|
344
|
+
select.value = ev.detail.value;
|
|
345
|
+
select.onblur({ target: select }); // triggers validator
|
|
346
|
+
select.onchange({ target: select }); // triggers dataChanged event
|
|
347
|
+
}
|
|
285
348
|
/**
|
|
286
349
|
* Appends an option to a select element
|
|
287
350
|
*
|
|
@@ -512,7 +575,7 @@ const TttxForm = class {
|
|
|
512
575
|
* @param {HTMLDivElement} errorBubble - The error bubble element to display error messages in.
|
|
513
576
|
* @return {HTMLLabelElement} - The new label element.
|
|
514
577
|
*/
|
|
515
|
-
createLabel(formProperties, input, overlay, errorBubble) {
|
|
578
|
+
createLabel(formProperties, input, overlay = null, errorBubble) {
|
|
516
579
|
var _a;
|
|
517
580
|
const outerContainer = document.createElement('div');
|
|
518
581
|
let outerContainerClassName = 'outer-container inputBlock';
|
|
@@ -563,7 +626,7 @@ const TttxForm = class {
|
|
|
563
626
|
*/
|
|
564
627
|
createRadio(formKey, formProperties) {
|
|
565
628
|
var _a, _b;
|
|
566
|
-
const fragment =
|
|
629
|
+
const fragment = document.createDocumentFragment();
|
|
567
630
|
for (const optionProperties of formProperties.options) {
|
|
568
631
|
// Create a new <input> element with the specified name and type
|
|
569
632
|
const input = document.createElement('input');
|
|
@@ -593,8 +656,9 @@ const TttxForm = class {
|
|
|
593
656
|
populateFormFromSchema() {
|
|
594
657
|
var _a;
|
|
595
658
|
// If there is no form schema, return early
|
|
596
|
-
if (!this._formSchema)
|
|
659
|
+
if (!this._formSchema) {
|
|
597
660
|
return;
|
|
661
|
+
}
|
|
598
662
|
// Get the properties of the form schema and their keys
|
|
599
663
|
const properties = this._formSchema.properties;
|
|
600
664
|
const propertyKeys = Object.keys(properties);
|
|
@@ -662,129 +726,97 @@ const TttxForm = class {
|
|
|
662
726
|
const properties = this._formSchema.properties;
|
|
663
727
|
const propertyKeys = Object.keys(properties);
|
|
664
728
|
for (const formKey of propertyKeys) {
|
|
665
|
-
|
|
666
|
-
for (const formInput of formItemsByKey) {
|
|
667
|
-
// Bind events to form input elements
|
|
668
|
-
formInput.oninvalid = this.validityCheckWrapper.bind(this);
|
|
669
|
-
formInput.onblur = this.validityCheckWrapper.bind(this);
|
|
670
|
-
formInput.onkeyup = this.fieldChanged.bind(this);
|
|
671
|
-
formInput.onchange = this.fieldChanged.bind(this);
|
|
672
|
-
if (properties[formKey].form.type === 'select' && formInput.classList.contains('placeholder')) {
|
|
673
|
-
formInput.addEventListener('change', () => {
|
|
674
|
-
formInput.classList.remove('placeholder');
|
|
675
|
-
});
|
|
676
|
-
}
|
|
677
|
-
if (properties[formKey].form.type === 'startenddate' && formInput.hasAttribute('data-compare-with')) {
|
|
678
|
-
formInput.oninvalid = this.endDateComparisonValidator.bind(this);
|
|
679
|
-
formInput.onblur = this.endDateComparisonValidator.bind(this);
|
|
680
|
-
}
|
|
681
|
-
if (properties[formKey].form.type === 'startenddate' && formInput.type === 'time') {
|
|
682
|
-
formInput.oninvalid = this.startEndTimeComparitor.bind(this);
|
|
683
|
-
formInput.onblur = this.startEndTimeComparitor.bind(this);
|
|
684
|
-
}
|
|
685
|
-
if (properties[formKey].form.type === 'startenddate' && formInput.hasAttribute('data-compare-to')) {
|
|
686
|
-
formInput.oninvalid = this.startDateComparisonValidator.bind(this);
|
|
687
|
-
formInput.onblur = this.startDateComparisonValidator.bind(this);
|
|
688
|
-
}
|
|
689
|
-
}
|
|
729
|
+
this.applyValidationFunctionsToFormElement(formItems, formKey, properties);
|
|
690
730
|
}
|
|
691
731
|
// populate with existing form data if available
|
|
692
|
-
if (this._data && Object.keys(this._data).length > 0) {
|
|
693
|
-
|
|
694
|
-
for (const key of dataKeys) {
|
|
695
|
-
const formItemsByKey = formItems.querySelectorAll(`[name=${key}]`);
|
|
696
|
-
for (const formItem of formItemsByKey) {
|
|
697
|
-
switch (formItem.type) {
|
|
698
|
-
case 'checkbox':
|
|
699
|
-
if (this._data[key] === 'on') {
|
|
700
|
-
formItem.checked = true;
|
|
701
|
-
}
|
|
702
|
-
break;
|
|
703
|
-
case 'radio':
|
|
704
|
-
if (formItem.value === this._data[key]) {
|
|
705
|
-
formItem.checked = true;
|
|
706
|
-
}
|
|
707
|
-
break;
|
|
708
|
-
case 'select':
|
|
709
|
-
case 'select-one':
|
|
710
|
-
formItems.querySelector(`[name=overlay-${key}]`).selectedValue = this._data[key];
|
|
711
|
-
formItem.value = this._data[key];
|
|
712
|
-
break;
|
|
713
|
-
default:
|
|
714
|
-
formItem.value = this._data[key];
|
|
715
|
-
}
|
|
716
|
-
}
|
|
717
|
-
}
|
|
732
|
+
if ((this._data && Object.keys(this._data).length > 0)) {
|
|
733
|
+
this.populateFormWithExistingData(formItems);
|
|
718
734
|
}
|
|
719
735
|
// Append the cloned form elements to the fieldset
|
|
720
736
|
this.fieldset.replaceChildren(formItems);
|
|
721
737
|
}
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
738
|
+
/**
|
|
739
|
+
* Assign validation events to a given form item
|
|
740
|
+
* @param formItems The document fragment template of form items to be rendered
|
|
741
|
+
* @param formKey The key of the form item to bind events too
|
|
742
|
+
* @param properties The form item's properties, such as type and name
|
|
743
|
+
*/
|
|
744
|
+
applyValidationFunctionsToFormElement(formItems, formKey, properties) {
|
|
745
|
+
const formItemsByKey = formItems.querySelectorAll(`[name^=${formKey}]`);
|
|
746
|
+
for (const formInput of formItemsByKey) {
|
|
747
|
+
// Bind events to form input elements
|
|
748
|
+
formInput.oninvalid = this.validityCheckWrapper.bind(this);
|
|
749
|
+
formInput.onblur = this.validityCheckWrapper.bind(this);
|
|
750
|
+
formInput.onkeyup = this.fieldChanged.bind(this);
|
|
751
|
+
formInput.onchange = this.fieldChanged.bind(this);
|
|
752
|
+
if (properties[formKey].form.type === 'select' && formInput.classList.contains('placeholder')) {
|
|
753
|
+
formInput.addEventListener('change', this.selectRemovePlaceholderCallback.bind(formInput));
|
|
737
754
|
}
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
755
|
+
if (properties[formKey].form.type === 'startenddate' && formInput.hasAttribute('data-compare-with')) {
|
|
756
|
+
formInput.oninvalid = endDateComparisonValidator.bind(this);
|
|
757
|
+
formInput.onblur = endDateComparisonValidator.bind(this);
|
|
758
|
+
}
|
|
759
|
+
if (properties[formKey].form.type === 'startenddate' && formInput.type === 'time') {
|
|
760
|
+
formInput.oninvalid = startEndTimeComparator.bind(this);
|
|
761
|
+
formInput.onblur = startEndTimeComparator.bind(this);
|
|
762
|
+
}
|
|
763
|
+
if (properties[formKey].form.type === 'startenddate' && formInput.hasAttribute('data-compare-to')) {
|
|
764
|
+
formInput.oninvalid = startDateComparisonValidator.bind(this);
|
|
765
|
+
formInput.onblur = startDateComparisonValidator.bind(this);
|
|
743
766
|
}
|
|
744
767
|
}
|
|
745
768
|
}
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
769
|
+
/**
|
|
770
|
+
* If data exists, set form input values before rendering
|
|
771
|
+
* @param formItems The document fragment template of form items to be rendered
|
|
772
|
+
*/
|
|
773
|
+
populateFormWithExistingData(formItems) {
|
|
774
|
+
const dataKeys = Object.keys(this._data);
|
|
775
|
+
for (const key of dataKeys) {
|
|
776
|
+
const formItemsByKey = formItems.querySelectorAll(`[name=${key}]`);
|
|
777
|
+
for (const formItem of formItemsByKey) {
|
|
778
|
+
switch (formItem.type) {
|
|
779
|
+
case 'checkbox':
|
|
780
|
+
if (this._data[key] === 'on') {
|
|
781
|
+
formItem.checked = true;
|
|
782
|
+
}
|
|
783
|
+
break;
|
|
784
|
+
case 'radio':
|
|
785
|
+
if (formItem.value === this._data[key]) {
|
|
786
|
+
formItem.checked = true;
|
|
787
|
+
}
|
|
788
|
+
break;
|
|
789
|
+
case 'select':
|
|
790
|
+
case 'select-one':
|
|
791
|
+
formItems.querySelector(`[name=overlay-${key}]`)['selectedValue'] = this._data[key];
|
|
792
|
+
formItem.value = this._data[key];
|
|
793
|
+
break;
|
|
794
|
+
default:
|
|
795
|
+
formItem.value = this._data[key];
|
|
796
|
+
}
|
|
797
|
+
}
|
|
754
798
|
}
|
|
755
799
|
}
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
}
|
|
763
|
-
endDateComparisonValidator(event, triggeredByStartDate = false) {
|
|
764
|
-
var _a, _b, _c, _d;
|
|
765
|
-
const endDate = event.target;
|
|
766
|
-
if (!endDate.value && triggeredByStartDate)
|
|
767
|
-
return;
|
|
768
|
-
const compareWithName = endDate.getAttribute('data-compare-with');
|
|
769
|
-
const startDate = endDate.parentElement.parentElement.parentElement.querySelector(`[name=${compareWithName}]`);
|
|
770
|
-
if (((_a = endDate.valueAsDate) === null || _a === void 0 ? void 0 : _a.valueOf()) < ((_b = startDate.valueAsDate) === null || _b === void 0 ? void 0 : _b.valueOf())) {
|
|
771
|
-
endDate.setCustomValidity(endDate.getAttribute('data-compare'));
|
|
772
|
-
setErrorState(endDate, true, endDate.getAttribute('data-compare'));
|
|
773
|
-
}
|
|
774
|
-
else if (((_c = endDate.valueAsDate) === null || _c === void 0 ? void 0 : _c.valueOf()) === ((_d = startDate.valueAsDate) === null || _d === void 0 ? void 0 : _d.valueOf())) {
|
|
775
|
-
endDate.setCustomValidity('');
|
|
776
|
-
this.validityCheckWrapper(event);
|
|
777
|
-
this.startEndTimeComparitor(event);
|
|
778
|
-
}
|
|
779
|
-
else {
|
|
780
|
-
this.clearTimeComparitor(event);
|
|
781
|
-
this.validityCheckWrapper(event);
|
|
782
|
-
}
|
|
800
|
+
/**
|
|
801
|
+
* Remove the placeholder class on the bound THIS select element
|
|
802
|
+
*/
|
|
803
|
+
selectRemovePlaceholderCallback() {
|
|
804
|
+
const select = this;
|
|
805
|
+
select.classList.remove('placeholder');
|
|
783
806
|
}
|
|
807
|
+
/**
|
|
808
|
+
* A wrapper around validity check and set error state
|
|
809
|
+
*/
|
|
784
810
|
validityCheckWrapper(event) {
|
|
785
811
|
const { target, hasError, errorMessage } = validityCheck(event);
|
|
786
812
|
setErrorState(target, hasError, errorMessage);
|
|
787
813
|
}
|
|
814
|
+
assignFieldsetReference(el) {
|
|
815
|
+
this.fieldset = el;
|
|
816
|
+
}
|
|
817
|
+
assignButtonReference(el) {
|
|
818
|
+
this.submitButton = el;
|
|
819
|
+
}
|
|
788
820
|
/**
|
|
789
821
|
* Renders the component's template as a form element with a fieldset container. The form's
|
|
790
822
|
* "onSubmit" event is bound to the "doSubmit" function, which handles the form submission
|
|
@@ -793,7 +825,7 @@ const TttxForm = class {
|
|
|
793
825
|
* later on.
|
|
794
826
|
*/
|
|
795
827
|
render() {
|
|
796
|
-
return (h(Host, null, h("form", {
|
|
828
|
+
return (h(Host, null, h("form", { onSubmit: this.doSubmit.bind(this) }, h("fieldset", { ref: this.assignFieldsetReference.bind(this) }), h("input", { type: "submit", ref: this.assignButtonReference.bind(this), style: { display: 'none' } }))));
|
|
797
829
|
}
|
|
798
830
|
static get watchers() { return {
|
|
799
831
|
"formschema": ["onFormSchemaChange"],
|
|
@@ -802,4 +834,4 @@ const TttxForm = class {
|
|
|
802
834
|
};
|
|
803
835
|
TttxForm.style = tttxFormCss;
|
|
804
836
|
|
|
805
|
-
export { TttxForm as
|
|
837
|
+
export { TttxForm as tttx_form_1_3_0 };
|
package/dist/esm/{tttx-multiselect-box_1_2_0.entry.js → tttx-multiselect-box_1_3_0.entry.js}
RENAMED
|
@@ -84,11 +84,11 @@ const TttxMultiselectBox = class {
|
|
|
84
84
|
const sanitisedHTML = purify.sanitize(option.html, domSanitiserOptions);
|
|
85
85
|
// This is tested in e2e tests
|
|
86
86
|
/* istanbul ignore next */
|
|
87
|
-
return (h("div", { class: `dropdown-option ${hideOption ? 'hidden' : ''} ${option.selected ? 'selected' : ''}`, onClick: this.onItemSelected.bind(this, option), key: option.label }, h("tttx-
|
|
87
|
+
return (h("div", { class: `dropdown-option ${hideOption ? 'hidden' : ''} ${option.selected ? 'selected' : ''}`, onClick: this.onItemSelected.bind(this, option), key: option.label }, h("tttx-icon_1_3_0", { icon: checkboxIcon, color: checkboxColor, class: 'checkbox-icon' }), h("div", { innerHTML: sanitisedHTML })));
|
|
88
88
|
}
|
|
89
89
|
// This is tested in e2e tests
|
|
90
90
|
/* istanbul ignore next */
|
|
91
|
-
return (h("div", { class: `dropdown-option ${hideOption ? 'hidden' : ''} ${option.selected ? 'selected' : ''}`, onClick: this.onItemSelected.bind(this, option), key: option.label }, h("tttx-
|
|
91
|
+
return (h("div", { class: `dropdown-option ${hideOption ? 'hidden' : ''} ${option.selected ? 'selected' : ''}`, onClick: this.onItemSelected.bind(this, option), key: option.label }, h("tttx-icon_1_3_0", { icon: checkboxIcon, color: checkboxColor, class: 'checkbox-icon' }), h("div", { class: "plaintext-option" }, option.label)));
|
|
92
92
|
}
|
|
93
93
|
// This is tested in e2e tests
|
|
94
94
|
/* istanbul ignore next */
|
|
@@ -120,11 +120,11 @@ const TttxMultiselectBox = class {
|
|
|
120
120
|
if (!this.unsavedSelectedItems)
|
|
121
121
|
this.unsavedSelectedItems = this.safelyCloneArray(this._optionsData);
|
|
122
122
|
const chevronIcon = this.open ? 'expand_less' : 'expand_more';
|
|
123
|
-
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-
|
|
123
|
+
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_1_3_0", { icon: chevronIcon, color: "black" }))), this.open && (h("div", { class: "dropdown-body-container" }, h("div", { class: "dropdown-body", style: Object.assign({}, this.bodyOffset) }, this.searchEnabled &&
|
|
124
124
|
/* istanbul ignore next */
|
|
125
|
-
h("div", { class: "searchbox" }, h("tttx-standalone-
|
|
125
|
+
h("div", { class: "searchbox" }, h("tttx-standalone-input_1_3_0", { 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) => {
|
|
126
126
|
return this.dropdownOption(option);
|
|
127
|
-
})), h("div", { class: 'footer' }, h("tttx-
|
|
127
|
+
})), h("div", { class: 'footer' }, h("tttx-button_1_3_0", { design: "primary", onClick: this.applyChanges.bind(this) }, "Apply"), h("tttx-button_1_3_0", { onClick: this.onCancel.bind(this) }, "Cancel"))))))));
|
|
128
128
|
}
|
|
129
129
|
get el() { return getElement(this); }
|
|
130
130
|
static get watchers() { return {
|
|
@@ -133,4 +133,4 @@ const TttxMultiselectBox = class {
|
|
|
133
133
|
};
|
|
134
134
|
TttxMultiselectBox.style = tttxMultiselectBoxCss;
|
|
135
135
|
|
|
136
|
-
export { TttxMultiselectBox as
|
|
136
|
+
export { TttxMultiselectBox as tttx_multiselect_box_1_3_0 };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host } from './index-88bd2f60.js';
|
|
2
2
|
|
|
3
|
-
const tttxPercentageBarCss = ".sc-tttx-percentage-
|
|
3
|
+
const tttxPercentageBarCss = ".sc-tttx-percentage-bar_1_3_0-h{display:block}.progress.sc-tttx-percentage-bar_1_3_0{width:100%;background-color:#dbdbdb}.progress.sc-tttx-percentage-bar_1_3_0 .bar.sc-tttx-percentage-bar_1_3_0{height:20px}";
|
|
4
4
|
|
|
5
5
|
const TttxPercentageBar = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -58,4 +58,4 @@ const TttxPercentageBar = class {
|
|
|
58
58
|
};
|
|
59
59
|
TttxPercentageBar.style = tttxPercentageBarCss;
|
|
60
60
|
|
|
61
|
-
export { TttxPercentageBar as
|
|
61
|
+
export { TttxPercentageBar as tttx_percentage_bar_1_3_0 };
|
|
@@ -61,7 +61,7 @@ const TttxSelectBox = class {
|
|
|
61
61
|
let title;
|
|
62
62
|
let subtitle;
|
|
63
63
|
const chevronIcon = this.open ? 'expand_less' : 'expand_more';
|
|
64
|
-
const icon = h("tttx-
|
|
64
|
+
const icon = h("tttx-icon_1_3_0", { icon: chevronIcon, color: "black" });
|
|
65
65
|
let chevron = h("div", { class: 'dropdown-selector-chevron' }, icon);
|
|
66
66
|
if (!this.selectedItem) {
|
|
67
67
|
title = h("div", { class: "placeholder" }, this.placeholder);
|
|
@@ -120,7 +120,7 @@ const TttxSelectBox = class {
|
|
|
120
120
|
return;
|
|
121
121
|
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", ref: (el) => this.dropdownSelector = el, onClick: this.onDropdownClicked.bind(this) }, this.dropdownSelectorContent()), this.open && (h("div", { class: "dropdown-body-container" }, h("div", { class: "dropdown-body", style: Object.assign({ width: `${this.dropdownSelector.offsetWidth}px` }, this.bodyOffset) }, this.searchEnabled &&
|
|
122
122
|
/* istanbul ignore next */
|
|
123
|
-
h("div", { class: "searchbox" }, h("tttx-standalone-
|
|
123
|
+
h("div", { class: "searchbox" }, h("tttx-standalone-input_1_3_0", { type: "text", label: "", required: true, showerrorbubble: false, iconleft: 'search', onInput: this.handleSearchInput.bind(this) })), h("div", { class: "dropdown-options-list" }, this._optionsData.map((option) => {
|
|
124
124
|
return this.dropdownOption(option);
|
|
125
125
|
}))))))));
|
|
126
126
|
}
|
|
@@ -131,4 +131,4 @@ const TttxSelectBox = class {
|
|
|
131
131
|
};
|
|
132
132
|
TttxSelectBox.style = tttxSelectBoxCss;
|
|
133
133
|
|
|
134
|
-
export { TttxSelectBox as
|
|
134
|
+
export { TttxSelectBox as tttx_select_box_1_3_0 };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host } from './index-88bd2f60.js';
|
|
2
|
+
|
|
3
|
+
const tttxStandaloneInputCss = ".material-symbols-rounded.sc-tttx-standalone-input_1_3_0{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}.material-symbols-rounded.sc-tttx-standalone-input_1_3_0{font-variation-settings:\"FILL\" 1, \"wght\" 400, \"GRAD\" 0, \"opsz\" 24}label.sc-tttx-standalone-input_1_3_0{font-weight:500;font-size:16px;line-height:18.752px;color:#212121}label.sc-tttx-standalone-input_1_3_0 .optional.sc-tttx-standalone-input_1_3_0{color:#757575;font-weight:normal}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0{position:relative}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 .left-icons.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 .right-icons.sc-tttx-standalone-input_1_3_0{display:flex;position:absolute;height:24px;gap:8px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 .left-icons.sc-tttx-standalone-input_1_3_0 tttx-icon.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 .right-icons.sc-tttx-standalone-input_1_3_0 tttx-icon.sc-tttx-standalone-input_1_3_0{height:24px;width:24px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 .left-icons.sc-tttx-standalone-input_1_3_0{left:8px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 .right-icons.sc-tttx-standalone-input_1_3_0{right:8px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.sc-tttx-standalone-input_1_3_0{color:#212121;box-sizing:border-box;border:1px solid #d5d5d5;border-radius:4px;padding:0;padding-left:16px;padding-right:16px;margin-top:4px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.has-input-icon.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.has-input-icon.sc-tttx-standalone-input_1_3_0{padding-left:40px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.has-input-icon.has-left-icon.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.has-input-icon.has-left-icon.sc-tttx-standalone-input_1_3_0{padding-left:72px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.has-left-icon.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.has-left-icon.sc-tttx-standalone-input_1_3_0{padding-left:40px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.has-right-icon.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.has-right-icon.sc-tttx-standalone-input_1_3_0{padding-right:40px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.invalid.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.invalid.sc-tttx-standalone-input_1_3_0{border:1px solid #dc0000}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.sc-tttx-standalone-input_1_3_0:not([type=submit]),label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.sc-tttx-standalone-input_1_3_0:not([type=submit]){font-family:\"Roboto\", serif;width:100%;height:36px;font-size:16px;line-height:18.752px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input[type=radio].sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea[type=radio].sc-tttx-standalone-input_1_3_0{width:20px;height:20px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input[type=date].sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea[type=date].sc-tttx-standalone-input_1_3_0{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input[readonly].sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea[readonly].sc-tttx-standalone-input_1_3_0{cursor:default;pointer-events:none;user-select:none;color:gray}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.sc-tttx-standalone-input_1_3_0:focus,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.sc-tttx-standalone-input_1_3_0:focus{border-color:#1479c6}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 input.sc-tttx-standalone-input_1_3_0:focus-visible,label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.sc-tttx-standalone-input_1_3_0:focus-visible{outline:none}label.sc-tttx-standalone-input_1_3_0 .outer-container.sc-tttx-standalone-input_1_3_0 textarea.sc-tttx-standalone-input_1_3_0{padding:8px;height:auto;min-height:100px;resize:vertical}label.sc-tttx-standalone-input_1_3_0 .outer-container.inputBlock.sc-tttx-standalone-input_1_3_0{display:flex;align-items:center;line-height:21px}label.sc-tttx-standalone-input_1_3_0 .outer-container.inputBlock.sc-tttx-standalone-input_1_3_0 .left-icons.sc-tttx-standalone-input_1_3_0,label.sc-tttx-standalone-input_1_3_0 .outer-container.inputBlock.sc-tttx-standalone-input_1_3_0 .right-icons.sc-tttx-standalone-input_1_3_0{margin-top:4px}label.sc-tttx-standalone-input_1_3_0 .outer-container.inputBlock.readonly.sc-tttx-standalone-input_1_3_0{pointer-events:none;user-select:none;color:gray}label.sc-tttx-standalone-input_1_3_0 .outer-container.inputBlock.radioBlock.sc-tttx-standalone-input_1_3_0{display:block}label.sc-tttx-standalone-input_1_3_0 .outer-container.inputInline.sc-tttx-standalone-input_1_3_0{display:flex;white-space:nowrap;align-items:center;margin:0}label.sc-tttx-standalone-input_1_3_0 .outer-container.inputInline.sc-tttx-standalone-input_1_3_0 input.sc-tttx-standalone-input_1_3_0{margin-top:0}label.sc-tttx-standalone-input_1_3_0 .secondarylabel.sc-tttx-standalone-input_1_3_0{color:#757575;font-size:14px;line-height:16.408px;font-weight:normal;display:flex;margin-top:4px}label.sc-tttx-standalone-input_1_3_0 .errorBubble.sc-tttx-standalone-input_1_3_0{position:relative;font-size:14px;line-height:16.408px;font-weight:normal;width:100%;font-family:\"Roboto\", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center;margin-top:4px}label.sc-tttx-standalone-input_1_3_0 .errorBubble.sc-tttx-standalone-input_1_3_0:not(.visible){display:none}label.sc-tttx-standalone-input_1_3_0 .errorBubble.sc-tttx-standalone-input_1_3_0 span.sc-tttx-standalone-input_1_3_0{color:#dc0000;font-size:16px;margin-right:4px}.material-symbols-rounded.sc-tttx-standalone-input_1_3_0{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}.sc-tttx-standalone-input_1_3_0-h{display:block}";
|
|
4
|
+
|
|
5
|
+
const TttxInput = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.valueChanged = createEvent(this, "valueChanged", 7);
|
|
9
|
+
this.focusChanged = createEvent(this, "focusChanged", 7);
|
|
10
|
+
this.blurChanged = createEvent(this, "blurChanged", 7);
|
|
11
|
+
this.invalidChanged = createEvent(this, "invalidChanged", 7);
|
|
12
|
+
this.inputIconClick = createEvent(this, "inputIconClick", 7);
|
|
13
|
+
this.leftIconClick = createEvent(this, "leftIconClick", 7);
|
|
14
|
+
this.rightIconClick = createEvent(this, "rightIconClick", 7);
|
|
15
|
+
this.label = undefined;
|
|
16
|
+
this.secondarylabel = undefined;
|
|
17
|
+
this.showerrormsg = undefined;
|
|
18
|
+
this.showerrorbubble = true;
|
|
19
|
+
this.errormsg = undefined;
|
|
20
|
+
this.iconleft = undefined;
|
|
21
|
+
this.iconleftcolor = 'grey';
|
|
22
|
+
this.iconright = undefined;
|
|
23
|
+
this.iconrightcolor = 'grey';
|
|
24
|
+
this.inputicon = undefined;
|
|
25
|
+
this.inputiconcolor = 'grey';
|
|
26
|
+
this.inline = undefined;
|
|
27
|
+
this.inputautocapitalize = undefined;
|
|
28
|
+
this.inputautofocus = undefined;
|
|
29
|
+
this.inputkeyhint = undefined;
|
|
30
|
+
this.inputindex = undefined;
|
|
31
|
+
this.inputtitle = undefined;
|
|
32
|
+
this.autocomplete = undefined;
|
|
33
|
+
this.checked = undefined;
|
|
34
|
+
this.disabled = undefined;
|
|
35
|
+
this.max = undefined;
|
|
36
|
+
this.maxlength = undefined;
|
|
37
|
+
this.min = undefined;
|
|
38
|
+
this.minlength = undefined;
|
|
39
|
+
this.name = undefined;
|
|
40
|
+
this.pattern = undefined;
|
|
41
|
+
this.placeholder = undefined;
|
|
42
|
+
this.readonly = undefined;
|
|
43
|
+
this.required = undefined;
|
|
44
|
+
this.step = undefined;
|
|
45
|
+
this.type = 'text';
|
|
46
|
+
this.value = undefined;
|
|
47
|
+
}
|
|
48
|
+
handleChange(event) {
|
|
49
|
+
const target = event.target;
|
|
50
|
+
this.value = target.value;
|
|
51
|
+
this.valueChanged.emit(target.value);
|
|
52
|
+
}
|
|
53
|
+
handleFocus(event) {
|
|
54
|
+
const target = event.target;
|
|
55
|
+
this.focusChanged.emit(target.value);
|
|
56
|
+
}
|
|
57
|
+
handleBlur(event) {
|
|
58
|
+
const target = event.target;
|
|
59
|
+
this.blurChanged.emit(target.value);
|
|
60
|
+
}
|
|
61
|
+
handleInvalid(event) {
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
const target = event.target;
|
|
64
|
+
this.invalidChanged.emit(target.value);
|
|
65
|
+
}
|
|
66
|
+
handleInputIconClick(event) {
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
this.inputIconClick.emit();
|
|
69
|
+
}
|
|
70
|
+
handleLeftIconClick(event) {
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
this.leftIconClick.emit();
|
|
73
|
+
}
|
|
74
|
+
handleRightIconClick(event) {
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
this.rightIconClick.emit();
|
|
77
|
+
}
|
|
78
|
+
render() {
|
|
79
|
+
const classNames = [
|
|
80
|
+
this.showerrormsg ? 'invalid' : '',
|
|
81
|
+
this.inputicon ? 'has-input-icon' : '',
|
|
82
|
+
this.iconleft ? 'has-left-icon' : '',
|
|
83
|
+
this.iconright ? 'has-right-icon' : '',
|
|
84
|
+
].join(' ');
|
|
85
|
+
return (h(Host, null, h("label", null, this.label, !this.required ? h("span", { class: "optional" }, "\u00A0(optional)") : '', h("div", { class: ['outer-container', this.inline ? 'inputInline' : 'inputBlock'].join(' ') }, h("input", { class: classNames, autocapitalize: this.inputautocapitalize, autofocus: this.inputautofocus, enterkeyhint: this.inputkeyhint, tabindex: this.inputindex, title: this.inputtitle, autocomplete: this.autocomplete, checked: this.checked, disabled: this.disabled, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readonly: this.readonly, required: this.required, step: this.step, type: this.type, value: this.value, onBlur: this.handleBlur.bind(this), onFocus: this.handleFocus.bind(this), onInput: this.handleChange.bind(this), onInvalid: this.handleInvalid.bind(this) }), (this.inputicon || this.iconleft) && (h("span", { class: "left-icons" }, this.inputicon && (h("tttx-icon_1_3_0", { class: "input-icon", icon: this.inputicon, color: this.inputiconcolor, onClick: this.handleInputIconClick.bind(this) })), this.iconleft && (h("tttx-icon_1_3_0", { class: "left-icon", icon: this.iconleft, color: this.iconleftcolor, onClick: this.handleLeftIconClick.bind(this) })))), this.iconright && (h("span", { class: "right-icons" }, h("tttx-icon_1_3_0", { class: "right-icon", icon: this.iconright, color: this.iconrightcolor, onClick: this.handleRightIconClick.bind(this) })))), this.secondarylabel && h("span", { class: "secondarylabel" }, this.secondarylabel), this.showerrorbubble && (h("span", { class: ['errorBubble', this.showerrormsg && this.errormsg ? 'visible' : ''].join(' ') }, h("span", { class: "material-symbols-rounded" }, "warning"), " ", this.errormsg)))));
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
TttxInput.style = tttxStandaloneInputCss;
|
|
89
|
+
|
|
90
|
+
export { TttxInput as tttx_standalone_input_1_3_0 };
|