@cute-widgets/base 20.0.5 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/fesm2022/cute-widgets-base-abstract.mjs +15 -15
- package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-alert.mjs +10 -10
- package/fesm2022/cute-widgets-base-alert.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-autocomplete.mjs +14 -14
- package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-badge.mjs +46 -14
- package/fesm2022/cute-widgets-base-badge.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-bottom-sheet.mjs +11 -11
- package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-button-toggle.mjs +29 -12
- package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-button.mjs +20 -20
- package/fesm2022/cute-widgets-base-button.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-card.mjs +40 -40
- package/fesm2022/cute-widgets-base-card.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-checkbox.mjs +28 -28
- package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-chips.mjs +49 -49
- package/fesm2022/cute-widgets-base-chips.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-collapse.mjs +14 -14
- package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-datetime.mjs +11 -11
- package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-directives.mjs +21 -21
- package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-error.mjs +6 -6
- package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-line.mjs +7 -7
- package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-nav.mjs +30 -28
- package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-observers.mjs +16 -16
- package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-option.mjs +10 -10
- package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-pipes.mjs +6 -6
- package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-ripple.mjs +3 -3
- package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-theming.mjs +6 -6
- package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-utils.mjs +3 -3
- package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core.mjs +36 -36
- package/fesm2022/cute-widgets-base-core.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-datepicker.mjs +100 -99
- package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-dialog.mjs +31 -31
- package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-divider.mjs +7 -7
- package/fesm2022/cute-widgets-base-divider.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-expansion.mjs +27 -27
- package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-form-field.mjs +28 -28
- package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-grid-list.mjs +22 -22
- package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-icon.mjs +10 -10
- package/fesm2022/cute-widgets-base-icon.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-input.mjs +7 -7
- package/fesm2022/cute-widgets-base-input.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-layout-container.mjs +10 -10
- package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-layout-stack.mjs +13 -13
- package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-layout.mjs +23 -23
- package/fesm2022/cute-widgets-base-layout.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-list.mjs +56 -56
- package/fesm2022/cute-widgets-base-list.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-menu.mjs +579 -364
- package/fesm2022/cute-widgets-base-menu.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-navbar.mjs +27 -27
- package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-paginator.mjs +11 -11
- package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-progress.mjs +10 -10
- package/fesm2022/cute-widgets-base-progress.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-radio.mjs +11 -11
- package/fesm2022/cute-widgets-base-radio.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-select.mjs +11 -11
- package/fesm2022/cute-widgets-base-select.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-sidenav.mjs +26 -26
- package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-slider.mjs +10 -10
- package/fesm2022/cute-widgets-base-slider.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-snack-bar.mjs +28 -28
- package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-sort.mjs +13 -13
- package/fesm2022/cute-widgets-base-sort.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-spinner.mjs +8 -8
- package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-stepper.mjs +40 -40
- package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-table.mjs +58 -66
- package/fesm2022/cute-widgets-base-table.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-tabs.mjs +16 -16
- package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-timepicker.mjs +34 -63
- package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-toolbar.mjs +13 -13
- package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-tooltip.mjs +10 -10
- package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-tree.mjs +25 -25
- package/fesm2022/cute-widgets-base-tree.mjs.map +1 -1
- package/fesm2022/cute-widgets-base.mjs +4 -4
- package/package.json +118 -118
- package/{abstract/index.d.ts → types/cute-widgets-base-abstract.d.ts} +1 -1
- package/{autocomplete/index.d.ts → types/cute-widgets-base-autocomplete.d.ts} +2 -2
- package/{badge/index.d.ts → types/cute-widgets-base-badge.d.ts} +6 -5
- package/{bottom-sheet/index.d.ts → types/cute-widgets-base-bottom-sheet.d.ts} +1 -1
- package/{button-toggle/index.d.ts → types/cute-widgets-base-button-toggle.d.ts} +7 -1
- package/{button/index.d.ts → types/cute-widgets-base-button.d.ts} +1 -1
- package/{checkbox/index.d.ts → types/cute-widgets-base-checkbox.d.ts} +1 -1
- package/{chips/index.d.ts → types/cute-widgets-base-chips.d.ts} +1 -1
- package/{core/nav/index.d.ts → types/cute-widgets-base-core-nav.d.ts} +2 -1
- package/{core/observers/index.d.ts → types/cute-widgets-base-core-observers.d.ts} +1 -1
- package/{core/option/index.d.ts → types/cute-widgets-base-core-option.d.ts} +1 -1
- package/{datepicker/index.d.ts → types/cute-widgets-base-datepicker.d.ts} +2 -2
- package/{expansion/index.d.ts → types/cute-widgets-base-expansion.d.ts} +4 -14
- package/{form-field/index.d.ts → types/cute-widgets-base-form-field.d.ts} +1 -1
- package/{icon/index.d.ts → types/cute-widgets-base-icon.d.ts} +1 -1
- package/{input/index.d.ts → types/cute-widgets-base-input.d.ts} +1 -1
- package/{menu/index.d.ts → types/cute-widgets-base-menu.d.ts} +202 -121
- package/{progress/index.d.ts → types/cute-widgets-base-progress.d.ts} +1 -1
- package/{radio/index.d.ts → types/cute-widgets-base-radio.d.ts} +2 -2
- package/{sidenav/index.d.ts → types/cute-widgets-base-sidenav.d.ts} +1 -1
- package/{snack-bar/index.d.ts → types/cute-widgets-base-snack-bar.d.ts} +1 -1
- package/{sort/index.d.ts → types/cute-widgets-base-sort.d.ts} +1 -1
- package/{table/index.d.ts → types/cute-widgets-base-table.d.ts} +1 -1
- package/{tree/index.d.ts → types/cute-widgets-base-tree.d.ts} +2 -2
- /package/{alert/index.d.ts → types/cute-widgets-base-alert.d.ts} +0 -0
- /package/{card/index.d.ts → types/cute-widgets-base-card.d.ts} +0 -0
- /package/{collapse/index.d.ts → types/cute-widgets-base-collapse.d.ts} +0 -0
- /package/{core/animation/index.d.ts → types/cute-widgets-base-core-animation.d.ts} +0 -0
- /package/{core/datetime/index.d.ts → types/cute-widgets-base-core-datetime.d.ts} +0 -0
- /package/{core/directives/index.d.ts → types/cute-widgets-base-core-directives.d.ts} +0 -0
- /package/{core/error/index.d.ts → types/cute-widgets-base-core-error.d.ts} +0 -0
- /package/{core/interfaces/index.d.ts → types/cute-widgets-base-core-interfaces.d.ts} +0 -0
- /package/{core/layout/index.d.ts → types/cute-widgets-base-core-layout.d.ts} +0 -0
- /package/{core/line/index.d.ts → types/cute-widgets-base-core-line.d.ts} +0 -0
- /package/{core/pipes/index.d.ts → types/cute-widgets-base-core-pipes.d.ts} +0 -0
- /package/{core/ripple/index.d.ts → types/cute-widgets-base-core-ripple.d.ts} +0 -0
- /package/{core/testing/index.d.ts → types/cute-widgets-base-core-testing.d.ts} +0 -0
- /package/{core/theming/index.d.ts → types/cute-widgets-base-core-theming.d.ts} +0 -0
- /package/{core/types/index.d.ts → types/cute-widgets-base-core-types.d.ts} +0 -0
- /package/{core/utils/index.d.ts → types/cute-widgets-base-core-utils.d.ts} +0 -0
- /package/{core/index.d.ts → types/cute-widgets-base-core.d.ts} +0 -0
- /package/{dialog/index.d.ts → types/cute-widgets-base-dialog.d.ts} +0 -0
- /package/{divider/index.d.ts → types/cute-widgets-base-divider.d.ts} +0 -0
- /package/{grid-list/index.d.ts → types/cute-widgets-base-grid-list.d.ts} +0 -0
- /package/{layout/container/index.d.ts → types/cute-widgets-base-layout-container.d.ts} +0 -0
- /package/{layout/stack/index.d.ts → types/cute-widgets-base-layout-stack.d.ts} +0 -0
- /package/{layout/index.d.ts → types/cute-widgets-base-layout.d.ts} +0 -0
- /package/{list/index.d.ts → types/cute-widgets-base-list.d.ts} +0 -0
- /package/{navbar/index.d.ts → types/cute-widgets-base-navbar.d.ts} +0 -0
- /package/{paginator/index.d.ts → types/cute-widgets-base-paginator.d.ts} +0 -0
- /package/{select/index.d.ts → types/cute-widgets-base-select.d.ts} +0 -0
- /package/{slider/index.d.ts → types/cute-widgets-base-slider.d.ts} +0 -0
- /package/{spinner/index.d.ts → types/cute-widgets-base-spinner.d.ts} +0 -0
- /package/{stepper/index.d.ts → types/cute-widgets-base-stepper.d.ts} +0 -0
- /package/{tabs/index.d.ts → types/cute-widgets-base-tabs.d.ts} +0 -0
- /package/{timepicker/index.d.ts → types/cute-widgets-base-timepicker.d.ts} +0 -0
- /package/{toolbar/index.d.ts → types/cute-widgets-base-toolbar.d.ts} +0 -0
- /package/{tooltip/index.d.ts → types/cute-widgets-base-tooltip.d.ts} +0 -0
- /package/{index.d.ts → types/cute-widgets-base.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## Changes in version 21.0.0 (2026-02-28)
|
|
2
|
+
|
|
3
|
+
### Improvements
|
|
4
|
+
* Upgraded to **Angular v21**.
|
|
5
|
+
* `CuteMenu` now works with native CSS animations.
|
|
6
|
+
* Add `position` input property to `CuteBadge` component.
|
|
7
|
+
|
|
1
8
|
## Changes in version 20.0.5 (2026-02-15)
|
|
2
9
|
|
|
3
10
|
### Fixes
|
|
@@ -266,10 +266,10 @@ class CuteBaseControl {
|
|
|
266
266
|
}
|
|
267
267
|
ngOnDestroy() {
|
|
268
268
|
}
|
|
269
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
270
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
|
269
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBaseControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
270
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteBaseControl, isStandalone: true, inputs: { id: "id", defaultColor: "defaultColor", color: "color", gradientFill: ["gradientFill", "gradientFill", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], ariaDescription: ["aria-description", "ariaDescription"], role: "role", tag: "tag" }, host: { properties: { "class.cute-thematic-widget": "color", "class.bg-gradient": "gradientFill" }, classAttribute: "cute-widget" }, providers: [{ provide: CUTE_WIDGET, useExisting: CuteBaseControl }], usesOnChanges: true, ngImport: i0 }); }
|
|
271
271
|
}
|
|
272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteBaseControl, decorators: [{
|
|
273
273
|
type: Directive,
|
|
274
274
|
args: [{
|
|
275
275
|
host: {
|
|
@@ -366,10 +366,10 @@ class CuteFocusableControl extends CuteBaseControl {
|
|
|
366
366
|
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
367
367
|
RippleManager.removeRipple(this._nativeElement);
|
|
368
368
|
}
|
|
369
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
370
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
|
369
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteFocusableControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
370
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteFocusableControl, isStandalone: true, inputs: { tabIndex: ["tabIndex", "tabIndex", transformTabIndex] }, outputs: { tabIndexChange: "tabIndexChange" }, usesInheritance: true, ngImport: i0 }); }
|
|
371
371
|
}
|
|
372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteFocusableControl, decorators: [{
|
|
373
373
|
type: Directive
|
|
374
374
|
}], ctorParameters: () => [], propDecorators: { tabIndex: [{
|
|
375
375
|
type: Input,
|
|
@@ -443,10 +443,10 @@ class CuteInputControl extends CuteFocusableControl {
|
|
|
443
443
|
super.ngOnDestroy();
|
|
444
444
|
this.stateChanges.complete();
|
|
445
445
|
}
|
|
446
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
447
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
|
446
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteInputControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
447
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteInputControl, isStandalone: true, inputs: { name: "name", required: ["required", "required", booleanAttribute] }, usesInheritance: true, ngImport: i0 }); }
|
|
448
448
|
}
|
|
449
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
449
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteInputControl, decorators: [{
|
|
450
450
|
type: Directive
|
|
451
451
|
}], ctorParameters: () => [], propDecorators: { name: [{
|
|
452
452
|
type: Input
|
|
@@ -468,10 +468,10 @@ class CuteInputDropdownControl extends CuteInputControl {
|
|
|
468
468
|
super();
|
|
469
469
|
this.withShadow = false;
|
|
470
470
|
}
|
|
471
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
472
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
471
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteInputDropdownControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
472
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteInputDropdownControl, isStandalone: true, inputs: { withShadow: "withShadow" }, usesInheritance: true, ngImport: i0 }); }
|
|
473
473
|
}
|
|
474
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteInputDropdownControl, decorators: [{
|
|
475
475
|
type: Directive
|
|
476
476
|
}], ctorParameters: () => [], propDecorators: { withShadow: [{
|
|
477
477
|
type: Input
|
|
@@ -516,10 +516,10 @@ class CuteLayoutControl extends CuteBaseControl {
|
|
|
516
516
|
super.ngOnDestroy();
|
|
517
517
|
this._bpSubscription?.unsubscribe();
|
|
518
518
|
}
|
|
519
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
520
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
|
519
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteLayoutControl, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
520
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteLayoutControl, isStandalone: true, inputs: { clearfix: ["clearfix", "clearfix", booleanAttribute], breakpoint: "breakpoint" }, outputs: { breakpointState: "breakpointState" }, host: { properties: { "class.clearfix": "clearfix", "attr.tabindex": "-1", "attr.aria-label": "ariaLabel || null", "attr.aria-labelledby": "ariaLabelledby || null", "attr.aria-describedby": "ariaDescribedby || null", "attr.role": "role || null", "attr.id": "id || null", "class": "this.classList" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
521
521
|
}
|
|
522
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteLayoutControl, decorators: [{
|
|
523
523
|
type: Directive,
|
|
524
524
|
args: [{
|
|
525
525
|
host: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cute-widgets-base-abstract.mjs","sources":["../../../../projects/cute-widgets/base/abstract/src/base-control.directive.ts","../../../../projects/cute-widgets/base/abstract/src/focusable-control.directive.ts","../../../../projects/cute-widgets/base/abstract/src/input-control.directive.ts","../../../../projects/cute-widgets/base/abstract/src/input-dropdown-control.directive.ts","../../../../projects/cute-widgets/base/abstract/src/layout-control.directive.ts","../../../../projects/cute-widgets/base/abstract/cute-widgets-base-abstract.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n Directive,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n Renderer2, AfterViewInit, OnInit, AfterContentInit, booleanAttribute, isDevMode, InjectionToken, DestroyRef,\r\n} from '@angular/core';\r\nimport {BooleanInput, coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {Observable, Subscriber} from \"rxjs\";\r\nimport {RichThemeColor} from \"@cute-widgets/base/core\";\r\n\r\nexport interface ThematicControl {\r\n /** Theme color palette for the component. */\r\n color: RichThemeColor | undefined;\r\n /** Adds a linear gradient as background image to the backgrounds. */\r\n gradientFill: boolean;\r\n /** Default color to fall back to if no value is set. */\r\n defaultColor: RichThemeColor | undefined;\r\n}\r\n\r\nexport interface CuteWidget extends ThematicControl {\r\n id: string | undefined;\r\n role: string | undefined;\r\n element: Readonly<ElementRef<HTMLElement>>;\r\n owner: CuteWidget | null;\r\n disabled: boolean;\r\n tag: any;\r\n enable(): void;\r\n disable(): void;\r\n toggleDisabled(): void;\r\n hasClass(name: string): boolean;\r\n toggleClass(name: string, force?: boolean): boolean;\r\n getAttribute(name: string): string | null;\r\n setAttribute(name: string, value: string, namespace?: string | null | undefined): void;\r\n hasAttributes(...attributes: string[]): boolean;\r\n markForCheck(): void;\r\n}\r\n\r\n/** Widget's injection token */\r\nexport const CUTE_WIDGET = new InjectionToken<CuteWidget>(\"CUTE-WIDGET\");\r\n\r\n/**\r\n * This widget base class and each of its descendant should be used as a parent for classes decorated with `@Component`.\r\n * Attribute directives should not extend this class and its descendants to avoid property value conflicts.\r\n */\r\n@Directive({\r\n host: {\r\n 'class': 'cute-widget',\r\n '[class.cute-thematic-widget]': 'color',\r\n '[class.bg-gradient]': 'gradientFill',\r\n },\r\n providers: [{provide: CUTE_WIDGET, useExisting: CuteBaseControl}]\r\n})\r\nexport abstract class CuteBaseControl\r\n implements CuteWidget, OnInit, AfterViewInit, AfterContentInit, OnChanges, OnDestroy\r\n{\r\n private readonly _uniqueId: string | undefined;\r\n\r\n protected readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n protected readonly _changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n protected readonly _renderer: Renderer2 = inject(Renderer2);\r\n protected readonly _destroyRef: DestroyRef = inject(DestroyRef);\r\n\r\n /** Owner widget */\r\n readonly owner = inject(CUTE_WIDGET, {skipSelf: true, optional: true})\r\n\r\n /**\r\n * A list of subscribers that subscribed before the directive was initialized.\r\n * Should be notified during markInitialized.\r\n * Set to null after pending subscribers are notified, and should\r\n * not expect to be populated after.\r\n */\r\n private _pendingSubscribers: Subscriber<void>[] | null = [];\r\n\r\n protected get _nativeElement(): HTMLElement {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n /**\r\n * Marks the state as initialized and notifies pending subscribers. Should be called at the end\r\n * of ngOnInit.\r\n */\r\n protected _markInitialized(): void {\r\n if (this.isInitialized && isDevMode()) {\r\n throw Error('CuteBaseControl error:/r/n'\r\n +'This directive has already been marked as initialized and '\r\n +'should not be called twice.',\r\n );\r\n }\r\n\r\n this._isInitialized = true;\r\n\r\n if (this._pendingSubscribers != null) {\r\n this._pendingSubscribers.forEach(this._notifySubscriber);\r\n this._pendingSubscribers = null;\r\n }\r\n }\r\n\r\n /** Emits and completes the subscriber stream (should only emit once). */\r\n private _notifySubscriber(subscriber: Subscriber<void>): void {\r\n subscriber.next();\r\n subscriber.complete();\r\n }\r\n\r\n /**\r\n * Observable stream that emits when the directive initializes. If already initialized, the\r\n * subscriber is stored to be notified once _markInitialized is called.\r\n */\r\n readonly initialized$:Observable<void> = new Observable<void>(subscriber => {\r\n // If initialized, immediately notify the subscriber. Otherwise, store the subscriber to notify\r\n // when _markInitialized is called.\r\n if (this.isInitialized) {\r\n this._notifySubscriber(subscriber);\r\n } else {\r\n this._pendingSubscribers!.push(subscriber);\r\n }\r\n });\r\n\r\n /** Whether this directive has been marked as initialized. */\r\n get isInitialized(): boolean {\r\n return this._isInitialized;\r\n }\r\n private _isInitialized: boolean = false;\r\n\r\n /** Gets a reference to the `ElementRef` object */\r\n get element(): Readonly<ElementRef<HTMLElement>> {\r\n return this._elementRef;\r\n }\r\n\r\n /** The element's identifier */\r\n @Input()\r\n get id(): string|undefined {return this._id};\r\n set id(value: string|undefined) {this._id = value;}\r\n private _id: string | undefined;\r\n\r\n /** Default color, which is set when no value is set to the `color` property */\r\n @Input() defaultColor: RichThemeColor | undefined;\r\n\r\n /** Theme color palette for the component. */\r\n @Input()\r\n get color(): RichThemeColor|undefined { return this._color ?? this.defaultColor ?? this.owner?.color; }\r\n set color(value: RichThemeColor|undefined) { this.setColor(value); }\r\n private _color: RichThemeColor | undefined;\r\n\r\n /** Adds a linear gradient as a background image to the backgrounds */\r\n @Input({transform: booleanAttribute})\r\n gradientFill: boolean = false;\r\n\r\n /**\r\n * Makes the host element not mutable, focusable, or even submitted with the form\r\n */\r\n @Input({transform: booleanAttribute})\r\n get disabled(): boolean { return this.getDisabledState(); }\r\n set disabled(value: BooleanInput) {\r\n if (coerceBooleanProperty(value) !== this._disabled) {\r\n this.setDisabledState(value);\r\n }\r\n }\r\n private _disabled: boolean = false;\r\n\r\n /**\r\n * Attached to the aria-label attribute of the host element.In most cases, aria-labelledby will\r\n * take precedence so this may be omitted.\r\n */\r\n @Input('aria-label')\r\n ariaLabel: string | null = null;\r\n /**\r\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\r\n */\r\n @Input('aria-labelledby')\r\n ariaLabelledby: string | null = null;\r\n /**\r\n * The 'aria-describedby' attribute is read after the element's label and field type.\r\n */\r\n @Input('aria-describedby')\r\n ariaDescribedby: string | null = null;\r\n /**\r\n * The 'aria-description' attribute for the content of the element.\r\n */\r\n @Input('aria-description')\r\n ariaDescription: string | null = null;\r\n /**\r\n * Provides semantic meaning to content, allowing screen readers and other tools to present and\r\n * support interaction with an object\r\n */\r\n @Input()\r\n get role(): string | undefined {return this._role;}\r\n set role(value: string|undefined) {\r\n this._role = (typeof value == \"string\" ? value.trim().toLowerCase() : \"\") || undefined;\r\n }\r\n private _role: string | undefined;\r\n\r\n /** Any arbitrary user data */\r\n @Input()\r\n tag: any;\r\n\r\n /** Returns the unique id for the visual hidden input control */\r\n protected get inputId(): string {\r\n return `${this.id || this._uniqueId}-input`;\r\n }\r\n\r\n protected constructor() {\r\n const generatedId = this.generateId().trim();\r\n if (generatedId.length > 0) {\r\n this._id = this._uniqueId = generatedId;\r\n }\r\n }\r\n\r\n /**\r\n * Sets the type of mouse cursor using a keyword, or load a specific icon to use.\r\n * @param cursor A mouse cursor keyword or icon\r\n * @returns The current mouse cursor\r\n */\r\n // async setCursor(cursor: MouseCursor|string): Promise<MouseCursor|string> {\r\n // const oldCursor = <MouseCursor> getComputedStyle(this._nativeElement).cursor;\r\n // this._nativeElement.style.cursor = cursor;\r\n // await yieldToMain();\r\n // return oldCursor;\r\n // }\r\n\r\n /**\r\n * Whether the option is disabled. Can be overridden in descendant classes\r\n * @returns Current disabled state\r\n */\r\n protected getDisabledState(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n /**\r\n * Changes the `disabled` status of the component. Can be overridden in descendant classes\r\n * @param newState New boolean for `disabled` state\r\n * @param emitEvent Emit state change event\r\n * @returns Change result\r\n */\r\n protected setDisabledState(newState: BooleanInput, emitEvent?: boolean): boolean {\r\n const coercedState = coerceBooleanProperty(newState);\r\n if (coercedState !== this.disabled) {\r\n this._disabled = coercedState;\r\n Promise.resolve().then(()=>this.markForCheck());\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Sets a new color value. Can be overridden in descendant classes.\r\n * @param value New `ThemeColor` value\r\n * @returns Old color value\r\n */\r\n protected setColor(value: RichThemeColor | undefined): RichThemeColor | undefined {\r\n const oldColor = this._color;\r\n if (oldColor !== value) {\r\n this._color = value;\r\n this.markForCheck();\r\n }\r\n return oldColor;\r\n }\r\n\r\n /**\r\n * Returns an element's unique identifier that, if not empty, is assigned to `id` property as a default value.\r\n * Must be overridden in the descendant classes.\r\n * @abstract\r\n */\r\n protected abstract generateId(): string;\r\n\r\n /** Returns the root owner widget if it exists */\r\n getRootOwner(): CuteWidget | null {\r\n let root = this.owner;\r\n while (root) {\r\n root = root.owner;\r\n }\r\n return root;\r\n }\r\n\r\n /** Sets a property on a target element using the current Renderer implementation. */\r\n setProperty(key: string, value: unknown): void {\r\n this._renderer.setProperty(this._nativeElement, key, value);\r\n }\r\n /** Returns the value of a specified attribute on the component's host element. */\r\n getAttribute(name: string): string | null {\r\n return this._nativeElement.getAttribute(name);\r\n }\r\n /** Sets the value of an attribute on the component's host element */\r\n setAttribute(name: string, value: string, namespace?: string | null | undefined): void {\r\n this._renderer.setAttribute(this._nativeElement, name, value, namespace);\r\n }\r\n /** Gets whether the component has one of the given attributes. */\r\n hasAttributes(...attributes: string[]): boolean {\r\n return attributes.some(attribute => this._nativeElement.hasAttribute(attribute));\r\n }\r\n /** Adds a class to an element in the DOM. */\r\n addClass(name: string): void {\r\n this._renderer.addClass(this._nativeElement, name);\r\n }\r\n /** Removes a class from an element in the DOM. */\r\n removeClass(name: string): void {\r\n this._renderer.removeClass(this._nativeElement, name);\r\n }\r\n /** Returns a boolean value — _true_ if the element's class list contains the given token, otherwise _false_. */\r\n hasClass(name: string): boolean {\r\n return this._nativeElement.classList.contains(name);\r\n }\r\n /**\r\n * Adds a CSS class if it is not in the element's class list, otherwise remove it\r\n * @param name CSS class name\r\n * @param force If included, turns the toggle into a one way-only operation. If set to _false_, then the class name will only be removed, but not added. If set to _true_, then the class name will only be added, but not removed.\r\n */\r\n toggleClass(name: string, force?: boolean): boolean {\r\n return this._nativeElement.classList.toggle(name, force);\r\n }\r\n /**\r\n * Returns a boolean value indicating whether a _node_ is a descendant of the current node\r\n * @param node HTML element reference to test\r\n * @returns A boolean value that is `true` if _node_ is contained in the current node, `false` if not.\r\n * If the _node_ parameter is `null`, contains() always returns `false`.\r\n */\r\n contains(node: HTMLElement): boolean {\r\n return this._nativeElement.contains(node);\r\n }\r\n\r\n /** Enables the user interaction */\r\n enable(): void {\r\n this.disabled = false;\r\n }\r\n\r\n /** Disables the user interaction */\r\n disable(): void {\r\n this.disabled = true;\r\n }\r\n\r\n /** Explicitly marks the view as changed so that it can be checked again. */\r\n markForCheck(): void {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n \r\n /** Checks this view and its children. */\r\n detectChanges(): void {\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n /** Toggles the `disabled` state of the component */\r\n toggleDisabled(): void {\r\n this.disabled = !this.disabled;\r\n }\r\n\r\n ngOnInit() {\r\n this._markInitialized();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n ngAfterContentInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive, EventEmitter, inject, Input, numberAttribute, Output} from '@angular/core';\r\nimport {FocusableOption, FocusMonitor, FocusOrigin, ListKeyManagerOption} from \"@angular/cdk/a11y\";\r\nimport {CuteBaseControl} from './base-control.directive';\r\nimport {RippleManager} from \"@cute-widgets/base/core/ripple\";\r\n\r\nfunction transformTabIndex(value: unknown): number | undefined {\r\n return value == null ? undefined : numberAttribute(value);\r\n}\r\n\r\n@Directive()\r\nexport abstract class CuteFocusableControl extends CuteBaseControl\r\n implements FocusableOption, ListKeyManagerOption\r\n{\r\n // If necessary, the `monitor` method should be called from descendant classes in one of the\r\n // directive/component's life circle methods\r\n protected readonly _focusMonitor: FocusMonitor = inject(FocusMonitor);\r\n\r\n /**\r\n * Allows making HTML elements un/focusable (usually with the Tab key, hence the name) and\r\n * determines their relative ordering for sequential focus navigation.\r\n */\r\n @Input({transform: transformTabIndex})\r\n get tabIndex(): number | undefined { return this._tabIndex; }\r\n set tabIndex(value: number | undefined) {\r\n if (value !== this._tabIndex) {\r\n this._tabIndex = value;\r\n if (this.isInitialized) {\r\n this.tabIndexChange.emit();\r\n }\r\n }\r\n }\r\n private _tabIndex: number | undefined;\r\n\r\n @Output() tabIndexChange = new EventEmitter<void>();\r\n\r\n protected constructor() {\r\n super();\r\n const tabInd = this.getAttribute(\"tabindex\");\r\n if (tabInd) {\r\n this.tabIndex = numberAttribute(tabInd, 0);\r\n }\r\n }\r\n\r\n /** Set focus on this component */\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._elementRef.nativeElement, origin, options);\r\n } else if (options && !Array.isArray(options)) {\r\n this._nativeElement.focus(options);\r\n } else {\r\n this._nativeElement.focus();\r\n }\r\n }\r\n\r\n /** Gets the current label of the component. Part of `ListKeyManagerOption` interface. */\r\n getLabel(): string {\r\n return (this._nativeElement.textContent||\"\").trim();\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n RippleManager.removeRipple(this._nativeElement);\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {booleanAttribute, Directive, Input} from '@angular/core';\r\nimport {ControlValueAccessor} from \"@angular/forms\";\r\nimport {BooleanInput, coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {Subject} from \"rxjs\";\r\nimport {CuteFocusableControl} from './focusable-control.directive';\r\n\r\n@Directive()\r\nexport abstract class CuteInputControl extends CuteFocusableControl implements ControlValueAccessor {\r\n\r\n private _isTouched: boolean = false;\r\n\r\n /**\r\n * Emits whenever the component state changes and should cause the parent\r\n * form-field to update. Implemented as part of `CuteFormFieldControl`.\r\n */\r\n readonly stateChanges = new Subject<void>();\r\n\r\n protected _onChange: (value: unknown) => void = () => {};\r\n protected _onTouched: Function = ()=>{};\r\n\r\n /** The value attribute of the native input element */\r\n abstract value: any;\r\n\r\n /** Name value will be applied to the input element if present */\r\n @Input()\r\n name: string | null = null;\r\n\r\n /** Whether the element's value input is required. */\r\n @Input({transform: booleanAttribute})\r\n get required(): boolean {return this._required ?? false;}\r\n set required(newValue: BooleanInput) {\r\n this._required = coerceBooleanProperty(newValue);\r\n this.stateChanges.next();\r\n }\r\n private _required: boolean | undefined;\r\n\r\n override get id(): string|undefined {return super.id;}\r\n override set id(value: string|undefined) {\r\n if (value !== super.id) {\r\n super.id = value;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n protected constructor() { super(); }\r\n\r\n /* ControlValueAccessor interface */\r\n //++\r\n registerOnChange(fn: (value: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n override setDisabledState(isDisabled: BooleanInput, emitEvent: boolean = true): boolean {\r\n const changed = super.setDisabledState(isDisabled, emitEvent);\r\n if (changed && emitEvent) {\r\n this.stateChanges.next();\r\n }\r\n return changed;\r\n }\r\n abstract writeValue(obj: any): void;\r\n //--\r\n\r\n /**\r\n * Mark widget gets a touched state\r\n * @protected\r\n */\r\n protected markAsTouched() {\r\n if (!this._isTouched) {\r\n this._onTouched();\r\n this._isTouched = true;\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n\r\n this.stateChanges.complete();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {CuteInputControl} from \"./input-control.directive\";\r\nimport {Expandable} from \"./expandable.interface\";\r\n\r\n@Directive()\r\nexport abstract class CuteInputDropdownControl extends CuteInputControl implements Expandable {\r\n\r\n @Input()\r\n withShadow: boolean = false;\r\n\r\n protected constructor() {\r\n super();\r\n }\r\n\r\n /** Expandable interface */\r\n abstract open(): void;\r\n abstract close(): void;\r\n abstract toggle(): void;\r\n\r\n abstract get expanded(): boolean;\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n booleanAttribute,\r\n Directive,\r\n EventEmitter,\r\n HostBinding,\r\n inject,\r\n Input,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport {CuteBaseControl} from \"./base-control.directive\";\r\nimport {bsBreakpoints, LayoutBreakpoint, toBgCssClass} from \"@cute-widgets/base/core\";\r\nimport {BreakpointObserver, BreakpointState} from '@angular/cdk/layout';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Directive({\r\n host: {\r\n '[class.clearfix]': 'clearfix',\r\n '[attr.tabindex]': '-1',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n '[attr.aria-labelledby]': 'ariaLabelledby || null',\r\n '[attr.aria-describedby]': 'ariaDescribedby || null',\r\n '[attr.role]': 'role || null',\r\n '[attr.id]': 'id || null',\r\n }\r\n})\r\nexport abstract class CuteLayoutControl extends CuteBaseControl {\r\n protected breakpointObserver = inject(BreakpointObserver);\r\n private _bpSubscription: Subscription | undefined;\r\n\r\n /** Returns CSS-class list */\r\n @HostBinding(\"class\")\r\n protected get classList(): string {\r\n // We interpret `color` value as a background color of the container\r\n return this.color ? toBgCssClass(this.color) : \"\";\r\n }\r\n\r\n /** Clears floated content within a container */\r\n @Input({transform: booleanAttribute}) clearfix: boolean = false;\r\n\r\n /** Symbolic name of the screen minimum width which determines how the responsive layout behaves across device or viewport sizes. */\r\n @Input() breakpoint: LayoutBreakpoint | LayoutBreakpoint[] | undefined;\r\n\r\n /** Event that is raised when the width of viewport is changed and crosses the size of `breakpoint`'s value. */\r\n @Output() breakpointState = new EventEmitter<BreakpointState>();\r\n\r\n override ngOnChanges(changes: SimpleChanges) {\r\n super.ngOnChanges(changes);\r\n\r\n const change = changes[\"breakpoint\"];\r\n if (change) {\r\n\r\n this._bpSubscription?.unsubscribe();\r\n\r\n if (change.currentValue) {\r\n const queries = bsBreakpoints.getMediaQueries(change.currentValue);\r\n\r\n this._bpSubscription = this.breakpointObserver\r\n .observe( queries )\r\n .subscribe(state => this.breakpointState.emit(state));\r\n }\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n\r\n this._bpSubscription?.unsubscribe();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cute-widgets-base-abstract.mjs","sources":["../../../../projects/cute-widgets/base/abstract/src/base-control.directive.ts","../../../../projects/cute-widgets/base/abstract/src/focusable-control.directive.ts","../../../../projects/cute-widgets/base/abstract/src/input-control.directive.ts","../../../../projects/cute-widgets/base/abstract/src/input-dropdown-control.directive.ts","../../../../projects/cute-widgets/base/abstract/src/layout-control.directive.ts","../../../../projects/cute-widgets/base/abstract/cute-widgets-base-abstract.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n Directive,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n Renderer2, AfterViewInit, OnInit, AfterContentInit, booleanAttribute, isDevMode, InjectionToken, DestroyRef,\r\n} from '@angular/core';\r\nimport {BooleanInput, coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {Observable, Subscriber} from \"rxjs\";\r\nimport {RichThemeColor} from \"@cute-widgets/base/core\";\r\n\r\nexport interface ThematicControl {\r\n /** Theme color palette for the component. */\r\n color: RichThemeColor | undefined;\r\n /** Adds a linear gradient as background image to the backgrounds. */\r\n gradientFill: boolean;\r\n /** Default color to fall back to if no value is set. */\r\n defaultColor: RichThemeColor | undefined;\r\n}\r\n\r\nexport interface CuteWidget extends ThematicControl {\r\n id: string | undefined;\r\n role: string | undefined;\r\n element: Readonly<ElementRef<HTMLElement>>;\r\n owner: CuteWidget | null;\r\n disabled: boolean;\r\n tag: any;\r\n enable(): void;\r\n disable(): void;\r\n toggleDisabled(): void;\r\n hasClass(name: string): boolean;\r\n toggleClass(name: string, force?: boolean): boolean;\r\n getAttribute(name: string): string | null;\r\n setAttribute(name: string, value: string, namespace?: string | null | undefined): void;\r\n hasAttributes(...attributes: string[]): boolean;\r\n markForCheck(): void;\r\n}\r\n\r\n/** Widget's injection token */\r\nexport const CUTE_WIDGET = new InjectionToken<CuteWidget>(\"CUTE-WIDGET\");\r\n\r\n/**\r\n * This widget base class and each of its descendant should be used as a parent for classes decorated with `@Component`.\r\n * Attribute directives should not extend this class and its descendants to avoid property value conflicts.\r\n */\r\n@Directive({\r\n host: {\r\n 'class': 'cute-widget',\r\n '[class.cute-thematic-widget]': 'color',\r\n '[class.bg-gradient]': 'gradientFill',\r\n },\r\n providers: [{provide: CUTE_WIDGET, useExisting: CuteBaseControl}]\r\n})\r\nexport abstract class CuteBaseControl\r\n implements CuteWidget, OnInit, AfterViewInit, AfterContentInit, OnChanges, OnDestroy\r\n{\r\n private readonly _uniqueId: string | undefined;\r\n\r\n protected readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n protected readonly _changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n protected readonly _renderer: Renderer2 = inject(Renderer2);\r\n protected readonly _destroyRef: DestroyRef = inject(DestroyRef);\r\n\r\n /** Owner widget */\r\n readonly owner = inject(CUTE_WIDGET, {skipSelf: true, optional: true})\r\n\r\n /**\r\n * A list of subscribers that subscribed before the directive was initialized.\r\n * Should be notified during markInitialized.\r\n * Set to null after pending subscribers are notified, and should\r\n * not expect to be populated after.\r\n */\r\n private _pendingSubscribers: Subscriber<void>[] | null = [];\r\n\r\n protected get _nativeElement(): HTMLElement {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n /**\r\n * Marks the state as initialized and notifies pending subscribers. Should be called at the end\r\n * of ngOnInit.\r\n */\r\n protected _markInitialized(): void {\r\n if (this.isInitialized && isDevMode()) {\r\n throw Error('CuteBaseControl error:/r/n'\r\n +'This directive has already been marked as initialized and '\r\n +'should not be called twice.',\r\n );\r\n }\r\n\r\n this._isInitialized = true;\r\n\r\n if (this._pendingSubscribers != null) {\r\n this._pendingSubscribers.forEach(this._notifySubscriber);\r\n this._pendingSubscribers = null;\r\n }\r\n }\r\n\r\n /** Emits and completes the subscriber stream (should only emit once). */\r\n private _notifySubscriber(subscriber: Subscriber<void>): void {\r\n subscriber.next();\r\n subscriber.complete();\r\n }\r\n\r\n /**\r\n * Observable stream that emits when the directive initializes. If already initialized, the\r\n * subscriber is stored to be notified once _markInitialized is called.\r\n */\r\n readonly initialized$:Observable<void> = new Observable<void>(subscriber => {\r\n // If initialized, immediately notify the subscriber. Otherwise, store the subscriber to notify\r\n // when _markInitialized is called.\r\n if (this.isInitialized) {\r\n this._notifySubscriber(subscriber);\r\n } else {\r\n this._pendingSubscribers!.push(subscriber);\r\n }\r\n });\r\n\r\n /** Whether this directive has been marked as initialized. */\r\n get isInitialized(): boolean {\r\n return this._isInitialized;\r\n }\r\n private _isInitialized: boolean = false;\r\n\r\n /** Gets a reference to the `ElementRef` object */\r\n get element(): Readonly<ElementRef<HTMLElement>> {\r\n return this._elementRef;\r\n }\r\n\r\n /** The element's identifier */\r\n @Input()\r\n get id(): string|undefined {return this._id};\r\n set id(value: string|undefined) {this._id = value;}\r\n private _id: string | undefined;\r\n\r\n /** Default color, which is set when no value is set to the `color` property */\r\n @Input() defaultColor: RichThemeColor | undefined;\r\n\r\n /** Theme color palette for the component. */\r\n @Input()\r\n get color(): RichThemeColor|undefined { return this._color ?? this.defaultColor ?? this.owner?.color; }\r\n set color(value: RichThemeColor|undefined) { this.setColor(value); }\r\n private _color: RichThemeColor | undefined;\r\n\r\n /** Adds a linear gradient as a background image to the backgrounds */\r\n @Input({transform: booleanAttribute})\r\n gradientFill: boolean = false;\r\n\r\n /**\r\n * Makes the host element not mutable, focusable, or even submitted with the form\r\n */\r\n @Input({transform: booleanAttribute})\r\n get disabled(): boolean { return this.getDisabledState(); }\r\n set disabled(value: BooleanInput) {\r\n if (coerceBooleanProperty(value) !== this._disabled) {\r\n this.setDisabledState(value);\r\n }\r\n }\r\n private _disabled: boolean = false;\r\n\r\n /**\r\n * Attached to the aria-label attribute of the host element.In most cases, aria-labelledby will\r\n * take precedence so this may be omitted.\r\n */\r\n @Input('aria-label')\r\n ariaLabel: string | null = null;\r\n /**\r\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\r\n */\r\n @Input('aria-labelledby')\r\n ariaLabelledby: string | null = null;\r\n /**\r\n * The 'aria-describedby' attribute is read after the element's label and field type.\r\n */\r\n @Input('aria-describedby')\r\n ariaDescribedby: string | null = null;\r\n /**\r\n * The 'aria-description' attribute for the content of the element.\r\n */\r\n @Input('aria-description')\r\n ariaDescription: string | null = null;\r\n /**\r\n * Provides semantic meaning to content, allowing screen readers and other tools to present and\r\n * support interaction with an object\r\n */\r\n @Input()\r\n get role(): string | undefined {return this._role;}\r\n set role(value: string|undefined) {\r\n this._role = (typeof value == \"string\" ? value.trim().toLowerCase() : \"\") || undefined;\r\n }\r\n private _role: string | undefined;\r\n\r\n /** Any arbitrary user data */\r\n @Input()\r\n tag: any;\r\n\r\n /** Returns the unique id for the visual hidden input control */\r\n protected get inputId(): string {\r\n return `${this.id || this._uniqueId}-input`;\r\n }\r\n\r\n protected constructor() {\r\n const generatedId = this.generateId().trim();\r\n if (generatedId.length > 0) {\r\n this._id = this._uniqueId = generatedId;\r\n }\r\n }\r\n\r\n /**\r\n * Sets the type of mouse cursor using a keyword, or load a specific icon to use.\r\n * @param cursor A mouse cursor keyword or icon\r\n * @returns The current mouse cursor\r\n */\r\n // async setCursor(cursor: MouseCursor|string): Promise<MouseCursor|string> {\r\n // const oldCursor = <MouseCursor> getComputedStyle(this._nativeElement).cursor;\r\n // this._nativeElement.style.cursor = cursor;\r\n // await yieldToMain();\r\n // return oldCursor;\r\n // }\r\n\r\n /**\r\n * Whether the option is disabled. Can be overridden in descendant classes\r\n * @returns Current disabled state\r\n */\r\n protected getDisabledState(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n /**\r\n * Changes the `disabled` status of the component. Can be overridden in descendant classes\r\n * @param newState New boolean for `disabled` state\r\n * @param emitEvent Emit state change event\r\n * @returns Change result\r\n */\r\n protected setDisabledState(newState: BooleanInput, emitEvent?: boolean): boolean {\r\n const coercedState = coerceBooleanProperty(newState);\r\n if (coercedState !== this.disabled) {\r\n this._disabled = coercedState;\r\n Promise.resolve().then(()=>this.markForCheck());\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Sets a new color value. Can be overridden in descendant classes.\r\n * @param value New `ThemeColor` value\r\n * @returns Old color value\r\n */\r\n protected setColor(value: RichThemeColor | undefined): RichThemeColor | undefined {\r\n const oldColor = this._color;\r\n if (oldColor !== value) {\r\n this._color = value;\r\n this.markForCheck();\r\n }\r\n return oldColor;\r\n }\r\n\r\n /**\r\n * Returns an element's unique identifier that, if not empty, is assigned to `id` property as a default value.\r\n * Must be overridden in the descendant classes.\r\n * @abstract\r\n */\r\n protected abstract generateId(): string;\r\n\r\n /** Returns the root owner widget if it exists */\r\n getRootOwner(): CuteWidget | null {\r\n let root = this.owner;\r\n while (root) {\r\n root = root.owner;\r\n }\r\n return root;\r\n }\r\n\r\n /** Sets a property on a target element using the current Renderer implementation. */\r\n setProperty(key: string, value: unknown): void {\r\n this._renderer.setProperty(this._nativeElement, key, value);\r\n }\r\n /** Returns the value of a specified attribute on the component's host element. */\r\n getAttribute(name: string): string | null {\r\n return this._nativeElement.getAttribute(name);\r\n }\r\n /** Sets the value of an attribute on the component's host element */\r\n setAttribute(name: string, value: string, namespace?: string | null | undefined): void {\r\n this._renderer.setAttribute(this._nativeElement, name, value, namespace);\r\n }\r\n /** Gets whether the component has one of the given attributes. */\r\n hasAttributes(...attributes: string[]): boolean {\r\n return attributes.some(attribute => this._nativeElement.hasAttribute(attribute));\r\n }\r\n /** Adds a class to an element in the DOM. */\r\n addClass(name: string): void {\r\n this._renderer.addClass(this._nativeElement, name);\r\n }\r\n /** Removes a class from an element in the DOM. */\r\n removeClass(name: string): void {\r\n this._renderer.removeClass(this._nativeElement, name);\r\n }\r\n /** Returns a boolean value — _true_ if the element's class list contains the given token, otherwise _false_. */\r\n hasClass(name: string): boolean {\r\n return this._nativeElement.classList.contains(name);\r\n }\r\n /**\r\n * Adds a CSS class if it is not in the element's class list, otherwise remove it\r\n * @param name CSS class name\r\n * @param force If included, turns the toggle into a one way-only operation. If set to _false_, then the class name will only be removed, but not added. If set to _true_, then the class name will only be added, but not removed.\r\n */\r\n toggleClass(name: string, force?: boolean): boolean {\r\n return this._nativeElement.classList.toggle(name, force);\r\n }\r\n /**\r\n * Returns a boolean value indicating whether a _node_ is a descendant of the current node\r\n * @param node HTML element reference to test\r\n * @returns A boolean value that is `true` if _node_ is contained in the current node, `false` if not.\r\n * If the _node_ parameter is `null`, contains() always returns `false`.\r\n */\r\n contains(node: HTMLElement): boolean {\r\n return this._nativeElement.contains(node);\r\n }\r\n\r\n /** Enables the user interaction */\r\n enable(): void {\r\n this.disabled = false;\r\n }\r\n\r\n /** Disables the user interaction */\r\n disable(): void {\r\n this.disabled = true;\r\n }\r\n\r\n /** Explicitly marks the view as changed so that it can be checked again. */\r\n markForCheck(): void {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n \r\n /** Checks this view and its children. */\r\n detectChanges(): void {\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n /** Toggles the `disabled` state of the component */\r\n toggleDisabled(): void {\r\n this.disabled = !this.disabled;\r\n }\r\n\r\n ngOnInit() {\r\n this._markInitialized();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n ngAfterContentInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive, EventEmitter, inject, Input, numberAttribute, Output} from '@angular/core';\r\nimport {FocusableOption, FocusMonitor, FocusOrigin, ListKeyManagerOption} from \"@angular/cdk/a11y\";\r\nimport {CuteBaseControl} from './base-control.directive';\r\nimport {RippleManager} from \"@cute-widgets/base/core/ripple\";\r\n\r\nfunction transformTabIndex(value: unknown): number | undefined {\r\n return value == null ? undefined : numberAttribute(value);\r\n}\r\n\r\n@Directive()\r\nexport abstract class CuteFocusableControl extends CuteBaseControl\r\n implements FocusableOption, ListKeyManagerOption\r\n{\r\n // If necessary, the `monitor` method should be called from descendant classes in one of the\r\n // directive/component's life circle methods\r\n protected readonly _focusMonitor: FocusMonitor = inject(FocusMonitor);\r\n\r\n /**\r\n * Allows making HTML elements un/focusable (usually with the Tab key, hence the name) and\r\n * determines their relative ordering for sequential focus navigation.\r\n */\r\n @Input({transform: transformTabIndex})\r\n get tabIndex(): number | undefined { return this._tabIndex; }\r\n set tabIndex(value: number | undefined) {\r\n if (value !== this._tabIndex) {\r\n this._tabIndex = value;\r\n if (this.isInitialized) {\r\n this.tabIndexChange.emit();\r\n }\r\n }\r\n }\r\n private _tabIndex: number | undefined;\r\n\r\n @Output() tabIndexChange = new EventEmitter<void>();\r\n\r\n protected constructor() {\r\n super();\r\n const tabInd = this.getAttribute(\"tabindex\");\r\n if (tabInd) {\r\n this.tabIndex = numberAttribute(tabInd, 0);\r\n }\r\n }\r\n\r\n /** Set focus on this component */\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._elementRef.nativeElement, origin, options);\r\n } else if (options && !Array.isArray(options)) {\r\n this._nativeElement.focus(options);\r\n } else {\r\n this._nativeElement.focus();\r\n }\r\n }\r\n\r\n /** Gets the current label of the component. Part of `ListKeyManagerOption` interface. */\r\n getLabel(): string {\r\n return (this._nativeElement.textContent||\"\").trim();\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n RippleManager.removeRipple(this._nativeElement);\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {booleanAttribute, Directive, Input} from '@angular/core';\r\nimport {ControlValueAccessor} from \"@angular/forms\";\r\nimport {BooleanInput, coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {Subject} from \"rxjs\";\r\nimport {CuteFocusableControl} from './focusable-control.directive';\r\n\r\n@Directive()\r\nexport abstract class CuteInputControl extends CuteFocusableControl implements ControlValueAccessor {\r\n\r\n private _isTouched: boolean = false;\r\n\r\n /**\r\n * Emits whenever the component state changes and should cause the parent\r\n * form-field to update. Implemented as part of `CuteFormFieldControl`.\r\n */\r\n readonly stateChanges = new Subject<void>();\r\n\r\n protected _onChange: (value: unknown) => void = () => {};\r\n protected _onTouched: Function = ()=>{};\r\n\r\n /** The value attribute of the native input element */\r\n abstract value: any;\r\n\r\n /** Name value will be applied to the input element if present */\r\n @Input()\r\n name: string | null = null;\r\n\r\n /** Whether the element's value input is required. */\r\n @Input({transform: booleanAttribute})\r\n get required(): boolean {return this._required ?? false;}\r\n set required(newValue: BooleanInput) {\r\n this._required = coerceBooleanProperty(newValue);\r\n this.stateChanges.next();\r\n }\r\n private _required: boolean | undefined;\r\n\r\n override get id(): string|undefined {return super.id;}\r\n override set id(value: string|undefined) {\r\n if (value !== super.id) {\r\n super.id = value;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n protected constructor() { super(); }\r\n\r\n /* ControlValueAccessor interface */\r\n //++\r\n registerOnChange(fn: (value: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n override setDisabledState(isDisabled: BooleanInput, emitEvent: boolean = true): boolean {\r\n const changed = super.setDisabledState(isDisabled, emitEvent);\r\n if (changed && emitEvent) {\r\n this.stateChanges.next();\r\n }\r\n return changed;\r\n }\r\n abstract writeValue(obj: any): void;\r\n //--\r\n\r\n /**\r\n * Mark widget gets a touched state\r\n * @protected\r\n */\r\n protected markAsTouched() {\r\n if (!this._isTouched) {\r\n this._onTouched();\r\n this._isTouched = true;\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n\r\n this.stateChanges.complete();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {CuteInputControl} from \"./input-control.directive\";\r\nimport {Expandable} from \"./expandable.interface\";\r\n\r\n@Directive()\r\nexport abstract class CuteInputDropdownControl extends CuteInputControl implements Expandable {\r\n\r\n @Input()\r\n withShadow: boolean = false;\r\n\r\n protected constructor() {\r\n super();\r\n }\r\n\r\n /** Expandable interface */\r\n abstract open(): void;\r\n abstract close(): void;\r\n abstract toggle(): void;\r\n\r\n abstract get expanded(): boolean;\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n booleanAttribute,\r\n Directive,\r\n EventEmitter,\r\n HostBinding,\r\n inject,\r\n Input,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport {CuteBaseControl} from \"./base-control.directive\";\r\nimport {bsBreakpoints, LayoutBreakpoint, toBgCssClass} from \"@cute-widgets/base/core\";\r\nimport {BreakpointObserver, BreakpointState} from '@angular/cdk/layout';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Directive({\r\n host: {\r\n '[class.clearfix]': 'clearfix',\r\n '[attr.tabindex]': '-1',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n '[attr.aria-labelledby]': 'ariaLabelledby || null',\r\n '[attr.aria-describedby]': 'ariaDescribedby || null',\r\n '[attr.role]': 'role || null',\r\n '[attr.id]': 'id || null',\r\n }\r\n})\r\nexport abstract class CuteLayoutControl extends CuteBaseControl {\r\n protected breakpointObserver = inject(BreakpointObserver);\r\n private _bpSubscription: Subscription | undefined;\r\n\r\n /** Returns CSS-class list */\r\n @HostBinding(\"class\")\r\n protected get classList(): string {\r\n // We interpret `color` value as a background color of the container\r\n return this.color ? toBgCssClass(this.color) : \"\";\r\n }\r\n\r\n /** Clears floated content within a container */\r\n @Input({transform: booleanAttribute}) clearfix: boolean = false;\r\n\r\n /** Symbolic name of the screen minimum width which determines how the responsive layout behaves across device or viewport sizes. */\r\n @Input() breakpoint: LayoutBreakpoint | LayoutBreakpoint[] | undefined;\r\n\r\n /** Event that is raised when the width of viewport is changed and crosses the size of `breakpoint`'s value. */\r\n @Output() breakpointState = new EventEmitter<BreakpointState>();\r\n\r\n override ngOnChanges(changes: SimpleChanges) {\r\n super.ngOnChanges(changes);\r\n\r\n const change = changes[\"breakpoint\"];\r\n if (change) {\r\n\r\n this._bpSubscription?.unsubscribe();\r\n\r\n if (change.currentValue) {\r\n const queries = bsBreakpoints.getMediaQueries(change.currentValue);\r\n\r\n this._bpSubscription = this.breakpointObserver\r\n .observe( queries )\r\n .subscribe(state => this.breakpointState.emit(state));\r\n }\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n\r\n this._bpSubscription?.unsubscribe();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -84,8 +84,8 @@ class CuteAlert extends CuteBaseControl {
|
|
|
84
84
|
this._dismissTimer = null;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CuteAlert, isStandalone: true, selector: "cute-alert", inputs: { dismissible: ["dismissible", "dismissible", booleanAttribute], duration: ["duration", "duration", numberAttribute] }, outputs: { dismissed: "dismissed" }, host: { attributes: { "role": "alert" }, properties: { "class.show": "!isDismissed", "class": "\"alert-\"+color", "class.alert-dismissible": "dismissible", "id": "id || null" }, classAttribute: "cute-alert alert fade" }, exportAs: ["cuteAlert"], usesInheritance: true, ngImport: i0, template: `
|
|
89
89
|
<div class="cute-alert-content">
|
|
90
90
|
<ng-content></ng-content>
|
|
91
91
|
@if (dismissible) {
|
|
@@ -99,7 +99,7 @@ class CuteAlert extends CuteBaseControl {
|
|
|
99
99
|
</div>
|
|
100
100
|
`, isInline: true, styles: [".cute-alert{display:block}\n"], dependencies: [{ kind: "component", type: CuteButton, selector: "button[cuteButton], button[cute-button], a[cuteButton], a[cute-button], ", exportAs: ["cuteButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAlert, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
104
|
args: [{ selector: 'cute-alert', template: `
|
|
105
105
|
<div class="cute-alert-content">
|
|
@@ -143,10 +143,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
143
143
|
* code licensed under MIT-style License (https://angular.dev/license).
|
|
144
144
|
*/
|
|
145
145
|
class CuteAlertHeading {
|
|
146
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
147
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAlertHeading, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
147
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteAlertHeading, isStandalone: true, selector: "[cuteAlertHeading]", host: { attributes: { "role": "heading" }, classAttribute: "alert-heading" }, exportAs: ["cuteAlertHeading"], ngImport: i0 }); }
|
|
148
148
|
}
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAlertHeading, decorators: [{
|
|
150
150
|
type: Directive,
|
|
151
151
|
args: [{
|
|
152
152
|
selector: '[cuteAlertHeading]',
|
|
@@ -175,13 +175,13 @@ const TYPES = [
|
|
|
175
175
|
CuteAlertHeading
|
|
176
176
|
];
|
|
177
177
|
class CuteAlertModule {
|
|
178
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
179
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
179
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteAlertModule, imports: [CommonModule, CuteAlert,
|
|
180
180
|
CuteAlertHeading], exports: [CuteAlert,
|
|
181
181
|
CuteAlertHeading] }); }
|
|
182
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
182
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAlertModule, imports: [CommonModule, CuteAlert] }); }
|
|
183
183
|
}
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAlertModule, decorators: [{
|
|
185
185
|
type: NgModule,
|
|
186
186
|
args: [{
|
|
187
187
|
imports: [CommonModule, ...TYPES],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cute-widgets-base-alert.mjs","sources":["../../../../projects/cute-widgets/base/alert/src/alert.component.ts","../../../../projects/cute-widgets/base/alert/src/alert-heading.directive.ts","../../../../projects/cute-widgets/base/alert/src/alert.module.ts","../../../../projects/cute-widgets/base/alert/cute-widgets-base-alert.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component, EventEmitter,\r\n Input,\r\n numberAttribute, Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CuteButton} from \"@cute-widgets/base/button\";\r\nimport {CuteBaseControl} from \"@cute-widgets/base/abstract\";\r\n\r\nlet uniqueId: number = 0;\r\n\r\n/** Alert dismiss origin. */\r\nexport type AlertDismissOrigin = \"program\"|\"user\"|\"timer\";\r\n\r\n/**\r\n * Provide contextual feedback messages for typical user actions with the handful of available and flexible\r\n * alert messages.\r\n */\r\n@Component({\r\n selector: 'cute-alert',\r\n template: `\r\n <div class=\"cute-alert-content\">\r\n <ng-content></ng-content>\r\n @if (dismissible) {\r\n <button cuteButton=\"close-button\"\r\n magnitude=\"small\"\r\n style=\"box-sizing: content-box\"\r\n [color]=\"color\"\r\n (click)=\"dismiss('user')\"\r\n ></button>\r\n }\r\n </div>\r\n `,\r\n styles: `\r\n .cute-alert {\r\n display: block;\r\n }\r\n `,\r\n exportAs: 'cuteAlert',\r\n host: {\r\n 'class': 'cute-alert alert fade',\r\n '[class.show]': '!isDismissed',\r\n '[class]': '\"alert-\"+color',\r\n '[class.alert-dismissible]': 'dismissible',\r\n '[id]': 'id || null',\r\n 'role': 'alert',\r\n },\r\n imports: [ CuteButton ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteAlert extends CuteBaseControl {\r\n\r\n private _dismissed: boolean = false;\r\n private _dismissTimer: number|null = null;\r\n\r\n /** Whether the alert can be dismissed interactively. */\r\n @Input({transform: booleanAttribute})\r\n dismissible: boolean = false;\r\n\r\n /** The time period in milliseconds after which the alert message is automatically dismissed. */\r\n @Input({transform: numberAttribute})\r\n get duration(): number {return this._duration;}\r\n set duration(ms: number) {\r\n if (ms >= 0) {\r\n this._duration = ms;\r\n }\r\n }\r\n private _duration: number = NaN;\r\n\r\n /** Whether the alert has been dismissed. */\r\n get isDismissed(): boolean { return this._dismissed; }\r\n\r\n /** Event emitted when the alert is dismissed. */\r\n @Output() dismissed = new EventEmitter<AlertDismissOrigin>();\r\n\r\n constructor() {\r\n super();\r\n this.color = \"primary\";\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-alert-${uniqueId++}`;\r\n }\r\n\r\n /** Show alert. */\r\n show(): void {\r\n if (this._dismissed) {\r\n this._dismissed = false;\r\n }\r\n }\r\n\r\n /** Dismiss the alert. */\r\n hide(): void {\r\n this.dismiss(\"program\");\r\n }\r\n\r\n /**\r\n * Hide the alert from screen.\r\n * @param origin - Dismiss origin.\r\n */\r\n protected dismiss(origin: AlertDismissOrigin = \"program\"):void {\r\n if (!this._dismissed) {\r\n this._dismissed = true;\r\n if (this._dismissTimer != null) {\r\n clearTimeout(this._dismissTimer);\r\n this._dismissTimer = null;\r\n }\r\n this.dismissed.emit(origin);\r\n }\r\n }\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n\r\n if (this._dismissTimer != null) {\r\n clearTimeout(this._dismissTimer);\r\n }\r\n if (!isNaN(this._duration)) {\r\n this._dismissTimer = setTimeout(() => this.dismiss(\"timer\"), this._duration);\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n\r\n if (this._dismissTimer != null) {\r\n clearTimeout(this._dismissTimer);\r\n this._dismissTimer = null;\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[cuteAlertHeading]',\r\n exportAs: 'cuteAlertHeading',\r\n host: {\r\n 'class': 'alert-heading',\r\n 'role': 'heading',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteAlertHeading { }\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteAlertHeading} from \"./alert-heading.directive\";\r\nimport {CuteAlert} from \"./alert.component\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteAlert,\r\n CuteAlertHeading\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteAlertModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cute-widgets-base-alert.mjs","sources":["../../../../projects/cute-widgets/base/alert/src/alert.component.ts","../../../../projects/cute-widgets/base/alert/src/alert-heading.directive.ts","../../../../projects/cute-widgets/base/alert/src/alert.module.ts","../../../../projects/cute-widgets/base/alert/cute-widgets-base-alert.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component, EventEmitter,\r\n Input,\r\n numberAttribute, Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CuteButton} from \"@cute-widgets/base/button\";\r\nimport {CuteBaseControl} from \"@cute-widgets/base/abstract\";\r\n\r\nlet uniqueId: number = 0;\r\n\r\n/** Alert dismiss origin. */\r\nexport type AlertDismissOrigin = \"program\"|\"user\"|\"timer\";\r\n\r\n/**\r\n * Provide contextual feedback messages for typical user actions with the handful of available and flexible\r\n * alert messages.\r\n */\r\n@Component({\r\n selector: 'cute-alert',\r\n template: `\r\n <div class=\"cute-alert-content\">\r\n <ng-content></ng-content>\r\n @if (dismissible) {\r\n <button cuteButton=\"close-button\"\r\n magnitude=\"small\"\r\n style=\"box-sizing: content-box\"\r\n [color]=\"color\"\r\n (click)=\"dismiss('user')\"\r\n ></button>\r\n }\r\n </div>\r\n `,\r\n styles: `\r\n .cute-alert {\r\n display: block;\r\n }\r\n `,\r\n exportAs: 'cuteAlert',\r\n host: {\r\n 'class': 'cute-alert alert fade',\r\n '[class.show]': '!isDismissed',\r\n '[class]': '\"alert-\"+color',\r\n '[class.alert-dismissible]': 'dismissible',\r\n '[id]': 'id || null',\r\n 'role': 'alert',\r\n },\r\n imports: [ CuteButton ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteAlert extends CuteBaseControl {\r\n\r\n private _dismissed: boolean = false;\r\n private _dismissTimer: number|null = null;\r\n\r\n /** Whether the alert can be dismissed interactively. */\r\n @Input({transform: booleanAttribute})\r\n dismissible: boolean = false;\r\n\r\n /** The time period in milliseconds after which the alert message is automatically dismissed. */\r\n @Input({transform: numberAttribute})\r\n get duration(): number {return this._duration;}\r\n set duration(ms: number) {\r\n if (ms >= 0) {\r\n this._duration = ms;\r\n }\r\n }\r\n private _duration: number = NaN;\r\n\r\n /** Whether the alert has been dismissed. */\r\n get isDismissed(): boolean { return this._dismissed; }\r\n\r\n /** Event emitted when the alert is dismissed. */\r\n @Output() dismissed = new EventEmitter<AlertDismissOrigin>();\r\n\r\n constructor() {\r\n super();\r\n this.color = \"primary\";\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-alert-${uniqueId++}`;\r\n }\r\n\r\n /** Show alert. */\r\n show(): void {\r\n if (this._dismissed) {\r\n this._dismissed = false;\r\n }\r\n }\r\n\r\n /** Dismiss the alert. */\r\n hide(): void {\r\n this.dismiss(\"program\");\r\n }\r\n\r\n /**\r\n * Hide the alert from screen.\r\n * @param origin - Dismiss origin.\r\n */\r\n protected dismiss(origin: AlertDismissOrigin = \"program\"):void {\r\n if (!this._dismissed) {\r\n this._dismissed = true;\r\n if (this._dismissTimer != null) {\r\n clearTimeout(this._dismissTimer);\r\n this._dismissTimer = null;\r\n }\r\n this.dismissed.emit(origin);\r\n }\r\n }\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n\r\n if (this._dismissTimer != null) {\r\n clearTimeout(this._dismissTimer);\r\n }\r\n if (!isNaN(this._duration)) {\r\n this._dismissTimer = setTimeout(() => this.dismiss(\"timer\"), this._duration);\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n\r\n if (this._dismissTimer != null) {\r\n clearTimeout(this._dismissTimer);\r\n this._dismissTimer = null;\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[cuteAlertHeading]',\r\n exportAs: 'cuteAlertHeading',\r\n host: {\r\n 'class': 'alert-heading',\r\n 'role': 'heading',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteAlertHeading { }\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteAlertHeading} from \"./alert-heading.directive\";\r\nimport {CuteAlert} from \"./alert.component\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteAlert,\r\n CuteAlertHeading\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteAlertModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -201,14 +201,14 @@ class CuteAutocomplete {
|
|
|
201
201
|
_skipPredicate() {
|
|
202
202
|
return false;
|
|
203
203
|
}
|
|
204
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
205
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "
|
|
204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocomplete, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
205
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.2.0", type: CuteAutocomplete, isStandalone: true, selector: "cute-autocomplete", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], displayWith: "displayWith", autoActiveFirstOption: ["autoActiveFirstOption", "autoActiveFirstOption", booleanAttribute], autoSelectActiveOption: ["autoSelectActiveOption", "autoSelectActiveOption", booleanAttribute], requireSelection: ["requireSelection", "requireSelection", booleanAttribute], panelWidth: "panelWidth", disableRipple: ["disableRipple", "disableRipple", booleanAttribute], classList: ["class", "classList"], hideSingleSelectionIndicator: ["hideSingleSelectionIndicator", "hideSingleSelectionIndicator", booleanAttribute] }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed", optionActivated: "optionActivated" }, host: { classAttribute: "cute-autocomplete" }, providers: [{ provide: CUTE_OPTION_PARENT_COMPONENT, useExisting: CuteAutocomplete }], queries: [{ propertyName: "options", predicate: CuteOption, descendants: true }, { propertyName: "optionGroups", predicate: CUTE_OPTGROUP, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], exportAs: ["cuteAutocomplete"], ngImport: i0, template: "<ng-template let-formFieldId=\"id\">\r\n <div\r\n class=\"cute-autocomplete-panel cute-menu-surface bg-body-tertiary shadow\"\r\n role=\"listbox\"\r\n [id]=\"id\"\r\n [class]=\"_classList\"\r\n [class.cute-autocomplete-visible]=\"showPanel\"\r\n [class.cute-autocomplete-hidden]=\"!showPanel\"\r\n [class.cute-autocomplete-panel-animations-enabled]=\"!_animationsDisabled\"\r\n [class.cute-primary]=\"_color === 'primary'\"\r\n [class.cute-danger]=\"_color === 'danger'\"\r\n [class.cute-warning]=\"_color === 'warning'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\r\n #panel>\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".cdk-overlay-pane .cute-autocomplete-panel{width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:.5rem 0;font-size:var(--bs-body-font-size);color:var(--bs-body-color);text-align:start;list-style:none;box-sizing:border-box;position:relative;border:var(--bs-border-width) solid var(--bs-border-color-translucent);border-radius:var(--bs-border-radius);background-color:var(--bs-body-bg)}@media(forced-colors:active){.cdk-overlay-pane .cute-autocomplete-panel{outline:solid 1px}}.cdk-overlay-pane .cute-autocomplete-panel.cute-autocomplete-visible{visibility:visible}.cdk-overlay-pane .cute-autocomplete-panel.cute-autocomplete-hidden{visibility:hidden}@keyframes _cute-autocomplete-enter{0%{opacity:0;transform:scaleY(.8)}to{opacity:1;transform:none}}.cute-autocomplete-panel-animations-enabled{animation:_cute-autocomplete-enter .12s cubic-bezier(0,0,.2,1)}cute-autocomplete{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
206
206
|
}
|
|
207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
207
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocomplete, decorators: [{
|
|
208
208
|
type: Component,
|
|
209
209
|
args: [{ selector: 'cute-autocomplete', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cuteAutocomplete', host: {
|
|
210
210
|
'class': 'cute-autocomplete',
|
|
211
|
-
}, providers: [{ provide: CUTE_OPTION_PARENT_COMPONENT, useExisting: CuteAutocomplete }], template: "<ng-template let-formFieldId=\"id\">\r\n <div\r\n class=\"cute-autocomplete-panel cute-menu-surface bg-body-tertiary shadow\"\r\n role=\"listbox\"\r\n [id]=\"id\"\r\n [class]=\"_classList\"\r\n [class.cute-autocomplete-visible]=\"showPanel\"\r\n [class.cute-autocomplete-hidden]=\"!showPanel\"\r\n [class.cute-autocomplete-panel-animations-enabled]=\"!_animationsDisabled\"\r\n [class.cute-primary]=\"_color === 'primary'\"\r\n [class.cute-danger]=\"_color === 'danger'\"\r\n [class.cute-warning]=\"_color === 'warning'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\r\n #panel>\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".cdk-overlay-pane .cute-autocomplete-panel{width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:.5rem 0;font-size:var(--bs-body-font-size);color:var(--bs-body-color);text-align:start;list-style:none;box-sizing:border-box;position:relative;border:var(--bs-border-width) solid var(--bs-border-color-translucent);border-radius:var(--bs-border-radius);background-color:var(--bs-body-bg)}@media
|
|
211
|
+
}, providers: [{ provide: CUTE_OPTION_PARENT_COMPONENT, useExisting: CuteAutocomplete }], template: "<ng-template let-formFieldId=\"id\">\r\n <div\r\n class=\"cute-autocomplete-panel cute-menu-surface bg-body-tertiary shadow\"\r\n role=\"listbox\"\r\n [id]=\"id\"\r\n [class]=\"_classList\"\r\n [class.cute-autocomplete-visible]=\"showPanel\"\r\n [class.cute-autocomplete-hidden]=\"!showPanel\"\r\n [class.cute-autocomplete-panel-animations-enabled]=\"!_animationsDisabled\"\r\n [class.cute-primary]=\"_color === 'primary'\"\r\n [class.cute-danger]=\"_color === 'danger'\"\r\n [class.cute-warning]=\"_color === 'warning'\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\r\n #panel>\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n", styles: [".cdk-overlay-pane .cute-autocomplete-panel{width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:.5rem 0;font-size:var(--bs-body-font-size);color:var(--bs-body-color);text-align:start;list-style:none;box-sizing:border-box;position:relative;border:var(--bs-border-width) solid var(--bs-border-color-translucent);border-radius:var(--bs-border-radius);background-color:var(--bs-body-bg)}@media(forced-colors:active){.cdk-overlay-pane .cute-autocomplete-panel{outline:solid 1px}}.cdk-overlay-pane .cute-autocomplete-panel.cute-autocomplete-visible{visibility:visible}.cdk-overlay-pane .cute-autocomplete-panel.cute-autocomplete-hidden{visibility:hidden}@keyframes _cute-autocomplete-enter{0%{opacity:0;transform:scaleY(.8)}to{opacity:1;transform:none}}.cute-autocomplete-panel-animations-enabled{animation:_cute-autocomplete-enter .12s cubic-bezier(0,0,.2,1)}cute-autocomplete{display:none}\n"] }]
|
|
212
212
|
}], ctorParameters: () => [], propDecorators: { template: [{
|
|
213
213
|
type: ViewChild,
|
|
214
214
|
args: [TemplateRef, { static: true }]
|
|
@@ -1099,10 +1099,10 @@ class CuteAutocompleteTrigger {
|
|
|
1099
1099
|
this._trackedModal = null;
|
|
1100
1100
|
}
|
|
1101
1101
|
}
|
|
1102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1103
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
|
1102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocompleteTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1103
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteAutocompleteTrigger, isStandalone: true, selector: "input[cuteAutocomplete], textarea[cuteAutocomplete]", inputs: { autocomplete: ["cuteAutocomplete", "autocomplete"], position: ["cuteAutocompletePosition", "position"], connectedTo: ["cuteAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["cuteAutocompleteDisabled", "autocompleteDisabled", booleanAttribute] }, host: { listeners: { "focusin": "_handleFocus()", "blur": "_onTouched()", "input": "_handleInput($event)", "keydown": "_handleKeydown($event)", "click": "_handleClick()" }, properties: { "attr.autocomplete": "autocompleteAttribute", "attr.role": "autocompleteDisabled ? null : \"combobox\"", "attr.aria-autocomplete": "autocompleteDisabled ? null : \"list\"", "attr.aria-activedescendant": "(panelOpen && activeOption) ? activeOption.id : null", "attr.aria-expanded": "autocompleteDisabled ? null : panelOpen", "attr.aria-controls": "(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id", "attr.aria-haspopup": "autocompleteDisabled ? null : \"listbox\"" }, classAttribute: "cute-autocomplete-trigger dropdown-toggle" }, providers: [CUTE_AUTOCOMPLETE_VALUE_ACCESSOR], exportAs: ["cuteAutocompleteTrigger"], usesOnChanges: true, ngImport: i0 }); }
|
|
1104
1104
|
}
|
|
1105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocompleteTrigger, decorators: [{
|
|
1106
1106
|
type: Directive,
|
|
1107
1107
|
args: [{
|
|
1108
1108
|
selector: `input[cuteAutocomplete], textarea[cuteAutocomplete]`,
|
|
@@ -1163,10 +1163,10 @@ class CuteAutocompleteOrigin {
|
|
|
1163
1163
|
constructor() {
|
|
1164
1164
|
this.elementRef = inject(ElementRef);
|
|
1165
1165
|
}
|
|
1166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1167
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocompleteOrigin, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1167
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteAutocompleteOrigin, isStandalone: true, selector: "[cuteAutocompleteOrigin]", exportAs: ["cuteAutocompleteOrigin"], ngImport: i0 }); }
|
|
1168
1168
|
}
|
|
1169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocompleteOrigin, decorators: [{
|
|
1170
1170
|
type: Directive,
|
|
1171
1171
|
args: [{
|
|
1172
1172
|
selector: '[cuteAutocompleteOrigin]',
|
|
@@ -1190,17 +1190,17 @@ const TYPES = [
|
|
|
1190
1190
|
CuteAutocompleteOrigin
|
|
1191
1191
|
];
|
|
1192
1192
|
class CuteAutocompleteModule {
|
|
1193
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1194
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1193
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1194
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocompleteModule, imports: [CommonModule, CuteOptionModule,
|
|
1195
1195
|
CuteAutocomplete,
|
|
1196
1196
|
CuteAutocompleteTrigger,
|
|
1197
1197
|
CuteAutocompleteOrigin], exports: [CuteOptionModule,
|
|
1198
1198
|
CuteAutocomplete,
|
|
1199
1199
|
CuteAutocompleteTrigger,
|
|
1200
1200
|
CuteAutocompleteOrigin] }); }
|
|
1201
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1201
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocompleteModule, imports: [CommonModule, CuteOptionModule, CuteOptionModule] }); }
|
|
1202
1202
|
}
|
|
1203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteAutocompleteModule, decorators: [{
|
|
1204
1204
|
type: NgModule,
|
|
1205
1205
|
args: [{
|
|
1206
1206
|
imports: [CommonModule, ...TYPES],
|