cmat 0.0.90 → 0.0.91

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmat",
3
- "version": "0.0.90",
3
+ "version": "0.0.91",
4
4
  "author": {
5
5
  "name": "Yu Tao",
6
6
  "email": "916426364@qq.com"
@@ -48,13 +48,28 @@ declare class CmatHorizontalNavigationComponent implements OnInit, OnDestroy {
48
48
  readonly name: _angular_core.InputSignal<string>;
49
49
  readonly navigation: _angular_core.InputSignal<CmatNavigationItem[] | undefined>;
50
50
  readonly hasRouteReuseStrategy: _angular_core.InputSignal<boolean | undefined>;
51
+ /**
52
+ * 渲染用导航树:refreshToken变化时重新深拷贝整棵树,使每一级item获得新引用。
53
+ *
54
+ * 原因:@for的reconcile算法(valuesMatching)在同位置同引用(Object.is)时
55
+ * 直接判定匹配,根本不调用track表达式——原地修改(push/splice/字段赋值)后
56
+ * 仅靠track键变化无法触发视图更新。深拷贝产生新引用后,track键随refreshToken
57
+ * 变化→视图销毁重建→重新读取已修改的数据,刷新生效。
58
+ * 函数属性(hidden等)按引用保留,行为不变;未调用refresh()时computed命中缓存。
59
+ */
60
+ readonly _renderNavigation: _angular_core.Signal<CmatNavigationItem[]>;
51
61
  private _cmatNavigationService;
52
62
  constructor();
53
63
  ngOnInit(): void;
54
64
  ngOnDestroy(): void;
55
65
  refresh(): void;
56
- trackByFn(index: number, item: CmatNavigationItem): string | number;
66
+ trackByFn(index: number, item: CmatNavigationItem): string;
57
67
  goToRouterLink(link: string): void;
68
+ /**
69
+ * 深拷贝导航项树:每级item及children数组均生成新引用,
70
+ * 函数属性(hidden等)按引用保留。
71
+ */
72
+ private _deepCopyItems;
58
73
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CmatHorizontalNavigationComponent, never>;
59
74
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CmatHorizontalNavigationComponent, "cmat-horizontal-navigation", ["cmatHorizontalNavigation"], { "name": { "alias": "name"; "required": false; "isSignal": true; }; "navigation": { "alias": "navigation"; "required": false; "isSignal": true; }; "hasRouteReuseStrategy": { "alias": "hasRouteReuseStrategy"; "required": false; "isSignal": true; }; }, { "routeReuseStrategyEmitUrl": "routeReuseStrategyEmitUrl"; }, never, never, true, never>;
60
75
  }
@@ -82,6 +97,16 @@ declare class CmatVerticalNavigationComponent implements OnInit, AfterViewInit,
82
97
  onCollapsableItemCollapsed: ReplaySubject<CmatNavigationItem>;
83
98
  onCollapsableItemExpanded: ReplaySubject<CmatNavigationItem>;
84
99
  readonly refreshToken: _angular_core.WritableSignal<number>;
100
+ /**
101
+ * 渲染用导航树:refreshToken变化时重新深拷贝整棵树,使每一级item获得新引用。
102
+ *
103
+ * 原因:@for的reconcile算法(valuesMatching)在同位置同引用(Object.is)时
104
+ * 直接判定匹配,根本不调用track表达式——原地修改(push/splice/字段赋值)后
105
+ * 仅靠track键变化无法触发视图更新。深拷贝产生新引用后,track键随refreshToken
106
+ * 变化→视图销毁重建→重新读取已修改的数据,刷新生效。
107
+ * 函数属性(hidden等)按引用保留,行为不变;未调用refresh()时computed命中缓存。
108
+ */
109
+ readonly _renderNavigation: _angular_core.Signal<CmatNavigationItem[]>;
85
110
  readonly classList: _angular_core.Signal<string>;
86
111
  readonly styleList: _angular_core.Signal<string>;
87
112
  private readonly _openedState;
@@ -117,10 +142,15 @@ declare class CmatVerticalNavigationComponent implements OnInit, AfterViewInit,
117
142
  openAside(item: CmatNavigationItem): void;
118
143
  closeAside(): void;
119
144
  toggleAside(item: CmatNavigationItem): void;
120
- trackByFn(index: number, item: CmatNavigationItem): string | number;
145
+ trackByFn(index: number, item: CmatNavigationItem): string;
121
146
  selectItem(item: CmatNavigationItem): void;
122
147
  goToRouterLink(link: string): void;
123
148
  isItemVisible(item: CmatNavigationItem): boolean;
149
+ /**
150
+ * 深拷贝导航项树:每级item及children数组均生成新引用,
151
+ * 函数属性(hidden等)按引用保留。
152
+ */
153
+ private _deepCopyItems;
124
154
  private _removeOverlayElement;
125
155
  private _removeAsideOverlayElement;
126
156
  private _forceCleanupOverlay;
package/types/cmat.d.ts CHANGED
@@ -2839,13 +2839,28 @@ declare class CmatHorizontalNavigationComponent implements OnInit, OnDestroy {
2839
2839
  readonly name: _angular_core.InputSignal<string>;
2840
2840
  readonly navigation: _angular_core.InputSignal<CmatNavigationItem[] | undefined>;
2841
2841
  readonly hasRouteReuseStrategy: _angular_core.InputSignal<boolean | undefined>;
2842
+ /**
2843
+ * 渲染用导航树:refreshToken变化时重新深拷贝整棵树,使每一级item获得新引用。
2844
+ *
2845
+ * 原因:@for的reconcile算法(valuesMatching)在同位置同引用(Object.is)时
2846
+ * 直接判定匹配,根本不调用track表达式——原地修改(push/splice/字段赋值)后
2847
+ * 仅靠track键变化无法触发视图更新。深拷贝产生新引用后,track键随refreshToken
2848
+ * 变化→视图销毁重建→重新读取已修改的数据,刷新生效。
2849
+ * 函数属性(hidden等)按引用保留,行为不变;未调用refresh()时computed命中缓存。
2850
+ */
2851
+ readonly _renderNavigation: _angular_core.Signal<CmatNavigationItem[]>;
2842
2852
  private _cmatNavigationService;
2843
2853
  constructor();
2844
2854
  ngOnInit(): void;
2845
2855
  ngOnDestroy(): void;
2846
2856
  refresh(): void;
2847
- trackByFn(index: number, item: CmatNavigationItem): string | number;
2857
+ trackByFn(index: number, item: CmatNavigationItem): string;
2848
2858
  goToRouterLink(link: string): void;
2859
+ /**
2860
+ * 深拷贝导航项树:每级item及children数组均生成新引用,
2861
+ * 函数属性(hidden等)按引用保留。
2862
+ */
2863
+ private _deepCopyItems;
2849
2864
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CmatHorizontalNavigationComponent, never>;
2850
2865
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CmatHorizontalNavigationComponent, "cmat-horizontal-navigation", ["cmatHorizontalNavigation"], { "name": { "alias": "name"; "required": false; "isSignal": true; }; "navigation": { "alias": "navigation"; "required": false; "isSignal": true; }; "hasRouteReuseStrategy": { "alias": "hasRouteReuseStrategy"; "required": false; "isSignal": true; }; }, { "routeReuseStrategyEmitUrl": "routeReuseStrategyEmitUrl"; }, never, never, true, never>;
2851
2866
  }
@@ -2873,6 +2888,16 @@ declare class CmatVerticalNavigationComponent implements OnInit, AfterViewInit,
2873
2888
  onCollapsableItemCollapsed: ReplaySubject<CmatNavigationItem>;
2874
2889
  onCollapsableItemExpanded: ReplaySubject<CmatNavigationItem>;
2875
2890
  readonly refreshToken: _angular_core.WritableSignal<number>;
2891
+ /**
2892
+ * 渲染用导航树:refreshToken变化时重新深拷贝整棵树,使每一级item获得新引用。
2893
+ *
2894
+ * 原因:@for的reconcile算法(valuesMatching)在同位置同引用(Object.is)时
2895
+ * 直接判定匹配,根本不调用track表达式——原地修改(push/splice/字段赋值)后
2896
+ * 仅靠track键变化无法触发视图更新。深拷贝产生新引用后,track键随refreshToken
2897
+ * 变化→视图销毁重建→重新读取已修改的数据,刷新生效。
2898
+ * 函数属性(hidden等)按引用保留,行为不变;未调用refresh()时computed命中缓存。
2899
+ */
2900
+ readonly _renderNavigation: _angular_core.Signal<CmatNavigationItem[]>;
2876
2901
  readonly classList: _angular_core.Signal<string>;
2877
2902
  readonly styleList: _angular_core.Signal<string>;
2878
2903
  private readonly _openedState;
@@ -2908,10 +2933,15 @@ declare class CmatVerticalNavigationComponent implements OnInit, AfterViewInit,
2908
2933
  openAside(item: CmatNavigationItem): void;
2909
2934
  closeAside(): void;
2910
2935
  toggleAside(item: CmatNavigationItem): void;
2911
- trackByFn(index: number, item: CmatNavigationItem): string | number;
2936
+ trackByFn(index: number, item: CmatNavigationItem): string;
2912
2937
  selectItem(item: CmatNavigationItem): void;
2913
2938
  goToRouterLink(link: string): void;
2914
2939
  isItemVisible(item: CmatNavigationItem): boolean;
2940
+ /**
2941
+ * 深拷贝导航项树:每级item及children数组均生成新引用,
2942
+ * 函数属性(hidden等)按引用保留。
2943
+ */
2944
+ private _deepCopyItems;
2915
2945
  private _removeOverlayElement;
2916
2946
  private _removeAsideOverlayElement;
2917
2947
  private _forceCleanupOverlay;
@@ -3581,7 +3611,7 @@ declare class CmatSelectSearchComponent implements OnInit, ControlValueAccessor
3581
3611
  readonly toggleAllCheckboxChecked: _angular_core.InputSignal<boolean>;
3582
3612
  readonly toggleAllCheckboxIndeterminate: _angular_core.InputSignal<boolean>;
3583
3613
  readonly toggleAllCheckboxTooltipMessage: _angular_core.InputSignal<string>;
3584
- readonly toggleAllCheckboxTooltipPosition: _angular_core.InputSignal<"left" | "right" | "before" | "after" | "above" | "below">;
3614
+ readonly toggleAllCheckboxTooltipPosition: _angular_core.InputSignal<"left" | "right" | "after" | "before" | "above" | "below">;
3585
3615
  readonly hideClearSearchButton: _angular_core.InputSignal<boolean>;
3586
3616
  readonly alwaysRestoreSelectedOptionsMulti: _angular_core.InputSignal<boolean>;
3587
3617
  /**