@uni-design-system/uni-angular 2.0.4 → 3.0.1

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": "@uni-design-system/uni-angular",
3
- "version": "2.0.4",
3
+ "version": "3.0.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/uni-design-system/uni",
@@ -16,7 +16,7 @@
16
16
  "@angular/common": "^21.2.0",
17
17
  "@angular/core": "^21.2.0",
18
18
  "@emotion/css": "^11.0.0",
19
- "@uni-design-system/uni-core": "2.0.4"
19
+ "@uni-design-system/uni-core": "3.0.1"
20
20
  },
21
21
  "dependencies": {
22
22
  "@floating-ui/dom": "^1.7.6",
@@ -1,17 +1,188 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Signal, ElementRef, EventEmitter, OnInit, OnDestroy, TemplateRef } from '@angular/core';
2
+ import { Signal, WritableSignal, ElementRef, EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, TemplateRef, AfterViewInit, InjectionToken } from '@angular/core';
3
3
  import * as _uni_design_system_uni_core from '@uni-design-system/uni-core';
4
- import { Icons, UniTheme, ComponentName, ComponentTheme, NullableSize, ThemeName, TextRole, ContentColorToken, Variant, Size, Thickness, ContainerColorToken, NullableStyleExpression, ColorKey, Typeface, Radius, OptionalSize, Border, Shadow, ZIndexableElements, ColorToken, RadiiSize, Elevation, JustifyContent, StyleExpression, Orientation, OptionalAlignSelf, OptionalAlignItems, OptionalAlignContent, OptionalJustifyContent, OptionalDisplay, OptionalPosition, OptionalOverflow, OptionalFlexDirection, OptionalTextAlign, OptionalWrap } from '@uni-design-system/uni-core';
4
+ import { Icons, Variant, ContainerColorToken, UniTheme, ComponentName, ComponentTheme, NullableSize, ThemeName, TextRole, ContentColorToken, Size, Thickness, NullableStyleExpression, ColorKey, Typeface, Radius, OptionalSize, Border, Shadow, ZIndexableElements, ColorToken, RadiiSize, Elevation, JustifyContent, StyleExpression, Orientation, OptionalAlignSelf, OptionalAlignItems, OptionalAlignContent, OptionalJustifyContent, OptionalDisplay, OptionalPosition, OptionalOverflow, OptionalFlexDirection, OptionalTextAlign, OptionalWrap } from '@uni-design-system/uni-core';
5
5
  import { Placement as Placement$1, OffsetOptions } from '@floating-ui/dom';
6
6
 
7
+ type SortDirection = 'asc' | 'desc' | 'indet';
8
+ interface Sort<T> {
9
+ column?: keyof T;
10
+ direction: SortDirection;
11
+ }
12
+ declare abstract class UniBaseDatasource<T> {
13
+ abstract records: Signal<T[]>;
14
+ abstract recordCount: Signal<number>;
15
+ selections: WritableSignal<T[]>;
16
+ sort: WritableSignal<Sort<T>>;
17
+ sortColumn: Signal<keyof T>;
18
+ sortDirection: Signal<SortDirection>;
19
+ abstract pageIndex: Signal<number>;
20
+ abstract pageSize: Signal<number>;
21
+ abstract pageCount: Signal<number>;
22
+ pages: Signal<number[]>;
23
+ startIndex: Signal<number>;
24
+ endIndex: Signal<number>;
25
+ disablePrevious: Signal<boolean>;
26
+ disableNext: Signal<boolean>;
27
+ truncatedPages: Signal<(string | number)[]>;
28
+ isSelected(row: T): boolean;
29
+ toggleSelection(row: T): void;
30
+ clearSelections(): void;
31
+ selectAll(): void;
32
+ abstract sortRecords(sort: Sort<T>): void;
33
+ abstract firstPage(): void;
34
+ abstract nextPage(): void;
35
+ abstract previousPage(): void;
36
+ abstract lastPage(): void;
37
+ abstract jumpToPage(page: number): void;
38
+ abstract setPageSize(size: number): void;
39
+ }
40
+
41
+ declare class UniRecordDatasource<T> extends UniBaseDatasource<T> {
42
+ private _pageNumber;
43
+ private _pageSize;
44
+ initialRecords: _angular_core.WritableSignal<T[]>;
45
+ recordCount: _angular_core.Signal<number>;
46
+ filter: _angular_core.WritableSignal<(value: T) => boolean>;
47
+ pageIndex: _angular_core.WritableSignal<number>;
48
+ pageSize: _angular_core.Signal<number>;
49
+ pageCount: _angular_core.Signal<number>;
50
+ records: _angular_core.Signal<T[]>;
51
+ constructor(data: T[]);
52
+ sortRecords(sort: Sort<T>): void;
53
+ firstPage(): void;
54
+ nextPage(): void;
55
+ previousPage(): void;
56
+ lastPage(): void;
57
+ jumpToPage(page: number): void;
58
+ setPageSize(size: number): void;
59
+ setFilter(filter: (value: T) => boolean): void;
60
+ clearFilter(): void;
61
+ }
62
+
63
+ interface PageRequest {
64
+ pageNumber: number;
65
+ pageSize: number;
66
+ sortColumn?: string;
67
+ sortDirection?: SortDirection;
68
+ filter?: Record<string, any>;
69
+ }
70
+ interface PageResponse<T> {
71
+ data: T[];
72
+ totalRecords: number;
73
+ pageNumber: number;
74
+ pageSize: number;
75
+ }
76
+ type DataLoader<T> = (request: PageRequest) => Promise<PageResponse<T>>;
77
+ declare class UniServerSideDatasource<T> extends UniBaseDatasource<T> {
78
+ private dataLoader;
79
+ private _pageNumber;
80
+ private _pageSize;
81
+ private _sortColumn;
82
+ private _sortDirection;
83
+ private filter;
84
+ sortColumn: _angular_core.Signal<keyof T>;
85
+ sortDirection: _angular_core.Signal<SortDirection>;
86
+ private totalRecords;
87
+ private dataResource;
88
+ pageIndex: _angular_core.Signal<number>;
89
+ pageSize: _angular_core.Signal<number>;
90
+ pageCount: _angular_core.Signal<number>;
91
+ private readonly _records;
92
+ records: _angular_core.Signal<T[]>;
93
+ recordCount: _angular_core.Signal<number>;
94
+ isLoading: _angular_core.Signal<boolean>;
95
+ error: _angular_core.Signal<Error>;
96
+ hasError: _angular_core.Signal<boolean>;
97
+ constructor(dataLoader: DataLoader<T>, initialPageSize?: number);
98
+ sortRecords(sort: Sort<T>): void;
99
+ firstPage(): void;
100
+ nextPage(): void;
101
+ previousPage(): void;
102
+ lastPage(): void;
103
+ jumpToPage(page: number): void;
104
+ setPageSize(size: number): void;
105
+ setFilter(filterValues: Record<string, any>): void;
106
+ clearFilter(): void;
107
+ refresh(): void;
108
+ getPageRequest(): PageRequest;
109
+ }
110
+
111
+ type UniDatasource<T> = UniBaseDatasource<T>;
112
+
113
+ declare class LocalStorageService {
114
+ private isLocalStorageAvailable;
115
+ setItem<T>(key: string, value: T): boolean;
116
+ getItem<T>(key: string): T | null;
117
+ removeItem(key: string): boolean;
118
+ clear(): boolean;
119
+ hasKey(key: string): boolean;
120
+ getAllKeys(): string[];
121
+ getSize(): number;
122
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LocalStorageService, never>;
123
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<LocalStorageService>;
124
+ }
125
+
7
126
  type IconName = keyof Icons;
8
127
 
128
+ interface Alert {
129
+ message: string;
130
+ iconName?: IconName;
131
+ symbolName?: string;
132
+ variant?: Variant;
133
+ action?: () => void;
134
+ actionLabel?: string;
135
+ topPosition?: number;
136
+ }
137
+ interface Snackbar {
138
+ message: string;
139
+ action?: () => void;
140
+ actionLabel?: string;
141
+ iconName?: IconName;
142
+ symbolName?: string;
143
+ variant?: Variant;
144
+ timeout?: number | string | 'disabled';
145
+ }
146
+ interface Confirmation {
147
+ title: string;
148
+ message: string;
149
+ action: () => void;
150
+ actionLabel?: string;
151
+ dismissLabel?: string;
152
+ color?: ContainerColorToken;
153
+ }
154
+
155
+ declare class NotificationService {
156
+ alert: _angular_core.WritableSignal<Alert>;
157
+ showAlert: (alert: Alert) => void;
158
+ hideAlert: () => void;
159
+ snackbar: _angular_core.WritableSignal<Snackbar>;
160
+ showSnackbar: (snackbar: Snackbar) => void;
161
+ hideSnackbar: () => void;
162
+ confirmation: _angular_core.WritableSignal<Confirmation>;
163
+ showConfirmation: (confirmation: Confirmation) => void;
164
+ hideConfirmation: () => void;
165
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationService, never>;
166
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NotificationService>;
167
+ }
168
+
9
169
  interface Option<T = unknown> {
10
170
  label: string;
11
171
  value: T;
12
172
  }
13
173
  type Options<T = unknown> = Option<T>[];
14
174
 
175
+ declare function useTimer(): {
176
+ start: (durationMs: number, onComplete?: () => void) => void;
177
+ pause: () => void;
178
+ resume: () => void;
179
+ stop: () => void;
180
+ msRemaining: _angular_core.WritableSignal<number>;
181
+ isPaused: _angular_core.WritableSignal<boolean>;
182
+ isActive: _angular_core.Signal<boolean>;
183
+ secondsRemaining: _angular_core.Signal<number>;
184
+ };
185
+
15
186
  declare class ThemeService {
16
187
  private themes;
17
188
  private localStorage;
@@ -271,6 +442,22 @@ declare class UniIconComponent {
271
442
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniIconComponent, "uni-icon, Icon", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; }; }, {}, never, never, true, never>;
272
443
  }
273
444
 
445
+ declare class UniIconButtonComponent implements OnChanges {
446
+ private theme;
447
+ config: _angular_core.Signal<_uni_design_system_uni_core.ComponentTheme<unknown>>;
448
+ iconName?: IconName;
449
+ symbolName?: string;
450
+ variant: Variant;
451
+ size: Size;
452
+ disable?: boolean;
453
+ loading?: boolean;
454
+ opticalSize: number;
455
+ get className(): string;
456
+ ngOnChanges(changes: SimpleChanges): void;
457
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniIconButtonComponent, never>;
458
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniIconButtonComponent, "button[uni-icon-button], button[icon-button]", never, { "iconName": { "alias": "iconName"; "required": false; }; "symbolName": { "alias": "symbolName"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "opticalSize": { "alias": "opticalSize"; "required": false; }; }, {}, never, never, true, [{ directive: typeof RippleDirective; inputs: {}; outputs: {}; }]>;
459
+ }
460
+
274
461
  declare class UniBoxComponent {
275
462
  theme: ThemeService;
276
463
  color: _angular_core.InputSignal<ContainerColorToken>;
@@ -410,6 +597,102 @@ declare class UniMenuComponent {
410
597
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniMenuComponent, "Menu, uni-menu", never, { "menuItems": { "alias": "menuItems"; "required": true; "isSignal": true; }; "activeItem": { "alias": "activeItem"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; }, { "menuItemClicked": "menuItemClicked"; }, never, ["*"], true, never>;
411
598
  }
412
599
 
600
+ interface UniAlertOptions {
601
+ defaultVariant: Variant;
602
+ borderRadius: Radius;
603
+ transitionSpeed: number;
604
+ topPosition: string | number;
605
+ elevation: Elevation;
606
+ }
607
+
608
+ declare class UniAlertComponent extends BaseComponent<UniAlertOptions> implements AfterViewInit {
609
+ show: _angular_core.ModelSignal<boolean>;
610
+ iconName: _angular_core.InputSignal<string>;
611
+ symbolName: _angular_core.InputSignal<string>;
612
+ useVariant: _angular_core.InputSignal<boolean>;
613
+ showing: EventEmitter<boolean>;
614
+ alertRef?: ElementRef<HTMLDialogElement>;
615
+ private readonly alertState;
616
+ private readonly effectiveVariant;
617
+ protected readonly alertClass: _angular_core.Signal<string>;
618
+ private readonly fadeOut;
619
+ constructor();
620
+ ngAfterViewInit(): void;
621
+ open(): void;
622
+ close(): void;
623
+ protected readonly effectiveIconName: _angular_core.Signal<string>;
624
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniAlertComponent, never>;
625
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniAlertComponent, "uni-alert, Alert", never, { "show": { "alias": "show"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "symbolName": { "alias": "symbolName"; "required": false; "isSignal": true; }; "useVariant": { "alias": "useVariant"; "required": false; "isSignal": true; }; }, { "show": "showChange"; "showing": "showing"; }, never, ["*"], true, never>;
626
+ }
627
+
628
+ declare class ConfirmationDialogComponent {
629
+ show: _angular_core.InputSignal<boolean>;
630
+ confirmation?: Confirmation;
631
+ showing: EventEmitter<any>;
632
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmationDialogComponent, never>;
633
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfirmationDialogComponent, "uni-confirmation-dialog, Confirmation", never, { "show": { "alias": "show"; "required": false; "isSignal": true; }; "confirmation": { "alias": "confirmation"; "required": false; }; }, { "showing": "showing"; }, never, never, true, never>;
634
+ }
635
+
636
+ declare class NotificationsComponent {
637
+ notifications: NotificationService;
638
+ private readonly alertState;
639
+ private readonly snackbarState;
640
+ private readonly confirmationState;
641
+ protected readonly showAlert: _angular_core.Signal<boolean>;
642
+ protected readonly showSnackbar: _angular_core.Signal<boolean>;
643
+ protected readonly showConfirmation: _angular_core.Signal<boolean>;
644
+ protected readonly alert: _angular_core.Signal<Alert>;
645
+ protected readonly snackbar: _angular_core.Signal<Snackbar>;
646
+ protected readonly confirmation: _angular_core.Signal<Confirmation>;
647
+ constructor();
648
+ handleConfirmationShowingEvent(showing: boolean): void;
649
+ handleSnackbarShowingEvent(showing: boolean): void;
650
+ handleAlertShowingEvent(showing: boolean): void;
651
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationsComponent, never>;
652
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NotificationsComponent, "uni-notifications, Notifications", never, {}, {}, never, never, true, never>;
653
+ }
654
+
655
+ interface UniSnackbarOptions {
656
+ bottomPosition: number;
657
+ transitionDelay: string;
658
+ autoCloseDelay: number;
659
+ }
660
+
661
+ declare class UniSnackbarComponent extends BaseComponent<UniSnackbarOptions> implements AfterViewInit, OnChanges {
662
+ timer: {
663
+ start: (durationMs: number, onComplete?: () => void) => void;
664
+ pause: () => void;
665
+ resume: () => void;
666
+ stop: () => void;
667
+ msRemaining: _angular_core.WritableSignal<number>;
668
+ isPaused: _angular_core.WritableSignal<boolean>;
669
+ isActive: _angular_core.Signal<boolean>;
670
+ secondsRemaining: _angular_core.Signal<number>;
671
+ };
672
+ snackbarClass?: string;
673
+ show?: boolean;
674
+ iconName: _angular_core.InputSignal<string>;
675
+ symbolName: _angular_core.InputSignal<string>;
676
+ timeout: _angular_core.InputSignal<string | number>;
677
+ actionLabel: _angular_core.InputSignal<string>;
678
+ useVariant: _angular_core.InputSignal<boolean>;
679
+ action: EventEmitter<any>;
680
+ showing: EventEmitter<any>;
681
+ snackbarRef?: ElementRef;
682
+ private get _snackbar();
683
+ constructor();
684
+ fadeOut: string;
685
+ ngOnChanges(changes: SimpleChanges): void;
686
+ ngAfterViewInit(): void;
687
+ private get _timeout();
688
+ open(): void;
689
+ close(): void;
690
+ protected pauseTimer(): void;
691
+ protected resumeTimer(): void;
692
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UniSnackbarComponent, never>;
693
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSnackbarComponent, "uni-snackbar, Snackbar", never, { "show": { "alias": "show"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "symbolName": { "alias": "symbolName"; "required": false; "isSignal": true; }; "timeout": { "alias": "timeout"; "required": false; "isSignal": true; }; "actionLabel": { "alias": "actionLabel"; "required": false; "isSignal": true; }; "useVariant": { "alias": "useVariant"; "required": false; "isSignal": true; }; }, { "action": "action"; "showing": "showing"; }, never, ["*"], true, never>;
694
+ }
695
+
413
696
  declare class UniSymbolComponent {
414
697
  name: string;
415
698
  fill: 1 | 0;
@@ -421,6 +704,8 @@ declare class UniSymbolComponent {
421
704
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSymbolComponent, "uni-symbol, Symbol", never, { "name": { "alias": "name"; "required": false; }; "fill": { "alias": "fill"; "required": false; }; "weight": { "alias": "weight"; "required": false; }; "grade": { "alias": "grade"; "required": false; }; "opticalSize": { "alias": "opticalSize"; "required": false; }; }, {}, never, never, true, never>;
422
705
  }
423
706
 
707
+ declare const UNI_THEMES: InjectionToken<Record<string, UniTheme>>;
708
+
424
709
  declare class UniTextComponent {
425
710
  theme: ThemeService;
426
711
  typeface: _angular_core.InputSignal<string>;
@@ -479,5 +764,5 @@ declare class UniTooltipComponent extends BaseComponent<UniTooltipOptions> imple
479
764
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniTooltipComponent, "uni-tooltip, Tooltip", never, { "hoverDelay": { "alias": "hoverDelay"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "inlineText": { "alias": "inlineText"; "required": false; "isSignal": true; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; }, {}, never, ["*"], true, never>;
480
765
  }
481
766
 
482
- export { RippleDirective, UniBadgeComponent, UniBoxComponent, UniButtonComponent, UniCardComponent, UniCardContentComponent, UniCardHeaderComponent, UniCenterComponent, UniDialogButtonsComponent, UniDialogComponent, UniDialogHeaderComponent, UniDividerComponent, UniDropdownComponent, UniGridAreaComponent, UniGridComponent, UniIconComponent, UniMenuComponent, UniRowComponent, UniStackComponent, UniSymbolComponent, UniTextComponent, UniTooltipComponent, UniWrapComponent };
483
- export type { MenuItem, MenuItemWithLabel, MenuItemWithTemplate };
767
+ export { ConfirmationDialogComponent, LocalStorageService, NotificationService, NotificationsComponent, RippleDirective, ThemeService, UNI_THEMES, UniAlertComponent, UniBadgeComponent, UniBaseDatasource, UniBoxComponent, UniButtonComponent, UniCardComponent, UniCardContentComponent, UniCardHeaderComponent, UniCenterComponent, UniDialogButtonsComponent, UniDialogComponent, UniDialogHeaderComponent, UniDividerComponent, UniDropdownComponent, UniGridAreaComponent, UniGridComponent, UniIconButtonComponent, UniIconComponent, UniMenuComponent, UniRecordDatasource, UniRowComponent, UniServerSideDatasource, UniSnackbarComponent, UniStackComponent, UniSymbolComponent, UniTextComponent, UniTooltipComponent, UniWrapComponent, useTimer };
768
+ export type { Alert, Confirmation, DataLoader, MenuItem, MenuItemWithLabel, MenuItemWithTemplate, Option, Options, PageRequest, PageResponse, Snackbar, Sort, SortDirection, UniDatasource };