@fundamental-ngx/platform 0.58.0-rc.7 → 0.58.0-rc.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/approval-flow/index.d.ts +2 -0
  2. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +14 -11
  3. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  4. package/fesm2022/fundamental-ngx-platform-form.mjs +26 -9
  5. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  6. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +125 -12
  7. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  8. package/fesm2022/fundamental-ngx-platform-list.mjs +1 -3
  9. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  10. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +1 -2
  12. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
  14. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +3 -4
  16. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2 -3
  18. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-platform-table.mjs +1 -2
  20. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +1 -3
  22. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +1 -2
  24. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +3 -4
  26. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  27. package/form/index.d.ts +6 -2
  28. package/icon-tab-bar/index.d.ts +61 -10
  29. package/list/index.d.ts +1 -1
  30. package/menu/index.d.ts +3 -3
  31. package/message-popover/index.d.ts +3 -3
  32. package/package.json +14 -14
  33. package/settings-generator/index.d.ts +3 -3
  34. package/table/index.d.ts +1 -1
  35. package/variant-management/index.d.ts +1 -1
  36. package/schematics/collection.json +0 -10
  37. package/schematics/ng-add/index.d.ts +0 -13
  38. package/schematics/ng-add/index.js +0 -55
  39. package/schematics/ng-add/index.js.map +0 -1
  40. package/schematics/ng-add/schema.d.ts +0 -3
  41. package/schematics/ng-add/schema.js +0 -3
  42. package/schematics/ng-add/schema.js.map +0 -1
  43. package/schematics/ng-add/schema.json +0 -15
  44. package/schematics/utils/package-utils.d.ts +0 -19
  45. package/schematics/utils/package-utils.js +0 -119
  46. package/schematics/utils/package-utils.js.map +0 -1
package/form/index.d.ts CHANGED
@@ -425,6 +425,8 @@ declare class ComboboxComponent extends BaseCombobox implements ComboboxInterfac
425
425
  /** @hidden */
426
426
  _selectedElement?: OptionItem;
427
427
  /** @hidden */
428
+ _itemMousedown: boolean;
429
+ /** @hidden */
428
430
  constructor(_dialogConfig: DialogConfig, _dynamicComponentService: DynamicComponentService, _viewContainerRef: ViewContainerRef, _injector: Injector, providers: Map<string, DataProvider<any>>, _comboboxConfig: ComboboxConfig);
429
431
  /** @hidden */
430
432
  ngOnInit(): void;
@@ -435,7 +437,7 @@ declare class ComboboxComponent extends BaseCombobox implements ComboboxInterfac
435
437
  /** @hidden Method to emit change event */
436
438
  emitChangeEvent<T>(modelValue: T): void;
437
439
  /** @hidden Method to set selected item */
438
- selectOptionItem(item: OptionItem): void;
440
+ selectOptionItem(item: OptionItem, shouldClosePopover?: boolean): void;
439
441
  /** @hidden Method to set as selected */
440
442
  setAsSelected(item: OptionItem[]): void;
441
443
  /** @hidden Define is selected item selected */
@@ -447,6 +449,8 @@ declare class ComboboxComponent extends BaseCombobox implements ComboboxInterfac
447
449
  /** Handle dialog approval, closes popover and propagates data changes. */
448
450
  dialogApprove(): void;
449
451
  /** @hidden */
452
+ onItemFocused(value: OptionItem): void;
453
+ /** @hidden */
450
454
  _getLabelledBy(): Nullable<string>;
451
455
  /** @hidden if not selected update model */
452
456
  private _checkAndUpdate;
@@ -4880,7 +4884,7 @@ declare class StepInputControlDirective {
4880
4884
  * @hidden
4881
4885
  * Handle "input" event to keep track of what user is entering
4882
4886
  */
4883
- onInput(event: InputEvent): void;
4887
+ onInput(event: Event): void;
4884
4888
  /**
4885
4889
  * @hidden
4886
4890
  * Handle "change" event to commit entered value
@@ -36,6 +36,8 @@ type TabConfig = NullableObject<{
36
36
  renderer?: TemplateRef<any>;
37
37
  titleTemplate?: TemplateRef<any>;
38
38
  id: string;
39
+ /** ID of the template to use for tab content. When provided, the template with this ID will be used as the tab content.*/
40
+ contentTemplateId?: string;
39
41
  }>;
40
42
  type ReactiveTabConfig = NullableObject<{
41
43
  icon?: InputSignal<string | undefined>;
@@ -868,6 +870,29 @@ declare class IconBarDndItemDirective implements IconTabBarDndItem, AfterViewIni
868
870
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IconBarDndItemDirective, "[fdpIconBarDndItem], [fdp-icon-bar-dnd-item]", never, { "dndItemData": { "alias": "dndItemData"; "required": false; }; "previewClass": { "alias": "previewClass"; "required": false; }; "dndHoveredClass": { "alias": "dndHoveredClass"; "required": false; }; "dndSeparatorClass": { "alias": "dndSeparatorClass"; "required": false; }; }, {}, never, never, true, never>;
869
871
  }
870
872
 
873
+ /**
874
+ * Directive to mark a template as a content template for icon tab bar.
875
+ * This allows you to define templates with IDs that can be referenced in tab configurations.
876
+ * Use this directive when you want to define tab content using templates with IDs instead of
877
+ * projecting content directly into fdp-icon-tab-bar-tab components.
878
+ *
879
+ */
880
+ declare class IconTabBarContentTemplateDirective implements OnInit, OnDestroy {
881
+ /**
882
+ * The unique ID for this template. Used to reference the template in tab configurations.
883
+ * This ID should be used in the `contentTemplateId` property of the `TabConfig`.
884
+ */
885
+ templateId: _angular_core.InputSignal<string>;
886
+ /** Reference to the template element. @hidden */
887
+ readonly templateRef: TemplateRef<any>;
888
+ /** Service to manage templates. @hidden */
889
+ private readonly templateService;
890
+ ngOnInit(): void;
891
+ ngOnDestroy(): void;
892
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconTabBarContentTemplateDirective, never>;
893
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IconTabBarContentTemplateDirective, "[fdpIconTabBarContentTemplate]", never, { "templateId": { "alias": "templateId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
894
+ }
895
+
871
896
  declare class IconTabBarFreeContentDirective {
872
897
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconTabBarFreeContentDirective, never>;
873
898
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IconTabBarFreeContentDirective, "[fdpIconTabBarFreeContent]", never, {}, {}, never, never, true, never>;
@@ -904,9 +929,10 @@ declare class IconTabBarComponent implements OnInit, TabList {
904
929
  subItems: TabConfig[];
905
930
  closable: boolean;
906
931
  iconFont: IconFont;
907
- renderer?: _angular_core.TemplateRef<any>;
908
- titleTemplate?: _angular_core.TemplateRef<any>;
932
+ renderer?: TemplateRef<any>;
933
+ titleTemplate?: TemplateRef<any>;
909
934
  id: string;
935
+ contentTemplateId?: string;
910
936
  }>[] | undefined>;
911
937
  /** @description Density mode. */
912
938
  densityMode: _angular_core.ModelSignal<TabDensityMode>;
@@ -948,7 +974,7 @@ declare class IconTabBarComponent implements OnInit, TabList {
948
974
  _scrollbar: _angular_core.Signal<ScrollbarDirective | undefined>;
949
975
  /** @hidden */
950
976
  tabDirectives: _angular_core.Signal<readonly IconTabBarTabContentDirective[]>;
951
- private get _customTabs();
977
+ protected get _customTabs(): boolean;
952
978
  /** @hidden */
953
979
  get headerContainer(): Nullable<ElementRef>;
954
980
  /** @hidden */
@@ -964,14 +990,16 @@ declare class IconTabBarComponent implements OnInit, TabList {
964
990
  /** @hidden */
965
991
  readonly _selectedUid: _angular_core.WritableSignal<string | undefined>;
966
992
  /** @hidden */
967
- readonly _tabs$: _angular_core.Signal<IconTabBarItem[]>;
968
- /** @hidden */
969
993
  readonly _flatTabs$: _angular_core.Signal<IconTabBarItem[]>;
970
994
  /** @hidden */
971
995
  readonly _tabRenderer$: _angular_core.WritableSignal<IconTabBarItem | null>;
972
996
  /** @hidden */
973
997
  readonly _rtl$: _angular_core.Signal<boolean>;
974
998
  /** @hidden */
999
+ readonly _templateMap$: _angular_core.Signal<Map<string, TemplateRef<any>>>;
1000
+ /** @hidden */
1001
+ readonly _tabs$: _angular_core.Signal<IconTabBarItem[]>;
1002
+ /** @hidden */
975
1003
  readonly _tabsConfig$: _angular_core.Signal<_fundamental_ngx_cdk_utils.NullableObject<{
976
1004
  icon?: _fundamental_ngx_cdk_utils.FdkAsyncProperty<string | undefined>;
977
1005
  label: _fundamental_ngx_cdk_utils.FdkAsyncProperty<string>;
@@ -982,13 +1010,19 @@ declare class IconTabBarComponent implements OnInit, TabList {
982
1010
  subItems: TabConfig[];
983
1011
  closable: boolean;
984
1012
  iconFont: IconFont;
985
- renderer?: _angular_core.TemplateRef<any>;
986
- titleTemplate?: _angular_core.TemplateRef<any>;
1013
+ renderer?: TemplateRef<any>;
1014
+ titleTemplate?: TemplateRef<any>;
987
1015
  id: string;
1016
+ contentTemplateId?: string;
988
1017
  }>[]>;
1018
+ /** @hidden Initialize active tab when tabs change */
1019
+ private readonly _initActiveTabEffect;
989
1020
  /** @hidden */
990
1021
  private readonly _destroyRef;
1022
+ /** @hidden */
991
1023
  private readonly _inDynamicPage;
1024
+ /** @hidden Template service */
1025
+ private readonly templateService;
992
1026
  private readonly _iconTabBarCmp;
993
1027
  /** @hidden */
994
1028
  constructor(_cd: ChangeDetectorRef, _contentDensityService: ContentDensityService, _rtlService: RtlService);
@@ -1023,20 +1057,22 @@ declare class IconTabBarComponent implements OnInit, TabList {
1023
1057
  * @description generate IconTabItems from TabConfig array
1024
1058
  */
1025
1059
  private _generateTabBarItems;
1060
+ /** @hidden Apply template mapping to tab configurations */
1061
+ private _applyTemplateMapping;
1026
1062
  private _generateFlatTabs;
1027
1063
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconTabBarComponent, [null, { optional: true; }, { optional: true; }]>;
1028
1064
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconTabBarComponent, "fdp-icon-tab-bar", never, { "stackContent": { "alias": "stackContent"; "required": false; }; "tabHeadingLevel": { "alias": "tabHeadingLevel"; "required": false; "isSignal": true; }; "iconTabType": { "alias": "iconTabType"; "required": false; "isSignal": true; }; "tabsConfig": { "alias": "tabsConfig"; "required": false; "isSignal": true; }; "densityMode": { "alias": "densityMode"; "required": false; "isSignal": true; }; "iconTabFont": { "alias": "iconTabFont"; "required": false; "isSignal": true; }; "enableTabReordering": { "alias": "enableTabReordering"; "required": false; "isSignal": true; }; "showTotalTab": { "alias": "showTotalTab"; "required": false; "isSignal": true; }; "multiClick": { "alias": "multiClick"; "required": false; "isSignal": true; }; "layoutMode": { "alias": "layoutMode"; "required": false; "isSignal": true; }; "iconTabBackground": { "alias": "iconTabBackground"; "required": false; "isSignal": true; }; "iconTabSize": { "alias": "iconTabSize"; "required": false; "isSignal": true; }; "colorAssociations": { "alias": "colorAssociations"; "required": false; "isSignal": true; }; "settings": { "alias": "settings"; "required": false; "isSignal": true; }; "maxContentHeight": { "alias": "maxContentHeight"; "required": false; "isSignal": true; }; }, { "tabsConfig": "tabsConfigChange"; "densityMode": "densityModeChange"; "iconTabSelected": "iconTabSelected"; "iconTabReordered": "iconTabReordered"; "closeTab": "closeTab"; }, ["children"], ["[fdpIconTabBarFreeContent]"], true, never>;
1029
1065
  static ngAcceptInputType_stackContent: unknown;
1030
1066
  }
1031
1067
 
1032
- declare const FDP_ICON_TAB_BAR: readonly [typeof IconTabBarComponent, typeof IconTabBarTabComponent, typeof IconTabBarFreeContentDirective];
1068
+ declare const FDP_ICON_TAB_BAR: readonly [typeof IconTabBarComponent, typeof IconTabBarTabComponent, typeof IconTabBarContentTemplateDirective, typeof IconTabBarFreeContentDirective];
1033
1069
  /**
1034
1070
  * @deprecated
1035
1071
  * Import `IconTabBarComponent` directly instead.
1036
1072
  */
1037
1073
  declare class PlatformIconTabBarModule {
1038
1074
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PlatformIconTabBarModule, never>;
1039
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<PlatformIconTabBarModule, never, [typeof IconTabBarComponent, typeof IconTabBarTextTypeComponent, typeof IconTabBarIconTypeComponent, typeof IconTabBarProcessTypeComponent, typeof IconTabBarFilterTypeComponent, typeof IconTabBarPopoverComponent, typeof TextTypePopoverComponent, typeof IconBarDndListDirective, typeof IconBarDndItemDirective, typeof IconBarDndContainerDirective, typeof IconTabBarTabComponent, typeof IconTabBarFreeContentDirective], [typeof IconTabBarComponent, typeof IconTabBarTextTypeComponent, typeof IconTabBarIconTypeComponent, typeof IconTabBarProcessTypeComponent, typeof IconTabBarFilterTypeComponent, typeof IconTabBarPopoverComponent, typeof TextTypePopoverComponent, typeof IconBarDndListDirective, typeof IconBarDndItemDirective, typeof IconBarDndContainerDirective, typeof IconTabBarTabComponent, typeof IconTabBarFreeContentDirective]>;
1075
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<PlatformIconTabBarModule, never, [typeof IconTabBarComponent, typeof IconTabBarTextTypeComponent, typeof IconTabBarIconTypeComponent, typeof IconTabBarProcessTypeComponent, typeof IconTabBarFilterTypeComponent, typeof IconTabBarPopoverComponent, typeof TextTypePopoverComponent, typeof IconBarDndListDirective, typeof IconBarDndItemDirective, typeof IconBarDndContainerDirective, typeof IconTabBarTabComponent, typeof IconTabBarContentTemplateDirective, typeof IconTabBarFreeContentDirective], [typeof IconTabBarComponent, typeof IconTabBarTextTypeComponent, typeof IconTabBarIconTypeComponent, typeof IconTabBarProcessTypeComponent, typeof IconTabBarFilterTypeComponent, typeof IconTabBarPopoverComponent, typeof TextTypePopoverComponent, typeof IconBarDndListDirective, typeof IconBarDndItemDirective, typeof IconBarDndContainerDirective, typeof IconTabBarTabComponent, typeof IconTabBarContentTemplateDirective, typeof IconTabBarFreeContentDirective]>;
1040
1076
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<PlatformIconTabBarModule>;
1041
1077
  }
1042
1078
 
@@ -1046,6 +1082,21 @@ declare class PlatformIconTabBarModule {
1046
1082
  */
1047
1083
  type TabColorAssociations = Partial<Record<SemanticColor, string>>;
1048
1084
 
1085
+ /**
1086
+ * Service to manage template registration across components
1087
+ */
1088
+ declare class IconTabBarTemplateService {
1089
+ private templates;
1090
+ private templatesSignal;
1091
+ registerTemplate(id: string, template: TemplateRef<any>): void;
1092
+ unregisterTemplate(id: string): void;
1093
+ getTemplate(id: string): TemplateRef<any> | undefined;
1094
+ getAllTemplates(): Map<string, TemplateRef<any>>;
1095
+ getAllTemplatesSignal(): Signal<Map<string, TemplateRef<any>>>;
1096
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconTabBarTemplateService, never>;
1097
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<IconTabBarTemplateService>;
1098
+ }
1099
+
1049
1100
  declare class IconTabBarTextTypeTabItemComponent {
1050
1101
  /** Tab item. */
1051
1102
  item: Nullable<IconTabBarItem>;
@@ -1066,5 +1117,5 @@ declare class IconTabBarTextTypeTabItemComponent {
1066
1117
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconTabBarTextTypeTabItemComponent, "[fdp-icon-tab-bar-text-type-tab-item]", never, { "item": { "alias": "item"; "required": false; }; "layoutMode": { "alias": "layoutMode"; "required": false; }; "colorAssociations": { "alias": "colorAssociations"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1067
1118
  }
1068
1119
 
1069
- export { FDP_ICON_TAB_BAR, FLIPPER_SIZE, ICON_TAB_HIDDEN_CLASS_NAME, IconBarDndContainerDirective, IconBarDndItemDirective, IconBarDndListDirective, IconTabBarBase, IconTabBarComponent, IconTabBarFilterTypeComponent, IconTabBarFreeContentDirective, IconTabBarIconTypeComponent, IconTabBarPopoverBase, IconTabBarPopoverComponent, IconTabBarProcessTypeComponent, IconTabBarTabComponent, IconTabBarTabContentDirective, IconTabBarTextTypeComponent, IconTabBarTextTypeTabItemComponent, IconTabTitleDirective, PlatformIconTabBarModule, TextTypePopoverComponent, UNIQUE_KEY_SEPARATOR };
1120
+ export { FDP_ICON_TAB_BAR, FLIPPER_SIZE, ICON_TAB_HIDDEN_CLASS_NAME, IconBarDndContainerDirective, IconBarDndItemDirective, IconBarDndListDirective, IconTabBarBase, IconTabBarComponent, IconTabBarContentTemplateDirective, IconTabBarFilterTypeComponent, IconTabBarFreeContentDirective, IconTabBarIconTypeComponent, IconTabBarPopoverBase, IconTabBarPopoverComponent, IconTabBarProcessTypeComponent, IconTabBarTabComponent, IconTabBarTabContentDirective, IconTabBarTemplateService, IconTabBarTextTypeComponent, IconTabBarTextTypeTabItemComponent, IconTabTitleDirective, PlatformIconTabBarModule, TextTypePopoverComponent, UNIQUE_KEY_SEPARATOR };
1070
1121
  export type { ElementChord, ExtendedTabConfig, FdDnDEvent, IconTabBarBackground, IconTabBarDndItem, IconTabBarDndList, IconTabBarItem, IconTabBarSize, ReactiveTabConfig, SemanticColor, TabColorAssociations, TabConfig, TabDensityMode, TabDestinyMode, TabType };
package/list/index.d.ts CHANGED
@@ -298,7 +298,7 @@ declare class BaseListItem extends BaseComponent implements AfterViewInit, After
298
298
  * @hidden
299
299
  * helps to avoid multi rows active class with navigation
300
300
  */
301
- _onBlur(event: KeyboardEvent): void;
301
+ _onBlur(event: FocusEvent): void;
302
302
  /** @hidden */
303
303
  ngOnDestroy(): void;
304
304
  /** @hidden */
package/menu/index.d.ts CHANGED
@@ -41,17 +41,17 @@ declare class MenuItemComponent implements OnDestroy, FocusableOption {
41
41
  * @hidden
42
42
  * Handle selection of item via keyboard 'Enter'
43
43
  */
44
- private _onItemKeydown;
44
+ protected _onItemKeydown(event: KeyboardEvent): void;
45
45
  /**
46
46
  * @hidden
47
47
  * Handle click of item via mouse click.
48
48
  */
49
- private _onItemClick;
49
+ protected _onItemClick(event: MouseEvent): void;
50
50
  /**
51
51
  * @hidden
52
52
  * Handle mouse enter event.
53
53
  */
54
- private _onMouseEnter;
54
+ protected _onMouseEnter(): void;
55
55
  /** @hidden */
56
56
  ngOnDestroy(): void;
57
57
  /** Focus on option */
@@ -166,11 +166,11 @@ declare class MessageViewComponent implements AfterViewInit {
166
166
  /** Event emitted when user clicks on the field link to focus on the field itself. */
167
167
  closePopover: EventEmitter<boolean>;
168
168
  /** @hidden */
169
- private _listView;
169
+ protected _listView: ElementRef;
170
170
  /** @hidden */
171
- private _detailsView;
171
+ protected _detailsView: ElementRef;
172
172
  /** @Hidden */
173
- private readonly _initialClass;
173
+ protected readonly _initialClass = "fd-message-popover__view-container";
174
174
  /** @hidden */
175
175
  private _activeListElement;
176
176
  /** @hidden */
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/platform",
3
- "version": "0.58.0-rc.7",
3
+ "version": "0.58.0-rc.70",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - platform",
6
6
  "license": "Apache-2.0",
7
7
  "homepage": "https://sap.github.io/fundamental-ngx",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/SAP/fundamental-ngx"
10
+ "url": "git+https://github.com/SAP/fundamental-ngx.git"
11
11
  },
12
12
  "engine": {
13
13
  "node": ">= 10"
14
14
  },
15
15
  "peerDependencies": {
16
- "@fundamental-ngx/cdk": "0.58.0-rc.7",
17
- "@fundamental-ngx/core": "0.58.0-rc.7",
18
- "@fundamental-ngx/i18n": "0.58.0-rc.7"
16
+ "@fundamental-ngx/cdk": "0.58.0-rc.70",
17
+ "@fundamental-ngx/core": "0.58.0-rc.70",
18
+ "@fundamental-ngx/i18n": "0.58.0-rc.70"
19
19
  },
20
20
  "dependencies": {
21
21
  "fast-deep-equal": "3.1.3",
@@ -49,6 +49,10 @@
49
49
  "types": "./feed-input/index.d.ts",
50
50
  "default": "./fesm2022/fundamental-ngx-platform-feed-input.mjs"
51
51
  },
52
+ "./form": {
53
+ "types": "./form/index.d.ts",
54
+ "default": "./fesm2022/fundamental-ngx-platform-form.mjs"
55
+ },
52
56
  "./icon-tab-bar": {
53
57
  "types": "./icon-tab-bar/index.d.ts",
54
58
  "default": "./fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs"
@@ -57,10 +61,6 @@
57
61
  "types": "./info-label/index.d.ts",
58
62
  "default": "./fesm2022/fundamental-ngx-platform-info-label.mjs"
59
63
  },
60
- "./form": {
61
- "types": "./form/index.d.ts",
62
- "default": "./fesm2022/fundamental-ngx-platform-form.mjs"
63
- },
64
64
  "./link": {
65
65
  "types": "./link/index.d.ts",
66
66
  "default": "./fesm2022/fundamental-ngx-platform-link.mjs"
@@ -101,6 +101,10 @@
101
101
  "types": "./panel/index.d.ts",
102
102
  "default": "./fesm2022/fundamental-ngx-platform-panel.mjs"
103
103
  },
104
+ "./search-field": {
105
+ "types": "./search-field/index.d.ts",
106
+ "default": "./fesm2022/fundamental-ngx-platform-search-field.mjs"
107
+ },
104
108
  "./settings-generator": {
105
109
  "types": "./settings-generator/index.d.ts",
106
110
  "default": "./fesm2022/fundamental-ngx-platform-settings-generator.mjs"
@@ -109,10 +113,6 @@
109
113
  "types": "./shared/index.d.ts",
110
114
  "default": "./fesm2022/fundamental-ngx-platform-shared.mjs"
111
115
  },
112
- "./search-field": {
113
- "types": "./search-field/index.d.ts",
114
- "default": "./fesm2022/fundamental-ngx-platform-search-field.mjs"
115
- },
116
116
  "./slider": {
117
117
  "types": "./slider/index.d.ts",
118
118
  "default": "./fesm2022/fundamental-ngx-platform-slider.mjs"
@@ -147,4 +147,4 @@
147
147
  }
148
148
  },
149
149
  "sideEffects": false
150
- }
150
+ }
@@ -263,7 +263,7 @@ declare class SettingsGeneratorComponent implements SettingsGenerator, AfterView
263
263
  private readonly _destroyRef;
264
264
  private readonly _config;
265
265
  /** @hidden */
266
- private readonly _initialClass;
266
+ protected readonly _initialClass = "fdp-settings-generator";
267
267
  /** @hidden */
268
268
  private readonly _viewRef;
269
269
  /**
@@ -316,7 +316,7 @@ declare class SettingsGeneratorSidebarLayoutComponent extends BaseSettingsGenera
316
316
  /** @hidden */
317
317
  _isMobile: boolean;
318
318
  /** @hidden */
319
- private readonly _initialClass;
319
+ protected readonly _initialClass = "fdp-settings-generator__sidebar-layout";
320
320
  /** @hidden */
321
321
  private readonly _settingsGeneratorContent;
322
322
  /** @hidden */
@@ -372,7 +372,7 @@ declare class SettingsGeneratorContentComponent {
372
372
  /** Event emits when user needs to be moved back to navigation screen. */
373
373
  goBack: EventEmitter<void>;
374
374
  /** @hidden */
375
- private readonly _initialClass;
375
+ protected readonly _initialClass = "fdp-settings-generator__content-section";
376
376
  /** @hidden */
377
377
  private readonly _tabPanels;
378
378
  /** Optional alternative text for the settings generator dialog back button. */
package/table/index.d.ts CHANGED
@@ -2239,7 +2239,7 @@ declare class TableRowComponent<T> extends TableRowDirective implements OnInit,
2239
2239
  /** @hidden */
2240
2240
  private readonly _editableCells;
2241
2241
  /** @hidden */
2242
- private get _ariaSelected();
2242
+ protected get _ariaSelected(): boolean;
2243
2243
  /** @hidden */
2244
2244
  _hasRowHeaderColumn$: i0.Signal<boolean>;
2245
2245
  /** @hidden */
@@ -118,7 +118,7 @@ declare class VariantManagementComponent<T = any> implements VariantManagement<T
118
118
  /** @hidden */
119
119
  _popover: PopoverComponent;
120
120
  /** @hidden */
121
- private readonly _initialClass;
121
+ protected readonly _initialClass = "fd-variant-management";
122
122
  /**
123
123
  * Used internally for communicating with wrapper component.
124
124
  */
@@ -1,10 +0,0 @@
1
- {
2
- "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
- "schematics": {
4
- "ng-add": {
5
- "description": "Adds @fundamental-ngx/platform to the project.",
6
- "factory": "./ng-add/index#ngAdd",
7
- "schema": "./ng-add/schema.json"
8
- }
9
- }
10
- }
@@ -1,13 +0,0 @@
1
- import { Rule } from '@angular-devkit/schematics';
2
- import { Schema } from './schema';
3
- /**
4
- * ng add schematic that
5
- * - adds platform lib to package.json
6
- * - adds @fundamental-ngx/core to package.json if not present there already
7
- * - installs dependent libraries and runs their external schematics
8
- * - adds lib translations and angular.json locale configurations to host app if no translations available
9
- * - updates lib translations to host app's translations if available by appending at the end of host app's files
10
- * - replaces lib source paths with node_modules source paths for lib-related trans units
11
- * @param options options passed for this schematic
12
- */
13
- export declare function ngAdd(options: Schema): Rule;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ngAdd = ngAdd;
4
- const schematics_1 = require("@angular-devkit/schematics");
5
- const tasks_1 = require("@angular-devkit/schematics/tasks");
6
- const dependencies_1 = require("@schematics/angular/utility/dependencies");
7
- const package_utils_1 = require("../utils/package-utils");
8
- /**
9
- * ng add schematic that
10
- * - adds platform lib to package.json
11
- * - adds @fundamental-ngx/core to package.json if not present there already
12
- * - installs dependent libraries and runs their external schematics
13
- * - adds lib translations and angular.json locale configurations to host app if no translations available
14
- * - updates lib translations to host app's translations if available by appending at the end of host app's files
15
- * - replaces lib source paths with node_modules source paths for lib-related trans units
16
- * @param options options passed for this schematic
17
- */
18
- function ngAdd(options) {
19
- return (tree) => {
20
- const coreInstalled = (0, package_utils_1.hasPackage)(tree, '@fundamental-ngx/core');
21
- return (0, schematics_1.chain)([coreInstalled ? (0, schematics_1.noop)() : callCoreSchematic(options), endInstallTask()]);
22
- };
23
- }
24
- /**
25
- * installs `@fundamental-ngx/core` lib and makes call to core's schematic
26
- * @param options options passed for this schematic
27
- */
28
- function callCoreSchematic(options) {
29
- return (tree, context) => {
30
- context.logger.info('✅️ Added Fundamental NGX Core schematic to tasks');
31
- (0, dependencies_1.addPackageJsonDependency)(tree, {
32
- type: dependencies_1.NodeDependencyType.Default,
33
- // Will be replaced with the real version during sync-version script run
34
- version: `0.58.0-rc.7`,
35
- name: '@fundamental-ngx/core'
36
- });
37
- const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask({
38
- packageName: '@fundamental-ngx/core'
39
- }));
40
- // Chain won't work here since we need the externals to be actually installed before we call their schemas
41
- // This ensures the externals are a dependency of the node install, so they exist when their schemas run.
42
- context.addTask(new tasks_1.RunSchematicTask('@fundamental-ngx/core', 'ng-add', options), [installTaskId]);
43
- return tree;
44
- };
45
- }
46
- /**
47
- * Run npm install.
48
- */
49
- function endInstallTask() {
50
- return (tree, context) => {
51
- context.addTask(new tasks_1.NodePackageInstallTask());
52
- return tree;
53
- };
54
- }
55
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/platform/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAiBA,sBAMC;AAvBD,2DAAuF;AACvF,4DAA4F;AAC5F,2EAAwG;AACxG,0DAAoD;AAIpD;;;;;;;;;GASG;AACH,SAAgB,KAAK,CAAC,OAAe;IACjC,OAAO,CAAC,IAAU,EAAE,EAAE;QAClB,MAAM,aAAa,GAAG,IAAA,0BAAU,EAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAEhE,OAAO,IAAA,kBAAK,EAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAA,iBAAI,GAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACtC,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC7C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAExE,IAAA,uCAAwB,EAAC,IAAI,EAAE;YAC3B,IAAI,EAAE,iCAAkB,CAAC,OAAO;YAChC,wEAAwE;YACxE,OAAO,EAAE,qBAAqB;YAC9B,IAAI,EAAE,uBAAuB;SAChC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CACjC,IAAI,8BAAsB,CAAC;YACvB,WAAW,EAAE,uBAAuB;SACvC,CAAC,CACL,CAAC;QAEF,0GAA0G;QAC1G,yGAAyG;QACzG,OAAO,CAAC,OAAO,CAAC,IAAI,wBAAgB,CAAC,uBAAuB,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAEnG,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACnB,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC7C,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC"}
@@ -1,3 +0,0 @@
1
- export interface Schema {
2
- project: string;
3
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../libs/platform/schematics/ng-add/schema.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "$id": "fundamental-ngx-ng-add",
4
- "title": "Fundamental Platform Library for Angular ng-add schematic",
5
- "type": "object",
6
- "properties": {
7
- "project": {
8
- "type": "string",
9
- "description": "The name of the project.",
10
- "$default": {
11
- "$source": "projectName"
12
- }
13
- }
14
- }
15
- }
@@ -1,19 +0,0 @@
1
- import { workspaces } from '@angular-devkit/core';
2
- import { Tree } from '@angular-devkit/schematics';
3
- import * as ts from 'typescript';
4
- /** Gets the ts source file from a path */
5
- export declare function getSourceFile(host: Tree, path: string): ts.SourceFile;
6
- /** Get the version of a package name */
7
- export declare function getPackageVersionFromPackageJson(tree: Tree, name: string): string | null;
8
- /** Check if a package exists in the package.json */
9
- export declare function hasPackage(tree: Tree, name: string): boolean | null;
10
- /** Check if a package exists in the package.json */
11
- export declare function hasDevPackage(tree: Tree, name: string): boolean | null;
12
- /** Returns the source path for the application */
13
- export declare function getSourceTreePath(host: Tree, options: any): Promise<string>;
14
- /** Returns the dist path for the application */
15
- export declare function getDistPath(host: Tree, options: any): Promise<string>;
16
- /** factory function to create a workspaces.WorkspaceHost from a Tree */
17
- export declare function createHost(tree: Tree): workspaces.WorkspaceHost;
18
- /** Returns the workspace project for the application */
19
- export declare function getWorkspaceProject(host: Tree, options: any): Promise<workspaces.ProjectDefinition>;
@@ -1,119 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getSourceFile = getSourceFile;
13
- exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
14
- exports.hasPackage = hasPackage;
15
- exports.hasDevPackage = hasDevPackage;
16
- exports.getSourceTreePath = getSourceTreePath;
17
- exports.getDistPath = getDistPath;
18
- exports.createHost = createHost;
19
- exports.getWorkspaceProject = getWorkspaceProject;
20
- const core_1 = require("@angular-devkit/core");
21
- const schematics_1 = require("@angular-devkit/schematics");
22
- const ts = require("typescript");
23
- /** Gets the ts source file from a path */
24
- function getSourceFile(host, path) {
25
- const buffer = host.read(path);
26
- if (!buffer) {
27
- throw new schematics_1.SchematicsException(`Could not find file for path: ${path}`);
28
- }
29
- return ts.createSourceFile(path, buffer.toString(), ts.ScriptTarget.Latest, true);
30
- }
31
- /** Get the version of a package name */
32
- function getPackageVersionFromPackageJson(tree, name) {
33
- if (!tree.exists('package.json')) {
34
- return null;
35
- }
36
- const packageJson = JSON.parse(tree.read('package.json').toString('utf-8'));
37
- if (packageJson.dependencies && packageJson.dependencies[name]) {
38
- return packageJson.dependencies[name];
39
- }
40
- return null;
41
- }
42
- /** Check if a package exists in the package.json */
43
- function hasPackage(tree, name) {
44
- if (!tree.exists('package.json')) {
45
- return null;
46
- }
47
- const packageJson = JSON.parse(tree.read('package.json').toString('utf-8'));
48
- return packageJson.dependencies && packageJson.dependencies[name];
49
- }
50
- /** Check if a package exists in the package.json */
51
- function hasDevPackage(tree, name) {
52
- if (!tree.exists('package.json')) {
53
- return null;
54
- }
55
- const packageJson = JSON.parse(tree.read('package.json').toString('utf-8'));
56
- return packageJson.devDependencies && packageJson.devDependencies[name];
57
- }
58
- /** Returns the source path for the application */
59
- function getSourceTreePath(host, options) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- const project = yield getWorkspaceProject(host, options);
62
- return project.sourceRoot ? project.sourceRoot : '';
63
- });
64
- }
65
- /** Returns the dist path for the application */
66
- function getDistPath(host, options) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- const project = yield getWorkspaceProject(host, options);
69
- const value = project.targets;
70
- const optionsRecord = value.get('build').options;
71
- const outputDistPath = optionsRecord['outputPath'];
72
- return outputDistPath.toString();
73
- });
74
- }
75
- /** factory function to create a workspaces.WorkspaceHost from a Tree */
76
- function createHost(tree) {
77
- return {
78
- readFile(path) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- const data = tree.read(path);
81
- if (!data) {
82
- throw new schematics_1.SchematicsException('File not found.');
83
- }
84
- return core_1.virtualFs.fileBufferToString(data);
85
- });
86
- },
87
- writeFile(path, data) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- return tree.overwrite(path, data);
90
- });
91
- },
92
- isDirectory(path) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- return !tree.exists(path) && tree.getDir(path).subfiles.length > 0;
95
- });
96
- },
97
- isFile(path) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- return tree.exists(path);
100
- });
101
- }
102
- };
103
- }
104
- /** Returns the workspace project for the application */
105
- function getWorkspaceProject(host, options) {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- const workspaceHost = createHost(host);
108
- const { workspace } = yield core_1.workspaces.readWorkspace('/', workspaceHost);
109
- if (!options.project) {
110
- options.project = workspace.extensions.defaultProject;
111
- }
112
- const project = workspace.projects.get(options.project);
113
- if (!project) {
114
- throw new schematics_1.SchematicsException(`Invalid project name: ${options.project}`);
115
- }
116
- return project;
117
- });
118
- }
119
- //# sourceMappingURL=package-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-utils.js","sourceRoot":"","sources":["../../../../../libs/platform/schematics/utils/package-utils.ts"],"names":[],"mappings":"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"}