@weeehaoooz/talos-ui 0.1.1 → 0.1.2
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 +2 -0
- package/fesm2022/{weeehaoooz-talos-ui-button-button-group.mjs → weeehaoooz-talos-ui-button.mjs} +91 -15
- package/fesm2022/weeehaoooz-talos-ui-button.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display.mjs +3110 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs +2414 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs +1039 -0
- package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback.mjs +2885 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form.mjs +10799 -0
- package/fesm2022/weeehaoooz-talos-ui-form.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs +1316 -7
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs +3 -3
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui.mjs +21592 -16293
- package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -1
- package/package.json +20 -139
- package/styles/_breadcrumb.scss +16 -0
- package/styles/_button-group.scss +2 -1
- package/styles/_buttons.scss +51 -0
- package/styles/_dropdown.scss +438 -0
- package/styles/_form-controls.scss +13 -0
- package/styles/_progress-bar.scss +43 -0
- package/styles/_skeleton.scss +176 -0
- package/styles/_spinner.scss +58 -0
- package/styles/_variables.scss +33 -0
- package/styles/index.scss +6 -1
- package/types/weeehaoooz-talos-ui-button.d.ts +92 -0
- package/types/weeehaoooz-talos-ui-button.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-display.d.ts +1018 -0
- package/types/weeehaoooz-talos-ui-data-display.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz.d.ts +839 -0
- package/types/weeehaoooz-talos-ui-data-viz.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-dropdown.d.ts +187 -0
- package/types/weeehaoooz-talos-ui-dropdown.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-feedback.d.ts +1495 -0
- package/types/weeehaoooz-talos-ui-feedback.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form.d.ts +2639 -0
- package/types/weeehaoooz-talos-ui-form.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-layout.d.ts +851 -3
- package/types/weeehaoooz-talos-ui-layout.d.ts.map +1 -1
- package/types/weeehaoooz-talos-ui-nav.d.ts +1 -1
- package/types/weeehaoooz-talos-ui.d.ts +7148 -4629
- package/types/weeehaoooz-talos-ui.d.ts.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +0 -94
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +0 -233
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs +0 -1627
- package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +0 -361
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +0 -312
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +0 -235
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +0 -462
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +0 -805
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +0 -267
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +0 -351
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +0 -566
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +0 -534
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +0 -446
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +0 -376
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +0 -147
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +0 -242
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +0 -514
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +0 -548
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +0 -692
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +0 -761
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +0 -896
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +0 -872
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +0 -119
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +0 -135
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +0 -666
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +0 -147
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +0 -33
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +0 -455
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +0 -379
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +0 -297
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +0 -661
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +0 -346
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +0 -896
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +0 -252
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +0 -916
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +0 -1
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts +0 -62
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-button-button.d.ts +0 -38
- package/types/weeehaoooz-talos-ui-button-button.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +0 -119
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts +0 -272
- package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +0 -135
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +0 -144
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +0 -83
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +0 -255
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +0 -204
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +0 -101
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +0 -138
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +0 -161
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +0 -212
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +0 -259
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +0 -147
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +0 -32
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-affix.d.ts +0 -88
- package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +0 -113
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +0 -165
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-chips.d.ts +0 -152
- package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +0 -144
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +0 -138
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +0 -148
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +0 -44
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +0 -48
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +0 -227
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts +0 -42
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-input.d.ts +0 -15
- package/types/weeehaoooz-talos-ui-form-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-otp.d.ts +0 -111
- package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts +0 -145
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-radio.d.ts +0 -84
- package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts +0 -181
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-rating.d.ts +0 -110
- package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts +0 -195
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +0 -79
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +0 -192
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@ A modern, high-performance, and accessible UI component library for Angular 20+.
|
|
|
4
4
|
|
|
5
5
|
Built natively with Angular signals, standalone components, native control flow, and WCAG AA accessibility standards.
|
|
6
6
|
|
|
7
|
+
**Documentation & Live Demo:** [https://talos.weeehaooz.dev](https://talos.weeehaooz.dev)
|
|
8
|
+
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
## Features
|
package/fesm2022/{weeehaoooz-talos-ui-button-button-group.mjs → weeehaoooz-talos-ui-button.mjs}
RENAMED
|
@@ -1,8 +1,91 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, input,
|
|
2
|
+
import { inject, ElementRef, input, Directive, signal, model, contentChildren, effect, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
class TalosButtonDirective {
|
|
6
|
+
elementRef = inject(ElementRef);
|
|
7
|
+
/** Button visual style variant */
|
|
8
|
+
variant = input('primary', /* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
10
|
+
/** Button size variant */
|
|
11
|
+
size = input('md', /* @ts-ignore */
|
|
12
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
13
|
+
/** Whether button has square aspect ratio for icon-only display */
|
|
14
|
+
iconOnly = input(false, /* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [{ debugName: "iconOnly" }] : /* istanbul ignore next */ []));
|
|
16
|
+
/** Expand button to fill 100% width of parent container */
|
|
17
|
+
fullWidth = input(false, /* @ts-ignore */
|
|
18
|
+
...(ngDevMode ? [{ debugName: "fullWidth" }] : /* istanbul ignore next */ []));
|
|
19
|
+
/** Apply fully rounded pill shape */
|
|
20
|
+
pill = input(false, /* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [{ debugName: "pill" }] : /* istanbul ignore next */ []));
|
|
22
|
+
/** Show loading spinner and disable interactive events */
|
|
23
|
+
loading = input(false, /* @ts-ignore */
|
|
24
|
+
...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
25
|
+
/** Disable button interaction */
|
|
26
|
+
disabled = input(false, /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
28
|
+
/** Micro-interaction animation preset to apply */
|
|
29
|
+
animation = input('none', /* @ts-ignore */
|
|
30
|
+
...(ngDevMode ? [{ debugName: "animation" }] : /* istanbul ignore next */ []));
|
|
31
|
+
/** Convenience boolean signal for spinning icon / continuous refresh state */
|
|
32
|
+
spinning = input(false, /* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [{ debugName: "spinning" }] : /* istanbul ignore next */ []));
|
|
34
|
+
/** Convenience boolean signal for pop / scale bounce feedback */
|
|
35
|
+
popping = input(false, /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "popping" }] : /* istanbul ignore next */ []));
|
|
37
|
+
/** Contextual temporary feedback state (e.g. green success pop or red error shake) */
|
|
38
|
+
feedback = input(null, /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "feedback" }] : /* istanbul ignore next */ []));
|
|
40
|
+
onPointerDown(event) {
|
|
41
|
+
if (this.disabled() || this.loading())
|
|
42
|
+
return;
|
|
43
|
+
const pe = event;
|
|
44
|
+
const el = this.elementRef.nativeElement;
|
|
45
|
+
const rect = el.getBoundingClientRect();
|
|
46
|
+
const x = pe.clientX - rect.left;
|
|
47
|
+
const y = pe.clientY - rect.top;
|
|
48
|
+
el.style.setProperty('--ripple-x', `${x}px`);
|
|
49
|
+
el.style.setProperty('--ripple-y', `${y}px`);
|
|
50
|
+
}
|
|
51
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
52
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.1", type: TalosButtonDirective, isStandalone: true, selector: "button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, spinning: { classPropertyName: "spinning", publicName: "spinning", isSignal: true, isRequired: false, transformFunction: null }, popping: { classPropertyName: "popping", publicName: "popping", isSignal: true, isRequired: false, transformFunction: null }, feedback: { classPropertyName: "feedback", publicName: "feedback", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "class.talos-btn-primary": "variant() === \"primary\"", "class.talos-btn-secondary": "variant() === \"secondary\"", "class.talos-btn-outline": "variant() === \"outline\"", "class.talos-btn-ghost": "variant() === \"ghost\" || variant() === \"subtle\"", "class.talos-btn-danger": "variant() === \"danger\"", "class.talos-btn-success": "variant() === \"success\"", "class.talos-btn-link": "variant() === \"link\"", "class.talos-btn-xs": "size() === \"xs\"", "class.talos-btn-sm": "size() === \"sm\"", "class.talos-btn-md": "size() === \"md\"", "class.talos-btn-lg": "size() === \"lg\"", "class.talos-btn-icon": "iconOnly()", "class.talos-btn-full": "fullWidth()", "class.talos-btn-pill": "pill()", "class.is-loading": "loading()", "class.talos-anim-spin": "animation() === \"spin\" || spinning()", "class.talos-anim-spin-once": "animation() === \"spin-once\"", "class.talos-anim-pop": "animation() === \"pop\" || popping()", "class.talos-anim-shake": "animation() === \"shake\"", "class.talos-anim-pulse": "animation() === \"pulse\"", "class.talos-anim-bounce": "animation() === \"bounce\"", "class.talos-feedback-success": "feedback() === \"success\"", "class.talos-feedback-error": "feedback() === \"error\"", "attr.disabled": "(disabled() || loading()) ? true : null", "attr.aria-disabled": "(disabled() || loading()) ? \"true\" : null" }, classAttribute: "talos-btn" }, ngImport: i0 });
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonDirective, decorators: [{
|
|
55
|
+
type: Directive,
|
|
56
|
+
args: [{
|
|
57
|
+
selector: 'button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]',
|
|
58
|
+
host: {
|
|
59
|
+
'class': 'talos-btn',
|
|
60
|
+
'[class.talos-btn-primary]': 'variant() === "primary"',
|
|
61
|
+
'[class.talos-btn-secondary]': 'variant() === "secondary"',
|
|
62
|
+
'[class.talos-btn-outline]': 'variant() === "outline"',
|
|
63
|
+
'[class.talos-btn-ghost]': 'variant() === "ghost" || variant() === "subtle"',
|
|
64
|
+
'[class.talos-btn-danger]': 'variant() === "danger"',
|
|
65
|
+
'[class.talos-btn-success]': 'variant() === "success"',
|
|
66
|
+
'[class.talos-btn-link]': 'variant() === "link"',
|
|
67
|
+
'[class.talos-btn-xs]': 'size() === "xs"',
|
|
68
|
+
'[class.talos-btn-sm]': 'size() === "sm"',
|
|
69
|
+
'[class.talos-btn-md]': 'size() === "md"',
|
|
70
|
+
'[class.talos-btn-lg]': 'size() === "lg"',
|
|
71
|
+
'[class.talos-btn-icon]': 'iconOnly()',
|
|
72
|
+
'[class.talos-btn-full]': 'fullWidth()',
|
|
73
|
+
'[class.talos-btn-pill]': 'pill()',
|
|
74
|
+
'[class.is-loading]': 'loading()',
|
|
75
|
+
'[class.talos-anim-spin]': 'animation() === "spin" || spinning()',
|
|
76
|
+
'[class.talos-anim-spin-once]': 'animation() === "spin-once"',
|
|
77
|
+
'[class.talos-anim-pop]': 'animation() === "pop" || popping()',
|
|
78
|
+
'[class.talos-anim-shake]': 'animation() === "shake"',
|
|
79
|
+
'[class.talos-anim-pulse]': 'animation() === "pulse"',
|
|
80
|
+
'[class.talos-anim-bounce]': 'animation() === "bounce"',
|
|
81
|
+
'[class.talos-feedback-success]': 'feedback() === "success"',
|
|
82
|
+
'[class.talos-feedback-error]': 'feedback() === "error"',
|
|
83
|
+
'[attr.disabled]': '(disabled() || loading()) ? true : null',
|
|
84
|
+
'[attr.aria-disabled]': '(disabled() || loading()) ? "true" : null',
|
|
85
|
+
'(pointerdown)': 'onPointerDown($event)'
|
|
86
|
+
}
|
|
87
|
+
}]
|
|
88
|
+
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], pill: [{ type: i0.Input, args: [{ isSignal: true, alias: "pill", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], spinning: [{ type: i0.Input, args: [{ isSignal: true, alias: "spinning", required: false }] }], popping: [{ type: i0.Input, args: [{ isSignal: true, alias: "popping", required: false }] }], feedback: [{ type: i0.Input, args: [{ isSignal: true, alias: "feedback", required: false }] }] } });
|
|
6
89
|
|
|
7
90
|
class TalosButtonGroupItemDirective {
|
|
8
91
|
elementRef = inject(ElementRef);
|
|
@@ -188,12 +271,13 @@ class TalosButtonGroupComponent {
|
|
|
188
271
|
}
|
|
189
272
|
}
|
|
190
273
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
191
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.1", type: TalosButtonGroupComponent, isStandalone: true, selector: "talos-button-group", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", isSignal: true, isRequired: false, transformFunction: null }, mouseWheelScroll: { classPropertyName: "mouseWheelScroll", publicName: "mouseWheelScroll", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "keydown": "onKeydown($event)", "click": "onClick($event)", "wheel": "onWheel($event)" }, properties: { "class.talos-button-group-horizontal": "orientation() === \"horizontal\"", "class.talos-button-group-vertical": "orientation() === \"vertical\"", "class.talos-button-group-attached": "variant() === \"attached\"", "class.talos-button-group-segmented": "variant() === \"segmented\" || variant() === \"pill\" || variant() === \"subtle\" || variant() === \"glow\"", "class.talos-button-group-outline": "variant() === \"outline\"", "class.talos-button-group-subtle": "variant() === \"subtle\"", "class.talos-button-group-glow": "variant() === \"glow\"", "class.talos-button-group-pill": "pill() || variant() === \"pill\"", "class.talos-button-group-sm": "size() === \"sm\"", "class.talos-button-group-md": "size() === \"md\"", "class.talos-button-group-lg": "size() === \"lg\"", "attr.role": "selectionMode() !== \"none\" ? \"radiogroup\" : \"group\"", "attr.aria-orientation": "orientation()" }, classAttribute: "talos-button-group" }, queries: [{ propertyName: "items", predicate: TalosButtonGroupItemDirective, descendants: true, isSignal: true }, { propertyName: "buttons", predicate: TalosButtonDirective, descendants: true, isSignal: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
274
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.1", type: TalosButtonGroupComponent, isStandalone: true, selector: "talos-button-group", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", isSignal: true, isRequired: false, transformFunction: null }, mouseWheelScroll: { classPropertyName: "mouseWheelScroll", publicName: "mouseWheelScroll", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "keydown": "onKeydown($event)", "click": "onClick($event)", "wheel": "onWheel($event)" }, properties: { "class.talos-button-group-horizontal": "orientation() === \"horizontal\"", "class.talos-button-group-vertical": "orientation() === \"vertical\"", "class.talos-button-group-attached": "variant() === \"attached\"", "class.talos-button-group-segmented": "variant() === \"segmented\" || variant() === \"pill\" || variant() === \"subtle\" || variant() === \"glow\"", "class.talos-button-group-outline": "variant() === \"outline\"", "class.talos-button-group-subtle": "variant() === \"subtle\"", "class.talos-button-group-glow": "variant() === \"glow\"", "class.talos-button-group-pill": "pill() || variant() === \"pill\"", "class.talos-button-group-sm": "size() === \"sm\"", "class.talos-button-group-md": "size() === \"md\"", "class.talos-button-group-lg": "size() === \"lg\"", "attr.role": "selectionMode() !== \"none\" ? \"radiogroup\" : \"group\"", "attr.aria-orientation": "orientation()" }, classAttribute: "talos-button-group" }, queries: [{ propertyName: "items", predicate: TalosButtonGroupItemDirective, descendants: true, isSignal: true }, { propertyName: "buttons", predicate: TalosButtonDirective, descendants: true, isSignal: true }], exportAs: ["talosButtonGroup"], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
192
275
|
}
|
|
193
276
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupComponent, decorators: [{
|
|
194
277
|
type: Component,
|
|
195
278
|
args: [{
|
|
196
279
|
selector: 'talos-button-group',
|
|
280
|
+
exportAs: 'talosButtonGroup',
|
|
197
281
|
template: `<ng-content></ng-content>`,
|
|
198
282
|
host: {
|
|
199
283
|
'class': 'talos-button-group',
|
|
@@ -221,14 +305,10 @@ class TalosButtonGroupModule {
|
|
|
221
305
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
222
306
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupModule, imports: [TalosButtonGroupComponent,
|
|
223
307
|
TalosButtonGroupItemDirective,
|
|
224
|
-
TalosTooltipDirective,
|
|
225
|
-
TalosTooltipComponent,
|
|
226
308
|
TalosButtonDirective], exports: [TalosButtonGroupComponent,
|
|
227
309
|
TalosButtonGroupItemDirective,
|
|
228
|
-
TalosTooltipDirective,
|
|
229
|
-
TalosTooltipComponent,
|
|
230
310
|
TalosButtonDirective] });
|
|
231
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupModule
|
|
311
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupModule });
|
|
232
312
|
}
|
|
233
313
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupModule, decorators: [{
|
|
234
314
|
type: NgModule,
|
|
@@ -236,15 +316,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
|
|
|
236
316
|
imports: [
|
|
237
317
|
TalosButtonGroupComponent,
|
|
238
318
|
TalosButtonGroupItemDirective,
|
|
239
|
-
TalosTooltipDirective,
|
|
240
|
-
TalosTooltipComponent,
|
|
241
319
|
TalosButtonDirective
|
|
242
320
|
],
|
|
243
321
|
exports: [
|
|
244
322
|
TalosButtonGroupComponent,
|
|
245
323
|
TalosButtonGroupItemDirective,
|
|
246
|
-
TalosTooltipDirective,
|
|
247
|
-
TalosTooltipComponent,
|
|
248
324
|
TalosButtonDirective
|
|
249
325
|
]
|
|
250
326
|
}]
|
|
@@ -254,5 +330,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
|
|
|
254
330
|
* Generated bundle index. Do not edit.
|
|
255
331
|
*/
|
|
256
332
|
|
|
257
|
-
export { TalosButtonGroupComponent, TalosButtonGroupItemDirective, TalosButtonGroupModule };
|
|
258
|
-
//# sourceMappingURL=weeehaoooz-talos-ui-button
|
|
333
|
+
export { TalosButtonDirective, TalosButtonGroupComponent, TalosButtonGroupItemDirective, TalosButtonGroupModule };
|
|
334
|
+
//# sourceMappingURL=weeehaoooz-talos-ui-button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weeehaoooz-talos-ui-button.mjs","sources":["../../../projects/talos-ui/button/button/button.directive.ts","../../../projects/talos-ui/button/button-group/button-group-item/button-group-item.directive.ts","../../../projects/talos-ui/button/button-group/button-group/button-group.component.ts","../../../projects/talos-ui/button/button-group/button-group.module.ts","../../../projects/talos-ui/button/weeehaoooz-talos-ui-button.ts"],"sourcesContent":["import { Directive, ElementRef, inject, input } from '@angular/core';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'subtle' | 'danger' | 'success' | 'link';\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ButtonAnimation = 'spin' | 'spin-once' | 'pop' | 'shake' | 'pulse' | 'bounce' | 'none';\nexport type ButtonFeedbackState = 'success' | 'error' | null;\n\n@Directive({\n selector: 'button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]',\n host: {\n 'class': 'talos-btn',\n '[class.talos-btn-primary]': 'variant() === \"primary\"',\n '[class.talos-btn-secondary]': 'variant() === \"secondary\"',\n '[class.talos-btn-outline]': 'variant() === \"outline\"',\n '[class.talos-btn-ghost]': 'variant() === \"ghost\" || variant() === \"subtle\"',\n '[class.talos-btn-danger]': 'variant() === \"danger\"',\n '[class.talos-btn-success]': 'variant() === \"success\"',\n '[class.talos-btn-link]': 'variant() === \"link\"',\n '[class.talos-btn-xs]': 'size() === \"xs\"',\n '[class.talos-btn-sm]': 'size() === \"sm\"',\n '[class.talos-btn-md]': 'size() === \"md\"',\n '[class.talos-btn-lg]': 'size() === \"lg\"',\n '[class.talos-btn-icon]': 'iconOnly()',\n '[class.talos-btn-full]': 'fullWidth()',\n '[class.talos-btn-pill]': 'pill()',\n '[class.is-loading]': 'loading()',\n '[class.talos-anim-spin]': 'animation() === \"spin\" || spinning()',\n '[class.talos-anim-spin-once]': 'animation() === \"spin-once\"',\n '[class.talos-anim-pop]': 'animation() === \"pop\" || popping()',\n '[class.talos-anim-shake]': 'animation() === \"shake\"',\n '[class.talos-anim-pulse]': 'animation() === \"pulse\"',\n '[class.talos-anim-bounce]': 'animation() === \"bounce\"',\n '[class.talos-feedback-success]': 'feedback() === \"success\"',\n '[class.talos-feedback-error]': 'feedback() === \"error\"',\n '[attr.disabled]': '(disabled() || loading()) ? true : null',\n '[attr.aria-disabled]': '(disabled() || loading()) ? \"true\" : null',\n '(pointerdown)': 'onPointerDown($event)'\n }\n})\nexport class TalosButtonDirective {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Button visual style variant */\n readonly variant = input<ButtonVariant>('primary');\n\n /** Button size variant */\n readonly size = input<ButtonSize>('md');\n\n /** Whether button has square aspect ratio for icon-only display */\n readonly iconOnly = input<boolean>(false);\n\n /** Expand button to fill 100% width of parent container */\n readonly fullWidth = input<boolean>(false);\n\n /** Apply fully rounded pill shape */\n readonly pill = input<boolean>(false);\n\n /** Show loading spinner and disable interactive events */\n readonly loading = input<boolean>(false);\n\n /** Disable button interaction */\n readonly disabled = input<boolean>(false);\n\n /** Micro-interaction animation preset to apply */\n readonly animation = input<ButtonAnimation>('none');\n\n /** Convenience boolean signal for spinning icon / continuous refresh state */\n readonly spinning = input<boolean>(false);\n\n /** Convenience boolean signal for pop / scale bounce feedback */\n readonly popping = input<boolean>(false);\n\n /** Contextual temporary feedback state (e.g. green success pop or red error shake) */\n readonly feedback = input<ButtonFeedbackState>(null);\n\n onPointerDown(event: Event): void {\n if (this.disabled() || this.loading()) return;\n const pe = event as PointerEvent;\n const el = this.elementRef.nativeElement;\n const rect = el.getBoundingClientRect();\n const x = pe.clientX - rect.left;\n const y = pe.clientY - rect.top;\n el.style.setProperty('--ripple-x', `${x}px`);\n el.style.setProperty('--ripple-y', `${y}px`);\n }\n}\n","import { Directive, ElementRef, inject, input, signal } from '@angular/core';\n\n@Directive({\n selector: 'button[talosButtonGroupItem], a[talosButtonGroupItem], [talos-button-group-item]',\n host: {\n 'class': 'talos-button-group-item',\n '[class.is-selected]': 'selected()',\n '[class.is-active]': 'selected()',\n '[attr.aria-pressed]': 'selected() ? \"true\" : \"false\"'\n }\n})\nexport class TalosButtonGroupItemDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Value associated with this button item in selection mode */\n readonly value = input<any>(undefined);\n\n /** Explicit selected / active state override */\n readonly selected = signal<boolean>(false);\n\n /** Focus target method */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n}\n","import {\n Component,\n ElementRef,\n inject,\n input,\n model,\n contentChildren,\n effect,\n HostListener\n} from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { TalosButtonDirective, ButtonSize } from '../../button/button.directive';\n\nimport { TalosButtonGroupItemDirective } from '../button-group-item/button-group-item.directive';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\nexport type ButtonGroupVariant = 'attached' | 'segmented' | 'outline' | 'subtle' | 'pill' | 'glow';\nexport type ButtonGroupSelectionMode = 'none' | 'single' | 'multiple';\n\n@Component({\n selector: 'talos-button-group',\n exportAs: 'talosButtonGroup',\n template: `<ng-content></ng-content>`,\n host: {\n 'class': 'talos-button-group',\n '[class.talos-button-group-horizontal]': 'orientation() === \"horizontal\"',\n '[class.talos-button-group-vertical]': 'orientation() === \"vertical\"',\n '[class.talos-button-group-attached]': 'variant() === \"attached\"',\n '[class.talos-button-group-segmented]': 'variant() === \"segmented\" || variant() === \"pill\" || variant() === \"subtle\" || variant() === \"glow\"',\n '[class.talos-button-group-outline]': 'variant() === \"outline\"',\n '[class.talos-button-group-subtle]': 'variant() === \"subtle\"',\n '[class.talos-button-group-glow]': 'variant() === \"glow\"',\n '[class.talos-button-group-pill]': 'pill() || variant() === \"pill\"',\n '[class.talos-button-group-sm]': 'size() === \"sm\"',\n '[class.talos-button-group-md]': 'size() === \"md\"',\n '[class.talos-button-group-lg]': 'size() === \"lg\"',\n '[attr.role]': 'selectionMode() !== \"none\" ? \"radiogroup\" : \"group\"',\n '[attr.aria-orientation]': 'orientation()',\n '(keydown)': 'onKeydown($event)',\n '(click)': 'onClick($event)',\n '(wheel)': 'onWheel($event)'\n }\n})\nexport class TalosButtonGroupComponent {\n public readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Layout orientation: horizontal or vertical */\n readonly orientation = input<ButtonGroupOrientation>('horizontal');\n\n /** Visual variant style */\n readonly variant = input<ButtonGroupVariant>('attached');\n\n /** Button size propagation */\n readonly size = input<ButtonSize>('md');\n\n /** Selection behavior: none, single (radio), or multiple (checkbox) */\n readonly selectionMode = input<ButtonGroupSelectionMode>('none');\n\n /** Model value for single or multiple selection */\n readonly value = model<any>(undefined);\n\n /** Apply fully rounded pill shape */\n readonly pill = input<boolean>(false);\n\n /** Allow mouse wheel vertical scrolling to translate to horizontal scrolling when overflowing on hover */\n readonly mouseWheelScroll = input<boolean>(true);\n\n /** Disable all buttons in group */\n readonly disabled = input<boolean>(false);\n\n /** Child items using TalosButtonGroupItemDirective */\n readonly items = contentChildren(TalosButtonGroupItemDirective, { descendants: true });\n\n /** Child directives using TalosButtonDirective */\n readonly buttons = contentChildren(TalosButtonDirective, { descendants: true });\n\n private selectionModel = new SelectionModel<any>(false, []);\n\n constructor() {\n // Sync SelectionModel mode when selectionMode changes\n effect(() => {\n const mode = this.selectionMode();\n const isMulti = mode === 'multiple';\n const currentVal = this.value();\n\n const initial = currentVal !== undefined\n ? (Array.isArray(currentVal) ? currentVal : [currentVal])\n : [];\n\n this.selectionModel = new SelectionModel<any>(isMulti, initial);\n this.syncChildSelectionStates();\n });\n\n // Sync external model value changes to internal selection model\n effect(() => {\n const val = this.value();\n if (val !== undefined && this.selectionMode() !== 'none') {\n const selectedValues = Array.isArray(val) ? val : [val];\n this.selectionModel.clear();\n selectedValues.forEach(v => this.selectionModel.select(v));\n this.syncChildSelectionStates();\n }\n });\n\n // Propagate item selected state changes\n effect(() => {\n const childItems = this.items();\n this.syncChildSelectionStates();\n });\n }\n\n private syncChildSelectionStates(): void {\n const childItems = this.items();\n if (!childItems || childItems.length === 0) return;\n\n childItems.forEach((item, index) => {\n const itemVal = item.value() !== undefined ? item.value() : index;\n const isSelected = this.selectionModel.isSelected(itemVal);\n item.selected.set(isSelected);\n });\n }\n\n onClick(event: MouseEvent): void {\n if (this.disabled()) return;\n const mode = this.selectionMode();\n if (mode === 'none') return;\n\n const target = event.target as HTMLElement;\n const buttonEl = target.closest('button, a') as HTMLElement;\n if (!buttonEl) return;\n\n const childItems = this.items();\n const childButtons = this.buttons();\n\n // Match clicked button to item directive or index\n let matchedValue: any = undefined;\n let matchedItem: TalosButtonGroupItemDirective | undefined = undefined;\n\n if (childItems && childItems.length > 0) {\n childItems.forEach((item, index) => {\n if (item.elementRef.nativeElement === buttonEl || item.elementRef.nativeElement.contains(buttonEl)) {\n matchedValue = item.value() !== undefined ? item.value() : index;\n matchedItem = item;\n }\n });\n }\n\n if (matchedValue === undefined && childButtons && childButtons.length > 0) {\n const allButtons = Array.from(this.elementRef.nativeElement.querySelectorAll('button, a'));\n const index = allButtons.indexOf(buttonEl);\n if (index !== -1) {\n matchedValue = index;\n }\n }\n\n if (matchedValue !== undefined) {\n if (mode === 'single') {\n this.selectionModel.clear();\n this.selectionModel.select(matchedValue);\n this.value.set(matchedValue);\n } else if (mode === 'multiple') {\n this.selectionModel.toggle(matchedValue);\n this.value.set(this.selectionModel.selected);\n }\n this.syncChildSelectionStates();\n }\n }\n\n onKeydown(event: KeyboardEvent): void {\n const isHoriz = this.orientation() === 'horizontal';\n const focusableButtons = Array.from(\n this.elementRef.nativeElement.querySelectorAll<HTMLButtonElement | HTMLAnchorElement>('button:not([disabled]), a:not([disabled])')\n );\n\n if (focusableButtons.length === 0) return;\n\n const activeEl = document.activeElement as HTMLElement;\n let currentIndex = focusableButtons.indexOf(activeEl as any);\n\n if (currentIndex === -1) return;\n\n let targetIndex = -1;\n\n if ((isHoriz && event.key === 'ArrowRight') || (!isHoriz && event.key === 'ArrowDown')) {\n targetIndex = (currentIndex + 1) % focusableButtons.length;\n } else if ((isHoriz && event.key === 'ArrowLeft') || (!isHoriz && event.key === 'ArrowUp')) {\n targetIndex = (currentIndex - 1 + focusableButtons.length) % focusableButtons.length;\n } else if (event.key === 'Home') {\n targetIndex = 0;\n } else if (event.key === 'End') {\n targetIndex = focusableButtons.length - 1;\n }\n\n if (targetIndex !== -1) {\n event.preventDefault();\n focusableButtons[targetIndex].focus();\n }\n }\n\n onWheel(event: WheelEvent): void {\n if (!this.mouseWheelScroll() || this.orientation() !== 'horizontal') return;\n const el = this.elementRef.nativeElement;\n\n if (el.scrollWidth > el.clientWidth) {\n if (Math.abs(event.deltaY) > Math.abs(event.deltaX)) {\n const maxScrollLeft = el.scrollWidth - el.clientWidth;\n const canScrollLeft = el.scrollLeft > 0 && event.deltaY < 0;\n const canScrollRight = el.scrollLeft < maxScrollLeft && event.deltaY > 0;\n\n if (canScrollLeft || canScrollRight) {\n event.preventDefault();\n el.scrollLeft += event.deltaY;\n }\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TalosButtonGroupComponent } from './button-group/button-group.component';\nimport { TalosButtonGroupItemDirective } from './button-group-item/button-group-item.directive';\nimport { TalosButtonDirective } from '../button/button.directive';\n\n@NgModule({\n imports: [\n TalosButtonGroupComponent,\n TalosButtonGroupItemDirective,\n TalosButtonDirective\n ],\n exports: [\n TalosButtonGroupComponent,\n TalosButtonGroupItemDirective,\n TalosButtonDirective\n ]\n})\nexport class TalosButtonGroupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|