@fundamental-ngx/ui5-webcomponents 0.65.0-rc.9 → 0.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar-badge.mjs +16 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar-badge.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-group.mjs +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-custom.mjs +4 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-custom.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group.mjs +3 -3
- package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-standard.mjs +4 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-standard.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-item.mjs +4 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.mjs +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-number-input.mjs +208 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-number-input.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-option-group.mjs +109 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-option-group.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-ui5-webcomponents-select.mjs +2 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-split-button.mjs +0 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-split-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-step-input.mjs +1 -11
- package/fesm2022/fundamental-ngx-ui5-webcomponents-step-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-group.mjs +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-list-item.mjs +4 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-button.mjs +39 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-item.mjs +24 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-select.mjs +24 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-separator.mjs +24 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-separator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-spacer.mjs +24 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-spacer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item-custom.mjs +4 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item-custom.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item.mjs +4 -2
- package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-ui5-webcomponents.mjs +482 -45
- package/fesm2022/fundamental-ngx-ui5-webcomponents.mjs.map +1 -1
- package/package.json +12 -4
- package/types/fundamental-ngx-ui5-webcomponents-avatar-badge.d.ts +13 -1
- package/types/fundamental-ngx-ui5-webcomponents-combo-box-item-group.d.ts +1 -1
- package/types/fundamental-ngx-ui5-webcomponents-list-item-custom.d.ts +4 -2
- package/types/fundamental-ngx-ui5-webcomponents-list-item-group.d.ts +2 -2
- package/types/fundamental-ngx-ui5-webcomponents-list-item-standard.d.ts +4 -2
- package/types/fundamental-ngx-ui5-webcomponents-menu-item.d.ts +4 -2
- package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.d.ts +1 -1
- package/types/fundamental-ngx-ui5-webcomponents-number-input.d.ts +110 -0
- package/types/fundamental-ngx-ui5-webcomponents-option-group.d.ts +49 -0
- package/types/fundamental-ngx-ui5-webcomponents-select.d.ts +1 -0
- package/types/fundamental-ngx-ui5-webcomponents-split-button.d.ts +0 -2
- package/types/fundamental-ngx-ui5-webcomponents-step-input.d.ts +0 -10
- package/types/fundamental-ngx-ui5-webcomponents-suggestion-item-group.d.ts +1 -1
- package/types/fundamental-ngx-ui5-webcomponents-suggestion-list-item.d.ts +4 -2
- package/types/fundamental-ngx-ui5-webcomponents-toolbar-button.d.ts +32 -1
- package/types/fundamental-ngx-ui5-webcomponents-toolbar-item.d.ts +21 -1
- package/types/fundamental-ngx-ui5-webcomponents-toolbar-select.d.ts +21 -1
- package/types/fundamental-ngx-ui5-webcomponents-toolbar-separator.d.ts +21 -1
- package/types/fundamental-ngx-ui5-webcomponents-toolbar-spacer.d.ts +21 -1
- package/types/fundamental-ngx-ui5-webcomponents-tree-item-custom.d.ts +4 -2
- package/types/fundamental-ngx-ui5-webcomponents-tree-item.d.ts +4 -2
- package/types/fundamental-ngx-ui5-webcomponents.d.ts +310 -36
|
@@ -5,6 +5,27 @@ import { ContentDensityObserver, contentDensityObserverProviders, ContentDensity
|
|
|
5
5
|
|
|
6
6
|
class ToolbarItem {
|
|
7
7
|
constructor() {
|
|
8
|
+
/**
|
|
9
|
+
* Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same
|
|
10
|
+
non-empty string overflow as one atomic unit: either all visible in the bar, or all
|
|
11
|
+
in the overflow popover, never split. The empty string (the default) means "no group" —
|
|
12
|
+
the item participates in overflow independently.
|
|
13
|
+
|
|
14
|
+
The tag is a free-form, case-sensitive string label (e.g. `"filters"`, `"search"`). It is
|
|
15
|
+
layout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a
|
|
16
|
+
non-empty group must have `overflowPriority = "Default"`; `AlwaysOverflow` and
|
|
17
|
+
`NeverOverflow` are forbidden inside a group — setting one of those on a grouped item
|
|
18
|
+
emits a one-shot `console.warn` and the item's priority is treated as `Default` for
|
|
19
|
+
the layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting
|
|
20
|
+
a non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's
|
|
21
|
+
existing overflow behavior is unchanged.
|
|
22
|
+
|
|
23
|
+
The visible bar always preserves slot order — ungrouped items between group members
|
|
24
|
+
keep their slot positions and the toolbar never reorders DOM children. In the popover
|
|
25
|
+
group members appear adjacent in slot order.
|
|
26
|
+
*/
|
|
27
|
+
this.overflowGroup = input(/* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [undefined, { debugName: "overflowGroup" }] : /* istanbul ignore next */ []));
|
|
8
29
|
/**
|
|
9
30
|
* Property used to define the access of the item to the overflow Popover. If "NeverOverflow" option is set,
|
|
10
31
|
the item never goes in the Popover, if "AlwaysOverflow" - it never comes out of it.
|
|
@@ -57,6 +78,7 @@ class ToolbarItem {
|
|
|
57
78
|
ngAfterViewInit() {
|
|
58
79
|
const wcElement = this.element;
|
|
59
80
|
const inputsToSync = [
|
|
81
|
+
'overflowGroup',
|
|
60
82
|
'overflowPriority',
|
|
61
83
|
'preventOverflowClosing',
|
|
62
84
|
];
|
|
@@ -85,7 +107,7 @@ class ToolbarItem {
|
|
|
85
107
|
}
|
|
86
108
|
}
|
|
87
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolbarItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarItem, isStandalone: true, selector: "ui5-toolbar-item, [ui5-toolbar-item]", inputs: { overflowPriority: { classPropertyName: "overflowPriority", publicName: "overflowPriority", isSignal: true, isRequired: false, transformFunction: null }, preventOverflowClosing: { classPropertyName: "preventOverflowClosing", publicName: "preventOverflowClosing", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarItem, isStandalone: true, selector: "ui5-toolbar-item, [ui5-toolbar-item]", inputs: { overflowGroup: { classPropertyName: "overflowGroup", publicName: "overflowGroup", 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: [
|
|
89
111
|
contentDensityObserverProviders({
|
|
90
112
|
supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
|
|
91
113
|
})
|
|
@@ -105,7 +127,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
105
127
|
],
|
|
106
128
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
107
129
|
}]
|
|
108
|
-
}], propDecorators: { overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }] } });
|
|
130
|
+
}], propDecorators: { overflowGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowGroup", required: false }] }], overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }] } });
|
|
109
131
|
|
|
110
132
|
/**
|
|
111
133
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-toolbar-item.mjs","sources":["../../../../libs/ui5-webcomponents/toolbar-item/index.ts","../../../../libs/ui5-webcomponents/toolbar-item/fundamental-ngx-ui5-webcomponents-toolbar-item.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/dist/ToolbarItem.js';\nimport { default as _ToolbarItem } from '@ui5/webcomponents/dist/ToolbarItem.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-toolbar-item, [ui5-toolbar-item]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarItem',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarItem implements AfterViewInit {\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 _ToolbarItem.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-toolbar-item>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-toolbar-item>\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<_ToolbarItem> = 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(): _ToolbarItem {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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":";;;;;MAwCa,WAAW,CAAA;AAZxB,IAAA,WAAA,GAAA;AAcE;;;AAGG;QACH,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAA6D,SAAS;6FAAC;AAE/F;;;AAGG;QACH,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG,CAAC;AAKvE;;;;;;;;;;;;;;;;;;AAkBG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG;AACb,YAAA;AACI,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,aAAa,EAAE,yBAAyB;AACxC,gBAAA,OAAO,EAAE;AACZ;SACJ;AAGM,QAAA,IAAA,CAAA,UAAU,GAA6B,MAAM,CAAC,UAAU,CAAC;AACzD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-toolbar-item.mjs","sources":["../../../../libs/ui5-webcomponents/toolbar-item/index.ts","../../../../libs/ui5-webcomponents/toolbar-item/fundamental-ngx-ui5-webcomponents-toolbar-item.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/dist/ToolbarItem.js';\nimport { default as _ToolbarItem } from '@ui5/webcomponents/dist/ToolbarItem.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-toolbar-item, [ui5-toolbar-item]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarItem',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarItem implements AfterViewInit {\n\n /**\n * Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same\nnon-empty string overflow as one atomic unit: either all visible in the bar, or all\nin the overflow popover, never split. The empty string (the default) means \"no group\" —\nthe item participates in overflow independently.\n\nThe tag is a free-form, case-sensitive string label (e.g. `\"filters\"`, `\"search\"`). It is\nlayout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a\nnon-empty group must have `overflowPriority = \"Default\"`; `AlwaysOverflow` and\n`NeverOverflow` are forbidden inside a group — setting one of those on a grouped item\nemits a one-shot `console.warn` and the item's priority is treated as `Default` for\nthe layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting\na non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's\nexisting overflow behavior is unchanged.\n\nThe visible bar always preserves slot order — ungrouped items between group members\nkeep their slot positions and the toolbar never reorders DOM children. In the popover\ngroup members appear adjacent in slot order.\n */\n overflowGroup = input<typeof _ToolbarItem.prototype.overflowGroup | 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 _ToolbarItem.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-toolbar-item>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-toolbar-item>\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<_ToolbarItem> = 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(): _ToolbarItem {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'overflowGroup',\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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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"}
|
|
@@ -21,6 +21,27 @@ class ToolbarSelect {
|
|
|
21
21
|
**Note:** A disabled component is noninteractive.
|
|
22
22
|
*/
|
|
23
23
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
24
|
+
/**
|
|
25
|
+
* Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same
|
|
26
|
+
non-empty string overflow as one atomic unit: either all visible in the bar, or all
|
|
27
|
+
in the overflow popover, never split. The empty string (the default) means "no group" —
|
|
28
|
+
the item participates in overflow independently.
|
|
29
|
+
|
|
30
|
+
The tag is a free-form, case-sensitive string label (e.g. `"filters"`, `"search"`). It is
|
|
31
|
+
layout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a
|
|
32
|
+
non-empty group must have `overflowPriority = "Default"`; `AlwaysOverflow` and
|
|
33
|
+
`NeverOverflow` are forbidden inside a group — setting one of those on a grouped item
|
|
34
|
+
emits a one-shot `console.warn` and the item's priority is treated as `Default` for
|
|
35
|
+
the layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting
|
|
36
|
+
a non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's
|
|
37
|
+
existing overflow behavior is unchanged.
|
|
38
|
+
|
|
39
|
+
The visible bar always preserves slot order — ungrouped items between group members
|
|
40
|
+
keep their slot positions and the toolbar never reorders DOM children. In the popover
|
|
41
|
+
group members appear adjacent in slot order.
|
|
42
|
+
*/
|
|
43
|
+
this.overflowGroup = input(/* @ts-ignore */
|
|
44
|
+
...(ngDevMode ? [undefined, { debugName: "overflowGroup" }] : /* istanbul ignore next */ []));
|
|
24
45
|
/**
|
|
25
46
|
* Property used to define the access of the item to the overflow Popover. If "NeverOverflow" option is set,
|
|
26
47
|
the item never goes in the Popover, if "AlwaysOverflow" - it never comes out of it.
|
|
@@ -117,6 +138,7 @@ class ToolbarSelect {
|
|
|
117
138
|
'accessibleName',
|
|
118
139
|
'accessibleNameRef',
|
|
119
140
|
'disabled',
|
|
141
|
+
'overflowGroup',
|
|
120
142
|
'overflowPriority',
|
|
121
143
|
'preventOverflowClosing',
|
|
122
144
|
'value',
|
|
@@ -169,7 +191,7 @@ class ToolbarSelect {
|
|
|
169
191
|
this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
|
|
170
192
|
}
|
|
171
193
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolbarSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
172
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarSelect, isStandalone: true, selector: "ui5-toolbar-select, [ui5-toolbar-select]", inputs: { 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 }, overflowPriority: { classPropertyName: "overflowPriority", publicName: "overflowPriority", isSignal: true, isRequired: false, transformFunction: null }, preventOverflowClosing: { classPropertyName: "preventOverflowClosing", publicName: "preventOverflowClosing", 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 }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Open: "ui5Open" }, providers: [
|
|
194
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarSelect, isStandalone: true, selector: "ui5-toolbar-select, [ui5-toolbar-select]", inputs: { 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 }, overflowGroup: { classPropertyName: "overflowGroup", publicName: "overflowGroup", 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 }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Open: "ui5Open" }, providers: [
|
|
173
195
|
contentDensityObserverProviders({
|
|
174
196
|
supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
|
|
175
197
|
})
|
|
@@ -189,7 +211,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
189
211
|
],
|
|
190
212
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
191
213
|
}]
|
|
192
|
-
}], propDecorators: { 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 }] }], overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueState: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueState", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], ui5Change: [{ type: i0.Output, args: ["ui5Change"] }], ui5Close: [{ type: i0.Output, args: ["ui5Close"] }], ui5Open: [{ type: i0.Output, args: ["ui5Open"] }] } });
|
|
214
|
+
}], propDecorators: { 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 }] }], overflowGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowGroup", required: false }] }], overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueState: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueState", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], ui5Change: [{ type: i0.Output, args: ["ui5Change"] }], ui5Close: [{ type: i0.Output, args: ["ui5Close"] }], ui5Open: [{ type: i0.Output, args: ["ui5Open"] }] } });
|
|
193
215
|
|
|
194
216
|
/**
|
|
195
217
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-toolbar-select.mjs","sources":["../../../../libs/ui5-webcomponents/toolbar-select/index.ts","../../../../libs/ui5-webcomponents/toolbar-select/fundamental-ngx-ui5-webcomponents-toolbar-select.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 DestroyRef\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/ToolbarSelect.js';\nimport { default as _ToolbarSelect } from '@ui5/webcomponents/dist/ToolbarSelect.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-toolbar-select, [ui5-toolbar-select]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarSelect',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarSelect implements AfterViewInit {\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _ToolbarSelect.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the select.\n */\n accessibleNameRef = input<typeof _ToolbarSelect.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\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 _ToolbarSelect.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 });\n\n /**\n * Defines the value of the component:\n */\n value = input<typeof _ToolbarSelect.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _ToolbarSelect.prototype.valueState | undefined>(\"None\");\n\n /**\n * Defines the width of the select.\n\n**Note:** all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n */\n width = input<typeof _ToolbarSelect.prototype.width | undefined>(); // className is now passed\n\n\n\n /**\n * Fired when the selected option changes.\n */\n ui5Change = output<UI5CustomEvent<_ToolbarSelect, 'change'>>();\n\n /**\n * Fired after the component's dropdown menu closes.\n */\n ui5Close = output<UI5CustomEvent<_ToolbarSelect, 'close'>>();\n\n /**\n * Fired after the component's dropdown menu opens.\n */\n ui5Open = output<UI5CustomEvent<_ToolbarSelect, 'open'>>();\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 component options.\n\n**Note:** Only one selected option is allowed.\nIf more than one option is defined as selected, the last one would be considered as the selected one.\n\n**Note:** Use the `ui5-toolbar-select-option` component to define the desired options.\n * - **label**: Defines the HTML element that will be displayed in the component input part,\nrepresenting the selected option.\n *\n * @example\n * ```html\n * <ui5-toolbar-select>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-toolbar-select>\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 component options.\\n\\n**Note:** Only one selected option is allowed.\\nIf more than one option is defined as selected, the last one would be considered as the selected one.\\n\\n**Note:** Use the `ui5-toolbar-select-option` component to define the desired options.\"\n },\n {\n \"name\": \"label\",\n \"description\": \"Defines the HTML element that will be displayed in the component input part,\\nrepresenting the selected option.\",\n \"since\": \"2.15.0\"\n }\n ];\n\n\n public elementRef: ElementRef<_ToolbarSelect> = 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 private readonly _destroyRef = inject(DestroyRef);\n\n get element(): _ToolbarSelect {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'overflowPriority',\n 'preventOverflowClosing',\n 'value',\n 'valueState',\n 'width',\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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 'ui5Close',\n 'ui5Open',\n ];\n \n // Synchronize outputs (events)\n const _listeners: Array<() => void> = [];\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 const listener = (e: Event): void => {\n\n this[outputName].emit(e as CustomEvent<any>);\n };\n wcElement.addEventListener(eventName, listener);\n _listeners.push(() => wcElement.removeEventListener(eventName, listener));\n }\n }\n this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));\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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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-toolbar-select.mjs","sources":["../../../../libs/ui5-webcomponents/toolbar-select/index.ts","../../../../libs/ui5-webcomponents/toolbar-select/fundamental-ngx-ui5-webcomponents-toolbar-select.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 DestroyRef\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/ToolbarSelect.js';\nimport { default as _ToolbarSelect } from '@ui5/webcomponents/dist/ToolbarSelect.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-toolbar-select, [ui5-toolbar-select]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarSelect',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarSelect implements AfterViewInit {\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _ToolbarSelect.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the select.\n */\n accessibleNameRef = input<typeof _ToolbarSelect.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same\nnon-empty string overflow as one atomic unit: either all visible in the bar, or all\nin the overflow popover, never split. The empty string (the default) means \"no group\" —\nthe item participates in overflow independently.\n\nThe tag is a free-form, case-sensitive string label (e.g. `\"filters\"`, `\"search\"`). It is\nlayout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a\nnon-empty group must have `overflowPriority = \"Default\"`; `AlwaysOverflow` and\n`NeverOverflow` are forbidden inside a group — setting one of those on a grouped item\nemits a one-shot `console.warn` and the item's priority is treated as `Default` for\nthe layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting\na non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's\nexisting overflow behavior is unchanged.\n\nThe visible bar always preserves slot order — ungrouped items between group members\nkeep their slot positions and the toolbar never reorders DOM children. In the popover\ngroup members appear adjacent in slot order.\n */\n overflowGroup = input<typeof _ToolbarSelect.prototype.overflowGroup | 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 _ToolbarSelect.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 });\n\n /**\n * Defines the value of the component:\n */\n value = input<typeof _ToolbarSelect.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _ToolbarSelect.prototype.valueState | undefined>(\"None\");\n\n /**\n * Defines the width of the select.\n\n**Note:** all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n */\n width = input<typeof _ToolbarSelect.prototype.width | undefined>(); // className is now passed\n\n\n\n /**\n * Fired when the selected option changes.\n */\n ui5Change = output<UI5CustomEvent<_ToolbarSelect, 'change'>>();\n\n /**\n * Fired after the component's dropdown menu closes.\n */\n ui5Close = output<UI5CustomEvent<_ToolbarSelect, 'close'>>();\n\n /**\n * Fired after the component's dropdown menu opens.\n */\n ui5Open = output<UI5CustomEvent<_ToolbarSelect, 'open'>>();\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 component options.\n\n**Note:** Only one selected option is allowed.\nIf more than one option is defined as selected, the last one would be considered as the selected one.\n\n**Note:** Use the `ui5-toolbar-select-option` component to define the desired options.\n * - **label**: Defines the HTML element that will be displayed in the component input part,\nrepresenting the selected option.\n *\n * @example\n * ```html\n * <ui5-toolbar-select>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-toolbar-select>\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 component options.\\n\\n**Note:** Only one selected option is allowed.\\nIf more than one option is defined as selected, the last one would be considered as the selected one.\\n\\n**Note:** Use the `ui5-toolbar-select-option` component to define the desired options.\"\n },\n {\n \"name\": \"label\",\n \"description\": \"Defines the HTML element that will be displayed in the component input part,\\nrepresenting the selected option.\",\n \"since\": \"2.15.0\"\n }\n ];\n\n\n public elementRef: ElementRef<_ToolbarSelect> = 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 private readonly _destroyRef = inject(DestroyRef);\n\n get element(): _ToolbarSelect {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'overflowGroup',\n 'overflowPriority',\n 'preventOverflowClosing',\n 'value',\n 'valueState',\n 'width',\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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 'ui5Close',\n 'ui5Open',\n ];\n \n // Synchronize outputs (events)\n const _listeners: Array<() => void> = [];\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 const listener = (e: Event): void => {\n\n this[outputName].emit(e as CustomEvent<any>);\n };\n wcElement.addEventListener(eventName, listener);\n _listeners.push(() => wcElement.removeEventListener(eventName, listener));\n }\n }\n this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));\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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"}
|
|
@@ -5,6 +5,27 @@ import { ContentDensityObserver, contentDensityObserverProviders, ContentDensity
|
|
|
5
5
|
|
|
6
6
|
class ToolbarSeparator {
|
|
7
7
|
constructor() {
|
|
8
|
+
/**
|
|
9
|
+
* Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same
|
|
10
|
+
non-empty string overflow as one atomic unit: either all visible in the bar, or all
|
|
11
|
+
in the overflow popover, never split. The empty string (the default) means "no group" —
|
|
12
|
+
the item participates in overflow independently.
|
|
13
|
+
|
|
14
|
+
The tag is a free-form, case-sensitive string label (e.g. `"filters"`, `"search"`). It is
|
|
15
|
+
layout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a
|
|
16
|
+
non-empty group must have `overflowPriority = "Default"`; `AlwaysOverflow` and
|
|
17
|
+
`NeverOverflow` are forbidden inside a group — setting one of those on a grouped item
|
|
18
|
+
emits a one-shot `console.warn` and the item's priority is treated as `Default` for
|
|
19
|
+
the layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting
|
|
20
|
+
a non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's
|
|
21
|
+
existing overflow behavior is unchanged.
|
|
22
|
+
|
|
23
|
+
The visible bar always preserves slot order — ungrouped items between group members
|
|
24
|
+
keep their slot positions and the toolbar never reorders DOM children. In the popover
|
|
25
|
+
group members appear adjacent in slot order.
|
|
26
|
+
*/
|
|
27
|
+
this.overflowGroup = input(/* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [undefined, { debugName: "overflowGroup" }] : /* istanbul ignore next */ []));
|
|
8
29
|
/**
|
|
9
30
|
* Property used to define the access of the item to the overflow Popover. If "NeverOverflow" option is set,
|
|
10
31
|
the item never goes in the Popover, if "AlwaysOverflow" - it never comes out of it.
|
|
@@ -31,6 +52,7 @@ class ToolbarSeparator {
|
|
|
31
52
|
ngAfterViewInit() {
|
|
32
53
|
const wcElement = this.element;
|
|
33
54
|
const inputsToSync = [
|
|
55
|
+
'overflowGroup',
|
|
34
56
|
'overflowPriority',
|
|
35
57
|
'preventOverflowClosing',
|
|
36
58
|
];
|
|
@@ -59,7 +81,7 @@ class ToolbarSeparator {
|
|
|
59
81
|
}
|
|
60
82
|
}
|
|
61
83
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolbarSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarSeparator, isStandalone: true, selector: "ui5-toolbar-separator, [ui5-toolbar-separator]", inputs: { overflowPriority: { classPropertyName: "overflowPriority", publicName: "overflowPriority", isSignal: true, isRequired: false, transformFunction: null }, preventOverflowClosing: { classPropertyName: "preventOverflowClosing", publicName: "preventOverflowClosing", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarSeparator, isStandalone: true, selector: "ui5-toolbar-separator, [ui5-toolbar-separator]", inputs: { overflowGroup: { classPropertyName: "overflowGroup", publicName: "overflowGroup", 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: [
|
|
63
85
|
contentDensityObserverProviders({
|
|
64
86
|
supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
|
|
65
87
|
})
|
|
@@ -79,7 +101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
79
101
|
],
|
|
80
102
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
81
103
|
}]
|
|
82
|
-
}], propDecorators: { overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }] } });
|
|
104
|
+
}], propDecorators: { overflowGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowGroup", required: false }] }], overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }] } });
|
|
83
105
|
|
|
84
106
|
/**
|
|
85
107
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-toolbar-separator.mjs","sources":["../../../../libs/ui5-webcomponents/toolbar-separator/index.ts","../../../../libs/ui5-webcomponents/toolbar-separator/fundamental-ngx-ui5-webcomponents-toolbar-separator.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/dist/ToolbarSeparator.js';\nimport { default as _ToolbarSeparator } from '@ui5/webcomponents/dist/ToolbarSeparator.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-toolbar-separator, [ui5-toolbar-separator]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarSeparator',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarSeparator implements AfterViewInit {\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 _ToolbarSeparator.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 public elementRef: ElementRef<_ToolbarSeparator> = 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(): _ToolbarSeparator {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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":";;;;;MAwCa,gBAAgB,CAAA;AAZ7B,IAAA,WAAA,GAAA;AAcE;;;AAGG;QACH,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAkE,SAAS;6FAAC;AAEpG;;;AAGG;QACH,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG,CAAC;AAMhE,QAAA,IAAA,CAAA,UAAU,GAAkC,MAAM,CAAC,UAAU,CAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-toolbar-separator.mjs","sources":["../../../../libs/ui5-webcomponents/toolbar-separator/index.ts","../../../../libs/ui5-webcomponents/toolbar-separator/fundamental-ngx-ui5-webcomponents-toolbar-separator.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/dist/ToolbarSeparator.js';\nimport { default as _ToolbarSeparator } from '@ui5/webcomponents/dist/ToolbarSeparator.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-toolbar-separator, [ui5-toolbar-separator]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarSeparator',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarSeparator implements AfterViewInit {\n\n /**\n * Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same\nnon-empty string overflow as one atomic unit: either all visible in the bar, or all\nin the overflow popover, never split. The empty string (the default) means \"no group\" —\nthe item participates in overflow independently.\n\nThe tag is a free-form, case-sensitive string label (e.g. `\"filters\"`, `\"search\"`). It is\nlayout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a\nnon-empty group must have `overflowPriority = \"Default\"`; `AlwaysOverflow` and\n`NeverOverflow` are forbidden inside a group — setting one of those on a grouped item\nemits a one-shot `console.warn` and the item's priority is treated as `Default` for\nthe layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting\na non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's\nexisting overflow behavior is unchanged.\n\nThe visible bar always preserves slot order — ungrouped items between group members\nkeep their slot positions and the toolbar never reorders DOM children. In the popover\ngroup members appear adjacent in slot order.\n */\n overflowGroup = input<typeof _ToolbarSeparator.prototype.overflowGroup | 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 _ToolbarSeparator.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 public elementRef: ElementRef<_ToolbarSeparator> = 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(): _ToolbarSeparator {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'overflowGroup',\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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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"}
|
|
@@ -5,6 +5,27 @@ import { ContentDensityObserver, contentDensityObserverProviders, ContentDensity
|
|
|
5
5
|
|
|
6
6
|
class ToolbarSpacer {
|
|
7
7
|
constructor() {
|
|
8
|
+
/**
|
|
9
|
+
* Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same
|
|
10
|
+
non-empty string overflow as one atomic unit: either all visible in the bar, or all
|
|
11
|
+
in the overflow popover, never split. The empty string (the default) means "no group" —
|
|
12
|
+
the item participates in overflow independently.
|
|
13
|
+
|
|
14
|
+
The tag is a free-form, case-sensitive string label (e.g. `"filters"`, `"search"`). It is
|
|
15
|
+
layout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a
|
|
16
|
+
non-empty group must have `overflowPriority = "Default"`; `AlwaysOverflow` and
|
|
17
|
+
`NeverOverflow` are forbidden inside a group — setting one of those on a grouped item
|
|
18
|
+
emits a one-shot `console.warn` and the item's priority is treated as `Default` for
|
|
19
|
+
the layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting
|
|
20
|
+
a non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's
|
|
21
|
+
existing overflow behavior is unchanged.
|
|
22
|
+
|
|
23
|
+
The visible bar always preserves slot order — ungrouped items between group members
|
|
24
|
+
keep their slot positions and the toolbar never reorders DOM children. In the popover
|
|
25
|
+
group members appear adjacent in slot order.
|
|
26
|
+
*/
|
|
27
|
+
this.overflowGroup = input(/* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [undefined, { debugName: "overflowGroup" }] : /* istanbul ignore next */ []));
|
|
8
29
|
/**
|
|
9
30
|
* Property used to define the access of the item to the overflow Popover. If "NeverOverflow" option is set,
|
|
10
31
|
the item never goes in the Popover, if "AlwaysOverflow" - it never comes out of it.
|
|
@@ -38,6 +59,7 @@ class ToolbarSpacer {
|
|
|
38
59
|
ngAfterViewInit() {
|
|
39
60
|
const wcElement = this.element;
|
|
40
61
|
const inputsToSync = [
|
|
62
|
+
'overflowGroup',
|
|
41
63
|
'overflowPriority',
|
|
42
64
|
'preventOverflowClosing',
|
|
43
65
|
'width',
|
|
@@ -67,7 +89,7 @@ class ToolbarSpacer {
|
|
|
67
89
|
}
|
|
68
90
|
}
|
|
69
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolbarSpacer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarSpacer, isStandalone: true, selector: "ui5-toolbar-spacer, [ui5-toolbar-spacer]", inputs: { overflowPriority: { classPropertyName: "overflowPriority", publicName: "overflowPriority", isSignal: true, isRequired: false, transformFunction: null }, preventOverflowClosing: { classPropertyName: "preventOverflowClosing", publicName: "preventOverflowClosing", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarSpacer, isStandalone: true, selector: "ui5-toolbar-spacer, [ui5-toolbar-spacer]", inputs: { overflowGroup: { classPropertyName: "overflowGroup", publicName: "overflowGroup", 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 }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
71
93
|
contentDensityObserverProviders({
|
|
72
94
|
supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
|
|
73
95
|
})
|
|
@@ -87,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
87
109
|
],
|
|
88
110
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
89
111
|
}]
|
|
90
|
-
}], propDecorators: { overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }] } });
|
|
112
|
+
}], propDecorators: { overflowGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowGroup", required: false }] }], overflowPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowPriority", required: false }] }], preventOverflowClosing: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventOverflowClosing", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }] } });
|
|
91
113
|
|
|
92
114
|
/**
|
|
93
115
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-toolbar-spacer.mjs","sources":["../../../../libs/ui5-webcomponents/toolbar-spacer/index.ts","../../../../libs/ui5-webcomponents/toolbar-spacer/fundamental-ngx-ui5-webcomponents-toolbar-spacer.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/dist/ToolbarSpacer.js';\nimport { default as _ToolbarSpacer } from '@ui5/webcomponents/dist/ToolbarSpacer.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-toolbar-spacer, [ui5-toolbar-spacer]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarSpacer',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarSpacer implements AfterViewInit {\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 _ToolbarSpacer.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 });\n\n /**\n * Defines the width of the spacer.\n\n**Note:** all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n */\n width = input<typeof _ToolbarSpacer.prototype.width | undefined>(); // className is now passed\n\n\n\n\n\n public elementRef: ElementRef<_ToolbarSpacer> = 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(): _ToolbarSpacer {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'overflowPriority',\n 'preventOverflowClosing',\n 'width',\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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":";;;;;MAwCa,aAAa,CAAA;AAZ1B,IAAA,WAAA,GAAA;AAcE;;;AAGG;QACH,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAA+D,SAAS;6FAAC;AAEjG;;;AAGG;QACH,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAC,KAAK,8FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEtE;;;;AAIG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;AAAqD,QAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAM5D,QAAA,IAAA,CAAA,UAAU,GAA+B,MAAM,CAAC,UAAU,CAAC;AAC3D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-toolbar-spacer.mjs","sources":["../../../../libs/ui5-webcomponents/toolbar-spacer/index.ts","../../../../libs/ui5-webcomponents/toolbar-spacer/fundamental-ngx-ui5-webcomponents-toolbar-spacer.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/dist/ToolbarSpacer.js';\nimport { default as _ToolbarSpacer } from '@ui5/webcomponents/dist/ToolbarSpacer.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-toolbar-spacer, [ui5-toolbar-spacer]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ToolbarSpacer',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarSpacer implements AfterViewInit {\n\n /**\n * Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same\nnon-empty string overflow as one atomic unit: either all visible in the bar, or all\nin the overflow popover, never split. The empty string (the default) means \"no group\" —\nthe item participates in overflow independently.\n\nThe tag is a free-form, case-sensitive string label (e.g. `\"filters\"`, `\"search\"`). It is\nlayout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a\nnon-empty group must have `overflowPriority = \"Default\"`; `AlwaysOverflow` and\n`NeverOverflow` are forbidden inside a group — setting one of those on a grouped item\nemits a one-shot `console.warn` and the item's priority is treated as `Default` for\nthe layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting\na non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's\nexisting overflow behavior is unchanged.\n\nThe visible bar always preserves slot order — ungrouped items between group members\nkeep their slot positions and the toolbar never reorders DOM children. In the popover\ngroup members appear adjacent in slot order.\n */\n overflowGroup = input<typeof _ToolbarSpacer.prototype.overflowGroup | 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 _ToolbarSpacer.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 });\n\n /**\n * Defines the width of the spacer.\n\n**Note:** all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n */\n width = input<typeof _ToolbarSpacer.prototype.width | undefined>(); // className is now passed\n\n\n\n\n\n public elementRef: ElementRef<_ToolbarSpacer> = 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(): _ToolbarSpacer {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'overflowGroup',\n 'overflowPriority',\n 'preventOverflowClosing',\n 'width',\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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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"}
|
|
@@ -104,8 +104,10 @@ class TreeItemCustom {
|
|
|
104
104
|
**Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
|
|
105
105
|
while with type `Inactive`, `InactiveSelectable` and `Detail` - will not.
|
|
106
106
|
|
|
107
|
-
**Note:** `InactiveSelectable` behaves like `Inactive`
|
|
108
|
-
|
|
107
|
+
**Note:** `InactiveSelectable` behaves like `Inactive` (no active press/hover feedback and the
|
|
108
|
+
`item-click` event is not fired), but the item can still be selected. Clicking the item body,
|
|
109
|
+
pressing Space/Enter, or interacting with the selection component (checkbox in Multi mode, radio
|
|
110
|
+
button in Single modes) toggles the selection when the list has a selection mode.
|
|
109
111
|
*/
|
|
110
112
|
this.type = input("Active", /* @ts-ignore */
|
|
111
113
|
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ [])); // className is now passed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-tree-item-custom.mjs","sources":["../../../../libs/ui5-webcomponents/tree-item-custom/index.ts","../../../../libs/ui5-webcomponents/tree-item-custom/fundamental-ngx-ui5-webcomponents-tree-item-custom.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 DestroyRef\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/TreeItemCustom.js';\nimport { default as _TreeItemCustom } from '@ui5/webcomponents/dist/TreeItemCustom.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { ListItemAccessibilityAttributes } from '@ui5/webcomponents/dist/ListItem.js';\nimport { default as ListItemAccessibleRole } from '@ui5/webcomponents/dist/types/ListItemAccessibleRole.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\nimport { default as Highlight } from '@ui5/webcomponents/dist/types/Highlight.js';\nimport { default as ListItemType } from '@ui5/webcomponents/dist/types/ListItemType.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-tree-item-custom, [ui5-tree-item-custom]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5TreeItemCustom',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TreeItemCustom implements AfterViewInit {\n\n /**\n * Defines the additional accessibility attributes that will be applied to the component.\nThe following fields are supported:\n\n- **ariaSetsize**: Defines the number of items in the current set when not all items in the set are present in the DOM.\n**Note:** The value is an integer reflecting the number of items in the complete set. If the size of the entire set is unknown, set `-1`.\n\n\t- **ariaPosinset**: Defines an element's number or position in the current set when not all items are present in the DOM.\n\t**Note:** The value is an integer greater than or equal to 1, and less than or equal to the size of the set when that size is known.\n */\n accessibilityAttributes = input<typeof _TreeItemCustom.prototype.accessibilityAttributes | undefined>({});\n\n /**\n * Defines the accessible name of the component.\n */\n accessibleName = input<typeof _TreeItemCustom.prototype.accessibleName | undefined>();\n\n /**\n * Used to define the role of the list item.\n\n**Note:** If not set, the role is automatically inherited from the parent `ui5-list` based on its `accessible-role` property\n(e.g. `Menu` -> `MenuItem`, `Tree` -> `TreeItem`, `ListBox` -> `Option`).\nAn explicitly set `accessible-role` on the list item takes precedence over the inherited role.\n */\n accessibleRole = input<typeof _TreeItemCustom.prototype.accessibleRole | undefined>();\n\n /**\n * Defines the state of the `additionalText`.\n\nAvailable options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n */\n additionalTextState = input<typeof _TreeItemCustom.prototype.additionalTextState | undefined>(\"None\");\n\n /**\n * Defines whether the tree list item will show a collapse or expand icon inside its toggle button.\n */\n expanded = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the tree node has children, even if currently no other tree nodes are slotted inside.\n\n**Note:** This property is useful for showing big tree structures where not all nodes are initially loaded due to performance reasons.\nSet this to `true` for nodes you intend to load lazily, when the user clicks the expand button.\nIt is not necessary to set this property otherwise. If a tree item has children, the expand button will be displayed anyway.\n */\n hasChildren = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the tree list item should display the selection element.\n */\n hideSelectionElement = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the highlight state of the list items.\nAvailable options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n */\n highlight = input<typeof _TreeItemCustom.prototype.highlight | undefined>(\"None\");\n\n /**\n * If set, an icon will be displayed before the text of the tree list item.\n */\n icon = input<typeof _TreeItemCustom.prototype.icon | undefined>();\n\n /**\n * Defines whether the selection of a tree node is displayed as partially selected.\n\n**Note:** The indeterminate state can be set only programmatically and can’t be achieved by user\ninteraction, meaning that the resulting visual state depends on the values of the `indeterminate`\nand `selected` properties:\n\n- If a tree node has both `selected` and `indeterminate` set to `true`, it is displayed as partially selected.\n- If a tree node has `selected` set to `true` and `indeterminate` set to `false`, it is displayed as selected.\n- If a tree node has `selected` set to `false`, it is displayed as not selected regardless of the value of the `indeterminate` property.\n\n**Note:** This property takes effect only when the `ui5-tree` is in `Multiple` mode.\n */\n indeterminate = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the item is movable.\n */\n movable = input(false, { transform: booleanAttribute });\n\n /**\n * The navigated state of the list item.\nIf set to `true`, a navigation indicator is displayed at the end of the list item.\n */\n navigated = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the selected state of the component.\n */\n selected = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the text of the tooltip that would be displayed for the list item.\n */\n tooltip = input<typeof _TreeItemCustom.prototype.tooltip | undefined>();\n\n /**\n * Defines the visual indication and behavior of the list items.\nAvailable options are `Active` (by default), `Inactive`, `InactiveSelectable`, `Detail` and `Navigation`.\n\n**Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,\nwhile with type `Inactive`, `InactiveSelectable` and `Detail` - will not.\n\n**Note:** `InactiveSelectable` behaves like `Inactive` but allows selection (checkbox/radio) to be toggled\nwhen the list has a selection mode. The `item-click` event is not fired for this type.\n */\n type = input<typeof _TreeItemCustom.prototype.type | undefined>(\"Active\"); // className is now passed\n\n\n\n /**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`.\n */\n ui5Click = output<UI5CustomEvent<_TreeItemCustom, 'click'>>();\n\n /**\n * Fired when the user clicks on the detail button when type is `Detail`.\n */\n ui5DetailClick = output<UI5CustomEvent<_TreeItemCustom, 'detail-click'>>();\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 * - **content**: Defines the content of the `ui5-tree-item`.\n * - **(default)**: Defines the items of the component.\n\n**Note:** Use `ui5-tree-item` or `ui5-tree-item-custom`\n * - **deleteButton**: Defines the delete button, displayed in \"Delete\" mode.\n**Note:** While the slot allows custom buttons, to match\ndesign guidelines, please use the `ui5-button` component.\n**Note:** When the slot is not present, a built-in delete button will be displayed.\n * - **image**: **Note:** While the slot allows option for setting custom avatar, to match the\ndesign guidelines, please use the `ui5-avatar` with size XS.\n\n**Note:** If bigger `ui5-avatar` needs to be used, then the size of the\n`ui5-tree-item` should be customized in order to fit.\n *\n * @example\n * ```html\n * <ui5-tree-item-custom>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-tree-item-custom>\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\": \"content\",\n \"description\": \"Defines the content of the `ui5-tree-item`.\"\n },\n {\n \"name\": \"default\",\n \"description\": \"Defines the items of the component.\\n\\n**Note:** Use `ui5-tree-item` or `ui5-tree-item-custom`\"\n },\n {\n \"name\": \"deleteButton\",\n \"description\": \"Defines the delete button, displayed in \\\"Delete\\\" mode.\\n**Note:** While the slot allows custom buttons, to match\\ndesign guidelines, please use the `ui5-button` component.\\n**Note:** When the slot is not present, a built-in delete button will be displayed.\",\n \"since\": \"1.9.0\"\n },\n {\n \"name\": \"image\",\n \"description\": \"**Note:** While the slot allows option for setting custom avatar, to match the\\ndesign guidelines, please use the `ui5-avatar` with size XS.\\n\\n**Note:** If bigger `ui5-avatar` needs to be used, then the size of the\\n`ui5-tree-item` should be customized in order to fit.\",\n \"since\": \"2.10.0\"\n }\n ];\n\n\n public elementRef: ElementRef<_TreeItemCustom> = 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 private readonly _destroyRef = inject(DestroyRef);\n\n get element(): _TreeItemCustom {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibilityAttributes',\n 'accessibleName',\n 'accessibleRole',\n 'additionalTextState',\n 'expanded',\n 'hasChildren',\n 'hideSelectionElement',\n 'highlight',\n 'icon',\n 'indeterminate',\n 'movable',\n 'navigated',\n 'selected',\n 'tooltip',\n 'type',\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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 'ui5Click',\n 'ui5DetailClick',\n ];\n \n // Synchronize outputs (events)\n const _listeners: Array<() => void> = [];\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 const listener = (e: Event): void => {\n\n this[outputName].emit(e as CustomEvent<any>);\n };\n wcElement.addEventListener(eventName, listener);\n _listeners.push(() => wcElement.removeEventListener(eventName, listener));\n }\n }\n this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));\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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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-ui5-webcomponents-tree-item-custom.mjs","sources":["../../../../libs/ui5-webcomponents/tree-item-custom/index.ts","../../../../libs/ui5-webcomponents/tree-item-custom/fundamental-ngx-ui5-webcomponents-tree-item-custom.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 DestroyRef\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/TreeItemCustom.js';\nimport { default as _TreeItemCustom } from '@ui5/webcomponents/dist/TreeItemCustom.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { ListItemAccessibilityAttributes } from '@ui5/webcomponents/dist/ListItem.js';\nimport { default as ListItemAccessibleRole } from '@ui5/webcomponents/dist/types/ListItemAccessibleRole.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\nimport { default as Highlight } from '@ui5/webcomponents/dist/types/Highlight.js';\nimport { default as ListItemType } from '@ui5/webcomponents/dist/types/ListItemType.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-tree-item-custom, [ui5-tree-item-custom]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5TreeItemCustom',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TreeItemCustom implements AfterViewInit {\n\n /**\n * Defines the additional accessibility attributes that will be applied to the component.\nThe following fields are supported:\n\n- **ariaSetsize**: Defines the number of items in the current set when not all items in the set are present in the DOM.\n**Note:** The value is an integer reflecting the number of items in the complete set. If the size of the entire set is unknown, set `-1`.\n\n\t- **ariaPosinset**: Defines an element's number or position in the current set when not all items are present in the DOM.\n\t**Note:** The value is an integer greater than or equal to 1, and less than or equal to the size of the set when that size is known.\n */\n accessibilityAttributes = input<typeof _TreeItemCustom.prototype.accessibilityAttributes | undefined>({});\n\n /**\n * Defines the accessible name of the component.\n */\n accessibleName = input<typeof _TreeItemCustom.prototype.accessibleName | undefined>();\n\n /**\n * Used to define the role of the list item.\n\n**Note:** If not set, the role is automatically inherited from the parent `ui5-list` based on its `accessible-role` property\n(e.g. `Menu` -> `MenuItem`, `Tree` -> `TreeItem`, `ListBox` -> `Option`).\nAn explicitly set `accessible-role` on the list item takes precedence over the inherited role.\n */\n accessibleRole = input<typeof _TreeItemCustom.prototype.accessibleRole | undefined>();\n\n /**\n * Defines the state of the `additionalText`.\n\nAvailable options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n */\n additionalTextState = input<typeof _TreeItemCustom.prototype.additionalTextState | undefined>(\"None\");\n\n /**\n * Defines whether the tree list item will show a collapse or expand icon inside its toggle button.\n */\n expanded = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the tree node has children, even if currently no other tree nodes are slotted inside.\n\n**Note:** This property is useful for showing big tree structures where not all nodes are initially loaded due to performance reasons.\nSet this to `true` for nodes you intend to load lazily, when the user clicks the expand button.\nIt is not necessary to set this property otherwise. If a tree item has children, the expand button will be displayed anyway.\n */\n hasChildren = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the tree list item should display the selection element.\n */\n hideSelectionElement = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the highlight state of the list items.\nAvailable options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n */\n highlight = input<typeof _TreeItemCustom.prototype.highlight | undefined>(\"None\");\n\n /**\n * If set, an icon will be displayed before the text of the tree list item.\n */\n icon = input<typeof _TreeItemCustom.prototype.icon | undefined>();\n\n /**\n * Defines whether the selection of a tree node is displayed as partially selected.\n\n**Note:** The indeterminate state can be set only programmatically and can’t be achieved by user\ninteraction, meaning that the resulting visual state depends on the values of the `indeterminate`\nand `selected` properties:\n\n- If a tree node has both `selected` and `indeterminate` set to `true`, it is displayed as partially selected.\n- If a tree node has `selected` set to `true` and `indeterminate` set to `false`, it is displayed as selected.\n- If a tree node has `selected` set to `false`, it is displayed as not selected regardless of the value of the `indeterminate` property.\n\n**Note:** This property takes effect only when the `ui5-tree` is in `Multiple` mode.\n */\n indeterminate = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the item is movable.\n */\n movable = input(false, { transform: booleanAttribute });\n\n /**\n * The navigated state of the list item.\nIf set to `true`, a navigation indicator is displayed at the end of the list item.\n */\n navigated = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the selected state of the component.\n */\n selected = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the text of the tooltip that would be displayed for the list item.\n */\n tooltip = input<typeof _TreeItemCustom.prototype.tooltip | undefined>();\n\n /**\n * Defines the visual indication and behavior of the list items.\nAvailable options are `Active` (by default), `Inactive`, `InactiveSelectable`, `Detail` and `Navigation`.\n\n**Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,\nwhile with type `Inactive`, `InactiveSelectable` and `Detail` - will not.\n\n**Note:** `InactiveSelectable` behaves like `Inactive` (no active press/hover feedback and the\n`item-click` event is not fired), but the item can still be selected. Clicking the item body,\npressing Space/Enter, or interacting with the selection component (checkbox in Multi mode, radio\nbutton in Single modes) toggles the selection when the list has a selection mode.\n */\n type = input<typeof _TreeItemCustom.prototype.type | undefined>(\"Active\"); // className is now passed\n\n\n\n /**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`.\n */\n ui5Click = output<UI5CustomEvent<_TreeItemCustom, 'click'>>();\n\n /**\n * Fired when the user clicks on the detail button when type is `Detail`.\n */\n ui5DetailClick = output<UI5CustomEvent<_TreeItemCustom, 'detail-click'>>();\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 * - **content**: Defines the content of the `ui5-tree-item`.\n * - **(default)**: Defines the items of the component.\n\n**Note:** Use `ui5-tree-item` or `ui5-tree-item-custom`\n * - **deleteButton**: Defines the delete button, displayed in \"Delete\" mode.\n**Note:** While the slot allows custom buttons, to match\ndesign guidelines, please use the `ui5-button` component.\n**Note:** When the slot is not present, a built-in delete button will be displayed.\n * - **image**: **Note:** While the slot allows option for setting custom avatar, to match the\ndesign guidelines, please use the `ui5-avatar` with size XS.\n\n**Note:** If bigger `ui5-avatar` needs to be used, then the size of the\n`ui5-tree-item` should be customized in order to fit.\n *\n * @example\n * ```html\n * <ui5-tree-item-custom>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-tree-item-custom>\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\": \"content\",\n \"description\": \"Defines the content of the `ui5-tree-item`.\"\n },\n {\n \"name\": \"default\",\n \"description\": \"Defines the items of the component.\\n\\n**Note:** Use `ui5-tree-item` or `ui5-tree-item-custom`\"\n },\n {\n \"name\": \"deleteButton\",\n \"description\": \"Defines the delete button, displayed in \\\"Delete\\\" mode.\\n**Note:** While the slot allows custom buttons, to match\\ndesign guidelines, please use the `ui5-button` component.\\n**Note:** When the slot is not present, a built-in delete button will be displayed.\",\n \"since\": \"1.9.0\"\n },\n {\n \"name\": \"image\",\n \"description\": \"**Note:** While the slot allows option for setting custom avatar, to match the\\ndesign guidelines, please use the `ui5-avatar` with size XS.\\n\\n**Note:** If bigger `ui5-avatar` needs to be used, then the size of the\\n`ui5-tree-item` should be customized in order to fit.\",\n \"since\": \"2.10.0\"\n }\n ];\n\n\n public elementRef: ElementRef<_TreeItemCustom> = 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 private readonly _destroyRef = inject(DestroyRef);\n\n get element(): _TreeItemCustom {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibilityAttributes',\n 'accessibleName',\n 'accessibleRole',\n 'additionalTextState',\n 'expanded',\n 'hasChildren',\n 'hideSelectionElement',\n 'highlight',\n 'icon',\n 'indeterminate',\n 'movable',\n 'navigated',\n 'selected',\n 'tooltip',\n 'type',\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, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\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 'ui5Click',\n 'ui5DetailClick',\n ];\n \n // Synchronize outputs (events)\n const _listeners: Array<() => void> = [];\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 const listener = (e: Event): void => {\n\n this[outputName].emit(e as CustomEvent<any>);\n };\n wcElement.addEventListener(eventName, listener);\n _listeners.push(() => wcElement.removeEventListener(eventName, listener));\n }\n }\n this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));\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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"}
|
|
@@ -110,8 +110,10 @@ class TreeItem {
|
|
|
110
110
|
**Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
|
|
111
111
|
while with type `Inactive`, `InactiveSelectable` and `Detail` - will not.
|
|
112
112
|
|
|
113
|
-
**Note:** `InactiveSelectable` behaves like `Inactive`
|
|
114
|
-
|
|
113
|
+
**Note:** `InactiveSelectable` behaves like `Inactive` (no active press/hover feedback and the
|
|
114
|
+
`item-click` event is not fired), but the item can still be selected. Clicking the item body,
|
|
115
|
+
pressing Space/Enter, or interacting with the selection component (checkbox in Multi mode, radio
|
|
116
|
+
button in Single modes) toggles the selection when the list has a selection mode.
|
|
115
117
|
*/
|
|
116
118
|
this.type = input("Active", /* @ts-ignore */
|
|
117
119
|
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ [])); // className is now passed
|