@fundamental-ngx/ui5-webcomponents-ai 0.58.0-rc.52 → 0.58.0-rc.54

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/index.d.ts CHANGED
@@ -81,6 +81,31 @@ declare class Button implements AfterViewInit {
81
81
  [Alt] + [Arrow Up]/ [Arrow Down], or [F4] keyboard keys.
82
82
  */
83
83
  ui5ArrowButtonClick: _angular_core.OutputEmitterRef<UI5CustomEvent<_Button, "arrow-button-click">>;
84
+ /**
85
+ * Available slots for content projection in this component.
86
+ *
87
+ * Slots allow you to insert custom content into predefined areas of the web component.
88
+ * Use the `slot` attribute on child elements to target specific slots.
89
+ *
90
+ * - **(default)**: Defines the available states of the component.
91
+ **Note:** Although this slot accepts HTML Elements, it is strongly recommended that
92
+ you only use `ui5-ai-button-state` components in order to preserve the intended design.
93
+ *
94
+ * @example
95
+ * ```html
96
+ * <ui5-ai-button>
97
+ * <div slot="header">Custom header content</div>
98
+ * <p>Default slot content</p>
99
+ * </ui5-ai-button>
100
+ * ```
101
+ *
102
+ * @readonly
103
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
104
+ */
105
+ readonly slots: {
106
+ name: string;
107
+ description: string;
108
+ }[];
84
109
  elementRef: ElementRef<_Button>;
85
110
  injector: Injector;
86
111
  get element(): _Button;
@@ -161,6 +186,29 @@ declare class Input implements AfterViewInit {
161
186
  * Fired when the user selects the version navigation buttons.
162
187
  */
163
188
  ui5VersionChange: _angular_core.OutputEmitterRef<UI5CustomEvent<_Input, "version-change">>;
189
+ /**
190
+ * Available slots for content projection in this component.
191
+ *
192
+ * Slots allow you to insert custom content into predefined areas of the web component.
193
+ * Use the `slot` attribute on child elements to target specific slots.
194
+ *
195
+ * - **actions**: Defines the items of the menu for the component.
196
+ *
197
+ * @example
198
+ * ```html
199
+ * <ui5-ai-input>
200
+ * <div slot="header">Custom header content</div>
201
+ * <p>Default slot content</p>
202
+ * </ui5-ai-input>
203
+ * ```
204
+ *
205
+ * @readonly
206
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
207
+ */
208
+ readonly slots: {
209
+ name: string;
210
+ description: string;
211
+ }[];
164
212
  elementRef: ElementRef<_Input>;
165
213
  injector: Injector;
166
214
  get element(): _Input;
@@ -237,6 +285,46 @@ declare class PromptInput implements AfterViewInit {
237
285
  or on focusout.
238
286
  */
239
287
  ui5Change: _angular_core.OutputEmitterRef<UI5CustomEvent<_PromptInput, "change">>;
288
+ /**
289
+ * Available slots for content projection in this component.
290
+ *
291
+ * Slots allow you to insert custom content into predefined areas of the web component.
292
+ * Use the `slot` attribute on child elements to target specific slots.
293
+ *
294
+ * - **(default)**: Defines the suggestion items.
295
+
296
+ **Note:** The suggestions would be displayed only if the `showSuggestions`
297
+ property is set to `true`.
298
+
299
+ **Note:** The `<ui5-suggestion-item>`, `<ui5-suggestion-item-group>` and `ui5-suggestion-item-custom` are recommended to be used as suggestion items.
300
+ * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.
301
+ The value state message slot should contain only one root element.
302
+
303
+ **Note:** If not specified, a default text (in the respective language) will be displayed.
304
+
305
+ **Note:** The `valueStateMessage` would be displayed,
306
+ when the component is in `Information`, `Critical` or `Negative` value state.
307
+ *
308
+ * @example
309
+ * ```html
310
+ * <ui5-ai-prompt-input>
311
+ * <div slot="header">Custom header content</div>
312
+ * <p>Default slot content</p>
313
+ * </ui5-ai-prompt-input>
314
+ * ```
315
+ *
316
+ * @readonly
317
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
318
+ */
319
+ readonly slots: ({
320
+ name: string;
321
+ description: string;
322
+ since?: undefined;
323
+ } | {
324
+ name: string;
325
+ description: string;
326
+ since: string;
327
+ })[];
240
328
  elementRef: ElementRef<_PromptInput>;
241
329
  injector: Injector;
242
330
  get element(): _PromptInput;
@@ -273,6 +361,29 @@ declare class TextArea implements AfterViewInit {
273
361
  * Fired when the user requests to stop AI text generation.
274
362
  */
275
363
  ui5StopGeneration: _angular_core.OutputEmitterRef<UI5CustomEvent<_TextArea, "stop-generation">>;
364
+ /**
365
+ * Available slots for content projection in this component.
366
+ *
367
+ * Slots allow you to insert custom content into predefined areas of the web component.
368
+ * Use the `slot` attribute on child elements to target specific slots.
369
+ *
370
+ * - **menu**: Defines a slot for `ui5-menu` integration. This slot allows you to pass a `ui5-menu` instance that will be associated with the assistant.
371
+ *
372
+ * @example
373
+ * ```html
374
+ * <ui5-ai-textarea>
375
+ * <div slot="header">Custom header content</div>
376
+ * <p>Default slot content</p>
377
+ * </ui5-ai-textarea>
378
+ * ```
379
+ *
380
+ * @readonly
381
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
382
+ */
383
+ readonly slots: {
384
+ name: string;
385
+ description: string;
386
+ }[];
276
387
  elementRef: ElementRef<_TextArea>;
277
388
  injector: Injector;
278
389
  get element(): _TextArea;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/ui5-webcomponents-ai",
3
- "version": "0.58.0-rc.52",
3
+ "version": "0.58.0-rc.54",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - UI5 Webcomponents AI",
6
6
  "license": "Apache-2.0",
@@ -20,7 +20,7 @@
20
20
  "@angular/forms": "^20.0.0",
21
21
  "@angular/platform-browser": "^20.0.0",
22
22
  "@angular/router": "^20.0.0",
23
- "@fundamental-ngx/ui5-webcomponents": "0.58.0-rc.52",
23
+ "@fundamental-ngx/ui5-webcomponents": "0.58.0-rc.54",
24
24
  "fundamental-styles": "0.40.1",
25
25
  "rxjs": "^7.8.0"
26
26
  },
@@ -44,30 +44,6 @@
44
44
  "types": "./index.d.ts",
45
45
  "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-ai.mjs"
46
46
  },
47
- "./button": {
48
- "types": "./button/index.d.ts",
49
- "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-ai-button.mjs"
50
- },
51
- "./button-state": {
52
- "types": "./button-state/index.d.ts",
53
- "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-ai-button-state.mjs"
54
- },
55
- "./input": {
56
- "types": "./input/index.d.ts",
57
- "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-ai-input.mjs"
58
- },
59
- "./prompt-input": {
60
- "types": "./prompt-input/index.d.ts",
61
- "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-ai-prompt-input.mjs"
62
- },
63
- "./text-area": {
64
- "types": "./text-area/index.d.ts",
65
- "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-ai-text-area.mjs"
66
- },
67
- "./theming": {
68
- "types": "./theming/index.d.ts",
69
- "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-ai-theming.mjs"
70
- },
71
47
  "./utils": {
72
48
  "types": "./utils/index.d.ts",
73
49
  "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-ai-utils.mjs"
package/button/index.d.ts DELETED
@@ -1,68 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
- import { AfterViewInit, ElementRef, Injector } from '@angular/core';
3
- import _Button, { AIButtonAccessibilityAttributes } from '@ui5/webcomponents-ai/dist/Button.js';
4
- import { UI5CustomEvent } from '@ui5/webcomponents-base';
5
-
6
- declare class Button implements AfterViewInit {
7
- /**
8
- * Defines the component design.
9
- */
10
- design: _angular_core.InputSignal<"Default" | "Positive" | "Negative" | "Transparent" | "Emphasized" | "Attention" | undefined>;
11
- /**
12
- * Defines whether the component is disabled.
13
- A disabled component can't be pressed or
14
- focused, and it is not in the tab chain.
15
- */
16
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
17
- /**
18
- * Defines the current state of the component.
19
- */
20
- state: _angular_core.InputSignal<string | undefined>;
21
- /**
22
- * Defines the active state of the arrow button in split mode.
23
- Set to true when the button is in split mode and a menu with additional options
24
- is opened by the arrow button. Set back to false when the menu is closed.
25
- */
26
- arrowButtonPressed: _angular_core.InputSignalWithTransform<boolean, unknown>;
27
- /**
28
- * Defines the additional accessibility attributes that will be applied to the component.
29
-
30
- This property allows for fine-tuned control of ARIA attributes for screen reader support.
31
- It accepts an object with the following optional fields:
32
-
33
- - **root**: Accessibility attributes that will be applied to the root element.
34
- - **hasPopup**: Indicates the availability and type of interactive popup element (such as a menu or dialog).
35
- Accepts string values: `"dialog"`, `"grid"`, `"listbox"`, `"menu"`, or `"tree"`.
36
- - **roleDescription**: Defines a human-readable description for the button's role.
37
- Accepts any string value.
38
- - **title**: Specifies a tooltip or description for screen readers.
39
- Accepts any string value.
40
- - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or focus the button.
41
-
42
- - **arrowButton**: Accessibility attributes that will be applied to the arrow (split) button element.
43
- - **hasPopup**: Indicates the type of popup triggered by the arrow button.
44
- Accepts string values: `"dialog"`, `"grid"`, `"listbox"`, `"menu"`, or `"tree"`.
45
- - **expanded**: Indicates whether the popup controlled by the arrow button is currently expanded.
46
- Accepts boolean values: `true` or `false`.
47
- */
48
- accessibilityAttributes: _angular_core.InputSignal<AIButtonAccessibilityAttributes | undefined>;
49
- /**
50
- * Fired when the component is activated either with a
51
- mouse/tap or by using the Enter or Space key.
52
- */
53
- ui5Click: _angular_core.OutputEmitterRef<UI5CustomEvent<_Button, "click">>;
54
- /**
55
- * Fired when the component is in split mode and after the arrow button
56
- is activated either by clicking or tapping it or by using the [Arrow Up] / [Arrow Down],
57
- [Alt] + [Arrow Up]/ [Arrow Down], or [F4] keyboard keys.
58
- */
59
- ui5ArrowButtonClick: _angular_core.OutputEmitterRef<UI5CustomEvent<_Button, "arrow-button-click">>;
60
- elementRef: ElementRef<_Button>;
61
- injector: Injector;
62
- get element(): _Button;
63
- ngAfterViewInit(): void;
64
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<Button, never>;
65
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Button, "ui5-ai-button, [ui5-ai-button]", ["ui5Button"], { "design": { "alias": "design"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "arrowButtonPressed": { "alias": "arrowButtonPressed"; "required": false; "isSignal": true; }; "accessibilityAttributes": { "alias": "accessibilityAttributes"; "required": false; "isSignal": true; }; }, { "ui5Click": "ui5Click"; "ui5ArrowButtonClick": "ui5ArrowButtonClick"; }, never, ["*"], true, never>;
66
- }
67
-
68
- export { Button };
@@ -1,44 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
- import { AfterViewInit, ElementRef, Injector } from '@angular/core';
3
- import _ButtonState from '@ui5/webcomponents-ai/dist/ButtonState.js';
4
-
5
- declare class ButtonState implements AfterViewInit {
6
- /**
7
- * Defines the name of the button state.
8
- */
9
- name: _angular_core.InputSignal<string | undefined>;
10
- /**
11
- * Defines the text of the button in this state.
12
- */
13
- text: _angular_core.InputSignal<string | undefined>;
14
- /**
15
- * Defines the icon to be displayed as graphical element within the component before the text.
16
- The SAP-icons font provides numerous options.
17
-
18
- **Example:**
19
-
20
- See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).
21
- */
22
- icon: _angular_core.InputSignal<string | undefined>;
23
- /**
24
- * Defines the icon to be displayed as graphical element within the component after the text.
25
- The SAP-icons font provides numerous options.
26
-
27
- **Example:**
28
-
29
- See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).
30
- */
31
- endIcon: _angular_core.InputSignal<string | undefined>;
32
- /**
33
- * Defines if the component is in split button mode.
34
- */
35
- showArrowButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
36
- elementRef: ElementRef<_ButtonState>;
37
- injector: Injector;
38
- get element(): _ButtonState;
39
- ngAfterViewInit(): void;
40
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonState, never>;
41
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonState, "ui5-ai-button-state, [ui5-ai-button-state]", ["ui5ButtonState"], { "name": { "alias": "name"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "endIcon": { "alias": "endIcon"; "required": false; "isSignal": true; }; "showArrowButton": { "alias": "showArrowButton"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
42
- }
43
-
44
- export { ButtonState };
@@ -1,90 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, inject, ElementRef, Injector, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import '@ui5/webcomponents-ai/dist/ButtonState.js';
4
-
5
- class ButtonState {
6
- constructor() {
7
- /**
8
- * Defines the name of the button state.
9
- */
10
- this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
11
- /**
12
- * Defines the text of the button in this state.
13
- */
14
- this.text = input(...(ngDevMode ? [undefined, { debugName: "text" }] : []));
15
- /**
16
- * Defines the icon to be displayed as graphical element within the component before the text.
17
- The SAP-icons font provides numerous options.
18
-
19
- **Example:**
20
-
21
- See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).
22
- */
23
- this.icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
24
- /**
25
- * Defines the icon to be displayed as graphical element within the component after the text.
26
- The SAP-icons font provides numerous options.
27
-
28
- **Example:**
29
-
30
- See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).
31
- */
32
- this.endIcon = input(...(ngDevMode ? [undefined, { debugName: "endIcon" }] : []));
33
- /**
34
- * Defines if the component is in split button mode.
35
- */
36
- this.showArrowButton = input(false, ...(ngDevMode ? [{ debugName: "showArrowButton", transform: booleanAttribute }] : [{ transform: booleanAttribute }])); // className is now passed
37
- this.elementRef = inject(ElementRef);
38
- this.injector = inject(Injector);
39
- }
40
- get element() {
41
- return this.elementRef.nativeElement;
42
- }
43
- ngAfterViewInit() {
44
- const wcElement = this.element;
45
- const inputsToSync = [
46
- 'name',
47
- 'text',
48
- 'icon',
49
- 'endIcon',
50
- 'showArrowButton',
51
- ];
52
- // Synchronize inputs (properties)
53
- for (const inputName of inputsToSync) {
54
- // Find the corresponding camelCase signal property on the Angular component
55
- const signalName = inputName.replace(/-./g, (x) => x[1].toUpperCase());
56
- // Use the Injector to run the effect in the correct context
57
- if (this[signalName] && typeof this[signalName] === 'function') {
58
- runInInjectionContext(this.injector, () => {
59
- effect(() => {
60
- // Read the signal value
61
- const value = this[signalName]();
62
- if (wcElement) {
63
- // Write the value to the Web Component's property
64
- wcElement[inputName] = value;
65
- }
66
- });
67
- });
68
- }
69
- }
70
- }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: ButtonState, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.4", type: ButtonState, isStandalone: true, selector: "ui5-ai-button-state, [ui5-ai-button-state]", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, endIcon: { classPropertyName: "endIcon", publicName: "endIcon", isSignal: true, isRequired: false, transformFunction: null }, showArrowButton: { classPropertyName: "showArrowButton", publicName: "showArrowButton", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ui5ButtonState"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: ButtonState, decorators: [{
75
- type: Component,
76
- args: [{
77
- standalone: true,
78
- selector: 'ui5-ai-button-state, [ui5-ai-button-state]',
79
- template: '<ng-content></ng-content>',
80
- exportAs: 'ui5ButtonState',
81
- changeDetection: ChangeDetectionStrategy.OnPush,
82
- }]
83
- }] });
84
-
85
- /**
86
- * Generated bundle index. Do not edit.
87
- */
88
-
89
- export { ButtonState };
90
- //# sourceMappingURL=fundamental-ngx-ui5-webcomponents-ai-button-state.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-ai-button-state.mjs","sources":["../tmp-esm2022/button-state/index.js","../tmp-esm2022/button-state/fundamental-ngx-ui5-webcomponents-ai-button-state.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, input, effect, runInInjectionContext, inject, Injector, booleanAttribute } from '@angular/core';\nimport '@ui5/webcomponents-ai/dist/ButtonState.js';\nimport * as i0 from \"@angular/core\";\nexport class ButtonState {\n constructor() {\n /**\n * Defines the name of the button state.\n */\n this.name = input(...(ngDevMode ? [undefined, { debugName: \"name\" }] : []));\n /**\n * Defines the text of the button in this state.\n */\n this.text = input(...(ngDevMode ? [undefined, { debugName: \"text\" }] : []));\n /**\n * Defines the icon to be displayed as graphical element within the component before the text.\n The SAP-icons font provides numerous options.\n \n **Example:**\n \n See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n */\n this.icon = input(...(ngDevMode ? [undefined, { debugName: \"icon\" }] : []));\n /**\n * Defines the icon to be displayed as graphical element within the component after the text.\n The SAP-icons font provides numerous options.\n \n **Example:**\n \n See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n */\n this.endIcon = input(...(ngDevMode ? [undefined, { debugName: \"endIcon\" }] : []));\n /**\n * Defines if the component is in split button mode.\n */\n this.showArrowButton = input(false, ...(ngDevMode ? [{ debugName: \"showArrowButton\", transform: booleanAttribute }] : [{ transform: booleanAttribute }])); // className is now passed\n this.elementRef = inject(ElementRef);\n this.injector = inject(Injector);\n }\n get element() {\n return this.elementRef.nativeElement;\n }\n ngAfterViewInit() {\n const wcElement = this.element;\n const inputsToSync = [\n 'name',\n 'text',\n 'icon',\n 'endIcon',\n 'showArrowButton',\n ];\n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x) => x[1].toUpperCase());\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ButtonState, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: ButtonState, isStandalone: true, selector: \"ui5-ai-button-state, [ui5-ai-button-state]\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: \"text\", publicName: \"text\", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: \"icon\", publicName: \"icon\", isSignal: true, isRequired: false, transformFunction: null }, endIcon: { classPropertyName: \"endIcon\", publicName: \"endIcon\", isSignal: true, isRequired: false, transformFunction: null }, showArrowButton: { classPropertyName: \"showArrowButton\", publicName: \"showArrowButton\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"ui5ButtonState\"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ButtonState, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'ui5-ai-button-state, [ui5-ai-button-state]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ButtonState',\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS13ZWJjb21wb25lbnRzLWFpL2J1dHRvbi1zdGF0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNOLFFBQVEsRUFDUixnQkFBZ0IsRUFHakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTywyQ0FBMkMsQ0FBQzs7QUFjbkQsTUFBTSxPQUFPLFdBQVc7SUFSeEI7UUFVRTs7V0FFRztRQUNILFNBQUksR0FBRyxLQUFLLDBEQUFrRCxDQUFDO1FBRS9EOztXQUVHO1FBQ0gsU0FBSSxHQUFHLEtBQUssMERBQWtELENBQUM7UUFFL0Q7Ozs7Ozs7V0FPRztRQUNILFNBQUksR0FBRyxLQUFLLDBEQUFrRCxDQUFDO1FBRS9EOzs7Ozs7O1dBT0c7UUFDSCxZQUFPLEdBQUcsS0FBSyw2REFBcUQsQ0FBQztRQUVyRTs7V0FFRztRQUNILG9CQUFlLEdBQUcsS0FBSyxDQUFDLEtBQUssbURBQUksU0FBUyxFQUFFLGdCQUFnQixPQUE3QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUMsQ0FBQywwQkFBMEI7UUFLcEYsZUFBVSxHQUE2QixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQXlDcEM7SUF2Q0MsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFL0IsTUFBTSxZQUFZLEdBQUc7WUFDbkIsTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sU0FBUztZQUNULGlCQUFpQjtTQUNsQixDQUFDO1FBRUYsa0NBQWtDO1FBQ2xDLEtBQUssTUFBTSxTQUFTLElBQUksWUFBWSxFQUFFLENBQUM7WUFDckMsNEVBQTRFO1lBQzVFLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUUvRSw0REFBNEQ7WUFDNUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQy9ELHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUN4QyxNQUFNLENBQUMsR0FBRyxFQUFFO3dCQUNWLHdCQUF3Qjt3QkFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7d0JBQ2pDLElBQUksU0FBUyxFQUFFLENBQUM7NEJBQ2Qsa0RBQWtEOzRCQUNsRCxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO3dCQUMvQixDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFLSCxDQUFDOzhHQWpGVSxXQUFXO2tHQUFYLFdBQVcsbXdCQUxaLDJCQUEyQjs7MkZBSzFCLFdBQVc7a0JBUnZCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw0Q0FBNEM7b0JBQ3RELFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxnQkFBZ0I7b0JBRTFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgZWZmZWN0LFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgJ0B1aTUvd2ViY29tcG9uZW50cy1haS9kaXN0L0J1dHRvblN0YXRlLmpzJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgX0J1dHRvblN0YXRlIH0gZnJvbSAnQHVpNS93ZWJjb21wb25lbnRzLWFpL2Rpc3QvQnV0dG9uU3RhdGUuanMnO1xuaW1wb3J0IHsgVUk1Q3VzdG9tRXZlbnQgfSBmcm9tICdAdWk1L3dlYmNvbXBvbmVudHMtYmFzZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1aTUtYWktYnV0dG9uLXN0YXRlLCBbdWk1LWFpLWJ1dHRvbi1zdGF0ZV0nLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBleHBvcnRBczogJ3VpNUJ1dHRvblN0YXRlJyxcblxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uU3RhdGUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgbmFtZSBvZiB0aGUgYnV0dG9uIHN0YXRlLlxuICAgKi9cbiAgbmFtZSA9IGlucHV0PHR5cGVvZiBfQnV0dG9uU3RhdGUucHJvdG90eXBlLm5hbWUgfCB1bmRlZmluZWQ+KCk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbiBpbiB0aGlzIHN0YXRlLlxuICAgKi9cbiAgdGV4dCA9IGlucHV0PHR5cGVvZiBfQnV0dG9uU3RhdGUucHJvdG90eXBlLnRleHQgfCB1bmRlZmluZWQ+KCk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGljb24gdG8gYmUgZGlzcGxheWVkIGFzIGdyYXBoaWNhbCBlbGVtZW50IHdpdGhpbiB0aGUgY29tcG9uZW50IGJlZm9yZSB0aGUgdGV4dC5cblRoZSBTQVAtaWNvbnMgZm9udCBwcm92aWRlcyBudW1lcm91cyBvcHRpb25zLlxuXG4qKkV4YW1wbGU6KipcblxuU2VlIGFsbCB0aGUgYXZhaWxhYmxlIGljb25zIGluIHRoZSBbSWNvbiBFeHBsb3Jlcl0oaHR0cHM6Ly9zZGsub3BlbnVpNS5vcmcvdGVzdC1yZXNvdXJjZXMvc2FwL20vZGVtb2tpdC9pY29uRXhwbG9yZXIvd2ViYXBwL2luZGV4Lmh0bWwpLlxuICAgKi9cbiAgaWNvbiA9IGlucHV0PHR5cGVvZiBfQnV0dG9uU3RhdGUucHJvdG90eXBlLmljb24gfCB1bmRlZmluZWQ+KCk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGljb24gdG8gYmUgZGlzcGxheWVkIGFzIGdyYXBoaWNhbCBlbGVtZW50IHdpdGhpbiB0aGUgY29tcG9uZW50IGFmdGVyIHRoZSB0ZXh0LlxuVGhlIFNBUC1pY29ucyBmb250IHByb3ZpZGVzIG51bWVyb3VzIG9wdGlvbnMuXG5cbioqRXhhbXBsZToqKlxuXG5TZWUgYWxsIHRoZSBhdmFpbGFibGUgaWNvbnMgaW4gdGhlIFtJY29uIEV4cGxvcmVyXShodHRwczovL3Nkay5vcGVudWk1Lm9yZy90ZXN0LXJlc291cmNlcy9zYXAvbS9kZW1va2l0L2ljb25FeHBsb3Jlci93ZWJhcHAvaW5kZXguaHRtbCkuXG4gICAqL1xuICBlbmRJY29uID0gaW5wdXQ8dHlwZW9mIF9CdXR0b25TdGF0ZS5wcm90b3R5cGUuZW5kSWNvbiB8IHVuZGVmaW5lZD4oKTtcblxuICAvKipcbiAgICogRGVmaW5lcyBpZiB0aGUgY29tcG9uZW50IGlzIGluIHNwbGl0IGJ1dHRvbiBtb2RlLlxuICAgKi9cbiAgc2hvd0Fycm93QnV0dG9uID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pOyAvLyBjbGFzc05hbWUgaXMgbm93IHBhc3NlZFxuXG5cblxuXG4gIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPF9CdXR0b25TdGF0ZT4gPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHB1YmxpYyBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgZ2V0IGVsZW1lbnQoKTogX0J1dHRvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgd2NFbGVtZW50ID0gdGhpcy5lbGVtZW50O1xuICAgIFxuICAgIGNvbnN0IGlucHV0c1RvU3luYyA9IFtcbiAgICAgICduYW1lJyxcbiAgICAgICd0ZXh0JyxcbiAgICAgICdpY29uJyxcbiAgICAgICdlbmRJY29uJyxcbiAgICAgICdzaG93QXJyb3dCdXR0b24nLFxuICAgIF07XG4gICAgXG4gICAgLy8gU3luY2hyb25pemUgaW5wdXRzIChwcm9wZXJ0aWVzKVxuICAgIGZvciAoY29uc3QgaW5wdXROYW1lIG9mIGlucHV0c1RvU3luYykge1xuICAgICAgLy8gRmluZCB0aGUgY29ycmVzcG9uZGluZyBjYW1lbENhc2Ugc2lnbmFsIHByb3BlcnR5IG9uIHRoZSBBbmd1bGFyIGNvbXBvbmVudFxuICAgICAgY29uc3Qgc2lnbmFsTmFtZSA9IGlucHV0TmFtZS5yZXBsYWNlKC8tLi9nLCAoeDogc3RyaW5nKSA9PiB4WzFdLnRvVXBwZXJDYXNlKCkpO1xuXG4gICAgICAvLyBVc2UgdGhlIEluamVjdG9yIHRvIHJ1biB0aGUgZWZmZWN0IGluIHRoZSBjb3JyZWN0IGNvbnRleHRcbiAgICAgIGlmICh0aGlzW3NpZ25hbE5hbWVdICYmIHR5cGVvZiB0aGlzW3NpZ25hbE5hbWVdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIFJlYWQgdGhlIHNpZ25hbCB2YWx1ZVxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzW3NpZ25hbE5hbWVdKCk7XG4gICAgICAgICAgICBpZiAod2NFbGVtZW50KSB7XG4gICAgICAgICAgICAgIC8vIFdyaXRlIHRoZSB2YWx1ZSB0byB0aGUgV2ViIENvbXBvbmVudCdzIHByb3BlcnR5XG4gICAgICAgICAgICAgIHdjRWxlbWVudFtpbnB1dE5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgXG4gICAgXG5cbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXVpNS13ZWJjb21wb25lbnRzLWFpLWJ1dHRvbi1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWk1LXdlYmNvbXBvbmVudHMtYWkvYnV0dG9uLXN0YXRlL2Z1bmRhbWVudGFsLW5neC11aTUtd2ViY29tcG9uZW50cy1haS1idXR0b24tc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
@@ -1,129 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, output, inject, ElementRef, Injector, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import '@ui5/webcomponents-ai/dist/Button.js';
4
-
5
- class Button {
6
- constructor() {
7
- /**
8
- * Defines the component design.
9
- */
10
- this.design = input("Default", ...(ngDevMode ? [{ debugName: "design" }] : []));
11
- /**
12
- * Defines whether the component is disabled.
13
- A disabled component can't be pressed or
14
- focused, and it is not in the tab chain.
15
- */
16
- this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
17
- /**
18
- * Defines the current state of the component.
19
- */
20
- this.state = input(...(ngDevMode ? [undefined, { debugName: "state" }] : []));
21
- /**
22
- * Defines the active state of the arrow button in split mode.
23
- Set to true when the button is in split mode and a menu with additional options
24
- is opened by the arrow button. Set back to false when the menu is closed.
25
- */
26
- this.arrowButtonPressed = input(false, ...(ngDevMode ? [{ debugName: "arrowButtonPressed", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
27
- /**
28
- * Defines the additional accessibility attributes that will be applied to the component.
29
-
30
- This property allows for fine-tuned control of ARIA attributes for screen reader support.
31
- It accepts an object with the following optional fields:
32
-
33
- - **root**: Accessibility attributes that will be applied to the root element.
34
- - **hasPopup**: Indicates the availability and type of interactive popup element (such as a menu or dialog).
35
- Accepts string values: `"dialog"`, `"grid"`, `"listbox"`, `"menu"`, or `"tree"`.
36
- - **roleDescription**: Defines a human-readable description for the button's role.
37
- Accepts any string value.
38
- - **title**: Specifies a tooltip or description for screen readers.
39
- Accepts any string value.
40
- - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or focus the button.
41
-
42
- - **arrowButton**: Accessibility attributes that will be applied to the arrow (split) button element.
43
- - **hasPopup**: Indicates the type of popup triggered by the arrow button.
44
- Accepts string values: `"dialog"`, `"grid"`, `"listbox"`, `"menu"`, or `"tree"`.
45
- - **expanded**: Indicates whether the popup controlled by the arrow button is currently expanded.
46
- Accepts boolean values: `true` or `false`.
47
- */
48
- this.accessibilityAttributes = input({}, ...(ngDevMode ? [{ debugName: "accessibilityAttributes" }] : [])); // className is now passed
49
- /**
50
- * Fired when the component is activated either with a
51
- mouse/tap or by using the Enter or Space key.
52
- */
53
- this.ui5Click = output();
54
- /**
55
- * Fired when the component is in split mode and after the arrow button
56
- is activated either by clicking or tapping it or by using the [Arrow Up] / [Arrow Down],
57
- [Alt] + [Arrow Up]/ [Arrow Down], or [F4] keyboard keys.
58
- */
59
- this.ui5ArrowButtonClick = output();
60
- this.elementRef = inject(ElementRef);
61
- this.injector = inject(Injector);
62
- }
63
- get element() {
64
- return this.elementRef.nativeElement;
65
- }
66
- ngAfterViewInit() {
67
- const wcElement = this.element;
68
- const inputsToSync = [
69
- 'design',
70
- 'disabled',
71
- 'state',
72
- 'arrowButtonPressed',
73
- 'accessibilityAttributes',
74
- ];
75
- // Synchronize inputs (properties)
76
- for (const inputName of inputsToSync) {
77
- // Find the corresponding camelCase signal property on the Angular component
78
- const signalName = inputName.replace(/-./g, (x) => x[1].toUpperCase());
79
- // Use the Injector to run the effect in the correct context
80
- if (this[signalName] && typeof this[signalName] === 'function') {
81
- runInInjectionContext(this.injector, () => {
82
- effect(() => {
83
- // Read the signal value
84
- const value = this[signalName]();
85
- if (wcElement) {
86
- // Write the value to the Web Component's property
87
- wcElement[inputName] = value;
88
- }
89
- });
90
- });
91
- }
92
- }
93
- const outputsToSync = [
94
- 'ui5Click',
95
- 'ui5ArrowButtonClick',
96
- ];
97
- // Synchronize outputs (events)
98
- for (const outputName of outputsToSync) {
99
- // Map Angular output name to UI5 web component event name
100
- const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
101
- // Ensure the output property exists and has an emit function before adding listener
102
- if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
103
- // Cast the listener to the correct type to satisfy TypeScript
104
- wcElement.addEventListener(eventName, (e) => {
105
- this[outputName].emit(e);
106
- });
107
- }
108
- }
109
- }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: Button, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.4", type: Button, isStandalone: true, selector: "ui5-ai-button, [ui5-ai-button]", inputs: { design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, arrowButtonPressed: { classPropertyName: "arrowButtonPressed", publicName: "arrowButtonPressed", isSignal: true, isRequired: false, transformFunction: null }, accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click", ui5ArrowButtonClick: "ui5ArrowButtonClick" }, exportAs: ["ui5Button"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
- }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: Button, decorators: [{
114
- type: Component,
115
- args: [{
116
- standalone: true,
117
- selector: 'ui5-ai-button, [ui5-ai-button]',
118
- template: '<ng-content></ng-content>',
119
- exportAs: 'ui5Button',
120
- changeDetection: ChangeDetectionStrategy.OnPush,
121
- }]
122
- }] });
123
-
124
- /**
125
- * Generated bundle index. Do not edit.
126
- */
127
-
128
- export { Button };
129
- //# sourceMappingURL=fundamental-ngx-ui5-webcomponents-ai-button.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-ai-button.mjs","sources":["../tmp-esm2022/button/index.js","../tmp-esm2022/button/fundamental-ngx-ui5-webcomponents-ai-button.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, input, output, effect, runInInjectionContext, inject, Injector, booleanAttribute } from '@angular/core';\nimport '@ui5/webcomponents-ai/dist/Button.js';\nimport * as i0 from \"@angular/core\";\nexport class Button {\n constructor() {\n /**\n * Defines the component design.\n */\n this.design = input(\"Default\", ...(ngDevMode ? [{ debugName: \"design\" }] : []));\n /**\n * Defines whether the component is disabled.\n A disabled component can't be pressed or\n focused, and it is not in the tab chain.\n */\n this.disabled = input(false, ...(ngDevMode ? [{ debugName: \"disabled\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * Defines the current state of the component.\n */\n this.state = input(...(ngDevMode ? [undefined, { debugName: \"state\" }] : []));\n /**\n * Defines the active state of the arrow button in split mode.\n Set to true when the button is in split mode and a menu with additional options\n is opened by the arrow button. Set back to false when the menu is closed.\n */\n this.arrowButtonPressed = input(false, ...(ngDevMode ? [{ debugName: \"arrowButtonPressed\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * Defines the additional accessibility attributes that will be applied to the component.\n \n This property allows for fine-tuned control of ARIA attributes for screen reader support.\n It accepts an object with the following optional fields:\n \n - **root**: Accessibility attributes that will be applied to the root element.\n - **hasPopup**: Indicates the availability and type of interactive popup element (such as a menu or dialog).\n Accepts string values: `\"dialog\"`, `\"grid\"`, `\"listbox\"`, `\"menu\"`, or `\"tree\"`.\n - **roleDescription**: Defines a human-readable description for the button's role.\n Accepts any string value.\n - **title**: Specifies a tooltip or description for screen readers.\n Accepts any string value.\n - **ariaKeyShortcuts**: Defines keyboard shortcuts that activate or focus the button.\n \n - **arrowButton**: Accessibility attributes that will be applied to the arrow (split) button element.\n - **hasPopup**: Indicates the type of popup triggered by the arrow button.\n Accepts string values: `\"dialog\"`, `\"grid\"`, `\"listbox\"`, `\"menu\"`, or `\"tree\"`.\n - **expanded**: Indicates whether the popup controlled by the arrow button is currently expanded.\n Accepts boolean values: `true` or `false`.\n */\n this.accessibilityAttributes = input({}, ...(ngDevMode ? [{ debugName: \"accessibilityAttributes\" }] : [])); // className is now passed\n /**\n * Fired when the component is activated either with a\n mouse/tap or by using the Enter or Space key.\n */\n this.ui5Click = output();\n /**\n * Fired when the component is in split mode and after the arrow button\n is activated either by clicking or tapping it or by using the [Arrow Up] / [Arrow Down],\n [Alt] + [Arrow Up]/ [Arrow Down], or [F4] keyboard keys.\n */\n this.ui5ArrowButtonClick = output();\n this.elementRef = inject(ElementRef);\n this.injector = inject(Injector);\n }\n get element() {\n return this.elementRef.nativeElement;\n }\n ngAfterViewInit() {\n const wcElement = this.element;\n const inputsToSync = [\n 'design',\n 'disabled',\n 'state',\n 'arrowButtonPressed',\n 'accessibilityAttributes',\n ];\n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x) => x[1].toUpperCase());\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n const outputsToSync = [\n 'ui5Click',\n 'ui5ArrowButtonClick',\n ];\n // Synchronize outputs (events)\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n wcElement.addEventListener(eventName, (e) => {\n this[outputName].emit(e);\n });\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: Button, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: Button, isStandalone: true, selector: \"ui5-ai-button, [ui5-ai-button]\", inputs: { design: { classPropertyName: \"design\", publicName: \"design\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: true, isRequired: false, transformFunction: null }, arrowButtonPressed: { classPropertyName: \"arrowButtonPressed\", publicName: \"arrowButtonPressed\", isSignal: true, isRequired: false, transformFunction: null }, accessibilityAttributes: { classPropertyName: \"accessibilityAttributes\", publicName: \"accessibilityAttributes\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: \"ui5Click\", ui5ArrowButtonClick: \"ui5ArrowButtonClick\" }, exportAs: [\"ui5Button\"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: Button, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'ui5-ai-button, [ui5-ai-button]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5Button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS13ZWJjb21wb25lbnRzLWFpL2J1dHRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLE1BQU0sRUFDTixRQUFRLEVBQ1IsZ0JBQWdCLEVBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sc0NBQXNDLENBQUM7O0FBZTlDLE1BQU0sT0FBTyxNQUFNO0lBUm5CO1FBVUU7O1dBRUc7UUFDSCxXQUFNLEdBQUcsS0FBSyxDQUE4QyxTQUFTLGtEQUFDLENBQUM7UUFFdkU7Ozs7V0FJRztRQUNILGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyw0Q0FBSSxTQUFTLEVBQUUsZ0JBQWdCLE9BQTdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEdBQUMsQ0FBQztRQUV6RDs7V0FFRztRQUNILFVBQUssR0FBRyxLQUFLLDJEQUE4QyxDQUFDO1FBRTVEOzs7O1dBSUc7UUFDSCx1QkFBa0IsR0FBRyxLQUFLLENBQUMsS0FBSyxzREFBSSxTQUFTLEVBQUUsZ0JBQWdCLE9BQTdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEdBQUMsQ0FBQztRQUVuRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FvQkc7UUFDSCw0QkFBdUIsR0FBRyxLQUFLLENBQStELEVBQUUsbUVBQUMsQ0FBQyxDQUFDLDBCQUEwQjtRQUk3SDs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsTUFBTSxFQUFvQyxDQUFDO1FBRXREOzs7O1dBSUc7UUFDSCx3QkFBbUIsR0FBRyxNQUFNLEVBQWlELENBQUM7UUFFdkUsZUFBVSxHQUF3QixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQTJEcEM7SUF6REMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFL0IsTUFBTSxZQUFZLEdBQUc7WUFDbkIsUUFBUTtZQUNSLFVBQVU7WUFDVixPQUFPO1lBQ1Asb0JBQW9CO1lBQ3BCLHlCQUF5QjtTQUMxQixDQUFDO1FBRUYsa0NBQWtDO1FBQ2xDLEtBQUssTUFBTSxTQUFTLElBQUksWUFBWSxFQUFFLENBQUM7WUFDckMsNEVBQTRFO1lBQzVFLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUUvRSw0REFBNEQ7WUFDNUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQy9ELHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUN4QyxNQUFNLENBQUMsR0FBRyxFQUFFO3dCQUNWLHdCQUF3Qjt3QkFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7d0JBQ2pDLElBQUksU0FBUyxFQUFFLENBQUM7NEJBQ2Qsa0RBQWtEOzRCQUNsRCxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO3dCQUMvQixDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFHRCxNQUFNLGFBQWEsR0FBRztZQUNwQixVQUFVO1lBQ1YscUJBQXFCO1NBQ3RCLENBQUM7UUFFRiwrQkFBK0I7UUFDL0IsS0FBSyxNQUFNLFVBQVUsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUN2QywwREFBMEQ7WUFDMUQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEcsb0ZBQW9GO1lBQ3BGLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksU0FBUyxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ2xHLDhEQUE4RDtnQkFDOUQsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUUxQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQXFCLENBQUMsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUdILENBQUM7OEdBM0hVLE1BQU07a0dBQU4sTUFBTSwrNEJBTFAsMkJBQTJCOzsyRkFLMUIsTUFBTTtrQkFSbEIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFLFdBQVc7b0JBRXJCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgZWZmZWN0LFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgJ0B1aTUvd2ViY29tcG9uZW50cy1haS9kaXN0L0J1dHRvbi5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIF9CdXR0b24gfSBmcm9tICdAdWk1L3dlYmNvbXBvbmVudHMtYWkvZGlzdC9CdXR0b24uanMnO1xuaW1wb3J0IHsgVUk1Q3VzdG9tRXZlbnQgfSBmcm9tICdAdWk1L3dlYmNvbXBvbmVudHMtYmFzZSc7XG5cbmltcG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uRGVzaWduIH0gZnJvbSAnQHVpNS93ZWJjb21wb25lbnRzL2Rpc3QvdHlwZXMvQnV0dG9uRGVzaWduLmpzJztcbmltcG9ydCB7IEFJQnV0dG9uQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZXMgfSBmcm9tICdAdWk1L3dlYmNvbXBvbmVudHMtYWkvZGlzdC9CdXR0b24uanMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1aTUtYWktYnV0dG9uLCBbdWk1LWFpLWJ1dHRvbl0nLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBleHBvcnRBczogJ3VpNUJ1dHRvbicsXG5cbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBjb21wb25lbnQgZGVzaWduLlxuICAgKi9cbiAgZGVzaWduID0gaW5wdXQ8dHlwZW9mIF9CdXR0b24ucHJvdG90eXBlLmRlc2lnbiB8IHVuZGVmaW5lZD4oXCJEZWZhdWx0XCIpO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC5cbkEgZGlzYWJsZWQgY29tcG9uZW50IGNhbid0IGJlIHByZXNzZWQgb3JcbmZvY3VzZWQsIGFuZCBpdCBpcyBub3QgaW4gdGhlIHRhYiBjaGFpbi5cbiAgICovXG4gIGRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBzdGF0ZSA9IGlucHV0PHR5cGVvZiBfQnV0dG9uLnByb3RvdHlwZS5zdGF0ZSB8IHVuZGVmaW5lZD4oKTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoZSBhcnJvdyBidXR0b24gaW4gc3BsaXQgbW9kZS5cblNldCB0byB0cnVlIHdoZW4gdGhlIGJ1dHRvbiBpcyBpbiBzcGxpdCBtb2RlIGFuZCBhIG1lbnUgd2l0aCBhZGRpdGlvbmFsIG9wdGlvbnNcbmlzIG9wZW5lZCBieSB0aGUgYXJyb3cgYnV0dG9uLiBTZXQgYmFjayB0byBmYWxzZSB3aGVuIHRoZSBtZW51IGlzIGNsb3NlZC5cbiAgICovXG4gIGFycm93QnV0dG9uUHJlc3NlZCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgYWRkaXRpb25hbCBhY2Nlc3NpYmlsaXR5IGF0dHJpYnV0ZXMgdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC5cblxuVGhpcyBwcm9wZXJ0eSBhbGxvd3MgZm9yIGZpbmUtdHVuZWQgY29udHJvbCBvZiBBUklBIGF0dHJpYnV0ZXMgZm9yIHNjcmVlbiByZWFkZXIgc3VwcG9ydC5cbkl0IGFjY2VwdHMgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25hbCBmaWVsZHM6XG5cbi0gKipyb290Kio6IEFjY2Vzc2liaWxpdHkgYXR0cmlidXRlcyB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgcm9vdCBlbGVtZW50LlxuIC0gKipoYXNQb3B1cCoqOiBJbmRpY2F0ZXMgdGhlIGF2YWlsYWJpbGl0eSBhbmQgdHlwZSBvZiBpbnRlcmFjdGl2ZSBwb3B1cCBlbGVtZW50IChzdWNoIGFzIGEgbWVudSBvciBkaWFsb2cpLlxuICAgQWNjZXB0cyBzdHJpbmcgdmFsdWVzOiBgXCJkaWFsb2dcImAsIGBcImdyaWRcImAsIGBcImxpc3Rib3hcImAsIGBcIm1lbnVcImAsIG9yIGBcInRyZWVcImAuXG4gLSAqKnJvbGVEZXNjcmlwdGlvbioqOiBEZWZpbmVzIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gZm9yIHRoZSBidXR0b24ncyByb2xlLlxuICAgQWNjZXB0cyBhbnkgc3RyaW5nIHZhbHVlLlxuIC0gKip0aXRsZSoqOiBTcGVjaWZpZXMgYSB0b29sdGlwIG9yIGRlc2NyaXB0aW9uIGZvciBzY3JlZW4gcmVhZGVycy5cbiAgIEFjY2VwdHMgYW55IHN0cmluZyB2YWx1ZS5cbi0gKiphcmlhS2V5U2hvcnRjdXRzKio6IERlZmluZXMga2V5Ym9hcmQgc2hvcnRjdXRzIHRoYXQgYWN0aXZhdGUgb3IgZm9jdXMgdGhlIGJ1dHRvbi5cblxuLSAqKmFycm93QnV0dG9uKio6IEFjY2Vzc2liaWxpdHkgYXR0cmlidXRlcyB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgYXJyb3cgKHNwbGl0KSBidXR0b24gZWxlbWVudC5cbiAtICoqaGFzUG9wdXAqKjogSW5kaWNhdGVzIHRoZSB0eXBlIG9mIHBvcHVwIHRyaWdnZXJlZCBieSB0aGUgYXJyb3cgYnV0dG9uLlxuICAgQWNjZXB0cyBzdHJpbmcgdmFsdWVzOiBgXCJkaWFsb2dcImAsIGBcImdyaWRcImAsIGBcImxpc3Rib3hcImAsIGBcIm1lbnVcImAsIG9yIGBcInRyZWVcImAuXG4gLSAqKmV4cGFuZGVkKio6IEluZGljYXRlcyB3aGV0aGVyIHRoZSBwb3B1cCBjb250cm9sbGVkIGJ5IHRoZSBhcnJvdyBidXR0b24gaXMgY3VycmVudGx5IGV4cGFuZGVkLlxuICAgQWNjZXB0cyBib29sZWFuIHZhbHVlczogYHRydWVgIG9yIGBmYWxzZWAuXG4gICAqL1xuICBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlcyA9IGlucHV0PHR5cGVvZiBfQnV0dG9uLnByb3RvdHlwZS5hY2Nlc3NpYmlsaXR5QXR0cmlidXRlcyB8IHVuZGVmaW5lZD4oe30pOyAvLyBjbGFzc05hbWUgaXMgbm93IHBhc3NlZFxuXG5cblxuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGFjdGl2YXRlZCBlaXRoZXIgd2l0aCBhXG5tb3VzZS90YXAgb3IgYnkgdXNpbmcgdGhlIEVudGVyIG9yIFNwYWNlIGtleS5cbiAgICovXG4gIHVpNUNsaWNrID0gb3V0cHV0PFVJNUN1c3RvbUV2ZW50PF9CdXR0b24sICdjbGljayc+PigpO1xuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgaW4gc3BsaXQgbW9kZSBhbmQgYWZ0ZXIgdGhlIGFycm93IGJ1dHRvblxuaXMgYWN0aXZhdGVkIGVpdGhlciBieSBjbGlja2luZyBvciB0YXBwaW5nIGl0IG9yIGJ5IHVzaW5nIHRoZSBbQXJyb3cgVXBdIC8gW0Fycm93IERvd25dLFxuW0FsdF0gKyBbQXJyb3cgVXBdLyBbQXJyb3cgRG93bl0sIG9yIFtGNF0ga2V5Ym9hcmQga2V5cy5cbiAgICovXG4gIHVpNUFycm93QnV0dG9uQ2xpY2sgPSBvdXRwdXQ8VUk1Q3VzdG9tRXZlbnQ8X0J1dHRvbiwgJ2Fycm93LWJ1dHRvbi1jbGljayc+PigpO1xuXG4gIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPF9CdXR0b24+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwdWJsaWMgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGdldCBlbGVtZW50KCk6IF9CdXR0b24ge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB3Y0VsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgXG4gICAgY29uc3QgaW5wdXRzVG9TeW5jID0gW1xuICAgICAgJ2Rlc2lnbicsXG4gICAgICAnZGlzYWJsZWQnLFxuICAgICAgJ3N0YXRlJyxcbiAgICAgICdhcnJvd0J1dHRvblByZXNzZWQnLFxuICAgICAgJ2FjY2Vzc2liaWxpdHlBdHRyaWJ1dGVzJyxcbiAgICBdO1xuICAgIFxuICAgIC8vIFN5bmNocm9uaXplIGlucHV0cyAocHJvcGVydGllcylcbiAgICBmb3IgKGNvbnN0IGlucHV0TmFtZSBvZiBpbnB1dHNUb1N5bmMpIHtcbiAgICAgIC8vIEZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgY2FtZWxDYXNlIHNpZ25hbCBwcm9wZXJ0eSBvbiB0aGUgQW5ndWxhciBjb21wb25lbnRcbiAgICAgIGNvbnN0IHNpZ25hbE5hbWUgPSBpbnB1dE5hbWUucmVwbGFjZSgvLS4vZywgKHg6IHN0cmluZykgPT4geFsxXS50b1VwcGVyQ2FzZSgpKTtcblxuICAgICAgLy8gVXNlIHRoZSBJbmplY3RvciB0byBydW4gdGhlIGVmZmVjdCBpbiB0aGUgY29ycmVjdCBjb250ZXh0XG4gICAgICBpZiAodGhpc1tzaWduYWxOYW1lXSAmJiB0eXBlb2YgdGhpc1tzaWduYWxOYW1lXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBSZWFkIHRoZSBzaWduYWwgdmFsdWVcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1tzaWduYWxOYW1lXSgpO1xuICAgICAgICAgICAgaWYgKHdjRWxlbWVudCkge1xuICAgICAgICAgICAgICAvLyBXcml0ZSB0aGUgdmFsdWUgdG8gdGhlIFdlYiBDb21wb25lbnQncyBwcm9wZXJ0eVxuICAgICAgICAgICAgICB3Y0VsZW1lbnRbaW5wdXROYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgIFxuICAgIGNvbnN0IG91dHB1dHNUb1N5bmMgPSBbXG4gICAgICAndWk1Q2xpY2snLFxuICAgICAgJ3VpNUFycm93QnV0dG9uQ2xpY2snLFxuICAgIF07XG4gICAgXG4gICAgLy8gU3luY2hyb25pemUgb3V0cHV0cyAoZXZlbnRzKVxuICAgIGZvciAoY29uc3Qgb3V0cHV0TmFtZSBvZiBvdXRwdXRzVG9TeW5jKSB7XG4gICAgICAvLyBNYXAgQW5ndWxhciBvdXRwdXQgbmFtZSB0byBVSTUgd2ViIGNvbXBvbmVudCBldmVudCBuYW1lXG4gICAgICBjb25zdCBldmVudE5hbWUgPSBvdXRwdXROYW1lLnJlcGxhY2UoJ3VpNScsICcnKS5yZXBsYWNlKC8oW0EtWl0pL2csICctJDEnKS50b0xvd2VyQ2FzZSgpLnN1YnN0cmluZygxKTtcbiAgICAgIC8vIEVuc3VyZSB0aGUgb3V0cHV0IHByb3BlcnR5IGV4aXN0cyBhbmQgaGFzIGFuIGVtaXQgZnVuY3Rpb24gYmVmb3JlIGFkZGluZyBsaXN0ZW5lclxuICAgICAgaWYgKHRoaXNbb3V0cHV0TmFtZV0gJiYgdHlwZW9mIHRoaXNbb3V0cHV0TmFtZV0uZW1pdCA9PT0gJ2Z1bmN0aW9uJyAmJiB3Y0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICAvLyBDYXN0IHRoZSBsaXN0ZW5lciB0byB0aGUgY29ycmVjdCB0eXBlIHRvIHNhdGlzZnkgVHlwZVNjcmlwdFxuICAgICAgICB3Y0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIChlKSA9PiB7XG5cbiAgICAgICAgICB0aGlzW291dHB1dE5hbWVdLmVtaXQoZSBhcyBDdXN0b21FdmVudDxhbnk+KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICBcblxuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXVpNS13ZWJjb21wb25lbnRzLWFpLWJ1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWk1LXdlYmNvbXBvbmVudHMtYWkvYnV0dG9uL2Z1bmRhbWVudGFsLW5neC11aTUtd2ViY29tcG9uZW50cy1haS1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}