@cute-widgets/base 20.0.4 → 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.
Files changed (171) hide show
  1. package/CHANGELOG.md +18 -6
  2. package/fesm2022/cute-widgets-base-abstract.mjs +19 -29
  3. package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -1
  4. package/fesm2022/cute-widgets-base-alert.mjs +10 -10
  5. package/fesm2022/cute-widgets-base-alert.mjs.map +1 -1
  6. package/fesm2022/cute-widgets-base-autocomplete.mjs +14 -14
  7. package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -1
  8. package/fesm2022/cute-widgets-base-badge.mjs +46 -14
  9. package/fesm2022/cute-widgets-base-badge.mjs.map +1 -1
  10. package/fesm2022/cute-widgets-base-bottom-sheet.mjs +11 -11
  11. package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -1
  12. package/fesm2022/cute-widgets-base-button-toggle.mjs +61 -37
  13. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -1
  14. package/fesm2022/cute-widgets-base-button.mjs +176 -112
  15. package/fesm2022/cute-widgets-base-button.mjs.map +1 -1
  16. package/fesm2022/cute-widgets-base-card.mjs +40 -40
  17. package/fesm2022/cute-widgets-base-card.mjs.map +1 -1
  18. package/fesm2022/cute-widgets-base-checkbox.mjs +28 -28
  19. package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -1
  20. package/fesm2022/cute-widgets-base-chips.mjs +49 -61
  21. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -1
  22. package/fesm2022/cute-widgets-base-collapse.mjs +120 -132
  23. package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -1
  24. package/fesm2022/cute-widgets-base-core-datetime.mjs +11 -11
  25. package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -1
  26. package/fesm2022/cute-widgets-base-core-directives.mjs +21 -21
  27. package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -1
  28. package/fesm2022/cute-widgets-base-core-error.mjs +6 -6
  29. package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -1
  30. package/fesm2022/cute-widgets-base-core-layout.mjs +13 -1
  31. package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -1
  32. package/fesm2022/cute-widgets-base-core-line.mjs +7 -7
  33. package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -1
  34. package/fesm2022/cute-widgets-base-core-nav.mjs +30 -28
  35. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -1
  36. package/fesm2022/cute-widgets-base-core-observers.mjs +16 -16
  37. package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -1
  38. package/fesm2022/cute-widgets-base-core-option.mjs +10 -10
  39. package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -1
  40. package/fesm2022/cute-widgets-base-core-pipes.mjs +6 -6
  41. package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -1
  42. package/fesm2022/cute-widgets-base-core-ripple.mjs +3 -3
  43. package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -1
  44. package/fesm2022/cute-widgets-base-core-theming.mjs +7 -7
  45. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -1
  46. package/fesm2022/cute-widgets-base-core-utils.mjs +3 -3
  47. package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -1
  48. package/fesm2022/cute-widgets-base-core.mjs +50 -38
  49. package/fesm2022/cute-widgets-base-core.mjs.map +1 -1
  50. package/fesm2022/cute-widgets-base-datepicker.mjs +100 -99
  51. package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -1
  52. package/fesm2022/cute-widgets-base-dialog.mjs +170 -135
  53. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -1
  54. package/fesm2022/cute-widgets-base-divider.mjs +7 -7
  55. package/fesm2022/cute-widgets-base-divider.mjs.map +1 -1
  56. package/fesm2022/cute-widgets-base-expansion.mjs +27 -27
  57. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -1
  58. package/fesm2022/cute-widgets-base-form-field.mjs +28 -28
  59. package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -1
  60. package/fesm2022/cute-widgets-base-grid-list.mjs +22 -22
  61. package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -1
  62. package/fesm2022/cute-widgets-base-icon.mjs +10 -10
  63. package/fesm2022/cute-widgets-base-icon.mjs.map +1 -1
  64. package/fesm2022/cute-widgets-base-input.mjs +7 -7
  65. package/fesm2022/cute-widgets-base-input.mjs.map +1 -1
  66. package/fesm2022/cute-widgets-base-layout-container.mjs +10 -10
  67. package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -1
  68. package/fesm2022/cute-widgets-base-layout-stack.mjs +13 -13
  69. package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -1
  70. package/fesm2022/cute-widgets-base-layout.mjs +23 -23
  71. package/fesm2022/cute-widgets-base-layout.mjs.map +1 -1
  72. package/fesm2022/cute-widgets-base-list.mjs +56 -56
  73. package/fesm2022/cute-widgets-base-list.mjs.map +1 -1
  74. package/fesm2022/cute-widgets-base-menu.mjs +581 -388
  75. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -1
  76. package/fesm2022/cute-widgets-base-navbar.mjs +101 -61
  77. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -1
  78. package/fesm2022/cute-widgets-base-paginator.mjs +13 -13
  79. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -1
  80. package/fesm2022/cute-widgets-base-progress.mjs +10 -10
  81. package/fesm2022/cute-widgets-base-progress.mjs.map +1 -1
  82. package/fesm2022/cute-widgets-base-radio.mjs +11 -11
  83. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -1
  84. package/fesm2022/cute-widgets-base-select.mjs +11 -11
  85. package/fesm2022/cute-widgets-base-select.mjs.map +1 -1
  86. package/fesm2022/cute-widgets-base-sidenav.mjs +26 -26
  87. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -1
  88. package/fesm2022/cute-widgets-base-slider.mjs +10 -10
  89. package/fesm2022/cute-widgets-base-slider.mjs.map +1 -1
  90. package/fesm2022/cute-widgets-base-snack-bar.mjs +28 -28
  91. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -1
  92. package/fesm2022/cute-widgets-base-sort.mjs +13 -13
  93. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -1
  94. package/fesm2022/cute-widgets-base-spinner.mjs +8 -8
  95. package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -1
  96. package/fesm2022/cute-widgets-base-stepper.mjs +40 -40
  97. package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -1
  98. package/fesm2022/cute-widgets-base-table.mjs +58 -66
  99. package/fesm2022/cute-widgets-base-table.mjs.map +1 -1
  100. package/fesm2022/cute-widgets-base-tabs.mjs +100 -75
  101. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -1
  102. package/fesm2022/cute-widgets-base-timepicker.mjs +34 -63
  103. package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -1
  104. package/fesm2022/cute-widgets-base-toolbar.mjs +13 -13
  105. package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -1
  106. package/fesm2022/cute-widgets-base-tooltip.mjs +10 -10
  107. package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -1
  108. package/fesm2022/cute-widgets-base-tree.mjs +25 -25
  109. package/fesm2022/cute-widgets-base-tree.mjs.map +1 -1
  110. package/fesm2022/cute-widgets-base.mjs +4 -4
  111. package/package.json +121 -121
  112. package/{abstract/index.d.ts → types/cute-widgets-base-abstract.d.ts} +9 -3
  113. package/{autocomplete/index.d.ts → types/cute-widgets-base-autocomplete.d.ts} +2 -2
  114. package/{badge/index.d.ts → types/cute-widgets-base-badge.d.ts} +6 -5
  115. package/{bottom-sheet/index.d.ts → types/cute-widgets-base-bottom-sheet.d.ts} +1 -1
  116. package/{button-toggle/index.d.ts → types/cute-widgets-base-button-toggle.d.ts} +15 -5
  117. package/{button/index.d.ts → types/cute-widgets-base-button.d.ts} +44 -22
  118. package/{checkbox/index.d.ts → types/cute-widgets-base-checkbox.d.ts} +1 -1
  119. package/{chips/index.d.ts → types/cute-widgets-base-chips.d.ts} +1 -1
  120. package/types/cute-widgets-base-collapse.d.ts +98 -0
  121. package/{core/layout/index.d.ts → types/cute-widgets-base-core-layout.d.ts} +7 -1
  122. package/{core/nav/index.d.ts → types/cute-widgets-base-core-nav.d.ts} +2 -1
  123. package/{core/observers/index.d.ts → types/cute-widgets-base-core-observers.d.ts} +1 -1
  124. package/{core/option/index.d.ts → types/cute-widgets-base-core-option.d.ts} +1 -1
  125. package/{core/index.d.ts → types/cute-widgets-base-core.d.ts} +7 -1
  126. package/{datepicker/index.d.ts → types/cute-widgets-base-datepicker.d.ts} +2 -2
  127. package/{dialog/index.d.ts → types/cute-widgets-base-dialog.d.ts} +81 -57
  128. package/{expansion/index.d.ts → types/cute-widgets-base-expansion.d.ts} +4 -14
  129. package/{form-field/index.d.ts → types/cute-widgets-base-form-field.d.ts} +1 -1
  130. package/{icon/index.d.ts → types/cute-widgets-base-icon.d.ts} +1 -1
  131. package/{input/index.d.ts → types/cute-widgets-base-input.d.ts} +1 -1
  132. package/{menu/index.d.ts → types/cute-widgets-base-menu.d.ts} +202 -121
  133. package/{navbar/index.d.ts → types/cute-widgets-base-navbar.d.ts} +24 -9
  134. package/{paginator/index.d.ts → types/cute-widgets-base-paginator.d.ts} +2 -2
  135. package/{progress/index.d.ts → types/cute-widgets-base-progress.d.ts} +1 -1
  136. package/{radio/index.d.ts → types/cute-widgets-base-radio.d.ts} +2 -2
  137. package/{sidenav/index.d.ts → types/cute-widgets-base-sidenav.d.ts} +1 -1
  138. package/{snack-bar/index.d.ts → types/cute-widgets-base-snack-bar.d.ts} +1 -1
  139. package/{sort/index.d.ts → types/cute-widgets-base-sort.d.ts} +1 -1
  140. package/{table/index.d.ts → types/cute-widgets-base-table.d.ts} +1 -1
  141. package/{tabs/index.d.ts → types/cute-widgets-base-tabs.d.ts} +35 -14
  142. package/{tree/index.d.ts → types/cute-widgets-base-tree.d.ts} +2 -2
  143. package/collapse/index.d.ts +0 -97
  144. /package/{alert/index.d.ts → types/cute-widgets-base-alert.d.ts} +0 -0
  145. /package/{card/index.d.ts → types/cute-widgets-base-card.d.ts} +0 -0
  146. /package/{core/animation/index.d.ts → types/cute-widgets-base-core-animation.d.ts} +0 -0
  147. /package/{core/datetime/index.d.ts → types/cute-widgets-base-core-datetime.d.ts} +0 -0
  148. /package/{core/directives/index.d.ts → types/cute-widgets-base-core-directives.d.ts} +0 -0
  149. /package/{core/error/index.d.ts → types/cute-widgets-base-core-error.d.ts} +0 -0
  150. /package/{core/interfaces/index.d.ts → types/cute-widgets-base-core-interfaces.d.ts} +0 -0
  151. /package/{core/line/index.d.ts → types/cute-widgets-base-core-line.d.ts} +0 -0
  152. /package/{core/pipes/index.d.ts → types/cute-widgets-base-core-pipes.d.ts} +0 -0
  153. /package/{core/ripple/index.d.ts → types/cute-widgets-base-core-ripple.d.ts} +0 -0
  154. /package/{core/testing/index.d.ts → types/cute-widgets-base-core-testing.d.ts} +0 -0
  155. /package/{core/theming/index.d.ts → types/cute-widgets-base-core-theming.d.ts} +0 -0
  156. /package/{core/types/index.d.ts → types/cute-widgets-base-core-types.d.ts} +0 -0
  157. /package/{core/utils/index.d.ts → types/cute-widgets-base-core-utils.d.ts} +0 -0
  158. /package/{divider/index.d.ts → types/cute-widgets-base-divider.d.ts} +0 -0
  159. /package/{grid-list/index.d.ts → types/cute-widgets-base-grid-list.d.ts} +0 -0
  160. /package/{layout/container/index.d.ts → types/cute-widgets-base-layout-container.d.ts} +0 -0
  161. /package/{layout/stack/index.d.ts → types/cute-widgets-base-layout-stack.d.ts} +0 -0
  162. /package/{layout/index.d.ts → types/cute-widgets-base-layout.d.ts} +0 -0
  163. /package/{list/index.d.ts → types/cute-widgets-base-list.d.ts} +0 -0
  164. /package/{select/index.d.ts → types/cute-widgets-base-select.d.ts} +0 -0
  165. /package/{slider/index.d.ts → types/cute-widgets-base-slider.d.ts} +0 -0
  166. /package/{spinner/index.d.ts → types/cute-widgets-base-spinner.d.ts} +0 -0
  167. /package/{stepper/index.d.ts → types/cute-widgets-base-stepper.d.ts} +0 -0
  168. /package/{timepicker/index.d.ts → types/cute-widgets-base-timepicker.d.ts} +0 -0
  169. /package/{toolbar/index.d.ts → types/cute-widgets-base-toolbar.d.ts} +0 -0
  170. /package/{tooltip/index.d.ts → types/cute-widgets-base-tooltip.d.ts} +0 -0
  171. /package/{index.d.ts → types/cute-widgets-base.d.ts} +0 -0
@@ -1,51 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, EventEmitter, booleanAttribute, Output, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, NgModule } from '@angular/core';
3
- import { CuteBaseControl } from '@cute-widgets/base/abstract';
4
- import { trigger, state, transition, style, animate } from '@angular/animations';
5
- import { Subject } from 'rxjs';
6
- import { distinctUntilChanged } from 'rxjs/operators';
2
+ import { inject, NgZone, EventEmitter, booleanAttribute, Output, Input, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/cdk/accordion';
4
+ import { CdkAccordionItem } from '@angular/cdk/accordion';
5
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
6
+ import { CuteLayoutControl } from '@cute-widgets/base/abstract';
7
+ import { _animationsDisabled } from '@cute-widgets/base/core';
7
8
  import { CommonModule } from '@angular/common';
8
9
 
9
- /**
10
- * @license Apache-2.0
11
- *
12
- * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.
13
- *
14
- * You may not use this file except in compliance with the License
15
- * that can be found at http://www.apache.org/licenses/LICENSE-2.0
16
- */
17
- /** Time and timing curve for **collapse** animations. */
18
- const CUTE_COLLAPSE_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';
19
- /**
20
- * Animations used by the CuteWidgets` collapse element.
21
- */
22
- const cuteCollapseAnimations = {
23
- /** Animation that rotates the indicator arrow. */
24
- /*
25
- indicatorRotate: trigger('indicatorRotate', [
26
- state('collapsed, void', style({transform: 'rotate(0deg)'})),
27
- state('expanded', style({transform: 'rotate(180deg)'})),
28
- transition(
29
- 'expanded <=> collapsed, void => collapsed',
30
- animate(EXPANSION_PANEL_ANIMATION_TIMING),
31
- ),
32
- ]),
33
- */
34
- /** Animation that expands and collapses the panel content. */
35
- bodyExpansion: trigger('bodyExpansion', [
36
- state('collapsed, void', style({ height: '0px', visibility: 'hidden' })),
37
- state('collapsed-hor, void', style({ width: '0px', visibility: 'hidden' })),
38
- // Clear the `visibility` while open, otherwise the content will be visible when placed in
39
- // a parent that's `visibility: hidden`, because `visibility` doesn't apply to descendants
40
- // that have a `visibility` of their own (see #27436).
41
- state('expanded', style({ height: '*', visibility: '' })),
42
- state('expanded-hor', style({ width: '*', visibility: '' })),
43
- transition(
44
- //'expanded <=> collapsed, expanded-hor <=> collapsed-hor, :enter',
45
- '* => *, :enter, :leave', animate(CUTE_COLLAPSE_ANIMATION_TIMING))
46
- ]),
47
- };
48
-
49
10
  /**
50
11
  * @license Apache-2.0
51
12
  *
@@ -56,33 +17,21 @@ const cuteCollapseAnimations = {
56
17
  */
57
18
  // Increasing integer for generating unique ids for checkbox components.
58
19
  let nextUniqueId = 0;
59
- /**
60
- * This collapse component is used to show and hide content.
61
- * Buttons or anchors are used as triggers that are mapped to specific elements you toggle.
62
- */
63
- class CuteCollapse extends CuteBaseControl {
64
- /** Sets the element's current state to _collapsed_ or _expanded_ value. */
65
- get collapsed() { return this._collapsed(); }
66
- set collapsed(value) {
67
- if (value !== this._collapsed()) {
68
- if (this.disableAnimation) {
69
- (value ? this.beforeCollapse : this.beforeExpand).emit();
70
- }
71
- this._collapsed.set(value);
72
- if (this.disableAnimation) {
73
- (value ? this.afterCollapse : this.afterExpand).emit();
74
- }
75
- }
76
- }
77
- /** Weather the current state is _collapsed_ or _expanded_. Part of `Expandable` interface. */
78
- get expanded() { return !this.collapsed; }
20
+ class CuteCollapseBase extends CuteLayoutControl {
21
+ /** Whether the `CuteCollapse` is expanded. */
22
+ get expanded() { return this._accordionItem.expanded; }
23
+ set expanded(value) { this._accordionItem.expanded = value; }
24
+ /** Whether the animation while collapsing/expanding should be disabled */
25
+ get disableAnimation() { return this._disableAnimation ?? this._animationsDisabled; }
26
+ set disableAnimation(value) { this._disableAnimation = value; }
79
27
  constructor() {
80
28
  super();
81
- this._collapsed = signal(true, ...(ngDevMode ? [{ debugName: "_collapsed" }] : []));
29
+ this._ngZone = inject(NgZone);
30
+ this._accordionItem = inject(CdkAccordionItem);
31
+ this._animationsDisabled = _animationsDisabled();
32
+ this._cleanupTransitionHandlers = [];
82
33
  /** Expanding/Collapsing directionality, _horizontal_ or _vertical_. Default is _vertical_. */
83
34
  this.horizontal = false;
84
- /** Whether the animation while collapsing/expanding should be disabled */
85
- this.disableAnimation = false;
86
35
  /** Event emitting before expand element */
87
36
  this.beforeExpand = new EventEmitter();
88
37
  /** Event emitting before collapse element */
@@ -91,81 +40,104 @@ class CuteCollapse extends CuteBaseControl {
91
40
  this.afterExpand = new EventEmitter();
92
41
  /** Event emitting after collapse element */
93
42
  this.afterCollapse = new EventEmitter();
94
- /** Stream of body animation events. */
95
- this._bodyAnimation$ = new Subject();
96
- // We need a Subject with distinctUntilChanged, because the `done` event
97
- // fires twice on some browsers. See https://github.com/angular/angular/issues/24084
98
- this._bodyAnimation$
99
- .pipe(distinctUntilChanged((x, y) => {
100
- return x.phaseName === y.phaseName && x.fromState === y.fromState && x.toState === y.toState;
101
- }))
102
- .subscribe((event) => {
103
- this.onAnimationEvent(event);
104
- });
105
- }
106
- onAnimationEvent(event) {
107
- if (event.fromState !== 'void') {
108
- const toState = event.toState;
109
- if (event.phaseName == "start") {
110
- if (toState.startsWith('expanded')) {
111
- this.beforeExpand.emit();
112
- }
113
- else if (toState.startsWith('collapsed')) {
114
- this.beforeCollapse.emit();
115
- }
43
+ this._transitionStartListener = (event) => {
44
+ if (event.target === this._nativeElement &&
45
+ (event.propertyName === 'grid-template-rows' || event.propertyName === 'grid-template-columns')) {
46
+ this._ngZone.run(() => {
47
+ if (this._accordionItem.expanded) {
48
+ this.beforeExpand.emit();
49
+ }
50
+ else {
51
+ this.beforeCollapse.emit();
52
+ }
53
+ });
116
54
  }
117
- else if (event.phaseName == "done") {
118
- if (toState.startsWith('expanded')) {
119
- this.afterExpand.emit();
120
- }
121
- else if (toState.startsWith('collapsed')) {
122
- this.afterCollapse.emit();
123
- }
55
+ };
56
+ this._transitionEndListener = (event) => {
57
+ if (event.target === this._nativeElement &&
58
+ (event.propertyName === 'grid-template-rows' || event.propertyName === 'grid-template-columns')) {
59
+ this._ngZone.run(() => {
60
+ if (this._accordionItem.expanded) {
61
+ this.afterExpand.emit();
62
+ }
63
+ else {
64
+ this.afterCollapse.emit();
65
+ }
66
+ });
124
67
  }
68
+ };
69
+ }
70
+ setDisabledState(newState, emitEvent) {
71
+ if (super.setDisabledState(newState, emitEvent)) {
72
+ this._accordionItem.disabled = coerceBooleanProperty(newState);
73
+ return true;
125
74
  }
75
+ return false;
126
76
  }
127
77
  generateId() {
128
78
  return `cute-collapse-${nextUniqueId++}`;
129
79
  }
130
80
  /** Gets the expanded state string. */
131
81
  getState() {
132
- return this.collapsed ? 'collapsed' : 'expanded';
82
+ return this._accordionItem.expanded ? 'expanded' : 'collapsed';
133
83
  }
134
- /** Part of `Expandable` interface */
84
+ /**
85
+ * @inheritDoc
86
+ * Part of `Expandable` interface.
87
+ */
135
88
  toggle() {
136
- this.collapsed = !this.collapsed;
89
+ this._accordionItem.toggle();
137
90
  }
138
- /** Part of `Expandable` interface */
91
+ /**
92
+ * @inheritDoc
93
+ * Part of `Expandable` interface.
94
+ */
139
95
  open() {
140
- if (this.collapsed) {
141
- this.collapsed = false;
142
- }
96
+ this._accordionItem.open();
143
97
  }
144
- /** Part of `Expandable` interface */
98
+ /**
99
+ * @inheritDoc
100
+ * Part of `Expandable` interface.
101
+ */
145
102
  close() {
146
- if (!this.collapsed) {
147
- this.collapsed = true;
148
- }
103
+ this._accordionItem.close();
104
+ }
105
+ _setupAnimationEvents() {
106
+ // This method is defined separately, because we need to
107
+ // disable this logic in some internal components.
108
+ this._ngZone.runOutsideAngular(() => {
109
+ if (this.disableAnimation) {
110
+ this._accordionItem.opened.subscribe(() => this._ngZone.run(() => this.beforeExpand.emit()));
111
+ this._accordionItem.closed.subscribe(() => this._ngZone.run(() => this.beforeCollapse.emit()));
112
+ this._accordionItem.opened.subscribe(() => this._ngZone.run(() => this.afterExpand.emit()));
113
+ this._accordionItem.closed.subscribe(() => this._ngZone.run(() => this.afterCollapse.emit()));
114
+ }
115
+ else {
116
+ setTimeout(() => {
117
+ const element = this._nativeElement;
118
+ this._cleanupTransitionHandlers.push(this._renderer.listen(element, 'transitionend', this._transitionEndListener), this._renderer.listen(element, 'transitionstart', this._transitionStartListener));
119
+ element.classList.add('cute-collapse-animations-enabled');
120
+ }, 200);
121
+ }
122
+ });
123
+ }
124
+ ngAfterContentInit() {
125
+ super.ngAfterContentInit();
126
+ this._setupAnimationEvents();
149
127
  }
150
128
  ngOnDestroy() {
151
129
  super.ngOnDestroy();
152
- this._bodyAnimation$.complete();
130
+ this._cleanupTransitionHandlers.forEach(cleanup => cleanup());
153
131
  }
154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapse, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.15", type: CuteCollapse, isStandalone: true, selector: "cute-collapse", inputs: { collapsed: ["collapsed", "collapsed", booleanAttribute], horizontal: ["horizontal", "horizontal", booleanAttribute], disableAnimation: ["disableAnimation", "disableAnimation", booleanAttribute] }, outputs: { beforeExpand: "beforeExpand", beforeCollapse: "beforeCollapse", afterExpand: "afterExpand", afterCollapse: "afterCollapse" }, host: { listeners: { "@bodyExpansion.start": "_bodyAnimation$.next($event)", "@bodyExpansion.done": "_bodyAnimation$.next($event)" }, properties: { "id": "id || null", "@bodyExpansion": "getState()+(horizontal?\"-hor\":\"\")", "@.disabled": "disableAnimation" }, classAttribute: "cute-collapse" }, exportAs: ["cuteCollapse"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".cute-collapse{display:block}.ng-animating{overflow:hidden}\n"], animations: [cuteCollapseAnimations.bodyExpansion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapseBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
133
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteCollapseBase, isStandalone: true, inputs: { expanded: ["expanded", "expanded", booleanAttribute], horizontal: ["horizontal", "horizontal", booleanAttribute], disableAnimation: ["disableAnimation", "disableAnimation", booleanAttribute] }, outputs: { beforeExpand: "beforeExpand", beforeCollapse: "beforeCollapse", afterExpand: "afterExpand", afterCollapse: "afterCollapse" }, usesInheritance: true, hostDirectives: [{ directive: i1.CdkAccordionItem, outputs: ["expandedChange", "expandedChange"] }], ngImport: i0 }); }
156
134
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapse, decorators: [{
158
- type: Component,
159
- args: [{ selector: 'cute-collapse', template: '<ng-content></ng-content>', exportAs: 'cuteCollapse', host: {
160
- 'class': 'cute-collapse', // collapse',
161
- //'[class.show]': '!collapsed',
162
- '[id]': 'id || null',
163
- '[@bodyExpansion]': 'getState()+(horizontal?"-hor":"")',
164
- '[@.disabled]': 'disableAnimation',
165
- '(@bodyExpansion.start)': '_bodyAnimation$.next($event)',
166
- '(@bodyExpansion.done)': '_bodyAnimation$.next($event)',
167
- }, animations: [cuteCollapseAnimations.bodyExpansion], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [".cute-collapse{display:block}.ng-animating{overflow:hidden}\n"] }]
168
- }], ctorParameters: () => [], propDecorators: { collapsed: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapseBase, decorators: [{
136
+ type: Directive,
137
+ args: [{
138
+ hostDirectives: [{ directive: CdkAccordionItem, outputs: ["expandedChange"] }],
139
+ }]
140
+ }], ctorParameters: () => [], propDecorators: { expanded: [{
169
141
  type: Input,
170
142
  args: [{ transform: booleanAttribute }]
171
143
  }], horizontal: [{
@@ -183,6 +155,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
183
155
  }], afterCollapse: [{
184
156
  type: Output
185
157
  }] } });
158
+ /**
159
+ * This collapse component is used to show and hide content.
160
+ * Buttons or anchors are used as triggers that are mapped to specific elements you toggle.
161
+ */
162
+ class CuteCollapse extends CuteCollapseBase {
163
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapse, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: CuteCollapse, isStandalone: true, selector: "cute-collapse", host: { properties: { "class": "\"cute-collapse-\"+(horizontal ? \"horizontal\" : \"vertical\")+\" \"+getState()", "id": "id || null" }, classAttribute: "cute-collapse" }, exportAs: ["cuteCollapse"], usesInheritance: true, ngImport: i0, template: "<div class=\"cute-collapse-content\" #content>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cute-collapse{display:grid;width:100%;overflow:hidden}.cute-collapse .cute-collapse-content{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-collapse.expanded .cute-collapse-content{display:block}.cute-collapse.collapsed .cute-collapse-content{display:none}.cute-collapse.cute-collapse-vertical{grid-template-rows:0fr}.cute-collapse.cute-collapse-vertical.expanded{grid-template-rows:1fr}.cute-collapse.cute-collapse-vertical.collapsed{grid-template-rows:0fr}.cute-collapse.cute-collapse-vertical.cute-collapse-animations-enabled{transition:grid-template-rows .2s}.cute-collapse.cute-collapse-horizontal{grid-template-columns:0fr}.cute-collapse.cute-collapse-horizontal.expanded{grid-template-columns:1fr}.cute-collapse.cute-collapse-horizontal.collapsed{grid-template-columns:0fr}.cute-collapse.cute-collapse-horizontal.cute-collapse-animations-enabled{transition:grid-template-columns .2s}.cute-collapse.cute-collapse-horizontal.cute-collapse-animations-enabled .cute-collapse-content{transition-duration:.2s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
165
+ }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapse, decorators: [{
167
+ type: Component,
168
+ args: [{ selector: 'cute-collapse', exportAs: 'cuteCollapse', host: {
169
+ 'class': 'cute-collapse',
170
+ '[class]': '"cute-collapse-"+(horizontal ? "horizontal" : "vertical")+" "+getState()',
171
+ '[id]': 'id || null',
172
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cute-collapse-content\" #content>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cute-collapse{display:grid;width:100%;overflow:hidden}.cute-collapse .cute-collapse-content{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-collapse.expanded .cute-collapse-content{display:block}.cute-collapse.collapsed .cute-collapse-content{display:none}.cute-collapse.cute-collapse-vertical{grid-template-rows:0fr}.cute-collapse.cute-collapse-vertical.expanded{grid-template-rows:1fr}.cute-collapse.cute-collapse-vertical.collapsed{grid-template-rows:0fr}.cute-collapse.cute-collapse-vertical.cute-collapse-animations-enabled{transition:grid-template-rows .2s}.cute-collapse.cute-collapse-horizontal{grid-template-columns:0fr}.cute-collapse.cute-collapse-horizontal.expanded{grid-template-columns:1fr}.cute-collapse.cute-collapse-horizontal.collapsed{grid-template-columns:0fr}.cute-collapse.cute-collapse-horizontal.cute-collapse-animations-enabled{transition:grid-template-columns .2s}.cute-collapse.cute-collapse-horizontal.cute-collapse-animations-enabled .cute-collapse-content{transition-duration:.2s}\n"] }]
173
+ }] });
186
174
 
187
175
  /**
188
176
  * @license Apache-2.0
@@ -201,17 +189,17 @@ class CuteCollapseTrigger {
201
189
  set collapseControl(collapse) {
202
190
  this._collapseControl = collapse;
203
191
  }
204
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
205
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteCollapseTrigger, isStandalone: true, selector: "[cuteCollapseTriggerFor]", inputs: { collapseControl: ["cuteCollapseTriggerFor", "collapseControl"] }, host: { listeners: { "click": "collapseControl?.toggle()" }, properties: { "class.collapsed": "collapseControl?.collapsed", "attr.aria-expanded": "collapseControl ? collapseControl.expanded : null", "attr.aria-controls": "collapseControl?.id || null" }, classAttribute: "cute-collapse-trigger" }, exportAs: ["cuteCollapseTrigger"], ngImport: i0 }); }
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapseTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
193
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteCollapseTrigger, isStandalone: true, selector: "[cuteCollapseTriggerFor]", inputs: { collapseControl: ["cuteCollapseTriggerFor", "collapseControl"] }, host: { listeners: { "click": "collapseControl?.toggle()" }, properties: { "class.collapsed": "!collapseControl?.expanded", "attr.aria-expanded": "collapseControl ? collapseControl.expanded : null", "attr.aria-controls": "collapseControl?.id || null" }, classAttribute: "cute-collapse-trigger" }, exportAs: ["cuteCollapseTrigger"], ngImport: i0 }); }
206
194
  }
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseTrigger, decorators: [{
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapseTrigger, decorators: [{
208
196
  type: Directive,
209
197
  args: [{
210
198
  selector: '[cuteCollapseTriggerFor]',
211
199
  exportAs: 'cuteCollapseTrigger',
212
200
  host: {
213
201
  'class': 'cute-collapse-trigger',
214
- '[class.collapsed]': 'collapseControl?.collapsed',
202
+ '[class.collapsed]': '!collapseControl?.expanded',
215
203
  '[attr.aria-expanded]': 'collapseControl ? collapseControl.expanded : null',
216
204
  '[attr.aria-controls]': 'collapseControl?.id || null',
217
205
  '(click)': 'collapseControl?.toggle()',
@@ -236,13 +224,13 @@ const TYPES = [
236
224
  CuteCollapseTrigger,
237
225
  ];
238
226
  class CuteCollapseModule {
239
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
240
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseModule, imports: [CommonModule, CuteCollapse,
227
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
228
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapseModule, imports: [CommonModule, CuteCollapse,
241
229
  CuteCollapseTrigger], exports: [CuteCollapse,
242
230
  CuteCollapseTrigger] }); }
243
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseModule, imports: [CommonModule] }); }
231
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapseModule, imports: [CommonModule] }); }
244
232
  }
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCollapseModule, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteCollapseModule, decorators: [{
246
234
  type: NgModule,
247
235
  args: [{
248
236
  imports: [CommonModule, ...TYPES],
@@ -255,5 +243,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
255
243
  * Generated bundle index. Do not edit.
256
244
  */
257
245
 
258
- export { CUTE_COLLAPSE_ANIMATION_TIMING, CuteCollapse, CuteCollapseModule, CuteCollapseTrigger, cuteCollapseAnimations };
246
+ export { CuteCollapse, CuteCollapseBase, CuteCollapseModule, CuteCollapseTrigger };
259
247
  //# sourceMappingURL=cute-widgets-base-collapse.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cute-widgets-base-collapse.mjs","sources":["../../../../projects/cute-widgets/base/collapse/src/collapse-animations.ts","../../../../projects/cute-widgets/base/collapse/src/collapse.component.ts","../../../../projects/cute-widgets/base/collapse/src/collapse-trigger.directive.ts","../../../../projects/cute-widgets/base/collapse/src/collapse.module.ts","../../../../projects/cute-widgets/base/collapse/cute-widgets-base-collapse.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 animate,\r\n AnimationTriggerMetadata,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\n\r\n/** Time and timing curve for **collapse** animations. */\r\nexport const CUTE_COLLAPSE_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\r\n\r\n/**\r\n * Animations used by the CuteWidgets` collapse element.\r\n */\r\nexport const cuteCollapseAnimations: {\r\n //readonly indicatorRotate: AnimationTriggerMetadata;\r\n readonly bodyExpansion: AnimationTriggerMetadata;\r\n} = {\r\n /** Animation that rotates the indicator arrow. */\r\n /*\r\n indicatorRotate: trigger('indicatorRotate', [\r\n state('collapsed, void', style({transform: 'rotate(0deg)'})),\r\n state('expanded', style({transform: 'rotate(180deg)'})),\r\n transition(\r\n 'expanded <=> collapsed, void => collapsed',\r\n animate(EXPANSION_PANEL_ANIMATION_TIMING),\r\n ),\r\n ]),\r\n */\r\n /** Animation that expands and collapses the panel content. */\r\n bodyExpansion: trigger('bodyExpansion', [\r\n state('collapsed, void', style({height: '0px', visibility: 'hidden'})),\r\n state('collapsed-hor, void', style({width: '0px', visibility: 'hidden'})),\r\n // Clear the `visibility` while open, otherwise the content will be visible when placed in\r\n // a parent that's `visibility: hidden`, because `visibility` doesn't apply to descendants\r\n // that have a `visibility` of their own (see #27436).\r\n state('expanded', style({height: '*', visibility: ''})),\r\n state('expanded-hor', style({width: '*', visibility: ''})),\r\n transition(\r\n //'expanded <=> collapsed, expanded-hor <=> collapsed-hor, :enter',\r\n '* => *, :enter, :leave',\r\n animate(CUTE_COLLAPSE_ANIMATION_TIMING),\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 {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input, OnDestroy,\r\n Output, signal,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CuteBaseControl, Expandable} from \"@cute-widgets/base/abstract\";\r\nimport {cuteCollapseAnimations} from \"./collapse-animations\";\r\nimport {Subject} from \"rxjs\";\r\nimport {distinctUntilChanged} from \"rxjs/operators\";\r\nimport {AnimationEvent} from \"@angular/animations\";\r\n\r\n// Increasing integer for generating unique ids for checkbox components.\r\nlet nextUniqueId = 0;\r\n\r\n/** Animation states */\r\nexport type CuteCollapseState = 'expanded' | 'collapsed';\r\n\r\n/**\r\n * This collapse component is used to show and hide content.\r\n * Buttons or anchors are used as triggers that are mapped to specific elements you toggle.\r\n */\r\n@Component({\r\n selector: 'cute-collapse',\r\n template: '<ng-content></ng-content>',\r\n styles: `\r\n .cute-collapse {display: block;}\r\n .ng-animating {overflow: hidden;}\r\n `,\r\n exportAs: 'cuteCollapse',\r\n host: {\r\n 'class': 'cute-collapse', // collapse',\r\n //'[class.show]': '!collapsed',\r\n '[id]': 'id || null',\r\n '[@bodyExpansion]': 'getState()+(horizontal?\"-hor\":\"\")',\r\n '[@.disabled]': 'disableAnimation',\r\n '(@bodyExpansion.start)': '_bodyAnimation$.next($event)',\r\n '(@bodyExpansion.done)': '_bodyAnimation$.next($event)',\r\n },\r\n animations: [cuteCollapseAnimations.bodyExpansion],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class CuteCollapse extends CuteBaseControl implements Expandable, OnDestroy {\r\n\r\n /** Sets the element's current state to _collapsed_ or _expanded_ value. */\r\n @Input({transform: booleanAttribute})\r\n get collapsed(): boolean { return this._collapsed(); }\r\n set collapsed(value: boolean) {\r\n if (value !== this._collapsed()) {\r\n if (this.disableAnimation) {\r\n (value ? this.beforeCollapse : this.beforeExpand).emit();\r\n }\r\n this._collapsed.set(value);\r\n if (this.disableAnimation) {\r\n (value ? this.afterCollapse : this.afterExpand).emit();\r\n }\r\n }\r\n }\r\n private _collapsed = signal<boolean>(true);\r\n\r\n /** Expanding/Collapsing directionality, _horizontal_ or _vertical_. Default is _vertical_. */\r\n @Input({transform: booleanAttribute})\r\n horizontal: boolean = false;\r\n\r\n /** Whether the animation while collapsing/expanding should be disabled */\r\n @Input({transform: booleanAttribute})\r\n disableAnimation: boolean = false;\r\n\r\n /** Event emitting before expand element */\r\n @Output() readonly beforeExpand = new EventEmitter<void>();\r\n /** Event emitting before collapse element */\r\n @Output() readonly beforeCollapse = new EventEmitter<void>();\r\n\r\n /** Event emitting after expand element */\r\n @Output() readonly afterExpand = new EventEmitter<void>();\r\n /** Event emitting after collapse element */\r\n @Output() readonly afterCollapse = new EventEmitter<void>();\r\n\r\n /** Weather the current state is _collapsed_ or _expanded_. Part of `Expandable` interface. */\r\n public get expanded(): boolean { return !this.collapsed; }\r\n\r\n /** Stream of body animation events. */\r\n protected readonly _bodyAnimation$ = new Subject<AnimationEvent>();\r\n\r\n constructor() {\r\n super();\r\n\r\n // We need a Subject with distinctUntilChanged, because the `done` event\r\n // fires twice on some browsers. See https://github.com/angular/angular/issues/24084\r\n this._bodyAnimation$\r\n .pipe(\r\n distinctUntilChanged((x, y) => {\r\n return x.phaseName === y.phaseName && x.fromState === y.fromState && x.toState === y.toState;\r\n }),\r\n )\r\n .subscribe((event: AnimationEvent) => {\r\n this.onAnimationEvent(event);\r\n });\r\n }\r\n\r\n protected onAnimationEvent(event: AnimationEvent) {\r\n if (event.fromState !== 'void') {\r\n const toState = event.toState;\r\n if (event.phaseName == \"start\") {\r\n if (toState.startsWith('expanded')) {\r\n this.beforeExpand.emit();\r\n } else if (toState.startsWith('collapsed')) {\r\n this.beforeCollapse.emit();\r\n }\r\n } else if (event.phaseName == \"done\") {\r\n if (toState.startsWith('expanded')) {\r\n this.afterExpand.emit();\r\n } else if (toState.startsWith('collapsed')) {\r\n this.afterCollapse.emit();\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-collapse-${nextUniqueId++}`;\r\n }\r\n\r\n /** Gets the expanded state string. */\r\n getState(): CuteCollapseState {\r\n return this.collapsed ? 'collapsed' : 'expanded';\r\n }\r\n\r\n /** Part of `Expandable` interface */\r\n toggle(): void {\r\n this.collapsed = !this.collapsed;\r\n }\r\n\r\n /** Part of `Expandable` interface */\r\n open(): void {\r\n if (this.collapsed) {\r\n this.collapsed = false;\r\n }\r\n }\r\n\r\n /** Part of `Expandable` interface */\r\n close(): void {\r\n if (!this.collapsed) {\r\n this.collapsed = true;\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._bodyAnimation$.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 {CuteCollapse} from \"./collapse.component\";\r\n\r\n@Directive({\r\n selector: '[cuteCollapseTriggerFor]',\r\n exportAs: 'cuteCollapseTrigger',\r\n host: {\r\n 'class': 'cute-collapse-trigger',\r\n '[class.collapsed]': 'collapseControl?.collapsed',\r\n '[attr.aria-expanded]': 'collapseControl ? collapseControl.expanded : null',\r\n '[attr.aria-controls]': 'collapseControl?.id || null',\r\n '(click)': 'collapseControl?.toggle()',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCollapseTrigger {\r\n\r\n /** Reference to the `cute-collapse` component to toggle its visibility */\r\n @Input(\"cuteCollapseTriggerFor\")\r\n get collapseControl(): CuteCollapse | null {return this._collapseControl;}\r\n set collapseControl(collapse: CuteCollapse | null) {\r\n this._collapseControl = collapse;\r\n }\r\n private _collapseControl: CuteCollapse | null = null;\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 {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteCollapse} from \"./collapse.component\";\r\nimport {CuteCollapseTrigger} from \"./collapse-trigger.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCollapse,\r\n CuteCollapseTrigger,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteCollapseModule {\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-collapse.mjs","sources":["../../../../projects/cute-widgets/base/collapse/src/collapse.component.ts","../../../../projects/cute-widgets/base/collapse/src/collapse.component.html","../../../../projects/cute-widgets/base/collapse/src/collapse-trigger.directive.ts","../../../../projects/cute-widgets/base/collapse/src/collapse.module.ts","../../../../projects/cute-widgets/base/collapse/cute-widgets-base-collapse.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 AfterContentInit,\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component, Directive,\r\n EventEmitter, inject,\r\n Input, NgZone,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\r\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\r\nimport {CuteLayoutControl, Expandable} from \"@cute-widgets/base/abstract\";\r\nimport {_animationsDisabled} from '@cute-widgets/base/core';\r\n\r\n// Increasing integer for generating unique ids for checkbox components.\r\nlet nextUniqueId = 0;\r\n\r\n/** Animation states */\r\nexport type CuteCollapseState = 'expanded' | 'collapsed';\r\n\r\n@Directive({\r\n hostDirectives: [{directive: CdkAccordionItem, outputs: [\"expandedChange\"]}],\r\n})\r\nexport abstract class CuteCollapseBase extends CuteLayoutControl implements Expandable, AfterContentInit {\r\n protected _ngZone = inject(NgZone);\r\n protected _accordionItem = inject(CdkAccordionItem);\r\n protected _animationsDisabled = _animationsDisabled();\r\n private _cleanupTransitionHandlers: (() => void)[] = [];\r\n\r\n /** Whether the `CuteCollapse` is expanded. */\r\n @Input({transform: booleanAttribute})\r\n get expanded(): boolean {return this._accordionItem.expanded;}\r\n set expanded(value: boolean) {this._accordionItem.expanded = value;}\r\n\r\n /** Expanding/Collapsing directionality, _horizontal_ or _vertical_. Default is _vertical_. */\r\n @Input({transform: booleanAttribute})\r\n horizontal: boolean = false;\r\n\r\n /** Whether the animation while collapsing/expanding should be disabled */\r\n @Input({transform: booleanAttribute})\r\n get disableAnimation(): boolean {return this._disableAnimation ?? this._animationsDisabled;}\r\n set disableAnimation(value: boolean) { this._disableAnimation = value; }\r\n private _disableAnimation: boolean | undefined;\r\n\r\n /** Event emitting before expand element */\r\n @Output() readonly beforeExpand = new EventEmitter<void>();\r\n /** Event emitting before collapse element */\r\n @Output() readonly beforeCollapse = new EventEmitter<void>();\r\n\r\n /** Event emitting after expand element */\r\n @Output() readonly afterExpand = new EventEmitter<void>();\r\n /** Event emitting after collapse element */\r\n @Output() readonly afterCollapse = new EventEmitter<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override setDisabledState(newState: BooleanInput, emitEvent?: boolean): boolean {\r\n if (super.setDisabledState(newState, emitEvent)) {\r\n this._accordionItem.disabled = coerceBooleanProperty(newState);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-collapse-${nextUniqueId++}`;\r\n }\r\n\r\n /** Gets the expanded state string. */\r\n getState(): CuteCollapseState {\r\n return this._accordionItem.expanded ? 'expanded' : 'collapsed';\r\n }\r\n\r\n /**\r\n * @inheritDoc\r\n * Part of `Expandable` interface.\r\n */\r\n toggle(): void {\r\n this._accordionItem.toggle();\r\n }\r\n\r\n /**\r\n * @inheritDoc\r\n * Part of `Expandable` interface.\r\n */\r\n open(): void {\r\n this._accordionItem.open();\r\n }\r\n\r\n /**\r\n * @inheritDoc\r\n * Part of `Expandable` interface.\r\n */\r\n close(): void {\r\n this._accordionItem.close();\r\n }\r\n\r\n private _transitionStartListener = (event: TransitionEvent) => {\r\n if (event.target === this._nativeElement &&\r\n (event.propertyName === 'grid-template-rows' || event.propertyName === 'grid-template-columns')\r\n ) {\r\n this._ngZone.run(() => {\r\n if (this._accordionItem.expanded) {\r\n this.beforeExpand.emit();\r\n } else {\r\n this.beforeCollapse.emit();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _transitionEndListener = (event: TransitionEvent) => {\r\n if (event.target === this._nativeElement &&\r\n (event.propertyName === 'grid-template-rows' || event.propertyName === 'grid-template-columns')\r\n ) {\r\n this._ngZone.run(() => {\r\n if (this._accordionItem.expanded) {\r\n this.afterExpand.emit();\r\n } else {\r\n this.afterCollapse.emit();\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected _setupAnimationEvents() {\r\n // This method is defined separately, because we need to\r\n // disable this logic in some internal components.\r\n this._ngZone.runOutsideAngular(() => {\r\n if (this.disableAnimation) {\r\n this._accordionItem.opened.subscribe(() => this._ngZone.run(() => this.beforeExpand.emit()));\r\n this._accordionItem.closed.subscribe(() => this._ngZone.run(() => this.beforeCollapse.emit()));\r\n this._accordionItem.opened.subscribe(() => this._ngZone.run(() => this.afterExpand.emit()));\r\n this._accordionItem.closed.subscribe(() => this._ngZone.run(() => this.afterCollapse.emit()));\r\n } else {\r\n setTimeout(() => {\r\n const element = this._nativeElement;\r\n this._cleanupTransitionHandlers.push(\r\n this._renderer.listen(element, 'transitionend', this._transitionEndListener),\r\n this._renderer.listen(element, 'transitionstart', this._transitionStartListener),\r\n );\r\n element.classList.add('cute-collapse-animations-enabled');\r\n }, 200);\r\n }\r\n });\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n this._setupAnimationEvents();\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._cleanupTransitionHandlers.forEach(cleanup => cleanup());\r\n }\r\n\r\n}\r\n\r\n/**\r\n * This collapse component is used to show and hide content.\r\n * Buttons or anchors are used as triggers that are mapped to specific elements you toggle.\r\n */\r\n@Component({\r\n selector: 'cute-collapse',\r\n templateUrl: './collapse.component.html',\r\n styleUrl: './collapse.component.scss',\r\n exportAs: 'cuteCollapse',\r\n host: {\r\n 'class': 'cute-collapse',\r\n '[class]': '\"cute-collapse-\"+(horizontal ? \"horizontal\" : \"vertical\")+\" \"+getState()',\r\n '[id]': 'id || null',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteCollapse extends CuteCollapseBase {}\r\n","<div class=\"cute-collapse-content\" #content>\r\n <ng-content></ng-content>\r\n</div>\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 {Expandable} from '@cute-widgets/base/abstract';\r\n\r\n@Directive({\r\n selector: '[cuteCollapseTriggerFor]',\r\n exportAs: 'cuteCollapseTrigger',\r\n host: {\r\n 'class': 'cute-collapse-trigger',\r\n '[class.collapsed]': '!collapseControl?.expanded',\r\n '[attr.aria-expanded]': 'collapseControl ? collapseControl.expanded : null',\r\n '[attr.aria-controls]': 'collapseControl?.id || null',\r\n '(click)': 'collapseControl?.toggle()',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCollapseTrigger {\r\n\r\n /** Reference to the `cute-collapse` component to toggle its visibility */\r\n @Input(\"cuteCollapseTriggerFor\")\r\n get collapseControl(): Expandable | null {return this._collapseControl;}\r\n set collapseControl(collapse: Expandable | null) {\r\n this._collapseControl = collapse;\r\n }\r\n private _collapseControl: Expandable | null = null;\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 {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteCollapse} from \"./collapse.component\";\r\nimport {CuteCollapseTrigger} from \"./collapse-trigger.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCollapse,\r\n CuteCollapseTrigger,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteCollapseModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -505,10 +505,10 @@ class NativeDateAdapter extends DateAdapter {
505
505
  }
506
506
  return null;
507
507
  }
508
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NativeDateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
509
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NativeDateAdapter }); }
508
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NativeDateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
509
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NativeDateAdapter }); }
510
510
  }
511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NativeDateAdapter, decorators: [{
511
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NativeDateAdapter, decorators: [{
512
512
  type: Injectable
513
513
  }], ctorParameters: () => [] });
514
514
  /** Checks whether a number is within a certain range. */
@@ -532,22 +532,22 @@ const CUTE_NATIVE_DATE_FORMATS = {
532
532
  };
533
533
 
534
534
  class NativeDateModule {
535
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NativeDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
536
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: NativeDateModule }); }
537
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NativeDateModule, providers: [{ provide: DateAdapter, useClass: NativeDateAdapter }] }); }
535
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NativeDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
536
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: NativeDateModule }); }
537
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NativeDateModule, providers: [{ provide: DateAdapter, useClass: NativeDateAdapter }] }); }
538
538
  }
539
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: NativeDateModule, decorators: [{
539
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NativeDateModule, decorators: [{
540
540
  type: NgModule,
541
541
  args: [{
542
542
  providers: [{ provide: DateAdapter, useClass: NativeDateAdapter }],
543
543
  }]
544
544
  }] });
545
545
  class CuteNativeDateModule {
546
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNativeDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
547
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: CuteNativeDateModule }); }
548
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNativeDateModule, providers: [provideNativeDateAdapter()] }); }
546
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNativeDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
547
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteNativeDateModule }); }
548
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNativeDateModule, providers: [provideNativeDateAdapter()] }); }
549
549
  }
550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteNativeDateModule, decorators: [{
550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNativeDateModule, decorators: [{
551
551
  type: NgModule,
552
552
  args: [{
553
553
  providers: [provideNativeDateAdapter()],