@edmicro/olkit 1.1.8 → 1.2.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/edmicro-olkit.mjs +790 -45
- package/fesm2022/edmicro-olkit.mjs.map +1 -1
- package/olkit.css +1 -1
- package/package.json +1 -1
- package/types/edmicro-olkit.d.ts +486 -10
- package/types/edmicro-olkit.d.ts.map +1 -1
- package/version.txt +2 -2
package/types/edmicro-olkit.d.ts
CHANGED
|
@@ -1984,7 +1984,9 @@ declare class OlDrawerFooter {
|
|
|
1984
1984
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlDrawerFooter, "ol-drawer-footer", never, { "layout": { "alias": "layout"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1985
1985
|
}
|
|
1986
1986
|
|
|
1987
|
-
type DropdownPlacement = 'bottom' | 'top' | 'left' | 'right' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'
|
|
1987
|
+
type DropdownPlacement = 'bottom' | 'top' | 'left' | 'right' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'
|
|
1988
|
+
/** Mở sang bên, căn mép trên / dưới theo nút — vd. menu tài khoản ở đáy sidebar (`right-end`). */
|
|
1989
|
+
| 'right-start' | 'right-end' | 'left-start' | 'left-end';
|
|
1988
1990
|
/**
|
|
1989
1991
|
* `context` là menu chuột phải. Nó KHÔNG neo vào nút trigger như hai kiểu kia
|
|
1990
1992
|
* mà neo vào chỗ con trỏ — nên có thêm một mốc ẩn 0×0 di chuyển theo chuột.
|
|
@@ -2030,6 +2032,12 @@ declare class OlDropdown {
|
|
|
2030
2032
|
*/
|
|
2031
2033
|
readonly appendTo: _angular_core.InputSignal<"body" | null>;
|
|
2032
2034
|
readonly placement: _angular_core.InputSignal<DropdownPlacement>;
|
|
2035
|
+
/**
|
|
2036
|
+
* Khoảng cách (px) từ nút tới panel. Mặc định 8. Tăng khi nút nằm thụt
|
|
2037
|
+
* trong một khung mà panel phải mọc RA NGOÀI khung — vd. thẻ tài khoản trong
|
|
2038
|
+
* `ol-app-nav` (đệm 20px) mở sang phải phải vượt qua mép sidebar.
|
|
2039
|
+
*/
|
|
2040
|
+
readonly offset: _angular_core.InputSignal<number>;
|
|
2033
2041
|
readonly trigger: _angular_core.InputSignal<DropdownTrigger>;
|
|
2034
2042
|
readonly autoClose: _angular_core.InputSignal<DropdownAutoClose>;
|
|
2035
2043
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
@@ -2134,7 +2142,7 @@ declare class OlDropdown {
|
|
|
2134
2142
|
toggle(): void;
|
|
2135
2143
|
private clearHideTimeout;
|
|
2136
2144
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlDropdown, never>;
|
|
2137
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlDropdown, "ol-dropdown", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "appendTo": { "alias": "appendTo"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "triggerClass": { "alias": "triggerClass"; "required": false; "isSignal": true; }; "menuClass": { "alias": "menuClass"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "opened": "opened"; "closed": "closed"; }, never, ["[slot=trigger], [trigger]", "[triggerIcon]", "[triggerIcon]", "*"], true, never>;
|
|
2145
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlDropdown, "ol-dropdown", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "appendTo": { "alias": "appendTo"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "triggerClass": { "alias": "triggerClass"; "required": false; "isSignal": true; }; "menuClass": { "alias": "menuClass"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "opened": "opened"; "closed": "closed"; }, never, ["[slot=trigger], [trigger]", "[triggerIcon]", "[triggerIcon]", "*"], true, never>;
|
|
2138
2146
|
}
|
|
2139
2147
|
|
|
2140
2148
|
declare class OlDropdownItem {
|
|
@@ -3603,6 +3611,16 @@ interface SegmentedOption<T = string | number> {
|
|
|
3603
3611
|
}
|
|
3604
3612
|
type SegmentedColor = 'neutral' | 'brand' | 'success' | 'warning' | 'danger';
|
|
3605
3613
|
type SegmentedSize = 'sm' | 'base';
|
|
3614
|
+
/**
|
|
3615
|
+
* Tông của khung theo NỀN đặt nó lên.
|
|
3616
|
+
*
|
|
3617
|
+
* `default` rãnh xám `bg-neutral-tertiary`, mục chọn nổi nền trắng — nền sáng
|
|
3618
|
+
* `inverse` cho nền TỐI / màu (thanh menu navy): rãnh trắng 15% để LỘ màu nền
|
|
3619
|
+
* bên dưới, chữ mục chưa chọn trắng; mục chọn vẫn nền trắng, chữ
|
|
3620
|
+
* brand-900 GHIM (không đổi theo `.dark`: nền trắng ở cả hai chế
|
|
3621
|
+
* độ — `--text-fg-brand-strong` lật sang brand-300 sẽ chìm)
|
|
3622
|
+
*/
|
|
3623
|
+
type SegmentedVariant = 'default' | 'inverse';
|
|
3606
3624
|
/**
|
|
3607
3625
|
* Chọn MỘT trong vài chế độ loại trừ nhau, đặt cạnh nhau trên một rãnh xám;
|
|
3608
3626
|
* mục đang chọn nổi lên nền trắng (segmented control).
|
|
@@ -3627,6 +3645,13 @@ declare class OlSegmented implements ControlValueAccessor {
|
|
|
3627
3645
|
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
3628
3646
|
/** Tên nhóm cho bộ đọc màn hình — nên đặt, vì nhóm không có nhãn nhìn thấy. */
|
|
3629
3647
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
3648
|
+
/** Tông khung theo nền — xem `SegmentedVariant`. */
|
|
3649
|
+
readonly variant: _angular_core.InputSignal<SegmentedVariant>;
|
|
3650
|
+
/**
|
|
3651
|
+
* Class màu nền tuỳ ý cho khung (rãnh), thay nền của `variant` — ví dụ
|
|
3652
|
+
* `bg-brand` hay `bg-[var(--bg-app-nav-hover)]`. Mục đang chọn giữ nguyên.
|
|
3653
|
+
*/
|
|
3654
|
+
readonly trackClass: _angular_core.InputSignal<string>;
|
|
3630
3655
|
private readonly host;
|
|
3631
3656
|
private onChange;
|
|
3632
3657
|
private onTouched;
|
|
@@ -3644,7 +3669,7 @@ declare class OlSegmented implements ControlValueAccessor {
|
|
|
3644
3669
|
registerOnTouched(fn: () => void): void;
|
|
3645
3670
|
setDisabledState(isDisabled: boolean): void;
|
|
3646
3671
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlSegmented, never>;
|
|
3647
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlSegmented, "ol-segmented", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; }, never, never, true, never>;
|
|
3672
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlSegmented, "ol-segmented", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "trackClass": { "alias": "trackClass"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; }, never, never, true, never>;
|
|
3648
3673
|
}
|
|
3649
3674
|
|
|
3650
3675
|
/**
|
|
@@ -4941,6 +4966,73 @@ declare class OlListGroupItem {
|
|
|
4941
4966
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlListGroupItem, "ol-list-group-item", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, ["*"], true, never>;
|
|
4942
4967
|
}
|
|
4943
4968
|
|
|
4969
|
+
/** `full`: cú mèo + chữ "nluyện.vn" (tỉ lệ ~5:1). `mark`: chỉ cú mèo, vuông. */
|
|
4970
|
+
type LogoVariant = 'full' | 'mark';
|
|
4971
|
+
/**
|
|
4972
|
+
* Bản màu nào. Chọn theo **màu NỀN** đặt logo, không theo chế độ sáng/tối:
|
|
4973
|
+
*
|
|
4974
|
+
* - `color` — nền sáng (trắng, xám nhạt).
|
|
4975
|
+
* - `white` — nền tối/brand (menu navy của `ol-app-nav`, banner brand). Menu
|
|
4976
|
+
* navy ở CẢ hai chế độ nên luôn dùng bản trắng.
|
|
4977
|
+
* - `auto` — nền đổi theo chế độ (`bg-neutral-primary`…): sáng → màu,
|
|
4978
|
+
* `.dark` → trắng. Vẽ cả hai bản, CSS ẩn một — không cần JS theo dõi chế độ.
|
|
4979
|
+
*/
|
|
4980
|
+
type LogoTone = 'auto' | 'color' | 'white';
|
|
4981
|
+
/**
|
|
4982
|
+
* Logo Ôn Luyện — Figma `Logo ol` (#6603:1269), 4 bản: dài/vuông × màu/trắng.
|
|
4983
|
+
*
|
|
4984
|
+
* SVG nhúng sẵn trong gói: nơi dùng không phải chép file ảnh vào `assets/`.
|
|
4985
|
+
* Cao theo `height` (px), rộng tự theo tỉ lệ.
|
|
4986
|
+
*
|
|
4987
|
+
* ```html
|
|
4988
|
+
* <ol-logo /> <!-- dài, tự đổi theo chế độ, cao 32px -->
|
|
4989
|
+
* <ol-logo variant="mark" tone="white" [height]="40" />
|
|
4990
|
+
* ```
|
|
4991
|
+
*/
|
|
4992
|
+
declare class OlLogo {
|
|
4993
|
+
private readonly sanitizer;
|
|
4994
|
+
private readonly uid;
|
|
4995
|
+
readonly variant: _angular_core.InputSignal<LogoVariant>;
|
|
4996
|
+
readonly tone: _angular_core.InputSignal<LogoTone>;
|
|
4997
|
+
/** Chiều cao (px). Bản dài 32px rộng ~164px; bản vuông bằng cạnh. */
|
|
4998
|
+
readonly height: _angular_core.InputSignal<number>;
|
|
4999
|
+
/** Tên đọc cho trình đọc màn hình. */
|
|
5000
|
+
readonly alt: _angular_core.InputSignal<string>;
|
|
5001
|
+
/** Bản màu — `null` khi `tone="white"`. */
|
|
5002
|
+
readonly colorSvg: _angular_core.Signal<SafeHtml | null>;
|
|
5003
|
+
/** Bản trắng — `null` khi `tone="color"`. */
|
|
5004
|
+
readonly whiteSvg: _angular_core.Signal<SafeHtml | null>;
|
|
5005
|
+
readonly colorClass: _angular_core.Signal<"h-full dark:hidden" | "h-full">;
|
|
5006
|
+
readonly whiteClass: _angular_core.Signal<"h-full" | "hidden h-full dark:block">;
|
|
5007
|
+
/**
|
|
5008
|
+
* SVG tĩnh từ `logo.art.ts` (chỉ `<path>`/`<linearGradient>`, không lấy từ
|
|
5009
|
+
* người dùng) nên đánh dấu tin cậy được — cùng cách `OlIconService` làm.
|
|
5010
|
+
*/
|
|
5011
|
+
private render;
|
|
5012
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlLogo, never>;
|
|
5013
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlLogo, "ol-logo", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5014
|
+
}
|
|
5015
|
+
|
|
5016
|
+
/**
|
|
5017
|
+
* Logo Ôn Luyện — 4 bản từ Figma `Logo ol` (#6603:1269), xuất SVG 2026-10-06.
|
|
5018
|
+
*
|
|
5019
|
+
* Đã lọc: nền xám `#F0F0F0` và khung nét đứt của frame Figma, mọi `id` lớp.
|
|
5020
|
+
* `__ID__` là chỗ `OlLogo` thay bằng id riêng từng lần vẽ — hai bản màu dùng
|
|
5021
|
+
* gradient, id trùng nhau thì bản đang `display:none` giữ `<defs>` làm bản
|
|
5022
|
+
* đang hiện mất màu (Chrome không vẽ paint server nằm trong cây bị ẩn).
|
|
5023
|
+
*
|
|
5024
|
+
* Chỉ chứa hình vẽ (`<path>`, `<linearGradient>`), không có script hay
|
|
5025
|
+
* `<foreignObject>` — `OlLogo` đánh dấu tin cậy được.
|
|
5026
|
+
*/
|
|
5027
|
+
interface OlLogoArt {
|
|
5028
|
+
viewBox: string;
|
|
5029
|
+
body: string;
|
|
5030
|
+
}
|
|
5031
|
+
declare const OL_LOGO_FULL_COLOR: OlLogoArt;
|
|
5032
|
+
declare const OL_LOGO_FULL_WHITE: OlLogoArt;
|
|
5033
|
+
declare const OL_LOGO_MARK_COLOR: OlLogoArt;
|
|
5034
|
+
declare const OL_LOGO_MARK_WHITE: OlLogoArt;
|
|
5035
|
+
|
|
4944
5036
|
type ModalSize = 'sm' | 'base' | 'lg' | 'xl' | '2xl';
|
|
4945
5037
|
type ModalPlacement = 'center' | 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
4946
5038
|
type OlModalBackdrop = 'static' | 'dynamic';
|
|
@@ -6064,6 +6156,23 @@ interface AppNavItem {
|
|
|
6064
6156
|
badge?: string | number;
|
|
6065
6157
|
/** Mờ 40% và không bấm được — theo Figma State=Disabled. */
|
|
6066
6158
|
disabled?: boolean;
|
|
6159
|
+
/**
|
|
6160
|
+
* Nhãn phụ nhỏ cạnh tên, viền trắng — ví dụ `beta`. Khác `badge` (đếm số,
|
|
6161
|
+
* nền đỏ): đây là chú thích tính chất của mục.
|
|
6162
|
+
*/
|
|
6163
|
+
extraText?: string;
|
|
6164
|
+
/**
|
|
6165
|
+
* Menu con — tối đa 3 cấp (mục → con → cháu). Mục có con là NÚT mở/đóng,
|
|
6166
|
+
* không điều hướng; `route` của nó (nếu có) chỉ dùng để nhận diện nhánh.
|
|
6167
|
+
* Nhánh chứa trang đang mở tự mở ra khi vào trang.
|
|
6168
|
+
*/
|
|
6169
|
+
children?: AppNavItem[];
|
|
6170
|
+
/**
|
|
6171
|
+
* Đường dẫn khác cũng tính là "đang ở mục này" — ví dụ trang chi tiết
|
|
6172
|
+
* `/manage-exam/detail` thuộc mục "Quản lý kỳ thi" (`/manage-exam/list-exam`).
|
|
6173
|
+
* So khớp đúng hoặc theo tiền tố `<route>/`.
|
|
6174
|
+
*/
|
|
6175
|
+
activeRoutes?: string[];
|
|
6067
6176
|
}
|
|
6068
6177
|
/**
|
|
6069
6178
|
* Một nhóm mục. Figma chia menu làm hai phần, ngăn bằng một đường kẻ:
|
|
@@ -6076,8 +6185,33 @@ interface AppNavItem {
|
|
|
6076
6185
|
*/
|
|
6077
6186
|
interface AppNavGroup {
|
|
6078
6187
|
section: 'main' | 'footer';
|
|
6188
|
+
/**
|
|
6189
|
+
* Tiêu đề nhóm, in hoa nhỏ phía trên các mục — ví dụ "QUẢN LÝ TRƯỜNG HỌC".
|
|
6190
|
+
* Ẩn khi menu thu gọn. Bỏ trống thì nhóm không có tiêu đề (như bản cũ).
|
|
6191
|
+
*/
|
|
6192
|
+
label?: string;
|
|
6079
6193
|
items: AppNavItem[];
|
|
6080
6194
|
}
|
|
6195
|
+
/**
|
|
6196
|
+
* Một mục trong menu tài khoản — mở ra khi bấm thẻ tài khoản (popup trên
|
|
6197
|
+
* desktop, khay menu trên mobile).
|
|
6198
|
+
*
|
|
6199
|
+
* Component chỉ PHÁT `userAction` kèm mục được bấm; đăng xuất thật, mở hộp
|
|
6200
|
+
* đổi mật khẩu… là việc của nơi dùng. Có `route` thì router điều hướng luôn.
|
|
6201
|
+
*/
|
|
6202
|
+
interface AppNavUserAction {
|
|
6203
|
+
/** Khoá để nơi dùng phân nhánh: `profile`, `change-password`, `logout`… */
|
|
6204
|
+
id: string;
|
|
6205
|
+
label: string;
|
|
6206
|
+
/** Tên icon theo `OlIconService`. */
|
|
6207
|
+
icon: string;
|
|
6208
|
+
/** Đường dẫn router. Bỏ trống thì chỉ phát `userAction`. */
|
|
6209
|
+
route?: string;
|
|
6210
|
+
/** Tô đỏ — dùng cho hành động phá vỡ phiên như Đăng xuất. */
|
|
6211
|
+
danger?: boolean;
|
|
6212
|
+
/** Kẻ một đường ngăn phía trên mục này. */
|
|
6213
|
+
dividerBefore?: boolean;
|
|
6214
|
+
}
|
|
6081
6215
|
/** Thẻ tài khoản dưới cùng. */
|
|
6082
6216
|
interface AppNavUser {
|
|
6083
6217
|
name: string;
|
|
@@ -6085,7 +6219,37 @@ interface AppNavUser {
|
|
|
6085
6219
|
subtitle?: string;
|
|
6086
6220
|
/** Ảnh đại diện. Bỏ trống thì `ol-avatar` tự dựng chữ cái đầu từ `name`. */
|
|
6087
6221
|
avatarSrc?: string;
|
|
6222
|
+
/**
|
|
6223
|
+
* Menu tài khoản. Bỏ trống thì dùng `APP_NAV_DEFAULT_USER_ACTIONS`
|
|
6224
|
+
* (Trang cá nhân · Đổi mật khẩu · Đăng xuất). Truyền `[]` để tắt menu —
|
|
6225
|
+
* bấm thẻ khi đó chỉ phát `userClick` như bản cũ.
|
|
6226
|
+
*/
|
|
6227
|
+
actions?: AppNavUserAction[];
|
|
6088
6228
|
}
|
|
6229
|
+
/**
|
|
6230
|
+
* Menu tài khoản mặc định — ba việc mọi tài khoản đều cần.
|
|
6231
|
+
*
|
|
6232
|
+
* Không có `route`: đường dẫn trang cá nhân, cách đổi mật khẩu (trang riêng
|
|
6233
|
+
* hay hộp thoại) khác nhau giữa các sản phẩm. Nơi dùng bắt `userAction` theo
|
|
6234
|
+
* `id`, hoặc tự khai `user.actions` có `route`.
|
|
6235
|
+
*/
|
|
6236
|
+
declare const APP_NAV_DEFAULT_USER_ACTIONS: readonly AppNavUserAction[];
|
|
6237
|
+
/**
|
|
6238
|
+
* Bố cục theo bề ngang màn hình.
|
|
6239
|
+
*
|
|
6240
|
+
* `desktop` menu dọc, mọi bề ngang (mặc định — giữ hành vi các bản trước)
|
|
6241
|
+
* `auto` từ `md` (768px) là menu dọc; dưới `md` là thanh đáy + khay menu
|
|
6242
|
+
* `mobile` luôn thanh đáy + khay menu (xem trước trên trang docs)
|
|
6243
|
+
*/
|
|
6244
|
+
type AppNavLayout = 'desktop' | 'auto' | 'mobile';
|
|
6245
|
+
/**
|
|
6246
|
+
* Chỗ một mục được vẽ — template tuỳ biến đọc để vẽ khác nhau:
|
|
6247
|
+
*
|
|
6248
|
+
* `rail` menu dọc nền navy (chữ trắng)
|
|
6249
|
+
* `sheet` một dòng trong khay menu mobile (nền sáng)
|
|
6250
|
+
* `bar` một ô trên thanh đáy mobile (icon + nhãn ngắn)
|
|
6251
|
+
*/
|
|
6252
|
+
type AppNavItemVariant = 'rail' | 'sheet' | 'bar';
|
|
6089
6253
|
/**
|
|
6090
6254
|
* Trọn bộ dữ liệu một menu — đúng thứ nơi dùng nạp từ JSON.
|
|
6091
6255
|
*
|
|
@@ -6104,6 +6268,125 @@ interface AppNavConfig {
|
|
|
6104
6268
|
user?: AppNavUser;
|
|
6105
6269
|
}
|
|
6106
6270
|
|
|
6271
|
+
/**
|
|
6272
|
+
* Các khe template của `ol-app-nav`.
|
|
6273
|
+
*
|
|
6274
|
+
* Nơi dùng truyền `<ng-template olAppNavXxx let-...>` vào trong
|
|
6275
|
+
* `<ol-app-nav>`; vùng nào không truyền thì component vẽ giao diện mặc định.
|
|
6276
|
+
*
|
|
6277
|
+
* Template chỉ thay PHẦN RUỘT. Phần vỏ vẫn do component giữ để mọi nơi dùng
|
|
6278
|
+
* có cùng hành vi mà không phải chép lại:
|
|
6279
|
+
*
|
|
6280
|
+
* mục `<a routerLink>` / `<button>`, mục đang chọn, tooltip khi thu gọn,
|
|
6281
|
+
* mục bị khoá, đóng khay mobile khi bấm
|
|
6282
|
+
* tài khoản nút mở popup, `aria-expanded`, đóng popup khi chọn
|
|
6283
|
+
*
|
|
6284
|
+
* `ngTemplateContextGuard` cho trình biên dịch biết kiểu của `let-...` —
|
|
6285
|
+
* thiếu nó thì mọi biến trong template là `any`.
|
|
6286
|
+
*/
|
|
6287
|
+
/** Ngữ cảnh template một mục. */
|
|
6288
|
+
interface AppNavItemContext {
|
|
6289
|
+
$implicit: AppNavItem;
|
|
6290
|
+
/** Menu dọc đang thu gọn (luôn `false` ở `sheet`/`bar`). */
|
|
6291
|
+
collapsed: boolean;
|
|
6292
|
+
/** Mục đang chọn — theo `activeId` hoặc router. */
|
|
6293
|
+
active: boolean;
|
|
6294
|
+
/** Cấp trong cây: 1 = mục gốc, 2 = con, 3 = cháu. */
|
|
6295
|
+
level: number;
|
|
6296
|
+
/** Mục có con và đang mở. */
|
|
6297
|
+
expanded: boolean;
|
|
6298
|
+
variant: AppNavItemVariant;
|
|
6299
|
+
}
|
|
6300
|
+
/** Ngữ cảnh khe đầu / chân menu (`olAppNavHeader` · `olAppNavFooter`). */
|
|
6301
|
+
interface AppNavSlotContext {
|
|
6302
|
+
/** Menu dọc đang thu gọn (luôn `false` trong khay mobile). */
|
|
6303
|
+
$implicit: boolean;
|
|
6304
|
+
collapsed: boolean;
|
|
6305
|
+
/** `rail`: trong menu dọc. `sheet`: trong khay mobile. */
|
|
6306
|
+
variant: 'rail' | 'sheet';
|
|
6307
|
+
}
|
|
6308
|
+
/** Ngữ cảnh template logo. */
|
|
6309
|
+
interface AppNavLogoContext {
|
|
6310
|
+
/** Menu đang thu gọn. */
|
|
6311
|
+
$implicit: boolean;
|
|
6312
|
+
collapsed: boolean;
|
|
6313
|
+
}
|
|
6314
|
+
/** Ngữ cảnh template thẻ tài khoản. */
|
|
6315
|
+
interface AppNavUserContext {
|
|
6316
|
+
$implicit: AppNavUser;
|
|
6317
|
+
collapsed: boolean;
|
|
6318
|
+
/** Chữ cái đầu dựng sẵn ("Nguyễn Nhật Linh" → "NL"). */
|
|
6319
|
+
initials: string;
|
|
6320
|
+
/** `rail`: nút ở đáy menu dọc. `sheet`: khối đầu khay mobile. */
|
|
6321
|
+
variant: 'rail' | 'sheet';
|
|
6322
|
+
}
|
|
6323
|
+
/** Ngữ cảnh template menu tài khoản (ruột popup). */
|
|
6324
|
+
interface AppNavUserMenuContext {
|
|
6325
|
+
$implicit: AppNavUser;
|
|
6326
|
+
/** Danh sách mục đã chốt (`user.actions` hoặc mặc định). */
|
|
6327
|
+
actions: readonly AppNavUserAction[];
|
|
6328
|
+
initials: string;
|
|
6329
|
+
/** Phát `userAction` + đóng popup — gọi khi người dùng chọn một mục. */
|
|
6330
|
+
select: (action: AppNavUserAction) => void;
|
|
6331
|
+
/** Chỉ đóng popup (trong khay mobile: đóng khay). */
|
|
6332
|
+
close: () => void;
|
|
6333
|
+
/**
|
|
6334
|
+
* Nơi vẽ: `popup` (nổi cạnh sidebar, mở được menu con SANG NGANG) hoặc
|
|
6335
|
+
* `sheet` (khay mobile — không có chỗ ngang, nên xổ xuống tại chỗ).
|
|
6336
|
+
*/
|
|
6337
|
+
variant: 'popup' | 'sheet';
|
|
6338
|
+
}
|
|
6339
|
+
/** `<ng-template olAppNavItem let-item let-active="active" let-variant="variant">` */
|
|
6340
|
+
declare class OlAppNavItemDef {
|
|
6341
|
+
readonly template: TemplateRef<AppNavItemContext>;
|
|
6342
|
+
static ngTemplateContextGuard(_dir: OlAppNavItemDef, ctx: unknown): ctx is AppNavItemContext;
|
|
6343
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAppNavItemDef, never>;
|
|
6344
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OlAppNavItemDef, "ng-template[olAppNavItem]", never, {}, {}, never, never, true, never>;
|
|
6345
|
+
}
|
|
6346
|
+
/**
|
|
6347
|
+
* `<ng-template olAppNavHeader let-collapsed>` — vùng ngay dưới logo, trên
|
|
6348
|
+
* các mục (ví dụ bộ chọn vai Quản trị / Giảng dạy). Cũng hiện ở đầu khay mobile.
|
|
6349
|
+
*/
|
|
6350
|
+
declare class OlAppNavHeaderDef {
|
|
6351
|
+
readonly template: TemplateRef<AppNavSlotContext>;
|
|
6352
|
+
static ngTemplateContextGuard(_dir: OlAppNavHeaderDef, ctx: unknown): ctx is AppNavSlotContext;
|
|
6353
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAppNavHeaderDef, never>;
|
|
6354
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OlAppNavHeaderDef, "ng-template[olAppNavHeader]", never, {}, {}, never, never, true, never>;
|
|
6355
|
+
}
|
|
6356
|
+
/**
|
|
6357
|
+
* `<ng-template olAppNavFooter let-collapsed>` — vùng cuối danh sách mục chính,
|
|
6358
|
+
* trên đường kẻ (ví dụ ô "Niên khoá 2026 - 2027"). Cũng hiện cuối khay mobile.
|
|
6359
|
+
*/
|
|
6360
|
+
declare class OlAppNavFooterDef {
|
|
6361
|
+
readonly template: TemplateRef<AppNavSlotContext>;
|
|
6362
|
+
static ngTemplateContextGuard(_dir: OlAppNavFooterDef, ctx: unknown): ctx is AppNavSlotContext;
|
|
6363
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAppNavFooterDef, never>;
|
|
6364
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OlAppNavFooterDef, "ng-template[olAppNavFooter]", never, {}, {}, never, never, true, never>;
|
|
6365
|
+
}
|
|
6366
|
+
/** `<ng-template olAppNavLogo let-collapsed>` */
|
|
6367
|
+
declare class OlAppNavLogoDef {
|
|
6368
|
+
readonly template: TemplateRef<AppNavLogoContext>;
|
|
6369
|
+
static ngTemplateContextGuard(_dir: OlAppNavLogoDef, ctx: unknown): ctx is AppNavLogoContext;
|
|
6370
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAppNavLogoDef, never>;
|
|
6371
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OlAppNavLogoDef, "ng-template[olAppNavLogo]", never, {}, {}, never, never, true, never>;
|
|
6372
|
+
}
|
|
6373
|
+
/** `<ng-template olAppNavUser let-user let-collapsed="collapsed">` */
|
|
6374
|
+
declare class OlAppNavUserDef {
|
|
6375
|
+
readonly template: TemplateRef<AppNavUserContext>;
|
|
6376
|
+
static ngTemplateContextGuard(_dir: OlAppNavUserDef, ctx: unknown): ctx is AppNavUserContext;
|
|
6377
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAppNavUserDef, never>;
|
|
6378
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OlAppNavUserDef, "ng-template[olAppNavUser]", never, {}, {}, never, never, true, never>;
|
|
6379
|
+
}
|
|
6380
|
+
/** `<ng-template olAppNavUserMenu let-user let-actions="actions" let-select="select">` */
|
|
6381
|
+
declare class OlAppNavUserMenuDef {
|
|
6382
|
+
readonly template: TemplateRef<AppNavUserMenuContext>;
|
|
6383
|
+
static ngTemplateContextGuard(_dir: OlAppNavUserMenuDef, ctx: unknown): ctx is AppNavUserMenuContext;
|
|
6384
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAppNavUserMenuDef, never>;
|
|
6385
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OlAppNavUserMenuDef, "ng-template[olAppNavUserMenu]", never, {}, {}, never, never, true, never>;
|
|
6386
|
+
}
|
|
6387
|
+
/** Gom sáu directive để nơi dùng nhập một lần: `imports: [OlAppNav, OL_APP_NAV_TEMPLATES]`. */
|
|
6388
|
+
declare const OL_APP_NAV_TEMPLATES: readonly [typeof OlAppNavItemDef, typeof OlAppNavHeaderDef, typeof OlAppNavFooterDef, typeof OlAppNavLogoDef, typeof OlAppNavUserDef, typeof OlAppNavUserMenuDef];
|
|
6389
|
+
|
|
6107
6390
|
/**
|
|
6108
6391
|
* `ol-app-nav` — menu điều hướng dọc của Ôn Luyện.
|
|
6109
6392
|
*
|
|
@@ -6120,6 +6403,21 @@ interface AppNavConfig {
|
|
|
6120
6403
|
* Không gộp hai cái làm một: gộp thì `ol-sidebar` phải mang theo nền gradient
|
|
6121
6404
|
* và bố cục ba vùng mà 90% nơi dùng không cần.
|
|
6122
6405
|
*
|
|
6406
|
+
* ## Dữ liệu + template từng vùng
|
|
6407
|
+
*
|
|
6408
|
+
* Danh sách mục vẫn đi qua `config` (nạp từ JSON/API theo vai). Phần RUỘT của
|
|
6409
|
+
* bốn vùng thay được bằng `<ng-template>` truyền vào — xem `app-nav-templates.ts`:
|
|
6410
|
+
* `olAppNavItem` · `olAppNavLogo` · `olAppNavUser` · `olAppNavUserMenu`. Vỏ
|
|
6411
|
+
* (liên kết, mục đang chọn, tooltip, mở/đóng popup) vẫn do component giữ.
|
|
6412
|
+
*
|
|
6413
|
+
* ## Mobile
|
|
6414
|
+
*
|
|
6415
|
+
* `layout="auto"`: dưới `md` menu dọc ẩn, thay bằng thanh đáy (`mobilePrimaryCount`
|
|
6416
|
+
* mục đầu nhóm chính + nút Menu) và khay menu trượt lên chứa phần còn lại, thẻ
|
|
6417
|
+
* tài khoản và menu tài khoản. Hai phần này `position: fixed` theo màn hình;
|
|
6418
|
+
* muốn xem trước trong khung (trang docs) thì bọc khung bằng `transform` —
|
|
6419
|
+
* phần tử `fixed` khi đó neo theo khung thay vì màn hình.
|
|
6420
|
+
*
|
|
6123
6421
|
* ## Dữ liệu từ ngoài, không nhúng cứng
|
|
6124
6422
|
*
|
|
6125
6423
|
* Ba quyền trong Figma là NỘI DUNG mẫu. Component nhận `config` — nơi dùng nạp
|
|
@@ -6136,6 +6434,21 @@ interface AppNavConfig {
|
|
|
6136
6434
|
* như Figma mô tả ("dùng trên nền tối, chữ và biểu tượng đều `text-white`").
|
|
6137
6435
|
*/
|
|
6138
6436
|
declare class OlAppNav {
|
|
6437
|
+
private readonly overlayContainer;
|
|
6438
|
+
private readonly router;
|
|
6439
|
+
/**
|
|
6440
|
+
* URL hiện tại (bỏ query/hash) — nguồn của mục đang chọn và nhánh tự mở.
|
|
6441
|
+
*
|
|
6442
|
+
* Không dùng `routerLinkActive` nữa: nó không biết `activeRoutes`, không cho
|
|
6443
|
+
* biết mục CHA có con đang mở, và không chạy với mục cha (là nút, không có
|
|
6444
|
+
* `routerLink`). Tự so URL thì một luật áp cho cả cây.
|
|
6445
|
+
*/
|
|
6446
|
+
private readonly currentUrl;
|
|
6447
|
+
/** Id các mục cha đang mở. */
|
|
6448
|
+
private readonly expandedIds;
|
|
6449
|
+
/** Hàm gỡ khay mobile khỏi ngăn xếp Escape. `null` khi khay đóng. */
|
|
6450
|
+
private releaseEscape;
|
|
6451
|
+
constructor();
|
|
6139
6452
|
/** Danh sách menu và thẻ tài khoản. Xem `AppNavConfig`. */
|
|
6140
6453
|
readonly config: _angular_core.InputSignal<AppNavConfig>;
|
|
6141
6454
|
/**
|
|
@@ -6152,16 +6465,64 @@ declare class OlAppNav {
|
|
|
6152
6465
|
* signal. Có `route` thì `routerLinkActive` tự lo, không cần đặt cái này.
|
|
6153
6466
|
*/
|
|
6154
6467
|
readonly activeId: _angular_core.InputSignal<string | null>;
|
|
6155
|
-
/**
|
|
6468
|
+
/**
|
|
6469
|
+
* Logo — ba cách, theo thứ tự ưu tiên:
|
|
6470
|
+
*
|
|
6471
|
+
* 1. `<ng-template olAppNavLogo let-collapsed>` — tự vẽ hoàn toàn.
|
|
6472
|
+
* 2. `logoSrc` (+ `logoMarkSrc` khi thu gọn) — ảnh của nơi dùng.
|
|
6473
|
+
* 3. Mặc định: `ol-logo` của kit — mở thì bản DÀI, thu gọn thì bản VUÔNG.
|
|
6474
|
+
*/
|
|
6156
6475
|
readonly logoSrc: _angular_core.InputSignal<string>;
|
|
6476
|
+
/**
|
|
6477
|
+
* Ảnh logo vuông khi thu gọn (khung 70px không đủ chỗ logo dài). Bỏ trống
|
|
6478
|
+
* thì thu gọn vẫn dùng `logoSrc`, co vừa ô 40px.
|
|
6479
|
+
*/
|
|
6480
|
+
readonly logoMarkSrc: _angular_core.InputSignal<string>;
|
|
6481
|
+
/**
|
|
6482
|
+
* Tông logo của kit. Mặc định `auto`: chế độ sáng dùng logo MÀU, `.dark`
|
|
6483
|
+
* dùng logo trắng (người dùng chốt 2026-10-06 — bản trước mặc định `white`
|
|
6484
|
+
* ở cả hai chế độ). Muốn luôn trắng thì truyền `white`.
|
|
6485
|
+
*/
|
|
6486
|
+
readonly logoTone: _angular_core.InputSignal<LogoTone>;
|
|
6157
6487
|
/** Chiều rộng khi mở. Figma: 270px. */
|
|
6158
6488
|
readonly width: _angular_core.InputSignal<string>;
|
|
6159
6489
|
/** Chiều rộng khi thu gọn. Figma: 70px. */
|
|
6160
6490
|
readonly collapsedWidth: _angular_core.InputSignal<string>;
|
|
6161
6491
|
/** Phát khi bấm một mục. Mục có `route` thì router đã lo điều hướng. */
|
|
6162
6492
|
readonly itemClick: _angular_core.OutputEmitterRef<AppNavItem>;
|
|
6163
|
-
/**
|
|
6493
|
+
/**
|
|
6494
|
+
* Phát khi bấm thẻ tài khoản (cả khi menu tài khoản mở ra sau đó). Giữ để
|
|
6495
|
+
* tương thích các bản trước; chọn một mục trong menu thì nghe `userAction`.
|
|
6496
|
+
*/
|
|
6164
6497
|
readonly userClick: _angular_core.OutputEmitterRef<void>;
|
|
6498
|
+
/** Phát khi chọn một mục trong menu tài khoản — `profile`, `change-password`, `logout`… */
|
|
6499
|
+
readonly userAction: _angular_core.OutputEmitterRef<AppNavUserAction>;
|
|
6500
|
+
/** Popup tài khoản (desktop) đang mở. Hai chiều: `[(userMenuOpen)]`. */
|
|
6501
|
+
readonly userMenuOpen: _angular_core.ModelSignal<boolean>;
|
|
6502
|
+
/**
|
|
6503
|
+
* Bố cục theo bề ngang. Mặc định `desktop` — giữ nguyên hành vi các bản
|
|
6504
|
+
* trước. `auto`: dưới `md` chuyển sang thanh đáy + khay menu. Xem `AppNavLayout`.
|
|
6505
|
+
*/
|
|
6506
|
+
readonly layout: _angular_core.InputSignal<AppNavLayout>;
|
|
6507
|
+
/**
|
|
6508
|
+
* Số mục lên thanh đáy mobile (đầu nhóm `main`); ô cuối luôn là nút Menu.
|
|
6509
|
+
*
|
|
6510
|
+
* Bốn: màn 375px chia 5 ô mỗi ô 75px — vừa icon 24px và một dòng nhãn 10px.
|
|
6511
|
+
* Sáu ô thì mỗi ô 62px, nhãn bắt đầu bị cắt.
|
|
6512
|
+
*/
|
|
6513
|
+
readonly mobilePrimaryCount: _angular_core.InputSignal<number>;
|
|
6514
|
+
/** Khay menu mobile đang mở. Hai chiều: `[(mobileMenuOpen)]` — khung đóng khi chuyển trang. */
|
|
6515
|
+
readonly mobileMenuOpen: _angular_core.ModelSignal<boolean>;
|
|
6516
|
+
/** Chữ trên nút Menu của thanh đáy. */
|
|
6517
|
+
readonly mobileMenuLabel: _angular_core.InputSignal<string>;
|
|
6518
|
+
readonly itemDef: _angular_core.Signal<OlAppNavItemDef | undefined>;
|
|
6519
|
+
readonly headerDef: _angular_core.Signal<OlAppNavHeaderDef | undefined>;
|
|
6520
|
+
readonly footerDef: _angular_core.Signal<OlAppNavFooterDef | undefined>;
|
|
6521
|
+
readonly logoDef: _angular_core.Signal<OlAppNavLogoDef | undefined>;
|
|
6522
|
+
readonly userDef: _angular_core.Signal<OlAppNavUserDef | undefined>;
|
|
6523
|
+
readonly userMenuDef: _angular_core.Signal<OlAppNavUserMenuDef | undefined>;
|
|
6524
|
+
/** Id khay mobile — `aria-controls` của nút Menu trỏ vào. */
|
|
6525
|
+
readonly sheetId: string;
|
|
6165
6526
|
/**
|
|
6166
6527
|
* Hiện thanh kéo (rail) ở mép phải để thu gọn / mở lại.
|
|
6167
6528
|
*
|
|
@@ -6171,10 +6532,89 @@ declare class OlAppNav {
|
|
|
6171
6532
|
readonly showRail: _angular_core.InputSignal<boolean>;
|
|
6172
6533
|
/** Chữ trên tooltip của thanh kéo, đổi theo trạng thái. */
|
|
6173
6534
|
readonly railLabel: _angular_core.Signal<"Mở rộng" | "Thu gọn">;
|
|
6174
|
-
/**
|
|
6535
|
+
/** Mọi nhóm, giữ thứ tự khai. */
|
|
6536
|
+
private readonly allGroups;
|
|
6537
|
+
/** Nhóm phần trên — vẽ theo nhóm để hiện `label`. */
|
|
6538
|
+
readonly mainGroups: _angular_core.Signal<AppNavGroup[]>;
|
|
6539
|
+
/** Mục gốc của phần trên, phẳng (cho thanh đáy mobile). */
|
|
6175
6540
|
readonly mainItems: _angular_core.Signal<AppNavItem[]>;
|
|
6176
6541
|
/** Mục của phần dưới, nằm sát thẻ tài khoản. */
|
|
6177
6542
|
readonly footerItems: _angular_core.Signal<AppNavItem[]>;
|
|
6543
|
+
/**
|
|
6544
|
+
* Mục lên thanh đáy mobile: `mobilePrimaryCount` mục gốc ĐẦU TIÊN của phần
|
|
6545
|
+
* trên mà có `route` và KHÔNG có con — ô thanh đáy là một cú chạm điều
|
|
6546
|
+
* hướng, không chứa được menu con. Mục cha vào khay.
|
|
6547
|
+
*/
|
|
6548
|
+
readonly primaryItems: _angular_core.Signal<AppNavItem[]>;
|
|
6549
|
+
/**
|
|
6550
|
+
* Nhóm vào khay mobile: mọi nhóm (kể cả `footer` — dưới `md` không còn menu
|
|
6551
|
+
* dọc nào chứa chúng), bỏ các mục đã lên thanh đáy, giữ tiêu đề nhóm.
|
|
6552
|
+
*/
|
|
6553
|
+
readonly sheetGroups: _angular_core.Signal<AppNavGroup[]>;
|
|
6554
|
+
/** Phần còn lại, phẳng — giữ cho nơi dùng đã đọc trước đây. */
|
|
6555
|
+
readonly overflowItems: _angular_core.Signal<AppNavItem[]>;
|
|
6556
|
+
/**
|
|
6557
|
+
* Khoảng cách popup tài khoản → thẻ, để popup nằm HẲN ngoài sidebar, cách
|
|
6558
|
+
* mép 8px. Thẻ thụt trong sidebar: mở rộng đệm 16px (`px-4`, bản gọn);
|
|
6559
|
+
* thu gọn nút giữa khung 70px còn 15px. Đo 2026-10-06 sau bản gọn: khe 8px
|
|
6560
|
+
* ở cả hai trạng thái (offset 8 cố định từng làm popup chồng mép sidebar).
|
|
6561
|
+
*/
|
|
6562
|
+
readonly userMenuOffset: _angular_core.Signal<24 | 23>;
|
|
6563
|
+
/** Menu tài khoản đã chốt: `user.actions`, hoặc mặc định khi không khai. */
|
|
6564
|
+
readonly userActions: _angular_core.Signal<readonly AppNavUserAction[]>;
|
|
6565
|
+
/** Class menu dọc theo `layout`. */
|
|
6566
|
+
readonly railDisplay: _angular_core.Signal<"flex" | "hidden" | "hidden md:flex">;
|
|
6567
|
+
/** Có vẽ thanh đáy + khay không, và ẩn từ `md` khi `auto`. */
|
|
6568
|
+
readonly hasMobile: _angular_core.Signal<boolean>;
|
|
6569
|
+
readonly mobileDisplay: _angular_core.Signal<"" | "md:hidden">;
|
|
6570
|
+
/** Ngữ cảnh template một mục. */
|
|
6571
|
+
itemContext(item: AppNavItem, variant: AppNavItemVariant, level?: number): AppNavItemContext;
|
|
6572
|
+
/** Ngữ cảnh khe đầu / chân menu. */
|
|
6573
|
+
slotContext(variant: 'rail' | 'sheet'): {
|
|
6574
|
+
$implicit: boolean;
|
|
6575
|
+
collapsed: boolean;
|
|
6576
|
+
variant: "rail" | "sheet";
|
|
6577
|
+
};
|
|
6578
|
+
/** Bỏ query/hash và `/` cuối — `/a/b/?x=1#y` → `/a/b`. */
|
|
6579
|
+
private static normalize;
|
|
6580
|
+
/** `route` khớp URL hiện tại: đúng hệt, hoặc URL nằm dưới nó (`route/…`). `/` chỉ khớp đúng. */
|
|
6581
|
+
isRouteActive(route: string): boolean;
|
|
6582
|
+
/**
|
|
6583
|
+
* Mục đang chọn: `activeId` trùng, hoặc `route` / `activeRoutes` khớp URL.
|
|
6584
|
+
* Mục CHA không bao giờ "đang chọn" — trang nằm ở con; cha chỉ được đánh
|
|
6585
|
+
* dấu "chứa mục đang chọn" (`hasActiveChild`).
|
|
6586
|
+
*/
|
|
6587
|
+
isItemActive(item: AppNavItem): boolean;
|
|
6588
|
+
/** Mục có con (cháu…) đang chọn. */
|
|
6589
|
+
hasActiveChild(item: AppNavItem): boolean;
|
|
6590
|
+
isExpanded(item: AppNavItem): boolean;
|
|
6591
|
+
/**
|
|
6592
|
+
* Mở / đóng một nhánh (menu dọc đang mở, hoặc khay mobile).
|
|
6593
|
+
*
|
|
6594
|
+
* Kiểu ACCORDION — mỗi cấp chỉ một nhánh mở: mở một mục thì đóng các mục
|
|
6595
|
+
* CÙNG CẤP (kèm mọi nhánh con của chúng). Cấp 1 tính chung mọi nhóm, cả
|
|
6596
|
+
* nhóm `footer`; cấp 2 · 3 tính trong cùng mục cha. Menu dài (Quản trị
|
|
6597
|
+
* trường 5 nhóm) mà mở nhiều nhánh một lúc thì cuộn mãi không hết.
|
|
6598
|
+
*/
|
|
6599
|
+
toggleExpand(item: AppNavItem): void;
|
|
6600
|
+
/** Id mục cha đang mở menu nổi. */
|
|
6601
|
+
readonly flyoutId: _angular_core.WritableSignal<string | null>;
|
|
6602
|
+
private flyoutCloseTimer;
|
|
6603
|
+
/** Rê vào nút hoặc panel: mở (và huỷ hẹn đóng). */
|
|
6604
|
+
openFlyout(id: string): void;
|
|
6605
|
+
cancelFlyoutClose(): void;
|
|
6606
|
+
/** Rời nút hoặc panel: đóng sau 150ms — đủ để chuột băng qua khe giữa hai cái. */
|
|
6607
|
+
scheduleFlyoutClose(): void;
|
|
6608
|
+
/** `ol-dropdown` báo mở/đóng (bấm nút, bấm ra ngoài, Esc). */
|
|
6609
|
+
onFlyoutOpenChange(id: string, open: boolean): void;
|
|
6610
|
+
/** Chọn một mục trong menu nổi: đóng menu, phát `itemClick` (router lo điều hướng). */
|
|
6611
|
+
onFlyoutSelect(item: AppNavItem): void;
|
|
6612
|
+
/** Id mọi mục cha nằm trên đường tới mục đang chọn. */
|
|
6613
|
+
private activeAncestorIds;
|
|
6614
|
+
/** Ngữ cảnh template menu tài khoản — popup desktop và khay mobile. */
|
|
6615
|
+
readonly userMenuPopupContext: _angular_core.Signal<AppNavUserMenuContext | null>;
|
|
6616
|
+
readonly userMenuSheetContext: _angular_core.Signal<AppNavUserMenuContext | null>;
|
|
6617
|
+
private buildUserMenuContext;
|
|
6178
6618
|
/** Đường kẻ chỉ vẽ khi phần dưới có mục — không thì thừa một vạch. */
|
|
6179
6619
|
readonly showDivider: _angular_core.Signal<boolean>;
|
|
6180
6620
|
readonly navWidth: _angular_core.Signal<string>;
|
|
@@ -6191,7 +6631,7 @@ declare class OlAppNav {
|
|
|
6191
6631
|
* Gộp vào MỘT chuỗi thay vì nhiều `[class.x]`: hai binding cùng tên thuộc
|
|
6192
6632
|
* tính thì cái sau thắng, cái trước mất im lặng.
|
|
6193
6633
|
*/
|
|
6194
|
-
itemClasses(item: AppNavItem): string;
|
|
6634
|
+
itemClasses(item: AppNavItem, level?: number): string;
|
|
6195
6635
|
/**
|
|
6196
6636
|
* Chữ cái đầu cho ảnh đại diện, khi không có ảnh.
|
|
6197
6637
|
*
|
|
@@ -6201,10 +6641,32 @@ declare class OlAppNav {
|
|
|
6201
6641
|
* phải "NN".
|
|
6202
6642
|
*/
|
|
6203
6643
|
readonly userInitials: _angular_core.Signal<string>;
|
|
6644
|
+
/** Nút thẻ tài khoản ở đáy menu dọc. */
|
|
6645
|
+
/**
|
|
6646
|
+
* Nút thẻ tài khoản ở đáy menu dọc.
|
|
6647
|
+
*
|
|
6648
|
+
* Mở rộng: đệm phải 10px (`pe-2.5`, bằng đệm mục menu phía trên) — bản trước
|
|
6649
|
+
* `p-1` 4px làm mũi tên dính sát viền bo (người dùng chỉ ra 2026-10-06).
|
|
6650
|
+
* Đang mở menu tài khoản thì GIỮ nền nổi như mục cha đang mở.
|
|
6651
|
+
*/
|
|
6652
|
+
userCardClasses(): string;
|
|
6653
|
+
/** Một ô thanh đáy mobile. Mục có route thì `routerLinkActive` tô thêm `text-fg-brand`. */
|
|
6654
|
+
barItemClasses(item: AppNavItem): string;
|
|
6655
|
+
/** Một dòng trong khay mobile. */
|
|
6656
|
+
sheetItemClasses(item: AppNavItem, level?: number): string;
|
|
6657
|
+
/**
|
|
6658
|
+
* Một mục menu tài khoản trong khay. Mục `danger` đổi CẢ nền lẫn chữ khi
|
|
6659
|
+
* hover: `text-fg-danger` trên `bg-danger-soft` chỉ đạt 4,09 (dưới AA 4,5),
|
|
6660
|
+
* nên chữ kéo xuống `fg-danger-strong` cho khớp nền.
|
|
6661
|
+
*/
|
|
6662
|
+
sheetActionClasses(action: AppNavUserAction): string;
|
|
6204
6663
|
onItemClick(item: AppNavItem): void;
|
|
6664
|
+
/** Chọn một mục menu tài khoản — đóng popup/khay rồi phát cho nơi dùng. */
|
|
6665
|
+
onUserAction(action: AppNavUserAction): void;
|
|
6666
|
+
toggleMobileMenu(): void;
|
|
6205
6667
|
toggle(): void;
|
|
6206
6668
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAppNav, never>;
|
|
6207
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlAppNav, "ol-app-nav", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "activeId": { "alias": "activeId"; "required": false; "isSignal": true; }; "logoSrc": { "alias": "logoSrc"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; "isSignal": true; }; "showRail": { "alias": "showRail"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "itemClick": "itemClick"; "userClick": "userClick"; },
|
|
6669
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlAppNav, "ol-app-nav", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "activeId": { "alias": "activeId"; "required": false; "isSignal": true; }; "logoSrc": { "alias": "logoSrc"; "required": false; "isSignal": true; }; "logoMarkSrc": { "alias": "logoMarkSrc"; "required": false; "isSignal": true; }; "logoTone": { "alias": "logoTone"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; "isSignal": true; }; "userMenuOpen": { "alias": "userMenuOpen"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "mobilePrimaryCount": { "alias": "mobilePrimaryCount"; "required": false; "isSignal": true; }; "mobileMenuOpen": { "alias": "mobileMenuOpen"; "required": false; "isSignal": true; }; "mobileMenuLabel": { "alias": "mobileMenuLabel"; "required": false; "isSignal": true; }; "showRail": { "alias": "showRail"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "itemClick": "itemClick"; "userClick": "userClick"; "userAction": "userAction"; "userMenuOpen": "userMenuOpenChange"; "mobileMenuOpen": "mobileMenuOpenChange"; }, ["itemDef", "headerDef", "footerDef", "logoDef", "userDef", "userMenuDef"], never, true, never>;
|
|
6208
6670
|
}
|
|
6209
6671
|
|
|
6210
6672
|
declare class OlSidebar {
|
|
@@ -7592,6 +8054,20 @@ declare class OlChart {
|
|
|
7592
8054
|
readonly hiddenItems: _angular_core.WritableSignal<Set<string>>;
|
|
7593
8055
|
toggleLegendItem(name: string): void;
|
|
7594
8056
|
isItemHidden(name: string): boolean;
|
|
8057
|
+
readonly zoomScale: _angular_core.WritableSignal<number>;
|
|
8058
|
+
readonly panX: _angular_core.WritableSignal<number>;
|
|
8059
|
+
readonly panY: _angular_core.WritableSignal<number>;
|
|
8060
|
+
private isPanning;
|
|
8061
|
+
private lastPanX;
|
|
8062
|
+
private lastPanY;
|
|
8063
|
+
readonly showZoomControls: _angular_core.Signal<boolean>;
|
|
8064
|
+
readonly svgTransform: _angular_core.Signal<string>;
|
|
8065
|
+
zoomIn(): void;
|
|
8066
|
+
zoomOut(): void;
|
|
8067
|
+
resetZoom(): void;
|
|
8068
|
+
onPanStart(event: MouseEvent | TouchEvent): void;
|
|
8069
|
+
onPanMove(event: MouseEvent | TouchEvent): void;
|
|
8070
|
+
onPanEnd(): void;
|
|
7595
8071
|
readonly seriesLegendList: _angular_core.Signal<{
|
|
7596
8072
|
name: string;
|
|
7597
8073
|
color: string;
|
|
@@ -8342,6 +8818,6 @@ declare class OlOverlayContainer {
|
|
|
8342
8818
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
8343
8819
|
}
|
|
8344
8820
|
|
|
8345
|
-
export { CHAT_BUBBLE_STATUS, FIELD_ASTERISK, FIELD_CLEAR_RESERVE_END, FIELD_DISABLED, FIELD_HEIGHT, FIELD_HELPER, FIELD_HELPER_GAP, FIELD_ICON_GAP, FIELD_ICON_RESERVE_END, FIELD_ICON_RESERVE_START, FIELD_LABEL, FIELD_LABEL_BESIDE, FIELD_LABEL_GAP, FIELD_MIN_HEIGHT, FIELD_PADDING_END, FIELD_PADDING_START, FIELD_PADDING_X, FIELD_RADIUS, FIELD_STATE, FIELD_TEXT, FILE_KIND_META, FLOAT_LABEL_START, MONTHS_FULL_EN, MONTHS_FULL_VI, MONTHS_SHORT_VI, OL_ICONS, OlAccordion, OlAccordionItem, OlAlert, OlAlertDialog, OlAppNav, OlAspectRatio, OlAutocomplete, OlAvatar, OlAvatarGroup, OlBackdrop, OlBadge, OlBanner, OlBottomNav, OlBottomNavItem, OlBreadcrumb, OlBreadcrumbItem, OlButton, OlButtonGroup, OlCard, OlCarousel, OlCarouselSlide, OlChart, OlChatBubble, OlChatContainer, OlCheckbox, OlCheckboxRadioForm, OlCheckboxRadioGroup, OlClipboard, OlCollapse, OlCommand, OlDateRangePicker, OlDatepicker, OlDatepickerDirective, OlDatepickerFooter, OlDatepickerHeader, OlDatepickerPopup, OlDatepickerStateService, OlDayView, OlDeviceMockup, OlDownloadAppButton, OlDrawer, OlDrawerFooter, OlDrawerHeader, OlDropdown, OlDropdownHeader, OlDropdownItem, OlDropdownSearch, OlDropdownState, OlEmpty, OlFileDropzone, OlFileInput, OlFileItem, OlFileUpload, OlFocusTrapService, OlFooter, OlFrame, OlGallery, OlGalleryItem, OlHelper, OlIcon, OlIconService, OlIconShape, OlIconStack, OlImagePreview, OlInput, OlInputCounter, OlItem, OlJumbotron, OlKbd, OlLabel, OlListGroup, OlListGroupItem, OlLoadingOverlay, OlMenubar, OlModal, OlModalFooter, OlModalHeader, OlMonthView, OlNavDropdown, OlNavbar, OlNavbarItem, OlOtpInput, OlOverlayContainer, OlPagination, OlPopover, OlPopoverContent, OlPositioningService, OlProgress, OlProgressBarService, OlProgressBarTop, OlRadio, OlRange, OlRating, OlResizable, OlRichTextEditor, OlScrollArea, OlScrollspy, OlSegmented, OlSelect, OlSeparator, OlSidebar, OlSidebarGroup, OlSidebarItem, OlSidebarSubmenu, OlSkeleton, OlSpeedDial, OlSpeedDialItem, OlSpinner, OlStepItem, OlStepper, OlTabItem, OlTable, OlTableLoading, OlTableRow, OlTabs, OlTagInput, OlTextarea, OlTimeline, OlTimelineItem, OlTimepicker, OlToast, OlToastContainer, OlToastService, OlToggle, OlToggleGroup, OlToggleInput, OlTooltip, OlTooltipDirective, OlTree, OlTreeNodeItem, OlYearView, PICKER_ICON_RESERVE_START, WEEKDAYS_SHORT_EN, WEEKDAYS_SHORT_VI, boDau, cloneDate, detectFileKind, endOfDay, fieldLabelLayout, fieldSizeClasses, fileExtension, filesFromClipboard, formatDate, formatFileSize, generateMonthMatrix, generateMonthsMatrix, generateYearsMatrix, isBetween, isDateDisabled, isEditableTarget, isSameDay, isSameMonth, isSameYear, isToday, matchesAccept, multiValuePadY, parseDate, pasteShortcutLabel, provideOlIcons, startOfDay, stripDiacritics, toUploadFile, validateFiles };
|
|
8346
|
-
export type { AccordionVariant, AlertColor, AlertDialogTone, AlertLayout, AlertRounded, AlertType, AlertVariant, AppDevice, AppNavConfig, AppNavGroup, AppNavItem, AppNavUser, AppTheme, AutocompleteOption, AutocompleteSize, AutocompleteState, AvatarShape, AvatarSize, AvatarStatus, BadgeColor, BadgeShape, BadgeSize, BadgeTheme, BadgeType, BannerPosition, BannerVariant, BoxplotDataPoint, BreadcrumbItemStatus, BreadcrumbSeparator, BreadcrumbVariant, ButtonColor, ButtonGroupColor, ButtonGroupOrientation, ButtonGroupSize, ButtonSize, CardPadding, CardRadius, CardShadow, CardVariant, ChartDataPoint, ChartSeries, ChartType, ChatBubbleStatus, ChatSender, CheckboxSize, ChoiceControl, ChoiceControlPosition, ChoiceGroupLayout, ChoiceLayout, ChoiceShape, CommandGroup, CommandItem, DateCustomClass, DateRange, DatepickerPreset, DatepickerSelectionMode, DatepickerSize, DatepickerViewMode, DayCell, DeviceType, DrawerFooterLayout, DrawerPlacement, DrawerSize, DropdownAutoClose, DropdownPlacement, DropdownStateType, DropdownTrigger, EmptySize, FieldSize, FieldState, FileInputSize, FileItemVariant, FileKind, FileKindMeta, FileRejectReason, FileRejection, FileUploadMode, FileValidationResult, FileValidationRules, FloatingVariant, HeatmapData, HelperFeature, HelperRule, HelperSize, HelperState, IconColor, IconShapeColor, IconShapeSize, IconShapeType, IconSize, IconVariant, InputCounterSize, InputSize, InputState, JumbotronVariant, LabelPosition, ListGroupType, ModalFooterLayout, ModalPlacement, ModalSize, MonthCell, NavbarCollapseAt, NavbarDensity, OlAvatarStatusPosition, OlBottomNavPosition, OlButtonType, OlCheckboxRadioFormAlign, OlCheckboxRadioGroupRole, OlDateRangePickerVariant, OlFrameRounded, OlFrameSpacing, OlFrameVariant, OlGalleryGap, OlGalleryRatio, OlHelperType, OlIconStackSize, OlItemAlign, OlItemSize, OlMenubarItem, OlMenubarMenu, OlModalBackdrop, OlModalRole, OlPreviewImage, OlResizableDirection, OlScrollspyItem, OlScrollspyOrientation, OlSkeletonAnimation, OlSkeletonAspectRatio, OlSkeletonRounded, OlSkeletonType, OlSpeedDialTooltipPosition, OlTimepickerAddonType, OlToggleInputAlign, OlTreeNode, OlTreeNodeSelectionMode, OlTreeNodeToggleIcon, OlTreeSelectionMode, OlTreeToggleIcon, OlUploadFile, OtpInputSize, OverlayLayer, PaginationType, PaginationVariant, PopoverPlacement, PopoverTrigger, PositionedCoordinates, PositioningOptions, ProgressColor, ProgressLabelPosition, ProgressSize, RadarIndicator, RadioSize, RatingType, ScatterDataPoint, ScatterSeries, ScrollAreaAxis, ScrollAreaScrollbar, SegmentedColor, SegmentedOption, SegmentedSize, SelectOption, SelectSize, SelectState, SeparatorOrientation, SpeedDialAction, SpeedDialColor, SpeedDialDirection, SpeedDialTrigger, SpeedDialType, StepState, StepperBreakpoint, StepperOrientation, StepperVariant, TabsSize, TabsVariant, TagInputSize, TextareaState, TimeObject, TimepickerFormat, TimepickerSize, TimepickerState, Toast, ToastConfig, ToastPosition, ToggleColor, TogglePosition, ToggleSize, UploadStatus, YearCell };
|
|
8821
|
+
export { APP_NAV_DEFAULT_USER_ACTIONS, CHAT_BUBBLE_STATUS, FIELD_ASTERISK, FIELD_CLEAR_RESERVE_END, FIELD_DISABLED, FIELD_HEIGHT, FIELD_HELPER, FIELD_HELPER_GAP, FIELD_ICON_GAP, FIELD_ICON_RESERVE_END, FIELD_ICON_RESERVE_START, FIELD_LABEL, FIELD_LABEL_BESIDE, FIELD_LABEL_GAP, FIELD_MIN_HEIGHT, FIELD_PADDING_END, FIELD_PADDING_START, FIELD_PADDING_X, FIELD_RADIUS, FIELD_STATE, FIELD_TEXT, FILE_KIND_META, FLOAT_LABEL_START, MONTHS_FULL_EN, MONTHS_FULL_VI, MONTHS_SHORT_VI, OL_APP_NAV_TEMPLATES, OL_ICONS, OL_LOGO_FULL_COLOR, OL_LOGO_FULL_WHITE, OL_LOGO_MARK_COLOR, OL_LOGO_MARK_WHITE, OlAccordion, OlAccordionItem, OlAlert, OlAlertDialog, OlAppNav, OlAppNavFooterDef, OlAppNavHeaderDef, OlAppNavItemDef, OlAppNavLogoDef, OlAppNavUserDef, OlAppNavUserMenuDef, OlAspectRatio, OlAutocomplete, OlAvatar, OlAvatarGroup, OlBackdrop, OlBadge, OlBanner, OlBottomNav, OlBottomNavItem, OlBreadcrumb, OlBreadcrumbItem, OlButton, OlButtonGroup, OlCard, OlCarousel, OlCarouselSlide, OlChart, OlChatBubble, OlChatContainer, OlCheckbox, OlCheckboxRadioForm, OlCheckboxRadioGroup, OlClipboard, OlCollapse, OlCommand, OlDateRangePicker, OlDatepicker, OlDatepickerDirective, OlDatepickerFooter, OlDatepickerHeader, OlDatepickerPopup, OlDatepickerStateService, OlDayView, OlDeviceMockup, OlDownloadAppButton, OlDrawer, OlDrawerFooter, OlDrawerHeader, OlDropdown, OlDropdownHeader, OlDropdownItem, OlDropdownSearch, OlDropdownState, OlEmpty, OlFileDropzone, OlFileInput, OlFileItem, OlFileUpload, OlFocusTrapService, OlFooter, OlFrame, OlGallery, OlGalleryItem, OlHelper, OlIcon, OlIconService, OlIconShape, OlIconStack, OlImagePreview, OlInput, OlInputCounter, OlItem, OlJumbotron, OlKbd, OlLabel, OlListGroup, OlListGroupItem, OlLoadingOverlay, OlLogo, OlMenubar, OlModal, OlModalFooter, OlModalHeader, OlMonthView, OlNavDropdown, OlNavbar, OlNavbarItem, OlOtpInput, OlOverlayContainer, OlPagination, OlPopover, OlPopoverContent, OlPositioningService, OlProgress, OlProgressBarService, OlProgressBarTop, OlRadio, OlRange, OlRating, OlResizable, OlRichTextEditor, OlScrollArea, OlScrollspy, OlSegmented, OlSelect, OlSeparator, OlSidebar, OlSidebarGroup, OlSidebarItem, OlSidebarSubmenu, OlSkeleton, OlSpeedDial, OlSpeedDialItem, OlSpinner, OlStepItem, OlStepper, OlTabItem, OlTable, OlTableLoading, OlTableRow, OlTabs, OlTagInput, OlTextarea, OlTimeline, OlTimelineItem, OlTimepicker, OlToast, OlToastContainer, OlToastService, OlToggle, OlToggleGroup, OlToggleInput, OlTooltip, OlTooltipDirective, OlTree, OlTreeNodeItem, OlYearView, PICKER_ICON_RESERVE_START, WEEKDAYS_SHORT_EN, WEEKDAYS_SHORT_VI, boDau, cloneDate, detectFileKind, endOfDay, fieldLabelLayout, fieldSizeClasses, fileExtension, filesFromClipboard, formatDate, formatFileSize, generateMonthMatrix, generateMonthsMatrix, generateYearsMatrix, isBetween, isDateDisabled, isEditableTarget, isSameDay, isSameMonth, isSameYear, isToday, matchesAccept, multiValuePadY, parseDate, pasteShortcutLabel, provideOlIcons, startOfDay, stripDiacritics, toUploadFile, validateFiles };
|
|
8822
|
+
export type { AccordionVariant, AlertColor, AlertDialogTone, AlertLayout, AlertRounded, AlertType, AlertVariant, AppDevice, AppNavConfig, AppNavGroup, AppNavItem, AppNavItemContext, AppNavItemVariant, AppNavLayout, AppNavLogoContext, AppNavSlotContext, AppNavUser, AppNavUserAction, AppNavUserContext, AppNavUserMenuContext, AppTheme, AutocompleteOption, AutocompleteSize, AutocompleteState, AvatarShape, AvatarSize, AvatarStatus, BadgeColor, BadgeShape, BadgeSize, BadgeTheme, BadgeType, BannerPosition, BannerVariant, BoxplotDataPoint, BreadcrumbItemStatus, BreadcrumbSeparator, BreadcrumbVariant, ButtonColor, ButtonGroupColor, ButtonGroupOrientation, ButtonGroupSize, ButtonSize, CardPadding, CardRadius, CardShadow, CardVariant, ChartDataPoint, ChartSeries, ChartType, ChatBubbleStatus, ChatSender, CheckboxSize, ChoiceControl, ChoiceControlPosition, ChoiceGroupLayout, ChoiceLayout, ChoiceShape, CommandGroup, CommandItem, DateCustomClass, DateRange, DatepickerPreset, DatepickerSelectionMode, DatepickerSize, DatepickerViewMode, DayCell, DeviceType, DrawerFooterLayout, DrawerPlacement, DrawerSize, DropdownAutoClose, DropdownPlacement, DropdownStateType, DropdownTrigger, EmptySize, FieldSize, FieldState, FileInputSize, FileItemVariant, FileKind, FileKindMeta, FileRejectReason, FileRejection, FileUploadMode, FileValidationResult, FileValidationRules, FloatingVariant, HeatmapData, HelperFeature, HelperRule, HelperSize, HelperState, IconColor, IconShapeColor, IconShapeSize, IconShapeType, IconSize, IconVariant, InputCounterSize, InputSize, InputState, JumbotronVariant, LabelPosition, ListGroupType, LogoTone, LogoVariant, ModalFooterLayout, ModalPlacement, ModalSize, MonthCell, NavbarCollapseAt, NavbarDensity, OlAvatarStatusPosition, OlBottomNavPosition, OlButtonType, OlCheckboxRadioFormAlign, OlCheckboxRadioGroupRole, OlDateRangePickerVariant, OlFrameRounded, OlFrameSpacing, OlFrameVariant, OlGalleryGap, OlGalleryRatio, OlHelperType, OlIconStackSize, OlItemAlign, OlItemSize, OlLogoArt, OlMenubarItem, OlMenubarMenu, OlModalBackdrop, OlModalRole, OlPreviewImage, OlResizableDirection, OlScrollspyItem, OlScrollspyOrientation, OlSkeletonAnimation, OlSkeletonAspectRatio, OlSkeletonRounded, OlSkeletonType, OlSpeedDialTooltipPosition, OlTimepickerAddonType, OlToggleInputAlign, OlTreeNode, OlTreeNodeSelectionMode, OlTreeNodeToggleIcon, OlTreeSelectionMode, OlTreeToggleIcon, OlUploadFile, OtpInputSize, OverlayLayer, PaginationType, PaginationVariant, PopoverPlacement, PopoverTrigger, PositionedCoordinates, PositioningOptions, ProgressColor, ProgressLabelPosition, ProgressSize, RadarIndicator, RadioSize, RatingType, ScatterDataPoint, ScatterSeries, ScrollAreaAxis, ScrollAreaScrollbar, SegmentedColor, SegmentedOption, SegmentedSize, SegmentedVariant, SelectOption, SelectSize, SelectState, SeparatorOrientation, SpeedDialAction, SpeedDialColor, SpeedDialDirection, SpeedDialTrigger, SpeedDialType, StepState, StepperBreakpoint, StepperOrientation, StepperVariant, TabsSize, TabsVariant, TagInputSize, TextareaState, TimeObject, TimepickerFormat, TimepickerSize, TimepickerState, Toast, ToastConfig, ToastPosition, ToggleColor, TogglePosition, ToggleSize, UploadStatus, YearCell };
|
|
8347
8823
|
//# sourceMappingURL=edmicro-olkit.d.ts.map
|