@kyndryl-design-system/shidoka-applications 2.25.1 → 2.26.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/common/scss/form-input.scss +12 -9
- package/components/reusable/checkbox/checkbox.js +5 -5
- package/components/reusable/checkbox/checkboxGroup.js +12 -9
- package/components/reusable/checkbox/checkboxGroup.js.map +1 -1
- package/components/reusable/datePicker/datepicker.d.ts.map +1 -1
- package/components/reusable/datePicker/datepicker.js +18 -12
- package/components/reusable/datePicker/datepicker.js.map +1 -1
- package/components/reusable/datePicker/index.js +1 -1
- package/components/reusable/daterangepicker/daterangepicker.d.ts.map +1 -1
- package/components/reusable/daterangepicker/daterangepicker.js +18 -11
- package/components/reusable/daterangepicker/daterangepicker.js.map +1 -1
- package/components/reusable/daterangepicker/index.js +1 -1
- package/components/reusable/dropdown/dropdown.js +12 -9
- package/components/reusable/dropdown/dropdown.js.map +1 -1
- package/components/reusable/numberInput/numberInput.js +12 -9
- package/components/reusable/numberInput/numberInput.js.map +1 -1
- package/components/reusable/progressBar/progressBar.js +12 -9
- package/components/reusable/progressBar/progressBar.js.map +1 -1
- package/components/reusable/radioButton/radioButton.js +5 -5
- package/components/reusable/radioButton/radioButtonGroup.js +12 -9
- package/components/reusable/radioButton/radioButtonGroup.js.map +1 -1
- package/components/reusable/textArea/textArea.js +12 -9
- package/components/reusable/textArea/textArea.js.map +1 -1
- package/components/reusable/textInput/textInput.js +14 -11
- package/components/reusable/textInput/textInput.js.map +1 -1
- package/components/reusable/timepicker/index.js +1 -1
- package/components/reusable/timepicker/timepicker.d.ts.map +1 -1
- package/components/reusable/timepicker/timepicker.js +25 -19
- package/components/reusable/timepicker/timepicker.js.map +1 -1
- package/components/reusable/toggleButton/toggleButton.js +15 -12
- package/components/reusable/toggleButton/toggleButton.js.map +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/{shidoka-flatpickr-theme-a2d1482c.js → shidoka-flatpickr-theme-469e3123.js} +13 -10
- package/{shidoka-flatpickr-theme-a2d1482c.js.map → shidoka-flatpickr-theme-469e3123.js.map} +1 -1
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
[disabled] & {
|
|
22
|
-
color: var(--kd-color-text-
|
|
22
|
+
color: var(--kd-color-text-level-disabled);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -43,6 +43,9 @@
|
|
|
43
43
|
color: var(--kd-color-icon-disabled);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
.input-icon.is-disabled {
|
|
47
|
+
color: var(--kd-color-icon-disabled);
|
|
48
|
+
}
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
.options-text {
|
|
@@ -111,7 +114,7 @@ textarea {
|
|
|
111
114
|
&[disabled] {
|
|
112
115
|
background: var(--kd-color-background-forms-disabled);
|
|
113
116
|
border: none;
|
|
114
|
-
color: var(--kd-color-text-
|
|
117
|
+
color: var(--kd-color-text-level-disabled);
|
|
115
118
|
cursor: not-allowed;
|
|
116
119
|
|
|
117
120
|
&[invalid] {
|
|
@@ -151,10 +154,10 @@ textarea {
|
|
|
151
154
|
}
|
|
152
155
|
|
|
153
156
|
[disabled] & {
|
|
154
|
-
color: var(--kd-color-text-
|
|
157
|
+
color: var(--kd-color-text-level-disabled);
|
|
155
158
|
|
|
156
159
|
span svg {
|
|
157
|
-
color: var(--kd-color-text-
|
|
160
|
+
color: var(--kd-color-text-level-disabled);
|
|
158
161
|
}
|
|
159
162
|
}
|
|
160
163
|
|
|
@@ -168,7 +171,7 @@ textarea {
|
|
|
168
171
|
color: var(--kd-color-status-error-dark);
|
|
169
172
|
|
|
170
173
|
[disabled] & {
|
|
171
|
-
color: var(--kd-color-text-
|
|
174
|
+
color: var(--kd-color-text-level-disabled);
|
|
172
175
|
}
|
|
173
176
|
}
|
|
174
177
|
|
|
@@ -176,7 +179,7 @@ textarea {
|
|
|
176
179
|
color: var(--kd-color-background-success);
|
|
177
180
|
|
|
178
181
|
[disabled] & {
|
|
179
|
-
color: var(--kd-color-text-
|
|
182
|
+
color: var(--kd-color-text-level-disabled);
|
|
180
183
|
}
|
|
181
184
|
}
|
|
182
185
|
|
|
@@ -214,7 +217,7 @@ textarea {
|
|
|
214
217
|
margin-top: 13px;
|
|
215
218
|
|
|
216
219
|
[disabled] & {
|
|
217
|
-
color: var(--kd-color-text-
|
|
220
|
+
color: var(--kd-color-text-level-disabled);
|
|
218
221
|
}
|
|
219
222
|
}
|
|
220
223
|
}
|
|
@@ -240,7 +243,7 @@ textarea {
|
|
|
240
243
|
}
|
|
241
244
|
|
|
242
245
|
[disabled] & {
|
|
243
|
-
color: var(--kd-color-text-
|
|
246
|
+
color: var(--kd-color-text-level-disabled);
|
|
244
247
|
}
|
|
245
248
|
|
|
246
249
|
span,
|
|
@@ -257,6 +260,6 @@ textarea {
|
|
|
257
260
|
margin-bottom: 8px;
|
|
258
261
|
|
|
259
262
|
[disabled] & {
|
|
260
|
-
color: var(--kd-color-text-
|
|
263
|
+
color: var(--kd-color-text-level-disabled);
|
|
261
264
|
}
|
|
262
265
|
}
|
|
@@ -22,7 +22,7 @@ label.label-hidden {
|
|
|
22
22
|
gap: 0;
|
|
23
23
|
}
|
|
24
24
|
label[disabled] {
|
|
25
|
-
color: var(--kd-color-text-
|
|
25
|
+
color: var(--kd-color-text-level-disabled);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
span {
|
|
@@ -109,16 +109,16 @@ input:not([disabled]):checked:active::before {
|
|
|
109
109
|
background: var(--kd-color-background-ui-hollow-pressed);
|
|
110
110
|
}
|
|
111
111
|
input[disabled] {
|
|
112
|
-
background: var(--kd-color-background-
|
|
112
|
+
background: var(--kd-color-background-forms-disabled);
|
|
113
113
|
border-color: var(--kd-color-border-ui-disabled);
|
|
114
114
|
}
|
|
115
115
|
input[disabled]:checked {
|
|
116
|
-
background: var(--kd-color-background-
|
|
116
|
+
background: var(--kd-color-background-forms-disabled);
|
|
117
117
|
border-color: transparent;
|
|
118
118
|
}
|
|
119
119
|
input[disabled]:checked::before {
|
|
120
120
|
transform: scale(1);
|
|
121
|
-
background: var(--kd-color-
|
|
121
|
+
background: var(--kd-color-icon-disabled);
|
|
122
122
|
mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iOCIgdmlld0JveD0iMCAwIDEwIDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMuNSA1Ljg1NTQ3TDkgLTIuMDMwNjNlLTA2TDEwIDEuMDY0NjNMMy40ODU2NiA4TDAgNC4yODkwNkwxLjAxNDM0IDMuMjA5MTZMMy41IDUuODU1NDdaIiBmaWxsPSIjMDAwIi8+DQo8L3N2Zz4=");
|
|
123
123
|
-webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iOCIgdmlld0JveD0iMCAwIDEwIDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMuNSA1Ljg1NTQ3TDkgLTIuMDMwNjNlLTA2TDEwIDEuMDY0NjNMMy40ODU2NiA4TDAgNC4yODkwNkwxLjAxNDM0IDMuMjA5MTZMMy41IDUuODU1NDdaIiBmaWxsPSIjMDAwIi8+DQo8L3N2Zz4=");
|
|
124
124
|
mask-size: contain;
|
|
@@ -168,7 +168,7 @@ input[type=checkbox]:indeterminate:disabled::before {
|
|
|
168
168
|
width: 10px;
|
|
169
169
|
height: 8px;
|
|
170
170
|
transform: scale(1);
|
|
171
|
-
background: var(--kd-color-
|
|
171
|
+
background: var(--kd-color-icon-disabled);
|
|
172
172
|
mask: linear-gradient(transparent 3px, #000 3px 5px, transparent 5px);
|
|
173
173
|
-webkit-mask: linear-gradient(transparent 3px, #000 3px 5px, transparent 5px);
|
|
174
174
|
}
|
|
@@ -85,7 +85,7 @@ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{o as t}from"../../.
|
|
|
85
85
|
width: 1px;
|
|
86
86
|
}
|
|
87
87
|
[disabled] .label-text {
|
|
88
|
-
color: var(--kd-color-text-
|
|
88
|
+
color: var(--kd-color-text-level-disabled);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
.required {
|
|
@@ -105,6 +105,9 @@ import{_ as e}from"../../../vendor/tslib-53a81efe.js";import{o as t}from"../../.
|
|
|
105
105
|
.input-wrapper textarea[disabled] ~ .input-icon {
|
|
106
106
|
color: var(--kd-color-icon-disabled);
|
|
107
107
|
}
|
|
108
|
+
.input-wrapper .input-icon.is-disabled {
|
|
109
|
+
color: var(--kd-color-icon-disabled);
|
|
110
|
+
}
|
|
108
111
|
|
|
109
112
|
.options-text {
|
|
110
113
|
margin: 0;
|
|
@@ -262,7 +265,7 @@ input[disabled],
|
|
|
262
265
|
textarea[disabled] {
|
|
263
266
|
background: var(--kd-color-background-forms-disabled);
|
|
264
267
|
border: none;
|
|
265
|
-
color: var(--kd-color-text-
|
|
268
|
+
color: var(--kd-color-text-level-disabled);
|
|
266
269
|
cursor: not-allowed;
|
|
267
270
|
}
|
|
268
271
|
input[disabled][invalid],
|
|
@@ -308,10 +311,10 @@ textarea:not([disabled])[invalid] {
|
|
|
308
311
|
align-items: center;
|
|
309
312
|
}
|
|
310
313
|
[disabled] .error {
|
|
311
|
-
color: var(--kd-color-text-
|
|
314
|
+
color: var(--kd-color-text-level-disabled);
|
|
312
315
|
}
|
|
313
316
|
[disabled] .error span svg {
|
|
314
|
-
color: var(--kd-color-text-
|
|
317
|
+
color: var(--kd-color-text-level-disabled);
|
|
315
318
|
}
|
|
316
319
|
.error span svg {
|
|
317
320
|
margin-right: 8px;
|
|
@@ -322,14 +325,14 @@ textarea:not([disabled])[invalid] {
|
|
|
322
325
|
color: var(--kd-color-status-error-dark);
|
|
323
326
|
}
|
|
324
327
|
[disabled] .error-icon {
|
|
325
|
-
color: var(--kd-color-text-
|
|
328
|
+
color: var(--kd-color-text-level-disabled);
|
|
326
329
|
}
|
|
327
330
|
|
|
328
331
|
.success-icon {
|
|
329
332
|
color: var(--kd-color-background-success);
|
|
330
333
|
}
|
|
331
334
|
[disabled] .success-icon {
|
|
332
|
-
color: var(--kd-color-text-
|
|
335
|
+
color: var(--kd-color-text-level-disabled);
|
|
333
336
|
}
|
|
334
337
|
|
|
335
338
|
.caption {
|
|
@@ -397,7 +400,7 @@ textarea:not([disabled])[invalid] {
|
|
|
397
400
|
}
|
|
398
401
|
}
|
|
399
402
|
[disabled] .caption-error-count .count {
|
|
400
|
-
color: var(--kd-color-text-
|
|
403
|
+
color: var(--kd-color-text-level-disabled);
|
|
401
404
|
}
|
|
402
405
|
|
|
403
406
|
.input-icon {
|
|
@@ -420,7 +423,7 @@ textarea:not([disabled])[invalid] {
|
|
|
420
423
|
font-size: 16px;
|
|
421
424
|
}
|
|
422
425
|
[disabled] .warn {
|
|
423
|
-
color: var(--kd-color-text-
|
|
426
|
+
color: var(--kd-color-text-level-disabled);
|
|
424
427
|
}
|
|
425
428
|
.warn span,
|
|
426
429
|
.warn svg {
|
|
@@ -463,7 +466,7 @@ textarea:not([disabled])[invalid] {
|
|
|
463
466
|
}
|
|
464
467
|
}
|
|
465
468
|
[disabled] .description-text {
|
|
466
|
-
color: var(--kd-color-text-
|
|
469
|
+
color: var(--kd-color-text-level-disabled);
|
|
467
470
|
}
|
|
468
471
|
|
|
469
472
|
:host {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkboxGroup.js","sources":["../../../../src/components/reusable/checkbox/checkboxGroup.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { deepmerge } from 'deepmerge-ts';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport CheckboxGroupScss from './checkboxGroup.scss';\n\nimport '../textInput';\nimport './checkbox';\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\n\nconst _defaultTextStrings = {\n selectAll: 'Select all',\n showMore: 'Show more',\n showLess: 'Show less',\n search: 'Search',\n required: 'Required',\n error: 'Error',\n};\n\n/**\n * Checkbox group container.\n * @fires on-checkbox-group-change - Captures the change event and emits the selected values.\n * @fires on-search - Captures the search input event and emits the search term.\n * @fires on-limit-toggle - Captures the show more/less click and emits the expanded state.\n * @slot unnamed - Slot for individual checkboxes.\n * @slot tooltip - Slot for tooltip.\n * @slot description - Slot for description text.\n */\n@customElement('kyn-checkbox-group')\nexport class CheckboxGroup extends FormMixin(LitElement) {\n static override styles = CheckboxGroupScss;\n\n /** Checkbox group selected values. */\n @property({ type: Array })\n override value: Array<any> = [];\n\n /** Makes a single selection required. */\n @property({ type: Boolean })\n required = false;\n\n /** Checkbox group disabled state. */\n @property({ type: Boolean })\n disabled = false;\n\n /** Checkbox group horizontal style. */\n @property({ type: Boolean })\n horizontal = false;\n\n /** Adds a \"Select All\" checkbox to the top of the group. */\n @property({ type: Boolean })\n selectAll = false;\n\n /** Is \"Select All\" box checked.\n * @internal\n */\n @property({ type: Boolean })\n selectAllChecked = false;\n\n /** Is \"Select All\" indeterminate.\n * @internal\n */\n @property({ type: Boolean })\n selectAllIndeterminate = false;\n\n /** Hide the group legend/label visually. */\n @property({ type: Boolean })\n hideLegend = false;\n\n /** Adds a search input to enable filtering of checkboxes. */\n @property({ type: Boolean })\n filterable = false;\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Filter text input value.\n * @internal\n */\n @state()\n searchTerm = '';\n\n /** Limits visible checkboxes behind a \"Show all\" button. */\n @property({ type: Boolean })\n limitCheckboxes = false;\n\n /** Number of checkboxes visible when limited.\n * @internal\n */\n @state()\n _limitCount = 4;\n\n /** Checkbox limit visibility.\n * @internal\n */\n @state()\n limitRevealed = false;\n\n /** Text string customization. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n // /**\n // * Queries for slotted checkboxes.\n // * @ignore\n // */\n // @queryAssignedElements()\n // checkboxes!: Array<any>;\n\n @state()\n checkboxes: Array<any> = [];\n\n @state()\n filteredCheckboxes: Array<any> = [];\n\n override render() {\n return html`\n <div>\n ${this.filterable\n ? html`\n <kyn-text-input\n class=\"search\"\n type=\"search\"\n size=\"sm\"\n placeholder=${this._textStrings.search}\n hideLabel\n value=${this.searchTerm}\n ?disabled=${this.disabled}\n @on-input=${(e: Event) => this._handleFilter(e)}\n >\n ${this._textStrings.search}\n </kyn-text-input>\n `\n : null}\n\n <fieldset ?disabled=${this.disabled}>\n <legend class=\"label-text ${this.hideLegend ? 'sr-only' : ''}\">\n ${this.required\n ? html`\n <abbr\n class=\"required\"\n title=${this._textStrings.required}\n aria-label=${this._textStrings.required}\n >\n *\n </abbr>\n `\n : null}\n <span>${this.label}</span>\n <slot name=\"tooltip\"></slot>\n </legend>\n <div class=\"description-text\">\n <slot name=\"description\"></slot>\n </div>\n ${this._isInvalid\n ? html`\n <div class=\"error\">\n <span\n role=\"img\"\n class=\"error-icon\"\n title=${this._textStrings.error}\n aria-label=${this._textStrings.error}\n >${unsafeSVG(errorIcon)}</span\n >\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null}\n\n <div class=\"${this.horizontal ? 'horizontal' : ''}\">\n ${this.selectAll\n ? html`\n <kyn-checkbox\n class=\"select-all\"\n value=\"selectAll\"\n ?checked=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this.invalidText !== '' ||\n this._internalValidationMsg !== ''}\n >\n ${this._textStrings.selectAll}\n </kyn-checkbox>\n `\n : null}\n\n <slot @slotchange=${this._handleSlotChange}></slot>\n\n ${this.limitCheckboxes &&\n this.filteredCheckboxes.length > this._limitCount\n ? html`\n <button\n class=\"reveal-toggle\"\n @click=${() => this._toggleRevealed(!this.limitRevealed)}\n >\n ${this.limitRevealed\n ? this._textStrings.showLess\n : html`\n ${this._textStrings.showMore}\n (${this.filteredCheckboxes.length})\n `}\n </button>\n `\n : null}\n </div>\n </fieldset>\n </div>\n `;\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n override updated(changedProps: any) {\n if (!changedProps.has('invalidText')) {\n this._onUpdated(changedProps);\n }\n\n if (changedProps.has('invalidText')) {\n this._isInvalid =\n this.invalidText !== '' || this._internalValidationMsg !== '';\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.invalid = this._isInvalid;\n });\n } else if (changedProps.has('value')) {\n this._updateCheckboxStates();\n }\n\n if (changedProps.has('name')) {\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.name = this.name;\n });\n }\n\n if (changedProps.has('required')) {\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.required = this.required;\n });\n }\n\n if (\n changedProps.has('disabled') &&\n changedProps.get('disabled') !== undefined\n ) {\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.disabled = this.disabled;\n });\n }\n\n if (\n changedProps.has('limitCheckboxes') &&\n changedProps.get('limitCheckboxes') !== undefined\n ) {\n this._toggleRevealed(false);\n }\n }\n\n private _updateCheckboxStates() {\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.checked = this.value.includes(checkbox.value);\n });\n\n const CheckedBoxesCount = this.checkboxes.filter(\n (checkbox) => checkbox.checked\n ).length;\n\n this.selectAllChecked =\n this.checkboxes.length > 0 &&\n CheckedBoxesCount === this.checkboxes.length;\n\n this.selectAllIndeterminate =\n CheckedBoxesCount < this.checkboxes.length && CheckedBoxesCount > 0;\n const entries = new FormData();\n this.value.forEach((value) => {\n entries.append(this.name, value);\n });\n this._internals.setFormValue(entries);\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n const Validity = {\n customError: this.invalidText !== '',\n valueMissing: this.required && !this.value.length,\n };\n\n const InternalMsg =\n this.required && !this.value.length ? 'A selection is required.' : '';\n const ValidationMessage =\n this.invalidText !== '' ? this.invalidText : InternalMsg;\n\n if (interacted || this.invalidText !== '') {\n this._internals.setValidity(Validity, ValidationMessage);\n\n // set internal validation message if value was changed by user input\n if (interacted) {\n this._internalValidationMsg = InternalMsg;\n }\n }\n\n // focus the first checkbox to show validity\n if (report) {\n this._internals.reportValidity();\n }\n }\n\n private _handleCheckboxChange(e: any) {\n const value = e.detail.value;\n\n if (value === 'selectAll') {\n if (e.detail.checked) {\n this.value = this.checkboxes\n .filter((checkbox) => !checkbox.disabled)\n .map((checkbox) => {\n return checkbox.value;\n });\n } else {\n this.value = [];\n }\n\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.indeterminate = false;\n });\n } else {\n const newValues = [...this.value];\n if (newValues.includes(value)) {\n const index = newValues.indexOf(value);\n newValues.splice(index, 1);\n } else {\n newValues.push(value);\n }\n this.value = newValues;\n }\n\n this._validate(true, false);\n\n this._emitChangeEvent();\n }\n\n private _emitChangeEvent() {\n const event = new CustomEvent('on-checkbox-group-change', {\n detail: { value: this.value },\n });\n this.dispatchEvent(event);\n }\n\n private _handleFilter(e: any) {\n let visibleCount = 0;\n\n this.searchTerm = e.detail.value.toLowerCase();\n\n this.filteredCheckboxes = this.checkboxes.filter((checkboxEl) => {\n return checkboxEl.textContent.toLowerCase().includes(this.searchTerm);\n });\n\n this.checkboxes.forEach((checkboxEl) => {\n // get checkbox label text\n const checkboxText = checkboxEl.textContent.toLowerCase();\n\n // hide checkbox if no match to search term\n if (this.limitCheckboxes && !this.limitRevealed) {\n if (\n checkboxText.includes(this.searchTerm) &&\n visibleCount < this._limitCount\n ) {\n checkboxEl.style.display = 'block';\n visibleCount++;\n } else {\n checkboxEl.style.display = 'none';\n }\n } else {\n if (checkboxText.includes(this.searchTerm)) {\n checkboxEl.style.display = 'block';\n } else {\n checkboxEl.style.display = 'none';\n }\n }\n });\n\n const event = new CustomEvent('on-search', {\n detail: { searchTerm: this.searchTerm },\n });\n this.dispatchEvent(event);\n }\n\n private _toggleRevealed(revealed: boolean) {\n this.limitRevealed = revealed;\n\n this.filteredCheckboxes.forEach((checkboxEl, index) => {\n if (!this.limitCheckboxes || this.limitRevealed) {\n checkboxEl.style.display = 'block';\n } else {\n if (index < this._limitCount) {\n checkboxEl.style.display = 'block';\n } else {\n checkboxEl.style.display = 'none';\n }\n }\n });\n\n const event = new CustomEvent('on-limit-toggle', {\n detail: { expanded: this.limitRevealed },\n });\n this.dispatchEvent(event);\n }\n\n private _handleSlotChange() {\n const previousCheckboxes = this.checkboxes;\n this.checkboxes = Array.from(this.querySelectorAll('kyn-checkbox'));\n this.filteredCheckboxes = this.checkboxes;\n\n if (!previousCheckboxes.length) {\n this._updateChildren();\n }\n\n this._toggleRevealed(this.limitRevealed);\n }\n\n private _updateChildren() {\n this.checkboxes.forEach((checkbox) => {\n checkbox.disabled = checkbox.hasAttribute('disabled') || this.disabled;\n if (this.value && this.value.length) {\n checkbox.checked = this.value.includes(checkbox.value);\n } else {\n checkbox.checked = false;\n }\n });\n\n if (this.selectAll) {\n const CheckedBoxesCount = this.checkboxes.filter(\n (checkbox) => checkbox.checked\n ).length;\n\n this.selectAllChecked =\n this.checkboxes.length > 0 &&\n CheckedBoxesCount === this.checkboxes.length;\n\n this.selectAllIndeterminate =\n CheckedBoxesCount < this.checkboxes.length && CheckedBoxesCount > 0;\n }\n }\n\n private _handleSubgroupChange(e: any) {\n const newValues = [...this.value];\n const {\n isParent,\n parentChecked,\n parentValue,\n value,\n checked,\n childValues,\n } = e.detail;\n\n if (isParent) {\n if (checked) {\n if (!newValues.includes(value)) {\n newValues.push(value);\n }\n\n childValues.forEach((value: string) => {\n if (!newValues.includes(value)) {\n newValues.push(value);\n }\n });\n } else {\n const index = newValues.indexOf(value);\n newValues.splice(index, 1);\n\n childValues.forEach((value: string) => {\n const index = newValues.indexOf(value);\n if (index !== -1) {\n newValues.splice(index, 1);\n }\n });\n }\n } else {\n if (checked) {\n if (!newValues.includes(value)) {\n newValues.push(value);\n }\n } else {\n const index = newValues.indexOf(value);\n if (index !== -1) {\n newValues.splice(index, 1);\n }\n }\n\n if (parentChecked) {\n if (!newValues.includes(parentValue)) {\n newValues.push(parentValue);\n }\n } else {\n const index = newValues.indexOf(parentValue);\n if (index !== -1) {\n newValues.splice(index, 1);\n }\n }\n }\n\n this.value = newValues;\n\n this._validate(true, false);\n\n this._emitChangeEvent();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n // preserve FormMixin connectedCallback function\n this._onConnected();\n\n // capture child checkboxes change event\n this.addEventListener('on-checkbox-change', (e: any) =>\n this._handleCheckboxChange(e)\n );\n\n // capture subgroup change event\n this.addEventListener('on-checkbox-subgroup-change', (e: any) =>\n this._handleSubgroupChange(e)\n );\n }\n\n override disconnectedCallback() {\n // preserve FormMixin disconnectedCallback function\n this._onDisconnected();\n\n this.removeEventListener('on-checkbox-change', (e: any) =>\n this._handleCheckboxChange(e)\n );\n\n this.removeEventListener('on-checkbox-subgroup-change', (e: any) =>\n this._handleSubgroupChange(e)\n );\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-checkbox-group': CheckboxGroup;\n }\n}\n"],"names":["_defaultTextStrings","selectAll","showMore","showLess","search","required","error","CheckboxGroup","FormMixin","LitElement","constructor","this","value","disabled","horizontal","selectAllChecked","selectAllIndeterminate","hideLegend","filterable","label","searchTerm","limitCheckboxes","_limitCount","limitRevealed","textStrings","_textStrings","checkboxes","filteredCheckboxes","render","html","e","_handleFilter","_isInvalid","unsafeSVG","errorIcon","invalidText","_internalValidationMsg","_handleSlotChange","length","_toggleRevealed","willUpdate","changedProps","has","deepmerge","updated","_onUpdated","forEach","checkbox","invalid","_updateCheckboxStates","name","undefined","get","checked","includes","CheckedBoxesCount","filter","entries","FormData","append","_internals","setFormValue","_validate","interacted","report","Validity","customError","valueMissing","InternalMsg","ValidationMessage","setValidity","reportValidity","_handleCheckboxChange","detail","map","indeterminate","newValues","index","indexOf","splice","push","_emitChangeEvent","event","CustomEvent","dispatchEvent","visibleCount","toLowerCase","checkboxEl","textContent","checkboxText","style","display","revealed","expanded","previousCheckboxes","Array","from","querySelectorAll","_updateChildren","hasAttribute","_handleSubgroupChange","isParent","parentChecked","parentValue","childValues","connectedCallback","super","_onConnected","addEventListener","disconnectedCallback","_onDisconnected","removeEventListener","styles","CheckboxGroupScss","__decorate","property","type","prototype","Boolean","String","state","Object","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkboxGroup.js","sources":["../../../../src/components/reusable/checkbox/checkboxGroup.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { deepmerge } from 'deepmerge-ts';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport CheckboxGroupScss from './checkboxGroup.scss';\n\nimport '../textInput';\nimport './checkbox';\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/error-filled.svg';\n\nconst _defaultTextStrings = {\n selectAll: 'Select all',\n showMore: 'Show more',\n showLess: 'Show less',\n search: 'Search',\n required: 'Required',\n error: 'Error',\n};\n\n/**\n * Checkbox group container.\n * @fires on-checkbox-group-change - Captures the change event and emits the selected values.\n * @fires on-search - Captures the search input event and emits the search term.\n * @fires on-limit-toggle - Captures the show more/less click and emits the expanded state.\n * @slot unnamed - Slot for individual checkboxes.\n * @slot tooltip - Slot for tooltip.\n * @slot description - Slot for description text.\n */\n@customElement('kyn-checkbox-group')\nexport class CheckboxGroup extends FormMixin(LitElement) {\n static override styles = CheckboxGroupScss;\n\n /** Checkbox group selected values. */\n @property({ type: Array })\n override value: Array<any> = [];\n\n /** Makes a single selection required. */\n @property({ type: Boolean })\n required = false;\n\n /** Checkbox group disabled state. */\n @property({ type: Boolean })\n disabled = false;\n\n /** Checkbox group horizontal style. */\n @property({ type: Boolean })\n horizontal = false;\n\n /** Adds a \"Select All\" checkbox to the top of the group. */\n @property({ type: Boolean })\n selectAll = false;\n\n /** Is \"Select All\" box checked.\n * @internal\n */\n @property({ type: Boolean })\n selectAllChecked = false;\n\n /** Is \"Select All\" indeterminate.\n * @internal\n */\n @property({ type: Boolean })\n selectAllIndeterminate = false;\n\n /** Hide the group legend/label visually. */\n @property({ type: Boolean })\n hideLegend = false;\n\n /** Adds a search input to enable filtering of checkboxes. */\n @property({ type: Boolean })\n filterable = false;\n\n /** Label text. */\n @property({ type: String })\n label = '';\n\n /** Filter text input value.\n * @internal\n */\n @state()\n searchTerm = '';\n\n /** Limits visible checkboxes behind a \"Show all\" button. */\n @property({ type: Boolean })\n limitCheckboxes = false;\n\n /** Number of checkboxes visible when limited.\n * @internal\n */\n @state()\n _limitCount = 4;\n\n /** Checkbox limit visibility.\n * @internal\n */\n @state()\n limitRevealed = false;\n\n /** Text string customization. */\n @property({ type: Object })\n textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n _textStrings = _defaultTextStrings;\n\n // /**\n // * Queries for slotted checkboxes.\n // * @ignore\n // */\n // @queryAssignedElements()\n // checkboxes!: Array<any>;\n\n @state()\n checkboxes: Array<any> = [];\n\n @state()\n filteredCheckboxes: Array<any> = [];\n\n override render() {\n return html`\n <div>\n ${this.filterable\n ? html`\n <kyn-text-input\n class=\"search\"\n type=\"search\"\n size=\"sm\"\n placeholder=${this._textStrings.search}\n hideLabel\n value=${this.searchTerm}\n ?disabled=${this.disabled}\n @on-input=${(e: Event) => this._handleFilter(e)}\n >\n ${this._textStrings.search}\n </kyn-text-input>\n `\n : null}\n\n <fieldset ?disabled=${this.disabled}>\n <legend class=\"label-text ${this.hideLegend ? 'sr-only' : ''}\">\n ${this.required\n ? html`\n <abbr\n class=\"required\"\n title=${this._textStrings.required}\n aria-label=${this._textStrings.required}\n >\n *\n </abbr>\n `\n : null}\n <span>${this.label}</span>\n <slot name=\"tooltip\"></slot>\n </legend>\n <div class=\"description-text\">\n <slot name=\"description\"></slot>\n </div>\n ${this._isInvalid\n ? html`\n <div class=\"error\">\n <span\n role=\"img\"\n class=\"error-icon\"\n title=${this._textStrings.error}\n aria-label=${this._textStrings.error}\n >${unsafeSVG(errorIcon)}</span\n >\n ${this.invalidText || this._internalValidationMsg}\n </div>\n `\n : null}\n\n <div class=\"${this.horizontal ? 'horizontal' : ''}\">\n ${this.selectAll\n ? html`\n <kyn-checkbox\n class=\"select-all\"\n value=\"selectAll\"\n ?checked=${this.selectAllChecked}\n ?indeterminate=${this.selectAllIndeterminate}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?invalid=${this.invalidText !== '' ||\n this._internalValidationMsg !== ''}\n >\n ${this._textStrings.selectAll}\n </kyn-checkbox>\n `\n : null}\n\n <slot @slotchange=${this._handleSlotChange}></slot>\n\n ${this.limitCheckboxes &&\n this.filteredCheckboxes.length > this._limitCount\n ? html`\n <button\n class=\"reveal-toggle\"\n @click=${() => this._toggleRevealed(!this.limitRevealed)}\n >\n ${this.limitRevealed\n ? this._textStrings.showLess\n : html`\n ${this._textStrings.showMore}\n (${this.filteredCheckboxes.length})\n `}\n </button>\n `\n : null}\n </div>\n </fieldset>\n </div>\n `;\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n override updated(changedProps: any) {\n if (!changedProps.has('invalidText')) {\n this._onUpdated(changedProps);\n }\n\n if (changedProps.has('invalidText')) {\n this._isInvalid =\n this.invalidText !== '' || this._internalValidationMsg !== '';\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.invalid = this._isInvalid;\n });\n } else if (changedProps.has('value')) {\n this._updateCheckboxStates();\n }\n\n if (changedProps.has('name')) {\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.name = this.name;\n });\n }\n\n if (changedProps.has('required')) {\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.required = this.required;\n });\n }\n\n if (\n changedProps.has('disabled') &&\n changedProps.get('disabled') !== undefined\n ) {\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.disabled = this.disabled;\n });\n }\n\n if (\n changedProps.has('limitCheckboxes') &&\n changedProps.get('limitCheckboxes') !== undefined\n ) {\n this._toggleRevealed(false);\n }\n }\n\n private _updateCheckboxStates() {\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.checked = this.value.includes(checkbox.value);\n });\n\n const CheckedBoxesCount = this.checkboxes.filter(\n (checkbox) => checkbox.checked\n ).length;\n\n this.selectAllChecked =\n this.checkboxes.length > 0 &&\n CheckedBoxesCount === this.checkboxes.length;\n\n this.selectAllIndeterminate =\n CheckedBoxesCount < this.checkboxes.length && CheckedBoxesCount > 0;\n const entries = new FormData();\n this.value.forEach((value) => {\n entries.append(this.name, value);\n });\n this._internals.setFormValue(entries);\n }\n\n private _validate(interacted: Boolean, report: Boolean) {\n const Validity = {\n customError: this.invalidText !== '',\n valueMissing: this.required && !this.value.length,\n };\n\n const InternalMsg =\n this.required && !this.value.length ? 'A selection is required.' : '';\n const ValidationMessage =\n this.invalidText !== '' ? this.invalidText : InternalMsg;\n\n if (interacted || this.invalidText !== '') {\n this._internals.setValidity(Validity, ValidationMessage);\n\n // set internal validation message if value was changed by user input\n if (interacted) {\n this._internalValidationMsg = InternalMsg;\n }\n }\n\n // focus the first checkbox to show validity\n if (report) {\n this._internals.reportValidity();\n }\n }\n\n private _handleCheckboxChange(e: any) {\n const value = e.detail.value;\n\n if (value === 'selectAll') {\n if (e.detail.checked) {\n this.value = this.checkboxes\n .filter((checkbox) => !checkbox.disabled)\n .map((checkbox) => {\n return checkbox.value;\n });\n } else {\n this.value = [];\n }\n\n this.checkboxes.forEach((checkbox: any) => {\n checkbox.indeterminate = false;\n });\n } else {\n const newValues = [...this.value];\n if (newValues.includes(value)) {\n const index = newValues.indexOf(value);\n newValues.splice(index, 1);\n } else {\n newValues.push(value);\n }\n this.value = newValues;\n }\n\n this._validate(true, false);\n\n this._emitChangeEvent();\n }\n\n private _emitChangeEvent() {\n const event = new CustomEvent('on-checkbox-group-change', {\n detail: { value: this.value },\n });\n this.dispatchEvent(event);\n }\n\n private _handleFilter(e: any) {\n let visibleCount = 0;\n\n this.searchTerm = e.detail.value.toLowerCase();\n\n this.filteredCheckboxes = this.checkboxes.filter((checkboxEl) => {\n return checkboxEl.textContent.toLowerCase().includes(this.searchTerm);\n });\n\n this.checkboxes.forEach((checkboxEl) => {\n // get checkbox label text\n const checkboxText = checkboxEl.textContent.toLowerCase();\n\n // hide checkbox if no match to search term\n if (this.limitCheckboxes && !this.limitRevealed) {\n if (\n checkboxText.includes(this.searchTerm) &&\n visibleCount < this._limitCount\n ) {\n checkboxEl.style.display = 'block';\n visibleCount++;\n } else {\n checkboxEl.style.display = 'none';\n }\n } else {\n if (checkboxText.includes(this.searchTerm)) {\n checkboxEl.style.display = 'block';\n } else {\n checkboxEl.style.display = 'none';\n }\n }\n });\n\n const event = new CustomEvent('on-search', {\n detail: { searchTerm: this.searchTerm },\n });\n this.dispatchEvent(event);\n }\n\n private _toggleRevealed(revealed: boolean) {\n this.limitRevealed = revealed;\n\n this.filteredCheckboxes.forEach((checkboxEl, index) => {\n if (!this.limitCheckboxes || this.limitRevealed) {\n checkboxEl.style.display = 'block';\n } else {\n if (index < this._limitCount) {\n checkboxEl.style.display = 'block';\n } else {\n checkboxEl.style.display = 'none';\n }\n }\n });\n\n const event = new CustomEvent('on-limit-toggle', {\n detail: { expanded: this.limitRevealed },\n });\n this.dispatchEvent(event);\n }\n\n private _handleSlotChange() {\n const previousCheckboxes = this.checkboxes;\n this.checkboxes = Array.from(this.querySelectorAll('kyn-checkbox'));\n this.filteredCheckboxes = this.checkboxes;\n\n if (!previousCheckboxes.length) {\n this._updateChildren();\n }\n\n this._toggleRevealed(this.limitRevealed);\n }\n\n private _updateChildren() {\n this.checkboxes.forEach((checkbox) => {\n checkbox.disabled = checkbox.hasAttribute('disabled') || this.disabled;\n if (this.value && this.value.length) {\n checkbox.checked = this.value.includes(checkbox.value);\n } else {\n checkbox.checked = false;\n }\n });\n\n if (this.selectAll) {\n const CheckedBoxesCount = this.checkboxes.filter(\n (checkbox) => checkbox.checked\n ).length;\n\n this.selectAllChecked =\n this.checkboxes.length > 0 &&\n CheckedBoxesCount === this.checkboxes.length;\n\n this.selectAllIndeterminate =\n CheckedBoxesCount < this.checkboxes.length && CheckedBoxesCount > 0;\n }\n }\n\n private _handleSubgroupChange(e: any) {\n const newValues = [...this.value];\n const {\n isParent,\n parentChecked,\n parentValue,\n value,\n checked,\n childValues,\n } = e.detail;\n\n if (isParent) {\n if (checked) {\n if (!newValues.includes(value)) {\n newValues.push(value);\n }\n\n childValues.forEach((value: string) => {\n if (!newValues.includes(value)) {\n newValues.push(value);\n }\n });\n } else {\n const index = newValues.indexOf(value);\n newValues.splice(index, 1);\n\n childValues.forEach((value: string) => {\n const index = newValues.indexOf(value);\n if (index !== -1) {\n newValues.splice(index, 1);\n }\n });\n }\n } else {\n if (checked) {\n if (!newValues.includes(value)) {\n newValues.push(value);\n }\n } else {\n const index = newValues.indexOf(value);\n if (index !== -1) {\n newValues.splice(index, 1);\n }\n }\n\n if (parentChecked) {\n if (!newValues.includes(parentValue)) {\n newValues.push(parentValue);\n }\n } else {\n const index = newValues.indexOf(parentValue);\n if (index !== -1) {\n newValues.splice(index, 1);\n }\n }\n }\n\n this.value = newValues;\n\n this._validate(true, false);\n\n this._emitChangeEvent();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n // preserve FormMixin connectedCallback function\n this._onConnected();\n\n // capture child checkboxes change event\n this.addEventListener('on-checkbox-change', (e: any) =>\n this._handleCheckboxChange(e)\n );\n\n // capture subgroup change event\n this.addEventListener('on-checkbox-subgroup-change', (e: any) =>\n this._handleSubgroupChange(e)\n );\n }\n\n override disconnectedCallback() {\n // preserve FormMixin disconnectedCallback function\n this._onDisconnected();\n\n this.removeEventListener('on-checkbox-change', (e: any) =>\n this._handleCheckboxChange(e)\n );\n\n this.removeEventListener('on-checkbox-subgroup-change', (e: any) =>\n this._handleSubgroupChange(e)\n );\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-checkbox-group': CheckboxGroup;\n }\n}\n"],"names":["_defaultTextStrings","selectAll","showMore","showLess","search","required","error","CheckboxGroup","FormMixin","LitElement","constructor","this","value","disabled","horizontal","selectAllChecked","selectAllIndeterminate","hideLegend","filterable","label","searchTerm","limitCheckboxes","_limitCount","limitRevealed","textStrings","_textStrings","checkboxes","filteredCheckboxes","render","html","e","_handleFilter","_isInvalid","unsafeSVG","errorIcon","invalidText","_internalValidationMsg","_handleSlotChange","length","_toggleRevealed","willUpdate","changedProps","has","deepmerge","updated","_onUpdated","forEach","checkbox","invalid","_updateCheckboxStates","name","undefined","get","checked","includes","CheckedBoxesCount","filter","entries","FormData","append","_internals","setFormValue","_validate","interacted","report","Validity","customError","valueMissing","InternalMsg","ValidationMessage","setValidity","reportValidity","_handleCheckboxChange","detail","map","indeterminate","newValues","index","indexOf","splice","push","_emitChangeEvent","event","CustomEvent","dispatchEvent","visibleCount","toLowerCase","checkboxEl","textContent","checkboxText","style","display","revealed","expanded","previousCheckboxes","Array","from","querySelectorAll","_updateChildren","hasAttribute","_handleSubgroupChange","isParent","parentChecked","parentValue","childValues","connectedCallback","super","_onConnected","addEventListener","disconnectedCallback","_onDisconnected","removeEventListener","styles","CheckboxGroupScss","__decorate","property","type","prototype","Boolean","String","state","Object","customElement"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAgB5D,OAAO,uBAAuB,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAS3D,KAAK,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;;AAUnD;;;;GAIG;AACH,qBACa,UAAW,SAAQ,eAAqB;IACnD,OAAgB,MAAM,QAA6C;IAEnE,kBAAkB;IAElB,KAAK,SAAM;IAIX,MAAM,EAAE,eAAe,GAAG,MAAM,CAAQ;IAExC,wGAAwG;IAExG,UAAU,SAAW;IAErB,kHAAkH;IAElH,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAQ;IAE7C,kCAAkC;IAElC,mBAAmB,SAAM;IAEzB,6DAA6D;IAE7D,QAAQ,UAAS;IAEjB,uCAAuC;IAEvC,IAAI,SAAQ;IAEZ;;;;;;;;OAQG;IAEM,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,CAAQ;IAE5C,yCAAyC;IAEzC,QAAQ,SAAM;IAEd,qIAAqI;IAErI,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAM;IAEzC,mDAAmD;IAEnD,OAAO,CAAC,sBAAsB,CAAkC;IAEhE,+DAA+D;IAE/D,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAM;IAExC,sEAAsE;IAEtE,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAY;IAEvC,uEAAuE;IAEvE,OAAO,SAAM;IAEb,+DAA+D;IAE/D,kBAAkB,UAAS;IAE3B,uDAAuD;IAEvD,QAAQ,UAAS;IAEjB;;OAEG;IAEH,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE5C,wDAAwD;IAExD,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAM;IAErC,wDAAwD;IAExD,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAM;IAErC,mDAAmD;IAEnD,cAAc,SAAM;IAEpB,8CAA8C;IAE9C,UAAU,SAAM;IAEhB,qDAAqD;IAErD,gBAAgB,SAAM;IAEtB,gDAAgD;IAEhD,YAAY,SAAM;IAElB,4EAA4E;IAE5E,cAAc,UAAS;IAEvB;;OAEG;IAEH,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;IAEH,OAAO,CAAC,cAAc,CAAS;IAE/B;;OAEG;IAEH,OAAO,CAAC,iBAAiB,CAAC,CAAqB;IAE/C;;;OAGG;IAEH,OAAO,CAAC,QAAQ,CAAC,CAAmB;IAEpC;;OAEG;IAEH,OAAO,CAAC,WAAW,CAAS;IAE5B,iCAAiC;IAEjC,WAAW;;;;;;MAAuB;IAElC;;OAEG;IAEH,YAAY;;;;;;MAA8B;IAE1C;;OAEG;IAEH,OAAO,CAAC,oBAAoB,CAAS;IAErC,qFAAqF;IAErF,OAAO,CAAC,sBAAsB,CAAS;IAEvC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,OAAO,CAAC,eAAe,CAA2C;IAElE,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,eAAe,CAOf;IAEC,iBAAiB;IAUjB,oBAAoB;IAY7B,OAAO,CAAC,QAAQ;IAsBP,MAAM;
|
|
1
|
+
{"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as a,i as r,e as l}from"../../../vendor/lit-461e78e6.js";import{i as n,x as s,s as o}from"../../../vendor/lit-element-c6c02f24.js";import{FormMixin as d}from"../../../common/mixins/form-input.js";import{o as p}from"../../../vendor/lit-html-29220869.js";import{getPlaceholder as c,injectFlatpickrStyles as h,updateEnableTime as u,emitValue as m,initializeSingleAnchorFlatpickr as v,getModalContainer as
|
|
1
|
+
import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as a,i as r,e as l}from"../../../vendor/lit-461e78e6.js";import{i as n,x as s,s as o}from"../../../vendor/lit-element-c6c02f24.js";import{FormMixin as d}from"../../../common/mixins/form-input.js";import{o as p}from"../../../vendor/lit-html-29220869.js";import{getPlaceholder as c,injectFlatpickrStyles as h,updateEnableTime as u,emitValue as m,initializeSingleAnchorFlatpickr as v,getModalContainer as f,setCalendarAttributes as k,hideEmptyYear as g,getFlatpickrOptions as b,loadLocale as y,preventFlatpickrOpen as x,handleInputClick as _,handleInputFocus as w}from"../../../common/helpers/flatpickr.js";import"../button/button.js";import{c as D}from"../../../shidoka-flatpickr-theme-469e3123.js";import{c as z,J as I,K as F}from"../../../vendor/@kyndryl-design-system/shidoka-icons-39c6d852.js";import"../../../vendor/flatpickr-bbd13d61.js";import"../../../common/flatpickrLangs.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var $=n`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -85,7 +85,7 @@ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as
|
|
|
85
85
|
width: 1px;
|
|
86
86
|
}
|
|
87
87
|
[disabled] .label-text {
|
|
88
|
-
color: var(--kd-color-text-
|
|
88
|
+
color: var(--kd-color-text-level-disabled);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
.required {
|
|
@@ -105,6 +105,9 @@ import{_ as t}from"../../../vendor/tslib-53a81efe.js";import{o as e,n as i,t as
|
|
|
105
105
|
.input-wrapper textarea[disabled] ~ .input-icon {
|
|
106
106
|
color: var(--kd-color-icon-disabled);
|
|
107
107
|
}
|
|
108
|
+
.input-wrapper .input-icon.is-disabled {
|
|
109
|
+
color: var(--kd-color-icon-disabled);
|
|
110
|
+
}
|
|
108
111
|
|
|
109
112
|
.options-text {
|
|
110
113
|
margin: 0;
|
|
@@ -262,7 +265,7 @@ input[disabled],
|
|
|
262
265
|
textarea[disabled] {
|
|
263
266
|
background: var(--kd-color-background-forms-disabled);
|
|
264
267
|
border: none;
|
|
265
|
-
color: var(--kd-color-text-
|
|
268
|
+
color: var(--kd-color-text-level-disabled);
|
|
266
269
|
cursor: not-allowed;
|
|
267
270
|
}
|
|
268
271
|
input[disabled][invalid],
|
|
@@ -308,10 +311,10 @@ textarea:not([disabled])[invalid] {
|
|
|
308
311
|
align-items: center;
|
|
309
312
|
}
|
|
310
313
|
[disabled] .error {
|
|
311
|
-
color: var(--kd-color-text-
|
|
314
|
+
color: var(--kd-color-text-level-disabled);
|
|
312
315
|
}
|
|
313
316
|
[disabled] .error span svg {
|
|
314
|
-
color: var(--kd-color-text-
|
|
317
|
+
color: var(--kd-color-text-level-disabled);
|
|
315
318
|
}
|
|
316
319
|
.error span svg {
|
|
317
320
|
margin-right: 8px;
|
|
@@ -322,14 +325,14 @@ textarea:not([disabled])[invalid] {
|
|
|
322
325
|
color: var(--kd-color-status-error-dark);
|
|
323
326
|
}
|
|
324
327
|
[disabled] .error-icon {
|
|
325
|
-
color: var(--kd-color-text-
|
|
328
|
+
color: var(--kd-color-text-level-disabled);
|
|
326
329
|
}
|
|
327
330
|
|
|
328
331
|
.success-icon {
|
|
329
332
|
color: var(--kd-color-background-success);
|
|
330
333
|
}
|
|
331
334
|
[disabled] .success-icon {
|
|
332
|
-
color: var(--kd-color-text-
|
|
335
|
+
color: var(--kd-color-text-level-disabled);
|
|
333
336
|
}
|
|
334
337
|
|
|
335
338
|
.caption {
|
|
@@ -397,7 +400,7 @@ textarea:not([disabled])[invalid] {
|
|
|
397
400
|
}
|
|
398
401
|
}
|
|
399
402
|
[disabled] .caption-error-count .count {
|
|
400
|
-
color: var(--kd-color-text-
|
|
403
|
+
color: var(--kd-color-text-level-disabled);
|
|
401
404
|
}
|
|
402
405
|
|
|
403
406
|
.input-icon {
|
|
@@ -420,7 +423,7 @@ textarea:not([disabled])[invalid] {
|
|
|
420
423
|
font-size: 16px;
|
|
421
424
|
}
|
|
422
425
|
[disabled] .warn {
|
|
423
|
-
color: var(--kd-color-text-
|
|
426
|
+
color: var(--kd-color-text-level-disabled);
|
|
424
427
|
}
|
|
425
428
|
.warn span,
|
|
426
429
|
.warn svg {
|
|
@@ -463,7 +466,7 @@ textarea:not([disabled])[invalid] {
|
|
|
463
466
|
}
|
|
464
467
|
}
|
|
465
468
|
[disabled] .description-text {
|
|
466
|
-
color: var(--kd-color-text-
|
|
469
|
+
color: var(--kd-color-text-level-disabled);
|
|
467
470
|
}
|
|
468
471
|
|
|
469
472
|
:host {
|
|
@@ -585,7 +588,10 @@ input {
|
|
|
585
588
|
>${p(z)}</span
|
|
586
589
|
>
|
|
587
590
|
</kyn-button>
|
|
588
|
-
`:s`<span
|
|
591
|
+
`:s`<span
|
|
592
|
+
class="input-icon ${this.datePickerDisabled?"is-disabled":""}"
|
|
593
|
+
>${p(I)}</span
|
|
594
|
+
>`}
|
|
589
595
|
</div>
|
|
590
596
|
|
|
591
597
|
${this.caption?s`<div
|
|
@@ -623,5 +629,5 @@ input {
|
|
|
623
629
|
@click=${this.preventFlatpickrOpen}
|
|
624
630
|
>
|
|
625
631
|
${this.warnText}
|
|
626
|
-
</div>`:null}getDatepickerClasses(){return{"date-picker":!0,"date-picker__enable-time":this._enableTime,"date-picker__multiple-select":"multiple"===this.mode,"date-picker__disabled":this.datePickerDisabled}}async firstUpdated(t){if(super.firstUpdated(t),!this._initialized&&(h(D.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor(),this._hasInitialDefaultDate&&this.defaultDate)){const t=this.processDefaultDates(this.defaultDate);t&&t.length>0&&("multiple"===this.mode?this.value=[...t]:this.value=t[0])}}processDefaultDates(t){if(!t)return[];if(Array.isArray(t))return t.map((t=>t instanceof Date?t:"string"==typeof t?this.parseDateString(t):null)).filter((t=>null!==t));if("string"==typeof t){const e=this.parseDateString(t);return e?[e]:[]}return t instanceof Date?[t]:[]}updated(t){if(super.updated(t),t.has("value")&&!this._isClearing){let t=this.value;if("string"==typeof t)try{const e=t;if(""!==e.trim()&&/\d{4}-\d{2}-\d{2}/.test(e)){const[i,a,r]=e.split("-").map(Number);isNaN(i)||isNaN(a)||isNaN(r)||(this.value=new Date(i,a-1,r,12),t=this.value,this.flatpickrInstance&&this.flatpickrInstance.setDate(t,!0))}}catch(t){console.warn("Error parsing date string:",t)}if((null===t||Array.isArray(t)&&0===t.length)&&this.flatpickrInstance){this._isClearing=!0;try{this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value="")}finally{this._isClearing=!1}}this.requestUpdate()}t.has("defaultDate")&&this.flatpickrInstance&&!this._isClearing&&this.debouncedUpdate(),t.has("disable")&&(Array.isArray(this.disable)?this._processedDisableDates=this.disable.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){const[e,i,a]=t.split("-").map(Number);if(!isNaN(e)&&!isNaN(i)&&!isNaN(a))return new Date(e,i-1,a)}return t})):this._processedDisableDates=[],this.flatpickrInstance&&this.debouncedUpdate()),(t.has("dateFormat")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&(this._enableTime=u(this.dateFormat),this.flatpickrInstance&&this._initialized&&!this._isClearing&&(t.has("dateFormat"),this.debouncedUpdate())),(t.has("datePickerDisabled")&&this.datePickerDisabled||t.has("readonly")&&this.readonly)&&this.flatpickrInstance&&this.flatpickrInstance.close()}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}}async _handleClear(t){var e;if(t.preventDefault(),t.stopPropagation(),this.flatpickrInstance){this._isClearing=!0;try{this.value="multiple"===this.mode?[]:null,this.defaultDate=null,this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),m(this,"on-change",{dates:this.value,dateString:null===(e=this._inputEl)||void 0===e?void 0:e.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,await this.initializeFlatpickr(),this.requestUpdate()}catch(t){console.error("Error clearing datepicker:",t)}finally{this._isClearing=!1}}else console.warn("Cannot clear: Flatpickr instance not available")}async initializeFlatpickr(){if(!this._isDestroyed)if(this._inputEl&&this._inputEl.isConnected)try{if(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await v({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{try{const e=k(this);f(t,e!==document.body),t.calendarContainer&&t.calendarContainer.setAttribute("aria-label","Date picker")}catch(t){console.error("Error setting calendar attributes:",t)}},setInitialDates:this.setInitialDates.bind(this)}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");g(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}else console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM")}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}parseDateString(t){if(!t||!t.trim())return null;if(t.includes("T")){const e=new Date(t);return isNaN(e.getTime())?null:e}const e={"Y-m-d":/^\d{4}-\d{2}-\d{2}$/,"Y-m-d h:i K":/^\d{4}-\d{2}-\d{2}( \d{1,2}:\d{2} [AP]M)?$/}[this.dateFormat];if(!e||!e.test(t))return null;const[i]=t.split(" "),[a,r,l]=i.split("-").map(Number);if(!a||!r||!l)return null;const n=new Date(a,r-1,l);return isNaN(n.getTime())?null:n}setInitialDates(){if(this.flatpickrInstance)try{const t=this.defaultDate||this.value;if(!t)return;if(Array.isArray(t)){const e=t.map((t=>t instanceof Date?t:"string"==typeof t?this.parseDateString(t):null)).filter((t=>null!==t));e.length>0&&(this.flatpickrInstance.setDate(e,!0),(null===this.value||Array.isArray(this.value)&&0===this.value.length)&&("multiple"===this.mode?this.value=[...e]:this.value=e[0]))}else if("string"==typeof t){const e=this.parseDateString(t);e&&(this.flatpickrInstance.setDate(e,!0),null===this.value&&(this.value=e))}else t instanceof Date&&(this.flatpickrInstance.setDate(t,!0),null===this.value&&(this.value=t))}catch(t){console.warn("Error setting initial dates:",t)}}async getComponentFlatpickrOptions(){var t;const e=k(this);return await b({locale:this.locale,dateFormat:this.dateFormat,defaultDate:this.defaultDate?this.defaultDate:void 0,enableTime:this._enableTime,twentyFourHourFormat:null!==(t=this.twentyFourHourFormat)&&void 0!==t?t:void 0,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this._processedDisableDates,mode:this.mode,closeOnSelect:!("multiple"===this.mode||this._enableTime),loadLocale:y,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:e,noCalendar:!1,static:this.staticPosition})}handleOpen(){var t,e;this.readonly?null===(t=this.flatpickrInstance)||void 0===t||t.close():this._shouldFlatpickrOpen||(null===(e=this.flatpickrInstance)||void 0===e||e.close(),this._shouldFlatpickrOpen=!0)}async handleClose(){this._validate(!1,!1),await this.updateComplete,this.value||this.defaultDate||(this._hasInteracted=!0)}async handleDateChange(t,e){var i;if(!this._isClearing){this._hasInteracted=!0;try{let a;"multiple"===this.mode?this.value=t.length>0?[...t]:[]:this.value=t.length>0?t[0]:null;const r="multiple"===this.mode;a=r?t.map((t=>t.toISOString())):t.length>0?t[0].toISOString():r?[]:null,m(this,"on-change",{dates:a,dateString:(null===(i=this._inputEl)||void 0===i?void 0:i.value)||e,source:0===t.length?"clear":void 0}),this._validate(!0,!1),await this.updateComplete,this.requestUpdate()}catch(t){console.warn("Error handling date change:",t)}}}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){x(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){_(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){w(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}_validate(t,e){if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;if(this.datePickerDisabled)return this._internals.setValidity({},"",this._inputEl),this._isInvalid=!1,void(this._internalValidationMsg="");t&&(this._hasInteracted=!0);const i=null!==this.defaultDate&&("string"==typeof this.defaultDate&&""!==this.defaultDate.trim()||Array.isArray(this.defaultDate)&&this.defaultDate.length>0&&this.defaultDate.some((t=>t&&""!==t))),a=!this._inputEl.value.trim()&&!i,r=this.required;let l=this._inputEl.validity,n=this._inputEl.validationMessage;if(!this._hasInteracted&&!t&&this._enableTime&&(!r||!a))return this._internals.setValidity({},"",this._inputEl),this._isInvalid=!1,void(this._internalValidationMsg="");if(r&&a)return l={...l,valueMissing:!0},n=this.defaultErrorMessage||this._textStrings.pleaseSelectDate,this._internals.setValidity(l,n,this._inputEl),this._isInvalid=this._hasInteracted||t,this._internalValidationMsg=n,e&&this._internals.reportValidity(),void this.requestUpdate();this.invalidText&&(l={...l,customError:!0},n=this.invalidText);const s=!l.valueMissing&&!l.customError;s||n||(n=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(l,n,this._inputEl),this._isInvalid=!s&&(this._hasInteracted||""!==this.invalidText||t),this._internalValidationMsg=n,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._hasInteracted=!1}};S.styles=[$,D],t([i({type:String})],S.prototype,"label",void 0),t([i({type:String})],S.prototype,"locale",void 0),t([i({type:String})],S.prototype,"dateFormat",void 0),t([i({type:Array})],S.prototype,"defaultDate",void 0),t([i({type:String})],S.prototype,"defaultErrorMessage",void 0),t([i({type:Boolean})],S.prototype,"required",void 0),t([i({type:String})],S.prototype,"size",void 0),t([a()],S.prototype,"value",void 0),t([i({type:String})],S.prototype,"warnText",void 0),t([i({type:Array})],S.prototype,"disable",void 0),t([a()],S.prototype,"_processedDisableDates",void 0),t([i({type:Array})],S.prototype,"enable",void 0),t([i({type:String})],S.prototype,"mode",void 0),t([i({type:String})],S.prototype,"caption",void 0),t([i({type:Boolean})],S.prototype,"datePickerDisabled",void 0),t([i({type:Boolean})],S.prototype,"readonly",void 0),t([i({type:Boolean})],S.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],S.prototype,"minDate",void 0),t([i({type:String})],S.prototype,"maxDate",void 0),t([i({type:String})],S.prototype,"errorAriaLabel",void 0),t([i({type:String})],S.prototype,"errorTitle",void 0),t([i({type:String})],S.prototype,"warningAriaLabel",void 0),t([i({type:String})],S.prototype,"warningTitle",void 0),t([i({type:Boolean})],S.prototype,"staticPosition",void 0),t([a()],S.prototype,"_enableTime",void 0),t([a()],S.prototype,"_hasInteracted",void 0),t([a()],S.prototype,"flatpickrInstance",void 0),t([r("input")],S.prototype,"_inputEl",void 0),t([a()],S.prototype,"_isClearing",void 0),t([i({type:Object})],S.prototype,"textStrings",void 0),t([a()],S.prototype,"_textStrings",void 0),t([a()],S.prototype,"_shouldFlatpickrOpen",void 0),t([a()],S.prototype,"_hasInitialDefaultDate",void 0),S=t([l("kyn-date-picker")],S);export{S as DatePicker};
|
|
632
|
+
</div>`:null}getDatepickerClasses(){return{"date-picker":!0,"date-picker__enable-time":this._enableTime,"date-picker__multiple-select":"multiple"===this.mode,"date-picker__disabled":this.datePickerDisabled}}async firstUpdated(t){if(super.firstUpdated(t),!this._initialized&&(h(D.toString()),this._initialized=!0,await this.updateComplete,this.setupAnchor(),this._hasInitialDefaultDate&&this.defaultDate)){const t=this.processDefaultDates(this.defaultDate);t&&t.length>0&&("multiple"===this.mode?this.value=[...t]:this.value=t[0])}}processDefaultDates(t){if(!t)return[];if(Array.isArray(t))return t.map((t=>t instanceof Date?t:"string"==typeof t?this.parseDateString(t):null)).filter((t=>null!==t));if("string"==typeof t){const e=this.parseDateString(t);return e?[e]:[]}return t instanceof Date?[t]:[]}updated(t){if(super.updated(t),t.has("value")&&!this._isClearing){let t=this.value;if("string"==typeof t)try{const e=t;if(""!==e.trim()&&/\d{4}-\d{2}-\d{2}/.test(e)){const[i,a,r]=e.split("-").map(Number);isNaN(i)||isNaN(a)||isNaN(r)||(this.value=new Date(i,a-1,r,12),t=this.value,this.flatpickrInstance&&this.flatpickrInstance.setDate(t,!0))}}catch(t){console.warn("Error parsing date string:",t)}if((null===t||Array.isArray(t)&&0===t.length)&&this.flatpickrInstance){this._isClearing=!0;try{this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value="")}finally{this._isClearing=!1}}this.requestUpdate()}t.has("defaultDate")&&this.flatpickrInstance&&!this._isClearing&&this.debouncedUpdate(),t.has("disable")&&(Array.isArray(this.disable)?this._processedDisableDates=this.disable.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){const[e,i,a]=t.split("-").map(Number);if(!isNaN(e)&&!isNaN(i)&&!isNaN(a))return new Date(e,i-1,a)}return t})):this._processedDisableDates=[],this.flatpickrInstance&&this.debouncedUpdate()),(t.has("dateFormat")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&(this._enableTime=u(this.dateFormat),this.flatpickrInstance&&this._initialized&&!this._isClearing&&(t.has("dateFormat"),this.debouncedUpdate())),(t.has("datePickerDisabled")&&this.datePickerDisabled||t.has("readonly")&&this.readonly)&&this.flatpickrInstance&&this.flatpickrInstance.close()}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}}async _handleClear(t){var e;if(t.preventDefault(),t.stopPropagation(),this.flatpickrInstance){this._isClearing=!0;try{this.value="multiple"===this.mode?[]:null,this.defaultDate=null,this.flatpickrInstance.clear(),this._inputEl&&(this._inputEl.value=""),m(this,"on-change",{dates:this.value,dateString:null===(e=this._inputEl)||void 0===e?void 0:e.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,await this.initializeFlatpickr(),this.requestUpdate()}catch(t){console.error("Error clearing datepicker:",t)}finally{this._isClearing=!1}}else console.warn("Cannot clear: Flatpickr instance not available")}async initializeFlatpickr(){if(!this._isDestroyed)if(this._inputEl&&this._inputEl.isConnected)try{if(this.flatpickrInstance&&this.flatpickrInstance.destroy(),this.flatpickrInstance=await v({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{try{const e=f(this);k(t,e!==document.body),t.calendarContainer&&t.calendarContainer.setAttribute("aria-label","Date picker")}catch(t){console.error("Error setting calendar attributes:",t)}},setInitialDates:this.setInitialDates.bind(this)}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");g(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}else console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM")}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}parseDateString(t){if(!t||!t.trim())return null;if(t.includes("T")){const e=new Date(t);return isNaN(e.getTime())?null:e}const e={"Y-m-d":/^\d{4}-\d{2}-\d{2}$/,"Y-m-d h:i K":/^\d{4}-\d{2}-\d{2}( \d{1,2}:\d{2} [AP]M)?$/}[this.dateFormat];if(!e||!e.test(t))return null;const[i]=t.split(" "),[a,r,l]=i.split("-").map(Number);if(!a||!r||!l)return null;const n=new Date(a,r-1,l);return isNaN(n.getTime())?null:n}setInitialDates(){if(this.flatpickrInstance)try{const t=this.defaultDate||this.value;if(!t)return;if(Array.isArray(t)){const e=t.map((t=>t instanceof Date?t:"string"==typeof t?this.parseDateString(t):null)).filter((t=>null!==t));e.length>0&&(this.flatpickrInstance.setDate(e,!0),(null===this.value||Array.isArray(this.value)&&0===this.value.length)&&("multiple"===this.mode?this.value=[...e]:this.value=e[0]))}else if("string"==typeof t){const e=this.parseDateString(t);e&&(this.flatpickrInstance.setDate(e,!0),null===this.value&&(this.value=e))}else t instanceof Date&&(this.flatpickrInstance.setDate(t,!0),null===this.value&&(this.value=t))}catch(t){console.warn("Error setting initial dates:",t)}}async getComponentFlatpickrOptions(){var t;const e=f(this);return await b({locale:this.locale,dateFormat:this.dateFormat,defaultDate:this.defaultDate?this.defaultDate:void 0,enableTime:this._enableTime,twentyFourHourFormat:null!==(t=this.twentyFourHourFormat)&&void 0!==t?t:void 0,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this._processedDisableDates,mode:this.mode,closeOnSelect:!("multiple"===this.mode||this._enableTime),loadLocale:y,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:e,noCalendar:!1,static:this.staticPosition})}handleOpen(){var t,e;this.readonly?null===(t=this.flatpickrInstance)||void 0===t||t.close():this._shouldFlatpickrOpen||(null===(e=this.flatpickrInstance)||void 0===e||e.close(),this._shouldFlatpickrOpen=!0)}async handleClose(){this._validate(!1,!1),await this.updateComplete,this.value||this.defaultDate||(this._hasInteracted=!0)}async handleDateChange(t,e){var i;if(!this._isClearing){this._hasInteracted=!0;try{let a;"multiple"===this.mode?this.value=t.length>0?[...t]:[]:this.value=t.length>0?t[0]:null;const r="multiple"===this.mode;a=r?t.map((t=>t.toISOString())):t.length>0?t[0].toISOString():r?[]:null,m(this,"on-change",{dates:a,dateString:(null===(i=this._inputEl)||void 0===i?void 0:i.value)||e,source:0===t.length?"clear":void 0}),this._validate(!0,!1),await this.updateComplete,this.requestUpdate()}catch(t){console.warn("Error handling date change:",t)}}}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){x(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){_(this.setShouldFlatpickrOpen.bind(this))}handleInputFocusEvent(){w(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this))}_validate(t,e){if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;if(this.datePickerDisabled)return this._internals.setValidity({},"",this._inputEl),this._isInvalid=!1,void(this._internalValidationMsg="");t&&(this._hasInteracted=!0);const i=null!==this.defaultDate&&("string"==typeof this.defaultDate&&""!==this.defaultDate.trim()||Array.isArray(this.defaultDate)&&this.defaultDate.length>0&&this.defaultDate.some((t=>t&&""!==t))),a=!this._inputEl.value.trim()&&!i,r=this.required;let l=this._inputEl.validity,n=this._inputEl.validationMessage;if(!this._hasInteracted&&!t&&this._enableTime&&(!r||!a))return this._internals.setValidity({},"",this._inputEl),this._isInvalid=!1,void(this._internalValidationMsg="");if(r&&a)return l={...l,valueMissing:!0},n=this.defaultErrorMessage||this._textStrings.pleaseSelectDate,this._internals.setValidity(l,n,this._inputEl),this._isInvalid=this._hasInteracted||t,this._internalValidationMsg=n,e&&this._internals.reportValidity(),void this.requestUpdate();this.invalidText&&(l={...l,customError:!0},n=this.invalidText);const s=!l.valueMissing&&!l.customError;s||n||(n=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(l,n,this._inputEl),this._isInvalid=!s&&(this._hasInteracted||""!==this.invalidText||t),this._internalValidationMsg=n,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){this.value=null,this.flatpickrInstance&&this.flatpickrInstance.clear(),this._hasInteracted=!1}};S.styles=[$,D],t([i({type:String})],S.prototype,"label",void 0),t([i({type:String})],S.prototype,"locale",void 0),t([i({type:String})],S.prototype,"dateFormat",void 0),t([i({type:Array})],S.prototype,"defaultDate",void 0),t([i({type:String})],S.prototype,"defaultErrorMessage",void 0),t([i({type:Boolean})],S.prototype,"required",void 0),t([i({type:String})],S.prototype,"size",void 0),t([a()],S.prototype,"value",void 0),t([i({type:String})],S.prototype,"warnText",void 0),t([i({type:Array})],S.prototype,"disable",void 0),t([a()],S.prototype,"_processedDisableDates",void 0),t([i({type:Array})],S.prototype,"enable",void 0),t([i({type:String})],S.prototype,"mode",void 0),t([i({type:String})],S.prototype,"caption",void 0),t([i({type:Boolean})],S.prototype,"datePickerDisabled",void 0),t([i({type:Boolean})],S.prototype,"readonly",void 0),t([i({type:Boolean})],S.prototype,"twentyFourHourFormat",void 0),t([i({type:String})],S.prototype,"minDate",void 0),t([i({type:String})],S.prototype,"maxDate",void 0),t([i({type:String})],S.prototype,"errorAriaLabel",void 0),t([i({type:String})],S.prototype,"errorTitle",void 0),t([i({type:String})],S.prototype,"warningAriaLabel",void 0),t([i({type:String})],S.prototype,"warningTitle",void 0),t([i({type:Boolean})],S.prototype,"staticPosition",void 0),t([a()],S.prototype,"_enableTime",void 0),t([a()],S.prototype,"_hasInteracted",void 0),t([a()],S.prototype,"flatpickrInstance",void 0),t([r("input")],S.prototype,"_inputEl",void 0),t([a()],S.prototype,"_isClearing",void 0),t([i({type:Object})],S.prototype,"textStrings",void 0),t([a()],S.prototype,"_textStrings",void 0),t([a()],S.prototype,"_shouldFlatpickrOpen",void 0),t([a()],S.prototype,"_hasInitialDefaultDate",void 0),S=t([l("kyn-date-picker")],S);export{S as DatePicker};
|
|
627
633
|
//# sourceMappingURL=datepicker.js.map
|