@tailng-ui/components 0.12.0 → 0.14.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/package.json +2 -2
- package/src/lib/feedback/empty/tng-empty.component.d.ts.map +1 -1
- package/src/lib/feedback/empty/tng-empty.component.js +0 -5
- package/src/lib/feedback/empty/tng-empty.component.js.map +1 -1
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts.map +1 -1
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.js +0 -1
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.js.map +1 -1
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts.map +1 -1
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js +0 -1
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js.map +1 -1
- package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts.map +1 -1
- package/src/lib/feedback/skeleton/tng-skeleton.component.js +0 -1
- package/src/lib/feedback/skeleton/tng-skeleton.component.js.map +1 -1
- package/src/lib/feedback/toast/tng-toast.component.d.ts.map +1 -1
- package/src/lib/feedback/toast/tng-toast.component.js +0 -1
- package/src/lib/feedback/toast/tng-toast.component.js.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts.map +1 -1
- package/src/lib/form/autocomplete/tng-autocomplete.component.js +0 -1
- package/src/lib/form/autocomplete/tng-autocomplete.component.js.map +1 -1
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts.map +1 -1
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.js +0 -1
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.js.map +1 -1
- package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts.map +1 -1
- package/src/lib/form/button-toggle/tng-button-toggle.component.js +0 -1
- package/src/lib/form/button-toggle/tng-button-toggle.component.js.map +1 -1
- package/src/lib/form/checkbox/tng-checkbox.component.d.ts.map +1 -1
- package/src/lib/form/checkbox/tng-checkbox.component.js +0 -1
- package/src/lib/form/checkbox/tng-checkbox.component.js.map +1 -1
- package/src/lib/form/chips/tng-chips.component.d.ts.map +1 -1
- package/src/lib/form/chips/tng-chips.component.js +0 -1
- package/src/lib/form/chips/tng-chips.component.js.map +1 -1
- package/src/lib/form/combobox/tng-combobox.component.d.ts.map +1 -1
- package/src/lib/form/combobox/tng-combobox.component.js +0 -1
- package/src/lib/form/combobox/tng-combobox.component.js.map +1 -1
- package/src/lib/form/input/tng-input.component.d.ts.map +1 -1
- package/src/lib/form/input/tng-input.component.js +0 -1
- package/src/lib/form/input/tng-input.component.js.map +1 -1
- package/src/lib/form/input-otp/tng-input-otp.component.d.ts.map +1 -1
- package/src/lib/form/input-otp/tng-input-otp.component.js +0 -1
- package/src/lib/form/input-otp/tng-input-otp.component.js.map +1 -1
- package/src/lib/form/label/tng-label.component.d.ts.map +1 -1
- package/src/lib/form/label/tng-label.component.js +0 -1
- package/src/lib/form/label/tng-label.component.js.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts.map +1 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js +0 -1
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js.map +1 -1
- package/src/lib/form/multiselect/tng-multiselect.component.d.ts.map +1 -1
- package/src/lib/form/multiselect/tng-multiselect.component.js +0 -1
- package/src/lib/form/multiselect/tng-multiselect.component.js.map +1 -1
- package/src/lib/form/radio/tng-radio.component.d.ts.map +1 -1
- package/src/lib/form/radio/tng-radio.component.js +0 -1
- package/src/lib/form/radio/tng-radio.component.js.map +1 -1
- package/src/lib/form/select/tng-select.component.d.ts.map +1 -1
- package/src/lib/form/select/tng-select.component.js +0 -1
- package/src/lib/form/select/tng-select.component.js.map +1 -1
- package/src/lib/form/select/tng-select.slots.d.ts.map +1 -1
- package/src/lib/form/select/tng-select.slots.js +0 -2
- package/src/lib/form/select/tng-select.slots.js.map +1 -1
- package/src/lib/form/slider/tng-slider.component.d.ts.map +1 -1
- package/src/lib/form/slider/tng-slider.component.js +0 -1
- package/src/lib/form/slider/tng-slider.component.js.map +1 -1
- package/src/lib/form/switch/tng-switch.component.d.ts.map +1 -1
- package/src/lib/form/switch/tng-switch.component.js +0 -1
- package/src/lib/form/switch/tng-switch.component.js.map +1 -1
- package/src/lib/form/textarea/tng-textarea.component.d.ts.map +1 -1
- package/src/lib/form/textarea/tng-textarea.component.js +0 -1
- package/src/lib/form/textarea/tng-textarea.component.js.map +1 -1
- package/src/lib/form/toggle/tng-toggle.component.d.ts.map +1 -1
- package/src/lib/form/toggle/tng-toggle.component.js +0 -1
- package/src/lib/form/toggle/tng-toggle.component.js.map +1 -1
- package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts.map +1 -1
- package/src/lib/form/toggle-group/tng-toggle-group.component.js +0 -1
- package/src/lib/form/toggle-group/tng-toggle-group.component.js.map +1 -1
- package/src/lib/layout/accordion/tng-accordion.component.d.ts.map +1 -1
- package/src/lib/layout/accordion/tng-accordion.component.js +0 -4
- package/src/lib/layout/accordion/tng-accordion.component.js.map +1 -1
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts.map +1 -1
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js +0 -1
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js.map +1 -1
- package/src/lib/layout/card/tng-card.component.d.ts.map +1 -1
- package/src/lib/layout/card/tng-card.component.js +0 -10
- package/src/lib/layout/card/tng-card.component.js.map +1 -1
- package/src/lib/layout/collapsible/tng-collapsible.component.d.ts.map +1 -1
- package/src/lib/layout/collapsible/tng-collapsible.component.js +0 -1
- package/src/lib/layout/collapsible/tng-collapsible.component.js.map +1 -1
- package/src/lib/layout/drawer/tng-drawer.component.d.ts.map +1 -1
- package/src/lib/layout/drawer/tng-drawer.component.js +0 -1
- package/src/lib/layout/drawer/tng-drawer.component.js.map +1 -1
- package/src/lib/layout/grid/tng-grid.component.d.ts.map +1 -1
- package/src/lib/layout/grid/tng-grid.component.js +0 -1
- package/src/lib/layout/grid/tng-grid.component.js.map +1 -1
- package/src/lib/layout/separator/tng-separator.component.d.ts.map +1 -1
- package/src/lib/layout/separator/tng-separator.component.js +0 -1
- package/src/lib/layout/separator/tng-separator.component.js.map +1 -1
- package/src/lib/layout/stepper/tng-stepper.component.d.ts.map +1 -1
- package/src/lib/layout/stepper/tng-stepper.component.js +0 -1
- package/src/lib/layout/stepper/tng-stepper.component.js.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js +0 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js +0 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js +0 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js +0 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js +0 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js +0 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js.map +1 -1
- package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts.map +1 -1
- package/src/lib/navigation/context-menu/tng-context-menu.component.js +0 -1
- package/src/lib/navigation/context-menu/tng-context-menu.component.js.map +1 -1
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts.map +1 -1
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js +0 -1
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js.map +1 -1
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts.map +1 -1
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js +0 -1
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js.map +1 -1
- package/src/lib/navigation/menu/tng-menu.component.d.ts.map +1 -1
- package/src/lib/navigation/menu/tng-menu.component.js +0 -1
- package/src/lib/navigation/menu/tng-menu.component.js.map +1 -1
- package/src/lib/navigation/menubar/tng-menubar.component.d.ts.map +1 -1
- package/src/lib/navigation/menubar/tng-menubar.component.js +0 -1
- package/src/lib/navigation/menubar/tng-menubar.component.js.map +1 -1
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts.map +1 -1
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js +0 -1
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js.map +1 -1
- package/src/lib/navigation/tabs/tng-tabs.component.d.ts.map +1 -1
- package/src/lib/navigation/tabs/tng-tabs.component.js +0 -1
- package/src/lib/navigation/tabs/tng-tabs.component.js.map +1 -1
- package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts.map +1 -1
- package/src/lib/navigation/toolbar/tng-toolbar.component.js +0 -1
- package/src/lib/navigation/toolbar/tng-toolbar.component.js.map +1 -1
- package/src/lib/overlay/dialog/tng-dialog.component.d.ts.map +1 -1
- package/src/lib/overlay/dialog/tng-dialog.component.js +0 -1
- package/src/lib/overlay/dialog/tng-dialog.component.js.map +1 -1
- package/src/lib/overlay/popover/tng-popover.component.d.ts.map +1 -1
- package/src/lib/overlay/popover/tng-popover.component.js +0 -1
- package/src/lib/overlay/popover/tng-popover.component.js.map +1 -1
- package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts.map +1 -1
- package/src/lib/overlay/tooltip/tng-tooltip.component.js +0 -1
- package/src/lib/overlay/tooltip/tng-tooltip.component.js.map +1 -1
- package/src/lib/utility/avatar/tng-avatar.component.d.ts.map +1 -1
- package/src/lib/utility/avatar/tng-avatar.component.js +0 -1
- package/src/lib/utility/avatar/tng-avatar.component.js.map +1 -1
- package/src/lib/utility/badge/tng-badge.component.d.ts.map +1 -1
- package/src/lib/utility/badge/tng-badge.component.js +0 -1
- package/src/lib/utility/badge/tng-badge.component.js.map +1 -1
- package/src/lib/utility/button/tng-button.component.d.ts.map +1 -1
- package/src/lib/utility/button/tng-button.component.js +0 -1
- package/src/lib/utility/button/tng-button.component.js.map +1 -1
- package/src/lib/utility/code-block/tng-code-block.component.d.ts.map +1 -1
- package/src/lib/utility/code-block/tng-code-block.component.js +0 -1
- package/src/lib/utility/code-block/tng-code-block.component.js.map +1 -1
- package/src/lib/utility/copy-button/tng-copy-button.component.d.ts.map +1 -1
- package/src/lib/utility/copy-button/tng-copy-button.component.js +0 -1
- package/src/lib/utility/copy-button/tng-copy-button.component.js.map +1 -1
- package/src/lib/utility/tag/tng-tag.component.d.ts.map +1 -1
- package/src/lib/utility/tag/tng-tag.component.js +0 -1
- package/src/lib/utility/tag/tng-tag.component.js.map +1 -1
- package/src/lib/utility/tree/tng-tree.component.d.ts.map +1 -1
- package/src/lib/utility/tree/tng-tree.component.js +0 -1
- package/src/lib/utility/tree/tng-tree.component.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-chips.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/chips/tng-chips.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-chips.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/chips/tng-chips.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQxE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACX,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAElE,SAAS,GAAG,KAAK,CAAgB,gBAAgB,CAAC,CAAC;IACnD,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,MAAM,GAAG,KAAK,CAAiC,SAAS,CAAC,CAAC;IAC1D,aAAa,GAAG,KAAK,CAAqB,EAAE,CAAC,CAAC;IAE9C,UAAU,GAAG,MAAM,EAAW,CAAC;IAC/B,YAAY,GAAG,MAAM,EAAsB,CAAC;IAE5D;QACE,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;YACnB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC,CAAC,CACH,CAAC;YAEF,SAAS,CAAC,GAAG,EAAE;gBACb,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;oBACzC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAc;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AAjDY,iBAAiB;IAN7B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,iBAAiB,CAiD7B","sourcesContent":["import { Component, booleanAttribute, contentChildren, effect, input, output } from '@angular/core';\nimport { TngChip, TngChips as TngChipsPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-chips',\n imports: [TngChipsPrimitive],\n templateUrl: './tng-chips.component.html',\n styleUrl: './tng-chips.component.css',\n})\nexport class TngChipsComponent {\n private readonly projectedChips = contentChildren(TngChip, { descendants: true });\n\n public readonly ariaLabel = input<string | null>('Selected items');\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly values = input<readonly unknown[] | undefined>(undefined);\n public readonly defaultValues = input<readonly unknown[]>([]);\n\n public readonly chipRemove = output<unknown>();\n public readonly valuesChange = output<readonly unknown[]>();\n\n public constructor() {\n effect((onCleanup) => {\n const subscriptions = this.projectedChips().map((chip) =>\n chip.chipRemove.subscribe((value) => {\n this.onProjectedChipRemove(value);\n }),\n );\n\n onCleanup(() => {\n for (const subscription of subscriptions) {\n subscription.unsubscribe();\n }\n });\n });\n }\n\n private onProjectedChipRemove(value: unknown): void {\n if (this.disabled()) {\n return;\n }\n\n this.chipRemove.emit(value);\n\n const currentValues = this.values();\n if (currentValues === undefined) {\n return;\n }\n\n const index = currentValues.findIndex((item) => Object.is(item, value));\n if (index < 0) {\n return;\n }\n\n const nextValues = [...currentValues.slice(0, index), ...currentValues.slice(index + 1)];\n this.valuesChange.emit(nextValues);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-combobox.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/combobox/tng-combobox.component.ts"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"tng-combobox.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/combobox/tng-combobox.component.ts"],"names":[],"mappings":"AAGA,qBAMa,oBAAoB;IAC/B,SAAgB,SAAS,8CAA6B;CACvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-combobox.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/combobox/tng-combobox.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-combobox.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/combobox/tng-combobox.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQrE,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACf,SAAS,GAAG,KAAK,CAAS,UAAU,CAAC,CAAC;CACvD,CAAA;AAFY,oBAAoB;IANhC,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,8BAA8B;KACzC,CAAC;GACW,oBAAoB,CAEhC","sourcesContent":["import { Component, input } from '@angular/core';\nimport { TngCombobox as TngComboboxPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-combobox',\n imports: [TngComboboxPrimitive],\n templateUrl: './tng-combobox.component.html',\n styleUrl: './tng-combobox.component.css',\n})\nexport class TngComboboxComponent {\n public readonly ariaLabel = input<string>('Combobox');\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-input.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input/tng-input.component.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,
|
|
1
|
+
{"version":3,"file":"tng-input.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input/tng-input.component.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,qBAMa,iBAAiB;IAC5B,SAAgB,UAAU,0DAAwC;IAClE,SAAgB,IAAI,oDAA6B;IACjD,SAAgB,IAAI,oDAAkC;IAEtD,2DAA2D;IAC3D,SAAgB,SAAS,8EAEtB;IAGH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,eAAe,CAAU;IAGvD,SAAS,KAAK,cAAc,IAAI,kBAAkB,CAEjD;IAGD,SAAS,KAAK,QAAQ,IAAI,YAAY,CAErC;IAGD,SAAS,KAAK,QAAQ,IAAI,YAAY,CAErC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;CACF"}
|
|
@@ -42,7 +42,6 @@ __decorate([
|
|
|
42
42
|
TngInputComponent = __decorate([
|
|
43
43
|
Component({
|
|
44
44
|
selector: 'tng-input',
|
|
45
|
-
standalone: true,
|
|
46
45
|
imports: [TngInputGroup, TngInputLeading, TngInputTrailing],
|
|
47
46
|
templateUrl: './tng-input.component.html',
|
|
48
47
|
styleUrl: './tng-input.component.css',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-input.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input/tng-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-input.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input/tng-input.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAYlF,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACZ,UAAU,GAAG,KAAK,CAAqB,SAAS,CAAC,CAAC;IAClD,IAAI,GAAG,KAAK,CAAe,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,CAAe,SAAS,CAAC,CAAC;IAEtD,2DAA2D;IAC3C,SAAS,GAAG,KAAK,CAA4B,IAAI,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IAGgB,QAAQ,GAAG,eAAwB,CAAC;IAGvD,IAAc,cAAc;QAC1B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAGD,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAGD,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAGD,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;CACF,CAAA;AArBoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;mDACyB;AAGvD;IADC,WAAW,CAAC,sBAAsB,CAAC;uDAGnC;AAGD;IADC,WAAW,CAAC,gBAAgB,CAAC;iDAG7B;AAGD;IADC,WAAW,CAAC,gBAAgB,CAAC;iDAG7B;AAGD;IADC,WAAW,CAAC,sBAAsB,CAAC;sDAGnC;AA/BU,iBAAiB;IAN7B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,gBAAgB,CAAC;QAC3D,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,iBAAiB,CAgC7B","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\n\nimport { TngInputGroup, TngInputLeading, TngInputTrailing } from '@tailng-ui/primitives';\n\nexport type TngInputAppearance = 'outline' | 'solid' | 'ghost';\nexport type TngInputSize = 'sm' | 'md' | 'lg';\nexport type TngInputTone = 'neutral' | 'primary' | 'success' | 'danger';\n\n@Component({\n selector: 'tng-input',\n imports: [TngInputGroup, TngInputLeading, TngInputTrailing],\n templateUrl: './tng-input.component.html',\n styleUrl: './tng-input.component.css',\n})\nexport class TngInputComponent {\n public readonly appearance = input<TngInputAppearance>('outline');\n public readonly size = input<TngInputSize>('md');\n public readonly tone = input<TngInputTone>('neutral');\n\n /** Default true so forms look consistent out-of-the-box */\n public readonly fullWidth = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'input-wrapper' as const;\n\n @HostBinding('attr.data-appearance')\n protected get dataAppearance(): TngInputAppearance {\n return this.appearance();\n }\n\n @HostBinding('attr.data-size')\n protected get dataSize(): TngInputSize {\n return this.size();\n }\n\n @HostBinding('attr.data-tone')\n protected get dataTone(): TngInputTone {\n return this.tone();\n }\n\n @HostBinding('attr.data-full-width')\n protected get dataFullWidth(): '' | null {\n return this.fullWidth() ? '' : null;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-input-otp.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input-otp/tng-input-otp.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAWd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AAQzE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAY1E,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAC9B,SAAS,MAAM,EAAE,CA4BnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAc9E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,SAAS,EAAE,MAAM,GAChB,MAAM,CAqBR;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ1E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ3E;AAmBD,
|
|
1
|
+
{"version":3,"file":"tng-input-otp.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input-otp/tng-input-otp.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -481,7 +481,6 @@ let TngInputOtpComponent = class TngInputOtpComponent {
|
|
|
481
481
|
TngInputOtpComponent = __decorate([
|
|
482
482
|
Component({
|
|
483
483
|
selector: 'tng-input-otp',
|
|
484
|
-
standalone: true,
|
|
485
484
|
imports: [TngInputOtpPrimitive],
|
|
486
485
|
templateUrl: './tng-input-otp.component.html',
|
|
487
486
|
styleUrl: './tng-input-otp.component.css',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-input-otp.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input-otp/tng-input-otp.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n output,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n clampTngOtpValue,\n normalizeTngOtpLength,\n resolveTngOtpState,\n TngInputOtp as TngInputOtpPrimitive,\n} from '@tailng-ui/primitives';\n\nexport type TngInputOtpType = 'numeric' | 'alphanumeric' | 'custom';\nexport type TngInputOtpInputMode = 'numeric' | 'text' | 'tel' | 'decimal';\n\nconst tngOtpDigitPattern = /^\\d$/;\nconst tngOtpAlphanumericPattern = /^[a-zA-Z0-9]$/;\n\nlet tngInputOtpInstanceCounter = 0;\n\nfunction toNonGlobalRegex(pattern: RegExp): RegExp {\n const flags = pattern.flags.replace(/g/g, '');\n return new RegExp(pattern.source, flags);\n}\n\nexport function sanitizeTngOtpCharacters(\n value: string,\n mode: TngInputOtpType,\n pattern: string | RegExp | null,\n): readonly string[] {\n const compiledPattern =\n mode !== 'custom'\n ? null\n : typeof pattern === 'string'\n ? new RegExp(pattern)\n : pattern === null\n ? null\n : toNonGlobalRegex(pattern);\n\n const acceptedChars: string[] = [];\n for (const char of Array.from(value)) {\n if (mode === 'numeric' && !tngOtpDigitPattern.test(char)) {\n continue;\n }\n\n if (mode === 'alphanumeric' && !tngOtpAlphanumericPattern.test(char)) {\n continue;\n }\n\n if (compiledPattern && !compiledPattern.test(char)) {\n continue;\n }\n\n acceptedChars.push(char);\n }\n\n return acceptedChars;\n}\n\nexport function toTngOtpSlots(length: number, value: string): readonly string[] {\n const safeLength = normalizeTngOtpLength(length);\n const slots = Array.from({ length: safeLength }, () => '');\n const chars = Array.from(clampTngOtpValue(value, safeLength));\n\n for (const [index, char] of chars.entries()) {\n if (index >= safeLength) {\n break;\n }\n\n slots[index] = char;\n }\n\n return slots;\n}\n\nexport function applyTngOtpCharacters(\n value: string,\n startIndex: number,\n characters: readonly string[],\n maxLength: number,\n): string {\n const safeLength = normalizeTngOtpLength(maxLength);\n const nextChars = Array.from(clampTngOtpValue(value, safeLength));\n const safeStart = Math.max(0, Math.min(startIndex, safeLength - 1));\n\n let cursor = nextChars.length < safeLength ? Math.min(safeStart, nextChars.length) : safeStart;\n for (const char of characters) {\n if (cursor >= safeLength) {\n break;\n }\n\n if (cursor < nextChars.length) {\n nextChars[cursor] = char;\n } else {\n nextChars.push(char);\n }\n\n cursor += 1;\n }\n\n return nextChars.slice(0, safeLength).join('');\n}\n\nexport function removeTngOtpCharacter(value: string, index: number): string {\n const chars = Array.from(value);\n if (index < 0 || index >= chars.length) {\n return value;\n }\n\n chars.splice(index, 1);\n return chars.join('');\n}\n\nexport function resolveTngOtpEntryIndex(value: string, length: number): number {\n const safeLength = normalizeTngOtpLength(length);\n const safeValue = clampTngOtpValue(value, safeLength);\n if (safeValue.length >= safeLength) {\n return safeLength - 1;\n }\n\n return safeValue.length;\n}\n\nexport function resolveTngOtpEndIndex(value: string, length: number): number {\n const safeLength = normalizeTngOtpLength(length);\n const safeValue = clampTngOtpValue(value, safeLength);\n if (safeValue.length === 0) {\n return safeLength - 1;\n }\n\n return Math.max(0, safeValue.length - 1);\n}\n\nfunction clampOtpIndex(index: number, length: number): number {\n const safeLength = normalizeTngOtpLength(length);\n if (!Number.isFinite(index)) {\n return 0;\n }\n\n if (index < 0) {\n return 0;\n }\n\n if (index >= safeLength) {\n return safeLength - 1;\n }\n\n return Math.trunc(index);\n}\n\n@Component({\n selector: 'tng-input-otp',\n standalone: true,\n imports: [TngInputOtpPrimitive],\n templateUrl: './tng-input-otp.component.html',\n styleUrl: './tng-input-otp.component.css',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TngInputOtpComponent),\n multi: true,\n },\n ],\n})\nexport class TngInputOtpComponent implements AfterViewInit, ControlValueAccessor {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n private readonly generatedId = `tng-input-otp-${++tngInputOtpInstanceCounter}`;\n private resetUnlisten: (() => void) | null = null;\n private hasInitializedUncontrolled = false;\n\n private onChangeCallback: (value: string) => void = () => undefined;\n private onTouchedCallback: () => void = () => undefined;\n\n private readonly uncontrolledValue = signal('');\n private readonly formsDisabled = signal(false);\n private readonly focusedState = signal(false);\n private readonly focusVisibleState = signal(false);\n private readonly keyboardInteraction = signal(false);\n private readonly activeIndexState = signal(0);\n\n public readonly length = input<number, number | string>(6, {\n transform: (value: number | string): number =>\n normalizeTngOtpLength(typeof value === 'number' ? value : Number(value)),\n });\n public readonly valueInput = input<string | null | undefined>(undefined, { alias: 'value' });\n public readonly defaultValue = input<string>('');\n public readonly type = input<TngInputOtpType>('numeric');\n public readonly pattern = input<string | RegExp | null>(null);\n\n public readonly mask = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabledInput = input<boolean, boolean | string>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly autoFocus = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly selectOnFocus = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n\n public readonly placeholderChar = input<string>('');\n public readonly name = input<string | null>(null);\n public readonly id = input<string | null>(null);\n public readonly form = input<string | null>(null);\n public readonly autocomplete = input<string>('one-time-code');\n public readonly inputMode = input<TngInputOtpInputMode | null>(null);\n public readonly ariaLabel = input<string | null>(null);\n public readonly ariaLabelledby = input<string | null>(null);\n public readonly ariaDescribedby = input<string | null>(null);\n\n public readonly valueChange = output<string>();\n public readonly complete = output<string>();\n\n protected readonly disabled = computed(() => this.disabledInput() || this.formsDisabled());\n protected readonly focused = computed(() => this.focusedState());\n protected readonly focusVisible = computed(() => this.focusVisibleState());\n protected readonly activeIndex = computed(() => clampOtpIndex(this.activeIndexState(), this.length()));\n protected readonly rootId = computed(() => this.id() ?? this.generatedId);\n\n protected readonly currentValue = computed(() => {\n const controlled = this.valueInput();\n if (controlled !== undefined) {\n return this.normalizeAndClamp(controlled ?? '');\n }\n\n return this.normalizeAndClamp(this.uncontrolledValue());\n });\n\n protected readonly slots = computed(() => toTngOtpSlots(this.length(), this.currentValue()));\n protected readonly completionState = computed(() => resolveTngOtpState(this.length(), this.currentValue()));\n\n protected readonly resolvedInputMode = computed<TngInputOtpInputMode>(() => {\n const explicit = this.inputMode();\n if (explicit !== null) {\n return explicit;\n }\n\n return this.type() === 'numeric' ? 'numeric' : 'text';\n });\n\n protected readonly slotInputType = computed<'password' | 'text'>(() =>\n this.mask() ? 'password' : 'text',\n );\n\n private readonly syncUncontrolledState = effect(\n () => {\n const controlled = this.valueInput();\n const length = this.length();\n this.type();\n this.pattern();\n\n if (controlled !== undefined) {\n if (!this.focusedState()) {\n this.activeIndexState.set(\n resolveTngOtpEntryIndex(this.normalizeAndClamp(controlled ?? ''), length),\n );\n }\n\n return;\n }\n\n const normalizedDefault = this.normalizeAndClamp(this.defaultValue());\n if (!this.hasInitializedUncontrolled) {\n this.hasInitializedUncontrolled = true;\n this.uncontrolledValue.set(normalizedDefault);\n this.activeIndexState.set(resolveTngOtpEntryIndex(normalizedDefault, length));\n return;\n }\n\n const normalizedCurrent = this.normalizeAndClamp(this.uncontrolledValue());\n if (normalizedCurrent !== this.uncontrolledValue()) {\n this.uncontrolledValue.set(normalizedCurrent);\n }\n\n this.activeIndexState.update((index) => clampOtpIndex(index, length));\n },\n );\n\n public ngAfterViewInit(): void {\n this.attachFormResetListener();\n\n if (!this.autoFocus() || this.disabled()) {\n return;\n }\n\n queueMicrotask(() => {\n if (this.disabled()) {\n return;\n }\n\n this.focusSlot(resolveTngOtpEntryIndex(this.currentValue(), this.length()), this.selectOnFocus());\n });\n }\n\n public ngOnDestroy(): void {\n this.resetUnlisten?.();\n this.resetUnlisten = null;\n }\n\n public writeValue(value: string | null): void {\n const normalized = this.normalizeAndClamp(value ?? '');\n this.hasInitializedUncontrolled = true;\n this.uncontrolledValue.set(normalized);\n\n if (!this.focusedState()) {\n this.activeIndexState.set(resolveTngOtpEntryIndex(normalized, this.length()));\n }\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.formsDisabled.set(isDisabled);\n }\n\n protected onSlotPointerDown(): void {\n this.keyboardInteraction.set(false);\n }\n\n protected onSlotFocus(index: number, event: FocusEvent): void {\n const target = event.target;\n const nextIndex = this.resolveEditableIndex(index);\n this.activeIndexState.set(nextIndex);\n this.focusedState.set(true);\n\n if (target instanceof HTMLElement && target.matches(':focus-visible')) {\n this.focusVisibleState.set(true);\n } else {\n this.focusVisibleState.set(this.keyboardInteraction());\n }\n\n if (this.selectOnFocus() && target instanceof HTMLInputElement) {\n target.select();\n }\n }\n\n protected onSlotBlur(event: FocusEvent): void {\n const host = this.hostRef.nativeElement;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget instanceof Node && host.contains(relatedTarget)) {\n return;\n }\n\n queueMicrotask(() => {\n if (this.isFocusWithinHost()) {\n return;\n }\n\n this.focusedState.set(false);\n this.focusVisibleState.set(false);\n this.onTouchedCallback();\n });\n }\n\n protected onSlotKeydown(index: number, event: KeyboardEvent): void {\n this.keyboardInteraction.set(true);\n\n const editableIndex = this.resolveEditableIndex(index);\n const total = this.length();\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.focusSlot(Math.max(0, editableIndex - 1), true);\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.focusSlot(Math.min(total - 1, editableIndex + 1), true);\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n this.focusSlot(0, true);\n return;\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n this.focusSlot(resolveTngOtpEndIndex(this.currentValue(), total), true);\n return;\n }\n\n if (event.key === 'Backspace') {\n event.preventDefault();\n this.handleBackspace(editableIndex);\n return;\n }\n\n if (event.key === 'Delete') {\n event.preventDefault();\n this.handleDelete(editableIndex);\n return;\n }\n\n if ((this.disabled() || this.readonly()) && event.key.length === 1) {\n event.preventDefault();\n }\n }\n\n protected onSlotInput(index: number, event: Event): void {\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) {\n return;\n }\n\n if (this.disabled() || this.readonly()) {\n target.value = this.slotValue(this.resolveEditableIndex(index));\n return;\n }\n\n const chars = sanitizeTngOtpCharacters(target.value, this.type(), this.pattern());\n if (chars.length === 0) {\n const nextValue = removeTngOtpCharacter(this.currentValue(), this.resolveEditableIndex(index));\n this.commitValue(nextValue, this.resolveEditableIndex(index));\n return;\n }\n\n const previousValue = this.currentValue();\n const totalLength = this.length();\n const editableIndex = this.resolveEditableIndex(index);\n const wasCompleteBeforeInput = previousValue.length >= totalLength;\n const wasReplacingExistingCharacter = editableIndex < previousValue.length;\n const nextValue = applyTngOtpCharacters(previousValue, editableIndex, chars, totalLength);\n const nextFocus =\n wasCompleteBeforeInput || wasReplacingExistingCharacter\n ? Math.min(totalLength - 1, editableIndex + chars.length)\n : nextValue.length >= totalLength\n ? totalLength - 1\n : Math.min(totalLength - 1, Math.max(editableIndex + chars.length, nextValue.length));\n\n this.commitValue(nextValue, nextFocus);\n }\n\n protected onSlotPaste(index: number, event: ClipboardEvent): void {\n if (this.disabled() || this.readonly()) {\n return;\n }\n\n const clipboardValue = event.clipboardData?.getData('text') ?? '';\n const chars = sanitizeTngOtpCharacters(clipboardValue, this.type(), this.pattern());\n if (chars.length === 0) {\n event.preventDefault();\n return;\n }\n\n event.preventDefault();\n const editableIndex = this.resolveEditableIndex(index);\n const nextValue = applyTngOtpCharacters(this.currentValue(), editableIndex, chars, this.length());\n const nextFocus =\n nextValue.length >= this.length()\n ? this.length() - 1\n : Math.min(this.length() - 1, nextValue.length);\n\n this.commitValue(nextValue, nextFocus);\n }\n\n protected slotValue(index: number): string {\n const slot = this.slots()[index];\n return slot ?? '';\n }\n\n protected slotPlaceholder(index: number): string | null {\n if (this.placeholderChar().length === 0) {\n return null;\n }\n\n return this.slotValue(index) === '' ? this.placeholderChar() : null;\n }\n\n protected slotAriaLabel(index: number): string {\n const prefix = this.ariaLabel();\n const base = prefix?.trim() ? `${prefix.trim()} - ` : '';\n return `${base}Character ${index + 1} of ${this.length()}`;\n }\n\n protected isSlotTabbable(index: number): boolean {\n return this.activeIndex() === index;\n }\n\n private handleBackspace(index: number): void {\n if (this.disabled() || this.readonly()) {\n return;\n }\n\n const currentValue = this.currentValue();\n if (currentValue.length === 0) {\n return;\n }\n\n if (index < currentValue.length) {\n const nextValue = removeTngOtpCharacter(currentValue, index);\n const nextFocus = Math.min(index, Math.max(0, nextValue.length));\n this.commitValue(nextValue, nextFocus);\n return;\n }\n\n const previousIndex = Math.max(0, currentValue.length - 1);\n const nextValue = removeTngOtpCharacter(currentValue, previousIndex);\n this.commitValue(nextValue, Math.max(0, previousIndex));\n }\n\n private handleDelete(index: number): void {\n if (this.disabled() || this.readonly()) {\n return;\n }\n\n if (index >= this.currentValue().length) {\n return;\n }\n\n const nextValue = removeTngOtpCharacter(this.currentValue(), index);\n this.commitValue(nextValue, index);\n }\n\n private commitValue(nextValue: string, nextFocusIndex: number): void {\n const previousValue = this.currentValue();\n const normalized = this.normalizeAndClamp(nextValue);\n const didChange = normalized !== previousValue;\n\n if (this.valueInput() === undefined) {\n this.uncontrolledValue.set(normalized);\n }\n\n this.activeIndexState.set(clampOtpIndex(nextFocusIndex, this.length()));\n\n if (didChange) {\n this.valueChange.emit(normalized);\n this.onChangeCallback(normalized);\n\n if (resolveTngOtpState(this.length(), normalized) === 'complete') {\n this.complete.emit(normalized);\n }\n }\n\n queueMicrotask(() => {\n this.syncSlotInputValues();\n if (!this.focusedState() && !this.isFocusWithinHost()) {\n return;\n }\n\n this.focusSlot(this.activeIndex(), this.selectOnFocus());\n });\n }\n\n private resolveEditableIndex(index: number): number {\n const safeIndex = clampOtpIndex(index, this.length());\n const currentValueLength = this.currentValue().length;\n\n if (currentValueLength >= this.length()) {\n return safeIndex;\n }\n\n return Math.min(safeIndex, currentValueLength);\n }\n\n private focusSlot(index: number, select: boolean): void {\n const safeIndex = clampOtpIndex(index, this.length());\n const slot = this.hostRef.nativeElement.querySelector<HTMLInputElement>(\n `[data-tng-otp-slot='${safeIndex}']`,\n );\n\n if (!(slot instanceof HTMLInputElement)) {\n return;\n }\n\n slot.focus();\n if (select) {\n slot.select();\n }\n\n this.activeIndexState.set(safeIndex);\n }\n\n private syncSlotInputValues(): void {\n const slotValues = this.slots();\n const slotInputs = this.hostRef.nativeElement.querySelectorAll<HTMLInputElement>('.tng-input-otp-slot');\n slotInputs.forEach((slotInput, index) => {\n slotInput.value = slotValues[index] ?? '';\n });\n }\n\n private isFocusWithinHost(): boolean {\n const ownerDocument = this.hostRef.nativeElement.ownerDocument;\n const activeElement = ownerDocument?.activeElement;\n return activeElement instanceof Node && this.hostRef.nativeElement.contains(activeElement);\n }\n\n private normalizeAndClamp(value: string): string {\n const chars = sanitizeTngOtpCharacters(value, this.type(), this.pattern());\n const safeLength = this.length();\n return chars.slice(0, safeLength).join('');\n }\n\n private attachFormResetListener(): void {\n const formId = this.form();\n const ownerForm =\n formId !== null\n ? this.hostRef.nativeElement.ownerDocument?.getElementById(formId)\n : this.hostRef.nativeElement.closest('form');\n\n if (!(ownerForm instanceof HTMLFormElement)) {\n return;\n }\n\n this.resetUnlisten?.();\n this.resetUnlisten = this.renderer.listen(ownerForm, 'reset', () => {\n if (this.valueInput() !== undefined) {\n return;\n }\n\n const resetValue = this.normalizeAndClamp(this.defaultValue());\n this.uncontrolledValue.set(resetValue);\n this.activeIndexState.set(resolveTngOtpEntryIndex(resetValue, this.length()));\n this.valueChange.emit(resetValue);\n this.onChangeCallback(resetValue);\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tng-input-otp.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input-otp/tng-input-otp.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n output,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n clampTngOtpValue,\n normalizeTngOtpLength,\n resolveTngOtpState,\n TngInputOtp as TngInputOtpPrimitive,\n} from '@tailng-ui/primitives';\n\nexport type TngInputOtpType = 'numeric' | 'alphanumeric' | 'custom';\nexport type TngInputOtpInputMode = 'numeric' | 'text' | 'tel' | 'decimal';\n\nconst tngOtpDigitPattern = /^\\d$/;\nconst tngOtpAlphanumericPattern = /^[a-zA-Z0-9]$/;\n\nlet tngInputOtpInstanceCounter = 0;\n\nfunction toNonGlobalRegex(pattern: RegExp): RegExp {\n const flags = pattern.flags.replace(/g/g, '');\n return new RegExp(pattern.source, flags);\n}\n\nexport function sanitizeTngOtpCharacters(\n value: string,\n mode: TngInputOtpType,\n pattern: string | RegExp | null,\n): readonly string[] {\n const compiledPattern =\n mode !== 'custom'\n ? null\n : typeof pattern === 'string'\n ? new RegExp(pattern)\n : pattern === null\n ? null\n : toNonGlobalRegex(pattern);\n\n const acceptedChars: string[] = [];\n for (const char of Array.from(value)) {\n if (mode === 'numeric' && !tngOtpDigitPattern.test(char)) {\n continue;\n }\n\n if (mode === 'alphanumeric' && !tngOtpAlphanumericPattern.test(char)) {\n continue;\n }\n\n if (compiledPattern && !compiledPattern.test(char)) {\n continue;\n }\n\n acceptedChars.push(char);\n }\n\n return acceptedChars;\n}\n\nexport function toTngOtpSlots(length: number, value: string): readonly string[] {\n const safeLength = normalizeTngOtpLength(length);\n const slots = Array.from({ length: safeLength }, () => '');\n const chars = Array.from(clampTngOtpValue(value, safeLength));\n\n for (const [index, char] of chars.entries()) {\n if (index >= safeLength) {\n break;\n }\n\n slots[index] = char;\n }\n\n return slots;\n}\n\nexport function applyTngOtpCharacters(\n value: string,\n startIndex: number,\n characters: readonly string[],\n maxLength: number,\n): string {\n const safeLength = normalizeTngOtpLength(maxLength);\n const nextChars = Array.from(clampTngOtpValue(value, safeLength));\n const safeStart = Math.max(0, Math.min(startIndex, safeLength - 1));\n\n let cursor = nextChars.length < safeLength ? Math.min(safeStart, nextChars.length) : safeStart;\n for (const char of characters) {\n if (cursor >= safeLength) {\n break;\n }\n\n if (cursor < nextChars.length) {\n nextChars[cursor] = char;\n } else {\n nextChars.push(char);\n }\n\n cursor += 1;\n }\n\n return nextChars.slice(0, safeLength).join('');\n}\n\nexport function removeTngOtpCharacter(value: string, index: number): string {\n const chars = Array.from(value);\n if (index < 0 || index >= chars.length) {\n return value;\n }\n\n chars.splice(index, 1);\n return chars.join('');\n}\n\nexport function resolveTngOtpEntryIndex(value: string, length: number): number {\n const safeLength = normalizeTngOtpLength(length);\n const safeValue = clampTngOtpValue(value, safeLength);\n if (safeValue.length >= safeLength) {\n return safeLength - 1;\n }\n\n return safeValue.length;\n}\n\nexport function resolveTngOtpEndIndex(value: string, length: number): number {\n const safeLength = normalizeTngOtpLength(length);\n const safeValue = clampTngOtpValue(value, safeLength);\n if (safeValue.length === 0) {\n return safeLength - 1;\n }\n\n return Math.max(0, safeValue.length - 1);\n}\n\nfunction clampOtpIndex(index: number, length: number): number {\n const safeLength = normalizeTngOtpLength(length);\n if (!Number.isFinite(index)) {\n return 0;\n }\n\n if (index < 0) {\n return 0;\n }\n\n if (index >= safeLength) {\n return safeLength - 1;\n }\n\n return Math.trunc(index);\n}\n\n@Component({\n selector: 'tng-input-otp',\n imports: [TngInputOtpPrimitive],\n templateUrl: './tng-input-otp.component.html',\n styleUrl: './tng-input-otp.component.css',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TngInputOtpComponent),\n multi: true,\n },\n ],\n})\nexport class TngInputOtpComponent implements AfterViewInit, ControlValueAccessor {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n private readonly generatedId = `tng-input-otp-${++tngInputOtpInstanceCounter}`;\n private resetUnlisten: (() => void) | null = null;\n private hasInitializedUncontrolled = false;\n\n private onChangeCallback: (value: string) => void = () => undefined;\n private onTouchedCallback: () => void = () => undefined;\n\n private readonly uncontrolledValue = signal('');\n private readonly formsDisabled = signal(false);\n private readonly focusedState = signal(false);\n private readonly focusVisibleState = signal(false);\n private readonly keyboardInteraction = signal(false);\n private readonly activeIndexState = signal(0);\n\n public readonly length = input<number, number | string>(6, {\n transform: (value: number | string): number =>\n normalizeTngOtpLength(typeof value === 'number' ? value : Number(value)),\n });\n public readonly valueInput = input<string | null | undefined>(undefined, { alias: 'value' });\n public readonly defaultValue = input<string>('');\n public readonly type = input<TngInputOtpType>('numeric');\n public readonly pattern = input<string | RegExp | null>(null);\n\n public readonly mask = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabledInput = input<boolean, boolean | string>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly autoFocus = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly selectOnFocus = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n\n public readonly placeholderChar = input<string>('');\n public readonly name = input<string | null>(null);\n public readonly id = input<string | null>(null);\n public readonly form = input<string | null>(null);\n public readonly autocomplete = input<string>('one-time-code');\n public readonly inputMode = input<TngInputOtpInputMode | null>(null);\n public readonly ariaLabel = input<string | null>(null);\n public readonly ariaLabelledby = input<string | null>(null);\n public readonly ariaDescribedby = input<string | null>(null);\n\n public readonly valueChange = output<string>();\n public readonly complete = output<string>();\n\n protected readonly disabled = computed(() => this.disabledInput() || this.formsDisabled());\n protected readonly focused = computed(() => this.focusedState());\n protected readonly focusVisible = computed(() => this.focusVisibleState());\n protected readonly activeIndex = computed(() => clampOtpIndex(this.activeIndexState(), this.length()));\n protected readonly rootId = computed(() => this.id() ?? this.generatedId);\n\n protected readonly currentValue = computed(() => {\n const controlled = this.valueInput();\n if (controlled !== undefined) {\n return this.normalizeAndClamp(controlled ?? '');\n }\n\n return this.normalizeAndClamp(this.uncontrolledValue());\n });\n\n protected readonly slots = computed(() => toTngOtpSlots(this.length(), this.currentValue()));\n protected readonly completionState = computed(() => resolveTngOtpState(this.length(), this.currentValue()));\n\n protected readonly resolvedInputMode = computed<TngInputOtpInputMode>(() => {\n const explicit = this.inputMode();\n if (explicit !== null) {\n return explicit;\n }\n\n return this.type() === 'numeric' ? 'numeric' : 'text';\n });\n\n protected readonly slotInputType = computed<'password' | 'text'>(() =>\n this.mask() ? 'password' : 'text',\n );\n\n private readonly syncUncontrolledState = effect(\n () => {\n const controlled = this.valueInput();\n const length = this.length();\n this.type();\n this.pattern();\n\n if (controlled !== undefined) {\n if (!this.focusedState()) {\n this.activeIndexState.set(\n resolveTngOtpEntryIndex(this.normalizeAndClamp(controlled ?? ''), length),\n );\n }\n\n return;\n }\n\n const normalizedDefault = this.normalizeAndClamp(this.defaultValue());\n if (!this.hasInitializedUncontrolled) {\n this.hasInitializedUncontrolled = true;\n this.uncontrolledValue.set(normalizedDefault);\n this.activeIndexState.set(resolveTngOtpEntryIndex(normalizedDefault, length));\n return;\n }\n\n const normalizedCurrent = this.normalizeAndClamp(this.uncontrolledValue());\n if (normalizedCurrent !== this.uncontrolledValue()) {\n this.uncontrolledValue.set(normalizedCurrent);\n }\n\n this.activeIndexState.update((index) => clampOtpIndex(index, length));\n },\n );\n\n public ngAfterViewInit(): void {\n this.attachFormResetListener();\n\n if (!this.autoFocus() || this.disabled()) {\n return;\n }\n\n queueMicrotask(() => {\n if (this.disabled()) {\n return;\n }\n\n this.focusSlot(resolveTngOtpEntryIndex(this.currentValue(), this.length()), this.selectOnFocus());\n });\n }\n\n public ngOnDestroy(): void {\n this.resetUnlisten?.();\n this.resetUnlisten = null;\n }\n\n public writeValue(value: string | null): void {\n const normalized = this.normalizeAndClamp(value ?? '');\n this.hasInitializedUncontrolled = true;\n this.uncontrolledValue.set(normalized);\n\n if (!this.focusedState()) {\n this.activeIndexState.set(resolveTngOtpEntryIndex(normalized, this.length()));\n }\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.formsDisabled.set(isDisabled);\n }\n\n protected onSlotPointerDown(): void {\n this.keyboardInteraction.set(false);\n }\n\n protected onSlotFocus(index: number, event: FocusEvent): void {\n const target = event.target;\n const nextIndex = this.resolveEditableIndex(index);\n this.activeIndexState.set(nextIndex);\n this.focusedState.set(true);\n\n if (target instanceof HTMLElement && target.matches(':focus-visible')) {\n this.focusVisibleState.set(true);\n } else {\n this.focusVisibleState.set(this.keyboardInteraction());\n }\n\n if (this.selectOnFocus() && target instanceof HTMLInputElement) {\n target.select();\n }\n }\n\n protected onSlotBlur(event: FocusEvent): void {\n const host = this.hostRef.nativeElement;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget instanceof Node && host.contains(relatedTarget)) {\n return;\n }\n\n queueMicrotask(() => {\n if (this.isFocusWithinHost()) {\n return;\n }\n\n this.focusedState.set(false);\n this.focusVisibleState.set(false);\n this.onTouchedCallback();\n });\n }\n\n protected onSlotKeydown(index: number, event: KeyboardEvent): void {\n this.keyboardInteraction.set(true);\n\n const editableIndex = this.resolveEditableIndex(index);\n const total = this.length();\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.focusSlot(Math.max(0, editableIndex - 1), true);\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.focusSlot(Math.min(total - 1, editableIndex + 1), true);\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n this.focusSlot(0, true);\n return;\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n this.focusSlot(resolveTngOtpEndIndex(this.currentValue(), total), true);\n return;\n }\n\n if (event.key === 'Backspace') {\n event.preventDefault();\n this.handleBackspace(editableIndex);\n return;\n }\n\n if (event.key === 'Delete') {\n event.preventDefault();\n this.handleDelete(editableIndex);\n return;\n }\n\n if ((this.disabled() || this.readonly()) && event.key.length === 1) {\n event.preventDefault();\n }\n }\n\n protected onSlotInput(index: number, event: Event): void {\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) {\n return;\n }\n\n if (this.disabled() || this.readonly()) {\n target.value = this.slotValue(this.resolveEditableIndex(index));\n return;\n }\n\n const chars = sanitizeTngOtpCharacters(target.value, this.type(), this.pattern());\n if (chars.length === 0) {\n const nextValue = removeTngOtpCharacter(this.currentValue(), this.resolveEditableIndex(index));\n this.commitValue(nextValue, this.resolveEditableIndex(index));\n return;\n }\n\n const previousValue = this.currentValue();\n const totalLength = this.length();\n const editableIndex = this.resolveEditableIndex(index);\n const wasCompleteBeforeInput = previousValue.length >= totalLength;\n const wasReplacingExistingCharacter = editableIndex < previousValue.length;\n const nextValue = applyTngOtpCharacters(previousValue, editableIndex, chars, totalLength);\n const nextFocus =\n wasCompleteBeforeInput || wasReplacingExistingCharacter\n ? Math.min(totalLength - 1, editableIndex + chars.length)\n : nextValue.length >= totalLength\n ? totalLength - 1\n : Math.min(totalLength - 1, Math.max(editableIndex + chars.length, nextValue.length));\n\n this.commitValue(nextValue, nextFocus);\n }\n\n protected onSlotPaste(index: number, event: ClipboardEvent): void {\n if (this.disabled() || this.readonly()) {\n return;\n }\n\n const clipboardValue = event.clipboardData?.getData('text') ?? '';\n const chars = sanitizeTngOtpCharacters(clipboardValue, this.type(), this.pattern());\n if (chars.length === 0) {\n event.preventDefault();\n return;\n }\n\n event.preventDefault();\n const editableIndex = this.resolveEditableIndex(index);\n const nextValue = applyTngOtpCharacters(this.currentValue(), editableIndex, chars, this.length());\n const nextFocus =\n nextValue.length >= this.length()\n ? this.length() - 1\n : Math.min(this.length() - 1, nextValue.length);\n\n this.commitValue(nextValue, nextFocus);\n }\n\n protected slotValue(index: number): string {\n const slot = this.slots()[index];\n return slot ?? '';\n }\n\n protected slotPlaceholder(index: number): string | null {\n if (this.placeholderChar().length === 0) {\n return null;\n }\n\n return this.slotValue(index) === '' ? this.placeholderChar() : null;\n }\n\n protected slotAriaLabel(index: number): string {\n const prefix = this.ariaLabel();\n const base = prefix?.trim() ? `${prefix.trim()} - ` : '';\n return `${base}Character ${index + 1} of ${this.length()}`;\n }\n\n protected isSlotTabbable(index: number): boolean {\n return this.activeIndex() === index;\n }\n\n private handleBackspace(index: number): void {\n if (this.disabled() || this.readonly()) {\n return;\n }\n\n const currentValue = this.currentValue();\n if (currentValue.length === 0) {\n return;\n }\n\n if (index < currentValue.length) {\n const nextValue = removeTngOtpCharacter(currentValue, index);\n const nextFocus = Math.min(index, Math.max(0, nextValue.length));\n this.commitValue(nextValue, nextFocus);\n return;\n }\n\n const previousIndex = Math.max(0, currentValue.length - 1);\n const nextValue = removeTngOtpCharacter(currentValue, previousIndex);\n this.commitValue(nextValue, Math.max(0, previousIndex));\n }\n\n private handleDelete(index: number): void {\n if (this.disabled() || this.readonly()) {\n return;\n }\n\n if (index >= this.currentValue().length) {\n return;\n }\n\n const nextValue = removeTngOtpCharacter(this.currentValue(), index);\n this.commitValue(nextValue, index);\n }\n\n private commitValue(nextValue: string, nextFocusIndex: number): void {\n const previousValue = this.currentValue();\n const normalized = this.normalizeAndClamp(nextValue);\n const didChange = normalized !== previousValue;\n\n if (this.valueInput() === undefined) {\n this.uncontrolledValue.set(normalized);\n }\n\n this.activeIndexState.set(clampOtpIndex(nextFocusIndex, this.length()));\n\n if (didChange) {\n this.valueChange.emit(normalized);\n this.onChangeCallback(normalized);\n\n if (resolveTngOtpState(this.length(), normalized) === 'complete') {\n this.complete.emit(normalized);\n }\n }\n\n queueMicrotask(() => {\n this.syncSlotInputValues();\n if (!this.focusedState() && !this.isFocusWithinHost()) {\n return;\n }\n\n this.focusSlot(this.activeIndex(), this.selectOnFocus());\n });\n }\n\n private resolveEditableIndex(index: number): number {\n const safeIndex = clampOtpIndex(index, this.length());\n const currentValueLength = this.currentValue().length;\n\n if (currentValueLength >= this.length()) {\n return safeIndex;\n }\n\n return Math.min(safeIndex, currentValueLength);\n }\n\n private focusSlot(index: number, select: boolean): void {\n const safeIndex = clampOtpIndex(index, this.length());\n const slot = this.hostRef.nativeElement.querySelector<HTMLInputElement>(\n `[data-tng-otp-slot='${safeIndex}']`,\n );\n\n if (!(slot instanceof HTMLInputElement)) {\n return;\n }\n\n slot.focus();\n if (select) {\n slot.select();\n }\n\n this.activeIndexState.set(safeIndex);\n }\n\n private syncSlotInputValues(): void {\n const slotValues = this.slots();\n const slotInputs = this.hostRef.nativeElement.querySelectorAll<HTMLInputElement>('.tng-input-otp-slot');\n slotInputs.forEach((slotInput, index) => {\n slotInput.value = slotValues[index] ?? '';\n });\n }\n\n private isFocusWithinHost(): boolean {\n const ownerDocument = this.hostRef.nativeElement.ownerDocument;\n const activeElement = ownerDocument?.activeElement;\n return activeElement instanceof Node && this.hostRef.nativeElement.contains(activeElement);\n }\n\n private normalizeAndClamp(value: string): string {\n const chars = sanitizeTngOtpCharacters(value, this.type(), this.pattern());\n const safeLength = this.length();\n return chars.slice(0, safeLength).join('');\n }\n\n private attachFormResetListener(): void {\n const formId = this.form();\n const ownerForm =\n formId !== null\n ? this.hostRef.nativeElement.ownerDocument?.getElementById(formId)\n : this.hostRef.nativeElement.closest('form');\n\n if (!(ownerForm instanceof HTMLFormElement)) {\n return;\n }\n\n this.resetUnlisten?.();\n this.resetUnlisten = this.renderer.listen(ownerForm, 'reset', () => {\n if (this.valueInput() !== undefined) {\n return;\n }\n\n const resetValue = this.normalizeAndClamp(this.defaultValue());\n this.uncontrolledValue.set(resetValue);\n this.activeIndexState.set(resolveTngOtpEntryIndex(resetValue, this.length()));\n this.valueChange.emit(resetValue);\n this.onChangeCallback(resetValue);\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-label.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/label/tng-label.component.ts"],"names":[],"mappings":"AAGA,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAED,
|
|
1
|
+
{"version":3,"file":"tng-label.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/label/tng-label.component.ts"],"names":[],"mappings":"AAGA,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAED,qBAMa,iBAAiB;IAC5B,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,8CAAqB;IAC1C,SAAgB,QAAQ,8EAErB;IAEI,cAAc,IAAI,MAAM,GAAG,IAAI;CAGvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-label.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/label/tng-label.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-label.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/label/tng-label.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAQM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACZ,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;IAC1B,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IAEI,cAAc;QACnB,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAZY,iBAAiB;IAN7B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,iBAAiB,CAY7B","sourcesContent":["import { booleanAttribute, Component, input } from '@angular/core';\nimport { TngLabel as TngLabelPrimitive } from '@tailng-ui/primitives';\n\nexport function resolveTngLabelForAttr(forId: string): string | null {\n const trimmedId = forId.trim();\n return trimmedId.length > 0 ? trimmedId : null;\n}\n\n@Component({\n selector: 'tng-label',\n imports: [TngLabelPrimitive],\n templateUrl: './tng-label.component.html',\n styleUrl: './tng-label.component.css',\n})\nexport class TngLabelComponent {\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly forId = input<string>('');\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n\n public resolveForAttr(): string | null {\n return resolveTngLabelForAttr(this.forId());\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-multi-autocomplete.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAIZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,oBAAoB,EAOrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,4BAA4B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC/D,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;AACjE,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AACpE,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAEhF,MAAM,MAAM,+BAA+B,CAAC,CAAC,EAAE,CAAC,IAAI;IAClD,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;QACjB,KAAK,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iCAAiC,CAAC,CAAC,EAAE,CAAC,IAAI;IACpD,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,CAAC;QACV,KAAK,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI;IACxB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"tng-multi-autocomplete.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAIZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,oBAAoB,EAOrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,4BAA4B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC/D,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;AACjE,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AACpE,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAEhF,MAAM,MAAM,+BAA+B,CAAC,CAAC,EAAE,CAAC,IAAI;IAClD,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;QACjB,KAAK,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iCAAiC,CAAC,CAAC,EAAE,CAAC,IAAI;IACpD,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,CAAC;QACV,KAAK,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI;IACxB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAqBa,6BAA6B,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IACjE,SAAS,CAAC,QAAQ,CAAC,SAAS,0BAAyD;IAErF,QAAQ,CAAC,OAAO,oDAA2B;IAC3C,QAAQ,CAAC,WAAW,8CAAoC;IACxD,QAAQ,CAAC,SAAS,8CAA+B;IACjD,QAAQ,CAAC,SAAS,8CAAuC;IAEzD,QAAQ,CAAC,cAAc,0EAErB;IACF,QAAQ,CAAC,cAAc,uEAOrB;IACF,QAAQ,CAAC,gBAAgB,yEAGvB;IACF,QAAQ,CAAC,OAAO,sEAGb;IAGH,OAAO,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAG7D,SAAS,CAAC,EAAE,WAAW,CAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEjE,SAAS,CAAC,QAAQ,CAAC,aAAa,gEAa7B;IAEH,SAAS,CAAC,QAAQ,CAAC,eAAe,+CAmB/B;IAEH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC;IAWtF,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,iCAAiC,CAAC,CAAC,EAAE,CAAC,CAAC;IAexE,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAI9B,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAIjC,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAIjC,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,gBAAgB;CAMzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-multi-autocomplete.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ContentChild,\n TemplateRef,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport {\n TngMultiAutocomplete,\n TngMultiAutocompleteChip,\n TngMultiAutocompleteContent,\n TngMultiAutocompleteListbox,\n TngMultiAutocompleteOption,\n TngMultiAutocompleteOverlay,\n TngMultiAutocompleteTrigger,\n} from '@tailng-ui/primitives';\n\nexport type TngMultiAutocompleteGetValue<O, V> = (opt: O) => V;\nexport type TngMultiAutocompleteGetLabel<O> = (opt: O) => string;\nexport type TngMultiAutocompleteIsDisabled<O> = (opt: O) => boolean;\nexport type TngMultiAutocompleteTrackBy<O> = (index: number, opt: O) => unknown;\n\nexport type TngMultiAutocompleteChipContext<O, V> = {\n $implicit: {\n option: O | null;\n value: V;\n label: string;\n removeItem: (item: V) => void;\n };\n};\n\nexport type TngMultiAutocompleteOptionContext<O, V> = {\n $implicit: {\n option: O;\n value: V;\n label: string;\n disabled: boolean;\n selected: boolean;\n active: boolean;\n };\n};\n\ntype SelectedItem<O, V> = {\n option: O | null;\n value: V;\n label: string;\n trackId: unknown;\n};\n\n@Component({\n selector: 'tng-multi-autocomplete',\n standalone: true,\n imports: [\n NgTemplateOutlet,\n TngMultiAutocompleteChip,\n TngMultiAutocompleteTrigger,\n TngMultiAutocompleteContent,\n TngMultiAutocompleteOverlay,\n TngMultiAutocompleteListbox,\n TngMultiAutocompleteOption,\n ],\n hostDirectives: [\n {\n directive: TngMultiAutocomplete,\n inputs: ['open', 'value', 'disabled', 'loading', 'invalid'],\n outputs: ['openChange', 'valueChange'],\n },\n ],\n templateUrl: './tng-multi-autocomplete.component.html',\n styleUrl: './tng-multi-autocomplete.component.css',\n})\nexport class TngMultiAutocompleteComponent<O = unknown, V = unknown> {\n protected readonly primitive = inject<TngMultiAutocomplete<V>>(TngMultiAutocomplete);\n\n readonly options = input<readonly O[]>([]);\n readonly placeholder = input<string>('Type to search…');\n readonly emptyText = input<string>('No matches');\n readonly ariaLabel = input<string>('Multi autocomplete');\n\n readonly getOptionValue = input<TngMultiAutocompleteGetValue<O, V>>(\n ((opt: unknown) => (opt as { value?: V })?.value) as TngMultiAutocompleteGetValue<O, V>,\n );\n readonly getOptionLabel = input<TngMultiAutocompleteGetLabel<O>>(\n ((opt: unknown) =>\n String(\n (opt as { label?: string; value?: unknown })?.label ??\n (opt as { value?: unknown })?.value ??\n opt,\n )) as TngMultiAutocompleteGetLabel<O>,\n );\n readonly isOptionDisabled = input<TngMultiAutocompleteIsDisabled<O>>(\n ((opt: unknown) =>\n !!(opt as { disabled?: boolean })?.disabled) as TngMultiAutocompleteIsDisabled<O>,\n );\n readonly trackBy = input<TngMultiAutocompleteTrackBy<O>>((_, opt) => {\n const o = opt as Record<string, unknown> | null | undefined;\n return o?.['value'] ?? o?.['id'] ?? opt;\n });\n\n @ContentChild('tngMultiAutocompleteChipTpl', { read: TemplateRef })\n chipTpl?: TemplateRef<TngMultiAutocompleteChipContext<O, V>>;\n\n @ContentChild('tngMultiAutocompleteOptionTpl', { read: TemplateRef })\n optionTpl?: TemplateRef<TngMultiAutocompleteOptionContext<O, V>>;\n\n protected readonly selectedItems = computed<readonly SelectedItem<O, V>[]>(() => {\n const values = this.primitive.value();\n const getLabel = this.getOptionLabel();\n\n return values.map((value) => {\n const option = this.findOption(value);\n return {\n option,\n value,\n label: option ? getLabel(option) : String(value),\n trackId: value as unknown,\n };\n });\n });\n\n protected readonly filteredOptions = computed<readonly O[]>(() => {\n const q = this.primitive.query().toLowerCase().trim();\n const list = this.options();\n const getLabel = this.getOptionLabel();\n const getValue = this.getOptionValue();\n const selected = this.primitive.value();\n\n const matches = q\n ? list.filter((opt) => getLabel(opt).toLowerCase().includes(q))\n : list;\n\n const pinnedSelected = matches.filter((opt) =>\n this.hasSelectedValue(getValue(opt), selected),\n );\n const remaining = matches.filter(\n (opt) => !this.hasSelectedValue(getValue(opt), selected),\n );\n\n return [...pinnedSelected, ...remaining];\n });\n\n protected chipContext(item: SelectedItem<O, V>): TngMultiAutocompleteChipContext<O, V> {\n return {\n $implicit: {\n option: item.option,\n value: item.value,\n label: item.label,\n removeItem: (value: V) => this.removeSelectedItem(value),\n },\n };\n }\n\n protected optionContext(opt: O): TngMultiAutocompleteOptionContext<O, V> {\n const value = this.getOptionValue()(opt);\n\n return {\n $implicit: {\n option: opt,\n value,\n label: this.getOptionLabel()(opt),\n disabled: this.isOptionDisabled()(opt),\n selected: this.hasSelectedValue(value),\n active: false,\n },\n };\n }\n\n addSelectedItem(item: V): void {\n this.primitive.add(item);\n }\n\n removeSelectedItem(item: V): void {\n this.primitive.remove(item);\n }\n\n toggleSelectedItem(item: V): void {\n this.primitive.toggle(item);\n }\n\n clear(): void {\n this.primitive.clear();\n }\n\n private findOption(value: V): O | null {\n const getValue = this.getOptionValue();\n\n for (const opt of this.options()) {\n if (Object.is(getValue(opt), value)) return opt;\n }\n\n return null;\n }\n\n private hasSelectedValue(\n value: V,\n selected: readonly V[] = this.primitive.value(),\n ): boolean {\n return selected.some((entry) => Object.is(entry, value));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tng-multi-autocomplete.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ContentChild,\n TemplateRef,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport {\n TngMultiAutocomplete,\n TngMultiAutocompleteChip,\n TngMultiAutocompleteContent,\n TngMultiAutocompleteListbox,\n TngMultiAutocompleteOption,\n TngMultiAutocompleteOverlay,\n TngMultiAutocompleteTrigger,\n} from '@tailng-ui/primitives';\n\nexport type TngMultiAutocompleteGetValue<O, V> = (opt: O) => V;\nexport type TngMultiAutocompleteGetLabel<O> = (opt: O) => string;\nexport type TngMultiAutocompleteIsDisabled<O> = (opt: O) => boolean;\nexport type TngMultiAutocompleteTrackBy<O> = (index: number, opt: O) => unknown;\n\nexport type TngMultiAutocompleteChipContext<O, V> = {\n $implicit: {\n option: O | null;\n value: V;\n label: string;\n removeItem: (item: V) => void;\n };\n};\n\nexport type TngMultiAutocompleteOptionContext<O, V> = {\n $implicit: {\n option: O;\n value: V;\n label: string;\n disabled: boolean;\n selected: boolean;\n active: boolean;\n };\n};\n\ntype SelectedItem<O, V> = {\n option: O | null;\n value: V;\n label: string;\n trackId: unknown;\n};\n\n@Component({\n selector: 'tng-multi-autocomplete',\n imports: [\n NgTemplateOutlet,\n TngMultiAutocompleteChip,\n TngMultiAutocompleteTrigger,\n TngMultiAutocompleteContent,\n TngMultiAutocompleteOverlay,\n TngMultiAutocompleteListbox,\n TngMultiAutocompleteOption,\n ],\n hostDirectives: [\n {\n directive: TngMultiAutocomplete,\n inputs: ['open', 'value', 'disabled', 'loading', 'invalid'],\n outputs: ['openChange', 'valueChange'],\n },\n ],\n templateUrl: './tng-multi-autocomplete.component.html',\n styleUrl: './tng-multi-autocomplete.component.css',\n})\nexport class TngMultiAutocompleteComponent<O = unknown, V = unknown> {\n protected readonly primitive = inject<TngMultiAutocomplete<V>>(TngMultiAutocomplete);\n\n readonly options = input<readonly O[]>([]);\n readonly placeholder = input<string>('Type to search…');\n readonly emptyText = input<string>('No matches');\n readonly ariaLabel = input<string>('Multi autocomplete');\n\n readonly getOptionValue = input<TngMultiAutocompleteGetValue<O, V>>(\n ((opt: unknown) => (opt as { value?: V })?.value) as TngMultiAutocompleteGetValue<O, V>,\n );\n readonly getOptionLabel = input<TngMultiAutocompleteGetLabel<O>>(\n ((opt: unknown) =>\n String(\n (opt as { label?: string; value?: unknown })?.label ??\n (opt as { value?: unknown })?.value ??\n opt,\n )) as TngMultiAutocompleteGetLabel<O>,\n );\n readonly isOptionDisabled = input<TngMultiAutocompleteIsDisabled<O>>(\n ((opt: unknown) =>\n !!(opt as { disabled?: boolean })?.disabled) as TngMultiAutocompleteIsDisabled<O>,\n );\n readonly trackBy = input<TngMultiAutocompleteTrackBy<O>>((_, opt) => {\n const o = opt as Record<string, unknown> | null | undefined;\n return o?.['value'] ?? o?.['id'] ?? opt;\n });\n\n @ContentChild('tngMultiAutocompleteChipTpl', { read: TemplateRef })\n chipTpl?: TemplateRef<TngMultiAutocompleteChipContext<O, V>>;\n\n @ContentChild('tngMultiAutocompleteOptionTpl', { read: TemplateRef })\n optionTpl?: TemplateRef<TngMultiAutocompleteOptionContext<O, V>>;\n\n protected readonly selectedItems = computed<readonly SelectedItem<O, V>[]>(() => {\n const values = this.primitive.value();\n const getLabel = this.getOptionLabel();\n\n return values.map((value) => {\n const option = this.findOption(value);\n return {\n option,\n value,\n label: option ? getLabel(option) : String(value),\n trackId: value as unknown,\n };\n });\n });\n\n protected readonly filteredOptions = computed<readonly O[]>(() => {\n const q = this.primitive.query().toLowerCase().trim();\n const list = this.options();\n const getLabel = this.getOptionLabel();\n const getValue = this.getOptionValue();\n const selected = this.primitive.value();\n\n const matches = q\n ? list.filter((opt) => getLabel(opt).toLowerCase().includes(q))\n : list;\n\n const pinnedSelected = matches.filter((opt) =>\n this.hasSelectedValue(getValue(opt), selected),\n );\n const remaining = matches.filter(\n (opt) => !this.hasSelectedValue(getValue(opt), selected),\n );\n\n return [...pinnedSelected, ...remaining];\n });\n\n protected chipContext(item: SelectedItem<O, V>): TngMultiAutocompleteChipContext<O, V> {\n return {\n $implicit: {\n option: item.option,\n value: item.value,\n label: item.label,\n removeItem: (value: V) => this.removeSelectedItem(value),\n },\n };\n }\n\n protected optionContext(opt: O): TngMultiAutocompleteOptionContext<O, V> {\n const value = this.getOptionValue()(opt);\n\n return {\n $implicit: {\n option: opt,\n value,\n label: this.getOptionLabel()(opt),\n disabled: this.isOptionDisabled()(opt),\n selected: this.hasSelectedValue(value),\n active: false,\n },\n };\n }\n\n addSelectedItem(item: V): void {\n this.primitive.add(item);\n }\n\n removeSelectedItem(item: V): void {\n this.primitive.remove(item);\n }\n\n toggleSelectedItem(item: V): void {\n this.primitive.toggle(item);\n }\n\n clear(): void {\n this.primitive.clear();\n }\n\n private findOption(value: V): O | null {\n const getValue = this.getOptionValue();\n\n for (const opt of this.options()) {\n if (Object.is(getValue(opt), value)) return opt;\n }\n\n return null;\n }\n\n private hasSelectedValue(\n value: V,\n selected: readonly V[] = this.primitive.value(),\n ): boolean {\n return selected.some((entry) => Object.is(entry, value));\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-multiselect.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/multiselect/tng-multiselect.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAIZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,cAAc,EAQf,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACzD,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;AAC3D,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAC9D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAE1E,MAAM,MAAM,0BAA0B,CAAC,CAAC,EAAE,CAAC,IAAI;IAC7C,SAAS,EAAE;QACT,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;KAC/B,CAAC;CACH,CAAC;AACF,MAAM,MAAM,2BAA2B,CAAC,CAAC,EAAE,CAAC,IAAI;IAC9C,SAAS,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1G,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"tng-multiselect.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/multiselect/tng-multiselect.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAIZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,cAAc,EAQf,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACzD,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;AAC3D,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAC9D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAE1E,MAAM,MAAM,0BAA0B,CAAC,CAAC,EAAE,CAAC,IAAI;IAC7C,SAAS,EAAE;QACT,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;KAC/B,CAAC;CACH,CAAC;AACF,MAAM,MAAM,2BAA2B,CAAC,CAAC,EAAE,CAAC,IAAI;IAC9C,SAAS,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1G,CAAC;AAEF,qBA+Ba,uBAAuB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IAC3D,SAAS,CAAC,QAAQ,CAAC,SAAS,oBAA6C;IAEzE,QAAQ,CAAC,OAAO,oDAA2B;IAC3C,QAAQ,CAAC,WAAW,8CAA4B;IAEhD,QAAQ,CAAC,cAAc,oEAErB;IACF,QAAQ,CAAC,cAAc,iEAErB;IACF,QAAQ,CAAC,gBAAgB,mEAEvB;IACF,QAAQ,CAAC,OAAO,gEAA+D;IAE/E,QAAQ,CAAC,QAAQ,8CAAsB;IAEwB,QAAQ,CAAC,EAAE,WAAW,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,SAAS,CAAC,EAAE,WAAW,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3H,SAAS,CAAC,QAAQ,CAAC,eAAe,+CAS/B;IAEH,SAAS,CAAC,QAAQ,CAAC,aAAa,yCAI7B;IAEH,SAAS,CAAC,YAAY,IAAI,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC;IAc1D,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IAUlE,6DAA6D;IAC7D,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAI9B,kEAAkE;IAClE,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAIjC,gEAAgE;IAChE,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAIjC,oDAAoD;IACpD,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-multiselect.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/multiselect/tng-multiselect.component.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,MAAM,EACN,KAAK,GACN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-multiselect.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/multiselect/tng-multiselect.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ContentChild,\n TemplateRef,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport {\n TngMultiSelect,\n TngSelectTrigger,\n TngSelectValue,\n TngSelectIcon,\n TngSelectContent,\n TngSelectOverlay,\n TngMultiSelectListbox,\n TngMultiSelectOption,\n} from '@tailng-ui/primitives';\n\nexport type TngMultiSelectGetValue<O, V> = (opt: O) => V;\nexport type TngMultiSelectGetLabel<O> = (opt: O) => string;\nexport type TngMultiSelectIsDisabled<O> = (opt: O) => boolean;\nexport type TngMultiSelectTrackBy<O> = (index: number, opt: O) => unknown;\n\nexport type TngMultiSelectValueContext<O, V> = {\n $implicit: {\n value: readonly V[];\n options: readonly O[];\n label: string;\n removeItem: (item: V) => void;\n };\n};\nexport type TngMultiSelectOptionContext<O, V> = {\n $implicit: { option: O; value: V; label: string; disabled: boolean; selected: boolean; active: boolean };\n};\n\n@Component({\n selector: 'tng-multiselect',\n imports: [\n NgTemplateOutlet,\n TngSelectTrigger,\n TngSelectValue,\n TngSelectIcon,\n TngSelectContent,\n TngSelectOverlay,\n TngMultiSelectListbox,\n TngMultiSelectOption,\n ],\n hostDirectives: [\n {\n directive: TngMultiSelect,\n inputs: [\n 'open',\n 'value',\n 'disabled',\n 'loading',\n 'invalid',\n 'labelId',\n 'descriptionId',\n 'errorId',\n ],\n outputs: ['openChange', 'valueChange'],\n },\n ],\n templateUrl: './tng-multiselect.component.html',\n styleUrl: './tng-multiselect.component.css',\n})\nexport class TngMultiSelectComponent<O = unknown, V = unknown> {\n protected readonly primitive = inject<TngMultiSelect<V>>(TngMultiSelect);\n\n readonly options = input<readonly O[]>([]);\n readonly placeholder = input<string>('Select…');\n\n readonly getOptionValue = input<TngMultiSelectGetValue<O, V>>(\n ((opt: unknown) => (opt as { value?: V })?.value) as TngMultiSelectGetValue<O, V>,\n );\n readonly getOptionLabel = input<TngMultiSelectGetLabel<O>>(\n ((opt: unknown) => String((opt as { label?: string; value?: unknown })?.label ?? (opt as { value?: unknown })?.value ?? opt)) as TngMultiSelectGetLabel<O>,\n );\n readonly isOptionDisabled = input<TngMultiSelectIsDisabled<O>>(\n ((opt: unknown) => !!(opt as { disabled?: boolean })?.disabled) as TngMultiSelectIsDisabled<O>,\n );\n readonly trackBy = input<TngMultiSelectTrackBy<O>>((_, opt) => opt as unknown);\n\n readonly iconText = input<string>('▾');\n\n @ContentChild('tngMultiSelectValueTpl', { read: TemplateRef }) valueTpl?: TemplateRef<TngMultiSelectValueContext<O, V>>;\n @ContentChild('tngMultiSelectOptionTpl', { read: TemplateRef }) optionTpl?: TemplateRef<TngMultiSelectOptionContext<O, V>>;\n\n protected readonly selectedOptions = computed<readonly O[]>(() => {\n const v = this.primitive.value() ?? [];\n const getV = this.getOptionValue();\n const result: O[] = [];\n for (const opt of this.options()) {\n const optVal = getV(opt);\n if (v.some((x) => Object.is(x, optVal))) result.push(opt);\n }\n return result;\n });\n\n protected readonly selectedLabel = computed<string>(() => {\n const opts = this.selectedOptions();\n if (opts.length === 0) return this.placeholder();\n return opts.map((o) => this.getOptionLabel()(o)).join(', ');\n });\n\n protected valueContext(): TngMultiSelectValueContext<O, V> {\n const opts = this.selectedOptions();\n const v = this.primitive.value() ?? [];\n const label = opts.length > 0 ? opts.map((o) => this.getOptionLabel()(o)).join(', ') : this.placeholder();\n return {\n $implicit: {\n value: v,\n options: opts,\n label,\n removeItem: (item: V) => this.removeSelectedItem(item),\n },\n };\n }\n\n protected optionContext(opt: O): TngMultiSelectOptionContext<O, V> {\n const optVal = this.getOptionValue()(opt);\n const label = this.getOptionLabel()(opt);\n const disabled = this.isOptionDisabled()(opt);\n const v = this.primitive.value() ?? [];\n const selected = v.some((x) => Object.is(x, optVal));\n\n return { $implicit: { option: opt, value: optVal, label, disabled, selected, active: false } };\n }\n\n /** Adds an item to the selection. Delegates to primitive. */\n addSelectedItem(item: V): void {\n this.primitive.addSelectedItem(item);\n }\n\n /** Removes an item from the selection. Delegates to primitive. */\n removeSelectedItem(item: V): void {\n this.primitive.removeSelectedItem(item);\n }\n\n /** Toggles an item in the selection. Delegates to primitive. */\n toggleSelectedItem(item: V): void {\n this.primitive.toggleSelectedItem(item);\n }\n\n /** Clears the selection. Delegates to primitive. */\n clear(): void {\n this.primitive.clear();\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-radio.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/radio/tng-radio.component.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAWlE;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAE7F;AAED,
|
|
1
|
+
{"version":3,"file":"tng-radio.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/radio/tng-radio.component.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAWlE;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAE7F;AAED,qBAMa,iBAAiB;IAC5B,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,8EAExB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,8CAAuB;IAE5C,SAAgB,aAAa,oDAAqB;IAE3C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CAYtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-radio.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/radio/tng-radio.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,gBAAgB,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,QAAiB,EAAE,QAAiB;IAClF,OAAO,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC;AAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-radio.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/radio/tng-radio.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,gBAAgB,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,QAAiB,EAAE,QAAiB;IAClF,OAAO,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC;AAChC,CAAC;AAQM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACZ,eAAe,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAC7C,WAAW,GAAG,KAAK,CAA4B,KAAK,EAAE;QACpE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,OAAO,GAAG,KAAK,CAA4B,KAAK,EAAE;QAChE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,OAAO,GAAG,KAAK,CAA4B,KAAK,EAAE;QAChE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,IAAI,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAClC,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAS,IAAI,CAAC,CAAC;IAE5B,aAAa,GAAG,MAAM,EAAW,CAAC;IAE3C,QAAQ,CAAC,KAAc;QAC5B,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AArCY,iBAAiB;IAN7B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,iBAAiB,CAqC7B","sourcesContent":["import { booleanAttribute, Component, input, output } from '@angular/core';\nimport { TngRadio as TngRadioPrimitive } from '@tailng-ui/primitives';\n\nexport function readTngRadioChecked(event: unknown): boolean | null {\n if (!(event instanceof Event)) {\n return null;\n }\n\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) {\n return null;\n }\n\n return target.checked;\n}\n\nexport function shouldEmitTngRadioCheckedChange(disabled: boolean, readonly: boolean): boolean {\n return !disabled && !readonly;\n}\n\n@Component({\n selector: 'tng-radio',\n imports: [TngRadioPrimitive],\n templateUrl: './tng-radio.component.html',\n styleUrl: './tng-radio.component.css',\n})\nexport class TngRadioComponent {\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly name = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string>('on');\n\n public readonly checkedChange = output<boolean>();\n\n public onChange(event: unknown): void {\n const checked = readTngRadioChecked(event);\n if (checked === null) {\n return;\n }\n\n if (!shouldEmitTngRadioCheckedChange(this.disabled(), this.readonly())) {\n return;\n }\n\n this.checkedChange.emit(checked);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-select.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/select/tng-select.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAIZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,SAAS,EAQV,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACpD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;AACtD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AACzD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAGrE,MAAM,MAAM,qBAAqB,CAAC,CAAC,EAAE,CAAC,IAAI;IACxC,SAAS,EAAE;QAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF,CAAC;AACF,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI;IACzC,SAAS,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1G,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"tng-select.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/select/tng-select.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAIZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,SAAS,EAQV,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACpD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;AACtD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AACzD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAGrE,MAAM,MAAM,qBAAqB,CAAC,CAAC,EAAE,CAAC,IAAI;IACxC,SAAS,EAAE;QAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF,CAAC;AACF,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAI;IACzC,SAAS,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1G,CAAC;AAEF,qBAgCa,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IAGtD,SAAS,CAAC,QAAQ,CAAC,SAAS,eAAmC;IAG/D,QAAQ,CAAC,OAAO,oDAA2B;IAC3C,QAAQ,CAAC,WAAW,8CAA4B;IAEhD,QAAQ,CAAC,cAAc,+DAErB;IACF,QAAQ,CAAC,cAAc,4DAErB;IACF,QAAQ,CAAC,gBAAgB,8DAEvB;IACF,QAAQ,CAAC,OAAO,2DAA0D;IAG1E,QAAQ,CAAC,QAAQ,8CAAsB;IAGmB,QAAQ,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAGjH,SAAS,CAAC,QAAQ,CAAC,cAAc,2CAS9B;IAEH,SAAS,CAAC,QAAQ,CAAC,aAAa,yCAG7B;IAGH,SAAS,CAAC,YAAY,IAAI,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IAOrD,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC;CAa9D"}
|