@fundamental-ngx/platform 0.58.0-rc.60 → 0.58.0-rc.62

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.
@@ -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>;
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/platform",
3
- "version": "0.58.0-rc.60",
3
+ "version": "0.58.0-rc.62",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - platform",
6
6
  "license": "Apache-2.0",
@@ -13,9 +13,9 @@
13
13
  "node": ">= 10"
14
14
  },
15
15
  "peerDependencies": {
16
- "@fundamental-ngx/cdk": "0.58.0-rc.60",
17
- "@fundamental-ngx/core": "0.58.0-rc.60",
18
- "@fundamental-ngx/i18n": "0.58.0-rc.60"
16
+ "@fundamental-ngx/cdk": "0.58.0-rc.62",
17
+ "@fundamental-ngx/core": "0.58.0-rc.62",
18
+ "@fundamental-ngx/i18n": "0.58.0-rc.62"
19
19
  },
20
20
  "dependencies": {
21
21
  "fast-deep-equal": "3.1.3",
@@ -49,17 +49,17 @@
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"
52
+ "./info-label": {
53
+ "types": "./info-label/index.d.ts",
54
+ "default": "./fesm2022/fundamental-ngx-platform-info-label.mjs"
55
55
  },
56
56
  "./icon-tab-bar": {
57
57
  "types": "./icon-tab-bar/index.d.ts",
58
58
  "default": "./fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs"
59
59
  },
60
- "./info-label": {
61
- "types": "./info-label/index.d.ts",
62
- "default": "./fesm2022/fundamental-ngx-platform-info-label.mjs"
60
+ "./form": {
61
+ "types": "./form/index.d.ts",
62
+ "default": "./fesm2022/fundamental-ngx-platform-form.mjs"
63
63
  },
64
64
  "./link": {
65
65
  "types": "./link/index.d.ts",
@@ -89,14 +89,14 @@
89
89
  "types": "./object-marker/index.d.ts",
90
90
  "default": "./fesm2022/fundamental-ngx-platform-object-marker.mjs"
91
91
  },
92
- "./object-status": {
93
- "types": "./object-status/index.d.ts",
94
- "default": "./fesm2022/fundamental-ngx-platform-object-status.mjs"
95
- },
96
92
  "./page-footer": {
97
93
  "types": "./page-footer/index.d.ts",
98
94
  "default": "./fesm2022/fundamental-ngx-platform-page-footer.mjs"
99
95
  },
96
+ "./object-status": {
97
+ "types": "./object-status/index.d.ts",
98
+ "default": "./fesm2022/fundamental-ngx-platform-object-status.mjs"
99
+ },
100
100
  "./panel": {
101
101
  "types": "./panel/index.d.ts",
102
102
  "default": "./fesm2022/fundamental-ngx-platform-panel.mjs"
@@ -113,34 +113,34 @@
113
113
  "types": "./shared/index.d.ts",
114
114
  "default": "./fesm2022/fundamental-ngx-platform-shared.mjs"
115
115
  },
116
- "./slider": {
117
- "types": "./slider/index.d.ts",
118
- "default": "./fesm2022/fundamental-ngx-platform-slider.mjs"
119
- },
120
116
  "./smart-filter-bar": {
121
117
  "types": "./smart-filter-bar/index.d.ts",
122
118
  "default": "./fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs"
123
119
  },
124
- "./split-menu-button": {
125
- "types": "./split-menu-button/index.d.ts",
126
- "default": "./fesm2022/fundamental-ngx-platform-split-menu-button.mjs"
127
- },
128
- "./table": {
129
- "types": "./table/index.d.ts",
130
- "default": "./fesm2022/fundamental-ngx-platform-table.mjs"
120
+ "./slider": {
121
+ "types": "./slider/index.d.ts",
122
+ "default": "./fesm2022/fundamental-ngx-platform-slider.mjs"
131
123
  },
132
124
  "./table-helpers": {
133
125
  "types": "./table-helpers/index.d.ts",
134
126
  "default": "./fesm2022/fundamental-ngx-platform-table-helpers.mjs"
135
127
  },
136
- "./value-help-dialog": {
137
- "types": "./value-help-dialog/index.d.ts",
138
- "default": "./fesm2022/fundamental-ngx-platform-value-help-dialog.mjs"
128
+ "./table": {
129
+ "types": "./table/index.d.ts",
130
+ "default": "./fesm2022/fundamental-ngx-platform-table.mjs"
131
+ },
132
+ "./split-menu-button": {
133
+ "types": "./split-menu-button/index.d.ts",
134
+ "default": "./fesm2022/fundamental-ngx-platform-split-menu-button.mjs"
139
135
  },
140
136
  "./variant-management": {
141
137
  "types": "./variant-management/index.d.ts",
142
138
  "default": "./fesm2022/fundamental-ngx-platform-variant-management.mjs"
143
139
  },
140
+ "./value-help-dialog": {
141
+ "types": "./value-help-dialog/index.d.ts",
142
+ "default": "./fesm2022/fundamental-ngx-platform-value-help-dialog.mjs"
143
+ },
144
144
  "./wizard-generator": {
145
145
  "types": "./wizard-generator/index.d.ts",
146
146
  "default": "./fesm2022/fundamental-ngx-platform-wizard-generator.mjs"
@@ -31,7 +31,7 @@ function callCoreSchematic(options) {
31
31
  (0, dependencies_1.addPackageJsonDependency)(tree, {
32
32
  type: dependencies_1.NodeDependencyType.Default,
33
33
  // Will be replaced with the real version during sync-version script run
34
- version: `0.58.0-rc.60`,
34
+ version: `0.58.0-rc.62`,
35
35
  name: '@fundamental-ngx/core'
36
36
  });
37
37
  const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask({