igniteui-webcomponents 3.2.0 → 3.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -8
- package/README.md +52 -2
- package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
- package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
- package/components/button/button-base.d.ts +1 -1
- package/components/button/themes/button/light/button.base.css.js +1 -1
- package/components/button/themes/button/light/button.base.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/calendar/calendar.d.ts +1 -1
- package/components/calendar/days-view/days-view.d.ts +1 -1
- package/components/calendar/months-view/months-view.d.ts +1 -1
- package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js +1 -1
- package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js.map +1 -1
- package/components/calendar/years-view/years-view.d.ts +1 -1
- package/components/card/card.header.js +2 -0
- package/components/card/card.header.js.map +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
- package/components/{nav-drawer/styles/indigo/nav-drawer-header-item.indigo.css.d.ts → card/themes/light/card.header.fluent.css.d.ts} +0 -0
- package/components/card/themes/light/card.header.fluent.css.js +3 -0
- package/components/card/themes/light/card.header.fluent.css.js.map +1 -0
- package/components/checkbox/checkbox-base.d.ts +1 -1
- package/components/checkbox/themes/light/checkbox.base.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.material.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.base.css.js +1 -1
- package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.fluent.css.js +1 -1
- package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
- package/components/chip/chip.d.ts +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/chip.fluent.css.js +1 -1
- package/components/chip/themes/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/chip.indigo.css.js +1 -1
- package/components/chip/themes/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/chip.material.css.js +1 -1
- package/components/chip/themes/chip.material.css.js.map +1 -1
- package/components/common/definitions/defineAllComponents.js +8 -0
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/common/mixins/constructor.d.ts +1 -0
- package/components/common/mixins/constructor.js.map +1 -1
- package/components/common/mixins/event-emitter.d.ts +2 -2
- package/components/common/mixins/event-emitter.js +2 -2
- package/components/common/mixins/event-emitter.js.map +1 -1
- package/components/common/util.d.ts +18 -0
- package/components/common/util.js +17 -0
- package/components/common/util.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +108 -0
- package/components/date-time-input/date-time-input.js +495 -0
- package/components/date-time-input/date-time-input.js.map +1 -0
- package/components/date-time-input/date-util.d.ts +89 -0
- package/components/date-time-input/date-util.js +597 -0
- package/components/date-time-input/date-util.js.map +1 -0
- package/components/dropdown/dropdown-group.js +2 -0
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +2 -1
- package/components/expansion-panel/expansion-panel.js +1 -0
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/form/form.d.ts +1 -1
- package/components/form/form.js +3 -1
- package/components/form/form.js.map +1 -1
- package/components/icon/icon.material.css.js +1 -1
- package/components/icon/icon.material.css.js.map +1 -1
- package/components/input/input-base.d.ts +6 -3
- package/components/input/input-base.js +10 -6
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +1 -4
- package/components/input/input.js +8 -4
- package/components/input/input.js.map +1 -1
- package/components/input/themes/light/input.bootstrap.css.js +1 -1
- package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
- package/components/list/themes/light/list-item.bootstrap.css.js +1 -1
- package/components/list/themes/light/list-item.bootstrap.css.js.map +1 -1
- package/components/list/themes/light/list-item.fluent.css.js +1 -1
- package/components/list/themes/light/list-item.fluent.css.js.map +1 -1
- package/components/list/themes/light/list-item.indigo.css.js +1 -1
- package/components/list/themes/light/list-item.indigo.css.js.map +1 -1
- package/components/mask-input/mask-input-base.d.ts +38 -0
- package/components/mask-input/mask-input-base.js +110 -0
- package/components/mask-input/mask-input-base.js.map +1 -0
- package/components/mask-input/mask-input.d.ts +5 -36
- package/components/mask-input/mask-input.js +11 -89
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js +4 -3
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.js +4 -3
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.js +2 -2
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/{styles → themes/dark}/nav-drawer-item.base.css.d.ts +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js.map +1 -0
- package/components/nav-drawer/{styles/indigo/nav-drawer-item.indigo.css.d.ts → themes/dark/nav-drawer-item.bootstrap.css.d.ts} +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js.map +1 -0
- package/components/nav-drawer/{styles/indigo/nav-drawer.indigo.css.d.ts → themes/dark/nav-drawer-item.fluent.css.d.ts} +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js.map +1 -0
- package/components/nav-drawer/{styles/nav-drawer-header-item.base.css.d.ts → themes/dark/nav-drawer-item.indigo.css.d.ts} +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js.map +1 -0
- package/components/nav-drawer/{styles/nav-drawer.base.css.d.ts → themes/dark/nav-drawer.indigo.css.d.ts} +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js.map +1 -0
- package/components/{snackbar/themes/snackbar.base.css.d.ts → nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.d.ts} +0 -0
- package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js +3 -0
- package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js.map +1 -0
- package/components/{snackbar/themes/snackbar.bootstrap.css.d.ts → nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.d.ts} +0 -0
- package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js +3 -0
- package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js.map +1 -0
- package/components/{snackbar/themes/snackbar.fluent.css.d.ts → nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.d.ts} +0 -0
- package/components/nav-drawer/{styles → themes/light}/indigo/nav-drawer-header-item.indigo.css.js +0 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js.map +1 -0
- package/components/{snackbar/themes/snackbar.indigo.css.d.ts → nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.d.ts} +0 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js +3 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js.map +1 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.d.ts +1 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js +3 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js.map +1 -0
- package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.d.ts +1 -0
- package/components/nav-drawer/{styles → themes/light}/nav-drawer-header-item.base.css.js +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -0
- package/components/nav-drawer/themes/light/nav-drawer-item.base.css.d.ts +1 -0
- package/components/nav-drawer/{styles → themes/light}/nav-drawer-item.base.css.js +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -0
- package/components/nav-drawer/themes/light/nav-drawer.base.css.d.ts +1 -0
- package/components/nav-drawer/{styles → themes/light}/nav-drawer.base.css.js +0 -0
- package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -0
- package/components/radio/radio.d.ts +1 -1
- package/components/radio/themes/light/radio.base.css.js +1 -1
- package/components/radio/themes/light/radio.base.css.js.map +1 -1
- package/components/radio/themes/light/radio.fluent.css.js +1 -1
- package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
- package/components/rating/rating.d.ts +1 -1
- package/components/slider/range-slider.d.ts +1 -1
- package/components/slider/slider.d.ts +1 -1
- package/components/snackbar/snackbar.d.ts +1 -1
- package/components/snackbar/snackbar.js +5 -4
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/snackbar/themes/dark/snackbar.indigo.css.d.ts +1 -0
- package/components/snackbar/themes/dark/snackbar.indigo.css.js +3 -0
- package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -0
- package/components/snackbar/themes/light/snackbar.base.css.d.ts +1 -0
- package/components/snackbar/themes/light/snackbar.base.css.js +3 -0
- package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -0
- package/components/snackbar/themes/light/snackbar.bootstrap.css.d.ts +1 -0
- package/components/snackbar/themes/light/snackbar.bootstrap.css.js +3 -0
- package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -0
- package/components/snackbar/themes/light/snackbar.fluent.css.d.ts +1 -0
- package/components/snackbar/themes/light/snackbar.fluent.css.js +3 -0
- package/components/snackbar/themes/light/snackbar.fluent.css.js.map +1 -0
- package/components/snackbar/themes/light/snackbar.indigo.css.d.ts +1 -0
- package/components/snackbar/themes/light/snackbar.indigo.css.js +3 -0
- package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -0
- package/components/tabs/tab-panel.d.ts +20 -0
- package/components/tabs/tab-panel.js +21 -0
- package/components/tabs/tab-panel.js.map +1 -0
- package/components/tabs/tab.d.ts +37 -0
- package/components/tabs/tab.js +71 -0
- package/components/tabs/tab.js.map +1 -0
- package/components/tabs/tabs.d.ts +80 -0
- package/components/tabs/tabs.js +308 -0
- package/components/tabs/tabs.js.map +1 -0
- package/components/tabs/themes/dark/tab.dark.base.css.d.ts +1 -0
- package/components/tabs/themes/dark/tab.dark.base.css.js +3 -0
- package/components/tabs/themes/dark/tab.dark.base.css.js.map +1 -0
- package/components/tabs/themes/dark/tab.dark.bootstrap.css.d.ts +1 -0
- package/components/tabs/themes/dark/tab.dark.bootstrap.css.js +3 -0
- package/components/tabs/themes/dark/tab.dark.bootstrap.css.js.map +1 -0
- package/components/tabs/themes/light/tab-panel.base.css.d.ts +1 -0
- package/components/tabs/themes/light/tab-panel.base.css.js +3 -0
- package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -0
- package/components/tabs/themes/light/tab.base.css.d.ts +1 -0
- package/components/tabs/themes/light/tab.base.css.js +3 -0
- package/components/tabs/themes/light/tab.base.css.js.map +1 -0
- package/components/tabs/themes/light/tab.bootstrap.css.d.ts +1 -0
- package/components/tabs/themes/light/tab.bootstrap.css.js +3 -0
- package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -0
- package/components/tabs/themes/light/tab.fluent.css.d.ts +1 -0
- package/components/tabs/themes/light/tab.fluent.css.js +3 -0
- package/components/tabs/themes/light/tab.fluent.css.js.map +1 -0
- package/components/tabs/themes/light/tab.indigo.css.d.ts +1 -0
- package/components/tabs/themes/light/tab.indigo.css.js +3 -0
- package/components/tabs/themes/light/tab.indigo.css.js.map +1 -0
- package/components/tabs/themes/light/tabs.base.css.d.ts +1 -0
- package/components/tabs/themes/light/tabs.base.css.js +3 -0
- package/components/tabs/themes/light/tabs.base.css.js.map +1 -0
- package/components/tabs/themes/light/tabs.bootstrap.css.d.ts +1 -0
- package/components/tabs/themes/light/tabs.bootstrap.css.js +3 -0
- package/components/tabs/themes/light/tabs.bootstrap.css.js.map +1 -0
- package/components/tabs/themes/light/tabs.fluent.css.d.ts +1 -0
- package/components/tabs/themes/light/tabs.fluent.css.js +3 -0
- package/components/tabs/themes/light/tabs.fluent.css.js.map +1 -0
- package/components/tabs/themes/light/tabs.indigo.css.d.ts +1 -0
- package/components/tabs/themes/light/tabs.indigo.css.js +3 -0
- package/components/tabs/themes/light/tabs.indigo.css.js.map +1 -0
- package/components/tabs/utils.d.ts +14 -0
- package/components/tabs/utils.js +32 -0
- package/components/tabs/utils.js.map +1 -0
- package/components/toast/themes/toast.base.css.js +1 -1
- package/components/toast/themes/toast.base.css.js.map +1 -1
- package/components/tree/tree-item.d.ts +1 -0
- package/components/tree/tree-item.js +14 -3
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.d.ts +1 -1
- package/components/tree/tree.js +10 -0
- package/components/tree/tree.js.map +1 -1
- package/custom-elements.json +544 -39
- package/index.d.ts +5 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/dark/material.css +1 -1
- package/vscode-html-custom-data.json +216 -37
- package/components/nav-drawer/styles/indigo/nav-drawer-header-item.indigo.css.js.map +0 -1
- package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js +0 -3
- package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js.map +0 -1
- package/components/nav-drawer/styles/indigo/nav-drawer.indigo.css.js +0 -3
- package/components/nav-drawer/styles/indigo/nav-drawer.indigo.css.js.map +0 -1
- package/components/nav-drawer/styles/nav-drawer-header-item.base.css.js.map +0 -1
- package/components/nav-drawer/styles/nav-drawer-item.base.css.js.map +0 -1
- package/components/nav-drawer/styles/nav-drawer.base.css.js.map +0 -1
- package/components/snackbar/themes/snackbar.base.css.js +0 -3
- package/components/snackbar/themes/snackbar.base.css.js.map +0 -1
- package/components/snackbar/themes/snackbar.bootstrap.css.js +0 -3
- package/components/snackbar/themes/snackbar.bootstrap.css.js.map +0 -1
- package/components/snackbar/themes/snackbar.fluent.css.js +0 -3
- package/components/snackbar/themes/snackbar.fluent.css.js.map +0 -1
- package/components/snackbar/themes/snackbar.indigo.css.js +0 -3
- package/components/snackbar/themes/snackbar.indigo.css.js.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host::after{background:none}:host [part~=input]{border-radius:clamp(0rem,var(--igc-radius-factor)*.25rem,.25rem);padding:initial;background:var(--input-background, #fff);-webkit-box-shadow:0 0 0 0 rgba(0,0,0,0);box-shadow:0 0 0 0 rgba(0,0,0,0);z-index:1;border:1px solid hsla(var(--igc-gray-400), var(--igc-gray-a));-webkit-transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;-o-transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out,-webkit-box-shadow .15s ease-out;grid-area:1/2}:host [part~=prefixed]{border-start-start-radius:0;border-end-start-radius:0}:host [part~=suffixed]{border-start-end-radius:0;border-end-end-radius:0}:host label{line-height:1.5rem;margin-bottom:.25rem;color:hsla(var(--igc-gray-700), var(--igc-gray-a))}:host label:empty{display:none}:host [part~=container]{border:none;grid-template-columns:auto 1fr auto}:host [part~=container]::after{display:none}:host [part=prefix],:host [part=suffix]{position:relative;padding:rem(16px);border-radius:none;min-width:auto;color:hsla(var(--igc-gray-800), var(--igc-gray-a));background:hsla(var(--igc-gray-300), var(--igc-gray-a));-webkit-transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;-o-transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out,-webkit-box-shadow .15s ease-out}:host [part=prefix]:focus-within,:host [part=suffix]:focus-within{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-gray-300), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-gray-300), 0.38)}:host [part=prefix]{grid-area:1/1;border-style:solid;border-color:hsla(var(--igc-gray-400), var(--igc-gray-a));border-inline-start-width:1px;border-inline-end-width:0;border-block-start-width:1px;border-block-end-width:1px;border-start-start-radius:.25rem;border-end-start-radius:.25rem}:host [part=suffix]{grid-area:1/3;border-style:solid;border-color:hsla(var(--igc-gray-400), var(--igc-gray-a));border-inline-start-width:0;border-inline-end-width:1px;border-block-start-width:1px;border-block-end-width:1px;border-start-end-radius:.25rem;border-end-end-radius:.25rem}:host [part=helper-text]{margin-top:rem(4px);color:hsla(var(--igc-gray-700), var(--igc-gray-a))}:host([size=large]) [part~=container],:host([size=large]) [part~=input]{height:3rem}:host([size=large]) [part~=input]{font-size:1.25rem;padding:.5rem 1rem}:host([size=large]) [part=prefix],:host([size=large]) [part=suffix]{font-size:rem(20px);padding:.5rem 1rem}:host([size=medium]) [part~=container],:host([size=medium]) [part~=input]{height:2.375rem}:host([size=medium]) [part~=input]{font-size:1rem;padding:.375rem .75rem}:host([size=medium]) [part=prefix],:host([size=medium]) [part=suffix]{font-size:1rem;padding:.375rem .75rem}:host([size=small]) [part~=container],:host([size=small]) [part~=input]{height:1.9375rem}:host([size=small]) [part~=input]{font-size:1rem;padding:.25rem .5rem}:host([size=small]) [part=prefix],:host([size=small]) [part=suffix]{font-size:.875rem;padding:.25rem .5rem}:host(:focus-within) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-primary-500), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-primary-500), 0.38);border-color:hsla(var(--igc-primary-500), var(--igc-primary-a))}:host([invalid]:focus-within) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-error-500), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-error-500), 0.38);border-color:hsla(var(--igc-error-500), var(--igc-error-a))}:host([disabled]) [part=prefix],:host([disabled]) [part=suffix],:host([disabled]) [part~=input],:host([readonly]) [part=prefix],:host([readonly]) [part=suffix],:host([readonly]) [part~=input]{background:hsla(var(--igc-gray-100), var(--igc-gray-a));border-color:hsla(var(--igc-gray-300), var(--igc-gray-a));color:hsla(var(--igc-gray-400), var(--igc-gray-a))}:host([readonly]) [part=prefix],:host([readonly]) [part=suffix],:host([readonly]) [part~=input]{color:hsla(var(--igc-gray-800), var(--igc-gray-a))}:host(:focus-within[readonly]) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-gray-400), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-gray-400), 0.38);border-color:hsla(var(--igc-gray-400), var(--igc-gray-a))}`;
|
|
2
|
+
export const styles = css `:host::after{background:none}:host [part~=input]{border-radius:clamp(0rem,var(--igc-radius-factor)*.25rem,.25rem);padding:initial;background:var(--input-background, #fff);-webkit-box-shadow:0 0 0 0 rgba(0,0,0,0);box-shadow:0 0 0 0 rgba(0,0,0,0);z-index:1;border:1px solid hsla(var(--igc-gray-400), var(--igc-gray-a));-webkit-transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;-o-transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out,-webkit-box-shadow .15s ease-out;grid-area:1/2}:host [part~=prefixed]{border-start-start-radius:0;border-end-start-radius:0}:host [part~=suffixed]{border-start-end-radius:0;border-end-end-radius:0}:host label{line-height:1.5rem;margin-bottom:.25rem;color:hsla(var(--igc-gray-700), var(--igc-gray-a))}:host label:empty{display:none}:host [part~=container]{border:none;grid-template-columns:auto 1fr auto}:host [part~=container]::after{display:none}:host [part=prefix],:host [part=suffix]{position:relative;padding:rem(16px);border-radius:none;min-width:auto;color:hsla(var(--igc-gray-800), var(--igc-gray-a));background:hsla(var(--igc-gray-300), var(--igc-gray-a));-webkit-transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;-o-transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out,-webkit-box-shadow .15s ease-out}:host [part=prefix]:focus-within,:host [part=suffix]:focus-within{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-gray-300), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-gray-300), 0.38)}:host [part=prefix]{grid-area:1/1;border-style:solid;border-color:hsla(var(--igc-gray-400), var(--igc-gray-a));border-inline-start-width:1px;border-inline-end-width:0;border-block-start-width:1px;border-block-end-width:1px;border-start-start-radius:.25rem;border-end-start-radius:.25rem}:host [part=suffix]{grid-area:1/3;border-style:solid;border-color:hsla(var(--igc-gray-400), var(--igc-gray-a));border-inline-start-width:0;border-inline-end-width:1px;border-block-start-width:1px;border-block-end-width:1px;border-start-end-radius:.25rem;border-end-end-radius:.25rem}:host [part=helper-text]{font-family:var(--igc-body-2-font-family);font-weight:var(--igc-body-2-font-weight);font-size:var(--igc-body-2-font-size);font-style:var(--igc-body-2-font-style);letter-spacing:var(--igc-body-2-letter-spacing);text-transform:var(--igc-body-2-text-transform);line-height:var(--igc-body-2-line-height);margin-top:var(--igc-body-2-margin-top);margin-bottom:var(--igc-body-2-margin-bottom);margin-top:rem(4px);color:hsla(var(--igc-gray-700), var(--igc-gray-a))}:host([size=large]) [part~=container],:host([size=large]) [part~=input]{height:3rem}:host([size=large]) [part~=input]{font-size:1.25rem;padding:.5rem 1rem}:host([size=large]) [part=prefix],:host([size=large]) [part=suffix]{font-size:rem(20px);padding:.5rem 1rem}:host([size=medium]) [part~=container],:host([size=medium]) [part~=input]{height:2.375rem}:host([size=medium]) [part~=input]{font-size:1rem;padding:.375rem .75rem}:host([size=medium]) [part=prefix],:host([size=medium]) [part=suffix]{font-size:1rem;padding:.375rem .75rem}:host([size=small]) [part~=container],:host([size=small]) [part~=input]{height:1.9375rem}:host([size=small]) [part~=input]{font-size:1rem;padding:.25rem .5rem}:host([size=small]) [part=prefix],:host([size=small]) [part=suffix]{font-size:.875rem;padding:.25rem .5rem}:host(:focus-within) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-primary-500), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-primary-500), 0.38);border-color:hsla(var(--igc-primary-500), var(--igc-primary-a))}:host([invalid]:focus-within) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-error-500), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-error-500), 0.38);border-color:hsla(var(--igc-error-500), var(--igc-error-a))}:host([disabled]) [part=prefix],:host([disabled]) [part=suffix],:host([disabled]) [part~=input],:host([readonly]) [part=prefix],:host([readonly]) [part=suffix],:host([readonly]) [part~=input]{background:hsla(var(--igc-gray-100), var(--igc-gray-a));border-color:hsla(var(--igc-gray-300), var(--igc-gray-a));color:hsla(var(--igc-gray-400), var(--igc-gray-a))}:host([readonly]) [part=prefix],:host([readonly]) [part=suffix],:host([readonly]) [part~=input]{color:hsla(var(--igc-gray-800), var(--igc-gray-a))}:host(:focus-within[readonly]) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-gray-400), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-gray-400), 0.38);border-color:hsla(var(--igc-gray-400), var(--igc-gray-a))}`;
|
|
3
3
|
//# sourceMappingURL=input.bootstrap.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/input/themes/light/input.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"input.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/input/themes/light/input.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,uvJAAuvJ,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host::after{background:none}:host [part~=input]{border-radius:clamp(0rem,var(--igc-radius-factor)*.25rem,.25rem);padding:initial;background:var(--input-background, #fff);-webkit-box-shadow:0 0 0 0 rgba(0,0,0,0);box-shadow:0 0 0 0 rgba(0,0,0,0);z-index:1;border:1px solid hsla(var(--igc-gray-400), var(--igc-gray-a));-webkit-transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;-o-transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out,-webkit-box-shadow .15s ease-out;grid-area:1/2}:host [part~=prefixed]{border-start-start-radius:0;border-end-start-radius:0}:host [part~=suffixed]{border-start-end-radius:0;border-end-end-radius:0}:host label{line-height:1.5rem;margin-bottom:.25rem;color:hsla(var(--igc-gray-700), var(--igc-gray-a))}:host label:empty{display:none}:host [part~=container]{border:none;grid-template-columns:auto 1fr auto}:host [part~=container]::after{display:none}:host [part=prefix],:host [part=suffix]{position:relative;padding:rem(16px);border-radius:none;min-width:auto;color:hsla(var(--igc-gray-800), var(--igc-gray-a));background:hsla(var(--igc-gray-300), var(--igc-gray-a));-webkit-transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;transition:border .15s ease-out,-webkit-box-shadow .15s ease-out;-o-transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out;transition:box-shadow .15s ease-out,border .15s ease-out,-webkit-box-shadow .15s ease-out}:host [part=prefix]:focus-within,:host [part=suffix]:focus-within{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-gray-300), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-gray-300), 0.38)}:host [part=prefix]{grid-area:1/1;border-style:solid;border-color:hsla(var(--igc-gray-400), var(--igc-gray-a));border-inline-start-width:1px;border-inline-end-width:0;border-block-start-width:1px;border-block-end-width:1px;border-start-start-radius:.25rem;border-end-start-radius:.25rem}:host [part=suffix]{grid-area:1/3;border-style:solid;border-color:hsla(var(--igc-gray-400), var(--igc-gray-a));border-inline-start-width:0;border-inline-end-width:1px;border-block-start-width:1px;border-block-end-width:1px;border-start-end-radius:.25rem;border-end-end-radius:.25rem}:host [part=helper-text]{font-family:var(--igc-body-2-font-family);font-weight:var(--igc-body-2-font-weight);font-size:var(--igc-body-2-font-size);font-style:var(--igc-body-2-font-style);letter-spacing:var(--igc-body-2-letter-spacing);text-transform:var(--igc-body-2-text-transform);line-height:var(--igc-body-2-line-height);margin-top:var(--igc-body-2-margin-top);margin-bottom:var(--igc-body-2-margin-bottom);margin-top:rem(4px);color:hsla(var(--igc-gray-700), var(--igc-gray-a))}:host([size=large]) [part~=container],:host([size=large]) [part~=input]{height:3rem}:host([size=large]) [part~=input]{font-size:1.25rem;padding:.5rem 1rem}:host([size=large]) [part=prefix],:host([size=large]) [part=suffix]{font-size:rem(20px);padding:.5rem 1rem}:host([size=medium]) [part~=container],:host([size=medium]) [part~=input]{height:2.375rem}:host([size=medium]) [part~=input]{font-size:1rem;padding:.375rem .75rem}:host([size=medium]) [part=prefix],:host([size=medium]) [part=suffix]{font-size:1rem;padding:.375rem .75rem}:host([size=small]) [part~=container],:host([size=small]) [part~=input]{height:1.9375rem}:host([size=small]) [part~=input]{font-size:1rem;padding:.25rem .5rem}:host([size=small]) [part=prefix],:host([size=small]) [part=suffix]{font-size:.875rem;padding:.25rem .5rem}:host(:focus-within) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-primary-500), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-primary-500), 0.38);border-color:hsla(var(--igc-primary-500), var(--igc-primary-a))}:host([invalid]:focus-within) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-error-500), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-error-500), 0.38);border-color:hsla(var(--igc-error-500), var(--igc-error-a))}:host([disabled]) [part=prefix],:host([disabled]) [part=suffix],:host([disabled]) [part~=input],:host([readonly]) [part=prefix],:host([readonly]) [part=suffix],:host([readonly]) [part~=input]{background:hsla(var(--igc-gray-100), var(--igc-gray-a));border-color:hsla(var(--igc-gray-300), var(--igc-gray-a));color:hsla(var(--igc-gray-400), var(--igc-gray-a))}:host([readonly]) [part=prefix],:host([readonly]) [part=suffix],:host([readonly]) [part~=input]{color:hsla(var(--igc-gray-800), var(--igc-gray-a))}:host(:focus-within[readonly]) [part~=input]{-webkit-box-shadow:0 0 0 .25rem hsla(var(--igc-gray-400), 0.38);box-shadow:0 0 0 .25rem hsla(var(--igc-gray-400), 0.38);border-color:hsla(var(--igc-gray-400), var(--igc-gray-a))}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{background:var(--igc-gray-900-contrast);color:hsla(var(--igc-gray-900), var(--igc-gray-a));border-bottom:.0625rem solid hsla(var(--igc-gray-200), var(--igc-gray-a))}:host(:hover),:host(:focus-within){background:hsla(var(--igc-gray-100), var(--igc-gray-a))}:host(:last-of-type){border-bottom:none}`;
|
|
2
|
+
export const styles = css `:host{background:var(--igc-gray-900-contrast);color:hsla(var(--igc-gray-900), var(--igc-gray-a));border-bottom:.0625rem solid hsla(var(--igc-gray-200), var(--igc-gray-a))}:host(:hover),:host(:focus-within){background:hsla(var(--igc-gray-100), var(--igc-gray-a))}:host(:last-of-type){border-bottom:none}[part=title]{font-family:var(--igc-body-1-font-family);font-weight:var(--igc-body-1-font-weight);font-size:var(--igc-body-1-font-size);font-style:var(--igc-body-1-font-style);letter-spacing:var(--igc-body-1-letter-spacing);text-transform:var(--igc-body-1-text-transform);line-height:var(--igc-body-1-line-height);margin-top:var(--igc-body-1-margin-top);margin-bottom:var(--igc-body-1-margin-bottom)}[part=subtitle]{font-family:var(--igc-subtitle-1-font-family);font-weight:var(--igc-subtitle-1-font-weight);font-size:var(--igc-subtitle-1-font-size);font-style:var(--igc-subtitle-1-font-style);letter-spacing:var(--igc-subtitle-1-letter-spacing);text-transform:var(--igc-subtitle-1-text-transform);line-height:var(--igc-subtitle-1-line-height);margin-top:var(--igc-subtitle-1-margin-top);margin-bottom:var(--igc-subtitle-1-margin-bottom)}`;
|
|
3
3
|
//# sourceMappingURL=list-item.bootstrap.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-item.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list-item.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"list-item.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list-item.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,qnCAAqnC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{background:var(--igc-gray-900-contrast);color:hsla(var(--igc-gray-900), var(--igc-gray-a));border-bottom:.0625rem solid hsla(var(--igc-gray-200), var(--igc-gray-a))}:host(:hover),:host(:focus-within){background:hsla(var(--igc-gray-100), var(--igc-gray-a))}:host(:last-of-type){border-bottom:none}[part=title]{font-family:var(--igc-body-1-font-family);font-weight:var(--igc-body-1-font-weight);font-size:var(--igc-body-1-font-size);font-style:var(--igc-body-1-font-style);letter-spacing:var(--igc-body-1-letter-spacing);text-transform:var(--igc-body-1-text-transform);line-height:var(--igc-body-1-line-height);margin-top:var(--igc-body-1-margin-top);margin-bottom:var(--igc-body-1-margin-bottom)}[part=subtitle]{font-family:var(--igc-subtitle-1-font-family);font-weight:var(--igc-subtitle-1-font-weight);font-size:var(--igc-subtitle-1-font-size);font-style:var(--igc-subtitle-1-font-style);letter-spacing:var(--igc-subtitle-1-letter-spacing);text-transform:var(--igc-subtitle-1-text-transform);line-height:var(--igc-subtitle-1-line-height);margin-top:var(--igc-subtitle-1-margin-top);margin-bottom:var(--igc-subtitle-1-margin-bottom)}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css
|
|
2
|
+
export const styles = css `[part=title]{font-family:var(--igc-caption-font-family);font-weight:var(--igc-caption-font-weight);font-size:var(--igc-caption-font-size);font-style:var(--igc-caption-font-style);letter-spacing:var(--igc-caption-letter-spacing);text-transform:var(--igc-caption-text-transform);line-height:var(--igc-caption-line-height);margin-top:var(--igc-caption-margin-top);margin-bottom:var(--igc-caption-margin-bottom)}:host{border-bottom:.0625rem solid hsla(var(--igc-gray-100), var(--igc-gray-a))}:host(:hover),:host(:focus-within){background:var(--item-hover-bg, hsla(var(--igc-gray-200), var(--igc-gray-a)))}:host(:last-of-type){border-bottom:none}`;
|
|
3
3
|
//# sourceMappingURL=list-item.fluent.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-item.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list-item.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"list-item.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list-item.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,moBAAmoB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`[part=title]{font-family:var(--igc-caption-font-family);font-weight:var(--igc-caption-font-weight);font-size:var(--igc-caption-font-size);font-style:var(--igc-caption-font-style);letter-spacing:var(--igc-caption-letter-spacing);text-transform:var(--igc-caption-text-transform);line-height:var(--igc-caption-line-height);margin-top:var(--igc-caption-margin-top);margin-bottom:var(--igc-caption-margin-bottom)}:host{border-bottom:.0625rem solid hsla(var(--igc-gray-100), var(--igc-gray-a))}:host(:hover),:host(:focus-within){background:var(--item-hover-bg, hsla(var(--igc-gray-200), var(--igc-gray-a)))}:host(:last-of-type){border-bottom:none}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{color:hsla(var(--igc-gray-900), var(--igc-gray-a))}:host [part=subtitle]{color:hsla(var(--igc-gray-800), var(--igc-gray-a))}:host(:hover),:host(:focus-within){background:var(--item-hover-bg, hsla(var(--igc-gray-50), var(--igc-gray-a)))}`;
|
|
2
|
+
export const styles = css `:host{color:hsla(var(--igc-gray-900), var(--igc-gray-a))}:host [part=subtitle]{font-family:var(--igc-body-2-font-family);font-weight:var(--igc-body-2-font-weight);font-size:var(--igc-body-2-font-size);font-style:var(--igc-body-2-font-style);letter-spacing:var(--igc-body-2-letter-spacing);text-transform:var(--igc-body-2-text-transform);line-height:var(--igc-body-2-line-height);margin-top:var(--igc-body-2-margin-top);margin-bottom:var(--igc-body-2-margin-bottom);color:hsla(var(--igc-gray-800), var(--igc-gray-a))}:host(:hover),:host(:focus-within){background:var(--item-hover-bg, hsla(var(--igc-gray-50), var(--igc-gray-a)))}`;
|
|
3
3
|
//# sourceMappingURL=list-item.indigo.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-item.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list-item.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":"list-item.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/list/themes/light/list-item.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,snBAAsnB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{color:hsla(var(--igc-gray-900), var(--igc-gray-a))}:host [part=subtitle]{font-family:var(--igc-body-2-font-family);font-weight:var(--igc-body-2-font-weight);font-size:var(--igc-body-2-font-size);font-style:var(--igc-body-2-font-style);letter-spacing:var(--igc-body-2-letter-spacing);text-transform:var(--igc-body-2-text-transform);line-height:var(--igc-body-2-line-height);margin-top:var(--igc-body-2-margin-top);margin-bottom:var(--igc-body-2-margin-bottom);color:hsla(var(--igc-gray-800), var(--igc-gray-a))}:host(:hover),:host(:focus-within){background:var(--item-hover-bg, hsla(var(--igc-gray-50), var(--igc-gray-a)))}`;\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IgcInputBaseComponent } from '../input/input-base.js';
|
|
2
|
+
import { MaskParser } from './mask-parser.js';
|
|
3
|
+
interface MaskSelection {
|
|
4
|
+
start: number;
|
|
5
|
+
end: number;
|
|
6
|
+
}
|
|
7
|
+
export declare abstract class IgcMaskInputBaseComponent extends IgcInputBaseComponent {
|
|
8
|
+
protected parser: MaskParser;
|
|
9
|
+
protected selection: MaskSelection;
|
|
10
|
+
protected compositionStart: number;
|
|
11
|
+
protected hasFocus: boolean;
|
|
12
|
+
protected maskedValue: string;
|
|
13
|
+
protected _mask: string;
|
|
14
|
+
/** The prompt symbol to use for unfilled parts of the mask. */
|
|
15
|
+
prompt: string;
|
|
16
|
+
/** Controls the validity of the control. */
|
|
17
|
+
invalid: boolean;
|
|
18
|
+
protected get inputSelection(): MaskSelection;
|
|
19
|
+
protected get emptyMask(): string;
|
|
20
|
+
connectedCallback(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Sets a custom validation message for the control.
|
|
23
|
+
* As long as `message` is not empty, the control is considered invalid.
|
|
24
|
+
*/
|
|
25
|
+
setCustomValidity(message: string): void;
|
|
26
|
+
/** Selects all text within the input. */
|
|
27
|
+
select(): void;
|
|
28
|
+
protected handleInput({ inputType, isComposing }: InputEvent): void | Promise<void>;
|
|
29
|
+
protected handleKeydown(e: KeyboardEvent): void;
|
|
30
|
+
protected handleCut(): void;
|
|
31
|
+
protected handleDragStart(): void;
|
|
32
|
+
protected handleCompositionStart(): void;
|
|
33
|
+
protected handleCompositionEnd({ data }: CompositionEvent): void;
|
|
34
|
+
protected handleInvalid(): void;
|
|
35
|
+
setSelectionRange(start: number, end: number, direction?: 'backward' | 'forward' | 'none'): void;
|
|
36
|
+
protected abstract updateInput(part: string, start: number, finish: number): void;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { property, state } from 'lit/decorators.js';
|
|
8
|
+
import { blazorSuppress } from '../common/decorators/blazorSuppress.js';
|
|
9
|
+
import { IgcInputBaseComponent } from '../input/input-base.js';
|
|
10
|
+
import { MaskParser } from './mask-parser.js';
|
|
11
|
+
export class IgcMaskInputBaseComponent extends IgcInputBaseComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.parser = new MaskParser();
|
|
15
|
+
this.selection = { start: 0, end: 0 };
|
|
16
|
+
this.compositionStart = 0;
|
|
17
|
+
this.hasFocus = false;
|
|
18
|
+
this.maskedValue = '';
|
|
19
|
+
this._mask = '';
|
|
20
|
+
this.invalid = false;
|
|
21
|
+
}
|
|
22
|
+
get inputSelection() {
|
|
23
|
+
return {
|
|
24
|
+
start: this.input.selectionStart || 0,
|
|
25
|
+
end: this.input.selectionEnd || 0,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
get emptyMask() {
|
|
29
|
+
return this.parser.apply();
|
|
30
|
+
}
|
|
31
|
+
connectedCallback() {
|
|
32
|
+
super.connectedCallback();
|
|
33
|
+
this._mask = this._mask || this.parser.mask;
|
|
34
|
+
this.prompt = this.prompt || this.parser.prompt;
|
|
35
|
+
}
|
|
36
|
+
setCustomValidity(message) {
|
|
37
|
+
this.input.setCustomValidity(message);
|
|
38
|
+
this.invalid = !this.input.checkValidity();
|
|
39
|
+
}
|
|
40
|
+
select() {
|
|
41
|
+
this.input.select();
|
|
42
|
+
}
|
|
43
|
+
handleInput({ inputType, isComposing }) {
|
|
44
|
+
const value = this.input.value;
|
|
45
|
+
const start = this.selection.start;
|
|
46
|
+
let end = this.selection.end;
|
|
47
|
+
switch (inputType) {
|
|
48
|
+
case 'deleteContentForward':
|
|
49
|
+
this.updateInput('', start, (end = start === end ? ++end : end));
|
|
50
|
+
return this.updateComplete.then(() => this.input.setSelectionRange(end, end));
|
|
51
|
+
case 'deleteContentBackward':
|
|
52
|
+
if (isComposing)
|
|
53
|
+
return;
|
|
54
|
+
return this.updateInput('', this.inputSelection.start, end);
|
|
55
|
+
case 'deleteByCut':
|
|
56
|
+
return this.updateInput('', start, end);
|
|
57
|
+
case 'insertText':
|
|
58
|
+
return this.updateInput(value.substring(start, this.inputSelection.end), start, end);
|
|
59
|
+
case 'insertFromPaste':
|
|
60
|
+
return this.updateInput(value.substring(start, this.inputSelection.end), start, this.inputSelection.start);
|
|
61
|
+
case 'insertFromDrop':
|
|
62
|
+
return this.updateInput(value.substring(this.inputSelection.start, this.inputSelection.end), this.inputSelection.start, this.inputSelection.end);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
handleKeydown(e) {
|
|
66
|
+
if (!e.key) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
this.selection = this.inputSelection;
|
|
70
|
+
}
|
|
71
|
+
handleCut() {
|
|
72
|
+
this.selection = this.inputSelection;
|
|
73
|
+
}
|
|
74
|
+
handleDragStart() {
|
|
75
|
+
this.selection = this.inputSelection;
|
|
76
|
+
}
|
|
77
|
+
handleCompositionStart() {
|
|
78
|
+
this.compositionStart = this.inputSelection.start;
|
|
79
|
+
}
|
|
80
|
+
handleCompositionEnd({ data }) {
|
|
81
|
+
const start = this.compositionStart, end = this.inputSelection.end;
|
|
82
|
+
this.updateInput(data, start, end);
|
|
83
|
+
}
|
|
84
|
+
handleInvalid() {
|
|
85
|
+
this.invalid = true;
|
|
86
|
+
}
|
|
87
|
+
setSelectionRange(start, end, direction) {
|
|
88
|
+
super.setSelectionRange(start, end, direction);
|
|
89
|
+
this.selection = { start, end };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
__decorate([
|
|
93
|
+
state()
|
|
94
|
+
], IgcMaskInputBaseComponent.prototype, "hasFocus", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
state()
|
|
97
|
+
], IgcMaskInputBaseComponent.prototype, "maskedValue", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
state()
|
|
100
|
+
], IgcMaskInputBaseComponent.prototype, "_mask", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
property()
|
|
103
|
+
], IgcMaskInputBaseComponent.prototype, "prompt", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
property({ reflect: true, type: Boolean })
|
|
106
|
+
], IgcMaskInputBaseComponent.prototype, "invalid", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
blazorSuppress()
|
|
109
|
+
], IgcMaskInputBaseComponent.prototype, "setSelectionRange", null);
|
|
110
|
+
//# sourceMappingURL=mask-input-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mask-input-base.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { property, state } from 'lit/decorators.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { IgcInputBaseComponent } from '../input/input-base.js';\nimport { MaskParser } from './mask-parser.js';\ninterface MaskSelection {\n start: number;\n end: number;\n}\n\nexport abstract class IgcMaskInputBaseComponent extends IgcInputBaseComponent {\n protected parser = new MaskParser();\n protected selection: MaskSelection = { start: 0, end: 0 };\n protected compositionStart = 0;\n\n @state()\n protected hasFocus = false;\n\n @state()\n protected maskedValue = '';\n\n @state()\n protected _mask = '';\n\n /** The prompt symbol to use for unfilled parts of the mask. */\n @property()\n public prompt!: string;\n\n /** Controls the validity of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n protected get inputSelection(): MaskSelection {\n return {\n start: this.input.selectionStart || 0,\n end: this.input.selectionEnd || 0,\n };\n }\n\n protected get emptyMask(): string {\n return this.parser.apply();\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this._mask = this._mask || this.parser.mask;\n this.prompt = this.prompt || this.parser.prompt;\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.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n /** Selects all text within the input. */\n public select() {\n this.input.select();\n }\n\n protected handleInput({ inputType, isComposing }: InputEvent) {\n const value = this.input.value;\n const start = this.selection.start;\n let end = this.selection.end;\n\n switch (inputType) {\n case 'deleteContentForward':\n this.updateInput('', start, (end = start === end ? ++end : end));\n return this.updateComplete.then(() =>\n this.input.setSelectionRange(end, end)\n );\n\n case 'deleteContentBackward':\n if (isComposing) return;\n return this.updateInput('', this.inputSelection.start, end);\n\n case 'deleteByCut':\n return this.updateInput('', start, end);\n\n case 'insertText':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n start,\n end\n );\n\n case 'insertFromPaste':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n start,\n this.inputSelection.start\n );\n\n case 'insertFromDrop':\n return this.updateInput(\n value.substring(this.inputSelection.start, this.inputSelection.end),\n this.inputSelection.start,\n this.inputSelection.end\n );\n }\n }\n\n protected handleKeydown(e: KeyboardEvent) {\n if (!e.key) {\n return;\n }\n this.selection = this.inputSelection;\n }\n\n protected handleCut() {\n this.selection = this.inputSelection;\n }\n\n protected handleDragStart() {\n this.selection = this.inputSelection;\n }\n\n protected handleCompositionStart() {\n this.compositionStart = this.inputSelection.start;\n }\n\n protected handleCompositionEnd({ data }: CompositionEvent) {\n const start = this.compositionStart,\n end = this.inputSelection.end;\n this.updateInput(data, start, end);\n }\n\n protected handleInvalid() {\n this.invalid = true;\n }\n\n @blazorSuppress()\n public override setSelectionRange(\n start: number,\n end: number,\n direction?: 'backward' | 'forward' | 'none'\n ): void {\n super.setSelectionRange(start, end, direction);\n this.selection = { start, end };\n }\n\n protected abstract updateInput(\n part: string,\n start: number,\n finish: number\n ): void;\n}\n"]}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MaskParser } from './mask-parser.js';
|
|
3
|
-
interface MaskSelection {
|
|
4
|
-
start: number;
|
|
5
|
-
end: number;
|
|
6
|
-
}
|
|
1
|
+
import { IgcMaskInputBaseComponent } from './mask-input-base.js';
|
|
7
2
|
/**
|
|
8
3
|
* A masked input is an input field where a developer can control user input and format the visible value,
|
|
9
4
|
* based on configurable rules
|
|
@@ -26,19 +21,9 @@ interface MaskSelection {
|
|
|
26
21
|
* @csspart suffix - The suffix wrapper
|
|
27
22
|
* @csspart helper-text - The helper text wrapper
|
|
28
23
|
*/
|
|
29
|
-
export default class IgcMaskInputComponent extends
|
|
24
|
+
export default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
|
|
30
25
|
static readonly tagName = "igc-mask-input";
|
|
31
|
-
protected parser: MaskParser;
|
|
32
26
|
protected _value: string;
|
|
33
|
-
protected selection: MaskSelection;
|
|
34
|
-
protected compositionStart: number;
|
|
35
|
-
protected hasFocus: boolean;
|
|
36
|
-
protected maskedValue: string;
|
|
37
|
-
protected get inputSelection(): MaskSelection;
|
|
38
|
-
/** The direction attribute of the control. */
|
|
39
|
-
dir: 'ltr' | 'rtl' | 'auto';
|
|
40
|
-
/** Controls the validity of the control. */
|
|
41
|
-
invalid: boolean;
|
|
42
27
|
/**
|
|
43
28
|
* Dictates the behavior when retrieving the value of the control:
|
|
44
29
|
*
|
|
@@ -56,42 +41,27 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
56
41
|
get value(): string;
|
|
57
42
|
set value(string: string);
|
|
58
43
|
/** The mask pattern to apply on the input. */
|
|
59
|
-
mask: string;
|
|
60
|
-
/** The
|
|
61
|
-
|
|
44
|
+
get mask(): string;
|
|
45
|
+
/** The mask pattern to apply on the input. */
|
|
46
|
+
set mask(val: string);
|
|
62
47
|
protected promptChange(): void;
|
|
63
48
|
protected maskChange(): void;
|
|
64
49
|
protected handleInvalidState(): void;
|
|
65
50
|
connectedCallback(): void;
|
|
66
|
-
protected handleKeydown(e: KeyboardEvent): void;
|
|
67
|
-
protected handleCompositionStart(): void;
|
|
68
|
-
protected handleCompositionEnd({ data }: CompositionEvent): void;
|
|
69
|
-
protected handleInput({ inputType, isComposing }: InputEvent): void | Promise<void>;
|
|
70
51
|
protected updateInput(part: string, start: number, finish: number): void;
|
|
71
|
-
protected handleCut(): void;
|
|
72
|
-
protected handleDragStart(): void;
|
|
73
52
|
protected handleDragEnter(): void;
|
|
74
53
|
protected handleDragLeave(): void;
|
|
75
54
|
protected handleFocus(): void;
|
|
76
55
|
protected handleBlur(): void;
|
|
77
56
|
protected handleChange(): void;
|
|
78
|
-
protected handleInvalid(): void;
|
|
79
57
|
protected handleClick(): void;
|
|
80
58
|
protected updateMaskedValue(): void;
|
|
81
59
|
/** Replaces the selected text in the control and re-applies the mask */
|
|
82
60
|
setRangeText(replacement: string, start: number, end: number, _selectMode?: 'select' | 'start' | 'end' | 'preserve'): void;
|
|
83
|
-
setSelectionRange(start: number, end: number, direction?: 'backward' | 'forward' | 'none'): void;
|
|
84
61
|
/** Checks for validity of the control and shows the browser message if it's invalid. */
|
|
85
62
|
reportValidity(): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Sets a custom validation message for the control.
|
|
88
|
-
* As long as `message` is not empty, the control is considered invalid.
|
|
89
|
-
*/
|
|
90
|
-
setCustomValidity(message: string): void;
|
|
91
63
|
/** Check for validity of the control */
|
|
92
64
|
checkValidity(): boolean;
|
|
93
|
-
/** Selects all text within the input. */
|
|
94
|
-
select(): void;
|
|
95
65
|
protected renderInput(): import("lit-html").TemplateResult<1>;
|
|
96
66
|
}
|
|
97
67
|
declare global {
|
|
@@ -99,4 +69,3 @@ declare global {
|
|
|
99
69
|
'igc-mask-input': IgcMaskInputComponent;
|
|
100
70
|
}
|
|
101
71
|
}
|
|
102
|
-
export {};
|
|
@@ -5,33 +5,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { html } from 'lit';
|
|
8
|
-
import { property
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
9
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
10
10
|
import { live } from 'lit/directives/live.js';
|
|
11
11
|
import { watch } from '../common/decorators/watch.js';
|
|
12
12
|
import { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';
|
|
13
13
|
import { partNameMap } from '../common/util.js';
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
14
|
+
import { IgcMaskInputBaseComponent } from './mask-input-base.js';
|
|
15
|
+
export default class IgcMaskInputComponent extends IgcMaskInputBaseComponent {
|
|
17
16
|
constructor() {
|
|
18
17
|
super(...arguments);
|
|
19
|
-
this.parser = new MaskParser();
|
|
20
18
|
this._value = '';
|
|
21
|
-
this.selection = { start: 0, end: 0 };
|
|
22
|
-
this.compositionStart = 0;
|
|
23
|
-
this.hasFocus = false;
|
|
24
|
-
this.maskedValue = '';
|
|
25
|
-
this.dir = 'auto';
|
|
26
|
-
this.invalid = false;
|
|
27
19
|
this.valueMode = 'raw';
|
|
28
20
|
}
|
|
29
|
-
get inputSelection() {
|
|
30
|
-
return {
|
|
31
|
-
start: this.input.selectionStart || 0,
|
|
32
|
-
end: this.input.selectionEnd || 0,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
21
|
get value() {
|
|
36
22
|
return this._value
|
|
37
23
|
? this.valueMode !== 'raw'
|
|
@@ -43,6 +29,12 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
43
29
|
this._value = string !== null && string !== void 0 ? string : '';
|
|
44
30
|
this.maskedValue = this.parser.apply(this._value);
|
|
45
31
|
}
|
|
32
|
+
get mask() {
|
|
33
|
+
return this._mask;
|
|
34
|
+
}
|
|
35
|
+
set mask(val) {
|
|
36
|
+
this._mask = val;
|
|
37
|
+
}
|
|
46
38
|
promptChange() {
|
|
47
39
|
this.parser.prompt = this.prompt;
|
|
48
40
|
if (this.value) {
|
|
@@ -63,41 +55,6 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
63
55
|
this.mask = this.mask || this.parser.mask;
|
|
64
56
|
this.prompt = this.prompt || this.parser.prompt;
|
|
65
57
|
}
|
|
66
|
-
handleKeydown(e) {
|
|
67
|
-
if (!e.key) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
this.selection = this.inputSelection;
|
|
71
|
-
}
|
|
72
|
-
handleCompositionStart() {
|
|
73
|
-
this.compositionStart = this.inputSelection.start;
|
|
74
|
-
}
|
|
75
|
-
handleCompositionEnd({ data }) {
|
|
76
|
-
const start = this.compositionStart, end = this.inputSelection.end;
|
|
77
|
-
this.updateInput(data, start, end);
|
|
78
|
-
}
|
|
79
|
-
handleInput({ inputType, isComposing }) {
|
|
80
|
-
const value = this.input.value;
|
|
81
|
-
const start = this.selection.start;
|
|
82
|
-
let end = this.selection.end;
|
|
83
|
-
switch (inputType) {
|
|
84
|
-
case 'deleteContentForward':
|
|
85
|
-
this.updateInput('', start, (end = start === end ? ++end : end));
|
|
86
|
-
return this.updateComplete.then(() => this.input.setSelectionRange(end, end));
|
|
87
|
-
case 'deleteContentBackward':
|
|
88
|
-
if (isComposing)
|
|
89
|
-
return;
|
|
90
|
-
return this.updateInput('', this.inputSelection.start, end);
|
|
91
|
-
case 'deleteByCut':
|
|
92
|
-
return this.updateInput('', start, end);
|
|
93
|
-
case 'insertText':
|
|
94
|
-
return this.updateInput(value.substring(start, this.inputSelection.end), start, end);
|
|
95
|
-
case 'insertFromPaste':
|
|
96
|
-
return this.updateInput(value.substring(start, this.inputSelection.end), start, this.inputSelection.start);
|
|
97
|
-
case 'insertFromDrop':
|
|
98
|
-
return this.updateInput(value.substring(this.inputSelection.start, this.inputSelection.end), this.inputSelection.start, this.inputSelection.end);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
58
|
updateInput(part, start, finish) {
|
|
102
59
|
const { value, end } = this.parser.replace(this.maskedValue, part, start, finish);
|
|
103
60
|
this.maskedValue = value;
|
|
@@ -108,12 +65,6 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
108
65
|
}
|
|
109
66
|
this.updateComplete.then(() => this.input.setSelectionRange(end, end));
|
|
110
67
|
}
|
|
111
|
-
handleCut() {
|
|
112
|
-
this.selection = this.inputSelection;
|
|
113
|
-
}
|
|
114
|
-
handleDragStart() {
|
|
115
|
-
this.selection = this.inputSelection;
|
|
116
|
-
}
|
|
117
68
|
handleDragEnter() {
|
|
118
69
|
if (!this.hasFocus && !this._value) {
|
|
119
70
|
this.maskedValue = this.parser.apply();
|
|
@@ -144,9 +95,6 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
144
95
|
this.emitEvent('igcChange', { detail: this.value });
|
|
145
96
|
this.invalid = !this.checkValidity();
|
|
146
97
|
}
|
|
147
|
-
handleInvalid() {
|
|
148
|
-
this.invalid = true;
|
|
149
|
-
}
|
|
150
98
|
handleClick() {
|
|
151
99
|
if (this.input.selectionStart === this.input.selectionEnd &&
|
|
152
100
|
this.input.selectionStart === this.maskedValue.length) {
|
|
@@ -163,10 +111,6 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
163
111
|
this.maskedValue = this.parser.apply(this.parser.parse(this.input.value));
|
|
164
112
|
this._value = this.parser.parse(this.maskedValue);
|
|
165
113
|
}
|
|
166
|
-
setSelectionRange(start, end, direction) {
|
|
167
|
-
super.setSelectionRange(start, end, direction);
|
|
168
|
-
this.selection = { start, end };
|
|
169
|
-
}
|
|
170
114
|
reportValidity() {
|
|
171
115
|
const state = this._value
|
|
172
116
|
? this.parser.isValidString(this.input.value)
|
|
@@ -174,10 +118,6 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
174
118
|
this.invalid = !state;
|
|
175
119
|
return state;
|
|
176
120
|
}
|
|
177
|
-
setCustomValidity(message) {
|
|
178
|
-
this.input.setCustomValidity(message);
|
|
179
|
-
this.invalid = !this.input.checkValidity();
|
|
180
|
-
}
|
|
181
121
|
checkValidity() {
|
|
182
122
|
if (this.disabled) {
|
|
183
123
|
return this.input.checkValidity();
|
|
@@ -187,9 +127,6 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
187
127
|
}
|
|
188
128
|
return (this.input.checkValidity() && this.parser.isValidString(this.input.value));
|
|
189
129
|
}
|
|
190
|
-
select() {
|
|
191
|
-
this.input.select();
|
|
192
|
-
}
|
|
193
130
|
renderInput() {
|
|
194
131
|
var _a;
|
|
195
132
|
return html `
|
|
@@ -221,18 +158,6 @@ export default class IgcMaskInputComponent extends IgcInputBaseComponent {
|
|
|
221
158
|
}
|
|
222
159
|
}
|
|
223
160
|
IgcMaskInputComponent.tagName = 'igc-mask-input';
|
|
224
|
-
__decorate([
|
|
225
|
-
state()
|
|
226
|
-
], IgcMaskInputComponent.prototype, "hasFocus", void 0);
|
|
227
|
-
__decorate([
|
|
228
|
-
state()
|
|
229
|
-
], IgcMaskInputComponent.prototype, "maskedValue", void 0);
|
|
230
|
-
__decorate([
|
|
231
|
-
property({ reflect: true })
|
|
232
|
-
], IgcMaskInputComponent.prototype, "dir", void 0);
|
|
233
|
-
__decorate([
|
|
234
|
-
property({ reflect: true, type: Boolean })
|
|
235
|
-
], IgcMaskInputComponent.prototype, "invalid", void 0);
|
|
236
161
|
__decorate([
|
|
237
162
|
property({ attribute: 'value-mode' })
|
|
238
163
|
], IgcMaskInputComponent.prototype, "valueMode", void 0);
|
|
@@ -242,15 +167,12 @@ __decorate([
|
|
|
242
167
|
], IgcMaskInputComponent.prototype, "value", null);
|
|
243
168
|
__decorate([
|
|
244
169
|
property()
|
|
245
|
-
], IgcMaskInputComponent.prototype, "mask",
|
|
246
|
-
__decorate([
|
|
247
|
-
property()
|
|
248
|
-
], IgcMaskInputComponent.prototype, "prompt", void 0);
|
|
170
|
+
], IgcMaskInputComponent.prototype, "mask", null);
|
|
249
171
|
__decorate([
|
|
250
172
|
watch('prompt')
|
|
251
173
|
], IgcMaskInputComponent.prototype, "promptChange", null);
|
|
252
174
|
__decorate([
|
|
253
|
-
watch('
|
|
175
|
+
watch('_mask')
|
|
254
176
|
], IgcMaskInputComponent.prototype, "maskChange", null);
|
|
255
177
|
__decorate([
|
|
256
178
|
watch('required', { waitUntilFirstUpdate: true }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask-input.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';\nimport { partNameMap } from '../common/util.js';\nimport { IgcInputBaseComponent } from '../input/input-base.js';\nimport { MaskParser } from './mask-parser.js';\n\ninterface MaskSelection {\n start: number;\n end: number;\n}\n\n/**\n * A masked input is an input field where a developer can control user input and format the visible value,\n * based on configurable rules\n *\n * @element igc-mask-input\n *\n * @slot prefix - Renders content before the input\n * @slot suffix - Renders content after the input\n * @slot helper-text - Renders content below the input\n *\n * @fires igcInput - Emitted when the control receives user input\n * @fires igcChange - Emitted when an alteration of the control's value is committed by the user\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 IgcMaskInputComponent extends IgcInputBaseComponent {\n public static readonly tagName = 'igc-mask-input';\n\n protected parser = new MaskParser();\n protected _value = '';\n protected selection: MaskSelection = { start: 0, end: 0 };\n protected compositionStart = 0;\n\n @state()\n protected hasFocus = false;\n\n @state()\n protected maskedValue = '';\n\n protected get inputSelection(): MaskSelection {\n return {\n start: this.input.selectionStart || 0,\n end: this.input.selectionEnd || 0,\n };\n }\n\n /** The direction attribute of the control. */\n @property({ reflect: true })\n public override dir: 'ltr' | 'rtl' | 'auto' = 'auto';\n\n /** Controls the validity of the control. */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n /**\n * Dictates the behavior when retrieving the value of the control:\n *\n * - `raw` will return the clean user input.\n * - `withFormatting` will return the value with all literals and prompts.\n *\n */\n @property({ attribute: 'value-mode' })\n public valueMode: 'raw' | 'withFormatting' = 'raw';\n\n /**\n * The value of the input.\n *\n * Regardless of the currently set `value-mode`, an empty value will return an empty string.\n *\n */\n @property()\n @blazorTwoWayBind('igcChange', 'detail')\n public get value() {\n return this._value\n ? this.valueMode !== 'raw'\n ? this.maskedValue\n : this._value\n : this._value;\n }\n\n public set value(string: string) {\n this._value = string ?? '';\n this.maskedValue = this.parser.apply(this._value);\n }\n\n /** The mask pattern to apply on the input. */\n @property()\n public mask!: string;\n\n /** The prompt symbol to use for unfilled parts of the mask. */\n @property()\n public prompt!: string;\n\n @watch('prompt')\n protected promptChange() {\n this.parser.prompt = this.prompt;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('mask')\n protected maskChange() {\n this.parser.mask = this.mask;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('required', { waitUntilFirstUpdate: true })\n @watch('disabled', { waitUntilFirstUpdate: true })\n @watch('value', { waitUntilFirstUpdate: true })\n protected handleInvalidState() {\n this.updateComplete.then(() => (this.invalid = !this.checkValidity()));\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this.mask = this.mask || this.parser.mask;\n this.prompt = this.prompt || this.parser.prompt;\n }\n\n protected handleKeydown(e: KeyboardEvent) {\n if (!e.key) {\n return;\n }\n this.selection = this.inputSelection;\n }\n\n protected handleCompositionStart() {\n this.compositionStart = this.inputSelection.start;\n }\n\n protected handleCompositionEnd({ data }: CompositionEvent) {\n const start = this.compositionStart,\n end = this.inputSelection.end;\n this.updateInput(data, start, end);\n }\n\n protected handleInput({ inputType, isComposing }: InputEvent) {\n const value = this.input.value;\n const start = this.selection.start;\n let end = this.selection.end;\n\n switch (inputType) {\n case 'deleteContentForward':\n this.updateInput('', start, (end = start === end ? ++end : end));\n return this.updateComplete.then(() =>\n this.input.setSelectionRange(end, end)\n );\n\n case 'deleteContentBackward':\n if (isComposing) return;\n return this.updateInput('', this.inputSelection.start, end);\n\n case 'deleteByCut':\n return this.updateInput('', start, end);\n\n case 'insertText':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n start,\n end\n );\n\n case 'insertFromPaste':\n return this.updateInput(\n value.substring(start, this.inputSelection.end),\n start,\n this.inputSelection.start\n );\n\n case 'insertFromDrop':\n return this.updateInput(\n value.substring(this.inputSelection.start, this.inputSelection.end),\n this.inputSelection.start,\n this.inputSelection.end\n );\n }\n }\n\n protected updateInput(part: string, start: number, finish: number) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n part,\n start,\n finish\n );\n this.maskedValue = value;\n this._value = this.parser.parse(value);\n\n this.requestUpdate();\n if (start !== this.mask.length) {\n this.emitEvent('igcInput', { detail: this.value });\n }\n this.updateComplete.then(() => this.input.setSelectionRange(end, end));\n }\n\n protected handleCut() {\n this.selection = this.inputSelection;\n }\n\n protected handleDragStart() {\n this.selection = this.inputSelection;\n }\n\n protected handleDragEnter() {\n if (!this.hasFocus && !this._value) {\n this.maskedValue = this.parser.apply();\n }\n }\n\n protected handleDragLeave() {\n if (!this.hasFocus) {\n this.updateMaskedValue();\n }\n }\n\n protected override handleFocus() {\n this.hasFocus = true;\n super.handleFocus();\n\n if (this.readonly) {\n return;\n }\n\n if (!this._value) {\n this.maskedValue = this.parser.apply();\n // In case of empty value, select the whole mask\n this.updateComplete.then(() => this.select());\n }\n }\n\n protected override handleBlur() {\n this.hasFocus = false;\n this.updateMaskedValue();\n super.handleBlur();\n }\n\n protected override handleChange() {\n this.emitEvent('igcChange', { detail: this.value });\n this.invalid = !this.checkValidity();\n }\n\n protected handleInvalid() {\n this.invalid = true;\n }\n\n protected handleClick() {\n // Clicking at the end of the input field will select the entire mask\n if (\n this.input.selectionStart === this.input.selectionEnd &&\n this.input.selectionStart === this.maskedValue.length\n ) {\n this.select();\n }\n }\n\n protected updateMaskedValue() {\n if (this.maskedValue === this.parser.apply()) {\n this.maskedValue = '';\n }\n }\n\n /** Replaces the selected text in the control and re-applies the mask */\n public override setRangeText(\n replacement: string,\n start: number,\n end: number,\n _selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n this.input.value = this.parser.replace(\n this.input.value,\n replacement,\n start,\n end\n ).value;\n this.maskedValue = this.parser.apply(this.parser.parse(this.input.value));\n this._value = this.parser.parse(this.maskedValue);\n }\n\n public override setSelectionRange(\n start: number,\n end: number,\n direction?: 'backward' | 'forward' | 'none'\n ): void {\n super.setSelectionRange(start, end, direction);\n this.selection = { start, end };\n }\n\n /** Checks for validity of the control and shows the browser message if it's invalid. */\n public reportValidity() {\n const state = this._value\n ? this.parser.isValidString(this.input.value)\n : this.input.reportValidity();\n this.invalid = !state;\n return state;\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.input.setCustomValidity(message);\n this.invalid = !this.input.checkValidity();\n }\n\n /** Check for validity of the control */\n public checkValidity() {\n if (this.disabled) {\n return this.input.checkValidity();\n }\n\n if (!this._value) {\n return !this.required;\n }\n\n return (\n this.input.checkValidity() && this.parser.isValidString(this.input.value)\n );\n }\n\n /** Selects all text within the input. */\n public select() {\n this.input.select();\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.parser.escapedMask)}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @cut=${this.handleCut}\n @change=${this.handleChange}\n @click=${this.handleClick}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @input=${this.handleInput}\n aria-invalid=\"${this.invalid ? 'true' : 'false'}\"\n @invalid=\"${this.handleInvalid}\"\n @keydown=${this.handleKeydown}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-mask-input': IgcMaskInputComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mask-input.js","sourceRoot":"","sources":["../../../src/components/mask-input/mask-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { blazorTwoWayBind } from '../common/decorators/blazorTwoWayBind.js';\nimport { partNameMap } from '../common/util.js';\nimport { IgcMaskInputBaseComponent } from './mask-input-base.js';\n\n/**\n * A masked input is an input field where a developer can control user input and format the visible value,\n * based on configurable rules\n *\n * @element igc-mask-input\n *\n * @slot prefix - Renders content before the input\n * @slot suffix - Renders content after the input\n * @slot helper-text - Renders content below the input\n *\n * @fires igcInput - Emitted when the control receives user input\n * @fires igcChange - Emitted when an alteration of the control's value is committed by the user\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 IgcMaskInputComponent extends IgcMaskInputBaseComponent {\n public static readonly tagName = 'igc-mask-input';\n\n protected _value = '';\n\n /**\n * Dictates the behavior when retrieving the value of the control:\n *\n * - `raw` will return the clean user input.\n * - `withFormatting` will return the value with all literals and prompts.\n *\n */\n @property({ attribute: 'value-mode' })\n public valueMode: 'raw' | 'withFormatting' = 'raw';\n\n /**\n * The value of the input.\n *\n * Regardless of the currently set `value-mode`, an empty value will return an empty string.\n *\n */\n @property()\n @blazorTwoWayBind('igcChange', 'detail')\n public get value() {\n return this._value\n ? this.valueMode !== 'raw'\n ? this.maskedValue\n : this._value\n : this._value;\n }\n\n public set value(string: string) {\n this._value = string ?? '';\n this.maskedValue = this.parser.apply(this._value);\n }\n\n /** The mask pattern to apply on the input. */\n @property()\n public get mask() {\n return this._mask;\n }\n\n /** The mask pattern to apply on the input. */\n public set mask(val: string) {\n this._mask = val;\n }\n\n @watch('prompt')\n protected promptChange() {\n this.parser.prompt = this.prompt;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('_mask')\n protected maskChange() {\n this.parser.mask = this.mask;\n if (this.value) {\n this.maskedValue = this.parser.apply(this._value);\n }\n }\n\n @watch('required', { waitUntilFirstUpdate: true })\n @watch('disabled', { waitUntilFirstUpdate: true })\n @watch('value', { waitUntilFirstUpdate: true })\n protected handleInvalidState() {\n this.updateComplete.then(() => (this.invalid = !this.checkValidity()));\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this.mask = this.mask || this.parser.mask;\n this.prompt = this.prompt || this.parser.prompt;\n }\n\n protected updateInput(part: string, start: number, finish: number) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n part,\n start,\n finish\n );\n this.maskedValue = value;\n this._value = this.parser.parse(value);\n\n this.requestUpdate();\n if (start !== this.mask.length) {\n this.emitEvent('igcInput', { detail: this.value });\n }\n this.updateComplete.then(() => this.input.setSelectionRange(end, end));\n }\n\n protected handleDragEnter() {\n if (!this.hasFocus && !this._value) {\n this.maskedValue = this.parser.apply();\n }\n }\n\n protected handleDragLeave() {\n if (!this.hasFocus) {\n this.updateMaskedValue();\n }\n }\n\n protected override handleFocus() {\n this.hasFocus = true;\n super.handleFocus();\n\n if (this.readonly) {\n return;\n }\n\n if (!this._value) {\n this.maskedValue = this.parser.apply();\n // In case of empty value, select the whole mask\n this.updateComplete.then(() => this.select());\n }\n }\n\n protected override handleBlur() {\n this.hasFocus = false;\n this.updateMaskedValue();\n super.handleBlur();\n }\n\n protected handleChange() {\n this.emitEvent('igcChange', { detail: this.value });\n this.invalid = !this.checkValidity();\n }\n\n protected handleClick() {\n // Clicking at the end of the input field will select the entire mask\n if (\n this.input.selectionStart === this.input.selectionEnd &&\n this.input.selectionStart === this.maskedValue.length\n ) {\n this.select();\n }\n }\n\n protected updateMaskedValue() {\n if (this.maskedValue === this.parser.apply()) {\n this.maskedValue = '';\n }\n }\n\n /** Replaces the selected text in the control and re-applies the mask */\n public override setRangeText(\n replacement: string,\n start: number,\n end: number,\n _selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve'\n ) {\n this.input.value = this.parser.replace(\n this.input.value,\n replacement,\n start,\n end\n ).value;\n this.maskedValue = this.parser.apply(this.parser.parse(this.input.value));\n this._value = this.parser.parse(this.maskedValue);\n }\n\n /** Checks for validity of the control and shows the browser message if it's invalid. */\n public reportValidity() {\n const state = this._value\n ? this.parser.isValidString(this.input.value)\n : this.input.reportValidity();\n this.invalid = !state;\n return state;\n }\n\n /** Check for validity of the control */\n public checkValidity() {\n if (this.disabled) {\n return this.input.checkValidity();\n }\n\n if (!this._value) {\n return !this.required;\n }\n\n return (\n this.input.checkValidity() && this.parser.isValidString(this.input.value)\n );\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.parser.escapedMask)}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @cut=${this.handleCut}\n @change=${this.handleChange}\n @click=${this.handleClick}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @input=${this.handleInput}\n aria-invalid=\"${this.invalid ? 'true' : 'false'}\"\n @invalid=\"${this.handleInvalid}\"\n @keydown=${this.handleKeydown}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-mask-input': IgcMaskInputComponent;\n }\n}\n"]}
|
|
@@ -6,8 +6,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { html, LitElement } from 'lit';
|
|
8
8
|
import { themes } from '../../theming/theming-decorator.js';
|
|
9
|
-
import { styles as
|
|
10
|
-
import { styles } from './
|
|
9
|
+
import { styles as fluent } from './themes/light/fluent/nav-drawer-header-item.fluent.css.js';
|
|
10
|
+
import { styles as indigo } from './themes/light/indigo/nav-drawer-header-item.indigo.css.js';
|
|
11
|
+
import { styles } from './themes/light/nav-drawer-header-item.base.css.js';
|
|
11
12
|
let IgcNavDrawerHeaderItemComponent = class IgcNavDrawerHeaderItemComponent extends LitElement {
|
|
12
13
|
render() {
|
|
13
14
|
return html `<slot></slot>`;
|
|
@@ -16,7 +17,7 @@ let IgcNavDrawerHeaderItemComponent = class IgcNavDrawerHeaderItemComponent exte
|
|
|
16
17
|
IgcNavDrawerHeaderItemComponent.tagName = 'igc-nav-drawer-header-item';
|
|
17
18
|
IgcNavDrawerHeaderItemComponent.styles = styles;
|
|
18
19
|
IgcNavDrawerHeaderItemComponent = __decorate([
|
|
19
|
-
themes({ indigo })
|
|
20
|
+
themes({ fluent, indigo })
|
|
20
21
|
], IgcNavDrawerHeaderItemComponent);
|
|
21
22
|
export default IgcNavDrawerHeaderItemComponent;
|
|
22
23
|
//# sourceMappingURL=nav-drawer-header-item.js.map
|