@fundamental-ngx/ui5-webcomponents-ai 0.61.2 → 0.61.4
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/fesm2022/fundamental-ngx-ui5-webcomponents-ai-button-state.mjs +106 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-button-state.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-button.mjs +172 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-button.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-input.mjs +341 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-input.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-prompt-input.mjs +207 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-prompt-input.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-text-area.mjs +298 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-text-area.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-theming.mjs +23 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-theming.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-toolbar-label.mjs +114 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-toolbar-label.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-versioning.mjs +142 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-versioning.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-writing-assistant.mjs +124 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-ai-writing-assistant.mjs.map +1 -0
- package/package.json +40 -4
- package/types/fundamental-ngx-ui5-webcomponents-ai-button-state.d.ts +50 -0
- package/types/fundamental-ngx-ui5-webcomponents-ai-button.d.ts +100 -0
- package/types/fundamental-ngx-ui5-webcomponents-ai-input.d.ts +218 -0
- package/types/fundamental-ngx-ui5-webcomponents-ai-prompt-input.d.ts +128 -0
- package/types/fundamental-ngx-ui5-webcomponents-ai-text-area.d.ts +188 -0
- package/types/fundamental-ngx-ui5-webcomponents-ai-theming.d.ts +11 -0
- package/types/fundamental-ngx-ui5-webcomponents-ai-toolbar-label.d.ts +58 -0
- package/types/fundamental-ngx-ui5-webcomponents-ai-versioning.d.ts +71 -0
- package/types/fundamental-ngx-ui5-webcomponents-ai-writing-assistant.d.ts +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-ai-prompt-input.mjs","sources":["../../../../libs/ui5-webcomponents-ai/prompt-input/index.ts","../../../../libs/ui5-webcomponents-ai/prompt-input/fundamental-ngx-ui5-webcomponents-ai-prompt-input.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents-ai/dist/PromptInput.js';\nimport { default as _PromptInput } from '@ui5/webcomponents-ai/dist/PromptInput.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-ai-prompt-input, [ui5-ai-prompt-input]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5PromptInput',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PromptInput implements AfterViewInit {\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is completely noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the label of the input field.\n */\n label = input<typeof _PromptInput.prototype.label | undefined>();\n\n /**\n * Sets the maximum number of characters available in the input field.\n */\n maxlength = input<typeof _PromptInput.prototype.maxlength | undefined>();\n\n /**\n * Defines a short hint intended to aid the user with data entry when the\ncomponent has no value.\n */\n placeholder = input<typeof _PromptInput.prototype.placeholder | undefined>();\n\n /**\n * Defines whether the component is read-only.\n\n**Note:** A read-only component is not editable,\nbut still provides visual feedback upon user interaction.\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the clear icon of the input will be shown.\n */\n showClearIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Determines whether the characters exceeding the maximum allowed character count are visible\nin the component.\n\nIf set to `false`, the user is not allowed to enter more characters than what is set in the\n`maxlength` property.\nIf set to `true` the characters exceeding the `maxlength` value are selected on\npaste and the counter below the component displays their number.\n */\n showExceededText = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the component should show suggestions, if such are present.\n */\n showSuggestions = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the value of the component.\n */\n value = input<typeof _PromptInput.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _PromptInput.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when the input operation has finished by pressing Enter\nor on focusout.\n */\n ui5Change = output<UI5CustomEvent<_PromptInput, 'change'>>();\n\n /**\n * Fired when the value of the component changes at each keystroke,\nand when a suggestion item has been selected.\n */\n ui5Input = output<UI5CustomEvent<_PromptInput, 'input'>>();\n\n /**\n * Fired when the input operation has finished by pressing Enter\nor AI button is clicked.\n */\n ui5Submit = output<UI5CustomEvent<_PromptInput, 'submit'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the suggestion items.\n\n**Note:** The suggestions would be displayed only if the `showSuggestions`\nproperty is set to `true`.\n\n**Note:** The `<ui5-suggestion-item>`, `<ui5-suggestion-item-group>` and `ui5-suggestion-item-custom` are recommended to be used as suggestion items.\n * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state.\n *\n * @example\n * ```html\n * <ui5-ai-prompt-input>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-ai-prompt-input>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"default\",\n \"description\": \"Defines the suggestion items.\\n\\n**Note:** The suggestions would be displayed only if the `showSuggestions`\\nproperty is set to `true`.\\n\\n**Note:** The `<ui5-suggestion-item>`, `<ui5-suggestion-item-group>` and `ui5-suggestion-item-custom` are recommended to be used as suggestion items.\"\n },\n {\n \"name\": \"valueStateMessage\",\n \"description\": \"Defines the value state message that will be displayed as pop up under the component.\\nThe value state message slot should contain only one root element.\\n\\n**Note:** If not specified, a default text (in the respective language) will be displayed.\\n\\n**Note:** The `valueStateMessage` would be displayed,\\nwhen the component is in `Information`, `Critical` or `Negative` value state.\",\n \"since\": \"2.0.0\"\n }\n ];\n\n\n public elementRef: ElementRef<_PromptInput> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _PromptInput {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'disabled',\n 'label',\n 'maxlength',\n 'placeholder',\n 'readonly',\n 'showClearIcon',\n 'showExceededText',\n 'showSuggestions',\n 'value',\n 'valueState',\n ];\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: string) => x[1].toUpperCase());\n\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 \n const outputsToSync = [\n 'ui5Change',\n 'ui5Input',\n 'ui5Submit',\n ];\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\n this[outputName].emit(e as CustomEvent<any>);\n });\n }\n }\n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,298 @@
|
|
|
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/TextArea.js';
|
|
4
|
+
import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
|
|
5
|
+
import * as i1 from '@fundamental-ngx/ui5-webcomponents-ai/utils';
|
|
6
|
+
import { CVA_CONFIG, GenericControlValueAccessor } from '@fundamental-ngx/ui5-webcomponents-ai/utils';
|
|
7
|
+
|
|
8
|
+
class TextArea {
|
|
9
|
+
constructor() {
|
|
10
|
+
/**
|
|
11
|
+
* Indicates the index of the currently displayed version.
|
|
12
|
+
*/
|
|
13
|
+
this.currentVersion = input(0, ...(ngDevMode ? [{ debugName: "currentVersion" }] : []));
|
|
14
|
+
/**
|
|
15
|
+
* Defines whether the `ui5-ai-textarea` is currently in a loading(processing) state.
|
|
16
|
+
*/
|
|
17
|
+
this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : {}), transform: booleanAttribute });
|
|
18
|
+
/**
|
|
19
|
+
* Defines the prompt description of the current action.
|
|
20
|
+
*/
|
|
21
|
+
this.promptDescription = input("", ...(ngDevMode ? [{ debugName: "promptDescription" }] : []));
|
|
22
|
+
/**
|
|
23
|
+
* Indicates the total number of result versions available.
|
|
24
|
+
|
|
25
|
+
Notes:
|
|
26
|
+
Versioning is hidden if the value is `0`
|
|
27
|
+
*/
|
|
28
|
+
this.totalVersions = input(0, ...(ngDevMode ? [{ debugName: "totalVersions" }] : []));
|
|
29
|
+
/**
|
|
30
|
+
* Defines the accessible description of the component.
|
|
31
|
+
*/
|
|
32
|
+
this.accessibleDescription = input(...(ngDevMode ? [undefined, { debugName: "accessibleDescription" }] : []));
|
|
33
|
+
/**
|
|
34
|
+
* Receives id(or many ids) of the elements that describe the textarea.
|
|
35
|
+
*/
|
|
36
|
+
this.accessibleDescriptionRef = input(...(ngDevMode ? [undefined, { debugName: "accessibleDescriptionRef" }] : []));
|
|
37
|
+
/**
|
|
38
|
+
* Defines the accessible ARIA name of the component.
|
|
39
|
+
*/
|
|
40
|
+
this.accessibleName = input(...(ngDevMode ? [undefined, { debugName: "accessibleName" }] : []));
|
|
41
|
+
/**
|
|
42
|
+
* Receives id(or many ids) of the elements that label the textarea.
|
|
43
|
+
*/
|
|
44
|
+
this.accessibleNameRef = input(...(ngDevMode ? [undefined, { debugName: "accessibleNameRef" }] : []));
|
|
45
|
+
/**
|
|
46
|
+
* Indicates whether the user can interact with the component or not.
|
|
47
|
+
|
|
48
|
+
**Note:** A disabled component is completely noninteractive.
|
|
49
|
+
*/
|
|
50
|
+
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
|
|
51
|
+
/**
|
|
52
|
+
* Enables the component to automatically grow and shrink dynamically with its content.
|
|
53
|
+
*/
|
|
54
|
+
this.growing = input(false, { ...(ngDevMode ? { debugName: "growing" } : {}), transform: booleanAttribute });
|
|
55
|
+
/**
|
|
56
|
+
* Defines the maximum number of rows that the component can grow.
|
|
57
|
+
*/
|
|
58
|
+
this.growingMaxRows = input(0, ...(ngDevMode ? [{ debugName: "growingMaxRows" }] : []));
|
|
59
|
+
/**
|
|
60
|
+
* Defines the maximum number of characters that the `value` can have.
|
|
61
|
+
*/
|
|
62
|
+
this.maxlength = input(...(ngDevMode ? [undefined, { debugName: "maxlength" }] : []));
|
|
63
|
+
/**
|
|
64
|
+
* Determines the name by which the component will be identified upon submission in an HTML form.
|
|
65
|
+
|
|
66
|
+
**Note:** This property is only applicable within the context of an HTML Form element.
|
|
67
|
+
*/
|
|
68
|
+
this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
|
|
69
|
+
/**
|
|
70
|
+
* Defines a short hint intended to aid the user with data entry when the component has no value.
|
|
71
|
+
*/
|
|
72
|
+
this.placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : []));
|
|
73
|
+
/**
|
|
74
|
+
* Defines whether the component is read-only.
|
|
75
|
+
|
|
76
|
+
**Note:** A read-only component is not editable,
|
|
77
|
+
but still provides visual feedback upon user interaction.
|
|
78
|
+
*/
|
|
79
|
+
this.readonly = input(false, { ...(ngDevMode ? { debugName: "readonly" } : {}), transform: booleanAttribute });
|
|
80
|
+
/**
|
|
81
|
+
* Defines whether the component is required.
|
|
82
|
+
*/
|
|
83
|
+
this.required = input(false, { ...(ngDevMode ? { debugName: "required" } : {}), transform: booleanAttribute });
|
|
84
|
+
/**
|
|
85
|
+
* Defines the number of visible text rows for the component.
|
|
86
|
+
|
|
87
|
+
**Notes:**
|
|
88
|
+
|
|
89
|
+
- If the `growing` property is enabled, this property defines the minimum rows to be displayed
|
|
90
|
+
in the textarea.
|
|
91
|
+
- The CSS `height` property wins over the `rows` property, if both are set.
|
|
92
|
+
*/
|
|
93
|
+
this.rows = input(0, ...(ngDevMode ? [{ debugName: "rows" }] : []));
|
|
94
|
+
/**
|
|
95
|
+
* Determines whether the characters exceeding the maximum allowed character count are visible
|
|
96
|
+
in the component.
|
|
97
|
+
|
|
98
|
+
If set to `false`, the user is not allowed to enter more characters than what is set in the
|
|
99
|
+
`maxlength` property.
|
|
100
|
+
If set to `true` the characters exceeding the `maxlength` value are selected on
|
|
101
|
+
paste and the counter below the component displays their number.
|
|
102
|
+
*/
|
|
103
|
+
this.showExceededText = input(false, { ...(ngDevMode ? { debugName: "showExceededText" } : {}), transform: booleanAttribute });
|
|
104
|
+
/**
|
|
105
|
+
* Defines the value of the component.
|
|
106
|
+
*/
|
|
107
|
+
this.value = input("", ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
108
|
+
/**
|
|
109
|
+
* Defines the value state of the component.
|
|
110
|
+
|
|
111
|
+
**Note:** If `maxlength` property is set,
|
|
112
|
+
the component turns into "Critical" state once the characters exceeds the limit.
|
|
113
|
+
In this case, only the "Negative" state is considered and can be applied.
|
|
114
|
+
*/
|
|
115
|
+
this.valueState = input("None", ...(ngDevMode ? [{ debugName: "valueState" }] : [])); // className is now passed
|
|
116
|
+
/**
|
|
117
|
+
* Fired when the user requests to stop AI text generation.
|
|
118
|
+
*/
|
|
119
|
+
this.ui5StopGeneration = output();
|
|
120
|
+
/**
|
|
121
|
+
* Fired when the user clicks on version navigation buttons.
|
|
122
|
+
*/
|
|
123
|
+
this.ui5VersionChange = output();
|
|
124
|
+
/**
|
|
125
|
+
* Fired when the text has changed and the focus leaves the component.
|
|
126
|
+
*/
|
|
127
|
+
this.ui5Change = output();
|
|
128
|
+
/**
|
|
129
|
+
* Fired when the value of the component changes at each keystroke or when
|
|
130
|
+
something is pasted.
|
|
131
|
+
*/
|
|
132
|
+
this.ui5Input = output();
|
|
133
|
+
/**
|
|
134
|
+
* Fired when textarea is scrolled.
|
|
135
|
+
*/
|
|
136
|
+
this.ui5Scroll = output();
|
|
137
|
+
/**
|
|
138
|
+
* Fired when some text has been selected.
|
|
139
|
+
*/
|
|
140
|
+
this.ui5Select = output();
|
|
141
|
+
/**
|
|
142
|
+
* Available slots for content projection in this component.
|
|
143
|
+
*
|
|
144
|
+
* Slots allow you to insert custom content into predefined areas of the web component.
|
|
145
|
+
* Use the `slot` attribute on child elements to target specific slots.
|
|
146
|
+
*
|
|
147
|
+
* - **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.
|
|
148
|
+
* - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.
|
|
149
|
+
The value state message slot should contain only one root element.
|
|
150
|
+
|
|
151
|
+
**Note:** If not specified, a default text (in the respective language) will be displayed.
|
|
152
|
+
|
|
153
|
+
**Note:** The `valueStateMessage` would be displayed if the component has
|
|
154
|
+
`valueState` of type `Information`, `Critical` or `Negative`.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```html
|
|
158
|
+
* <ui5-ai-textarea>
|
|
159
|
+
* <div slot="header">Custom header content</div>
|
|
160
|
+
* <p>Default slot content</p>
|
|
161
|
+
* </ui5-ai-textarea>
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* @readonly
|
|
165
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
|
|
166
|
+
*/
|
|
167
|
+
this.slots = [
|
|
168
|
+
{
|
|
169
|
+
"name": "menu",
|
|
170
|
+
"description": "Defines a slot for `ui5-menu` integration. This slot allows you to pass a `ui5-menu` instance that will be associated with the assistant."
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"name": "valueStateMessage",
|
|
174
|
+
"description": "Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n \n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed if the component has\n`valueState` of type `Information`, `Critical` or `Negative`.",
|
|
175
|
+
"since": "1.0.0-rc.7"
|
|
176
|
+
}
|
|
177
|
+
];
|
|
178
|
+
this.elementRef = inject(ElementRef);
|
|
179
|
+
this.injector = inject(Injector);
|
|
180
|
+
/**
|
|
181
|
+
* Content density observer is injected to activate automatic CSS class and
|
|
182
|
+
* UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.
|
|
183
|
+
* @private
|
|
184
|
+
*/
|
|
185
|
+
this._contentDensityObserver = inject(ContentDensityObserver);
|
|
186
|
+
}
|
|
187
|
+
get element() {
|
|
188
|
+
return this.elementRef.nativeElement;
|
|
189
|
+
}
|
|
190
|
+
ngAfterViewInit() {
|
|
191
|
+
const wcElement = this.element;
|
|
192
|
+
const inputsToSync = [
|
|
193
|
+
'currentVersion',
|
|
194
|
+
'loading',
|
|
195
|
+
'promptDescription',
|
|
196
|
+
'totalVersions',
|
|
197
|
+
'accessibleDescription',
|
|
198
|
+
'accessibleDescriptionRef',
|
|
199
|
+
'accessibleName',
|
|
200
|
+
'accessibleNameRef',
|
|
201
|
+
'disabled',
|
|
202
|
+
'growing',
|
|
203
|
+
'growingMaxRows',
|
|
204
|
+
'maxlength',
|
|
205
|
+
'name',
|
|
206
|
+
'placeholder',
|
|
207
|
+
'readonly',
|
|
208
|
+
'required',
|
|
209
|
+
'rows',
|
|
210
|
+
'showExceededText',
|
|
211
|
+
'value',
|
|
212
|
+
'valueState',
|
|
213
|
+
];
|
|
214
|
+
// Synchronize inputs (properties)
|
|
215
|
+
for (const inputName of inputsToSync) {
|
|
216
|
+
// Find the corresponding camelCase signal property on the Angular component
|
|
217
|
+
const signalName = inputName.replace(/-./g, (x) => x[1].toUpperCase());
|
|
218
|
+
// Use the Injector to run the effect in the correct context
|
|
219
|
+
if (this[signalName] && typeof this[signalName] === 'function') {
|
|
220
|
+
runInInjectionContext(this.injector, () => {
|
|
221
|
+
effect(() => {
|
|
222
|
+
// Read the signal value
|
|
223
|
+
const value = this[signalName]();
|
|
224
|
+
if (wcElement) {
|
|
225
|
+
// Write the value to the Web Component's property
|
|
226
|
+
wcElement[inputName] = value;
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const outputsToSync = [
|
|
233
|
+
'ui5StopGeneration',
|
|
234
|
+
'ui5VersionChange',
|
|
235
|
+
'ui5Change',
|
|
236
|
+
'ui5Input',
|
|
237
|
+
'ui5Scroll',
|
|
238
|
+
'ui5Select',
|
|
239
|
+
];
|
|
240
|
+
// Synchronize outputs (events)
|
|
241
|
+
for (const outputName of outputsToSync) {
|
|
242
|
+
// Map Angular output name to UI5 web component event name
|
|
243
|
+
const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
|
|
244
|
+
// Ensure the output property exists and has an emit function before adding listener
|
|
245
|
+
if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
|
|
246
|
+
// Cast the listener to the correct type to satisfy TypeScript
|
|
247
|
+
wcElement.addEventListener(eventName, (e) => {
|
|
248
|
+
this[outputName].emit(e);
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TextArea, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: TextArea, isStandalone: true, selector: "ui5-ai-textarea, [ui5-ai-textarea]", inputs: { currentVersion: { classPropertyName: "currentVersion", publicName: "currentVersion", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, promptDescription: { classPropertyName: "promptDescription", publicName: "promptDescription", isSignal: true, isRequired: false, transformFunction: null }, totalVersions: { classPropertyName: "totalVersions", publicName: "totalVersions", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, growing: { classPropertyName: "growing", publicName: "growing", isSignal: true, isRequired: false, transformFunction: null }, growingMaxRows: { classPropertyName: "growingMaxRows", publicName: "growingMaxRows", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, showExceededText: { classPropertyName: "showExceededText", publicName: "showExceededText", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5StopGeneration: "ui5StopGeneration", ui5VersionChange: "ui5VersionChange", ui5Change: "ui5Change", ui5Input: "ui5Input", ui5Scroll: "ui5Scroll", ui5Select: "ui5Select" }, providers: [
|
|
255
|
+
contentDensityObserverProviders({
|
|
256
|
+
supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
|
|
257
|
+
}),
|
|
258
|
+
{
|
|
259
|
+
provide: CVA_CONFIG,
|
|
260
|
+
useValue: {
|
|
261
|
+
property: 'value',
|
|
262
|
+
events: ['change', 'input'],
|
|
263
|
+
transformValue: (v) => v || ''
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
], exportAs: ["ui5TextArea"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
267
|
+
}
|
|
268
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TextArea, decorators: [{
|
|
269
|
+
type: Component,
|
|
270
|
+
args: [{
|
|
271
|
+
standalone: true,
|
|
272
|
+
selector: 'ui5-ai-textarea, [ui5-ai-textarea]',
|
|
273
|
+
template: '<ng-content></ng-content>',
|
|
274
|
+
exportAs: 'ui5TextArea',
|
|
275
|
+
hostDirectives: [GenericControlValueAccessor],
|
|
276
|
+
providers: [
|
|
277
|
+
contentDensityObserverProviders({
|
|
278
|
+
supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
|
|
279
|
+
}),
|
|
280
|
+
{
|
|
281
|
+
provide: CVA_CONFIG,
|
|
282
|
+
useValue: {
|
|
283
|
+
property: 'value',
|
|
284
|
+
events: ['change', 'input'],
|
|
285
|
+
transformValue: (v) => v || ''
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
],
|
|
289
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
290
|
+
}]
|
|
291
|
+
}], propDecorators: { currentVersion: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentVersion", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], promptDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "promptDescription", required: false }] }], totalVersions: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalVersions", required: false }] }], accessibleDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibleDescription", required: false }] }], accessibleDescriptionRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibleDescriptionRef", required: false }] }], accessibleName: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibleName", required: false }] }], accessibleNameRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibleNameRef", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], growing: [{ type: i0.Input, args: [{ isSignal: true, alias: "growing", required: false }] }], growingMaxRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "growingMaxRows", required: false }] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], showExceededText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showExceededText", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueState: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueState", required: false }] }], ui5StopGeneration: [{ type: i0.Output, args: ["ui5StopGeneration"] }], ui5VersionChange: [{ type: i0.Output, args: ["ui5VersionChange"] }], ui5Change: [{ type: i0.Output, args: ["ui5Change"] }], ui5Input: [{ type: i0.Output, args: ["ui5Input"] }], ui5Scroll: [{ type: i0.Output, args: ["ui5Scroll"] }], ui5Select: [{ type: i0.Output, args: ["ui5Select"] }] } });
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Generated bundle index. Do not edit.
|
|
295
|
+
*/
|
|
296
|
+
|
|
297
|
+
export { TextArea };
|
|
298
|
+
//# sourceMappingURL=fundamental-ngx-ui5-webcomponents-ai-text-area.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-ai-text-area.mjs","sources":["../../../../libs/ui5-webcomponents-ai/text-area/index.ts","../../../../libs/ui5-webcomponents-ai/text-area/fundamental-ngx-ui5-webcomponents-ai-text-area.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents-ai/dist/TextArea.js';\nimport { default as _TextArea } from '@ui5/webcomponents-ai/dist/TextArea.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\nimport { GenericControlValueAccessor, CVA_CONFIG } from '@fundamental-ngx/ui5-webcomponents-ai/utils';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-ai-textarea, [ui5-ai-textarea]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5TextArea',\n hostDirectives: [GenericControlValueAccessor],\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n }),\n {\n provide: CVA_CONFIG,\n useValue: {\n property: 'value',\n events: ['change', 'input'],\n transformValue: (v) => v || ''\n }\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextArea implements AfterViewInit {\n\n /**\n * Indicates the index of the currently displayed version.\n */\n currentVersion = input<typeof _TextArea.prototype.currentVersion | undefined>(0);\n\n /**\n * Defines whether the `ui5-ai-textarea` is currently in a loading(processing) state.\n */\n loading = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the prompt description of the current action.\n */\n promptDescription = input<typeof _TextArea.prototype.promptDescription | undefined>(\"\");\n\n /**\n * Indicates the total number of result versions available.\n\nNotes:\nVersioning is hidden if the value is `0`\n */\n totalVersions = input<typeof _TextArea.prototype.totalVersions | undefined>(0);\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _TextArea.prototype.accessibleDescription | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that describe the textarea.\n */\n accessibleDescriptionRef = input<typeof _TextArea.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _TextArea.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the textarea.\n */\n accessibleNameRef = input<typeof _TextArea.prototype.accessibleNameRef | undefined>();\n\n /**\n * Indicates whether the user can interact with the component or not.\n\n**Note:** A disabled component is completely noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Enables the component to automatically grow and shrink dynamically with its content.\n */\n growing = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the maximum number of rows that the component can grow.\n */\n growingMaxRows = input<typeof _TextArea.prototype.growingMaxRows | undefined>(0);\n\n /**\n * Defines the maximum number of characters that the `value` can have.\n */\n maxlength = input<typeof _TextArea.prototype.maxlength | undefined>();\n\n /**\n * Determines the name by which the component will be identified upon submission in an HTML form.\n\n**Note:** This property is only applicable within the context of an HTML Form element.\n */\n name = input<typeof _TextArea.prototype.name | undefined>();\n\n /**\n * Defines a short hint intended to aid the user with data entry when the component has no value.\n */\n placeholder = input<typeof _TextArea.prototype.placeholder | undefined>();\n\n /**\n * Defines whether the component is read-only.\n\n**Note:** A read-only component is not editable,\nbut still provides visual feedback upon user interaction.\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the component is required.\n */\n required = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the number of visible text rows for the component.\n\n**Notes:**\n\n- If the `growing` property is enabled, this property defines the minimum rows to be displayed\nin the textarea.\n- The CSS `height` property wins over the `rows` property, if both are set.\n */\n rows = input<typeof _TextArea.prototype.rows | undefined>(0);\n\n /**\n * Determines whether the characters exceeding the maximum allowed character count are visible\nin the component.\n\nIf set to `false`, the user is not allowed to enter more characters than what is set in the\n`maxlength` property.\nIf set to `true` the characters exceeding the `maxlength` value are selected on\npaste and the counter below the component displays their number.\n */\n showExceededText = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the value of the component.\n */\n value = input<typeof _TextArea.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n\n**Note:** If `maxlength` property is set,\nthe component turns into \"Critical\" state once the characters exceeds the limit.\nIn this case, only the \"Negative\" state is considered and can be applied.\n */\n valueState = input<typeof _TextArea.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when the user requests to stop AI text generation.\n */\n ui5StopGeneration = output<UI5CustomEvent<_TextArea, 'stop-generation'>>();\n\n /**\n * Fired when the user clicks on version navigation buttons.\n */\n ui5VersionChange = output<UI5CustomEvent<_TextArea, 'version-change'>>();\n\n /**\n * Fired when the text has changed and the focus leaves the component.\n */\n ui5Change = output<UI5CustomEvent<_TextArea, 'change'>>();\n\n /**\n * Fired when the value of the component changes at each keystroke or when\nsomething is pasted.\n */\n ui5Input = output<UI5CustomEvent<_TextArea, 'input'>>();\n\n /**\n * Fired when textarea is scrolled.\n */\n ui5Scroll = output<UI5CustomEvent<_TextArea, 'scroll'>>();\n\n /**\n * Fired when some text has been selected.\n */\n ui5Select = output<UI5CustomEvent<_TextArea, 'select'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **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.\n * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\n \n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed if the component has\n`valueState` of type `Information`, `Critical` or `Negative`.\n *\n * @example\n * ```html\n * <ui5-ai-textarea>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-ai-textarea>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"menu\",\n \"description\": \"Defines a slot for `ui5-menu` integration. This slot allows you to pass a `ui5-menu` instance that will be associated with the assistant.\"\n },\n {\n \"name\": \"valueStateMessage\",\n \"description\": \"Defines the value state message that will be displayed as pop up under the component.\\nThe value state message slot should contain only one root element.\\n \\n**Note:** If not specified, a default text (in the respective language) will be displayed.\\n\\n**Note:** The `valueStateMessage` would be displayed if the component has\\n`valueState` of type `Information`, `Critical` or `Negative`.\",\n \"since\": \"1.0.0-rc.7\"\n }\n ];\n\n\n public elementRef: ElementRef<_TextArea> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _TextArea {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'currentVersion',\n 'loading',\n 'promptDescription',\n 'totalVersions',\n 'accessibleDescription',\n 'accessibleDescriptionRef',\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'growing',\n 'growingMaxRows',\n 'maxlength',\n 'name',\n 'placeholder',\n 'readonly',\n 'required',\n 'rows',\n 'showExceededText',\n 'value',\n 'valueState',\n ];\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: string) => x[1].toUpperCase());\n\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 \n const outputsToSync = [\n 'ui5StopGeneration',\n 'ui5VersionChange',\n 'ui5Change',\n 'ui5Input',\n 'ui5Scroll',\n 'ui5Select',\n ];\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\n this[outputName].emit(e as CustomEvent<any>);\n });\n }\n }\n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { WebcomponentsThemingProvider } from '@fundamental-ngx/ui5-webcomponents-base/theming';
|
|
4
|
+
|
|
5
|
+
class Ui5WebcomponentsAiThemingService extends WebcomponentsThemingProvider {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(() => import('@ui5/webcomponents-ai/dist/generated/json-imports/Themes.js'));
|
|
8
|
+
this.name = 'ui-5-webcomponents--ai-theming-service';
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: Ui5WebcomponentsAiThemingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: Ui5WebcomponentsAiThemingService, providedIn: 'root' }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: Ui5WebcomponentsAiThemingService, decorators: [{
|
|
14
|
+
type: Injectable,
|
|
15
|
+
args: [{ providedIn: 'root' }]
|
|
16
|
+
}], ctorParameters: () => [] });
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Generated bundle index. Do not edit.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export { Ui5WebcomponentsAiThemingService };
|
|
23
|
+
//# sourceMappingURL=fundamental-ngx-ui5-webcomponents-ai-theming.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-ai-theming.mjs","sources":["../../../../libs/ui5-webcomponents-ai/theming/index.ts","../../../../libs/ui5-webcomponents-ai/theming/fundamental-ngx-ui5-webcomponents-ai-theming.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { WebcomponentsThemingProvider } from '@fundamental-ngx/ui5-webcomponents-base/theming';\n\n@Injectable({ providedIn: 'root' })\nclass Ui5WebcomponentsAiThemingService extends WebcomponentsThemingProvider {\n name = 'ui-5-webcomponents--ai-theming-service';\n constructor() {\n super(\n () => import('@ui5/webcomponents-ai/dist/generated/json-imports/Themes.js'),\n );\n }\n}\n\nexport { Ui5WebcomponentsAiThemingService };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA,MACM,gCAAiC,SAAQ,4BAA4B,CAAA;AAEzE,IAAA,WAAA,GAAA;QACE,KAAK,CACH,MAAM,OAAO,6DAA6D,CAAC,CAC5E;QAJH,IAAA,CAAA,IAAI,GAAG,wCAAwC;IAK/C;8GANI,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,cADZ,MAAM,EAAA,CAAA,CAAA;;2FAC1B,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACHlC;;AAEG;;;;"}
|
|
@@ -0,0 +1,114 @@
|
|
|
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/ToolbarLabel.js';
|
|
4
|
+
import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
|
|
5
|
+
|
|
6
|
+
class ToolbarLabel {
|
|
7
|
+
constructor() {
|
|
8
|
+
/**
|
|
9
|
+
* Defines the text of the label.
|
|
10
|
+
*/
|
|
11
|
+
this.text = input("", ...(ngDevMode ? [{ debugName: "text" }] : []));
|
|
12
|
+
/**
|
|
13
|
+
* Property used to define the access of the item to the overflow Popover. If "NeverOverflow" option is set,
|
|
14
|
+
the item never goes in the Popover, if "AlwaysOverflow" - it never comes out of it.
|
|
15
|
+
*/
|
|
16
|
+
this.overflowPriority = input("Default", ...(ngDevMode ? [{ debugName: "overflowPriority" }] : []));
|
|
17
|
+
/**
|
|
18
|
+
* Defines if the toolbar overflow popup should close upon interaction with the item.
|
|
19
|
+
It will close by default.
|
|
20
|
+
*/
|
|
21
|
+
this.preventOverflowClosing = input(false, { ...(ngDevMode ? { debugName: "preventOverflowClosing" } : {}), transform: booleanAttribute }); // className is now passed
|
|
22
|
+
/**
|
|
23
|
+
* Available slots for content projection in this component.
|
|
24
|
+
*
|
|
25
|
+
* Slots allow you to insert custom content into predefined areas of the web component.
|
|
26
|
+
* Use the `slot` attribute on child elements to target specific slots.
|
|
27
|
+
*
|
|
28
|
+
* - **(default)**: Wrapped component slot.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```html
|
|
32
|
+
* <ui5-ai-toolbar-label>
|
|
33
|
+
* <div slot="header">Custom header content</div>
|
|
34
|
+
* <p>Default slot content</p>
|
|
35
|
+
* </ui5-ai-toolbar-label>
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @readonly
|
|
39
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
|
|
40
|
+
*/
|
|
41
|
+
this.slots = [
|
|
42
|
+
{
|
|
43
|
+
"name": "default",
|
|
44
|
+
"description": "Wrapped component slot.",
|
|
45
|
+
"since": "2.20.0"
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
this.elementRef = inject(ElementRef);
|
|
49
|
+
this.injector = inject(Injector);
|
|
50
|
+
/**
|
|
51
|
+
* Content density observer is injected to activate automatic CSS class and
|
|
52
|
+
* UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
this._contentDensityObserver = inject(ContentDensityObserver);
|
|
56
|
+
}
|
|
57
|
+
get element() {
|
|
58
|
+
return this.elementRef.nativeElement;
|
|
59
|
+
}
|
|
60
|
+
ngAfterViewInit() {
|
|
61
|
+
const wcElement = this.element;
|
|
62
|
+
const inputsToSync = [
|
|
63
|
+
'text',
|
|
64
|
+
'overflowPriority',
|
|
65
|
+
'preventOverflowClosing',
|
|
66
|
+
];
|
|
67
|
+
// Synchronize inputs (properties)
|
|
68
|
+
for (const inputName of inputsToSync) {
|
|
69
|
+
// Find the corresponding camelCase signal property on the Angular component
|
|
70
|
+
const signalName = inputName.replace(/-./g, (x) => x[1].toUpperCase());
|
|
71
|
+
// Use the Injector to run the effect in the correct context
|
|
72
|
+
if (this[signalName] && typeof this[signalName] === 'function') {
|
|
73
|
+
runInInjectionContext(this.injector, () => {
|
|
74
|
+
effect(() => {
|
|
75
|
+
// Read the signal value
|
|
76
|
+
const value = this[signalName]();
|
|
77
|
+
if (wcElement) {
|
|
78
|
+
// Write the value to the Web Component's property
|
|
79
|
+
wcElement[inputName] = value;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ToolbarLabel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: ToolbarLabel, isStandalone: true, selector: "ui5-ai-toolbar-label, [ui5-ai-toolbar-label]", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, overflowPriority: { classPropertyName: "overflowPriority", publicName: "overflowPriority", isSignal: true, isRequired: false, transformFunction: null }, preventOverflowClosing: { classPropertyName: "preventOverflowClosing", publicName: "preventOverflowClosing", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
88
|
+
contentDensityObserverProviders({
|
|
89
|
+
supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
|
|
90
|
+
})
|
|
91
|
+
], exportAs: ["ui5ToolbarLabel"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
92
|
+
}
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ToolbarLabel, decorators: [{
|
|
94
|
+
type: Component,
|
|
95
|
+
args: [{
|
|
96
|
+
standalone: true,
|
|
97
|
+
selector: 'ui5-ai-toolbar-label, [ui5-ai-toolbar-label]',
|
|
98
|
+
template: '<ng-content></ng-content>',
|
|
99
|
+
exportAs: 'ui5ToolbarLabel',
|
|
100
|
+
providers: [
|
|
101
|
+
contentDensityObserverProviders({
|
|
102
|
+
supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
|
|
103
|
+
})
|
|
104
|
+
],
|
|
105
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
106
|
+
}]
|
|
107
|
+
}], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }] } });
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Generated bundle index. Do not edit.
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
export { ToolbarLabel };
|
|
114
|
+
//# sourceMappingURL=fundamental-ngx-ui5-webcomponents-ai-toolbar-label.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-ai-toolbar-label.mjs","sources":["../../../../libs/ui5-webcomponents-ai/toolbar-label/index.ts","../../../../libs/ui5-webcomponents-ai/toolbar-label/fundamental-ngx-ui5-webcomponents-ai-toolbar-label.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents-ai/dist/ToolbarLabel.js';\nimport { default as _ToolbarLabel } from '@ui5/webcomponents-ai/dist/ToolbarLabel.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-ai-toolbar-label, [ui5-ai-toolbar-label]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarLabel',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarLabel implements AfterViewInit {\n\n /**\n * Defines the text of the label.\n */\n text = input<typeof _ToolbarLabel.prototype.text | undefined>(\"\");\n\n /**\n * Property used to define the access of the item to the overflow Popover. If \"NeverOverflow\" option is set,\nthe item never goes in the Popover, if \"AlwaysOverflow\" - it never comes out of it.\n */\n overflowPriority = input<typeof _ToolbarLabel.prototype.overflowPriority | undefined>(\"Default\");\n\n /**\n * Defines if the toolbar overflow popup should close upon interaction with the item.\nIt will close by default.\n */\n preventOverflowClosing = input(false, { transform: booleanAttribute }); // className is now passed\n\n\n\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Wrapped component slot.\n *\n * @example\n * ```html\n * <ui5-ai-toolbar-label>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-ai-toolbar-label>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"default\",\n \"description\": \"Wrapped component slot.\",\n \"since\": \"2.20.0\"\n }\n ];\n\n\n public elementRef: ElementRef<_ToolbarLabel> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _ToolbarLabel {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'text',\n 'overflowPriority',\n 'preventOverflowClosing',\n ];\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: string) => x[1].toUpperCase());\n\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 \n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|