igniteui-webcomponents 4.8.0 → 4.8.1
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/CHANGELOG.md +8 -0
- package/components/accordion/accordion.js +3 -5
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/themes/dark/avatar.bootstrap.css.js +1 -1
- package/components/avatar/themes/dark/avatar.bootstrap.css.js.map +1 -1
- package/components/avatar/themes/dark/avatar.indigo.css.js +1 -1
- package/components/avatar/themes/dark/avatar.indigo.css.js.map +1 -1
- package/components/avatar/themes/light/avatar.bootstrap.css.js +1 -1
- package/components/avatar/themes/light/avatar.bootstrap.css.js.map +1 -1
- package/components/avatar/themes/light/avatar.indigo.css.js +1 -1
- package/components/avatar/themes/light/avatar.indigo.css.js.map +1 -1
- package/components/avatar/themes/light/avatar.shared.css.js +1 -1
- package/components/avatar/themes/light/avatar.shared.css.js.map +1 -1
- package/components/avatar/themes/shared/avatar.indigo.css.js +1 -1
- package/components/avatar/themes/shared/avatar.indigo.css.js.map +1 -1
- package/components/badge/themes/shared/badge.indigo.css.js +3 -0
- package/components/badge/themes/shared/badge.indigo.css.js.map +1 -0
- package/components/badge/themes/themes.js +3 -2
- package/components/badge/themes/themes.js.map +1 -1
- package/components/button/themes/button/dark/button.bootstrap.css.js +1 -1
- package/components/button/themes/button/dark/button.bootstrap.css.js.map +1 -1
- package/components/button/themes/button/dark/button.fluent.css.js +1 -1
- package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
- package/components/button/themes/button/dark/button.indigo.css.js +1 -1
- package/components/button/themes/button/dark/button.indigo.css.js.map +1 -1
- package/components/button/themes/button/dark/button.material.css.js +1 -1
- package/components/button/themes/button/dark/button.material.css.js.map +1 -1
- package/components/button/themes/button/light/button.bootstrap.css.js +1 -1
- package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
- package/components/button/themes/button/light/button.fluent.css.js +1 -1
- package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
- package/components/button/themes/button/light/button.indigo.css.js +1 -1
- package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
- package/components/button/themes/button/light/button.material.css.js +1 -1
- package/components/button/themes/button/light/button.material.css.js.map +1 -1
- package/components/button/themes/button/light/button.shared.css.js +1 -1
- package/components/button/themes/button/light/button.shared.css.js.map +1 -1
- package/components/button/themes/button/shared/button.common.css.js +1 -1
- package/components/button/themes/button/shared/button.common.css.js.map +1 -1
- package/components/button/themes/button/shared/button.indigo.css.js +1 -1
- package/components/button/themes/button/shared/button.indigo.css.js.map +1 -1
- package/components/button/themes/icon-button/dark/icon-button.indigo.css.js +1 -1
- package/components/button/themes/icon-button/dark/icon-button.indigo.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.indigo.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
- package/components/button/themes/icon-button/shared/icon-button.indigo.css.js +1 -1
- package/components/button/themes/icon-button/shared/icon-button.indigo.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.bootstrap.css.js +1 -1
- package/components/button-group/themes/dark/button-group.bootstrap.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.fluent.css.js +1 -1
- package/components/button-group/themes/dark/button-group.fluent.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.indigo.css.js +1 -1
- package/components/button-group/themes/dark/button-group.indigo.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.material.css.js +1 -1
- package/components/button-group/themes/dark/button-group.material.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.shared.css.js +1 -1
- package/components/button-group/themes/dark/button-group.shared.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.bootstrap.css.js +1 -1
- package/components/button-group/themes/light/button-group.bootstrap.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.fluent.css.js +1 -1
- package/components/button-group/themes/light/button-group.fluent.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.indigo.css.js +1 -1
- package/components/button-group/themes/light/button-group.indigo.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.material.css.js +1 -1
- package/components/button-group/themes/light/button-group.material.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.shared.css.js +1 -1
- package/components/button-group/themes/light/button-group.shared.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.common.css.js +1 -1
- package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
- package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
- package/components/card/themes/actions.js +7 -0
- package/components/card/themes/actions.js.map +1 -1
- package/components/card/themes/card.actions.base.css.js +1 -1
- package/components/card/themes/card.actions.base.css.js.map +1 -1
- package/components/card/themes/card.content.base.css.js +1 -1
- package/components/card/themes/card.content.base.css.js.map +1 -1
- package/components/card/themes/container.js +7 -5
- package/components/card/themes/container.js.map +1 -1
- package/components/card/themes/content.js +2 -24
- package/components/card/themes/content.js.map +1 -1
- package/components/card/themes/dark/card.bootstrap.css.js +1 -1
- package/components/card/themes/dark/card.bootstrap.css.js.map +1 -1
- package/components/card/themes/dark/card.fluent.css.js +1 -1
- package/components/card/themes/dark/card.fluent.css.js.map +1 -1
- package/components/card/themes/dark/card.indigo.css.js +1 -1
- package/components/card/themes/dark/card.indigo.css.js.map +1 -1
- package/components/card/themes/dark/card.material.css.js +1 -1
- package/components/card/themes/dark/card.material.css.js.map +1 -1
- package/components/card/themes/dark/card.shared.css.js +3 -0
- package/components/card/themes/dark/card.shared.css.js.map +1 -0
- package/components/card/themes/header.js +7 -16
- package/components/card/themes/header.js.map +1 -1
- package/components/card/themes/light/container/card.indigo.css.js +1 -1
- package/components/card/themes/light/container/card.indigo.css.js.map +1 -1
- package/components/card/themes/shared/actions/card.actions.indigo.css.js +3 -0
- package/components/card/themes/shared/actions/card.actions.indigo.css.js.map +1 -0
- package/components/card/themes/shared/container/card.indigo.css.js +3 -0
- package/components/card/themes/shared/container/card.indigo.css.js.map +1 -0
- package/components/card/themes/shared/header/card.header.indigo.css.js +3 -0
- package/components/card/themes/shared/header/card.header.indigo.css.js.map +1 -0
- package/components/checkbox/checkbox-base.d.ts +7 -3
- package/components/checkbox/checkbox-base.js +27 -10
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/dark/switch/switch.indigo.css.js +1 -1
- package/components/checkbox/themes/dark/switch/switch.indigo.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js.map +1 -1
- package/components/checkbox/themes/light/switch/switch.indigo.css.js +1 -1
- package/components/checkbox/themes/light/switch/switch.indigo.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
- package/components/combo/themes/dark/combo.indigo.css.js +1 -1
- package/components/combo/themes/dark/combo.indigo.css.js.map +1 -1
- package/components/combo/themes/light/combo.indigo.css.js +1 -1
- package/components/combo/themes/light/combo.indigo.css.js.map +1 -1
- package/components/common/mixins/combo-box.js +1 -1
- package/components/common/mixins/combo-box.js.map +1 -1
- package/components/common/mixins/form-associated.js +5 -9
- package/components/common/mixins/form-associated.js.map +1 -1
- package/components/common/util.d.ts +2 -0
- package/components/common/util.js +9 -0
- package/components/common/util.js.map +1 -1
- package/components/date-time-input/date-time-input.js +5 -4
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/dialog/dialog.d.ts +7 -0
- package/components/dialog/dialog.js +16 -3
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/dark/dialog.indigo.css.js +1 -1
- package/components/dialog/themes/dark/dialog.indigo.css.js.map +1 -1
- package/components/dialog/themes/dialog.base.css.js +1 -1
- package/components/dialog/themes/dialog.base.css.js.map +1 -1
- package/components/dialog/themes/light/dialog.indigo.css.js +1 -1
- package/components/dialog/themes/light/dialog.indigo.css.js.map +1 -1
- package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
- package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
- package/components/dropdown/dropdown.js +3 -3
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
- package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown.indigo.css.js +1 -1
- package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
- package/components/expansion-panel/themes/dark/expansion-panel.bootstrap.css.js +1 -1
- package/components/expansion-panel/themes/dark/expansion-panel.bootstrap.css.js.map +1 -1
- package/components/expansion-panel/themes/dark/expansion-panel.fluent.css.js +1 -1
- package/components/expansion-panel/themes/dark/expansion-panel.fluent.css.js.map +1 -1
- package/components/expansion-panel/themes/dark/expansion-panel.indigo.css.js +1 -1
- package/components/expansion-panel/themes/dark/expansion-panel.indigo.css.js.map +1 -1
- package/components/expansion-panel/themes/dark/expansion-panel.material.css.js +1 -1
- package/components/expansion-panel/themes/dark/expansion-panel.material.css.js.map +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js.map +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js.map +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.shared.css.js +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.shared.css.js.map +1 -1
- package/components/expansion-panel/themes/shared/expansion-panel.common.css.js +1 -1
- package/components/expansion-panel/themes/shared/expansion-panel.common.css.js.map +1 -1
- package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js +1 -1
- package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js.map +1 -1
- package/components/icon/themes/dark/icon.indigo.css.js +1 -1
- package/components/icon/themes/dark/icon.indigo.css.js.map +1 -1
- package/components/icon/themes/light/icon.indigo.css.js +1 -1
- package/components/icon/themes/light/icon.indigo.css.js.map +1 -1
- package/components/input/themes/dark/input.indigo.css.js +1 -1
- package/components/input/themes/dark/input.indigo.css.js.map +1 -1
- package/components/input/themes/light/input.indigo.css.js +1 -1
- package/components/input/themes/light/input.indigo.css.js.map +1 -1
- package/components/input/themes/light/input.shared.css.js +1 -1
- package/components/input/themes/light/input.shared.css.js.map +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/shared/input.common.css.js +1 -1
- package/components/input/themes/shared/input.common.css.js.map +1 -1
- package/components/input/themes/shared/input.fluent.css.js +1 -1
- package/components/input/themes/shared/input.fluent.css.js.map +1 -1
- package/components/input/themes/shared/input.indigo.css.js +1 -1
- package/components/input/themes/shared/input.indigo.css.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/radio/radio.d.ts +7 -3
- package/components/radio/radio.js +25 -14
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/dark/radio.bootstrap.css.js +1 -1
- package/components/radio/themes/dark/radio.bootstrap.css.js.map +1 -1
- package/components/radio/themes/dark/radio.fluent.css.js +1 -1
- package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
- package/components/radio/themes/dark/radio.indigo.css.js +1 -1
- package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
- package/components/radio/themes/dark/radio.material.css.js +1 -1
- package/components/radio/themes/dark/radio.material.css.js.map +1 -1
- package/components/radio/themes/light/radio.bootstrap.css.js +1 -1
- package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
- package/components/radio/themes/light/radio.indigo.css.js +1 -1
- package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
- package/components/radio/themes/light/radio.shared.css.js +1 -1
- package/components/radio/themes/light/radio.shared.css.js.map +1 -1
- package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
- package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
- package/components/radio/themes/shared/radio.indigo.css.js +1 -1
- package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
- package/components/radio/utils.js +1 -1
- package/components/radio/utils.js.map +1 -1
- package/components/radio-group/radio-group.indigo.css.js +3 -0
- package/components/radio-group/radio-group.indigo.css.js.map +1 -0
- package/components/radio-group/radio-group.js +5 -1
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/select/select.js +3 -3
- package/components/select/select.js.map +1 -1
- package/components/select/themes/dark/select.indigo.css.js +1 -1
- package/components/select/themes/dark/select.indigo.css.js.map +1 -1
- package/components/select/themes/light/select.indigo.css.js +1 -1
- package/components/select/themes/light/select.indigo.css.js.map +1 -1
- package/components/slider/themes/slider.base.css.js +1 -1
- package/components/slider/themes/slider.base.css.js.map +1 -1
- package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
- package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
- package/components/snackbar/themes/light/snackbar.indigo.css.js +1 -1
- package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -1
- package/components/snackbar/themes/shared/snackbar.indigo.css.js +1 -1
- package/components/snackbar/themes/shared/snackbar.indigo.css.js.map +1 -1
- package/components/snackbar/themes/snackbar.base.css.js +1 -1
- package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
- package/components/stepper/themes/step/step.base.css.js +1 -1
- package/components/stepper/themes/step/step.base.css.js.map +1 -1
- package/components/textarea/themes/dark/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/dark/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/light/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/light/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/light/textarea.shared.css.js +1 -1
- package/components/textarea/themes/light/textarea.shared.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.common.css.js +1 -1
- package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/textarea.base.css.js +1 -1
- package/components/textarea/themes/textarea.base.css.js.map +1 -1
- package/components/tree/tree-item.js +5 -4
- package/components/tree/tree-item.js.map +1 -1
- package/custom-elements.json +465 -280
- package/package.json +1 -1
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/light/bootstrap.css +1 -1
- package/themes/light/fluent.css +1 -1
- package/themes/light/indigo.css +1 -1
- package/components/card/themes/light/content/card.content.bootstrap.css.js +0 -3
- package/components/card/themes/light/content/card.content.bootstrap.css.js.map +0 -1
- package/components/card/themes/light/content/card.content.fluent.css.js +0 -3
- package/components/card/themes/light/content/card.content.fluent.css.js.map +0 -1
- package/components/card/themes/light/content/card.content.indigo.css.js +0 -3
- package/components/card/themes/light/content/card.content.indigo.css.js.map +0 -1
- package/components/card/themes/light/content/card.content.material.css.js +0 -3
- package/components/card/themes/light/content/card.content.material.css.js.map +0 -1
- package/components/card/themes/light/header/card.header.bootstrap.css.js +0 -3
- package/components/card/themes/light/header/card.header.bootstrap.css.js.map +0 -1
- package/components/card/themes/light/header/card.header.fluent.css.d.ts +0 -1
- package/components/card/themes/light/header/card.header.fluent.css.js +0 -3
- package/components/card/themes/light/header/card.header.fluent.css.js.map +0 -1
- package/components/card/themes/light/header/card.header.indigo.css.js +0 -3
- package/components/card/themes/light/header/card.header.indigo.css.js.map +0 -1
- package/components/card/themes/light/header/card.header.material.css.d.ts +0 -1
- package/components/card/themes/light/header/card.header.material.css.js +0 -3
- package/components/card/themes/light/header/card.header.material.css.js.map +0 -1
- /package/components/{card/themes/light/content/card.content.bootstrap.css.d.ts → badge/themes/shared/badge.indigo.css.d.ts} +0 -0
- /package/components/card/themes/{light/content/card.content.fluent.css.d.ts → dark/card.shared.css.d.ts} +0 -0
- /package/components/card/themes/{light/content/card.content.indigo.css.d.ts → shared/actions/card.actions.indigo.css.d.ts} +0 -0
- /package/components/card/themes/{light/content/card.content.material.css.d.ts → shared/container/card.indigo.css.d.ts} +0 -0
- /package/components/card/themes/{light → shared}/header/card.header.indigo.css.d.ts +0 -0
- /package/components/{card/themes/light/header/card.header.bootstrap.css.d.ts → radio-group/radio-group.indigo.css.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-associated.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/form-associated.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport type { Constructor } from './constructor';\nimport type { Validator } from '../validators.js';\n\nexport declare class FormAssociatedElementInterface {\n public static readonly formAssociated: boolean;\n\n private __internals: ElementInternals;\n protected validators: Validator[];\n protected _disabled: boolean;\n protected _invalid: boolean;\n protected _dirty: boolean;\n\n /**\n * The default value of the control at \"creation\" time.\n *\n * @remarks\n * This is set by default on `connectedCallback` through the `setDefaultValue` call.\n * It expects the component to have either a `checked` or a `value` property and binds it to the initial value of the\n * respective property.\n *\n * In use-cases where additional customization is required, make sure to override the `setDefaultValue` method.\n */\n protected _defaultValue: unknown;\n\n /**\n * Applies the {@link FormAssociatedElementInterface.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n *\n * Usually, it should be called after {@link FormAssociatedElementInterface.updateValidity | `updateValidity()`}\n */\n protected setInvalidState(): void;\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected updateValidity(message?: string): void;\n\n /**\n * Saves the initial value/checked state of the control.\n *\n * Called on connectedCallback.\n */\n protected setDefaultValue(): void;\n\n /**\n * Called when the parent form is reset.\n *\n * Restores the initially bound value/checked state of the control.\n */\n protected restoreDefaultValue(): void;\n\n protected setFormValue(\n value: string | File | FormData | null,\n state?: string | File | FormData | null | undefined\n ): void;\n protected setValidity(\n flags?: ValidityStateFlags | undefined,\n message?: string | undefined,\n anchor?: HTMLElement | undefined\n ): void;\n\n protected formResetCallback(): void;\n protected formDisabledCallback(state: boolean): void;\n protected formStateRestoreCallback(\n state: string | FormData | File,\n mode: 'autocomplete' | 'restore'\n ): void;\n\n /**\n * The disabled state of the component\n * @attr [disabled=false]\n */\n public disabled: boolean;\n\n /**\n * Control the validity of the control.\n * @attr\n */\n public invalid: boolean;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n public name: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null;\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState;\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string;\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean;\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity(): boolean;\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity(): boolean;\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string): void;\n}\n\n/**\n * Turns the passed class element into a Form Associated Custom Element.\n */\nexport function FormAssociatedMixin<T extends Constructor<LitElement>>(\n superClass: T\n) {\n class FormAssociatedElement extends superClass {\n public static readonly formAssociated = true;\n\n private __internals: ElementInternals;\n protected validators: Validator[] = [];\n protected _disabled = false;\n protected _invalid = false;\n protected _dirty = false;\n\n /**\n * The default value of the control at \"creation\" time.\n *\n * @remarks\n * This is set by default on `connectedCallback` through the `setDefaultValue` call.\n * It expects the component to have either a `checked` or a `value` property and binds it to the initial value of the\n * respective property.\n *\n * In use-cases where additional customization is required, make sure to override the `setDefaultValue` method.\n */\n protected _defaultValue: unknown;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n @property({ reflect: true })\n public name!: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this.__internals.form;\n }\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState {\n return this.__internals.validity;\n }\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string {\n return this.__internals.validationMessage;\n }\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean {\n return this.__internals.willValidate;\n }\n\n /**\n * The disabled state of the component\n * @attr [disabled=false]\n */\n @property({ type: Boolean, reflect: true })\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n const prev = this._disabled;\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n this.requestUpdate('disabled', prev);\n }\n\n /**\n * Control the validity of the control.\n * @attr [invalid=false]\n */\n @property({ type: Boolean, reflect: true })\n public get invalid(): boolean {\n return this._invalid;\n }\n\n public set invalid(value: boolean) {\n const prev = this._invalid;\n this._invalid = value;\n this.toggleAttribute('invalid', Boolean(this._invalid));\n this.requestUpdate('invalid', prev);\n }\n\n constructor(...args: any[]) {\n super(args);\n this.__internals = this.attachInternals();\n this.addEventListener('invalid', this.handleInvalid);\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._dirty = false;\n this.setDefaultValue();\n }\n\n /**\n * Saves the initial value/checked state of the control.\n *\n * Called on connectedCallback.\n */\n protected setDefaultValue() {\n if ('checked' in this) {\n this._defaultValue = this.checked;\n } else if ('value' in this) {\n this._defaultValue = this.value;\n }\n }\n\n /**\n * Called when the parent form is reset.\n *\n * Restores the initially bound value/checked state of the control.\n */\n protected restoreDefaultValue() {\n if ('checked' in this) {\n this.checked = this._defaultValue;\n } else if ('value' in this) {\n this.value = this._defaultValue;\n }\n }\n\n protected handleInvalid = (event: Event) => {\n event.preventDefault();\n this.invalid = true;\n };\n\n protected setFormValue(\n value: string | File | FormData | null,\n state?: string | File | FormData | null | undefined\n ) {\n this.__internals.setFormValue(value, state || value);\n }\n\n protected setValidity(\n flags?: ValidityStateFlags | undefined,\n message?: string | undefined,\n anchor?: HTMLElement | undefined\n ) {\n this.__internals.setValidity(flags, message, anchor);\n }\n\n protected formResetCallback() {\n this.restoreDefaultValue();\n this._dirty = false;\n\n // Apply any changes happening during form reset synchronously\n this.performUpdate();\n\n this.invalid = false;\n }\n\n protected formDisabledCallback(state: boolean) {\n this._disabled = state;\n this.requestUpdate();\n }\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected updateValidity(message?: string) {\n const validity: ValidityStateFlags = {};\n let validationMessage = '';\n\n for (const validator of this.validators) {\n const isValid = validator.isValid(this);\n\n validity[validator.key] = !isValid;\n\n if (!isValid) {\n validationMessage =\n typeof validator.message === 'function'\n ? validator.message(this)\n : validator.message;\n }\n }\n\n if (message) {\n validity.customError = true;\n validationMessage = message;\n }\n\n this.__internals.setValidity(validity, validationMessage);\n }\n\n /**\n * Applies the {@link FormAssociatedElementInterface.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n *\n * Usually, it should be called after {@link FormAssociatedElementInterface.updateValidity | `updateValidity()`}\n */\n protected setInvalidState() {\n if (this.hasUpdated || this._dirty) {\n this.invalid = !this.checkValidity();\n }\n }\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity() {\n return this.__internals.reportValidity();\n }\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity() {\n return this.__internals.checkValidity();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.updateValidity(message);\n this.invalid = !this.checkValidity();\n }\n }\n\n return FormAssociatedElement as unknown as Constructor<FormAssociatedElementInterface> &\n T;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"form-associated.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/form-associated.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport type { Constructor } from './constructor';\nimport type { Validator } from '../validators.js';\n\nexport declare class FormAssociatedElementInterface {\n public static readonly formAssociated: boolean;\n\n private __internals: ElementInternals;\n protected validators: Validator[];\n protected _disabled: boolean;\n protected _invalid: boolean;\n protected _dirty: boolean;\n\n /**\n * The default value of the control at \"creation\" time.\n *\n * @remarks\n * This is set by default on `connectedCallback` through the `setDefaultValue` call.\n * It expects the component to have either a `checked` or a `value` property and binds it to the initial value of the\n * respective property.\n *\n * In use-cases where additional customization is required, make sure to override the `setDefaultValue` method.\n */\n protected _defaultValue: unknown;\n\n /**\n * Applies the {@link FormAssociatedElementInterface.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n *\n * Usually, it should be called after {@link FormAssociatedElementInterface.updateValidity | `updateValidity()`}\n */\n protected setInvalidState(): void;\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected updateValidity(message?: string): void;\n\n /**\n * Saves the initial value/checked state of the control.\n *\n * Called on connectedCallback.\n */\n protected setDefaultValue(): void;\n\n /**\n * Called when the parent form is reset.\n *\n * Restores the initially bound value/checked state of the control.\n */\n protected restoreDefaultValue(): void;\n\n protected setFormValue(\n value: string | File | FormData | null,\n state?: string | File | FormData | null | undefined\n ): void;\n protected setValidity(\n flags?: ValidityStateFlags | undefined,\n message?: string | undefined,\n anchor?: HTMLElement | undefined\n ): void;\n\n protected formResetCallback(): void;\n protected formDisabledCallback(state: boolean): void;\n protected formStateRestoreCallback(\n state: string | FormData | File,\n mode: 'autocomplete' | 'restore'\n ): void;\n\n /**\n * The disabled state of the component\n * @attr [disabled=false]\n */\n public disabled: boolean;\n\n /**\n * Control the validity of the control.\n * @attr\n */\n public invalid: boolean;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n public name: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null;\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState;\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string;\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean;\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity(): boolean;\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity(): boolean;\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string): void;\n}\n\n/**\n * Turns the passed class element into a Form Associated Custom Element.\n */\nexport function FormAssociatedMixin<T extends Constructor<LitElement>>(\n superClass: T\n) {\n class FormAssociatedElement extends superClass {\n public static readonly formAssociated = true;\n\n private __internals: ElementInternals;\n protected validators: Validator[] = [];\n protected _disabled = false;\n protected _invalid = false;\n protected _dirty = false;\n\n /**\n * The default value of the control at \"creation\" time.\n *\n * @remarks\n * This is set by default on `connectedCallback` through the `setDefaultValue` call.\n * It expects the component to have either a `checked` or a `value` property and binds it to the initial value of the\n * respective property.\n *\n * In use-cases where additional customization is required, make sure to override the `setDefaultValue` method.\n */\n protected _defaultValue: unknown;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n @property({ reflect: true })\n public name!: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this.__internals.form;\n }\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState {\n return this.__internals.validity;\n }\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string {\n return this.__internals.validationMessage;\n }\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean {\n return this.__internals.willValidate;\n }\n\n /**\n * The disabled state of the component\n *\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set disabled(value: boolean) {\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Control the validity of the control.\n *\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set invalid(value: boolean) {\n this._invalid = value;\n this.toggleAttribute('invalid', Boolean(this._invalid));\n }\n\n public get invalid(): boolean {\n return this._invalid;\n }\n\n constructor(...args: any[]) {\n super(args);\n this.__internals = this.attachInternals();\n this.addEventListener('invalid', this.handleInvalid);\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._dirty = false;\n this.setDefaultValue();\n }\n\n /**\n * Saves the initial value/checked state of the control.\n *\n * Called on connectedCallback.\n */\n protected setDefaultValue() {\n if ('checked' in this) {\n this._defaultValue = this.checked;\n } else if ('value' in this) {\n this._defaultValue = this.value;\n }\n }\n\n /**\n * Called when the parent form is reset.\n *\n * Restores the initially bound value/checked state of the control.\n */\n protected restoreDefaultValue() {\n if ('checked' in this) {\n this.checked = this._defaultValue;\n } else if ('value' in this) {\n this.value = this._defaultValue;\n }\n }\n\n protected handleInvalid = (event: Event) => {\n event.preventDefault();\n this.invalid = true;\n };\n\n protected setFormValue(\n value: string | File | FormData | null,\n state?: string | File | FormData | null | undefined\n ) {\n this.__internals.setFormValue(value, state || value);\n }\n\n protected setValidity(\n flags?: ValidityStateFlags | undefined,\n message?: string | undefined,\n anchor?: HTMLElement | undefined\n ) {\n this.__internals.setValidity(flags, message, anchor);\n }\n\n protected formResetCallback() {\n this.restoreDefaultValue();\n this._dirty = false;\n\n // Apply any changes happening during form reset synchronously\n this.performUpdate();\n\n this.invalid = false;\n }\n\n protected formDisabledCallback(state: boolean) {\n this._disabled = state;\n this.requestUpdate();\n }\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected updateValidity(message?: string) {\n const validity: ValidityStateFlags = {};\n let validationMessage = '';\n\n for (const validator of this.validators) {\n const isValid = validator.isValid(this);\n\n validity[validator.key] = !isValid;\n\n if (!isValid) {\n validationMessage =\n typeof validator.message === 'function'\n ? validator.message(this)\n : validator.message;\n }\n }\n\n if (message) {\n validity.customError = true;\n validationMessage = message;\n }\n\n this.__internals.setValidity(validity, validationMessage);\n }\n\n /**\n * Applies the {@link FormAssociatedElementInterface.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n *\n * Usually, it should be called after {@link FormAssociatedElementInterface.updateValidity | `updateValidity()`}\n */\n protected setInvalidState() {\n if (this.hasUpdated || this._dirty) {\n this.invalid = !this.checkValidity();\n }\n }\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity() {\n return this.__internals.reportValidity();\n }\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity() {\n return this.__internals.checkValidity();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.updateValidity(message);\n this.invalid = !this.checkValidity();\n }\n }\n\n return FormAssociatedElement as unknown as Constructor<FormAssociatedElementInterface> &\n T;\n}\n"]}
|
|
@@ -62,4 +62,6 @@ export declare function isDefined<T = unknown>(value: T): boolean;
|
|
|
62
62
|
export declare function iterNodes<T = Node>(root: Node, whatToShow?: keyof typeof NodeFilter, filter?: (node: T) => boolean): Generator<T>;
|
|
63
63
|
export declare function getElementByIdFromRoot(root: HTMLElement, id: string): HTMLElement | null;
|
|
64
64
|
export declare function isElement(node: unknown): node is Element;
|
|
65
|
+
export declare function getElementsFromEventPath<T extends Element>(event: Event): T[];
|
|
66
|
+
export declare function findElementFromEventPath<T extends Element>(predicate: string | ((element: Element) => boolean), event: Event): T | undefined;
|
|
65
67
|
export declare function groupBy<T>(array: T[], key: keyof T | ((item: T) => any)): Record<string, T[]>;
|
|
@@ -76,6 +76,15 @@ export function getElementByIdFromRoot(root, id) {
|
|
|
76
76
|
export function isElement(node) {
|
|
77
77
|
return node instanceof Node && node.nodeType === Node.ELEMENT_NODE;
|
|
78
78
|
}
|
|
79
|
+
export function getElementsFromEventPath(event) {
|
|
80
|
+
return event.composedPath().filter((item) => isElement(item));
|
|
81
|
+
}
|
|
82
|
+
export function findElementFromEventPath(predicate, event) {
|
|
83
|
+
const func = typeof predicate === 'string'
|
|
84
|
+
? (e) => e.matches(predicate)
|
|
85
|
+
: (e) => predicate(e);
|
|
86
|
+
return getElementsFromEventPath(event).find(func);
|
|
87
|
+
}
|
|
79
88
|
export function groupBy(array, key) {
|
|
80
89
|
const result = {};
|
|
81
90
|
const _get = typeof key === 'function' ? key : (item) => item[key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/components/common/util.ts"],"names":[],"mappings":"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","sourcesContent":["export interface PartNameInfo {\n readonly [name: string]: string | boolean | number;\n}\n\nexport const partNameMap = (partNameInfo: PartNameInfo) => {\n return Object.keys(partNameInfo)\n .filter((key) => partNameInfo[key])\n .join(' ');\n};\n\nexport const asPercent = (part: number, whole: number) => (part / whole) * 100;\n\nexport const clamp = (number: number, min: number, max: number) =>\n Math.max(min, Math.min(number, max));\n\n/**\n *\n * Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the\n * parent doesn't have to be positioned relative or absolute.\n *\n * Work around for the following issues in Chromium based browsers:\n *\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1330819\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1334556\n *\n */\nexport function getOffset(element: HTMLElement, parent: HTMLElement) {\n const { top, left, bottom, right } = element.getBoundingClientRect();\n const {\n top: pTop,\n left: pLeft,\n bottom: pBottom,\n right: pRight,\n } = parent.getBoundingClientRect();\n\n return {\n top: Math.round(top - pTop),\n left: Math.round(left - pLeft),\n right: Math.round(right - pRight),\n bottom: Math.round(bottom - pBottom),\n };\n}\n\nexport function createCounter() {\n let i = 0;\n return function () {\n i++;\n return i;\n };\n}\n\nexport function isLTR(element: HTMLElement) {\n return getComputedStyle(element).getPropertyValue('direction') === 'ltr';\n}\n\n/**\n * Builds a string from format specifiers and replacement parameters.\n *\n * @example\n * ```typescript\n * format('{0} says \"{1}\".', 'John', 'Hello'); // 'John says \"Hello\".'\n * ```\n */\nexport function format(template: string, ...params: string[]): string {\n return template.replace(/{(\\d+)}/g, function (match: string, index: number) {\n if (index >= params.length) {\n return match;\n }\n\n const value: string = params[index];\n if (typeof value !== 'number' && !value) {\n return '';\n }\n return value;\n });\n}\n\n/**\n * Parse the passed `value` as a number or return the `fallback` if it can't be done.\n *\n * @example\n * ```typescript\n * asNumber('5'); // 5\n * asNumber('3.14'); // 3.14\n * asNumber('five'); // 0\n * asNUmber('five', 5); // 5\n * ```\n */\nexport function asNumber(value: unknown, fallback = 0) {\n const parsed = parseFloat(value as string);\n return isNaN(parsed) ? fallback : parsed;\n}\n\n/**\n * Returns the value wrapped between the min and max bounds.\n *\n * If the value is greater than max, returns the min and vice-versa.\n * If the value is between the bounds, it is returned unchanged.\n *\n * @example\n * ```typescript\n * wrap(1, 4, 2); // 2\n * wrap(1, 4, 5); // 1\n * wrap(1, 4, -1); // 4\n * ```\n */\nexport function wrap(min: number, max: number, value: number) {\n if (value < min) {\n return max;\n } else if (value > max) {\n return min;\n }\n\n return value;\n}\n\nexport function isDefined<T = unknown>(value: T) {\n return value !== undefined;\n}\n\nexport function* iterNodes<T = Node>(\n root: Node,\n whatToShow?: keyof typeof NodeFilter,\n filter?: (node: T) => boolean\n): Generator<T> {\n if (!isDefined(globalThis.document)) {\n return;\n }\n\n const iter = globalThis.document.createTreeWalker(\n root,\n NodeFilter[whatToShow ?? 'SHOW_ALL']\n );\n\n let node: T;\n\n while ((node = iter.nextNode() as T)) {\n if (filter) {\n if (filter(node)) {\n yield node;\n }\n } else {\n yield node;\n }\n }\n}\n\nexport function getElementByIdFromRoot(root: HTMLElement, id: string) {\n return (root.getRootNode() as Document | ShadowRoot).getElementById(id);\n}\n\nexport function isElement(node: unknown): node is Element {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function groupBy<T>(array: T[], key: keyof T | ((item: T) => any)) {\n const result: Record<string, T[]> = {};\n const _get = typeof key === 'function' ? key : (item: T) => item[key];\n\n for (const item of array) {\n const category = _get(item);\n const group = result[category];\n\n Array.isArray(group) ? group.push(item) : (result[category] = [item]);\n }\n\n return result;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/components/common/util.ts"],"names":[],"mappings":"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","sourcesContent":["export interface PartNameInfo {\n readonly [name: string]: string | boolean | number;\n}\n\nexport const partNameMap = (partNameInfo: PartNameInfo) => {\n return Object.keys(partNameInfo)\n .filter((key) => partNameInfo[key])\n .join(' ');\n};\n\nexport const asPercent = (part: number, whole: number) => (part / whole) * 100;\n\nexport const clamp = (number: number, min: number, max: number) =>\n Math.max(min, Math.min(number, max));\n\n/**\n *\n * Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the\n * parent doesn't have to be positioned relative or absolute.\n *\n * Work around for the following issues in Chromium based browsers:\n *\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1330819\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1334556\n *\n */\nexport function getOffset(element: HTMLElement, parent: HTMLElement) {\n const { top, left, bottom, right } = element.getBoundingClientRect();\n const {\n top: pTop,\n left: pLeft,\n bottom: pBottom,\n right: pRight,\n } = parent.getBoundingClientRect();\n\n return {\n top: Math.round(top - pTop),\n left: Math.round(left - pLeft),\n right: Math.round(right - pRight),\n bottom: Math.round(bottom - pBottom),\n };\n}\n\nexport function createCounter() {\n let i = 0;\n return function () {\n i++;\n return i;\n };\n}\n\nexport function isLTR(element: HTMLElement) {\n return getComputedStyle(element).getPropertyValue('direction') === 'ltr';\n}\n\n/**\n * Builds a string from format specifiers and replacement parameters.\n *\n * @example\n * ```typescript\n * format('{0} says \"{1}\".', 'John', 'Hello'); // 'John says \"Hello\".'\n * ```\n */\nexport function format(template: string, ...params: string[]): string {\n return template.replace(/{(\\d+)}/g, function (match: string, index: number) {\n if (index >= params.length) {\n return match;\n }\n\n const value: string = params[index];\n if (typeof value !== 'number' && !value) {\n return '';\n }\n return value;\n });\n}\n\n/**\n * Parse the passed `value` as a number or return the `fallback` if it can't be done.\n *\n * @example\n * ```typescript\n * asNumber('5'); // 5\n * asNumber('3.14'); // 3.14\n * asNumber('five'); // 0\n * asNUmber('five', 5); // 5\n * ```\n */\nexport function asNumber(value: unknown, fallback = 0) {\n const parsed = parseFloat(value as string);\n return isNaN(parsed) ? fallback : parsed;\n}\n\n/**\n * Returns the value wrapped between the min and max bounds.\n *\n * If the value is greater than max, returns the min and vice-versa.\n * If the value is between the bounds, it is returned unchanged.\n *\n * @example\n * ```typescript\n * wrap(1, 4, 2); // 2\n * wrap(1, 4, 5); // 1\n * wrap(1, 4, -1); // 4\n * ```\n */\nexport function wrap(min: number, max: number, value: number) {\n if (value < min) {\n return max;\n } else if (value > max) {\n return min;\n }\n\n return value;\n}\n\nexport function isDefined<T = unknown>(value: T) {\n return value !== undefined;\n}\n\nexport function* iterNodes<T = Node>(\n root: Node,\n whatToShow?: keyof typeof NodeFilter,\n filter?: (node: T) => boolean\n): Generator<T> {\n if (!isDefined(globalThis.document)) {\n return;\n }\n\n const iter = globalThis.document.createTreeWalker(\n root,\n NodeFilter[whatToShow ?? 'SHOW_ALL']\n );\n\n let node: T;\n\n while ((node = iter.nextNode() as T)) {\n if (filter) {\n if (filter(node)) {\n yield node;\n }\n } else {\n yield node;\n }\n }\n}\n\nexport function getElementByIdFromRoot(root: HTMLElement, id: string) {\n return (root.getRootNode() as Document | ShadowRoot).getElementById(id);\n}\n\nexport function isElement(node: unknown): node is Element {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function getElementsFromEventPath<T extends Element>(event: Event) {\n return event.composedPath().filter((item) => isElement(item)) as T[];\n}\n\nexport function findElementFromEventPath<T extends Element>(\n predicate: string | ((element: Element) => boolean),\n event: Event\n) {\n const func =\n typeof predicate === 'string'\n ? (e: Element) => e.matches(predicate)\n : (e: Element) => predicate(e);\n\n return getElementsFromEventPath(event).find(func) as T | undefined;\n}\n\nexport function groupBy<T>(array: T[], key: keyof T | ((item: T) => any)) {\n const result: Record<string, T[]> = {};\n const _get = typeof key === 'function' ? key : (item: T) => item[key];\n\n for (const item of array) {\n const category = _get(item);\n const group = result[category];\n\n Array.isArray(group) ? group.push(item) : (result[category] = [item]);\n }\n\n return result;\n}\n"]}
|
|
@@ -32,6 +32,9 @@ class IgcDateTimeInputComponent extends EventEmitterMixin(IgcMaskInputBaseCompon
|
|
|
32
32
|
if (val) {
|
|
33
33
|
this.setMask(val);
|
|
34
34
|
this._inputFormat = val;
|
|
35
|
+
if (this.value) {
|
|
36
|
+
this.updateMask();
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
get value() {
|
|
@@ -75,10 +78,8 @@ class IgcDateTimeInputComponent extends EventEmitterMixin(IgcMaskInputBaseCompon
|
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
setDisplayFormat() {
|
|
78
|
-
if (this.
|
|
79
|
-
|
|
80
|
-
this.maskedValue = DateTimeUtil.formatDate(this.value, this.locale, this.displayFormat, true);
|
|
81
|
-
}
|
|
81
|
+
if (this.value) {
|
|
82
|
+
this.updateMask();
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
promptChange() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-input.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-time-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComplexAttributeConverter, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport {\n DatePart,\n DatePartDeltas,\n DatePartInfo,\n DateParts,\n DateTimeUtil,\n} from './date-util.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport messages from '../common/localization/validation-en.js';\nimport { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { format, partNameMap } from '../common/util.js';\nimport { Validator } from '../common/validators.js';\nimport { IgcInputEventMap } from '../input/input-base.js';\nimport {\n IgcMaskInputBaseComponent,\n MaskRange,\n} from '../mask-input/mask-input-base.js';\n\nexport interface IgcDateTimeInputEventMap\n extends Omit<IgcInputEventMap, 'igcChange'> {\n igcChange: CustomEvent<Date | null>;\n}\n\nconst converter: ComplexAttributeConverter<Date | null> = {\n fromAttribute: (value: string) =>\n !value ? null : DateTimeUtil.parseIsoDate(value),\n toAttribute: (value: Date) => value.toISOString(),\n};\n\n/**\n * A date time input is an input field that lets you set and edit the date and time in a chosen input element\n * using customizable display and input formats.\n *\n * @element igc-date-time-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcFocus - Emitted when the control gains focus.\n * @fires igcBlur - Emitted when the control loses focus.\n *\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart label - The native label element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcDateTimeInputComponent extends EventEmitterMixin<\n IgcDateTimeInputEventMap,\n AbstractConstructor<IgcMaskInputBaseComponent>\n>(IgcMaskInputBaseComponent) {\n public static readonly tagName = 'igc-date-time-input';\n\n /* blazorSuppress */\n public static register() {\n registerComponent(this);\n }\n\n protected override validators: Validator<this>[] = [\n {\n key: 'valueMissing',\n message: messages.required,\n isValid: () => (this.required ? !!this.value : true),\n },\n {\n key: 'rangeUnderflow',\n message: () => format(messages.min, `${this.min}`),\n isValid: () =>\n this.min\n ? !DateTimeUtil.lessThanMinValue(\n this.value || new Date(),\n this.min,\n this.hasTimeParts,\n this.hasDateParts\n )\n : true,\n },\n {\n key: 'rangeOverflow',\n message: () => format(messages.max, `${this.max}`),\n isValid: () =>\n this.max\n ? !DateTimeUtil.greaterThanMaxValue(\n this.value || new Date(),\n this.max,\n this.hasTimeParts,\n this.hasDateParts\n )\n : true,\n },\n ];\n\n protected _defaultMask!: string;\n protected _value: Date | null = null;\n\n private _oldValue: Date | null = null;\n private _inputDateParts!: DatePartInfo[];\n private _inputFormat!: string;\n private _datePartDeltas: DatePartDeltas = {\n date: 1,\n month: 1,\n year: 1,\n hours: 1,\n minutes: 1,\n seconds: 1,\n };\n\n /**\n * The date format to apply on the input.\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public get inputFormat(): string {\n return this._inputFormat || this._defaultMask;\n }\n\n public set inputFormat(val: string) {\n if (val) {\n this.setMask(val);\n this._inputFormat = val;\n }\n }\n\n /**\n * The value of the input.\n * @attr\n */\n public get value(): Date | null {\n return this._value;\n }\n\n @property({ converter: converter })\n @blazorTwoWayBind('igcChange', 'detail')\n public set value(val: Date | null) {\n this._value = val\n ? DateTimeUtil.isValidDate(val)\n ? val\n : DateTimeUtil.parseIsoDate(val)\n : null;\n\n this.updateMask();\n this.updateFormValue();\n this.updateValidity();\n this.setInvalidState();\n }\n\n protected updateFormValue() {\n this._value\n ? this.setFormValue(this._value.toISOString())\n : this.setFormValue(null);\n }\n\n /**\n * The minimum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: converter })\n public min!: Date;\n\n /**\n * The maximum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: converter })\n public max!: Date;\n\n /**\n * The minimum value required for the input to remain valid.\n * @attr min-value\n *\n * @deprecated since v4.4.0. Use the `min` property instead.\n */\n @property({ attribute: 'min-value', converter: converter })\n public set minValue(value: Date) {\n this.min = value;\n }\n\n public get minValue() {\n return this.min;\n }\n\n /**\n * The maximum value required for the input to remain valid.\n * @attr max-value\n *\n * @deprecated since v4.4.0. Use the `max` property instead.\n */\n @property({ attribute: 'max-value', converter: converter })\n public set maxValue(value: Date) {\n this.max = value;\n }\n\n public get maxValue() {\n return this.max;\n }\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the input format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public displayFormat!: string;\n\n /**\n * Delta values used to increment or decrement each date part on step actions.\n * All values default to `1`.\n */\n @property({ attribute: false })\n public spinDelta!: DatePartDeltas;\n\n /**\n * Sets whether to loop over the currently spun segment.\n * @attr spin-loop\n */\n @property({ type: Boolean, attribute: 'spin-loop' })\n public spinLoop = true;\n\n /**\n * The locale settings used to display the value.\n * @attr\n */\n @property()\n public locale = 'en';\n\n @watch('locale', { waitUntilFirstUpdate: true })\n protected setDefaultMask(): void {\n if (!this._inputFormat) {\n this.updateDefaultMask();\n this.setMask(this._defaultMask);\n }\n\n if (this.value) {\n this.updateMask();\n }\n }\n\n @watch('displayFormat', { waitUntilFirstUpdate: true })\n protected setDisplayFormat(): void {\n if (this.displayFormat) {\n if (this.value) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value!,\n this.locale,\n this.displayFormat,\n true\n );\n }\n }\n }\n\n @watch('prompt', { waitUntilFirstUpdate: true })\n protected promptChange(): void {\n if (!this.prompt) {\n this.prompt = this.parser.prompt;\n } else {\n this.parser.prompt = this.prompt;\n }\n }\n\n @watch('min', { waitUntilFirstUpdate: true })\n @watch('max', { waitUntilFirstUpdate: true })\n protected constraintChange() {\n this.updateValidity();\n }\n\n private get hasDateParts(): boolean {\n const parts =\n this._inputDateParts ||\n DateTimeUtil.parseDateTimeFormat(this.inputFormat);\n\n return parts.some(\n (p) =>\n p.type === DateParts.Date ||\n p.type === DateParts.Month ||\n p.type === DateParts.Year\n );\n }\n\n private get hasTimeParts(): boolean {\n const parts =\n this._inputDateParts ||\n DateTimeUtil.parseDateTimeFormat(this.inputFormat);\n return parts.some(\n (p) =>\n p.type === DateParts.Hours ||\n p.type === DateParts.Minutes ||\n p.type === DateParts.Seconds\n );\n }\n\n private get targetDatePart(): DatePart | undefined {\n let result;\n\n if (this.focused) {\n const partType = this._inputDateParts.find(\n (p) =>\n p.start <= this.inputSelection.start &&\n this.inputSelection.start <= p.end &&\n p.type !== DateParts.Literal\n )?.type as string as DatePart;\n\n if (partType) {\n result = partType;\n }\n } else {\n if (this._inputDateParts.some((p) => p.type === DateParts.Date)) {\n result = DatePart.Date;\n } else if (this._inputDateParts.some((p) => p.type === DateParts.Hours)) {\n result = DatePart.Hours;\n } else {\n result = this._inputDateParts[0].type as string as DatePart;\n }\n }\n\n return result;\n }\n\n private get datePartDeltas(): DatePartDeltas {\n return Object.assign({}, this._datePartDeltas, this.spinDelta);\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: () => this.readOnly,\n bindingDefaults: { preventDefault: true },\n })\n .set([ctrlKey, ';'], () => (this.value = new Date()))\n .set(arrowUp, this.keyboardSpin.bind(this, 'up'))\n .set(arrowDown, this.keyboardSpin.bind(this, 'down'))\n .set([ctrlKey, arrowLeft], this.navigateParts.bind(this, 0))\n .set([ctrlKey, arrowRight], this.navigateParts.bind(this, 1));\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.updateDefaultMask();\n this.setMask(this.inputFormat);\n this.updateValidity();\n if (this.value) {\n this.updateMask();\n }\n }\n\n /** Increments a date/time portion. */\n public stepUp(datePart?: DatePart, delta?: number): void {\n const targetPart = datePart || this.targetDatePart;\n\n if (!targetPart) {\n return;\n }\n\n const { start, end } = this.inputSelection;\n const newValue = this.trySpinValue(targetPart, delta);\n this.value = newValue;\n this.updateComplete.then(() => this.input.setSelectionRange(start, end));\n }\n\n /** Decrements a date/time portion. */\n public stepDown(datePart?: DatePart, delta?: number): void {\n const targetPart = datePart || this.targetDatePart;\n\n if (!targetPart) {\n return;\n }\n\n const { start, end } = this.inputSelection;\n const newValue = this.trySpinValue(targetPart, delta, true);\n this.value = newValue;\n this.updateComplete.then(() => this.input.setSelectionRange(start, end));\n }\n\n /** Clears the input element of user input. */\n public clear(): void {\n this.maskedValue = '';\n this.value = null;\n }\n\n protected updateMask() {\n if (this.focused) {\n this.maskedValue = this.getMaskedValue();\n } else {\n if (!DateTimeUtil.isValidDate(this.value)) {\n this.maskedValue = '';\n return;\n }\n\n const format = this.displayFormat || this.inputFormat;\n\n if (this.displayFormat) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value,\n this.locale,\n format,\n true\n );\n } else if (this.inputFormat) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value,\n this.locale,\n format\n );\n } else {\n this.maskedValue = this.value.toLocaleString();\n }\n }\n }\n\n protected handleChange() {\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected override handleInput() {\n this.emitEvent('igcInput', { detail: this.value?.toString() });\n }\n\n protected handleDragLeave() {\n if (!this.focused) {\n this.updateMask();\n }\n }\n\n protected handleDragEnter() {\n if (!this.focused) {\n this.maskedValue = this.getMaskedValue();\n }\n }\n\n protected async updateInput(string: string, range: MaskRange) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n string,\n range.start,\n range.end\n );\n\n this.maskedValue = value;\n\n this.updateValue();\n this.requestUpdate();\n\n if (range.start !== this.inputFormat.length) {\n this.handleInput();\n }\n await this.updateComplete;\n this.input.setSelectionRange(end, end);\n }\n\n private trySpinValue(\n datePart: DatePart,\n delta?: number,\n negative = false\n ): Date {\n if (!delta) {\n // default to 1 if a delta is set to 0 or any other falsy value\n delta = this.datePartDeltas[datePart as keyof DatePartDeltas] || 1;\n }\n\n const spinValue = negative ? -Math.abs(delta) : Math.abs(delta);\n return this.spinValue(datePart, spinValue);\n }\n\n private spinValue(datePart: DatePart, delta: number): Date {\n if (!this.value || !DateTimeUtil.isValidDate(this.value)) {\n return new Date();\n }\n\n const newDate = new Date(this.value.getTime());\n let formatPart, amPmFromMask;\n switch (datePart) {\n case DatePart.Date:\n DateTimeUtil.spinDate(delta, newDate, this.spinLoop);\n break;\n case DatePart.Month:\n DateTimeUtil.spinMonth(delta, newDate, this.spinLoop);\n break;\n case DatePart.Year:\n DateTimeUtil.spinYear(delta, newDate);\n break;\n case DatePart.Hours:\n DateTimeUtil.spinHours(delta, newDate, this.spinLoop);\n break;\n case DatePart.Minutes:\n DateTimeUtil.spinMinutes(delta, newDate, this.spinLoop);\n break;\n case DatePart.Seconds:\n DateTimeUtil.spinSeconds(delta, newDate, this.spinLoop);\n break;\n case DatePart.AmPm:\n formatPart = this._inputDateParts.find(\n (dp) => dp.type === DateParts.AmPm\n );\n if (formatPart !== undefined) {\n amPmFromMask = this.maskedValue.substring(\n formatPart!.start,\n formatPart!.end\n );\n return DateTimeUtil.spinAmPm(newDate, this.value, amPmFromMask);\n }\n break;\n }\n\n return newDate;\n }\n\n private async onWheel(event: WheelEvent) {\n if (!this.focused || this.readOnly) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const { start, end } = this.inputSelection;\n event.deltaY > 0 ? this.stepDown() : this.stepUp();\n this.handleInput();\n\n await this.updateComplete;\n this.setSelectionRange(start, end);\n }\n\n private updateDefaultMask(): void {\n this._defaultMask = DateTimeUtil.getDefaultMask(this.locale);\n }\n\n private setMask(val: string): void {\n const oldFormat = this._inputDateParts?.map((p) => p.format).join('');\n this._inputDateParts = DateTimeUtil.parseDateTimeFormat(val);\n val = this._inputDateParts.map((p) => p.format).join('');\n\n this._defaultMask = val;\n\n const newMask = (val || DateTimeUtil.DEFAULT_INPUT_FORMAT).replace(\n new RegExp(/(?=[^t])[\\w]/, 'g'),\n '0'\n );\n\n this._mask =\n newMask.indexOf('tt') !== -1\n ? newMask.replace(new RegExp('tt', 'g'), 'LL')\n : newMask;\n\n this.parser.mask = this._mask;\n this.parser.prompt = this.prompt;\n\n if (!this.placeholder || oldFormat === this.placeholder) {\n this.placeholder = val;\n }\n }\n\n private parseDate(val: string) {\n if (!val) {\n return null;\n }\n\n return DateTimeUtil.parseValueFromMask(\n val,\n this._inputDateParts,\n this.prompt\n );\n }\n\n private getMaskedValue(): string {\n let mask = this.emptyMask;\n\n if (DateTimeUtil.isValidDate(this.value)) {\n for (const part of this._inputDateParts) {\n if (part.type === DateParts.Literal) {\n continue;\n }\n\n const targetValue = DateTimeUtil.getPartValue(\n part,\n part.format.length,\n this.value\n );\n\n mask = this.parser.replace(\n mask,\n targetValue,\n part.start,\n part.end\n ).value;\n }\n return mask;\n }\n\n return this.maskedValue === '' ? mask : this.maskedValue;\n }\n\n private isComplete(): boolean {\n return this.maskedValue.indexOf(this.prompt) === -1;\n }\n\n private updateValue(): void {\n if (this.isComplete()) {\n const parsedDate = this.parseDate(this.maskedValue);\n if (DateTimeUtil.isValidDate(parsedDate)) {\n this.value = parsedDate;\n } else {\n this.value = null;\n }\n } else {\n this.value = null;\n }\n }\n\n protected override _updateSetRangeTextValue() {\n this.updateValue();\n }\n\n private getNewPosition(value: string, direction = 0): number {\n const literals = this._inputDateParts.filter(\n (p) => p.type === DateParts.Literal\n );\n let cursorPos = this.selection.start;\n\n if (!direction) {\n do {\n cursorPos = cursorPos > 0 ? --cursorPos : cursorPos;\n } while (!literals.some((l) => l.end === cursorPos) && cursorPos > 0);\n return cursorPos;\n } else {\n do {\n cursorPos++;\n } while (\n !literals.some((l) => l.start === cursorPos) &&\n cursorPos < value.length\n );\n return cursorPos;\n }\n }\n\n protected override async handleFocus() {\n this.focused = true;\n this.updateMask();\n super.handleFocus();\n\n if (this.readOnly) {\n return;\n }\n\n this._oldValue = this.value;\n\n if (!this._value) {\n this.maskedValue = this.emptyMask;\n await this.updateComplete;\n this.select();\n }\n }\n\n protected override handleBlur() {\n this.focused = false;\n\n if (!this.isComplete() && this.maskedValue !== this.emptyMask) {\n const parse = this.parseDate(this.maskedValue);\n\n if (parse) {\n this.value = parse;\n } else {\n this.value = null;\n this.maskedValue = '';\n }\n } else {\n this.updateMask();\n }\n\n if (this._oldValue !== this.value) {\n this.handleChange();\n }\n this.checkValidity();\n super.handleBlur();\n }\n\n protected navigateParts(delta: number) {\n const position = this.getNewPosition(this.input.value, delta);\n this.setSelectionRange(position, position);\n }\n\n protected async keyboardSpin(direction: 'up' | 'down') {\n direction === 'up' ? this.stepUp() : this.stepDown();\n this.handleInput();\n await this.updateComplete;\n this.setSelectionRange(this.selection.start, this.selection.end);\n }\n\n protected override renderInput() {\n return html`\n <input\n type=\"text\"\n part=${partNameMap(this.resolvePartNames('input'))}\n name=${ifDefined(this.name)}\n .value=${live(this.maskedValue)}\n .placeholder=${live(this.placeholder || this.emptyMask)}\n ?readonly=${this.readOnly}\n ?disabled=${this.disabled}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @input=${super.handleInput}\n @wheel=${this.onWheel}\n @keydown=${super.handleKeydown}\n @click=${this.handleClick}\n @cut=${this.handleCut}\n @change=${this.handleChange}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-time-input': IgcDateTimeInputComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"date-time-input.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-time-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComplexAttributeConverter, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport {\n DatePart,\n DatePartDeltas,\n DatePartInfo,\n DateParts,\n DateTimeUtil,\n} from './date-util.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport messages from '../common/localization/validation-en.js';\nimport { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { format, partNameMap } from '../common/util.js';\nimport { Validator } from '../common/validators.js';\nimport { IgcInputEventMap } from '../input/input-base.js';\nimport {\n IgcMaskInputBaseComponent,\n MaskRange,\n} from '../mask-input/mask-input-base.js';\n\nexport interface IgcDateTimeInputEventMap\n extends Omit<IgcInputEventMap, 'igcChange'> {\n igcChange: CustomEvent<Date | null>;\n}\n\nconst converter: ComplexAttributeConverter<Date | null> = {\n fromAttribute: (value: string) =>\n !value ? null : DateTimeUtil.parseIsoDate(value),\n toAttribute: (value: Date) => value.toISOString(),\n};\n\n/**\n * A date time input is an input field that lets you set and edit the date and time in a chosen input element\n * using customizable display and input formats.\n *\n * @element igc-date-time-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n * @fires igcFocus - Emitted when the control gains focus.\n * @fires igcBlur - Emitted when the control loses focus.\n *\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart label - The native label element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcDateTimeInputComponent extends EventEmitterMixin<\n IgcDateTimeInputEventMap,\n AbstractConstructor<IgcMaskInputBaseComponent>\n>(IgcMaskInputBaseComponent) {\n public static readonly tagName = 'igc-date-time-input';\n\n /* blazorSuppress */\n public static register() {\n registerComponent(this);\n }\n\n protected override validators: Validator<this>[] = [\n {\n key: 'valueMissing',\n message: messages.required,\n isValid: () => (this.required ? !!this.value : true),\n },\n {\n key: 'rangeUnderflow',\n message: () => format(messages.min, `${this.min}`),\n isValid: () =>\n this.min\n ? !DateTimeUtil.lessThanMinValue(\n this.value || new Date(),\n this.min,\n this.hasTimeParts,\n this.hasDateParts\n )\n : true,\n },\n {\n key: 'rangeOverflow',\n message: () => format(messages.max, `${this.max}`),\n isValid: () =>\n this.max\n ? !DateTimeUtil.greaterThanMaxValue(\n this.value || new Date(),\n this.max,\n this.hasTimeParts,\n this.hasDateParts\n )\n : true,\n },\n ];\n\n protected _defaultMask!: string;\n protected _value: Date | null = null;\n\n private _oldValue: Date | null = null;\n private _inputDateParts!: DatePartInfo[];\n private _inputFormat!: string;\n private _datePartDeltas: DatePartDeltas = {\n date: 1,\n month: 1,\n year: 1,\n hours: 1,\n minutes: 1,\n seconds: 1,\n };\n\n /**\n * The date format to apply on the input.\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public get inputFormat(): string {\n return this._inputFormat || this._defaultMask;\n }\n\n public set inputFormat(val: string) {\n if (val) {\n this.setMask(val);\n this._inputFormat = val;\n if (this.value) {\n this.updateMask();\n }\n }\n }\n\n /**\n * The value of the input.\n * @attr\n */\n public get value(): Date | null {\n return this._value;\n }\n\n @property({ converter: converter })\n @blazorTwoWayBind('igcChange', 'detail')\n public set value(val: Date | null) {\n this._value = val\n ? DateTimeUtil.isValidDate(val)\n ? val\n : DateTimeUtil.parseIsoDate(val)\n : null;\n\n this.updateMask();\n this.updateFormValue();\n this.updateValidity();\n this.setInvalidState();\n }\n\n protected updateFormValue() {\n this._value\n ? this.setFormValue(this._value.toISOString())\n : this.setFormValue(null);\n }\n\n /**\n * The minimum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: converter })\n public min!: Date;\n\n /**\n * The maximum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: converter })\n public max!: Date;\n\n /**\n * The minimum value required for the input to remain valid.\n * @attr min-value\n *\n * @deprecated since v4.4.0. Use the `min` property instead.\n */\n @property({ attribute: 'min-value', converter: converter })\n public set minValue(value: Date) {\n this.min = value;\n }\n\n public get minValue() {\n return this.min;\n }\n\n /**\n * The maximum value required for the input to remain valid.\n * @attr max-value\n *\n * @deprecated since v4.4.0. Use the `max` property instead.\n */\n @property({ attribute: 'max-value', converter: converter })\n public set maxValue(value: Date) {\n this.max = value;\n }\n\n public get maxValue() {\n return this.max;\n }\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the input format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public displayFormat!: string;\n\n /**\n * Delta values used to increment or decrement each date part on step actions.\n * All values default to `1`.\n */\n @property({ attribute: false })\n public spinDelta!: DatePartDeltas;\n\n /**\n * Sets whether to loop over the currently spun segment.\n * @attr spin-loop\n */\n @property({ type: Boolean, attribute: 'spin-loop' })\n public spinLoop = true;\n\n /**\n * The locale settings used to display the value.\n * @attr\n */\n @property()\n public locale = 'en';\n\n @watch('locale', { waitUntilFirstUpdate: true })\n protected setDefaultMask(): void {\n if (!this._inputFormat) {\n this.updateDefaultMask();\n this.setMask(this._defaultMask);\n }\n\n if (this.value) {\n this.updateMask();\n }\n }\n\n @watch('displayFormat', { waitUntilFirstUpdate: true })\n protected setDisplayFormat(): void {\n if (this.value) {\n this.updateMask();\n }\n }\n\n @watch('prompt', { waitUntilFirstUpdate: true })\n protected promptChange(): void {\n if (!this.prompt) {\n this.prompt = this.parser.prompt;\n } else {\n this.parser.prompt = this.prompt;\n }\n }\n\n @watch('min', { waitUntilFirstUpdate: true })\n @watch('max', { waitUntilFirstUpdate: true })\n protected constraintChange() {\n this.updateValidity();\n }\n\n private get hasDateParts(): boolean {\n const parts =\n this._inputDateParts ||\n DateTimeUtil.parseDateTimeFormat(this.inputFormat);\n\n return parts.some(\n (p) =>\n p.type === DateParts.Date ||\n p.type === DateParts.Month ||\n p.type === DateParts.Year\n );\n }\n\n private get hasTimeParts(): boolean {\n const parts =\n this._inputDateParts ||\n DateTimeUtil.parseDateTimeFormat(this.inputFormat);\n return parts.some(\n (p) =>\n p.type === DateParts.Hours ||\n p.type === DateParts.Minutes ||\n p.type === DateParts.Seconds\n );\n }\n\n private get targetDatePart(): DatePart | undefined {\n let result;\n\n if (this.focused) {\n const partType = this._inputDateParts.find(\n (p) =>\n p.start <= this.inputSelection.start &&\n this.inputSelection.start <= p.end &&\n p.type !== DateParts.Literal\n )?.type as string as DatePart;\n\n if (partType) {\n result = partType;\n }\n } else {\n if (this._inputDateParts.some((p) => p.type === DateParts.Date)) {\n result = DatePart.Date;\n } else if (this._inputDateParts.some((p) => p.type === DateParts.Hours)) {\n result = DatePart.Hours;\n } else {\n result = this._inputDateParts[0].type as string as DatePart;\n }\n }\n\n return result;\n }\n\n private get datePartDeltas(): DatePartDeltas {\n return Object.assign({}, this._datePartDeltas, this.spinDelta);\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: () => this.readOnly,\n bindingDefaults: { preventDefault: true },\n })\n .set([ctrlKey, ';'], () => (this.value = new Date()))\n .set(arrowUp, this.keyboardSpin.bind(this, 'up'))\n .set(arrowDown, this.keyboardSpin.bind(this, 'down'))\n .set([ctrlKey, arrowLeft], this.navigateParts.bind(this, 0))\n .set([ctrlKey, arrowRight], this.navigateParts.bind(this, 1));\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.updateDefaultMask();\n this.setMask(this.inputFormat);\n this.updateValidity();\n if (this.value) {\n this.updateMask();\n }\n }\n\n /** Increments a date/time portion. */\n public stepUp(datePart?: DatePart, delta?: number): void {\n const targetPart = datePart || this.targetDatePart;\n\n if (!targetPart) {\n return;\n }\n\n const { start, end } = this.inputSelection;\n const newValue = this.trySpinValue(targetPart, delta);\n this.value = newValue;\n this.updateComplete.then(() => this.input.setSelectionRange(start, end));\n }\n\n /** Decrements a date/time portion. */\n public stepDown(datePart?: DatePart, delta?: number): void {\n const targetPart = datePart || this.targetDatePart;\n\n if (!targetPart) {\n return;\n }\n\n const { start, end } = this.inputSelection;\n const newValue = this.trySpinValue(targetPart, delta, true);\n this.value = newValue;\n this.updateComplete.then(() => this.input.setSelectionRange(start, end));\n }\n\n /** Clears the input element of user input. */\n public clear(): void {\n this.maskedValue = '';\n this.value = null;\n }\n\n protected updateMask() {\n if (this.focused) {\n this.maskedValue = this.getMaskedValue();\n } else {\n if (!DateTimeUtil.isValidDate(this.value)) {\n this.maskedValue = '';\n return;\n }\n\n const format = this.displayFormat || this.inputFormat;\n\n if (this.displayFormat) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value,\n this.locale,\n format,\n true\n );\n } else if (this.inputFormat) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value,\n this.locale,\n format\n );\n } else {\n this.maskedValue = this.value.toLocaleString();\n }\n }\n }\n\n protected handleChange() {\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n protected override handleInput() {\n this.emitEvent('igcInput', { detail: this.value?.toString() });\n }\n\n protected handleDragLeave() {\n if (!this.focused) {\n this.updateMask();\n }\n }\n\n protected handleDragEnter() {\n if (!this.focused) {\n this.maskedValue = this.getMaskedValue();\n }\n }\n\n protected async updateInput(string: string, range: MaskRange) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n string,\n range.start,\n range.end\n );\n\n this.maskedValue = value;\n\n this.updateValue();\n this.requestUpdate();\n\n if (range.start !== this.inputFormat.length) {\n this.handleInput();\n }\n await this.updateComplete;\n this.input.setSelectionRange(end, end);\n }\n\n private trySpinValue(\n datePart: DatePart,\n delta?: number,\n negative = false\n ): Date {\n if (!delta) {\n // default to 1 if a delta is set to 0 or any other falsy value\n delta = this.datePartDeltas[datePart as keyof DatePartDeltas] || 1;\n }\n\n const spinValue = negative ? -Math.abs(delta) : Math.abs(delta);\n return this.spinValue(datePart, spinValue);\n }\n\n private spinValue(datePart: DatePart, delta: number): Date {\n if (!this.value || !DateTimeUtil.isValidDate(this.value)) {\n return new Date();\n }\n\n const newDate = new Date(this.value.getTime());\n let formatPart, amPmFromMask;\n switch (datePart) {\n case DatePart.Date:\n DateTimeUtil.spinDate(delta, newDate, this.spinLoop);\n break;\n case DatePart.Month:\n DateTimeUtil.spinMonth(delta, newDate, this.spinLoop);\n break;\n case DatePart.Year:\n DateTimeUtil.spinYear(delta, newDate);\n break;\n case DatePart.Hours:\n DateTimeUtil.spinHours(delta, newDate, this.spinLoop);\n break;\n case DatePart.Minutes:\n DateTimeUtil.spinMinutes(delta, newDate, this.spinLoop);\n break;\n case DatePart.Seconds:\n DateTimeUtil.spinSeconds(delta, newDate, this.spinLoop);\n break;\n case DatePart.AmPm:\n formatPart = this._inputDateParts.find(\n (dp) => dp.type === DateParts.AmPm\n );\n if (formatPart !== undefined) {\n amPmFromMask = this.maskedValue.substring(\n formatPart!.start,\n formatPart!.end\n );\n return DateTimeUtil.spinAmPm(newDate, this.value, amPmFromMask);\n }\n break;\n }\n\n return newDate;\n }\n\n private async onWheel(event: WheelEvent) {\n if (!this.focused || this.readOnly) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const { start, end } = this.inputSelection;\n event.deltaY > 0 ? this.stepDown() : this.stepUp();\n this.handleInput();\n\n await this.updateComplete;\n this.setSelectionRange(start, end);\n }\n\n private updateDefaultMask(): void {\n this._defaultMask = DateTimeUtil.getDefaultMask(this.locale);\n }\n\n private setMask(val: string): void {\n const oldFormat = this._inputDateParts?.map((p) => p.format).join('');\n this._inputDateParts = DateTimeUtil.parseDateTimeFormat(val);\n val = this._inputDateParts.map((p) => p.format).join('');\n\n this._defaultMask = val;\n\n const newMask = (val || DateTimeUtil.DEFAULT_INPUT_FORMAT).replace(\n new RegExp(/(?=[^t])[\\w]/, 'g'),\n '0'\n );\n\n this._mask =\n newMask.indexOf('tt') !== -1\n ? newMask.replace(new RegExp('tt', 'g'), 'LL')\n : newMask;\n\n this.parser.mask = this._mask;\n this.parser.prompt = this.prompt;\n\n if (!this.placeholder || oldFormat === this.placeholder) {\n this.placeholder = val;\n }\n }\n\n private parseDate(val: string) {\n if (!val) {\n return null;\n }\n\n return DateTimeUtil.parseValueFromMask(\n val,\n this._inputDateParts,\n this.prompt\n );\n }\n\n private getMaskedValue(): string {\n let mask = this.emptyMask;\n\n if (DateTimeUtil.isValidDate(this.value)) {\n for (const part of this._inputDateParts) {\n if (part.type === DateParts.Literal) {\n continue;\n }\n\n const targetValue = DateTimeUtil.getPartValue(\n part,\n part.format.length,\n this.value\n );\n\n mask = this.parser.replace(\n mask,\n targetValue,\n part.start,\n part.end\n ).value;\n }\n return mask;\n }\n\n return this.maskedValue === '' ? mask : this.maskedValue;\n }\n\n private isComplete(): boolean {\n return this.maskedValue.indexOf(this.prompt) === -1;\n }\n\n private updateValue(): void {\n if (this.isComplete()) {\n const parsedDate = this.parseDate(this.maskedValue);\n if (DateTimeUtil.isValidDate(parsedDate)) {\n this.value = parsedDate;\n } else {\n this.value = null;\n }\n } else {\n this.value = null;\n }\n }\n\n protected override _updateSetRangeTextValue() {\n this.updateValue();\n }\n\n private getNewPosition(value: string, direction = 0): number {\n const literals = this._inputDateParts.filter(\n (p) => p.type === DateParts.Literal\n );\n let cursorPos = this.selection.start;\n\n if (!direction) {\n do {\n cursorPos = cursorPos > 0 ? --cursorPos : cursorPos;\n } while (!literals.some((l) => l.end === cursorPos) && cursorPos > 0);\n return cursorPos;\n } else {\n do {\n cursorPos++;\n } while (\n !literals.some((l) => l.start === cursorPos) &&\n cursorPos < value.length\n );\n return cursorPos;\n }\n }\n\n protected override async handleFocus() {\n this.focused = true;\n this.updateMask();\n super.handleFocus();\n\n if (this.readOnly) {\n return;\n }\n\n this._oldValue = this.value;\n\n if (!this._value) {\n this.maskedValue = this.emptyMask;\n await this.updateComplete;\n this.select();\n }\n }\n\n protected override handleBlur() {\n this.focused = false;\n\n if (!this.isComplete() && this.maskedValue !== this.emptyMask) {\n const parse = this.parseDate(this.maskedValue);\n\n if (parse) {\n this.value = parse;\n } else {\n this.value = null;\n this.maskedValue = '';\n }\n } else {\n this.updateMask();\n }\n\n if (this._oldValue !== this.value) {\n this.handleChange();\n }\n this.checkValidity();\n super.handleBlur();\n }\n\n protected navigateParts(delta: number) {\n const position = this.getNewPosition(this.input.value, delta);\n this.setSelectionRange(position, position);\n }\n\n protected async keyboardSpin(direction: 'up' | 'down') {\n direction === 'up' ? this.stepUp() : this.stepDown();\n this.handleInput();\n await this.updateComplete;\n this.setSelectionRange(this.selection.start, this.selection.end);\n }\n\n protected override renderInput() {\n return html`\n <input\n type=\"text\"\n part=${partNameMap(this.resolvePartNames('input'))}\n name=${ifDefined(this.name)}\n .value=${live(this.maskedValue)}\n .placeholder=${live(this.placeholder || this.emptyMask)}\n ?readonly=${this.readOnly}\n ?disabled=${this.disabled}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @input=${super.handleInput}\n @wheel=${this.onWheel}\n @keydown=${super.handleKeydown}\n @click=${this.handleClick}\n @cut=${this.handleCut}\n @change=${this.handleChange}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-time-input': IgcDateTimeInputComponent;\n }\n}\n"]}
|
|
@@ -31,6 +31,8 @@ export default class IgcDialogComponent extends IgcDialogComponent_base {
|
|
|
31
31
|
private dialogRef;
|
|
32
32
|
private animationPlayer;
|
|
33
33
|
private get dialog();
|
|
34
|
+
private titleElements;
|
|
35
|
+
private footerElements;
|
|
34
36
|
/**
|
|
35
37
|
* Whether the dialog should be closed when pressing the 'ESCAPE' button.
|
|
36
38
|
* @deprecated since version 4.2.3. Use `keepOpenOnEscape` instead.
|
|
@@ -73,6 +75,11 @@ export default class IgcDialogComponent extends IgcDialogComponent_base {
|
|
|
73
75
|
title: string;
|
|
74
76
|
/** Sets the return value for the dialog. */
|
|
75
77
|
returnValue: string;
|
|
78
|
+
protected resolvePartNames(base: string): {
|
|
79
|
+
[x: string]: string | boolean;
|
|
80
|
+
titled: string | true;
|
|
81
|
+
footed: boolean;
|
|
82
|
+
};
|
|
76
83
|
protected handleOpenState(): void;
|
|
77
84
|
protected firstUpdated(): Promise<void>;
|
|
78
85
|
private toggleAnimation;
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
var IgcDialogComponent_1;
|
|
8
8
|
import { LitElement, html, nothing } from 'lit';
|
|
9
|
-
import { property, state } from 'lit/decorators.js';
|
|
9
|
+
import { property, queryAssignedElements, state } from 'lit/decorators.js';
|
|
10
10
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
11
11
|
import { createRef, ref } from 'lit/directives/ref.js';
|
|
12
12
|
import { styles } from './themes/dialog.base.css.js';
|
|
@@ -53,6 +53,13 @@ let IgcDialogComponent = IgcDialogComponent_1 = class IgcDialogComponent extends
|
|
|
53
53
|
get closeOnEscape() {
|
|
54
54
|
return !this.keepOpenOnEscape;
|
|
55
55
|
}
|
|
56
|
+
resolvePartNames(base) {
|
|
57
|
+
return {
|
|
58
|
+
[base]: true,
|
|
59
|
+
titled: this.titleElements.length > 0 || this.title,
|
|
60
|
+
footed: this.footerElements.length > 0 || !this.hideDefaultAction,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
56
63
|
handleOpenState() {
|
|
57
64
|
this.open ? this.dialog.showModal() : this.dialog.close();
|
|
58
65
|
}
|
|
@@ -112,7 +119,7 @@ let IgcDialogComponent = IgcDialogComponent_1 = class IgcDialogComponent extends
|
|
|
112
119
|
}
|
|
113
120
|
}
|
|
114
121
|
handleClick({ clientX, clientY, target }) {
|
|
115
|
-
if (this.closeOnOutsideClick && this.dialog
|
|
122
|
+
if (this.closeOnOutsideClick && this.dialog === target) {
|
|
116
123
|
const { left, top, right, bottom } = this.dialog.getBoundingClientRect();
|
|
117
124
|
const between = (x, low, high) => x >= low && x <= high;
|
|
118
125
|
if (!(between(clientX, left, right) && between(clientY, top, bottom))) {
|
|
@@ -143,7 +150,7 @@ let IgcDialogComponent = IgcDialogComponent_1 = class IgcDialogComponent extends
|
|
|
143
150
|
<div part=${backdropParts} aria-hidden=${!this.open}></div>
|
|
144
151
|
<dialog
|
|
145
152
|
${ref(this.dialogRef)}
|
|
146
|
-
part="base"
|
|
153
|
+
part="${partNameMap(this.resolvePartNames('base'))}"
|
|
147
154
|
role="dialog"
|
|
148
155
|
@click=${this.handleClick}
|
|
149
156
|
@cancel=${this.handleCancel}
|
|
@@ -172,6 +179,12 @@ let IgcDialogComponent = IgcDialogComponent_1 = class IgcDialogComponent extends
|
|
|
172
179
|
IgcDialogComponent.tagName = 'igc-dialog';
|
|
173
180
|
IgcDialogComponent.styles = [styles, shared];
|
|
174
181
|
IgcDialogComponent.increment = createCounter();
|
|
182
|
+
__decorate([
|
|
183
|
+
queryAssignedElements({ slot: 'title' })
|
|
184
|
+
], IgcDialogComponent.prototype, "titleElements", void 0);
|
|
185
|
+
__decorate([
|
|
186
|
+
queryAssignedElements({ slot: 'footer' })
|
|
187
|
+
], IgcDialogComponent.prototype, "footerElements", void 0);
|
|
175
188
|
__decorate([
|
|
176
189
|
property({ type: Boolean, attribute: 'close-on-escape' })
|
|
177
190
|
], IgcDialogComponent.prototype, "closeOnEscape", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { Ref, createRef, ref } from 'lit/directives/ref.js';\n\nimport { styles } from './themes/dialog.base.css.js';\nimport { styles as shared } from './themes/shared/dialog.common.css.js';\nimport { all } from './themes/themes.js';\nimport { addAnimationController } from '../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { createCounter, partNameMap } from '../common/util.js';\n\nexport interface IgcDialogEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\n/**\n * Represents a Dialog component.\n *\n * @element igc-dialog\n *\n * @fires igcClosing - Emitter just before the dialog is closed.\n * @fires igcClosed - Emitted after closing the dialog.\n *\n * @slot - Renders content inside the default slot.\n * @slot title - Renders the title of the dialog header.\n * @slot footer - Renders the dialog footer.\n *\n * @csspart base - The base wrapper of the dialog.\n * @csspart title - The title container.\n * @csspart footer - The footer container.\n * @csspart overlay - The overlay.\n */\n@themes(all)\n@blazorAdditionalDependencies('IgcButtonComponent')\nexport default class IgcDialogComponent extends EventEmitterMixin<\n IgcDialogEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-dialog';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(this, IgcButtonComponent);\n }\n\n private static readonly increment = createCounter();\n private titleId = `title-${IgcDialogComponent.increment()}`;\n\n private dialogRef: Ref<HTMLDialogElement> = createRef();\n private animationPlayer = addAnimationController(this, this.dialogRef);\n\n private get dialog() {\n return this.dialogRef.value!;\n }\n\n /* blazorSuppress */\n /**\n * Whether the dialog should be closed when pressing the 'ESCAPE' button.\n * @deprecated since version 4.2.3. Use `keepOpenOnEscape` instead.\n * @attr close-on-escape\n */\n @property({ type: Boolean, attribute: 'close-on-escape' })\n public set closeOnEscape(value: boolean) {\n this.keepOpenOnEscape = !value;\n }\n public get closeOnEscape(): boolean {\n return !this.keepOpenOnEscape;\n }\n\n /**\n * Whether the dialog should be kept open when pressing the 'ESCAPE' button.\n * @attr keep-open-on-escape\n */\n @property({ type: Boolean, attribute: 'keep-open-on-escape' })\n public keepOpenOnEscape = false;\n\n /**\n * Whether the dialog should be closed when clicking outside of it.\n * @attr close-on-outside-click\n */\n @property({ type: Boolean, attribute: 'close-on-outside-click' })\n public closeOnOutsideClick = false;\n\n /**\n * Whether to hide the default action button for the dialog.\n *\n * When there is projected content in the `footer` slot this property\n * has no effect.\n * @attr hide-default-action\n */\n @property({ type: Boolean, attribute: 'hide-default-action' })\n public hideDefaultAction = false;\n\n /**\n * Whether the dialog is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Backdrop animation helper.\n * @hidden @internal\n */\n @state()\n private animating = false;\n\n /**\n * Sets the title of the dialog.\n * @attr\n */\n @property()\n public override title!: string;\n\n /** Sets the return value for the dialog. */\n @property({ attribute: false })\n public returnValue!: string;\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected handleOpenState() {\n this.open ? this.dialog.showModal() : this.dialog.close();\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n if (this.open) {\n this.dialog.showModal();\n }\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? fadeIn : fadeOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n /** Opens the dialog. */\n public show() {\n if (this.open) {\n return;\n }\n\n this.toggleAnimation('open');\n this.open = true;\n }\n\n /** Closes the dialog. */\n public async hide() {\n if (!this.open) {\n return;\n }\n\n this.animating = true;\n\n if (await this.toggleAnimation('close')) {\n this.animating = false;\n this.open = false;\n }\n }\n\n /** Toggles the open state of the dialog. */\n public toggle() {\n this.open ? this.hide() : this.show();\n }\n\n protected async hideWithEvent() {\n if (!this.open) {\n return;\n }\n\n if (!this.handleClosing()) {\n return;\n }\n\n this.animating = true;\n\n if (await this.toggleAnimation('close')) {\n this.open = false;\n this.animating = false;\n this.emitEvent('igcClosed');\n }\n\n await this.updateComplete;\n }\n\n private handleCancel(event: Event) {\n event.preventDefault();\n\n if (!this.keepOpenOnEscape) {\n this.hideWithEvent();\n }\n }\n\n private handleClick({ clientX, clientY, target }: MouseEvent) {\n if (this.closeOnOutsideClick && this.dialog.isSameNode(target as Node)) {\n const { left, top, right, bottom } = this.dialog.getBoundingClientRect();\n const between = (x: number, low: number, high: number) =>\n x >= low && x <= high;\n if (!(between(clientX, left, right) && between(clientY, top, bottom))) {\n this.hideWithEvent();\n }\n }\n }\n\n private handleClosing(): boolean {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n protected formSubmitHandler = (e: Event) => {\n if (e instanceof SubmitEvent && e.submitter) {\n this.returnValue = (e.submitter as any)?.value || '';\n }\n if (!e.defaultPrevented) {\n this.hideWithEvent();\n }\n };\n\n private handleSlotChange() {\n // Setup submit handling for supported forms\n Array.from(this.querySelectorAll('igc-form, form'))\n .filter((each) => each.getAttribute('method') === 'dialog')\n .forEach((form) => {\n const event = /igc-form/i.test(form.tagName) ? 'igcSubmit' : 'submit';\n form.removeEventListener(event, this.formSubmitHandler);\n form.addEventListener(event, this.formSubmitHandler);\n });\n }\n\n protected override render() {\n const label = this.ariaLabel ? this.ariaLabel : undefined;\n const labelledby = label ? undefined : this.titleId;\n const backdropParts = partNameMap({\n backdrop: true,\n animating: this.animating,\n });\n\n return html`\n <div part=${backdropParts} aria-hidden=${!this.open}></div>\n <dialog\n ${ref(this.dialogRef)}\n part=\"base\"\n role=\"dialog\"\n @click=${this.handleClick}\n @cancel=${this.handleCancel}\n aria-label=${ifDefined(label)}\n aria-labelledby=${ifDefined(labelledby)}\n >\n <header part=\"title\" id=${this.titleId}>\n <slot name=\"title\"><span>${this.title}</span></slot>\n </header>\n <section part=\"content\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </section>\n <footer part=\"footer\">\n <slot name=\"footer\">\n ${this.hideDefaultAction\n ? nothing\n : html`<igc-button variant=\"flat\" @click=${this.hideWithEvent}\n >OK</igc-button\n >`}\n </slot>\n </footer>\n </dialog>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dialog': IgcDialogComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, queryAssignedElements, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { Ref, createRef, ref } from 'lit/directives/ref.js';\n\nimport { styles } from './themes/dialog.base.css.js';\nimport { styles as shared } from './themes/shared/dialog.common.css.js';\nimport { all } from './themes/themes.js';\nimport { addAnimationController } from '../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { createCounter, partNameMap } from '../common/util.js';\n\nexport interface IgcDialogEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\n/**\n * Represents a Dialog component.\n *\n * @element igc-dialog\n *\n * @fires igcClosing - Emitter just before the dialog is closed.\n * @fires igcClosed - Emitted after closing the dialog.\n *\n * @slot - Renders content inside the default slot.\n * @slot title - Renders the title of the dialog header.\n * @slot footer - Renders the dialog footer.\n *\n * @csspart base - The base wrapper of the dialog.\n * @csspart title - The title container.\n * @csspart footer - The footer container.\n * @csspart overlay - The overlay.\n */\n@themes(all)\n@blazorAdditionalDependencies('IgcButtonComponent')\nexport default class IgcDialogComponent extends EventEmitterMixin<\n IgcDialogEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-dialog';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(this, IgcButtonComponent);\n }\n\n private static readonly increment = createCounter();\n private titleId = `title-${IgcDialogComponent.increment()}`;\n\n private dialogRef: Ref<HTMLDialogElement> = createRef();\n private animationPlayer = addAnimationController(this, this.dialogRef);\n\n private get dialog() {\n return this.dialogRef.value!;\n }\n\n @queryAssignedElements({ slot: 'title' })\n private titleElements!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'footer' })\n private footerElements!: Array<HTMLElement>;\n\n /* blazorSuppress */\n /**\n * Whether the dialog should be closed when pressing the 'ESCAPE' button.\n * @deprecated since version 4.2.3. Use `keepOpenOnEscape` instead.\n * @attr close-on-escape\n */\n @property({ type: Boolean, attribute: 'close-on-escape' })\n public set closeOnEscape(value: boolean) {\n this.keepOpenOnEscape = !value;\n }\n public get closeOnEscape(): boolean {\n return !this.keepOpenOnEscape;\n }\n\n /**\n * Whether the dialog should be kept open when pressing the 'ESCAPE' button.\n * @attr keep-open-on-escape\n */\n @property({ type: Boolean, attribute: 'keep-open-on-escape' })\n public keepOpenOnEscape = false;\n\n /**\n * Whether the dialog should be closed when clicking outside of it.\n * @attr close-on-outside-click\n */\n @property({ type: Boolean, attribute: 'close-on-outside-click' })\n public closeOnOutsideClick = false;\n\n /**\n * Whether to hide the default action button for the dialog.\n *\n * When there is projected content in the `footer` slot this property\n * has no effect.\n * @attr hide-default-action\n */\n @property({ type: Boolean, attribute: 'hide-default-action' })\n public hideDefaultAction = false;\n\n /**\n * Whether the dialog is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Backdrop animation helper.\n * @hidden @internal\n */\n @state()\n private animating = false;\n\n /**\n * Sets the title of the dialog.\n * @attr\n */\n @property()\n public override title!: string;\n\n /** Sets the return value for the dialog. */\n @property({ attribute: false })\n public returnValue!: string;\n\n protected resolvePartNames(base: string) {\n return {\n [base]: true,\n titled: this.titleElements.length > 0 || this.title,\n footed: this.footerElements.length > 0 || !this.hideDefaultAction,\n };\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected handleOpenState() {\n this.open ? this.dialog.showModal() : this.dialog.close();\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n if (this.open) {\n this.dialog.showModal();\n }\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? fadeIn : fadeOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n /** Opens the dialog. */\n public show() {\n if (this.open) {\n return;\n }\n\n this.toggleAnimation('open');\n this.open = true;\n }\n\n /** Closes the dialog. */\n public async hide() {\n if (!this.open) {\n return;\n }\n\n this.animating = true;\n\n if (await this.toggleAnimation('close')) {\n this.animating = false;\n this.open = false;\n }\n }\n\n /** Toggles the open state of the dialog. */\n public toggle() {\n this.open ? this.hide() : this.show();\n }\n\n protected async hideWithEvent() {\n if (!this.open) {\n return;\n }\n\n if (!this.handleClosing()) {\n return;\n }\n\n this.animating = true;\n\n if (await this.toggleAnimation('close')) {\n this.open = false;\n this.animating = false;\n this.emitEvent('igcClosed');\n }\n\n await this.updateComplete;\n }\n\n private handleCancel(event: Event) {\n event.preventDefault();\n\n if (!this.keepOpenOnEscape) {\n this.hideWithEvent();\n }\n }\n\n private handleClick({ clientX, clientY, target }: MouseEvent) {\n if (this.closeOnOutsideClick && this.dialog === target) {\n const { left, top, right, bottom } = this.dialog.getBoundingClientRect();\n const between = (x: number, low: number, high: number) =>\n x >= low && x <= high;\n if (!(between(clientX, left, right) && between(clientY, top, bottom))) {\n this.hideWithEvent();\n }\n }\n }\n\n private handleClosing(): boolean {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n protected formSubmitHandler = (e: Event) => {\n if (e instanceof SubmitEvent && e.submitter) {\n this.returnValue = (e.submitter as any)?.value || '';\n }\n if (!e.defaultPrevented) {\n this.hideWithEvent();\n }\n };\n\n private handleSlotChange() {\n // Setup submit handling for supported forms\n Array.from(this.querySelectorAll('igc-form, form'))\n .filter((each) => each.getAttribute('method') === 'dialog')\n .forEach((form) => {\n const event = /igc-form/i.test(form.tagName) ? 'igcSubmit' : 'submit';\n form.removeEventListener(event, this.formSubmitHandler);\n form.addEventListener(event, this.formSubmitHandler);\n });\n }\n\n protected override render() {\n const label = this.ariaLabel ? this.ariaLabel : undefined;\n const labelledby = label ? undefined : this.titleId;\n const backdropParts = partNameMap({\n backdrop: true,\n animating: this.animating,\n });\n\n return html`\n <div part=${backdropParts} aria-hidden=${!this.open}></div>\n <dialog\n ${ref(this.dialogRef)}\n part=\"${partNameMap(this.resolvePartNames('base'))}\"\n role=\"dialog\"\n @click=${this.handleClick}\n @cancel=${this.handleCancel}\n aria-label=${ifDefined(label)}\n aria-labelledby=${ifDefined(labelledby)}\n >\n <header part=\"title\" id=${this.titleId}>\n <slot name=\"title\"><span>${this.title}</span></slot>\n </header>\n <section part=\"content\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </section>\n <footer part=\"footer\">\n <slot name=\"footer\">\n ${this.hideDefaultAction\n ? nothing\n : html`<igc-button variant=\"flat\" @click=${this.hideWithEvent}\n >OK</igc-button\n >`}\n </slot>\n </footer>\n </dialog>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dialog': IgcDialogComponent;\n }\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--elevation: var(--ig-dialog-elevation, var(--ig-elevation-
|
|
2
|
+
export const styles = css `:host{--elevation: var(--ig-dialog-elevation, var(--ig-elevation-23));--background: var(--ig-dialog-background, hsla(var(--ig-gray-50), var(--ig-gray-a)));--title-color: var(--ig-dialog-title-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--message-color: var(--ig-dialog-message-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));--border-color: var(--ig-dialog-border-color, transparent);--backdrop: var(--ig-dialog-backdrop, hsla(var(--ig-gray-500), 0.54));--border-radius: var(--ig-dialog-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2777777778) * 2.25rem), 2.25rem));--default-size: var(--ig-dialog-default-size, 2)}`;
|
|
3
3
|
//# sourceMappingURL=dialog.indigo.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/dialog/themes/dark/dialog.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"dialog.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/dialog/themes/dark/dialog.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,goBAAgoB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--elevation: var(--ig-dialog-elevation, var(--ig-elevation-23));--background: var(--ig-dialog-background, hsla(var(--ig-gray-50), var(--ig-gray-a)));--title-color: var(--ig-dialog-title-color, hsla(var(--ig-gray-900), var(--ig-gray-a)));--message-color: var(--ig-dialog-message-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));--border-color: var(--ig-dialog-border-color, transparent);--backdrop: var(--ig-dialog-backdrop, hsla(var(--ig-gray-500), 0.54));--border-radius: var(--ig-dialog-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2777777778) * 2.25rem), 2.25rem));--default-size: var(--ig-dialog-default-size, 2)}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host([hidden]),[hidden]{display:none !important}:host{border-style:none;padding:unset}[part
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host([hidden]),[hidden]{display:none !important}:host{border-style:none;padding:unset}[part~=base]{background:inherit;color:inherit;border-style:inherit;padding:inherit;border:inherit;border-radius:inherit;min-width:inherit}[part=content]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0}[part=title],[part=footer]{display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom);margin:0}[part=footer]{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}[part~=titled] [part=title]{display:-webkit-box;display:-ms-flexbox;display:flex}[part~=footed] [part=footer]{display:-webkit-box;display:-ms-flexbox;display:flex}::slotted(*){font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;margin:0}slot[name=title]::slotted(:last-child),slot[name=footer]::slotted(:last-child){-webkit-margin-start:.5rem;margin-inline-start:.5rem}dialog::-ms-backdrop{opacity:0}dialog::backdrop{opacity:0}[part~=backdrop]{position:fixed;inset:0;z-index:10005;pointer-events:none;opacity:0;-webkit-transition:opacity 350ms ease-out;transition:opacity 350ms ease-out}:host([open]) [part=backdrop]{opacity:1}`;
|
|
3
3
|
//# sourceMappingURL=dialog.base.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.base.css.js","sourceRoot":"","sources":["../../../../src/components/dialog/themes/dialog.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"dialog.base.css.js","sourceRoot":"","sources":["../../../../src/components/dialog/themes/dialog.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,uqFAAuqF,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size);scrollbar-color:var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background)}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size);height:var(--ig-scrollbar-size);background:var(--ig-scrollbar-track-background)}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background)}:host([hidden]),[hidden]{display:none !important}:host{border-style:none;padding:unset}[part~=base]{background:inherit;color:inherit;border-style:inherit;padding:inherit;border:inherit;border-radius:inherit;min-width:inherit}[part=content]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0}[part=title],[part=footer]{display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom);margin:0}[part=footer]{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}[part~=titled] [part=title]{display:-webkit-box;display:-ms-flexbox;display:flex}[part~=footed] [part=footer]{display:-webkit-box;display:-ms-flexbox;display:flex}::slotted(*){font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;margin:0}slot[name=title]::slotted(:last-child),slot[name=footer]::slotted(:last-child){-webkit-margin-start:.5rem;margin-inline-start:.5rem}dialog::-ms-backdrop{opacity:0}dialog::backdrop{opacity:0}[part~=backdrop]{position:fixed;inset:0;z-index:10005;pointer-events:none;opacity:0;-webkit-transition:opacity 350ms ease-out;transition:opacity 350ms ease-out}:host([open]) [part=backdrop]{opacity:1}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--message-color: var(--ig-dialog-message-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));--border-radius: var(--ig-dialog-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.
|
|
2
|
+
export const styles = css `:host{--background: var(--ig-dialog-background, color-mix(in oklch, var(--ig-gray-900-contrast) 100%, transparent));--message-color: var(--ig-dialog-message-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));--border-radius: var(--ig-dialog-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2777777778) * 2.25rem), 2.25rem))}`;
|
|
3
3
|
//# sourceMappingURL=dialog.indigo.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/dialog/themes/light/dialog.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"dialog.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/dialog/themes/light/dialog.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,+UAA+U,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--background: var(--ig-dialog-background, color-mix(in oklch, var(--ig-gray-900-contrast) 100%, transparent));--message-color: var(--ig-dialog-message-color, hsla(var(--ig-gray-700), var(--ig-gray-a)));--border-radius: var(--ig-dialog-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 0.2777777778) * 2.25rem), 2.25rem))}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `[part=title]{padding:
|
|
2
|
+
export const styles = css `[part=title],[part=footer]{font-family:var(--ig-h5-font-family, var(--ig-font-family));font-size:var(--ig-h5-font-size);font-weight:var(--ig-h5-font-weight);font-style:var(--ig-h5-font-style);line-height:var(--ig-h5-line-height);letter-spacing:var(--ig-h5-letter-spacing);text-transform:var(--ig-h5-text-transform);margin-top:var(--ig-h5-margin-top);margin-bottom:var(--ig-h5-margin-bottom);margin:0}[part=title]{padding:1.5rem 1.5rem 0 1.5rem}[part=content]{padding:1rem 1.5rem}[part=footer]{padding:1rem 1.5rem 1.5rem 1.5rem}[part=base] ::slotted(igc-button){--ig-size: 2}slot[name=footer]::slotted(:last-child){-webkit-margin-start:1rem;margin-inline-start:1rem}`;
|
|
3
3
|
//# sourceMappingURL=dialog.indigo.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/dialog/themes/shared/dialog.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"dialog.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/dialog/themes/shared/dialog.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,2pBAA2pB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`[part=title],[part=footer]{font-family:var(--ig-h5-font-family, var(--ig-font-family));font-size:var(--ig-h5-font-size);font-weight:var(--ig-h5-font-weight);font-style:var(--ig-h5-font-style);line-height:var(--ig-h5-line-height);letter-spacing:var(--ig-h5-letter-spacing);text-transform:var(--ig-h5-text-transform);margin-top:var(--ig-h5-margin-top);margin-bottom:var(--ig-h5-margin-bottom);margin:0}[part=title]{padding:1.5rem 1.5rem 0 1.5rem}[part=content]{padding:1rem 1.5rem}[part=footer]{padding:1rem 1.5rem 1.5rem 1.5rem}[part=base] ::slotted(igc-button){--ig-size: 2}slot[name=footer]::slotted(:last-child){-webkit-margin-start:1rem;margin-inline-start:1rem}`;\n"]}
|