@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
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# geo-forgot-password
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoForgotPasswordComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
GeoForgotPasswordComponent
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoForgotPasswordComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoForgotPasswordComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-forgot-password`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`other`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
—
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
—
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Binding
|
|
36
|
+
|
|
37
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
38
|
+
|
|
39
|
+
## Inputs
|
|
40
|
+
|
|
41
|
+
Every supported Input (do not invent others):
|
|
42
|
+
|
|
43
|
+
| Input | Type | Default | Description |
|
|
44
|
+
|-------|------|---------|-------------|
|
|
45
|
+
| `title` | `string` | `'Quên mật khẩu'` | — |
|
|
46
|
+
| `subtitle` | `string` | `'Nhập email đã đăng ký để nhận mật khẩu mới.'` | — |
|
|
47
|
+
| `loading` | `boolean` | `false` | — |
|
|
48
|
+
| `errorMessage` | `string` | `''` | — |
|
|
49
|
+
| `successMessage` | `string` | `''` | — |
|
|
50
|
+
| `email` | `string` | `''` | Two-way `model()` (supports banana binding). |
|
|
51
|
+
|
|
52
|
+
## Outputs
|
|
53
|
+
|
|
54
|
+
| Output | Payload | Description |
|
|
55
|
+
|--------|---------|-------------|
|
|
56
|
+
| `submitEmail` | `OutputEmitterRef<string>` | — |
|
|
57
|
+
| `backToLogin` | `OutputEmitterRef<void>` | — |
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
62
|
+
### Example
|
|
63
|
+
|
|
64
|
+
```html
|
|
65
|
+
<geo-forgot-password></geo-forgot-password>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Package path
|
|
69
|
+
`node_modules/@geoit/ui/ai/components/geo-forgot-password.md`
|
|
70
|
+
|
|
71
|
+
## Source
|
|
72
|
+
`projects/geo-ui/src/lib/figma/geo-forgot-password/geo-forgot-password.component.ts`
|
|
73
|
+
|
|
74
|
+
## Rules for AI / consumers
|
|
75
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
76
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
77
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
78
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -38,7 +38,7 @@ Modal form: header/footer cố định, body scroll qua ng-content. [open] + (op
|
|
|
38
38
|
|
|
39
39
|
## Binding
|
|
40
40
|
|
|
41
|
-
Standalone
|
|
41
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
42
42
|
|
|
43
43
|
## Inputs
|
|
44
44
|
|
|
@@ -46,14 +46,14 @@ Every supported Input (do not invent others):
|
|
|
46
46
|
|
|
47
47
|
| Input | Type | Default | Description |
|
|
48
48
|
|-------|------|---------|-------------|
|
|
49
|
-
| `open` | `boolean` | `false` | Tương đương `open` (antd) / `nzVisible` (ng-zorro). |
|
|
49
|
+
| `open` | `boolean` | `false` | Tương đương `open` (antd) / `nzVisible` (ng-zorro). — Two-way `model()` (supports banana binding). |
|
|
50
50
|
| `title` | `string` | `''` | — |
|
|
51
51
|
| `titleUppercase` | `boolean` | `true` | Title chữ in hoa. Default `true` theo design. |
|
|
52
52
|
| `okText` | `string` | `'Lưu'` | — |
|
|
53
53
|
| `cancelText` | `string` | `'Hủy'` | — |
|
|
54
|
-
| `cancelIcon` | `string` |
|
|
54
|
+
| `cancelIcon` | `string \| undefined` | `undefined` | Icon nút cancel (vd. `left` cho Quay lại). |
|
|
55
55
|
| `cancelIconPlacement` | `'start' \| 'end'` | `'start'` | — |
|
|
56
|
-
| `okIcon` | `string` |
|
|
56
|
+
| `okIcon` | `string \| undefined` | `undefined` | Icon nút OK (vd. `right` cho Tiếp theo). |
|
|
57
57
|
| `okIconPlacement` | `'start' \| 'end'` | `'end'` | — |
|
|
58
58
|
| `secondaryOkText` | `string` | `''` | Nút phụ (vd. Lưu và khởi tạo lại). Chỉ hiện khi có text và không readonly. |
|
|
59
59
|
| `confirmLoading` | `boolean` | `false` | Loading trên nút OK — giống antd `confirmLoading` / nz `nzOkLoading`. |
|
|
@@ -75,12 +75,11 @@ Every supported Input (do not invent others):
|
|
|
75
75
|
|
|
76
76
|
| Output | Payload | Description |
|
|
77
77
|
|--------|---------|-------------|
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
80
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `afterClose` | `EventEmitter<void>` | — |
|
|
78
|
+
| `ok` | `OutputEmitterRef<void>` | — |
|
|
79
|
+
| `secondaryOk` | `OutputEmitterRef<void>` | — |
|
|
80
|
+
| `cancel` | `OutputEmitterRef<void>` | — |
|
|
81
|
+
| `afterOpen` | `OutputEmitterRef<void>` | — |
|
|
82
|
+
| `afterClose` | `OutputEmitterRef<void>` | — |
|
|
84
83
|
|
|
85
84
|
|
|
86
85
|
## Examples
|
|
@@ -37,7 +37,7 @@ Wrapper icon Ant Design. Bắt buộc [type]; size xs|sm|md|lg|xl hoặc px; col
|
|
|
37
37
|
|
|
38
38
|
## Binding
|
|
39
39
|
|
|
40
|
-
Standalone
|
|
40
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
41
41
|
|
|
42
42
|
## Inputs
|
|
43
43
|
|
|
@@ -45,11 +45,11 @@ Every supported Input (do not invent others):
|
|
|
45
45
|
|
|
46
46
|
| Input | Type | Default | Description |
|
|
47
47
|
|-------|------|---------|-------------|
|
|
48
|
-
| `type` |
|
|
48
|
+
| `type` | `string` | — | Tên icon Ant Design (vd. `close`, `search`, `appstore`). |
|
|
49
49
|
| `theme` | `'outline' \| 'fill' \| 'twotone'` | `'outline'` | — |
|
|
50
50
|
| `spin` | `boolean` | `false` | — |
|
|
51
51
|
| `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| number \| string` | `'md'` | xs \| sm \| md \| lg \| xl \| number(px) \| CSS size string |
|
|
52
|
-
| `color` | `string` |
|
|
52
|
+
| `color` | `string \| undefined` | `undefined` | CSS color — ưu tiên design token, vd. `var(--geo-color-primary-default)` |
|
|
53
53
|
|
|
54
54
|
## Outputs
|
|
55
55
|
|
|
@@ -48,6 +48,8 @@ Supports **ControlValueAccessor**.
|
|
|
48
48
|
|
|
49
49
|
Also import `FormsModule` (template-driven) or `ReactiveFormsModule`.
|
|
50
50
|
|
|
51
|
+
Library API uses Angular 18 `input()` / `output()` signals under the hood.
|
|
52
|
+
|
|
51
53
|
## Inputs
|
|
52
54
|
|
|
53
55
|
Every supported Input (do not invent others):
|
|
@@ -62,19 +64,19 @@ Every supported Input (do not invent others):
|
|
|
62
64
|
| `required` | `boolean` | `false` | — |
|
|
63
65
|
| `error` | `boolean` | `false` | — |
|
|
64
66
|
| `errorMessage` | `string` | `''` | — |
|
|
65
|
-
| `maxlength` | `number` |
|
|
66
|
-
| `prefixIcon` | `string` |
|
|
67
|
-
| `suffixIcon` | `string` |
|
|
67
|
+
| `maxlength` | `number \| undefined` | `undefined` | — |
|
|
68
|
+
| `prefixIcon` | `string \| undefined` | `undefined` | — |
|
|
69
|
+
| `suffixIcon` | `string \| undefined` | `undefined` | — |
|
|
68
70
|
| `allowClear` | `boolean` | `false` | — |
|
|
69
71
|
| `block` | `boolean` | `false` | — |
|
|
70
|
-
| `width` | `number \| string` |
|
|
72
|
+
| `width` | `number \| string \| undefined` | `undefined` | — |
|
|
71
73
|
|
|
72
74
|
## Outputs
|
|
73
75
|
|
|
74
76
|
| Output | Payload | Description |
|
|
75
77
|
|--------|---------|-------------|
|
|
76
|
-
| `valueChange` | `
|
|
77
|
-
| `enterPressed` | `
|
|
78
|
+
| `valueChange` | `OutputEmitterRef<string>` | — |
|
|
79
|
+
| `enterPressed` | `OutputEmitterRef<void>` | — |
|
|
78
80
|
|
|
79
81
|
|
|
80
82
|
## Examples
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# geo-layout-footer
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoLayoutFooterComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Minimal layout footer with copyright text + content slot.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoLayoutFooterComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoLayoutFooterComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-layout-footer`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`layout`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Bottom chrome inside geo-layout or custom shells.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Marketing page footers with heavy links/nav.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Binding
|
|
36
|
+
|
|
37
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
38
|
+
|
|
39
|
+
## Inputs
|
|
40
|
+
|
|
41
|
+
Every supported Input (do not invent others):
|
|
42
|
+
|
|
43
|
+
| Input | Type | Default | Description |
|
|
44
|
+
|-------|------|---------|-------------|
|
|
45
|
+
| `text` | `string` | `'© VNPT \| Hệ thống thông tin đất đai iLIS'` | Copyright / status text. Empty = use default. |
|
|
46
|
+
|
|
47
|
+
## Outputs
|
|
48
|
+
|
|
49
|
+
_None_
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
|
|
54
|
+
### Example
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<geo-layout-footer text="© VNPT | iLIS"></geo-layout-footer>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Package path
|
|
61
|
+
`node_modules/@geoit/ui/ai/components/geo-layout-footer.md`
|
|
62
|
+
|
|
63
|
+
## Source
|
|
64
|
+
`projects/geo-ui/src/lib/figma/geo-layout/footer/geo-layout-footer.component.ts`
|
|
65
|
+
|
|
66
|
+
## Rules for AI / consumers
|
|
67
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
68
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
69
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
70
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# geo-layout-header-actions
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoLayoutHeaderActionsComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Header actions: notification/subsystem icons + user chip with popovers.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoLayoutHeaderActionsComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoLayoutHeaderActionsComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-layout-header-actions`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`layout`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Standalone header toolbar, or default actions inside geo-layout-header.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Full app chrome — prefer wrapping with geo-layout.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Binding
|
|
36
|
+
|
|
37
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
38
|
+
|
|
39
|
+
## Inputs
|
|
40
|
+
|
|
41
|
+
Every supported Input (do not invent others):
|
|
42
|
+
|
|
43
|
+
| Input | Type | Default | Description |
|
|
44
|
+
|-------|------|---------|-------------|
|
|
45
|
+
| `user` | `GeoLayoutUserInfo` | `GEO_LAYOUT_DEFAULT_USER` | — |
|
|
46
|
+
| `notifications` | `GeoLayoutNotificationItem[]` | `GEO_LAYOUT_DEFAULT_NOTIFICATIONS` | — |
|
|
47
|
+
| `subsystems` | `GeoLayoutSubsystemItem[]` | `GEO_LAYOUT_DEFAULT_SUBSYSTEMS` | — |
|
|
48
|
+
| `userMenuItems` | `GeoLayoutUserMenuItem[]` | `GEO_LAYOUT_DEFAULT_USER_MENU` | — |
|
|
49
|
+
| `compact` | `boolean` | `false` | Ẩn tên/email trên chip (mobile). |
|
|
50
|
+
|
|
51
|
+
## Outputs
|
|
52
|
+
|
|
53
|
+
| Output | Payload | Description |
|
|
54
|
+
|--------|---------|-------------|
|
|
55
|
+
| `notificationClick` | `OutputEmitterRef<GeoLayoutNotificationItem>` | — |
|
|
56
|
+
| `subsystemClick` | `OutputEmitterRef<GeoLayoutSubsystemItem>` | — |
|
|
57
|
+
| `userMenuClick` | `OutputEmitterRef<GeoLayoutUserMenuItem>` | — |
|
|
58
|
+
| `logout` | `OutputEmitterRef<void>` | — |
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
|
|
63
|
+
### Example
|
|
64
|
+
|
|
65
|
+
```html
|
|
66
|
+
<geo-layout-header-actions
|
|
67
|
+
[user]="{ name: 'vnpt', email: 'vnpt@vnpt.vn' }"
|
|
68
|
+
(logout)="onLogout()"
|
|
69
|
+
></geo-layout-header-actions>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Package path
|
|
73
|
+
`node_modules/@geoit/ui/ai/components/geo-layout-header-actions.md`
|
|
74
|
+
|
|
75
|
+
## Source
|
|
76
|
+
`projects/geo-ui/src/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.ts`
|
|
77
|
+
|
|
78
|
+
## Rules for AI / consumers
|
|
79
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
80
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
81
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
82
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# geo-layout-header
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoLayoutHeaderComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Soft top bar: toggle + breadcrumb + user/notification actions.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoLayoutHeaderComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoLayoutHeaderComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-layout-header`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`layout`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Standalone top bar, or inside geo-layout.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Full app chrome — use geo-layout.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Binding
|
|
36
|
+
|
|
37
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
38
|
+
|
|
39
|
+
## Inputs
|
|
40
|
+
|
|
41
|
+
Every supported Input (do not invent others):
|
|
42
|
+
|
|
43
|
+
| Input | Type | Default | Description |
|
|
44
|
+
|-------|------|---------|-------------|
|
|
45
|
+
| `breadcrumbs` | `GeoBreadcrumbItem[]` | `[]` | — |
|
|
46
|
+
| `fallbackBreadcrumb` | `string` | `'Hệ thống thông tin đất đai - VNPT iLIS'` | — |
|
|
47
|
+
| `expanded` | `boolean` | `true` | — |
|
|
48
|
+
| `isMobile` | `boolean` | `false` | — |
|
|
49
|
+
| `mobileMenuOpen` | `boolean` | `false` | — |
|
|
50
|
+
| `showDefaultActions` | `boolean` | `true` | — |
|
|
51
|
+
| `user` | `GeoLayoutUserInfo` | `GEO_LAYOUT_DEFAULT_USER` | — |
|
|
52
|
+
| `notifications` | `GeoLayoutNotificationItem[]` | `GEO_LAYOUT_DEFAULT_NOTIFICATIONS` | — |
|
|
53
|
+
| `subsystems` | `GeoLayoutSubsystemItem[]` | `GEO_LAYOUT_DEFAULT_SUBSYSTEMS` | — |
|
|
54
|
+
| `userMenuItems` | `GeoLayoutUserMenuItem[]` | `GEO_LAYOUT_DEFAULT_USER_MENU` | — |
|
|
55
|
+
|
|
56
|
+
## Outputs
|
|
57
|
+
|
|
58
|
+
| Output | Payload | Description |
|
|
59
|
+
|--------|---------|-------------|
|
|
60
|
+
| `sidebarToggle` | `OutputEmitterRef<void>` | — |
|
|
61
|
+
| `notificationClick` | `OutputEmitterRef<GeoLayoutNotificationItem>` | — |
|
|
62
|
+
| `subsystemClick` | `OutputEmitterRef<GeoLayoutSubsystemItem>` | — |
|
|
63
|
+
| `userMenuClick` | `OutputEmitterRef<GeoLayoutUserMenuItem>` | — |
|
|
64
|
+
| `logout` | `OutputEmitterRef<void>` | — |
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## Examples
|
|
68
|
+
|
|
69
|
+
### Example
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<geo-layout-header
|
|
73
|
+
[breadcrumbs]="crumbs"
|
|
74
|
+
[user]="{ name: 'vnpt', email: 'vnpt@vnpt.vn' }"
|
|
75
|
+
(sidebarToggle)="toggle()"
|
|
76
|
+
></geo-layout-header>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Package path
|
|
80
|
+
`node_modules/@geoit/ui/ai/components/geo-layout-header.md`
|
|
81
|
+
|
|
82
|
+
## Source
|
|
83
|
+
`projects/geo-ui/src/lib/figma/geo-layout/header/geo-layout-header.component.ts`
|
|
84
|
+
|
|
85
|
+
## Rules for AI / consumers
|
|
86
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
87
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
88
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
89
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# geo-layout-sidebar
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoLayoutSidebarComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
White sidebar: brand + recursive menu (collapse / mobile drawer).
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoLayoutSidebarComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoLayoutSidebarComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-layout-sidebar`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`layout`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Standalone nav rail, or inside geo-layout.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Full app chrome — use geo-layout.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Binding
|
|
36
|
+
|
|
37
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
38
|
+
|
|
39
|
+
## Inputs
|
|
40
|
+
|
|
41
|
+
Every supported Input (do not invent others):
|
|
42
|
+
|
|
43
|
+
| Input | Type | Default | Description |
|
|
44
|
+
|-------|------|---------|-------------|
|
|
45
|
+
| `menuItems` | `GeoLayoutMenuItem[]` | `[]` | — |
|
|
46
|
+
| `brandTitle` | `string` | `'iLIS'` | — |
|
|
47
|
+
| `logoSrc` | `string` | `''` | — |
|
|
48
|
+
| `logoAlt` | `string` | `'Logo'` | — |
|
|
49
|
+
| `sidebarBackgroundSrc` | `string` | `''` | — |
|
|
50
|
+
| `selectedKey` | `string \| null` | `null` | Two-way `model()` (supports banana binding). |
|
|
51
|
+
| `collapsed` | `boolean` | `false` | — |
|
|
52
|
+
| `isMobile` | `boolean` | `false` | — |
|
|
53
|
+
| `mobileOpen` | `boolean` | `false` | — |
|
|
54
|
+
| `width` | `GeoLayoutSiderWidth` | `280` | — |
|
|
55
|
+
| `collapsedWidth` | `GeoLayoutSiderWidth` | `80` | — |
|
|
56
|
+
|
|
57
|
+
## Outputs
|
|
58
|
+
|
|
59
|
+
| Output | Payload | Description |
|
|
60
|
+
|--------|---------|-------------|
|
|
61
|
+
| `menuSelect` | `OutputEmitterRef<GeoLayoutMenuItem>` | — |
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## Examples
|
|
65
|
+
|
|
66
|
+
### Example
|
|
67
|
+
|
|
68
|
+
```html
|
|
69
|
+
<geo-layout-sidebar
|
|
70
|
+
[menuItems]="menu"
|
|
71
|
+
[(selectedKey)]="active"
|
|
72
|
+
[collapsed]="false"
|
|
73
|
+
></geo-layout-sidebar>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Package path
|
|
77
|
+
`node_modules/@geoit/ui/ai/components/geo-layout-sidebar.md`
|
|
78
|
+
|
|
79
|
+
## Source
|
|
80
|
+
`projects/geo-ui/src/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.ts`
|
|
81
|
+
|
|
82
|
+
## Rules for AI / consumers
|
|
83
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
84
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
85
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
86
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# geo-layout
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoLayoutComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
App shell composing sidebar + header + content + footer.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoLayoutComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoLayoutComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-layout`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`layout`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Host application chrome mirroring layout/feature MainLayout.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
In-page wizards — use geo-step-form-layout; dialogs — use geo-form-modal.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Binding
|
|
36
|
+
|
|
37
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
38
|
+
|
|
39
|
+
## Inputs
|
|
40
|
+
|
|
41
|
+
Every supported Input (do not invent others):
|
|
42
|
+
|
|
43
|
+
| Input | Type | Default | Description |
|
|
44
|
+
|-------|------|---------|-------------|
|
|
45
|
+
| `menuItems` | `GeoLayoutMenuItem[]` | `[]` | — |
|
|
46
|
+
| `brandTitle` | `string` | `'iLIS'` | — |
|
|
47
|
+
| `logoSrc` | `string` | `''` | — |
|
|
48
|
+
| `logoAlt` | `string` | `'Logo'` | — |
|
|
49
|
+
| `sidebarBackgroundSrc` | `string` | `''` | — |
|
|
50
|
+
| `breadcrumbs` | `GeoBreadcrumbItem[]` | `[]` | — |
|
|
51
|
+
| `fallbackBreadcrumb` | `string` | `'Hệ thống thông tin đất đai - VNPT iLIS'` | — |
|
|
52
|
+
| `expanded` | `boolean` | `true` | Two-way `model()` (supports banana binding). |
|
|
53
|
+
| `isMobile` | `boolean` | `false` | — |
|
|
54
|
+
| `mobileMenuOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
55
|
+
| `selectedKey` | `string \| null` | `null` | Two-way `model()` (supports banana binding). |
|
|
56
|
+
| `siderWidth` | `number \| string` | `280` | — |
|
|
57
|
+
| `siderCollapsedWidth` | `number \| string` | `80` | — |
|
|
58
|
+
| `showDefaultActions` | `boolean` | `true` | — |
|
|
59
|
+
| `showFooter` | `boolean` | `true` | — |
|
|
60
|
+
| `footerText` | `string` | `'© VNPT \| Hệ thống thông tin đất đai iLIS'` | — |
|
|
61
|
+
| `user` | `GeoLayoutUserInfo` | `GEO_LAYOUT_DEFAULT_USER` | — |
|
|
62
|
+
| `notifications` | `GeoLayoutNotificationItem[]` | `GEO_LAYOUT_DEFAULT_NOTIFICATIONS` | — |
|
|
63
|
+
| `subsystems` | `GeoLayoutSubsystemItem[]` | `GEO_LAYOUT_DEFAULT_SUBSYSTEMS` | — |
|
|
64
|
+
| `userMenuItems` | `GeoLayoutUserMenuItem[]` | `GEO_LAYOUT_DEFAULT_USER_MENU` | — |
|
|
65
|
+
|
|
66
|
+
## Outputs
|
|
67
|
+
|
|
68
|
+
| Output | Payload | Description |
|
|
69
|
+
|--------|---------|-------------|
|
|
70
|
+
| `menuSelect` | `OutputEmitterRef<GeoLayoutMenuItem>` | — |
|
|
71
|
+
| `sidebarToggle` | `OutputEmitterRef<void>` | — |
|
|
72
|
+
| `notificationClick` | `OutputEmitterRef<GeoLayoutNotificationItem>` | — |
|
|
73
|
+
| `subsystemClick` | `OutputEmitterRef<GeoLayoutSubsystemItem>` | — |
|
|
74
|
+
| `userMenuClick` | `OutputEmitterRef<GeoLayoutUserMenuItem>` | — |
|
|
75
|
+
| `logout` | `OutputEmitterRef<void>` | — |
|
|
76
|
+
|
|
77
|
+
## Related types
|
|
78
|
+
|
|
79
|
+
From `figma/geo-layout/geo-layout.types.ts`:
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
export interface GeoLayoutMenuItem {
|
|
83
|
+
/** Stable id used for selection / open state. */
|
|
84
|
+
key: string;
|
|
85
|
+
/** Display label. */
|
|
86
|
+
title: string;
|
|
87
|
+
/** Optional `geo-icon` / Ant Design icon type. */
|
|
88
|
+
icon?: string;
|
|
89
|
+
/** Optional route / href hint for consumers (Storybook clicks use `menuSelect`). */
|
|
90
|
+
link?: string;
|
|
91
|
+
children?: GeoLayoutMenuItem[];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface GeoLayoutUserInfo {
|
|
95
|
+
name: string;
|
|
96
|
+
email?: string;
|
|
97
|
+
/** Optional avatar URL; initials used when empty. */
|
|
98
|
+
avatarUrl?: string;
|
|
99
|
+
role?: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface GeoLayoutNotificationItem {
|
|
103
|
+
id: string;
|
|
104
|
+
message: string;
|
|
105
|
+
time: string;
|
|
106
|
+
read?: boolean;
|
|
107
|
+
icon?: string;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export interface GeoLayoutSubsystemItem {
|
|
111
|
+
id: string;
|
|
112
|
+
label: string;
|
|
113
|
+
initials: string;
|
|
114
|
+
url?: string;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export interface GeoLayoutUserMenuItem {
|
|
118
|
+
key: string;
|
|
119
|
+
label: string;
|
|
120
|
+
icon: string;
|
|
121
|
+
danger?: boolean;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export type GeoLayoutSiderWidth = number | string;
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Examples
|
|
128
|
+
|
|
129
|
+
### Example
|
|
130
|
+
|
|
131
|
+
```html
|
|
132
|
+
<geo-layout
|
|
133
|
+
[menuItems]="menu"
|
|
134
|
+
[(expanded)]="expanded"
|
|
135
|
+
[breadcrumbs]="crumbs"
|
|
136
|
+
[(selectedKey)]="active"
|
|
137
|
+
[user]="{ name: 'vnpt', email: 'vnpt@vnpt.vn' }"
|
|
138
|
+
(menuSelect)="onNav($event)"
|
|
139
|
+
(logout)="onLogout()"
|
|
140
|
+
>
|
|
141
|
+
<router-outlet />
|
|
142
|
+
</geo-layout>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Package path
|
|
146
|
+
`node_modules/@geoit/ui/ai/components/geo-layout.md`
|
|
147
|
+
|
|
148
|
+
## Source
|
|
149
|
+
`projects/geo-ui/src/lib/figma/geo-layout/geo-layout.component.ts`
|
|
150
|
+
|
|
151
|
+
## Rules for AI / consumers
|
|
152
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
153
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
154
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
155
|
+
- Copy examples and adapt labels/bindings only.
|