@geoit/ui 0.0.4 → 0.0.5
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/AGENTS.md +12 -8
- package/README.md +49 -62
- package/ai/AGENTS.md +38 -28
- package/ai/README.md +35 -1
- package/ai/catalog.json +2796 -288
- package/ai/components/geo-alert.md +3 -3
- package/ai/components/geo-back-button.md +2 -2
- package/ai/components/geo-breadcrumb.md +1 -1
- package/ai/components/geo-button.md +3 -3
- package/ai/components/geo-chart.md +103 -0
- package/ai/components/geo-checkbox.md +4 -6
- package/ai/components/geo-column-picker.md +3 -3
- package/ai/components/geo-confirm-modal.md +4 -5
- package/ai/components/geo-dashboard.md +91 -0
- package/ai/components/geo-date-picker.md +5 -3
- package/ai/components/geo-date-range-picker.md +5 -3
- package/ai/components/geo-empty-state.md +75 -0
- package/ai/components/geo-feedback-form.md +97 -0
- package/ai/components/geo-file-picker.md +4 -2
- package/ai/components/geo-forgot-password.md +78 -0
- package/ai/components/geo-form-modal.md +9 -10
- package/ai/components/geo-icon.md +3 -3
- package/ai/components/geo-input.md +8 -6
- package/ai/components/geo-layout-footer.md +70 -0
- package/ai/components/geo-layout-header-actions.md +82 -0
- package/ai/components/geo-layout-header.md +89 -0
- package/ai/components/geo-layout-sidebar.md +86 -0
- package/ai/components/geo-layout.md +155 -0
- package/ai/components/geo-list-page.md +72 -0
- package/ai/components/geo-login.md +94 -0
- package/ai/components/geo-map-admin-filter.md +80 -0
- package/ai/components/geo-map-basemap-switcher.md +75 -0
- package/ai/components/geo-map-help.md +72 -0
- package/ai/components/geo-map-layer-card.md +73 -0
- package/ai/components/geo-map-layer-panel.md +75 -0
- package/ai/components/geo-map-layers-drawer.md +78 -0
- package/ai/components/geo-map-legend.md +74 -0
- package/ai/components/geo-map-locate.md +75 -0
- package/ai/components/geo-map-location-chip.md +71 -0
- package/ai/components/geo-map-measure.md +74 -0
- package/ai/components/geo-map-opacity.md +75 -0
- package/ai/components/geo-map-parcel-popup.md +79 -0
- package/ai/components/geo-map-search.md +83 -0
- package/ai/components/geo-map-shell.md +110 -0
- package/ai/components/geo-map-snapshot.md +75 -0
- package/ai/components/geo-map-swipe.md +73 -0
- package/ai/components/geo-map-toolbar.md +76 -0
- package/ai/components/geo-map-zoom.md +74 -0
- package/ai/components/geo-map.md +205 -0
- package/ai/components/geo-overlap-result.md +88 -0
- package/ai/components/geo-page-header.md +72 -0
- package/ai/components/geo-page-title.md +1 -1
- package/ai/components/geo-pagination.md +4 -7
- package/ai/components/geo-radio.md +3 -1
- package/ai/components/geo-row-actions.md +3 -3
- package/ai/components/geo-select.md +4 -2
- package/ai/components/geo-slider.md +5 -7
- package/ai/components/geo-stat-card.md +98 -0
- package/ai/components/geo-status-tag.md +2 -2
- package/ai/components/geo-step-form-layout.md +7 -8
- package/ai/components/geo-stepper.md +3 -4
- package/ai/components/geo-table-filter.md +4 -5
- package/ai/components/geo-table-pagination.md +4 -7
- package/ai/components/geo-table-toolbar.md +7 -7
- package/ai/components/geo-table.md +17 -20
- package/ai/components/geo-tabs.md +4 -6
- package/ai/components/geo-textarea.md +4 -2
- package/ai/components/geo-toast.md +4 -4
- package/ai/components/geo-tree.md +4 -6
- package/ai/components/geo-typography.md +1 -1
- package/ai/components/geo-upload.md +9 -10
- package/ai/mockup.html +1194 -0
- package/ai/recipes.md +98 -85
- package/esm2022/lib/figma/geo-alert/geo-alert.component.mjs +19 -36
- package/esm2022/lib/figma/geo-back-button/geo-back-button.component.mjs +14 -24
- package/esm2022/lib/figma/geo-breadcrumb/geo-breadcrumb.component.mjs +8 -11
- package/esm2022/lib/figma/geo-button/geo-button.component.mjs +30 -59
- package/esm2022/lib/figma/geo-chart/geo-chart.component.mjs +88 -0
- package/esm2022/lib/figma/geo-chart/geo-chart.types.mjs +2 -0
- package/esm2022/lib/figma/geo-checkbox/geo-checkbox.component.mjs +11 -22
- package/esm2022/lib/figma/geo-confirm-modal/geo-confirm-modal.component.mjs +22 -54
- package/esm2022/lib/figma/geo-dashboard/geo-dashboard.component.mjs +49 -0
- package/esm2022/lib/figma/geo-dashboard/geo-dashboard.types.mjs +2 -0
- package/esm2022/lib/figma/geo-date-picker/geo-date-picker.component.mjs +48 -78
- package/esm2022/lib/figma/geo-date-range-picker/geo-date-range-picker.component.mjs +47 -75
- package/esm2022/lib/figma/geo-empty-state/geo-empty-state.component.mjs +25 -0
- package/esm2022/lib/figma/geo-feedback-form/geo-feedback-form.component.mjs +75 -0
- package/esm2022/lib/figma/geo-feedback-form/geo-feedback-form.types.mjs +2 -0
- package/esm2022/lib/figma/geo-file-picker/geo-file-picker.component.mjs +59 -81
- package/esm2022/lib/figma/geo-forgot-password/geo-forgot-password.component.mjs +51 -0
- package/esm2022/lib/figma/geo-form-modal/geo-form-modal.component.mjs +45 -112
- package/esm2022/lib/figma/geo-icon/geo-icon.component.mjs +22 -32
- package/esm2022/lib/figma/geo-input/geo-input.component.mjs +41 -70
- package/esm2022/lib/figma/geo-layout/footer/geo-layout-footer.component.mjs +18 -0
- package/esm2022/lib/figma/geo-layout/geo-layout-actions.directive.mjs +15 -0
- package/esm2022/lib/figma/geo-layout/geo-layout.component.mjs +79 -0
- package/esm2022/lib/figma/geo-layout/geo-layout.types.mjs +42 -0
- package/esm2022/lib/figma/geo-layout/header/geo-layout-header.component.mjs +60 -0
- package/esm2022/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.mjs +70 -0
- package/esm2022/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.mjs +90 -0
- package/esm2022/lib/figma/geo-list-page/geo-list-page.component.mjs +22 -0
- package/esm2022/lib/figma/geo-login/geo-login.component.mjs +58 -0
- package/esm2022/lib/figma/geo-login/geo-login.types.mjs +2 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.mjs +52 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.mjs +61 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-help/geo-map-help.component.mjs +26 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-layer-card/geo-map-layer-card.component.mjs +24 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-layer-panel/geo-map-layer-panel.component.mjs +146 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.mjs +37 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.mjs +30 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.mjs +72 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.mjs +21 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.mjs +375 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.mjs +94 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.mjs +136 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.mjs +182 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.mjs +577 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.mjs +93 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.mjs +129 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.mjs +64 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.mjs +295 -0
- package/esm2022/lib/figma/geo-map/geo-map-toolbar.icons.mjs +18 -0
- package/esm2022/lib/figma/geo-map/geo-map.component.mjs +144 -0
- package/esm2022/lib/figma/geo-map/geo-map.constants.mjs +497 -0
- package/esm2022/lib/figma/geo-map/geo-map.controller.mjs +71 -0
- package/esm2022/lib/figma/geo-map/geo-map.types.mjs +2 -0
- package/esm2022/lib/figma/geo-map/services/geo-map-layer.service.mjs +368 -0
- package/esm2022/lib/figma/geo-map/services/geo-map-projection.service.mjs +110 -0
- package/esm2022/lib/figma/geo-map/services/geo-map.service.mjs +540 -0
- package/esm2022/lib/figma/geo-map/utils/geo-map-fullscreen-overlay.util.mjs +47 -0
- package/esm2022/lib/figma/geo-map/utils/geo-map-interactions.util.mjs +30 -0
- package/esm2022/lib/figma/geo-overlap-result/geo-overlap-result.component.mjs +25 -0
- package/esm2022/lib/figma/geo-overlap-result/geo-overlap-result.types.mjs +2 -0
- package/esm2022/lib/figma/geo-page-header/geo-page-header.component.mjs +23 -0
- package/esm2022/lib/figma/geo-page-title/geo-page-title.component.mjs +20 -35
- package/esm2022/lib/figma/geo-pagination/geo-pagination.component.mjs +13 -43
- package/esm2022/lib/figma/geo-radio/geo-radio.component.mjs +32 -52
- package/esm2022/lib/figma/geo-select/geo-select.component.mjs +46 -72
- package/esm2022/lib/figma/geo-slider/geo-slider.component.mjs +12 -28
- package/esm2022/lib/figma/geo-stat-card/geo-stat-card.component.mjs +163 -0
- package/esm2022/lib/figma/geo-stat-card/geo-stat-card.types.mjs +2 -0
- package/esm2022/lib/figma/geo-status-tag/geo-status-tag.component.mjs +23 -27
- package/esm2022/lib/figma/geo-step-form-layout/geo-step-form-layout.component.mjs +39 -96
- package/esm2022/lib/figma/geo-stepper/geo-stepper.component.mjs +18 -33
- package/esm2022/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.mjs +14 -24
- package/esm2022/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.mjs +18 -36
- package/esm2022/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.mjs +41 -98
- package/esm2022/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.mjs +40 -73
- package/esm2022/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.mjs +26 -56
- package/esm2022/lib/figma/geo-table/geo-table.component.mjs +110 -210
- package/esm2022/lib/figma/geo-tabs/geo-tabs.component.mjs +33 -63
- package/esm2022/lib/figma/geo-textarea/geo-textarea.component.mjs +28 -44
- package/esm2022/lib/figma/geo-toast/geo-toast.component.mjs +18 -39
- package/esm2022/lib/figma/geo-tree/geo-tree.component.mjs +12 -40
- package/esm2022/lib/figma/geo-typography/geo-typography.component.mjs +49 -64
- package/esm2022/lib/figma/geo-upload/geo-upload.component.mjs +50 -101
- package/esm2022/lib/figma/index.mjs +50 -1
- package/esm2022/lib/styles/tokens.mjs +56 -24
- package/fesm2022/geoit-ui.mjs +5981 -1825
- package/fesm2022/geoit-ui.mjs.map +1 -1
- package/lib/figma/geo-alert/geo-alert.component.d.ts +10 -11
- package/lib/figma/geo-back-button/geo-back-button.component.d.ts +6 -7
- package/lib/figma/geo-breadcrumb/geo-breadcrumb.component.d.ts +2 -2
- package/lib/figma/geo-button/geo-button.component.d.ts +21 -17
- package/lib/figma/geo-chart/geo-chart.component.d.ts +40 -0
- package/lib/figma/geo-chart/geo-chart.types.d.ts +13 -0
- package/lib/figma/geo-checkbox/geo-checkbox.component.d.ts +6 -7
- package/lib/figma/geo-confirm-modal/geo-confirm-modal.component.d.ts +15 -17
- package/lib/figma/geo-dashboard/geo-dashboard.component.d.ts +29 -0
- package/lib/figma/geo-dashboard/geo-dashboard.types.d.ts +7 -0
- package/lib/figma/geo-date-picker/geo-date-picker.component.d.ts +26 -21
- package/lib/figma/geo-date-range-picker/geo-date-range-picker.component.d.ts +25 -20
- package/lib/figma/geo-empty-state/geo-empty-state.component.d.ts +17 -0
- package/lib/figma/geo-feedback-form/geo-feedback-form.component.d.ts +36 -0
- package/lib/figma/geo-feedback-form/geo-feedback-form.types.d.ts +8 -0
- package/lib/figma/geo-file-picker/geo-file-picker.component.d.ts +23 -20
- package/lib/figma/geo-forgot-password/geo-forgot-password.component.d.ts +24 -0
- package/lib/figma/geo-form-modal/geo-form-modal.component.d.ts +33 -35
- package/lib/figma/geo-icon/geo-icon.component.d.ts +7 -7
- package/lib/figma/geo-input/geo-input.component.d.ts +23 -21
- package/lib/figma/geo-layout/footer/geo-layout-footer.component.d.ts +10 -0
- package/lib/figma/geo-layout/geo-layout-actions.directive.d.ts +6 -0
- package/lib/figma/geo-layout/geo-layout.component.d.ts +48 -0
- package/lib/figma/geo-layout/geo-layout.types.d.ts +44 -0
- package/lib/figma/geo-layout/header/geo-layout-header.component.d.ts +31 -0
- package/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.d.ts +32 -0
- package/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.d.ts +34 -0
- package/lib/figma/geo-list-page/geo-list-page.component.d.ts +16 -0
- package/lib/figma/geo-login/geo-login.component.d.ts +27 -0
- package/lib/figma/geo-login/geo-login.types.d.ts +6 -0
- package/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.d.ts +28 -0
- package/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.d.ts +26 -0
- package/lib/figma/geo-map/chrome/geo-map-help/geo-map-help.component.d.ts +20 -0
- package/lib/figma/geo-map/chrome/geo-map-layer-card/geo-map-layer-card.component.d.ts +15 -0
- package/lib/figma/geo-map/chrome/geo-map-layer-panel/geo-map-layer-panel.component.d.ts +40 -0
- package/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.d.ts +25 -0
- package/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.d.ts +18 -0
- package/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.d.ts +24 -0
- package/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.d.ts +14 -0
- package/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.d.ts +49 -0
- package/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.d.ts +30 -0
- package/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.d.ts +44 -0
- package/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.d.ts +56 -0
- package/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.d.ts +103 -0
- package/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.d.ts +21 -0
- package/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.d.ts +33 -0
- package/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.d.ts +30 -0
- package/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.d.ts +67 -0
- package/lib/figma/geo-map/geo-map-toolbar.icons.d.ts +17 -0
- package/lib/figma/geo-map/geo-map.component.d.ts +53 -0
- package/lib/figma/geo-map/geo-map.constants.d.ts +73 -0
- package/lib/figma/geo-map/geo-map.controller.d.ts +49 -0
- package/lib/figma/geo-map/geo-map.types.d.ts +224 -0
- package/lib/figma/geo-map/services/geo-map-layer.service.d.ts +42 -0
- package/lib/figma/geo-map/services/geo-map-projection.service.d.ts +32 -0
- package/lib/figma/geo-map/services/geo-map.service.d.ts +99 -0
- package/lib/figma/geo-map/utils/geo-map-fullscreen-overlay.util.d.ts +13 -0
- package/lib/figma/geo-map/utils/geo-map-interactions.util.d.ts +9 -0
- package/lib/figma/geo-overlap-result/geo-overlap-result.component.d.ts +18 -0
- package/lib/figma/geo-overlap-result/geo-overlap-result.types.d.ts +7 -0
- package/lib/figma/geo-page-header/geo-page-header.component.d.ts +16 -0
- package/lib/figma/geo-page-title/geo-page-title.component.d.ts +9 -9
- package/lib/figma/geo-pagination/geo-pagination.component.d.ts +9 -14
- package/lib/figma/geo-radio/geo-radio.component.d.ts +17 -15
- package/lib/figma/geo-select/geo-select.component.d.ts +24 -19
- package/lib/figma/geo-slider/geo-slider.component.d.ts +7 -9
- package/lib/figma/geo-stat-card/geo-stat-card.component.d.ts +50 -0
- package/lib/figma/geo-stat-card/geo-stat-card.types.d.ts +11 -0
- package/lib/figma/geo-status-tag/geo-status-tag.component.d.ts +7 -7
- package/lib/figma/geo-step-form-layout/geo-step-form-layout.component.d.ts +27 -29
- package/lib/figma/geo-stepper/geo-stepper.component.d.ts +6 -8
- package/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.d.ts +6 -7
- package/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.d.ts +11 -12
- package/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.d.ts +21 -28
- package/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.d.ts +17 -20
- package/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.d.ts +17 -18
- package/lib/figma/geo-table/geo-table.component.d.ts +58 -62
- package/lib/figma/geo-tabs/geo-tabs.component.d.ts +14 -17
- package/lib/figma/geo-textarea/geo-textarea.component.d.ts +15 -13
- package/lib/figma/geo-toast/geo-toast.component.d.ts +11 -12
- package/lib/figma/geo-tree/geo-tree.component.d.ts +8 -13
- package/lib/figma/geo-typography/geo-typography.component.d.ts +13 -13
- package/lib/figma/geo-upload/geo-upload.component.d.ts +26 -28
- package/lib/figma/index.d.ts +49 -0
- package/lib/styles/tokens.d.ts +56 -23
- package/package.json +4 -2
- package/src/lib/figma/geo-map/assets/toolbar/fullscreen.svg +8 -0
- package/src/lib/figma/geo-map/assets/toolbar/home.svg +3 -0
- package/src/lib/figma/geo-map/assets/toolbar/layers.svg +3 -0
- package/src/lib/figma/geo-map/assets/toolbar/measure-area.svg +12 -0
- package/src/lib/figma/geo-map/assets/toolbar/measure-distance.svg +5 -0
- package/src/lib/figma/geo-map/assets/toolbar/pan.svg +13 -0
- package/src/lib/figma/geo-map/assets/toolbar/search.svg +3 -0
- package/src/lib/figma/geo-map/assets/toolbar/zoom-in.svg +3 -0
- package/src/lib/figma/geo-map/assets/toolbar/zoom-out.svg +5 -0
- package/src/lib/styles/design-tokens.scss +108 -35
- package/src/lib/styles/scrollbar.scss +2 -2
- package/src/lib/styles/theme.scss +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
/**
|
|
4
3
|
* Modal form dùng chung — API bám Ant Design Modal / ng-zorro nz-modal.
|
|
@@ -6,52 +5,51 @@ import * as i0 from "@angular/core";
|
|
|
6
5
|
*/
|
|
7
6
|
export declare class GeoFormModalComponent {
|
|
8
7
|
/** Tương đương `open` (antd) / `nzVisible` (ng-zorro). */
|
|
9
|
-
open: boolean
|
|
10
|
-
title: string
|
|
8
|
+
readonly open: import("@angular/core").ModelSignal<boolean>;
|
|
9
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
11
10
|
/** Title chữ in hoa. Default `true` theo design. */
|
|
12
|
-
titleUppercase: boolean
|
|
13
|
-
okText: string
|
|
14
|
-
cancelText: string
|
|
11
|
+
readonly titleUppercase: import("@angular/core").InputSignal<boolean>;
|
|
12
|
+
readonly okText: import("@angular/core").InputSignal<string>;
|
|
13
|
+
readonly cancelText: import("@angular/core").InputSignal<string>;
|
|
15
14
|
/** Icon nút cancel (vd. `left` cho Quay lại). */
|
|
16
|
-
cancelIcon
|
|
17
|
-
cancelIconPlacement:
|
|
15
|
+
readonly cancelIcon: import("@angular/core").InputSignal<string | undefined>;
|
|
16
|
+
readonly cancelIconPlacement: import("@angular/core").InputSignal<"start" | "end">;
|
|
18
17
|
/** Icon nút OK (vd. `right` cho Tiếp theo). */
|
|
19
|
-
okIcon
|
|
20
|
-
okIconPlacement:
|
|
18
|
+
readonly okIcon: import("@angular/core").InputSignal<string | undefined>;
|
|
19
|
+
readonly okIconPlacement: import("@angular/core").InputSignal<"start" | "end">;
|
|
21
20
|
/** Nút phụ (vd. Lưu và khởi tạo lại). Chỉ hiện khi có text và không readonly. */
|
|
22
|
-
secondaryOkText: string
|
|
21
|
+
readonly secondaryOkText: import("@angular/core").InputSignal<string>;
|
|
23
22
|
/** Loading trên nút OK — giống antd `confirmLoading` / nz `nzOkLoading`. */
|
|
24
|
-
confirmLoading: boolean
|
|
23
|
+
readonly confirmLoading: import("@angular/core").InputSignal<boolean>;
|
|
25
24
|
/** Disable nút OK — giống antd `okButtonProps.disabled` / nz `nzOkDisabled`. */
|
|
26
|
-
okDisabled: boolean
|
|
25
|
+
readonly okDisabled: import("@angular/core").InputSignal<boolean>;
|
|
27
26
|
/** Ẩn nút OK (xem chi tiết). */
|
|
28
|
-
readonly: boolean
|
|
29
|
-
width:
|
|
30
|
-
closable: boolean
|
|
31
|
-
mask: boolean
|
|
32
|
-
maskClosable: boolean
|
|
33
|
-
keyboard: boolean
|
|
34
|
-
centered: boolean
|
|
35
|
-
zIndex: number
|
|
36
|
-
className: string
|
|
37
|
-
wrapClassName: string
|
|
27
|
+
readonly readonly: import("@angular/core").InputSignal<boolean>;
|
|
28
|
+
readonly width: import("@angular/core").InputSignal<string | number>;
|
|
29
|
+
readonly closable: import("@angular/core").InputSignal<boolean>;
|
|
30
|
+
readonly mask: import("@angular/core").InputSignal<boolean>;
|
|
31
|
+
readonly maskClosable: import("@angular/core").InputSignal<boolean>;
|
|
32
|
+
readonly keyboard: import("@angular/core").InputSignal<boolean>;
|
|
33
|
+
readonly centered: import("@angular/core").InputSignal<boolean>;
|
|
34
|
+
readonly zIndex: import("@angular/core").InputSignal<number>;
|
|
35
|
+
readonly className: import("@angular/core").InputSignal<string>;
|
|
36
|
+
readonly wrapClassName: import("@angular/core").InputSignal<string>;
|
|
38
37
|
/** Body cuộn, header/footer cố định. */
|
|
39
|
-
bodyScroll: boolean
|
|
38
|
+
readonly bodyScroll: import("@angular/core").InputSignal<boolean>;
|
|
40
39
|
/** Max-height của vùng body khi `bodyScroll` (vd `'60vh'`, `400`). */
|
|
41
|
-
bodyMaxHeight: string | number
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
get bodyMaxHeightCss(): string;
|
|
40
|
+
readonly bodyMaxHeight: import("@angular/core").InputSignal<string | number>;
|
|
41
|
+
readonly ok: import("@angular/core").OutputEmitterRef<void>;
|
|
42
|
+
readonly secondaryOk: import("@angular/core").OutputEmitterRef<void>;
|
|
43
|
+
readonly cancel: import("@angular/core").OutputEmitterRef<void>;
|
|
44
|
+
readonly afterOpen: import("@angular/core").OutputEmitterRef<void>;
|
|
45
|
+
readonly afterClose: import("@angular/core").OutputEmitterRef<void>;
|
|
46
|
+
readonly resolvedWrapClassName: import("@angular/core").Signal<string>;
|
|
47
|
+
readonly resolvedClassName: import("@angular/core").Signal<string>;
|
|
48
|
+
readonly bodyMaxHeightCss: import("@angular/core").Signal<string>;
|
|
51
49
|
onOpenChange(open: boolean): void;
|
|
52
50
|
onCancel(): void;
|
|
53
51
|
onOk(): void;
|
|
54
52
|
onSecondaryOk(): void;
|
|
55
53
|
static ɵfac: i0.ɵɵFactoryDeclaration<GeoFormModalComponent, never>;
|
|
56
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GeoFormModalComponent, "geo-form-modal", never, { "open": { "alias": "open"; "required": false; }; "title": { "alias": "title"; "required": false; }; "titleUppercase": { "alias": "titleUppercase"; "required": false; }; "okText": { "alias": "okText"; "required": false; }; "cancelText": { "alias": "cancelText"; "required": false; }; "cancelIcon": { "alias": "cancelIcon"; "required": false; }; "cancelIconPlacement": { "alias": "cancelIconPlacement"; "required": false; }; "okIcon": { "alias": "okIcon"; "required": false; }; "okIconPlacement": { "alias": "okIconPlacement"; "required": false; }; "secondaryOkText": { "alias": "secondaryOkText"; "required": false; }; "confirmLoading": { "alias": "confirmLoading"; "required": false; }; "okDisabled": { "alias": "okDisabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "width": { "alias": "width"; "required": false; }; "closable": { "alias": "closable"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "maskClosable": { "alias": "maskClosable"; "required": false; }; "keyboard": { "alias": "keyboard"; "required": false; }; "centered": { "alias": "centered"; "required": false; }; "zIndex": { "alias": "zIndex"; "required": false; }; "className": { "alias": "className"; "required": false; }; "wrapClassName": { "alias": "wrapClassName"; "required": false; }; "bodyScroll": { "alias": "bodyScroll"; "required": false; }; "bodyMaxHeight": { "alias": "bodyMaxHeight"; "required": false; }; }, { "
|
|
54
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoFormModalComponent, "geo-form-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleUppercase": { "alias": "titleUppercase"; "required": false; "isSignal": true; }; "okText": { "alias": "okText"; "required": false; "isSignal": true; }; "cancelText": { "alias": "cancelText"; "required": false; "isSignal": true; }; "cancelIcon": { "alias": "cancelIcon"; "required": false; "isSignal": true; }; "cancelIconPlacement": { "alias": "cancelIconPlacement"; "required": false; "isSignal": true; }; "okIcon": { "alias": "okIcon"; "required": false; "isSignal": true; }; "okIconPlacement": { "alias": "okIconPlacement"; "required": false; "isSignal": true; }; "secondaryOkText": { "alias": "secondaryOkText"; "required": false; "isSignal": true; }; "confirmLoading": { "alias": "confirmLoading"; "required": false; "isSignal": true; }; "okDisabled": { "alias": "okDisabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "maskClosable": { "alias": "maskClosable"; "required": false; "isSignal": true; }; "keyboard": { "alias": "keyboard"; "required": false; "isSignal": true; }; "centered": { "alias": "centered"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "wrapClassName": { "alias": "wrapClassName"; "required": false; "isSignal": true; }; "bodyScroll": { "alias": "bodyScroll"; "required": false; "isSignal": true; }; "bodyMaxHeight": { "alias": "bodyMaxHeight"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "ok": "ok"; "secondaryOk": "secondaryOk"; "cancel": "cancel"; "afterOpen": "afterOpen"; "afterClose": "afterClose"; }, never, ["*", "[footerStart]"], true, never>;
|
|
57
55
|
}
|
|
@@ -6,14 +6,14 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class GeoIconComponent {
|
|
8
8
|
/** Tên icon Ant Design (vd. `close`, `search`, `appstore`). */
|
|
9
|
-
type: string
|
|
10
|
-
theme: GeoIconTheme
|
|
11
|
-
spin: boolean
|
|
9
|
+
readonly type: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly theme: import("@angular/core").InputSignal<GeoIconTheme>;
|
|
11
|
+
readonly spin: import("@angular/core").InputSignal<boolean>;
|
|
12
12
|
/** xs | sm | md | lg | xl | number(px) | CSS size string */
|
|
13
|
-
size: GeoIconSize
|
|
13
|
+
readonly size: import("@angular/core").InputSignal<GeoIconSize>;
|
|
14
14
|
/** CSS color — ưu tiên design token, vd. `var(--geo-color-primary-default)` */
|
|
15
|
-
color
|
|
16
|
-
|
|
15
|
+
readonly color: import("@angular/core").InputSignal<string | undefined>;
|
|
16
|
+
readonly resolvedSize: import("@angular/core").Signal<string>;
|
|
17
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<GeoIconComponent, never>;
|
|
18
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GeoIconComponent, "geo-icon", never, { "type": { "alias": "type"; "required": true; }; "theme": { "alias": "theme"; "required": false; }; "spin": { "alias": "spin"; "required": false; }; "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, never, true, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoIconComponent, "geo-icon", never, { "type": { "alias": "type"; "required": true; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "spin": { "alias": "spin"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19
19
|
}
|
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
1
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export type GeoInputType = 'text' | 'number' | 'password' | 'email';
|
|
5
4
|
export declare class GeoInputComponent implements ControlValueAccessor {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
readonly: boolean
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
5
|
+
private readonly cdr;
|
|
6
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
7
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly type: import("@angular/core").InputSignal<GeoInputType>;
|
|
9
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
10
|
+
readonly readonly: import("@angular/core").InputSignal<boolean>;
|
|
11
|
+
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
12
|
+
readonly error: import("@angular/core").InputSignal<boolean>;
|
|
13
|
+
readonly errorMessage: import("@angular/core").InputSignal<string>;
|
|
14
|
+
readonly maxlength: import("@angular/core").InputSignal<number | undefined>;
|
|
15
|
+
readonly prefixIcon: import("@angular/core").InputSignal<string | undefined>;
|
|
16
|
+
readonly suffixIcon: import("@angular/core").InputSignal<string | undefined>;
|
|
17
|
+
readonly allowClear: import("@angular/core").InputSignal<boolean>;
|
|
18
|
+
readonly block: import("@angular/core").InputSignal<boolean>;
|
|
19
|
+
readonly width: import("@angular/core").InputSignal<string | number | undefined>;
|
|
20
|
+
readonly valueChange: import("@angular/core").OutputEmitterRef<string>;
|
|
21
|
+
readonly enterPressed: import("@angular/core").OutputEmitterRef<void>;
|
|
22
22
|
readonly errorMessageId: string;
|
|
23
|
-
|
|
23
|
+
private readonly disabledFromCva;
|
|
24
|
+
readonly isDisabled: import("@angular/core").Signal<boolean>;
|
|
25
|
+
protected readonly value: import("@angular/core").WritableSignal<string>;
|
|
24
26
|
private onChange;
|
|
25
27
|
private onTouched;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
readonly hostWidth: import("@angular/core").Signal<string | null>;
|
|
29
|
+
readonly showClear: import("@angular/core").Signal<boolean>;
|
|
28
30
|
onInput(value: string): void;
|
|
29
31
|
onBlur(): void;
|
|
30
32
|
onClear(): void;
|
|
@@ -33,5 +35,5 @@ export declare class GeoInputComponent implements ControlValueAccessor {
|
|
|
33
35
|
registerOnTouched(fn: () => void): void;
|
|
34
36
|
setDisabledState(isDisabled: boolean): void;
|
|
35
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<GeoInputComponent, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GeoInputComponent, "geo-input", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "block": { "alias": "block"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "valueChange": "valueChange"; "enterPressed": "enterPressed"; }, never, never, true, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoInputComponent, "geo-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "allowClear": { "alias": "allowClear"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "enterPressed": "enterPressed"; }, never, never, true, never>;
|
|
37
39
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal app footer for the layout shell.
|
|
4
|
+
*/
|
|
5
|
+
export declare class GeoLayoutFooterComponent {
|
|
6
|
+
/** Copyright / status text. Empty = use default. */
|
|
7
|
+
readonly text: import("@angular/core").InputSignal<string>;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoLayoutFooterComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoLayoutFooterComponent, "geo-layout-footer", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/** Đánh dấu slot thay thế header actions mặc định của `geo-layout`. */
|
|
3
|
+
export declare class GeoLayoutActionsDirective {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoLayoutActionsDirective, never>;
|
|
5
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<GeoLayoutActionsDirective, "[geoLayoutActions]", never, {}, {}, never, never, true, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { GeoBreadcrumbItem } from '../geo-breadcrumb/geo-breadcrumb.types';
|
|
2
|
+
import { GeoLayoutMenuItem, GeoLayoutNotificationItem, GeoLayoutSiderWidth, GeoLayoutSubsystemItem, GeoLayoutUserInfo, GeoLayoutUserMenuItem } from './geo-layout.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* App shell composing `geo-layout-sidebar` + `geo-layout-header` + content + `geo-layout-footer`.
|
|
6
|
+
*
|
|
7
|
+
* Storybook: **GEO / Layout / Shell** (+ Sidebar, Header, Footer, Header Actions).
|
|
8
|
+
*
|
|
9
|
+
* ```html
|
|
10
|
+
* <geo-layout [menuItems]="menu" [user]="user" [(expanded)]="expanded">
|
|
11
|
+
* <router-outlet />
|
|
12
|
+
* </geo-layout>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare class GeoLayoutComponent {
|
|
16
|
+
readonly menuItems: import("@angular/core").InputSignal<GeoLayoutMenuItem[]>;
|
|
17
|
+
readonly brandTitle: import("@angular/core").InputSignal<string>;
|
|
18
|
+
readonly logoSrc: import("@angular/core").InputSignal<string>;
|
|
19
|
+
readonly logoAlt: import("@angular/core").InputSignal<string>;
|
|
20
|
+
readonly sidebarBackgroundSrc: import("@angular/core").InputSignal<string>;
|
|
21
|
+
readonly breadcrumbs: import("@angular/core").InputSignal<GeoBreadcrumbItem[]>;
|
|
22
|
+
readonly fallbackBreadcrumb: import("@angular/core").InputSignal<string>;
|
|
23
|
+
readonly expanded: import("@angular/core").ModelSignal<boolean>;
|
|
24
|
+
readonly isMobile: import("@angular/core").InputSignal<boolean>;
|
|
25
|
+
readonly mobileMenuOpen: import("@angular/core").ModelSignal<boolean>;
|
|
26
|
+
readonly selectedKey: import("@angular/core").ModelSignal<string | null>;
|
|
27
|
+
readonly siderWidth: import("@angular/core").InputSignal<GeoLayoutSiderWidth>;
|
|
28
|
+
readonly siderCollapsedWidth: import("@angular/core").InputSignal<GeoLayoutSiderWidth>;
|
|
29
|
+
readonly showDefaultActions: import("@angular/core").InputSignal<boolean>;
|
|
30
|
+
readonly showFooter: import("@angular/core").InputSignal<boolean>;
|
|
31
|
+
readonly footerText: import("@angular/core").InputSignal<string>;
|
|
32
|
+
readonly user: import("@angular/core").InputSignal<GeoLayoutUserInfo>;
|
|
33
|
+
readonly notifications: import("@angular/core").InputSignal<GeoLayoutNotificationItem[]>;
|
|
34
|
+
readonly subsystems: import("@angular/core").InputSignal<GeoLayoutSubsystemItem[]>;
|
|
35
|
+
readonly userMenuItems: import("@angular/core").InputSignal<GeoLayoutUserMenuItem[]>;
|
|
36
|
+
readonly menuSelect: import("@angular/core").OutputEmitterRef<GeoLayoutMenuItem>;
|
|
37
|
+
readonly sidebarToggle: import("@angular/core").OutputEmitterRef<void>;
|
|
38
|
+
readonly notificationClick: import("@angular/core").OutputEmitterRef<GeoLayoutNotificationItem>;
|
|
39
|
+
readonly subsystemClick: import("@angular/core").OutputEmitterRef<GeoLayoutSubsystemItem>;
|
|
40
|
+
readonly userMenuClick: import("@angular/core").OutputEmitterRef<GeoLayoutUserMenuItem>;
|
|
41
|
+
readonly logout: import("@angular/core").OutputEmitterRef<void>;
|
|
42
|
+
readonly siderCollapsed: import("@angular/core").Signal<boolean>;
|
|
43
|
+
onToggleSidebar(): void;
|
|
44
|
+
closeMobileMenu(): void;
|
|
45
|
+
onMenuSelect(item: GeoLayoutMenuItem): void;
|
|
46
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoLayoutComponent, never>;
|
|
47
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoLayoutComponent, "geo-layout", never, { "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "brandTitle": { "alias": "brandTitle"; "required": false; "isSignal": true; }; "logoSrc": { "alias": "logoSrc"; "required": false; "isSignal": true; }; "logoAlt": { "alias": "logoAlt"; "required": false; "isSignal": true; }; "sidebarBackgroundSrc": { "alias": "sidebarBackgroundSrc"; "required": false; "isSignal": true; }; "breadcrumbs": { "alias": "breadcrumbs"; "required": false; "isSignal": true; }; "fallbackBreadcrumb": { "alias": "fallbackBreadcrumb"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "isMobile": { "alias": "isMobile"; "required": false; "isSignal": true; }; "mobileMenuOpen": { "alias": "mobileMenuOpen"; "required": false; "isSignal": true; }; "selectedKey": { "alias": "selectedKey"; "required": false; "isSignal": true; }; "siderWidth": { "alias": "siderWidth"; "required": false; "isSignal": true; }; "siderCollapsedWidth": { "alias": "siderCollapsedWidth"; "required": false; "isSignal": true; }; "showDefaultActions": { "alias": "showDefaultActions"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "footerText": { "alias": "footerText"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "subsystems": { "alias": "subsystems"; "required": false; "isSignal": true; }; "userMenuItems": { "alias": "userMenuItems"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "mobileMenuOpen": "mobileMenuOpenChange"; "selectedKey": "selectedKeyChange"; "menuSelect": "menuSelect"; "sidebarToggle": "sidebarToggle"; "notificationClick": "notificationClick"; "subsystemClick": "subsystemClick"; "userMenuClick": "userMenuClick"; "logout": "logout"; }, never, ["[geoLayoutActions]", "*", "[geoLayoutFooter]"], true, never>;
|
|
48
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Menu item for `geo-layout` sidebar (recursive). */
|
|
2
|
+
export interface GeoLayoutMenuItem {
|
|
3
|
+
/** Stable id used for selection / open state. */
|
|
4
|
+
key: string;
|
|
5
|
+
/** Display label. */
|
|
6
|
+
title: string;
|
|
7
|
+
/** Optional `geo-icon` / Ant Design icon type. */
|
|
8
|
+
icon?: string;
|
|
9
|
+
/** Optional route / href hint for consumers (Storybook clicks use `menuSelect`). */
|
|
10
|
+
link?: string;
|
|
11
|
+
children?: GeoLayoutMenuItem[];
|
|
12
|
+
}
|
|
13
|
+
export type GeoLayoutSiderWidth = number | string;
|
|
14
|
+
/** User shown in the header chip / account popover. */
|
|
15
|
+
export interface GeoLayoutUserInfo {
|
|
16
|
+
name: string;
|
|
17
|
+
email?: string;
|
|
18
|
+
/** Optional avatar URL; initials used when empty. */
|
|
19
|
+
avatarUrl?: string;
|
|
20
|
+
role?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface GeoLayoutNotificationItem {
|
|
23
|
+
id: string;
|
|
24
|
+
message: string;
|
|
25
|
+
time: string;
|
|
26
|
+
read?: boolean;
|
|
27
|
+
icon?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface GeoLayoutSubsystemItem {
|
|
30
|
+
id: string;
|
|
31
|
+
label: string;
|
|
32
|
+
initials: string;
|
|
33
|
+
url?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface GeoLayoutUserMenuItem {
|
|
36
|
+
key: string;
|
|
37
|
+
label: string;
|
|
38
|
+
icon: string;
|
|
39
|
+
danger?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export declare const GEO_LAYOUT_DEFAULT_USER: GeoLayoutUserInfo;
|
|
42
|
+
export declare const GEO_LAYOUT_DEFAULT_NOTIFICATIONS: GeoLayoutNotificationItem[];
|
|
43
|
+
export declare const GEO_LAYOUT_DEFAULT_SUBSYSTEMS: GeoLayoutSubsystemItem[];
|
|
44
|
+
export declare const GEO_LAYOUT_DEFAULT_USER_MENU: GeoLayoutUserMenuItem[];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { GeoBreadcrumbItem } from '../../geo-breadcrumb/geo-breadcrumb.types';
|
|
2
|
+
import { GeoLayoutNotificationItem, GeoLayoutSubsystemItem, GeoLayoutUserInfo, GeoLayoutUserMenuItem } from '../geo-layout.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Top bar: sidebar toggle + breadcrumb + header actions.
|
|
6
|
+
*/
|
|
7
|
+
export declare class GeoLayoutHeaderComponent {
|
|
8
|
+
readonly breadcrumbs: import("@angular/core").InputSignal<GeoBreadcrumbItem[]>;
|
|
9
|
+
readonly fallbackBreadcrumb: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly expanded: import("@angular/core").InputSignal<boolean>;
|
|
11
|
+
readonly isMobile: import("@angular/core").InputSignal<boolean>;
|
|
12
|
+
readonly mobileMenuOpen: import("@angular/core").InputSignal<boolean>;
|
|
13
|
+
readonly showDefaultActions: import("@angular/core").InputSignal<boolean>;
|
|
14
|
+
readonly user: import("@angular/core").InputSignal<GeoLayoutUserInfo>;
|
|
15
|
+
readonly notifications: import("@angular/core").InputSignal<GeoLayoutNotificationItem[]>;
|
|
16
|
+
readonly subsystems: import("@angular/core").InputSignal<GeoLayoutSubsystemItem[]>;
|
|
17
|
+
readonly userMenuItems: import("@angular/core").InputSignal<GeoLayoutUserMenuItem[]>;
|
|
18
|
+
readonly sidebarToggle: import("@angular/core").OutputEmitterRef<void>;
|
|
19
|
+
readonly notificationClick: import("@angular/core").OutputEmitterRef<GeoLayoutNotificationItem>;
|
|
20
|
+
readonly subsystemClick: import("@angular/core").OutputEmitterRef<GeoLayoutSubsystemItem>;
|
|
21
|
+
readonly userMenuClick: import("@angular/core").OutputEmitterRef<GeoLayoutUserMenuItem>;
|
|
22
|
+
readonly logout: import("@angular/core").OutputEmitterRef<void>;
|
|
23
|
+
private readonly projectedActions;
|
|
24
|
+
readonly hasProjectedActions: import("@angular/core").Signal<boolean>;
|
|
25
|
+
readonly showBuiltInActions: import("@angular/core").Signal<boolean>;
|
|
26
|
+
readonly toggleIcon: import("@angular/core").Signal<"menu-fold" | "menu-unfold">;
|
|
27
|
+
readonly toggleAriaLabel: import("@angular/core").Signal<"Đóng menu" | "Mở menu" | "Thu gọn menu" | "Mở rộng menu">;
|
|
28
|
+
onToggle(): void;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoLayoutHeaderComponent, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoLayoutHeaderComponent, "geo-layout-header", never, { "breadcrumbs": { "alias": "breadcrumbs"; "required": false; "isSignal": true; }; "fallbackBreadcrumb": { "alias": "fallbackBreadcrumb"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "isMobile": { "alias": "isMobile"; "required": false; "isSignal": true; }; "mobileMenuOpen": { "alias": "mobileMenuOpen"; "required": false; "isSignal": true; }; "showDefaultActions": { "alias": "showDefaultActions"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "subsystems": { "alias": "subsystems"; "required": false; "isSignal": true; }; "userMenuItems": { "alias": "userMenuItems"; "required": false; "isSignal": true; }; }, { "sidebarToggle": "sidebarToggle"; "notificationClick": "notificationClick"; "subsystemClick": "subsystemClick"; "userMenuClick": "userMenuClick"; "logout": "logout"; }, ["projectedActions"], ["[geoLayoutActions]"], true, never>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { GeoLayoutNotificationItem, GeoLayoutSubsystemItem, GeoLayoutUserInfo, GeoLayoutUserMenuItem } from '../geo-layout.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Header actions mặc định: thông báo, phân hệ, user chip + popovers (mock/data-driven).
|
|
5
|
+
*/
|
|
6
|
+
export declare class GeoLayoutHeaderActionsComponent {
|
|
7
|
+
readonly user: import("@angular/core").InputSignal<GeoLayoutUserInfo>;
|
|
8
|
+
readonly notifications: import("@angular/core").InputSignal<GeoLayoutNotificationItem[]>;
|
|
9
|
+
readonly subsystems: import("@angular/core").InputSignal<GeoLayoutSubsystemItem[]>;
|
|
10
|
+
readonly userMenuItems: import("@angular/core").InputSignal<GeoLayoutUserMenuItem[]>;
|
|
11
|
+
/** Ẩn tên/email trên chip (mobile). */
|
|
12
|
+
readonly compact: import("@angular/core").InputSignal<boolean>;
|
|
13
|
+
readonly notificationClick: import("@angular/core").OutputEmitterRef<GeoLayoutNotificationItem>;
|
|
14
|
+
readonly subsystemClick: import("@angular/core").OutputEmitterRef<GeoLayoutSubsystemItem>;
|
|
15
|
+
readonly userMenuClick: import("@angular/core").OutputEmitterRef<GeoLayoutUserMenuItem>;
|
|
16
|
+
readonly logout: import("@angular/core").OutputEmitterRef<void>;
|
|
17
|
+
readonly notifyOpen: import("@angular/core").WritableSignal<boolean>;
|
|
18
|
+
readonly subsystemOpen: import("@angular/core").WritableSignal<boolean>;
|
|
19
|
+
readonly userOpen: import("@angular/core").WritableSignal<boolean>;
|
|
20
|
+
readonly unreadCount: import("@angular/core").Signal<number>;
|
|
21
|
+
readonly initials: import("@angular/core").Signal<string>;
|
|
22
|
+
readonly primaryMenuItems: import("@angular/core").Signal<GeoLayoutUserMenuItem[]>;
|
|
23
|
+
readonly dangerMenuItems: import("@angular/core").Signal<GeoLayoutUserMenuItem[]>;
|
|
24
|
+
onNotifyVisible(visible: boolean): void;
|
|
25
|
+
onSubsystemVisible(visible: boolean): void;
|
|
26
|
+
onUserVisible(visible: boolean): void;
|
|
27
|
+
onNotificationItem(item: GeoLayoutNotificationItem): void;
|
|
28
|
+
onSubsystemItem(item: GeoLayoutSubsystemItem): void;
|
|
29
|
+
onUserMenuItem(item: GeoLayoutUserMenuItem): void;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoLayoutHeaderActionsComponent, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoLayoutHeaderActionsComponent, "geo-layout-header-actions", never, { "user": { "alias": "user"; "required": false; "isSignal": true; }; "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "subsystems": { "alias": "subsystems"; "required": false; "isSignal": true; }; "userMenuItems": { "alias": "userMenuItems"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, { "notificationClick": "notificationClick"; "subsystemClick": "subsystemClick"; "userMenuClick": "userMenuClick"; "logout": "logout"; }, never, never, true, never>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GeoLayoutMenuItem, GeoLayoutSiderWidth } from '../geo-layout.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Sidebar shell: brand + recursive menu.
|
|
5
|
+
* Collapsed (desktop): hover item mở popover bên phải (tên leaf / submenu group).
|
|
6
|
+
*/
|
|
7
|
+
export declare class GeoLayoutSidebarComponent {
|
|
8
|
+
readonly menuItems: import("@angular/core").InputSignal<GeoLayoutMenuItem[]>;
|
|
9
|
+
readonly brandTitle: import("@angular/core").InputSignal<string>;
|
|
10
|
+
readonly logoSrc: import("@angular/core").InputSignal<string>;
|
|
11
|
+
readonly logoAlt: import("@angular/core").InputSignal<string>;
|
|
12
|
+
readonly sidebarBackgroundSrc: import("@angular/core").InputSignal<string>;
|
|
13
|
+
readonly selectedKey: import("@angular/core").ModelSignal<string | null>;
|
|
14
|
+
readonly collapsed: import("@angular/core").InputSignal<boolean>;
|
|
15
|
+
readonly isMobile: import("@angular/core").InputSignal<boolean>;
|
|
16
|
+
readonly mobileOpen: import("@angular/core").InputSignal<boolean>;
|
|
17
|
+
readonly width: import("@angular/core").InputSignal<GeoLayoutSiderWidth>;
|
|
18
|
+
readonly collapsedWidth: import("@angular/core").InputSignal<GeoLayoutSiderWidth>;
|
|
19
|
+
readonly menuSelect: import("@angular/core").OutputEmitterRef<GeoLayoutMenuItem>;
|
|
20
|
+
private readonly openKeys;
|
|
21
|
+
/** Desktop icon-rail: hiện popover khi hover. */
|
|
22
|
+
readonly flyoutEnabled: import("@angular/core").Signal<boolean>;
|
|
23
|
+
readonly showLabels: import("@angular/core").Signal<boolean>;
|
|
24
|
+
readonly widthCss: import("@angular/core").Signal<string>;
|
|
25
|
+
isOpen(key: string): boolean;
|
|
26
|
+
isSelected(key: string): boolean;
|
|
27
|
+
hasSelectedDescendant(item: GeoLayoutMenuItem): boolean;
|
|
28
|
+
toggleSubmenu(key: string): void;
|
|
29
|
+
onMenuItemClick(item: GeoLayoutMenuItem): void;
|
|
30
|
+
selectLeaf(item: GeoLayoutMenuItem): void;
|
|
31
|
+
private toCssSize;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoLayoutSidebarComponent, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoLayoutSidebarComponent, "geo-layout-sidebar", never, { "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "brandTitle": { "alias": "brandTitle"; "required": false; "isSignal": true; }; "logoSrc": { "alias": "logoSrc"; "required": false; "isSignal": true; }; "logoAlt": { "alias": "logoAlt"; "required": false; "isSignal": true; }; "sidebarBackgroundSrc": { "alias": "sidebarBackgroundSrc"; "required": false; "isSignal": true; }; "selectedKey": { "alias": "selectedKey"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "isMobile": { "alias": "isMobile"; "required": false; "isSignal": true; }; "mobileOpen": { "alias": "mobileOpen"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; "isSignal": true; }; }, { "selectedKey": "selectedKeyChange"; "menuSelect": "menuSelect"; }, never, never, true, never>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GeoBreadcrumbItem } from '../geo-breadcrumb/geo-breadcrumb.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Standard list / CRUD page chrome (admin & thống kê).
|
|
5
|
+
*
|
|
6
|
+
* @summary Layout trang danh sách: header + filter + toolbar + nội dung bảng.
|
|
7
|
+
* @whenToUse QL người dùng, đồng bộ iLIS, QL dịch vụ/bản đồ, thống kê tờ.
|
|
8
|
+
* @doNotUseWhen Map portal — use geo-map-shell.
|
|
9
|
+
*/
|
|
10
|
+
export declare class GeoListPageComponent {
|
|
11
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
12
|
+
readonly breadcrumb: import("@angular/core").InputSignal<GeoBreadcrumbItem[]>;
|
|
13
|
+
readonly uppercase: import("@angular/core").InputSignal<boolean>;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoListPageComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoListPageComponent, "geo-list-page", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; "isSignal": true; }; "uppercase": { "alias": "uppercase"; "required": false; "isSignal": true; }; }, {}, never, ["[geoListActions]", "[geoListFilters]", "geo-table-filter,[geoListFilter]", "geo-table-toolbar,[geoListToolbar]", "*"], true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { GeoLoginPayload } from './geo-login.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Login form (STT 35 — đăng nhập).
|
|
5
|
+
*
|
|
6
|
+
* @summary Form đăng nhập: tài khoản, mật khẩu, mã kiểm tra, ghi nhớ.
|
|
7
|
+
* @whenToUse Màn Đăng nhập chuyên viên.
|
|
8
|
+
* @doNotUseWhen SSO-only flows without local credentials.
|
|
9
|
+
*/
|
|
10
|
+
export declare class GeoLoginComponent {
|
|
11
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
12
|
+
readonly subtitle: import("@angular/core").InputSignal<string>;
|
|
13
|
+
readonly captchaHint: import("@angular/core").InputSignal<string>;
|
|
14
|
+
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
15
|
+
readonly errorMessage: import("@angular/core").InputSignal<string>;
|
|
16
|
+
readonly showForgotPassword: import("@angular/core").InputSignal<boolean>;
|
|
17
|
+
readonly username: import("@angular/core").ModelSignal<string>;
|
|
18
|
+
readonly password: import("@angular/core").ModelSignal<string>;
|
|
19
|
+
readonly captcha: import("@angular/core").ModelSignal<string>;
|
|
20
|
+
readonly remember: import("@angular/core").ModelSignal<boolean>;
|
|
21
|
+
readonly submitLogin: import("@angular/core").OutputEmitterRef<GeoLoginPayload>;
|
|
22
|
+
readonly forgotPassword: import("@angular/core").OutputEmitterRef<void>;
|
|
23
|
+
readonly submitted: import("@angular/core").WritableSignal<boolean>;
|
|
24
|
+
submit(): void;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoLoginComponent, never>;
|
|
26
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoLoginComponent, "geo-login", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "captchaHint": { "alias": "captchaHint"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "showForgotPassword": { "alias": "showForgotPassword"; "required": false; "isSignal": true; }; "username": { "alias": "username"; "required": false; "isSignal": true; }; "password": { "alias": "password"; "required": false; "isSignal": true; }; "captcha": { "alias": "captcha"; "required": false; "isSignal": true; }; "remember": { "alias": "remember"; "required": false; "isSignal": true; }; }, { "username": "usernameChange"; "password": "passwordChange"; "captcha": "captchaChange"; "remember": "rememberChange"; "submitLogin": "submitLogin"; "forgotPassword": "forgotPassword"; }, never, ["[geoCaptcha]"], true, never>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { GeoTreeNode } from '../../../geo-tree/geo-tree.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Administrative unit filter tree (TCQH.14 — cấp xã).
|
|
5
|
+
*
|
|
6
|
+
* @summary Panel lọc cây đơn vị hành chính cấp xã trên bản đồ.
|
|
7
|
+
* @whenToUse Tra cứu bản đồ cần lọc theo xã / phường.
|
|
8
|
+
* @doNotUseWhen Global org charts outside map context.
|
|
9
|
+
*/
|
|
10
|
+
export declare class GeoMapAdminFilterComponent {
|
|
11
|
+
readonly open: import("@angular/core").ModelSignal<boolean>;
|
|
12
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
13
|
+
readonly nodes: import("@angular/core").InputSignal<GeoTreeNode[]>;
|
|
14
|
+
readonly checkedKeys: import("@angular/core").ModelSignal<(string | number)[]>;
|
|
15
|
+
readonly expandedKeys: import("@angular/core").ModelSignal<(string | number)[]>;
|
|
16
|
+
readonly apply: import("@angular/core").OutputEmitterRef<(string | number)[]>;
|
|
17
|
+
readonly reset: import("@angular/core").OutputEmitterRef<void>;
|
|
18
|
+
readonly fitProvince: import("@angular/core").OutputEmitterRef<void>;
|
|
19
|
+
readonly closed: import("@angular/core").OutputEmitterRef<void>;
|
|
20
|
+
readonly selectionChange: import("@angular/core").OutputEmitterRef<(string | number)[]>;
|
|
21
|
+
onCheckedChange(keys: Array<string | number>): void;
|
|
22
|
+
onApply(): void;
|
|
23
|
+
onReset(): void;
|
|
24
|
+
onFitProvince(): void;
|
|
25
|
+
close(): void;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoMapAdminFilterComponent, never>;
|
|
27
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapAdminFilterComponent, "geo-map-admin-filter", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "checkedKeys": { "alias": "checkedKeys"; "required": false; "isSignal": true; }; "expandedKeys": { "alias": "expandedKeys"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "checkedKeys": "checkedKeysChange"; "expandedKeys": "expandedKeysChange"; "apply": "apply"; "reset": "reset"; "fitProvince": "fitProvince"; "closed": "closed"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
28
|
+
}
|
package/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { GeoMapBasemapOption } from '../../geo-map.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Thumbnail card toggling street ↔ satellite basemap.
|
|
5
|
+
*
|
|
6
|
+
* @summary Toggle street / satellite basemap.
|
|
7
|
+
* @whenToUse Right-side basemap toggle.
|
|
8
|
+
* @doNotUseWhen Full layer panel — use geo-map-layer-panel.
|
|
9
|
+
*/
|
|
10
|
+
export declare class GeoMapBasemapSwitcherComponent {
|
|
11
|
+
/** Exactly two options (street + satellite). Extra items are ignored. */
|
|
12
|
+
readonly options: import("@angular/core").InputSignal<GeoMapBasemapOption[]>;
|
|
13
|
+
readonly selectedId: import("@angular/core").ModelSignal<string>;
|
|
14
|
+
/** Caption on the thumbnail card (design: «Lớp bản đồ»). */
|
|
15
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
16
|
+
readonly tooltip: import("@angular/core").InputSignal<string>;
|
|
17
|
+
readonly basemapChange: import("@angular/core").OutputEmitterRef<import("../../geo-map.types").GeoMapBasemapInput>;
|
|
18
|
+
readonly pair: import("@angular/core").Signal<GeoMapBasemapOption[]>;
|
|
19
|
+
readonly selected: import("@angular/core").Signal<GeoMapBasemapOption>;
|
|
20
|
+
/** Preview of the other basemap (what click will switch to). */
|
|
21
|
+
readonly next: import("@angular/core").Signal<GeoMapBasemapOption | null>;
|
|
22
|
+
readonly tooltipText: import("@angular/core").Signal<string>;
|
|
23
|
+
toggle(): void;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoMapBasemapSwitcherComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapBasemapSwitcherComponent, "geo-map-basemap-switcher", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "selectedId": { "alias": "selectedId"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, { "selectedId": "selectedIdChange"; "basemapChange": "basemapChange"; }, never, never, true, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export interface GeoMapHelpSection {
|
|
3
|
+
title: string;
|
|
4
|
+
body: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Map help popup (text hướng dẫn sử dụng).
|
|
8
|
+
*
|
|
9
|
+
* @summary Pop-up hướng dẫn sử dụng trên bản đồ.
|
|
10
|
+
* @whenToUse UC-24 xem hướng dẫn sử dụng.
|
|
11
|
+
* @doNotUseWhen Full docs site pages.
|
|
12
|
+
*/
|
|
13
|
+
export declare class GeoMapHelpComponent {
|
|
14
|
+
readonly open: import("@angular/core").ModelSignal<boolean>;
|
|
15
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
16
|
+
readonly sections: import("@angular/core").InputSignal<GeoMapHelpSection[]>;
|
|
17
|
+
close(): void;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoMapHelpComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapHelpComponent, "geo-map-help", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Bottom-left “Lớp bản đồ” thumbnail card to open layer panel.
|
|
4
|
+
*
|
|
5
|
+
* @summary Bottom-left layer entry card.
|
|
6
|
+
* @whenToUse Entry point to layers / legend overlays.
|
|
7
|
+
* @doNotUseWhen Inline layer checklist — use geo-map-layer-panel.
|
|
8
|
+
*/
|
|
9
|
+
export declare class GeoMapLayerCardComponent {
|
|
10
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
11
|
+
readonly previewUrl: import("@angular/core").InputSignal<string | undefined>;
|
|
12
|
+
readonly clicked: import("@angular/core").OutputEmitterRef<void>;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoMapLayerCardComponent, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapLayerCardComponent, "geo-map-layer-card", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "previewUrl": { "alias": "previewUrl"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
15
|
+
}
|