@tailng-ui/primitives 0.11.0 → 0.12.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/README.md +97 -11
- package/package.json +1 -1
- package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
- package/src/lib/feedback/empty/tng-empty.js +5 -0
- package/src/lib/feedback/empty/tng-empty.js.map +1 -1
- package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
- package/src/lib/feedback/progress-bar/tng-progress-bar.js +2 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +1 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
- package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
- package/src/lib/feedback/skeleton/tng-skeleton.js +1 -0
- package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
- package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
- package/src/lib/feedback/toast/tng-toast.js +2 -0
- package/src/lib/feedback/toast/tng-toast.js.map +1 -1
- package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
- package/src/lib/form/checkbox/tng-checkbox.js +1 -0
- package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
- package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
- package/src/lib/form/chips/tng-chips.js +3 -0
- package/src/lib/form/chips/tng-chips.js.map +1 -1
- package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
- package/src/lib/form/combobox/tng-combobox.js +1 -0
- package/src/lib/form/combobox/tng-combobox.js.map +1 -1
- package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
- package/src/lib/form/input-otp/tng-input-otp.js +1 -0
- package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
- package/src/lib/form/label/tng-label.d.ts.map +1 -1
- package/src/lib/form/label/tng-label.js +1 -0
- package/src/lib/form/label/tng-label.js.map +1 -1
- package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
- package/src/lib/form/multiselect/tng-multiselect.js +1 -0
- package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
- package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
- package/src/lib/form/radio/tng-radio.js +1 -0
- package/src/lib/form/radio/tng-radio.js.map +1 -1
- package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
- package/src/lib/form/slider/tng-slider.js +1 -0
- package/src/lib/form/slider/tng-slider.js.map +1 -1
- package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
- package/src/lib/form/switch/tng-switch.js +1 -0
- package/src/lib/form/switch/tng-switch.js.map +1 -1
- package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
- package/src/lib/form/toggle/tng-toggle.js +1 -0
- package/src/lib/form/toggle/tng-toggle.js.map +1 -1
- package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
- package/src/lib/form/toggle-group/tng-toggle-group.js +1 -0
- package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +1 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
- package/src/lib/layout/card/tng-card.d.ts.map +1 -1
- package/src/lib/layout/card/tng-card.js +10 -0
- package/src/lib/layout/card/tng-card.js.map +1 -1
- package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
- package/src/lib/layout/collapsible/tng-collapsible.js +3 -0
- package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
- package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
- package/src/lib/layout/grid/tng-grid.js +1 -0
- package/src/lib/layout/grid/tng-grid.js.map +1 -1
- package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
- package/src/lib/layout/separator/tng-separator.js +1 -0
- package/src/lib/layout/separator/tng-separator.js.map +1 -1
- package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
- package/src/lib/layout/stepper/tng-stepper.js +1 -0
- package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +5 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +1 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +1 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
- package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
- package/src/lib/navigation/toolbar/tng-toolbar.js +1 -0
- package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
- package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
- package/src/lib/overlay/tooltip/tng-tooltip.js +3 -0
- package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
- package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
- package/src/lib/utility/avatar/tng-avatar.js +3 -0
- package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
- package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
- package/src/lib/utility/badge/tng-badge.js +1 -0
- package/src/lib/utility/badge/tng-badge.js.map +1 -1
- package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
- package/src/lib/utility/code-block/tng-code-block.js +5 -0
- package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
- package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
- package/src/lib/utility/copy/tng-copy.js +1 -0
- package/src/lib/utility/copy/tng-copy.js.map +1 -1
- package/src/lib/utility/press/tng-press.d.ts.map +1 -1
- package/src/lib/utility/press/tng-press.js +1 -0
- package/src/lib/utility/press/tng-press.js.map +1 -1
- package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
- package/src/lib/utility/tag/tng-tag.js +3 -0
- package/src/lib/utility/tag/tng-tag.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,36 +1,122 @@
|
|
|
1
|
+
# @tailng-ui/primitives
|
|
2
|
+
|
|
3
|
+
Headless Angular primitives for TailNG UI, providing accessibility-first behavior and stateful interaction contracts without opinionated styling.
|
|
4
|
+
|
|
1
5
|
<div align="center">
|
|
2
6
|
<img
|
|
3
7
|
src="https://raw.githubusercontent.com/tailng/tailng-ui/main/apps/tailng-ui/docs/src/assets/logo.svg"
|
|
4
|
-
width="
|
|
8
|
+
width="120"
|
|
5
9
|
alt="TailNG logo"
|
|
6
10
|
/>
|
|
11
|
+
|
|
12
|
+
<h1>@tailng-ui/primitives</h1>
|
|
13
|
+
|
|
14
|
+
<p>
|
|
15
|
+
<strong>Scalability of Angular. Simplicity of Tailwind.</strong>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p>
|
|
19
|
+
Unstyled, composable primitives for Angular 21+ built with signals and strong accessibility contracts.
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p>
|
|
23
|
+
<a href="https://github.com/tailng/tailng-ui">GitHub</a>
|
|
24
|
+
·
|
|
25
|
+
<a href="https://tailng.dev">Documentation</a>
|
|
26
|
+
</p>
|
|
7
27
|
</div>
|
|
8
28
|
|
|
9
|
-
|
|
29
|
+
[](https://github.com/tailng/tailng-ui/actions/workflows/prod-build-deploy.yml)
|
|
30
|
+
[](https://www.npmjs.com/package/@tailng-ui/primitives)
|
|
31
|
+
[](https://opensource.org/licenses/MIT)
|
|
32
|
+
|
|
33
|
+
`@tailng-ui/primitives` is the headless interaction layer used by TailNG components.
|
|
34
|
+
Use it when you want full control over markup and styling while keeping robust behavior and accessibility.
|
|
10
35
|
|
|
11
|
-
|
|
36
|
+
## Installation
|
|
12
37
|
|
|
13
|
-
|
|
38
|
+
### pnpm
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pnpm add @tailng-ui/primitives @tailng-ui/cdk
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### yarn
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
yarn add @tailng-ui/primitives @tailng-ui/cdk
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### npm
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm install @tailng-ui/primitives @tailng-ui/cdk
|
|
54
|
+
```
|
|
14
55
|
|
|
15
|
-
|
|
56
|
+
Peer dependencies:
|
|
16
57
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
- Handles disabled interaction for anchors and exposes `data-disabled` for styling.
|
|
20
|
-
- Applies button keyboard behavior to anchors without `href`.
|
|
58
|
+
- `@angular/core` `^21.1.0`
|
|
59
|
+
- `tslib` `^2.3.0`
|
|
21
60
|
|
|
22
|
-
|
|
61
|
+
## Design principles
|
|
62
|
+
|
|
63
|
+
- **Headless-first**: no visual styles, tokens, or CSS framework dependency.
|
|
64
|
+
- **Composable behavior**: each primitive solves one interaction concern cleanly.
|
|
65
|
+
- **A11y as default**: ARIA roles/states and keyboard support are built in.
|
|
66
|
+
- **Signals-oriented Angular APIs**: modern Angular patterns with standalone usage.
|
|
67
|
+
|
|
68
|
+
## Module coverage
|
|
69
|
+
|
|
70
|
+
The package exports primitives across major UI categories:
|
|
71
|
+
|
|
72
|
+
- **Navigation**: breadcrumb, context menu, dropdown menu, menu, menubar, navigation menu, tabs, toolbar.
|
|
73
|
+
- **Form**: listbox/option, autocomplete, button-toggle, checkbox, chips, combobox, input/input-otp, label, multiselect, multi-autocomplete, radio, select, slider, switch, textarea, toggle, toggle-group.
|
|
74
|
+
- **Layout**: accordion, bottom-sheet, card, collapsible, drawer, grid, separator, stepper, tree.
|
|
75
|
+
- **Overlay**: dialog, popover, tooltip.
|
|
76
|
+
- **Feedback**: empty, progress-bar, progress-spinner, skeleton, toast.
|
|
77
|
+
- **Utility**: avatar, badge, code-block, copy, press, tag.
|
|
78
|
+
|
|
79
|
+
## Quick example (`TngPress`)
|
|
80
|
+
|
|
81
|
+
`TngPress` enhances native `button` and `a` elements with safer defaults and interaction behavior.
|
|
23
82
|
|
|
24
83
|
```ts
|
|
25
84
|
import { Component } from '@angular/core';
|
|
26
85
|
import { TngPress } from '@tailng-ui/primitives';
|
|
27
86
|
|
|
28
87
|
@Component({
|
|
88
|
+
standalone: true,
|
|
29
89
|
imports: [TngPress],
|
|
30
90
|
template: `
|
|
31
|
-
<button tngPress
|
|
91
|
+
<button tngPress>Action</button>
|
|
32
92
|
<a tngPress [disabled]="true">Disabled Link Button</a>
|
|
33
93
|
`,
|
|
34
94
|
})
|
|
35
95
|
export class ExampleComponent {}
|
|
36
96
|
```
|
|
97
|
+
|
|
98
|
+
What it provides:
|
|
99
|
+
|
|
100
|
+
- Defaults `button[tngPress]` to `type="button"` to prevent accidental form submits.
|
|
101
|
+
- Supports ARIA attributes for toggle/disclosure patterns.
|
|
102
|
+
- Handles disabled interaction on anchor usage and exposes `data-disabled` hooks.
|
|
103
|
+
- Applies expected keyboard behavior to anchor elements used as button-like controls.
|
|
104
|
+
|
|
105
|
+
## When to use `@tailng-ui/primitives`
|
|
106
|
+
|
|
107
|
+
Use this package when you want:
|
|
108
|
+
|
|
109
|
+
- A custom design system with your own CSS architecture.
|
|
110
|
+
- Maximum control over template structure and slot composition.
|
|
111
|
+
- Behavior parity across plain CSS and Tailwind implementations.
|
|
112
|
+
|
|
113
|
+
Use `@tailng-ui/components` when you want ready-made styled components on top of these primitives.
|
|
114
|
+
|
|
115
|
+
## Documentation
|
|
116
|
+
|
|
117
|
+
- Package docs: [https://tailng.dev](https://tailng.dev)
|
|
118
|
+
- Repository: [https://github.com/tailng/tailng-ui](https://github.com/tailng/tailng-ui)
|
|
119
|
+
|
|
120
|
+
## License
|
|
121
|
+
|
|
122
|
+
See the repository license at the root of the monorepo.
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-empty.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/empty/tng-empty.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"tng-empty.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/empty/tng-empty.ts"],"names":[],"mappings":"AAEA,qBAKa,QAAQ;IAEnB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;CAChD;AAED,qBAKa,YAAY;IAEvB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;CACrD;AAED,qBAKa,aAAa;IAExB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;CACtD;AAED,qBAKa,mBAAmB;IAE9B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,mBAAmB,CAAU;CAC5D;AAED,qBAKa,eAAe;IAE1B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,eAAe,CAAU;CACxD"}
|
|
@@ -10,6 +10,7 @@ TngEmpty = __decorate([
|
|
|
10
10
|
Directive({
|
|
11
11
|
selector: '[tngEmpty]',
|
|
12
12
|
exportAs: 'tngEmpty',
|
|
13
|
+
standalone: true,
|
|
13
14
|
})
|
|
14
15
|
], TngEmpty);
|
|
15
16
|
export { TngEmpty };
|
|
@@ -23,6 +24,7 @@ TngEmptyIcon = __decorate([
|
|
|
23
24
|
Directive({
|
|
24
25
|
selector: '[tngEmptyIcon]',
|
|
25
26
|
exportAs: 'tngEmptyIcon',
|
|
27
|
+
standalone: true,
|
|
26
28
|
})
|
|
27
29
|
], TngEmptyIcon);
|
|
28
30
|
export { TngEmptyIcon };
|
|
@@ -36,6 +38,7 @@ TngEmptyTitle = __decorate([
|
|
|
36
38
|
Directive({
|
|
37
39
|
selector: '[tngEmptyTitle]',
|
|
38
40
|
exportAs: 'tngEmptyTitle',
|
|
41
|
+
standalone: true,
|
|
39
42
|
})
|
|
40
43
|
], TngEmptyTitle);
|
|
41
44
|
export { TngEmptyTitle };
|
|
@@ -49,6 +52,7 @@ TngEmptyDescription = __decorate([
|
|
|
49
52
|
Directive({
|
|
50
53
|
selector: '[tngEmptyDescription]',
|
|
51
54
|
exportAs: 'tngEmptyDescription',
|
|
55
|
+
standalone: true,
|
|
52
56
|
})
|
|
53
57
|
], TngEmptyDescription);
|
|
54
58
|
export { TngEmptyDescription };
|
|
@@ -62,6 +66,7 @@ TngEmptyActions = __decorate([
|
|
|
62
66
|
Directive({
|
|
63
67
|
selector: '[tngEmptyActions]',
|
|
64
68
|
exportAs: 'tngEmptyActions',
|
|
69
|
+
standalone: true,
|
|
65
70
|
})
|
|
66
71
|
], TngEmptyActions);
|
|
67
72
|
export { TngEmptyActions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-empty.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/empty/tng-empty.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-empty.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/empty/tng-empty.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOhD,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAEA,QAAQ,GAAG,OAAgB,CAAC;CAChD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;0CACiB;AAFpC,QAAQ;IALpB,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,QAAQ,CAGpB;;AAOM,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEJ,QAAQ,GAAG,YAAqB,CAAC;CACrD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;8CACsB;AAFzC,YAAY;IALxB,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,YAAY,CAGxB;;AAOM,IAAM,aAAa,GAAnB,MAAM,aAAa;IAEL,QAAQ,GAAG,aAAsB,CAAC;CACtD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;+CACuB;AAF1C,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,eAAe;QACzB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,aAAa,CAGzB;;AAOM,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAEX,QAAQ,GAAG,mBAA4B,CAAC;CAC5D,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;qDAC6B;AAFhD,mBAAmB;IAL/B,SAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,qBAAqB;QAC/B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,mBAAmB,CAG/B;;AAOM,IAAM,eAAe,GAArB,MAAM,eAAe;IAEP,QAAQ,GAAG,eAAwB,CAAC;CACxD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;iDACyB;AAF5C,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,iBAAiB;QAC3B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,eAAe,CAG3B","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngEmpty]',\n exportAs: 'tngEmpty',\n standalone: true,\n})\nexport class TngEmpty {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'empty' as const;\n}\n\n@Directive({\n selector: '[tngEmptyIcon]',\n exportAs: 'tngEmptyIcon',\n standalone: true,\n})\nexport class TngEmptyIcon {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'empty-icon' as const;\n}\n\n@Directive({\n selector: '[tngEmptyTitle]',\n exportAs: 'tngEmptyTitle',\n standalone: true,\n})\nexport class TngEmptyTitle {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'empty-title' as const;\n}\n\n@Directive({\n selector: '[tngEmptyDescription]',\n exportAs: 'tngEmptyDescription',\n standalone: true,\n})\nexport class TngEmptyDescription {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'empty-description' as const;\n}\n\n@Directive({\n selector: '[tngEmptyActions]',\n exportAs: 'tngEmptyActions',\n standalone: true,\n})\nexport class TngEmptyActions {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'empty-actions' as const;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-progress-bar.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/progress-bar/tng-progress-bar.ts"],"names":[],"mappings":"AAMA,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,QAAQ,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAWD;AAED,
|
|
1
|
+
{"version":3,"file":"tng-progress-bar.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/progress-bar/tng-progress-bar.ts"],"names":[],"mappings":"AAMA,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,QAAQ,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAWD;AAED,qBAKa,cAAc;IACzB,SAAgB,aAAa,8EAE1B;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,KAAK,4EAGlB;IAGH,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAM9C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAM9C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAM9C;IAGD,SAAS,KAAK,qBAAqB,IAAI,EAAE,GAAG,IAAI,CAE/C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAU;IAGtD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAErD,OAAO,KAAK,KAAK,GAMhB;CACF;AAED,qBAKa,uBAAuB;IAElC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,wBAAwB,CAAU;CACjE"}
|
|
@@ -82,6 +82,7 @@ TngProgressBar = __decorate([
|
|
|
82
82
|
Directive({
|
|
83
83
|
selector: '[tngProgressBar]',
|
|
84
84
|
exportAs: 'tngProgressBar',
|
|
85
|
+
standalone: true,
|
|
85
86
|
})
|
|
86
87
|
], TngProgressBar);
|
|
87
88
|
export { TngProgressBar };
|
|
@@ -95,6 +96,7 @@ TngProgressBarIndicator = __decorate([
|
|
|
95
96
|
Directive({
|
|
96
97
|
selector: '[tngProgressBarIndicator]',
|
|
97
98
|
exportAs: 'tngProgressBarIndicator',
|
|
99
|
+
standalone: true,
|
|
98
100
|
})
|
|
99
101
|
], TngProgressBarIndicator);
|
|
100
102
|
export { TngProgressBarIndicator };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-progress-bar.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/progress-bar/tng-progress-bar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhF,SAAS,qBAAqB,CAAC,KAAa,EAAE,QAAgB;IAC5D,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,GAAW,EACX,GAAW,EACX,KAAa;IAMb,MAAM,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAEpF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-progress-bar.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/progress-bar/tng-progress-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import { booleanAttribute, Directive, HostBinding, input } from '@angular/core';\n\nfunction normalizeFiniteNumber(value: number, fallback: number): number {\n return Number.isFinite(value) ? value : fallback;\n}\n\nexport function normalizeTngProgressBarMin(value: number): number {\n return normalizeFiniteNumber(value, 0);\n}\n\nexport function normalizeTngProgressBarMax(value: number): number {\n return normalizeFiniteNumber(value, 100);\n}\n\nexport function resolveTngProgressBarRange(\n min: number,\n max: number,\n value: number,\n): Readonly<{\n max: number;\n min: number;\n value: number;\n}> {\n const resolvedMin = normalizeTngProgressBarMin(min);\n const resolvedMax = Math.max(normalizeTngProgressBarMax(max), resolvedMin);\n const normalizedValue = normalizeFiniteNumber(value, resolvedMin);\n const resolvedValue = Math.min(Math.max(normalizedValue, resolvedMin), resolvedMax);\n\n return Object.freeze({\n max: resolvedMax,\n min: resolvedMin,\n value: resolvedValue,\n });\n}\n\n@Directive({\n selector: '[tngProgressBar]',\n exportAs: 'tngProgressBar',\n standalone: true,\n})\nexport class TngProgressBar {\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly max = input<number, number | string>(100, {\n transform: (value: number | string): number =>\n normalizeTngProgressBarMax(typeof value === 'number' ? value : Number(value)),\n });\n public readonly min = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n normalizeTngProgressBarMin(typeof value === 'number' ? value : Number(value)),\n });\n public readonly value = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n typeof value === 'number' ? value : Number(value),\n });\n\n @HostBinding('attr.aria-valuemax')\n protected get ariaValueMaxAttr(): string | null {\n if (this.indeterminate()) {\n return null;\n }\n\n return String(this.range.max);\n }\n\n @HostBinding('attr.aria-valuemin')\n protected get ariaValueMinAttr(): string | null {\n if (this.indeterminate()) {\n return null;\n }\n\n return String(this.range.min);\n }\n\n @HostBinding('attr.aria-valuenow')\n protected get ariaValueNowAttr(): string | null {\n if (this.indeterminate()) {\n return null;\n }\n\n return String(this.range.value);\n }\n\n @HostBinding('attr.data-indeterminate')\n protected get dataIndeterminateAttr(): '' | null {\n return this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'progress-bar' as const;\n\n @HostBinding('attr.role')\n protected readonly roleAttr = 'progressbar' as const;\n\n private get range(): Readonly<{\n max: number;\n min: number;\n value: number;\n }> {\n return resolveTngProgressBarRange(this.min(), this.max(), this.value());\n }\n}\n\n@Directive({\n selector: '[tngProgressBarIndicator]',\n exportAs: 'tngProgressBarIndicator',\n standalone: true,\n})\nexport class TngProgressBarIndicator {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'progress-bar-indicator' as const;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-progress-spinner.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/progress-spinner/tng-progress-spinner.ts"],"names":[],"mappings":"AAMA,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,QAAQ,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAWD;AAED,
|
|
1
|
+
{"version":3,"file":"tng-progress-spinner.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/progress-spinner/tng-progress-spinner.ts"],"names":[],"mappings":"AAMA,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,QAAQ,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAWD;AAED,qBAKa,kBAAkB;IAC7B,SAAgB,aAAa,8EAE1B;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,KAAK,4EAGlB;IAGH,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAM9C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAM9C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAM9C;IAGD,SAAS,KAAK,qBAAqB,IAAI,EAAE,GAAG,IAAI,CAE/C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,kBAAkB,CAAU;IAG1D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAErD,OAAO,KAAK,KAAK,GAMhB;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-progress-spinner.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/progress-spinner/tng-progress-spinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhF,SAAS,qBAAqB,CAAC,KAAa,EAAE,QAAgB;IAC5D,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,OAAO,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,OAAO,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,GAAW,EACX,GAAW,EACX,KAAa;IAMb,MAAM,WAAW,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAEpF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-progress-spinner.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/progress-spinner/tng-progress-spinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhF,SAAS,qBAAqB,CAAC,KAAa,EAAE,QAAgB;IAC5D,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,OAAO,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,OAAO,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,GAAW,EACX,GAAW,EACX,KAAa;IAMb,MAAM,WAAW,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;IAEpF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;AACL,CAAC;AAOM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACb,aAAa,GAAG,KAAK,CAA4B,KAAK,EAAE;QACtE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,GAAG,GAAG,KAAK,CAA0B,GAAG,EAAE;QACxD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,8BAA8B,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACpF,CAAC,CAAC;IACa,GAAG,GAAG,KAAK,CAA0B,CAAC,EAAE;QACtD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,8BAA8B,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACpF,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAA0B,CAAC,EAAE;QACxD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KACpD,CAAC,CAAC;IAGH,IAAc,gBAAgB;QAC5B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAGD,IAAc,gBAAgB;QAC5B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAGD,IAAc,gBAAgB;QAC5B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAGD,IAAc,qBAAqB;QACjC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAGkB,QAAQ,GAAG,kBAA2B,CAAC;IAGvC,QAAQ,GAAG,aAAsB,CAAC;IAErD,IAAY,KAAK;QAKf,OAAO,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF,CAAA;AA5CC;IADC,WAAW,CAAC,oBAAoB,CAAC;0DAOjC;AAGD;IADC,WAAW,CAAC,oBAAoB,CAAC;0DAOjC;AAGD;IADC,WAAW,CAAC,oBAAoB,CAAC;0DAOjC;AAGD;IADC,WAAW,CAAC,yBAAyB,CAAC;+DAGtC;AAGkB;IADlB,WAAW,CAAC,gBAAgB,CAAC;oDAC4B;AAGvC;IADlB,WAAW,CAAC,WAAW,CAAC;oDAC4B;AArD1C,kBAAkB;IAL9B,SAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,kBAAkB,CA8D9B","sourcesContent":["import { booleanAttribute, Directive, HostBinding, input } from '@angular/core';\n\nfunction normalizeFiniteNumber(value: number, fallback: number): number {\n return Number.isFinite(value) ? value : fallback;\n}\n\nexport function normalizeTngProgressSpinnerMin(value: number): number {\n return normalizeFiniteNumber(value, 0);\n}\n\nexport function normalizeTngProgressSpinnerMax(value: number): number {\n return normalizeFiniteNumber(value, 100);\n}\n\nexport function resolveTngProgressSpinnerRange(\n min: number,\n max: number,\n value: number,\n): Readonly<{\n max: number;\n min: number;\n value: number;\n}> {\n const resolvedMin = normalizeTngProgressSpinnerMin(min);\n const resolvedMax = Math.max(normalizeTngProgressSpinnerMax(max), resolvedMin);\n const normalizedValue = normalizeFiniteNumber(value, resolvedMin);\n const resolvedValue = Math.min(Math.max(normalizedValue, resolvedMin), resolvedMax);\n\n return Object.freeze({\n max: resolvedMax,\n min: resolvedMin,\n value: resolvedValue,\n });\n}\n\n@Directive({\n selector: '[tngProgressSpinner]',\n exportAs: 'tngProgressSpinner',\n standalone: true,\n})\nexport class TngProgressSpinner {\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly max = input<number, number | string>(100, {\n transform: (value: number | string): number =>\n normalizeTngProgressSpinnerMax(typeof value === 'number' ? value : Number(value)),\n });\n public readonly min = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n normalizeTngProgressSpinnerMin(typeof value === 'number' ? value : Number(value)),\n });\n public readonly value = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n typeof value === 'number' ? value : Number(value),\n });\n\n @HostBinding('attr.aria-valuemax')\n protected get ariaValueMaxAttr(): string | null {\n if (this.indeterminate()) {\n return null;\n }\n\n return String(this.range.max);\n }\n\n @HostBinding('attr.aria-valuemin')\n protected get ariaValueMinAttr(): string | null {\n if (this.indeterminate()) {\n return null;\n }\n\n return String(this.range.min);\n }\n\n @HostBinding('attr.aria-valuenow')\n protected get ariaValueNowAttr(): string | null {\n if (this.indeterminate()) {\n return null;\n }\n\n return String(this.range.value);\n }\n\n @HostBinding('attr.data-indeterminate')\n protected get dataIndeterminateAttr(): '' | null {\n return this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'progress-spinner' as const;\n\n @HostBinding('attr.role')\n protected readonly roleAttr = 'progressbar' as const;\n\n private get range(): Readonly<{\n max: number;\n min: number;\n value: number;\n }> {\n return resolveTngProgressSpinnerRange(this.min(), this.max(), this.value());\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-skeleton.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/skeleton/tng-skeleton.ts"],"names":[],"mappings":"AAEA,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAElF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAEhF;AAED,
|
|
1
|
+
{"version":3,"file":"tng-skeleton.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/skeleton/tng-skeleton.ts"],"names":[],"mappings":"AAEA,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAElF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAEhF;AAED,qBAKa,WAAW;IACtB,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,8EAEpB;IAGH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAG,MAAM,CAAU;IAGpD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAU;IAGtD,SAAS,KAAK,gBAAgB,IAAI,OAAO,GAAG,MAAM,CAEjD;IAGD,SAAS,KAAK,eAAe,IAAI,OAAO,GAAG,MAAM,CAEhD;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;CACnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-skeleton.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/skeleton/tng-skeleton.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhF,MAAM,UAAU,8BAA8B,CAAC,QAAiB;IAC9D,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAgB;IAC5D,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-skeleton.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/skeleton/tng-skeleton.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhF,MAAM,UAAU,8BAA8B,CAAC,QAAiB;IAC9D,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAgB;IAC5D,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACpC,CAAC;AAOM,IAAM,WAAW,GAAjB,MAAM,WAAW;IACN,QAAQ,GAAG,KAAK,CAA4B,IAAI,EAAE;QAChE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,OAAO,GAAG,KAAK,CAA4B,IAAI,EAAE;QAC/D,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IAGgB,cAAc,GAAG,MAAe,CAAC;IAGjC,QAAQ,GAAG,cAAuB,CAAC;IAGtD,IAAc,gBAAgB;QAC5B,OAAO,8BAA8B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAGD,IAAc,eAAe;QAC3B,OAAO,6BAA6B,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAGkB,QAAQ,GAAG,UAAmB,CAAC;CACnD,CAAA;AAjBoB;IADlB,WAAW,CAAC,kBAAkB,CAAC;mDACoB;AAGjC;IADlB,WAAW,CAAC,WAAW,CAAC;6CAC6B;AAGtD;IADC,WAAW,CAAC,oBAAoB,CAAC;mDAGjC;AAGD;IADC,WAAW,CAAC,mBAAmB,CAAC;kDAGhC;AAGkB;IADlB,WAAW,CAAC,gBAAgB,CAAC;6CACoB;AAzBvC,WAAW;IALvB,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,WAAW,CA0BvB","sourcesContent":["import { Directive, HostBinding, booleanAttribute, input } from '@angular/core';\n\nexport function resolveTngSkeletonDataAnimated(animated: boolean): 'false' | 'true' {\n return animated ? 'true' : 'false';\n}\n\nexport function resolveTngSkeletonDataRounded(rounded: boolean): 'false' | 'true' {\n return rounded ? 'true' : 'false';\n}\n\n@Directive({\n selector: '[tngSkeleton]',\n exportAs: 'tngSkeleton',\n standalone: true,\n})\nexport class TngSkeleton {\n public readonly animated = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly rounded = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n\n @HostBinding('attr.aria-hidden')\n protected readonly ariaHiddenAttr = 'true' as const;\n\n @HostBinding('attr.role')\n protected readonly roleAttr = 'presentation' as const;\n\n @HostBinding('attr.data-animated')\n protected get dataAnimatedAttr(): 'false' | 'true' {\n return resolveTngSkeletonDataAnimated(this.animated());\n }\n\n @HostBinding('attr.data-rounded')\n protected get dataRoundedAttr(): 'false' | 'true' {\n return resolveTngSkeletonDataRounded(this.rounded());\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'skeleton' as const;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-toast.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/toast/tng-toast.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAExE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,QAAQ,CAElF;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAEzE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,IAAI,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CAE1E;AAED,
|
|
1
|
+
{"version":3,"file":"tng-toast.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/toast/tng-toast.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAExE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,QAAQ,CAElF;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAEzE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,IAAI,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CAE1E;AAED,qBAKa,gBAAgB;IAE3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAU;CACzD;AAED,qBAKa,YAAY;IACvB,SAAgB,IAAI,8EAEjB;IACH,SAAgB,IAAI,oDAAkC;IAGtD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAG,MAAM,CAAU;IAGpD,SAAS,KAAK,YAAY,IAAI,WAAW,GAAG,QAAQ,CAEnD;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAGpD,SAAS,KAAK,aAAa,IAAI,QAAQ,GAAG,MAAM,CAE/C;IAGD,SAAS,KAAK,YAAY,IAAI,YAAY,CAEzC;IAGD,SAAS,KAAK,UAAU,IAAI,EAAE,GAAG,IAAI,CAEpC;IAGD,SAAS,KAAK,QAAQ,IAAI,OAAO,GAAG,QAAQ,CAE3C;CACF"}
|
|
@@ -22,6 +22,7 @@ TngToastViewport = __decorate([
|
|
|
22
22
|
Directive({
|
|
23
23
|
selector: '[tngToastViewport]',
|
|
24
24
|
exportAs: 'tngToastViewport',
|
|
25
|
+
standalone: true,
|
|
25
26
|
})
|
|
26
27
|
], TngToastViewport);
|
|
27
28
|
export { TngToastViewport };
|
|
@@ -73,6 +74,7 @@ TngToastItem = __decorate([
|
|
|
73
74
|
Directive({
|
|
74
75
|
selector: '[tngToastItem]',
|
|
75
76
|
exportAs: 'tngToastItem',
|
|
77
|
+
standalone: true,
|
|
76
78
|
})
|
|
77
79
|
], TngToastItem);
|
|
78
80
|
export { TngToastItem };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-toast.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/toast/tng-toast.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACxD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAa;IACpD,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAkB;IACpD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtE,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-toast.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/feedback/toast/tng-toast.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACxD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAa;IACpD,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAkB;IACpD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtE,CAAC;AAOM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAER,QAAQ,GAAG,gBAAyB,CAAC;CACzD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;kDAC0B;AAF7C,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,gBAAgB,CAG5B;;AAOM,IAAM,YAAY,GAAlB,MAAM,YAAY;IACP,IAAI,GAAG,KAAK,CAA4B,IAAI,EAAE;QAC5D,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,IAAI,GAAG,KAAK,CAAe,SAAS,CAAC,CAAC;IAGnC,cAAc,GAAG,MAAe,CAAC;IAGpD,IAAc,YAAY;QACxB,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAGkB,QAAQ,GAAG,YAAqB,CAAC;IAGpD,IAAc,aAAa;QACzB,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAGD,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAGD,IAAc,UAAU;QACtB,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAGD,IAAc,QAAQ;QACpB,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AA7BoB;IADlB,WAAW,CAAC,kBAAkB,CAAC;oDACoB;AAGpD;IADC,WAAW,CAAC,gBAAgB,CAAC;gDAG7B;AAGkB;IADlB,WAAW,CAAC,gBAAgB,CAAC;8CACsB;AAGpD;IADC,WAAW,CAAC,iBAAiB,CAAC;iDAG9B;AAGD;IADC,WAAW,CAAC,gBAAgB,CAAC;gDAG7B;AAGD;IADC,WAAW,CAAC,aAAa,CAAC;8CAG1B;AAGD;IADC,WAAW,CAAC,WAAW,CAAC;4CAGxB;AAnCU,YAAY;IALxB,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,YAAY,CAoCxB","sourcesContent":["import { Directive, HostBinding, booleanAttribute, input } from '@angular/core';\n\nexport type TngToastTone = 'danger' | 'neutral' | 'success' | 'warning';\n\nexport function resolveTngToastAriaLive(tone: TngToastTone): 'assertive' | 'polite' {\n return tone === 'danger' || tone === 'warning' ? 'assertive' : 'polite';\n}\n\nexport function resolveTngToastDataState(open: boolean): 'closed' | 'open' {\n return open ? 'open' : 'closed';\n}\n\nexport function resolveTngToastHidden(open: boolean): '' | null {\n return open ? null : '';\n}\n\nexport function resolveTngToastRole(tone: TngToastTone): 'alert' | 'status' {\n return tone === 'danger' || tone === 'warning' ? 'alert' : 'status';\n}\n\n@Directive({\n selector: '[tngToastViewport]',\n exportAs: 'tngToastViewport',\n standalone: true,\n})\nexport class TngToastViewport {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'toast-viewport' as const;\n}\n\n@Directive({\n selector: '[tngToastItem]',\n exportAs: 'tngToastItem',\n standalone: true,\n})\nexport class TngToastItem {\n public readonly open = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly tone = input<TngToastTone>('neutral');\n\n @HostBinding('attr.aria-atomic')\n protected readonly ariaAtomicAttr = 'true' as const;\n\n @HostBinding('attr.aria-live')\n protected get ariaLiveAttr(): 'assertive' | 'polite' {\n return resolveTngToastAriaLive(this.tone());\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'toast-item' as const;\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'closed' | 'open' {\n return resolveTngToastDataState(this.open());\n }\n\n @HostBinding('attr.data-tone')\n protected get dataToneAttr(): TngToastTone {\n return this.tone();\n }\n\n @HostBinding('attr.hidden')\n protected get hiddenAttr(): '' | null {\n return resolveTngToastHidden(this.open());\n }\n\n @HostBinding('attr.role')\n protected get roleAttr(): 'alert' | 'status' {\n return resolveTngToastRole(this.tone());\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-checkbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":"AAUA,KAAK,oBAAoB,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAW/E,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,GAAG,IAAI,CAc5F;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,OAAO,GAAG,OAAO,GAAG,MAAM,CAM5B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,SAAS,GAAG,OAAO,GAAG,WAAW,CAMnC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,WAAW,EAAE,OAAO,GAAG,IAAI,GAC1B,OAAO,CAUT;AAED,
|
|
1
|
+
{"version":3,"file":"tng-checkbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":"AAUA,KAAK,oBAAoB,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAW/E,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,GAAG,IAAI,CAc5F;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,OAAO,GAAG,OAAO,GAAG,MAAM,CAM5B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,SAAS,GAAG,OAAO,GAAG,WAAW,CAMnC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,WAAW,EAAE,OAAO,GAAG,IAAI,GAC1B,OAAO,CAUT;AAED,qBAKa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoD;IAC/E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAE7B,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,yFAExB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,yFAEpB;IACH,SAAgB,aAAa,8EAE1B;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,qDAA8B;IACnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAGlD,SAAS,KAAK,WAAW,IAAI,OAAO,CAEnC;IAGD,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAEzC;IAGD,SAAS,KAAK,eAAe,IAAI,OAAO,GAAG,OAAO,GAAG,MAAM,CAE1D;IAGD,SAAS,KAAK,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEjD;IAGD,SAAS,KAAK,eAAe,IAAI,MAAM,GAAG,IAAI,CAE7C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,oBAAoB,IAAI,EAAE,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,aAAa,IAAI,SAAS,GAAG,OAAO,GAAG,WAAW,CAE/D;IAGD,SAAS,KAAK,iBAAiB,IAAI,EAAE,GAAG,IAAI,CAE3C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,UAAU,CAEvC;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAEvC;IAGM,MAAM,IAAI,IAAI;IAMd,OAAO,IAAI,IAAI;IAMf,gBAAgB,IAAI,IAAI;IAU/B,OAAO,CAAC,SAAS;CAGlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-checkbox.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\ntype NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;\n\nfunction normalizeStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function coerceTngCheckboxNullableBoolean(value: NullableBooleanInput): boolean | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (value === '' || value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n return null;\n}\n\nexport function resolveTngCheckboxAriaChecked(\n checked: boolean,\n indeterminate: boolean,\n): 'false' | 'mixed' | 'true' {\n if (indeterminate) {\n return 'mixed';\n }\n\n return checked ? 'true' : 'false';\n}\n\nexport function resolveTngCheckboxDataState(\n checked: boolean,\n indeterminate: boolean,\n): 'checked' | 'mixed' | 'unchecked' {\n if (indeterminate) {\n return 'mixed';\n }\n\n return checked ? 'checked' : 'unchecked';\n}\n\nexport function resolveTngCheckboxInvalidState(\n invalid: boolean | null,\n ariaInvalid: boolean | null,\n): boolean {\n if (invalid !== null) {\n return invalid;\n }\n\n if (ariaInvalid !== null) {\n return ariaInvalid;\n }\n\n return false;\n}\n\n@Directive({\n selector: 'input[tngCheckbox]',\n exportAs: 'tngCheckbox',\n})\nexport class TngCheckbox {\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private focused = false;\n private focusVisible = false;\n\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngCheckboxNullableBoolean,\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 | null, NullableBooleanInput>(null, {\n transform: coerceTngCheckboxNullableBoolean,\n });\n public readonly indeterminate = 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 | null>(null);\n protected readonly typeAttr = 'checkbox' as const;\n\n @HostBinding('checked')\n protected get checkedProp(): boolean {\n return this.checked();\n }\n\n @HostBinding('indeterminate')\n protected get indeterminateProp(): boolean {\n return this.indeterminate();\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'false' | 'mixed' | 'true' {\n return resolveTngCheckboxAriaChecked(this.checked(), this.indeterminate());\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalidAttr(): 'true' | null {\n return this.isInvalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-readonly')\n protected get ariaReadonlyAttr(): 'true' | null {\n return this.readonly() ? 'true' : null;\n }\n\n @HostBinding('attr.data-checked')\n protected get dataCheckedAttr(): '' | null {\n return this.checked() && !this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisibleAttr(): '' | null {\n return this.focusVisible ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalidAttr(): '' | null {\n return this.isInvalid() ? '' : null;\n }\n\n @HostBinding('attr.data-mixed')\n protected get dataMixedAttr(): '' | null {\n return this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-readonly')\n protected get dataReadonlyAttr(): '' | null {\n return this.readonly() ? '' : null;\n }\n\n @HostBinding('attr.data-required')\n protected get dataRequiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'checked' | 'mixed' | 'unchecked' {\n return resolveTngCheckboxDataState(this.checked(), this.indeterminate());\n }\n\n @HostBinding('attr.data-unchecked')\n protected get dataUncheckedAttr(): '' | null {\n return !this.checked() && !this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.name')\n protected get nameAttr(): string | null {\n return normalizeStringValue(this.name());\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get hostTypeAttr(): 'checkbox' {\n return this.typeAttr;\n }\n\n @HostBinding('attr.value')\n protected get valueAttr(): string | null {\n return normalizeStringValue(this.value());\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.focused = false;\n this.focusVisible = false;\n }\n\n @HostListener('focus')\n public onFocus(): void {\n this.focused = true;\n this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');\n }\n\n @HostListener('change')\n public onReadonlyChange(): void {\n if (!this.readonly() || this.disabled()) {\n return;\n }\n\n const hostElement = this.elementRef.nativeElement;\n hostElement.checked = this.checked();\n hostElement.indeterminate = this.indeterminate();\n }\n\n private isInvalid(): boolean {\n return resolveTngCheckboxInvalidState(this.invalid(), this.ariaInvalid());\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tng-checkbox.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\ntype NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;\n\nfunction normalizeStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function coerceTngCheckboxNullableBoolean(value: NullableBooleanInput): boolean | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (value === '' || value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n return null;\n}\n\nexport function resolveTngCheckboxAriaChecked(\n checked: boolean,\n indeterminate: boolean,\n): 'false' | 'mixed' | 'true' {\n if (indeterminate) {\n return 'mixed';\n }\n\n return checked ? 'true' : 'false';\n}\n\nexport function resolveTngCheckboxDataState(\n checked: boolean,\n indeterminate: boolean,\n): 'checked' | 'mixed' | 'unchecked' {\n if (indeterminate) {\n return 'mixed';\n }\n\n return checked ? 'checked' : 'unchecked';\n}\n\nexport function resolveTngCheckboxInvalidState(\n invalid: boolean | null,\n ariaInvalid: boolean | null,\n): boolean {\n if (invalid !== null) {\n return invalid;\n }\n\n if (ariaInvalid !== null) {\n return ariaInvalid;\n }\n\n return false;\n}\n\n@Directive({\n selector: 'input[tngCheckbox]',\n exportAs: 'tngCheckbox',\n standalone: true,\n})\nexport class TngCheckbox {\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private focused = false;\n private focusVisible = false;\n\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngCheckboxNullableBoolean,\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 | null, NullableBooleanInput>(null, {\n transform: coerceTngCheckboxNullableBoolean,\n });\n public readonly indeterminate = 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 | null>(null);\n protected readonly typeAttr = 'checkbox' as const;\n\n @HostBinding('checked')\n protected get checkedProp(): boolean {\n return this.checked();\n }\n\n @HostBinding('indeterminate')\n protected get indeterminateProp(): boolean {\n return this.indeterminate();\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'false' | 'mixed' | 'true' {\n return resolveTngCheckboxAriaChecked(this.checked(), this.indeterminate());\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalidAttr(): 'true' | null {\n return this.isInvalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-readonly')\n protected get ariaReadonlyAttr(): 'true' | null {\n return this.readonly() ? 'true' : null;\n }\n\n @HostBinding('attr.data-checked')\n protected get dataCheckedAttr(): '' | null {\n return this.checked() && !this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisibleAttr(): '' | null {\n return this.focusVisible ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalidAttr(): '' | null {\n return this.isInvalid() ? '' : null;\n }\n\n @HostBinding('attr.data-mixed')\n protected get dataMixedAttr(): '' | null {\n return this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-readonly')\n protected get dataReadonlyAttr(): '' | null {\n return this.readonly() ? '' : null;\n }\n\n @HostBinding('attr.data-required')\n protected get dataRequiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'checked' | 'mixed' | 'unchecked' {\n return resolveTngCheckboxDataState(this.checked(), this.indeterminate());\n }\n\n @HostBinding('attr.data-unchecked')\n protected get dataUncheckedAttr(): '' | null {\n return !this.checked() && !this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.name')\n protected get nameAttr(): string | null {\n return normalizeStringValue(this.name());\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get hostTypeAttr(): 'checkbox' {\n return this.typeAttr;\n }\n\n @HostBinding('attr.value')\n protected get valueAttr(): string | null {\n return normalizeStringValue(this.value());\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.focused = false;\n this.focusVisible = false;\n }\n\n @HostListener('focus')\n public onFocus(): void {\n this.focused = true;\n this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');\n }\n\n @HostListener('change')\n public onReadonlyChange(): void {\n if (!this.readonly() || this.disabled()) {\n return;\n }\n\n const hostElement = this.elementRef.nativeElement;\n hostElement.checked = this.checked();\n hostElement.indeterminate = this.indeterminate();\n }\n\n private isInvalid(): boolean {\n return resolveTngCheckboxInvalidState(this.invalid(), this.ariaInvalid());\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-chips.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EAMP,MAAM,eAAe,CAAC;AAoCvB,
|
|
1
|
+
{"version":3,"file":"tng-chips.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EAMP,MAAM,eAAe,CAAC;AAoCvB,qBAKa,QAAS,YAAW,MAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IAEjE,SAAgB,MAAM,sEAEnB;IACH,SAAgB,aAAa,0DAE1B;IACH,SAAgB,QAAQ,8EAGrB;IACH,SAAgB,SAAS,qDAEtB;IAEH,SAAgB,UAAU,oDAAqB;IAC/C,SAAgB,YAAY,+DAAgC;IAErD,QAAQ,IAAI,IAAI;IAIhB,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAsB3C,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IASrB,SAAS,KAAK,aAAa,IAAI,MAAM,GAAG,IAAI,CAE3C;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAG/C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;CAC3C;AAED,qBAKa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,SAAgB,KAAK,+CAAmD;IACxE,SAAgB,KAAK,qDAAyD;IAC9E,SAAgB,QAAQ,8EAGrB;IACH,SAAgB,SAAS,8EAGtB;IAEH,SAAgB,UAAU,oDAAqB;IAExC,UAAU,IAAI,OAAO;IAIrB,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,MAAM;IAUvB,aAAa,IAAI,OAAO;IAY/B,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAe/C,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAG9C,SAAS,KAAK,aAAa,IAAI,MAAM,GAAG,IAAI,CAE3C;IAGD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;CAC/C;AAED,qBAKa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+C;IAC1E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAElC,SAAgB,SAAS,qDAEtB;IAEH,OAAO,CAAC,UAAU;IAKlB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAkB1C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,UAAU,IAAI,IAAI;IAK5B,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAuB/C,SAAS,KAAK,aAAa,IAAI,MAAM,CAapC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAGrD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAExC;CACF"}
|
|
@@ -100,6 +100,7 @@ TngChips = __decorate([
|
|
|
100
100
|
Directive({
|
|
101
101
|
selector: '[tngChips]',
|
|
102
102
|
exportAs: 'tngChips',
|
|
103
|
+
standalone: true,
|
|
103
104
|
})
|
|
104
105
|
], TngChips);
|
|
105
106
|
export { TngChips };
|
|
@@ -178,6 +179,7 @@ TngChip = __decorate([
|
|
|
178
179
|
Directive({
|
|
179
180
|
selector: '[tngChip]',
|
|
180
181
|
exportAs: 'tngChip',
|
|
182
|
+
standalone: true,
|
|
181
183
|
})
|
|
182
184
|
], TngChip);
|
|
183
185
|
export { TngChip };
|
|
@@ -290,6 +292,7 @@ TngChipRemove = __decorate([
|
|
|
290
292
|
Directive({
|
|
291
293
|
selector: '[tngChipRemove]',
|
|
292
294
|
exportAs: 'tngChipRemove',
|
|
295
|
+
standalone: true,
|
|
293
296
|
})
|
|
294
297
|
], TngChipRemove);
|
|
295
298
|
export { TngChipRemove };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-chips.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EAEZ,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,eAAe,CAAC;AAEvB,SAAS,eAAe,CAAC,KAAgC;IACvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CAAC,MAA6C;IACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA0B,EAAE,MAAe;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAMM,IAAM,QAAQ,GAAd,MAAM,QAAQ;IACF,cAAc,GAAG,MAAM,CAAqB,EAAE,CAAC,CAAC;IAEjD,MAAM,GAAG,KAAK,CAAiC,SAAS,EAAE;QACxE,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACa,aAAa,GAAG,KAAK,CAAqB,EAAE,EAAE;QAC5D,KAAK,EAAE,uBAAuB;KAC/B,CAAC,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,SAAS,GAAG,KAAK,CAAgB,IAAI,EAAE;QACrD,KAAK,EAAE,mBAAmB;KAC3B,CAAC,CAAC;IAEa,UAAU,GAAG,MAAM,EAAW,CAAC;IAC/B,YAAY,GAAG,MAAM,EAAsB,CAAC;IAErD,QAAQ;QACb,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAEM,WAAW,CAAC,KAAc;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,qBAAqB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,UAAU,KAAK,aAAa,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC;IACrC,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxB,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAGD,IAAc,aAAa;QACzB,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,CAAC;IAGD,IAAc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAGkB,QAAQ,GAAG,OAAgB,CAAC;IAG5B,IAAI,GAAG,MAAe,CAAC;CAC3C,CAAA;AAdC;IADC,WAAW,CAAC,iBAAiB,CAAC;6CAG9B;AAGD;IADC,WAAW,CAAC,oBAAoB,CAAC;gDAGjC;AAGkB;IADlB,WAAW,CAAC,gBAAgB,CAAC;0CACiB;AAG5B;IADlB,WAAW,CAAC,WAAW,CAAC;sCACiB;AA5E/B,QAAQ;IAJpB,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,UAAU;KACrB,CAAC;GACW,QAAQ,CA6EpB;;AAMM,IAAM,OAAO,GAAb,MAAM,OAAO;IACD,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,KAAK,GAAG,KAAK,CAAU,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IACxD,KAAK,GAAG,KAAK,CAAgB,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9D,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,SAAS,GAAG,KAAK,CAA4B,IAAI,EAAE;QACjE,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IAEa,UAAU,GAAG,MAAM,EAAW,CAAC;IAExC,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC9D,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAChD,CAAC;IAEM,aAAa;QAClB,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC;IAC9C,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAGS,SAAS,CAAC,KAAoB;QACtC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YACxD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGD,IAAc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAGkB,QAAQ,GAAG,MAAe,CAAC;IAG9C,IAAc,aAAa;QACzB,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC;IAGkB,IAAI,GAAG,UAAmB,CAAC;CAC/C,CAAA;AA7BW;IADT,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;wCAanC;AAGD;IADC,WAAW,CAAC,oBAAoB,CAAC;+CAGjC;AAGkB;IADlB,WAAW,CAAC,gBAAgB,CAAC;yCACgB;AAG9C;IADC,WAAW,CAAC,iBAAiB,CAAC;4CAG9B;AAGkB;IADlB,WAAW,CAAC,WAAW,CAAC;qCACqB;AA1EnC,OAAO;IAJnB,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,SAAS;KACpB,CAAC;GACW,OAAO,CA2EnB;;AAMM,IAAM,aAAa,GAAnB,MAAM,aAAa;IACP,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IACzD,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,OAAO,GAAG,KAAK,CAAC;IAChB,iBAAiB,GAAG,KAAK,CAAC;IAElB,SAAS,GAAG,KAAK,CAAgB,IAAI,EAAE;QACrD,KAAK,EAAE,wBAAwB;KAChC,CAAC,CAAC;IAEK,UAAU;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC/E,CAAC;IAGS,OAAO,CAAC,KAAiB;QACjC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACtB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;IAC7B,CAAC;IAGS,SAAS;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAGS,UAAU;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAGS,SAAS,CAAC,KAAoB;QACtC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACtB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;IAC7B,CAAC;IAGD,IAAc,aAAa;QACzB,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9F,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,MAAM,CAAC;QACnD,OAAO,UAAU,KAAK,EAAE,CAAC;IAC3B,CAAC;IAGD,IAAc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAGD,IAAc,eAAe;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IAGkB,QAAQ,GAAG,aAAsB,CAAC;IAGrD,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAGD,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,CAAC;CACF,CAAA;AAxFW;IADT,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;4CAgBjC;AAGS;IADT,YAAY,CAAC,SAAS,CAAC;8CAGvB;AAGS;IADT,YAAY,CAAC,UAAU,CAAC;+CAGxB;AAGS;IADT,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;8CAqBnC;AAGD;IADC,WAAW,CAAC,iBAAiB,CAAC;kDAc9B;AAGD;IADC,WAAW,CAAC,oBAAoB,CAAC;qDAGjC;AAGD;IADC,WAAW,CAAC,mBAAmB,CAAC;oDAGhC;AAGkB;IADlB,WAAW,CAAC,gBAAgB,CAAC;+CACuB;AAGrD;IADC,WAAW,CAAC,eAAe,CAAC;iDAG5B;AAGD;IADC,WAAW,CAAC,WAAW,CAAC;6CAGxB;AAxGU,aAAa;IAJzB,SAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,eAAe;KAC1B,CAAC;GACW,aAAa,CAyGzB","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnInit,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nfunction normalizeString(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeValues(values: readonly unknown[] | null | undefined): readonly unknown[] {\n if (!Array.isArray(values) || values.length === 0) {\n return [];\n }\n\n return [...values];\n}\n\nfunction toDataValue(value: unknown): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n return String(value);\n}\n\nfunction removeFirstOccurrence(values: readonly unknown[], target: unknown): readonly unknown[] {\n const index = values.findIndex((item) => Object.is(item, target));\n if (index < 0) {\n return values;\n }\n\n return [...values.slice(0, index), ...values.slice(index + 1)];\n}\n\n@Directive({\n selector: '[tngChips]',\n exportAs: 'tngChips',\n})\nexport class TngChips implements OnInit {\n private readonly internalValues = signal<readonly unknown[]>([]);\n\n public readonly values = input<readonly unknown[] | undefined>(undefined, {\n alias: 'tngChipsValues',\n });\n public readonly defaultValues = input<readonly unknown[]>([], {\n alias: 'tngChipsDefaultValues',\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n alias: 'tngChipsDisabled',\n transform: booleanAttribute,\n });\n public readonly ariaLabel = input<string | null>(null, {\n alias: 'tngChipsAriaLabel',\n });\n\n public readonly chipRemove = output<unknown>();\n public readonly valuesChange = output<readonly unknown[]>();\n\n public ngOnInit(): void {\n this.internalValues.set(normalizeValues(this.defaultValues()));\n }\n\n public isDisabled(): boolean {\n return this.disabled();\n }\n\n public removeValue(value: unknown): boolean {\n if (this.disabled()) {\n return false;\n }\n\n this.chipRemove.emit(value);\n\n const currentValues = this.resolveValues();\n const nextValues = removeFirstOccurrence(currentValues, value);\n const changed = nextValues !== currentValues;\n if (!changed) {\n return true;\n }\n\n if (!this.isControlled()) {\n this.internalValues.set(nextValues);\n }\n\n this.valuesChange.emit(nextValues);\n return true;\n }\n\n private isControlled(): boolean {\n return this.values() !== undefined;\n }\n\n private resolveValues(): readonly unknown[] {\n if (this.isControlled()) {\n return normalizeValues(this.values());\n }\n\n return this.internalValues();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string | null {\n return normalizeString(this.ariaLabel());\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chips' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'list' as const;\n}\n\n@Directive({\n selector: '[tngChip]',\n exportAs: 'tngChip',\n})\nexport class TngChip {\n private readonly chips = inject(TngChips, { optional: true });\n\n public readonly value = input<unknown>(null, { alias: 'tngChipValue' });\n public readonly label = input<string | null>(null, { alias: 'tngChipLabel' });\n public readonly disabled = input<boolean, boolean | string>(false, {\n alias: 'tngChipDisabled',\n transform: booleanAttribute,\n });\n public readonly removable = input<boolean, boolean | string>(true, {\n alias: 'tngChipRemovable',\n transform: booleanAttribute,\n });\n\n public readonly chipRemove = output<unknown>();\n\n public isDisabled(): boolean {\n return this.disabled() || this.chips?.isDisabled() === true;\n }\n\n public isRemovable(): boolean {\n return this.removable() && !this.isDisabled();\n }\n\n public resolvedLabel(): string {\n const fromInput = normalizeString(this.label());\n if (fromInput !== null) {\n return fromInput;\n }\n\n const fromValue = toDataValue(this.value());\n return normalizeString(fromValue) ?? 'item';\n }\n\n public requestRemove(): boolean {\n if (!this.isRemovable()) {\n return false;\n }\n\n const chipValue = this.value();\n this.chipRemove.emit(chipValue);\n this.chips?.removeValue(chipValue);\n return true;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Delete' && event.key !== 'Backspace') {\n return;\n }\n\n if (!this.isRemovable()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.requestRemove();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chip' as const;\n\n @HostBinding('attr.data-value')\n protected get dataValueAttr(): string | null {\n return toDataValue(this.value());\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'listitem' as const;\n}\n\n@Directive({\n selector: '[tngChipRemove]',\n exportAs: 'tngChipRemove',\n})\nexport class TngChipRemove {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly chip = inject(TngChip, { optional: true });\n private readonly chips = inject(TngChips, { optional: true });\n\n private focused = false;\n private suppressNextClick = false;\n\n public readonly ariaLabel = input<string | null>(null, {\n alias: 'tngChipRemoveAriaLabel',\n });\n\n private isDisabled(): boolean {\n return this.chip?.isDisabled() === true || this.chips?.isDisabled() === true;\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n if (this.suppressNextClick) {\n this.suppressNextClick = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.chip?.requestRemove();\n }\n\n @HostListener('focusin')\n protected onFocusIn(): void {\n this.focused = true;\n }\n\n @HostListener('focusout')\n protected onFocusOut(): void {\n this.focused = false;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.key !== ' ') {\n return;\n }\n\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.suppressNextClick = true;\n setTimeout(() => {\n this.suppressNextClick = false;\n });\n\n this.chip?.requestRemove();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string {\n const explicit = normalizeString(this.ariaLabel());\n if (explicit !== null) {\n return explicit;\n }\n\n const hostDefined = normalizeString(this.elementRef.nativeElement.getAttribute('aria-label'));\n if (hostDefined !== null) {\n return hostDefined;\n }\n\n const label = this.chip?.resolvedLabel() ?? 'item';\n return `Remove ${label}`;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chip-remove' as const;\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get typeAttr(): 'button' | null {\n return this.elementRef.nativeElement.tagName === 'BUTTON' ? 'button' : null;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tng-chips.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnInit,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nfunction normalizeString(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeValues(values: readonly unknown[] | null | undefined): readonly unknown[] {\n if (!Array.isArray(values) || values.length === 0) {\n return [];\n }\n\n return [...values];\n}\n\nfunction toDataValue(value: unknown): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n return String(value);\n}\n\nfunction removeFirstOccurrence(values: readonly unknown[], target: unknown): readonly unknown[] {\n const index = values.findIndex((item) => Object.is(item, target));\n if (index < 0) {\n return values;\n }\n\n return [...values.slice(0, index), ...values.slice(index + 1)];\n}\n\n@Directive({\n selector: '[tngChips]',\n exportAs: 'tngChips',\n standalone: true,\n})\nexport class TngChips implements OnInit {\n private readonly internalValues = signal<readonly unknown[]>([]);\n\n public readonly values = input<readonly unknown[] | undefined>(undefined, {\n alias: 'tngChipsValues',\n });\n public readonly defaultValues = input<readonly unknown[]>([], {\n alias: 'tngChipsDefaultValues',\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n alias: 'tngChipsDisabled',\n transform: booleanAttribute,\n });\n public readonly ariaLabel = input<string | null>(null, {\n alias: 'tngChipsAriaLabel',\n });\n\n public readonly chipRemove = output<unknown>();\n public readonly valuesChange = output<readonly unknown[]>();\n\n public ngOnInit(): void {\n this.internalValues.set(normalizeValues(this.defaultValues()));\n }\n\n public isDisabled(): boolean {\n return this.disabled();\n }\n\n public removeValue(value: unknown): boolean {\n if (this.disabled()) {\n return false;\n }\n\n this.chipRemove.emit(value);\n\n const currentValues = this.resolveValues();\n const nextValues = removeFirstOccurrence(currentValues, value);\n const changed = nextValues !== currentValues;\n if (!changed) {\n return true;\n }\n\n if (!this.isControlled()) {\n this.internalValues.set(nextValues);\n }\n\n this.valuesChange.emit(nextValues);\n return true;\n }\n\n private isControlled(): boolean {\n return this.values() !== undefined;\n }\n\n private resolveValues(): readonly unknown[] {\n if (this.isControlled()) {\n return normalizeValues(this.values());\n }\n\n return this.internalValues();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string | null {\n return normalizeString(this.ariaLabel());\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chips' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'list' as const;\n}\n\n@Directive({\n selector: '[tngChip]',\n exportAs: 'tngChip',\n standalone: true,\n})\nexport class TngChip {\n private readonly chips = inject(TngChips, { optional: true });\n\n public readonly value = input<unknown>(null, { alias: 'tngChipValue' });\n public readonly label = input<string | null>(null, { alias: 'tngChipLabel' });\n public readonly disabled = input<boolean, boolean | string>(false, {\n alias: 'tngChipDisabled',\n transform: booleanAttribute,\n });\n public readonly removable = input<boolean, boolean | string>(true, {\n alias: 'tngChipRemovable',\n transform: booleanAttribute,\n });\n\n public readonly chipRemove = output<unknown>();\n\n public isDisabled(): boolean {\n return this.disabled() || this.chips?.isDisabled() === true;\n }\n\n public isRemovable(): boolean {\n return this.removable() && !this.isDisabled();\n }\n\n public resolvedLabel(): string {\n const fromInput = normalizeString(this.label());\n if (fromInput !== null) {\n return fromInput;\n }\n\n const fromValue = toDataValue(this.value());\n return normalizeString(fromValue) ?? 'item';\n }\n\n public requestRemove(): boolean {\n if (!this.isRemovable()) {\n return false;\n }\n\n const chipValue = this.value();\n this.chipRemove.emit(chipValue);\n this.chips?.removeValue(chipValue);\n return true;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Delete' && event.key !== 'Backspace') {\n return;\n }\n\n if (!this.isRemovable()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.requestRemove();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chip' as const;\n\n @HostBinding('attr.data-value')\n protected get dataValueAttr(): string | null {\n return toDataValue(this.value());\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'listitem' as const;\n}\n\n@Directive({\n selector: '[tngChipRemove]',\n exportAs: 'tngChipRemove',\n standalone: true,\n})\nexport class TngChipRemove {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly chip = inject(TngChip, { optional: true });\n private readonly chips = inject(TngChips, { optional: true });\n\n private focused = false;\n private suppressNextClick = false;\n\n public readonly ariaLabel = input<string | null>(null, {\n alias: 'tngChipRemoveAriaLabel',\n });\n\n private isDisabled(): boolean {\n return this.chip?.isDisabled() === true || this.chips?.isDisabled() === true;\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n if (this.suppressNextClick) {\n this.suppressNextClick = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.chip?.requestRemove();\n }\n\n @HostListener('focusin')\n protected onFocusIn(): void {\n this.focused = true;\n }\n\n @HostListener('focusout')\n protected onFocusOut(): void {\n this.focused = false;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.key !== ' ') {\n return;\n }\n\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.suppressNextClick = true;\n setTimeout(() => {\n this.suppressNextClick = false;\n });\n\n this.chip?.requestRemove();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string {\n const explicit = normalizeString(this.ariaLabel());\n if (explicit !== null) {\n return explicit;\n }\n\n const hostDefined = normalizeString(this.elementRef.nativeElement.getAttribute('aria-label'));\n if (hostDefined !== null) {\n return hostDefined;\n }\n\n const label = this.chip?.resolvedLabel() ?? 'item';\n return `Remove ${label}`;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chip-remove' as const;\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get typeAttr(): 'button' | null {\n return this.elementRef.nativeElement.tagName === 'BUTTON' ? 'button' : null;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-combobox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/combobox/tng-combobox.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"tng-combobox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/combobox/tng-combobox.ts"],"names":[],"mappings":"AAEA,qBAKa,WAAW;IAEtB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;CACnD"}
|