@decaf-ts/for-angular 0.0.7 → 0.0.9

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 (47) hide show
  1. package/dist/lib/assets/i18n/en.json +10 -1
  2. package/dist/lib/components/empty-state/empty-state.component.d.ts +301 -0
  3. package/dist/lib/components/fieldset/fieldset.component.d.ts +199 -0
  4. package/dist/lib/components/filter/filter.component.d.ts +505 -0
  5. package/dist/lib/components/for-angular-components.module.d.ts +20 -0
  6. package/dist/lib/components/index.d.ts +16 -0
  7. package/dist/lib/components/layout/layout.component.d.ts +133 -0
  8. package/dist/lib/components/list/constants.d.ts +29 -0
  9. package/dist/lib/components/list/list.component.d.ts +849 -0
  10. package/dist/lib/components/list-item/list-item.component.d.ts +390 -0
  11. package/dist/lib/components/pagination/constants.d.ts +7 -0
  12. package/dist/lib/components/pagination/pagination.component.d.ts +264 -0
  13. package/dist/lib/components/searchbar/searchbar.component.d.ts +407 -0
  14. package/dist/lib/directives/collapsable.directive.d.ts +8 -0
  15. package/dist/lib/directives/index.d.ts +1 -0
  16. package/dist/lib/engine/NgxBaseComponent.d.ts +541 -0
  17. package/dist/lib/engine/index.d.ts +1 -0
  18. package/dist/lib/engine/types.d.ts +44 -0
  19. package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +8 -4
  20. package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +3 -3
  21. package/dist/lib/esm2022/components/empty-state/empty-state.component.mjs +348 -0
  22. package/dist/lib/esm2022/components/fieldset/fieldset.component.mjs +225 -0
  23. package/dist/lib/esm2022/components/filter/filter.component.mjs +689 -0
  24. package/dist/lib/esm2022/components/for-angular-components.module.mjs +71 -0
  25. package/dist/lib/esm2022/components/index.mjs +20 -0
  26. package/dist/lib/esm2022/components/layout/layout.component.mjs +176 -0
  27. package/dist/lib/esm2022/components/list/constants.mjs +6 -0
  28. package/dist/lib/esm2022/components/list/list.component.mjs +1236 -0
  29. package/dist/lib/esm2022/components/list-item/list-item.component.mjs +408 -0
  30. package/dist/lib/esm2022/components/pagination/constants.mjs +2 -0
  31. package/dist/lib/esm2022/components/pagination/pagination.component.mjs +323 -0
  32. package/dist/lib/esm2022/components/searchbar/searchbar.component.mjs +493 -0
  33. package/dist/lib/esm2022/directives/collapsable.directive.mjs +28 -0
  34. package/dist/lib/esm2022/directives/index.mjs +2 -0
  35. package/dist/lib/esm2022/engine/NgxBaseComponent.mjs +540 -0
  36. package/dist/lib/esm2022/engine/NgxCrudFormField.mjs +3 -1
  37. package/dist/lib/esm2022/engine/index.mjs +2 -1
  38. package/dist/lib/esm2022/engine/types.mjs +3 -1
  39. package/dist/lib/esm2022/helpers/index.mjs +13 -0
  40. package/dist/lib/esm2022/helpers/utils.mjs +415 -0
  41. package/dist/lib/esm2022/public-apis.mjs +5 -4
  42. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs +6724 -1761
  43. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +1 -1
  44. package/dist/lib/helpers/index.d.ts +12 -0
  45. package/dist/lib/helpers/utils.d.ts +253 -0
  46. package/dist/lib/public-apis.d.ts +4 -3
  47. package/package.json +2 -2
@@ -77,7 +77,8 @@
77
77
  },
78
78
  "employee": {
79
79
  "name": {
80
- "label": "Employee name"
80
+ "label": "Employee name",
81
+ "placeholder": "Type the employee name"
81
82
  },
82
83
  "occupation": {
83
84
  "label": "Employee occupation"
@@ -126,6 +127,14 @@
126
127
  },
127
128
  "pagination": {
128
129
  "resume": "Showing page <span class=\"text-bold\">{{value0}} of {{value1}}</span>"
130
+ },
131
+ "filter": {
132
+ "title": "Filter",
133
+ "type": "Type value",
134
+ "select": "Filter selection",
135
+ "step1": "Select an index",
136
+ "step2": "Select a condition",
137
+ "step3": "Type a value"
129
138
  }
130
139
  }
131
140
  }
@@ -0,0 +1,301 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Color, PredefinedColors } from '@ionic/core';
3
+ import { StringOrBoolean } from 'src/lib/engine';
4
+ import { NgxBaseComponent } from 'src/lib/engine/NgxBaseComponent';
5
+ import { SafeHtml } from '@angular/platform-browser';
6
+ import { FunctionLike } from 'src/lib/engine/types';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * @description Component for displaying empty state messages with optional actions.
10
+ * @summary This component provides a standardized way to display empty state messages
11
+ * when no data is available or when a user needs to take an action to populate content.
12
+ * It includes customizable title, subtitle, icon, and action button elements that can be
13
+ * styled and configured through input properties. The component supports localization
14
+ * and can trigger navigation or custom actions when the button is clicked.
15
+ *
16
+ * @mermaid
17
+ * classDiagram
18
+ * class EmptyStateComponent {
19
+ * +string title
20
+ * +string titleColor
21
+ * +string subtitle
22
+ * +string subtitleColor
23
+ * +StringOrBoolean showIcon
24
+ * +string icon
25
+ * +string iconSize
26
+ * +PredefinedColors iconColor
27
+ * +string|Function buttonLink
28
+ * +string buttonText
29
+ * +string buttonFill
30
+ * +Color buttonColor
31
+ * +string buttonSize
32
+ * +string searchValue
33
+ * -NavController navController
34
+ * +ngOnInit()
35
+ * +handleClick()
36
+ * }
37
+ * EmptyStateComponent --|> NgxBaseComponent
38
+ * EmptyStateComponent --|> OnInit
39
+ *
40
+ * @extends {NgxBaseComponent}
41
+ * @implements {OnInit}
42
+ */
43
+ export declare class EmptyStateComponent extends NgxBaseComponent implements OnInit {
44
+ /**
45
+ * @description The main title displayed in the empty state.
46
+ * @summary Specifies the primary message to show in the empty state component.
47
+ * This text is typically used to inform the user about why they're seeing an empty view.
48
+ * If translatable is true, this will be processed through the localization system.
49
+ *
50
+ * @type {string}
51
+ * @default "title"
52
+ * @memberOf EmptyStateComponent
53
+ */
54
+ title: string;
55
+ /**
56
+ * @description The color of the title text.
57
+ * @summary Specifies the color for the title text using the application's color system.
58
+ * The value should correspond to a color variable defined in the application's theme.
59
+ * The component will automatically prefix this with "color-" to create the CSS class.
60
+ *
61
+ * @type {string}
62
+ * @default 'gray-6'
63
+ * @memberOf EmptyStateComponent
64
+ */
65
+ titleColor: string;
66
+ /**
67
+ * @description The secondary message displayed in the empty state.
68
+ * @summary Provides additional context or instructions below the main title.
69
+ * This text is typically used to guide the user on what actions they can take.
70
+ * If translatable is true, this will be processed through the localization system.
71
+ *
72
+ * @type {string | undefined}
73
+ * @memberOf EmptyStateComponent
74
+ */
75
+ subtitle: string;
76
+ /**
77
+ * @description The color of the subtitle text.
78
+ * @summary Specifies the color for the subtitle text using the application's color system.
79
+ * The value should correspond to a color variable defined in the application's theme.
80
+ * The component will automatically prefix this with "color-" to create the CSS class.
81
+ *
82
+ * @type {string}
83
+ * @default 'gray-4'
84
+ * @memberOf EmptyStateComponent
85
+ */
86
+ subtitleColor: string;
87
+ /**
88
+ * @description Controls whether the icon is displayed.
89
+ * @summary Determines if the visual icon should be shown in the empty state.
90
+ * This can be provided as a boolean or a string that will be converted to a boolean.
91
+ * Icons help visually communicate the empty state context to users.
92
+ *
93
+ * @type {StringOrBoolean}
94
+ * @default true
95
+ * @memberOf EmptyStateComponent
96
+ */
97
+ showIcon: StringOrBoolean;
98
+ /**
99
+ * @description The name of the icon to display.
100
+ * @summary Specifies which icon to show when showIcon is true.
101
+ * The component uses the icon system defined in the application,
102
+ * and this value should correspond to an available icon name.
103
+ *
104
+ * @type {string}
105
+ * @default "ti-info-square-rounded"
106
+ * @memberOf EmptyStateComponent
107
+ */
108
+ icon: string;
109
+ /**
110
+ * @description The size of the displayed icon.
111
+ * @summary Controls the size of the icon shown in the empty state.
112
+ * Can be either 'large' or 'small' to accommodate different layout needs.
113
+ *
114
+ * @type {'large' | 'small' | undefined}
115
+ * @default 'large'
116
+ * @memberOf EmptyStateComponent
117
+ */
118
+ iconSize?: 'large' | 'small';
119
+ /**
120
+ * @description The color of the displayed icon.
121
+ * @summary Specifies the color for the icon using Ionic's predefined color system.
122
+ * This allows the icon to match the application's color scheme.
123
+ *
124
+ * @type {PredefinedColors | undefined}
125
+ * @default 'medium'
126
+ * @memberOf EmptyStateComponent
127
+ */
128
+ iconColor?: PredefinedColors;
129
+ /**
130
+ * @description The navigation target or action for the button.
131
+ * @summary Specifies where the button should navigate to when clicked or what function
132
+ * it should execute. This can be either a URL string or a function that handles navigation.
133
+ * When not provided, the button will not perform any action.
134
+ *
135
+ * @type {string | FunctionLike | undefined}
136
+ * @memberOf EmptyStateComponent
137
+ */
138
+ buttonLink?: string | FunctionLike;
139
+ /**
140
+ * @description The text displayed on the action button.
141
+ * @summary Specifies the label for the action button in the empty state.
142
+ * If translatable is true, this will be processed through the localization system.
143
+ * If not provided, the button will not display any text.
144
+ *
145
+ * @type {string | undefined}
146
+ * @memberOf EmptyStateComponent
147
+ */
148
+ buttonText?: string;
149
+ /**
150
+ * @description The fill style of the action button.
151
+ * @summary Controls the visual style of the button using Ionic's button fill options.
152
+ * 'solid' creates a button with a solid background, 'outline' creates a button with
153
+ * just a border, and 'clear' creates a button with no background or border.
154
+ *
155
+ * @type {'clear' | 'solid' | 'outline'}
156
+ * @default 'solid'
157
+ * @memberOf EmptyStateComponent
158
+ */
159
+ buttonFill: 'clear' | 'solid' | 'outline';
160
+ /**
161
+ * @description The color of the action button.
162
+ * @summary Specifies the color for the button using Ionic's color system.
163
+ * This allows the button to match the application's color scheme.
164
+ *
165
+ * @type {Color}
166
+ * @default 'primary'
167
+ * @memberOf EmptyStateComponent
168
+ */
169
+ buttonColor: Color;
170
+ /**
171
+ * @description The size of the action button.
172
+ * @summary Controls the size of the button shown in the empty state.
173
+ * Can be 'large', 'small', or 'default' to accommodate different layout needs.
174
+ *
175
+ * @type {'large' | 'small' | 'default'}
176
+ * @default 'default'
177
+ * @memberOf EmptyStateComponent
178
+ */
179
+ buttonSize: 'large' | 'small' | 'default';
180
+ /**
181
+ * @description The search value that resulted in no results.
182
+ * @summary When the empty state is shown due to a search with no results,
183
+ * this property can hold the search term that was used. This can be displayed
184
+ * in the empty state message to provide context to the user.
185
+ *
186
+ * @type {string}
187
+ * @memberOf EmptyStateComponent
188
+ */
189
+ searchValue: string;
190
+ /**
191
+ * @description Service for handling navigation operations.
192
+ * @summary Injected service that provides methods for navigating between routes.
193
+ * This service is used when the buttonLink is a string URL to navigate to that location.
194
+ *
195
+ * @private
196
+ * @type {NavController}
197
+ * @memberOf EmptyStateComponent
198
+ */
199
+ private navController;
200
+ private sanitizer;
201
+ private translate;
202
+ searchSubtitle: SafeHtml;
203
+ /**
204
+ * @description Creates an instance of EmptyStateComponent.
205
+ * @summary Initializes a new EmptyStateComponent by calling the parent class constructor
206
+ * with the component name for logging and identification purposes. This component provides
207
+ * a standardized way to display empty state messages with optional icons and action buttons.
208
+ *
209
+ * @memberOf EmptyStateComponent
210
+ */
211
+ constructor();
212
+ /**
213
+ * @description Initializes the component after Angular first displays the data-bound properties.
214
+ * @summary Sets up the component by processing boolean inputs, applying localization to text
215
+ * elements if translation is enabled, and formatting CSS classes for title and subtitle colors.
216
+ * This method prepares the component for user interaction by ensuring all properties are
217
+ * properly initialized and localized.
218
+ *
219
+ * @mermaid
220
+ * sequenceDiagram
221
+ * participant A as Angular Lifecycle
222
+ * participant E as EmptyStateComponent
223
+ *
224
+ * A->>E: ngOnInit()
225
+ * E->>E: Process translatable flag
226
+ * E->>E: Process showIcon flag
227
+ * E->>E: Get locale settings
228
+ * alt translatable is true
229
+ * E->>E: Localize title
230
+ * E->>E: Localize subtitle
231
+ * E->>E: Localize buttonText
232
+ * end
233
+ * E->>E: Format title CSS class
234
+ * E->>E: Format subtitle CSS class
235
+ *
236
+ * @return {Promise<void>}
237
+ * @memberOf EmptyStateComponent
238
+ */
239
+ ngOnInit(): Promise<void>;
240
+ /**
241
+ * @description Handles click events on the action button.
242
+ * @summary This method is triggered when the user clicks the action button in the empty state
243
+ * component. It supports three navigation patterns: 1) no action when buttonLink is not provided,
244
+ * 2) custom function execution when buttonLink is a function, and 3) navigation to a specific URL
245
+ * when buttonLink is a string. This flexibility allows the empty state to trigger various actions
246
+ * based on the context in which it's used.
247
+ *
248
+ * @mermaid
249
+ * sequenceDiagram
250
+ * participant U as User
251
+ * participant E as EmptyStateComponent
252
+ * participant N as NavController
253
+ *
254
+ * U->>E: Click action button
255
+ * E->>E: handleClick()
256
+ * alt buttonLink is not provided
257
+ * E-->>U: Return false (no action)
258
+ * else buttonLink is a function
259
+ * E->>E: Execute buttonLink function
260
+ * E-->>U: Return function result
261
+ * else buttonLink is a URL string
262
+ * E->>N: navigateForward(buttonLink)
263
+ * N-->>E: Return navigation result
264
+ * E-->>U: Return navigation result
265
+ * end
266
+ *
267
+ * @return {boolean | void | Promise<boolean>}
268
+ * - false if no action is taken
269
+ * - The result of the buttonLink function if it's a function
270
+ * - A Promise resolving to the navigation result if buttonLink is a URL
271
+ * @memberOf EmptyStateComponent
272
+ */
273
+ handleClick(): boolean | void | Promise<boolean>;
274
+ /**
275
+ * @description Generates a localized and sanitized subtitle for search results.
276
+ * @summary This method takes a content string, typically the subtitle, and processes it
277
+ * through the translation service. It replaces a placeholder ('value0') with the actual
278
+ * search value, then sanitizes the result to safely use as HTML. This is particularly
279
+ * useful for displaying dynamic, localized messages in the empty state when a search
280
+ * yields no results.
281
+ *
282
+ * @param {string} content - The content string to be translated and processed
283
+ * @return {Promise<SafeHtml>} A promise that resolves to a sanitized HTML string
284
+ *
285
+ * @mermaid
286
+ * sequenceDiagram
287
+ * participant E as EmptyStateComponent
288
+ * participant T as TranslateService
289
+ * participant S as DomSanitizer
290
+ *
291
+ * E->>T: instant(content, {'value0': searchValue})
292
+ * T-->>E: Return translated string
293
+ * E->>S: bypassSecurityTrustHtml(translatedString)
294
+ * S-->>E: Return sanitized SafeHtml
295
+ *
296
+ * @memberOf EmptyStateComponent
297
+ */
298
+ getSearchSubtitle(content: string): Promise<SafeHtml>;
299
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmptyStateComponent, never>;
300
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmptyStateComponent, "ngx-decaf-empty-state", never, { "title": { "alias": "title"; "required": false; }; "titleColor": { "alias": "titleColor"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "subtitleColor": { "alias": "subtitleColor"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconSize": { "alias": "iconSize"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "buttonLink": { "alias": "buttonLink"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; "buttonFill": { "alias": "buttonFill"; "required": false; }; "buttonColor": { "alias": "buttonColor"; "required": false; }; "buttonSize": { "alias": "buttonSize"; "required": false; }; "searchValue": { "alias": "searchValue"; "required": false; }; }, {}, never, never, true, never>;
301
+ }
@@ -0,0 +1,199 @@
1
+ import { AfterViewInit, ElementRef } from '@angular/core';
2
+ import { HTMLFormTarget } from 'src/lib/engine';
3
+ import { CrudOperations, OperationKeys } from '@decaf-ts/db-decorators';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * @description Dynamic fieldset component with collapsible accordion functionality.
7
+ * @summary This component provides a sophisticated fieldset container that automatically
8
+ * adapts its behavior based on CRUD operations. It integrates seamlessly with Ionic's
9
+ * accordion components to create expandable/collapsible sections for organizing form
10
+ * content and related information. The component intelligently determines its initial
11
+ * state based on the operation type, opening automatically for READ and DELETE operations
12
+ * while remaining closed for CREATE and UPDATE operations.
13
+ *
14
+ * @example
15
+ * ```html
16
+ * <!-- Basic usage with automatic state management -->
17
+ * <ngx-decaf-fieldset
18
+ * name="Personal Information"
19
+ * [operation]="OperationKeys.READ"
20
+ * target="_self">
21
+ * <ion-input label="Name" placeholder="Enter name"></ion-input>
22
+ * <ion-input label="Email" type="email" placeholder="Enter email"></ion-input>
23
+ * </ngx-decaf-fieldset>
24
+ *
25
+ * <!-- Advanced usage with custom operation -->
26
+ * <ngx-decaf-fieldset
27
+ * name="Contact Details"
28
+ * [operation]="currentOperation"
29
+ * target="_blank">
30
+ * <!-- Complex form fields -->
31
+ * </ngx-decaf-fieldset>
32
+ * ```
33
+ *
34
+ * @mermaid
35
+ * sequenceDiagram
36
+ * participant U as User
37
+ * participant F as FieldsetComponent
38
+ * participant I as Ionic Accordion
39
+ * participant D as DOM
40
+ *
41
+ * F->>F: ngAfterViewInit()
42
+ * alt operation is READ or DELETE
43
+ * F->>F: Set isOpen = true
44
+ * F->>D: Query accordion element
45
+ * F->>I: Set value attribute to 'open'
46
+ * F->>F: Trigger change detection
47
+ * end
48
+ * U->>I: Click accordion header
49
+ * I->>F: handleChange(event)
50
+ * F->>F: Update isOpen state
51
+ * F->>I: Reflect new state
52
+ *
53
+ * @memberOf ForAngularModule
54
+ */
55
+ export declare class FieldsetComponent implements AfterViewInit {
56
+ /**
57
+ * @description Reference to the component's native DOM element.
58
+ * @summary ViewChild reference that provides direct access to the component's root DOM element.
59
+ * This is essential for manipulating the Ionic accordion group after view initialization,
60
+ * particularly for setting the initial open state programmatically. The reference is used
61
+ * to query and modify accordion attributes that control the component's expanded state.
62
+ *
63
+ * @type {ElementRef}
64
+ * @memberOf FieldsetComponent
65
+ */
66
+ component: ElementRef;
67
+ /**
68
+ * @description The display name or title of the fieldset section.
69
+ * @summary Sets the legend or header text that appears in the accordion header. This text
70
+ * provides a clear label for the collapsible section, helping users understand what content
71
+ * is contained within. The name is displayed prominently and serves as the clickable area
72
+ * for expanding/collapsing the fieldset.
73
+ *
74
+ * @type {string}
75
+ * @default 'Child'
76
+ * @memberOf FieldsetComponent
77
+ */
78
+ name: string;
79
+ /**
80
+ * @description The current CRUD operation context.
81
+ * @summary Determines the component's initial behavior and state based on the current operation.
82
+ * This input is crucial for auto-state management: READ and DELETE operations automatically
83
+ * open the fieldset to show content, while CREATE and UPDATE operations keep it closed
84
+ * initially. This provides an intuitive user experience aligned with operation semantics.
85
+ *
86
+ * @type {OperationKeys}
87
+ * @default OperationKeys.READ
88
+ * @memberOf FieldsetComponent
89
+ */
90
+ operation: OperationKeys;
91
+ /**
92
+ * @description Form target attribute for nested form submissions.
93
+ * @summary Specifies where to display the response after submitting forms contained within
94
+ * the fieldset. This attribute mirrors the HTML form target behavior, allowing control over
95
+ * whether form submissions open in the same window, new window, or specific frame. Useful
96
+ * for complex form workflows and multi-step processes.
97
+ *
98
+ * @type {HTMLFormTarget}
99
+ * @default '_self'
100
+ * @memberOf FieldsetComponent
101
+ */
102
+ target: HTMLFormTarget;
103
+ /**
104
+ * @description Current state of the accordion (expanded or collapsed).
105
+ * @summary Boolean flag that tracks whether the fieldset accordion is currently open or closed.
106
+ * This property is automatically managed based on user interactions and initial operation state.
107
+ * It serves as the single source of truth for the component's visibility state and is used
108
+ * to coordinate between user actions and programmatic state changes.
109
+ *
110
+ * @type {boolean}
111
+ * @default false
112
+ * @memberOf FieldsetComponent
113
+ */
114
+ isOpen: boolean;
115
+ /**
116
+ * @description Reference to CRUD operation constants for template usage.
117
+ * @summary Exposes the OperationKeys enum to the component template, enabling conditional
118
+ * rendering and behavior based on operation types. This protected readonly property ensures
119
+ * that template logic can access operation constants while maintaining encapsulation and
120
+ * preventing accidental modification of the enum values.
121
+ *
122
+ * @type {CrudOperations}
123
+ * @default OperationKeys.CREATE
124
+ * @memberOf FieldsetComponent
125
+ */
126
+ protected readonly OperationKeys: CrudOperations;
127
+ /**
128
+ * @description Angular change detection service.
129
+ * @summary Injected service that provides manual control over change detection cycles.
130
+ * This is essential for ensuring that programmatic DOM changes (like setting accordion
131
+ * attributes) are properly reflected in the component's state and trigger appropriate
132
+ * view updates when modifications occur outside the normal Angular change detection flow.
133
+ *
134
+ * @private
135
+ * @type {ChangeDetectorRef}
136
+ * @memberOf FieldsetComponent
137
+ */
138
+ private changeDetectorRef;
139
+ /**
140
+ * @description Initializes the component state after view and child components are rendered.
141
+ * @summary This lifecycle hook implements intelligent auto-state management based on the current
142
+ * CRUD operation. For READ and DELETE operations, the fieldset automatically opens to provide
143
+ * immediate access to information, while CREATE and UPDATE operations keep it closed to maintain
144
+ * a clean initial interface. The method directly manipulates the DOM to ensure proper accordion
145
+ * synchronization and triggers change detection to reflect the programmatic state changes.
146
+ *
147
+ * @mermaid
148
+ * sequenceDiagram
149
+ * participant A as Angular Lifecycle
150
+ * participant F as FieldsetComponent
151
+ * participant D as DOM
152
+ * participant C as ChangeDetector
153
+ *
154
+ * A->>F: ngAfterViewInit()
155
+ * alt operation is READ or DELETE
156
+ * F->>F: Set isOpen = true
157
+ * F->>D: Query ion-accordion-group element
158
+ * alt accordion element exists
159
+ * F->>D: Set value attribute to 'open'
160
+ * end
161
+ * end
162
+ * F->>C: detectChanges()
163
+ * C->>F: Update view with new state
164
+ *
165
+ * @returns {void}
166
+ * @memberOf FieldsetComponent
167
+ */
168
+ ngAfterViewInit(): void;
169
+ /**
170
+ * @description Handles accordion state change events from user interactions.
171
+ * @summary Processes CustomEvent objects triggered when users expand or collapse the accordion.
172
+ * This method extracts the new state from the event details and updates the component's
173
+ * internal state accordingly. It specifically listens for ION-ACCORDION-GROUP events to
174
+ * ensure proper event source validation and prevent handling of unrelated events.
175
+ *
176
+ * @param {CustomEvent} event - The event object containing accordion state change details
177
+ * @returns {void}
178
+ *
179
+ * @mermaid
180
+ * sequenceDiagram
181
+ * participant U as User
182
+ * participant I as Ion-Accordion
183
+ * participant F as FieldsetComponent
184
+ *
185
+ * U->>I: Click accordion header
186
+ * I->>F: handleChange(CustomEvent)
187
+ * F->>F: Extract target and detail from event
188
+ * F->>F: Validate target is ION-ACCORDION-GROUP
189
+ * alt valid target
190
+ * F->>F: Update isOpen = !!value
191
+ * end
192
+ * F->>I: Reflect updated state
193
+ *
194
+ * @memberOf FieldsetComponent
195
+ */
196
+ handleChange(event: CustomEvent): void;
197
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldsetComponent, never>;
198
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldsetComponent, "ngx-decaf-fieldset", never, { "name": { "alias": "name"; "required": false; }; "operation": { "alias": "operation"; "required": false; }; "target": { "alias": "target"; "required": false; }; }, {}, never, ["*"], true, never>;
199
+ }