@geoit/ui 0.0.2 → 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 +140 -17
- package/ai/AGENTS.md +43 -32
- package/ai/README.md +36 -2
- package/ai/catalog.json +5585 -437
- package/ai/components/geo-alert.md +75 -21
- package/ai/components/geo-back-button.md +64 -18
- package/ai/components/geo-breadcrumb.md +71 -12
- package/ai/components/geo-button.md +90 -27
- package/ai/components/geo-chart.md +103 -0
- package/ai/components/geo-checkbox.md +67 -20
- package/ai/components/geo-column-picker.md +91 -18
- package/ai/components/geo-confirm-modal.md +92 -27
- package/ai/components/geo-dashboard.md +91 -0
- package/ai/components/geo-date-picker.md +105 -29
- package/ai/components/geo-date-range-picker.md +101 -28
- 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 +99 -26
- package/ai/components/geo-forgot-password.md +78 -0
- package/ai/components/geo-form-modal.md +111 -44
- package/ai/components/geo-icon.md +70 -16
- package/ai/components/geo-input.md +94 -29
- 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 +62 -16
- package/ai/components/geo-pagination.md +76 -24
- package/ai/components/geo-radio.md +110 -27
- package/ai/components/geo-row-actions.md +87 -19
- package/ai/components/geo-select.md +108 -28
- package/ai/components/geo-slider.md +70 -21
- package/ai/components/geo-stat-card.md +98 -0
- package/ai/components/geo-status-tag.md +67 -15
- package/ai/components/geo-step-form-layout.md +121 -38
- package/ai/components/geo-stepper.md +81 -19
- package/ai/components/geo-table-filter.md +90 -29
- package/ai/components/geo-table-pagination.md +70 -23
- package/ai/components/geo-table-toolbar.md +84 -29
- package/ai/components/geo-table.md +191 -59
- package/ai/components/geo-tabs.md +99 -27
- package/ai/components/geo-textarea.md +84 -23
- package/ai/components/geo-toast.md +138 -27
- package/ai/components/geo-tree.md +94 -22
- package/ai/components/geo-typography.md +70 -19
- package/ai/components/geo-upload.md +109 -39
- package/ai/mockup.html +1194 -0
- package/ai/recipes.md +132 -47
- 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,16 +1,24 @@
|
|
|
1
1
|
# geo-form-modal
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Complete usage reference for **GeoFormModalComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
4
6
|
|
|
5
7
|
## Summary
|
|
6
8
|
Form modal: fixed header/footer, scrollable body via ng-content.
|
|
7
9
|
|
|
8
10
|
## Import
|
|
11
|
+
|
|
9
12
|
```ts
|
|
10
13
|
import { GeoFormModalComponent } from '@geoit/ui';
|
|
14
|
+
import { FormsModule } from '@angular/forms'; // when using [(ngModel)]
|
|
11
15
|
```
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
Add to the consuming standalone component:
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
imports: [GeoFormModalComponent, FormsModule]
|
|
21
|
+
```
|
|
14
22
|
|
|
15
23
|
## Selector
|
|
16
24
|
`geo-form-modal`
|
|
@@ -24,45 +32,60 @@ Create/edit dialogs; compose geo-stepper inside body for multi-step.
|
|
|
24
32
|
## Do not use when
|
|
25
33
|
Full-page wizards — use geo-step-form-layout.
|
|
26
34
|
|
|
35
|
+
## How to use
|
|
36
|
+
|
|
37
|
+
Modal form: header/footer cố định, body scroll qua ng-content. [open] + (openChange); (ok)/(cancel). Ghép geo-stepper trong body cho multi-step dialog.
|
|
38
|
+
|
|
39
|
+
## Binding
|
|
40
|
+
|
|
41
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
42
|
+
|
|
27
43
|
## Inputs
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
|
32
|
-
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
44
|
+
|
|
45
|
+
Every supported Input (do not invent others):
|
|
46
|
+
|
|
47
|
+
| Input | Type | Default | Description |
|
|
48
|
+
|-------|------|---------|-------------|
|
|
49
|
+
| `open` | `boolean` | `false` | Tương đương `open` (antd) / `nzVisible` (ng-zorro). — Two-way `model()` (supports banana binding). |
|
|
50
|
+
| `title` | `string` | `''` | — |
|
|
51
|
+
| `titleUppercase` | `boolean` | `true` | Title chữ in hoa. Default `true` theo design. |
|
|
52
|
+
| `okText` | `string` | `'Lưu'` | — |
|
|
53
|
+
| `cancelText` | `string` | `'Hủy'` | — |
|
|
54
|
+
| `cancelIcon` | `string \| undefined` | `undefined` | Icon nút cancel (vd. `left` cho Quay lại). |
|
|
55
|
+
| `cancelIconPlacement` | `'start' \| 'end'` | `'start'` | — |
|
|
56
|
+
| `okIcon` | `string \| undefined` | `undefined` | Icon nút OK (vd. `right` cho Tiếp theo). |
|
|
57
|
+
| `okIconPlacement` | `'start' \| 'end'` | `'end'` | — |
|
|
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
|
+
| `confirmLoading` | `boolean` | `false` | Loading trên nút OK — giống antd `confirmLoading` / nz `nzOkLoading`. |
|
|
60
|
+
| `okDisabled` | `boolean` | `false` | Disable nút OK — giống antd `okButtonProps.disabled` / nz `nzOkDisabled`. |
|
|
61
|
+
| `readonly` | `boolean` | `false` | Ẩn nút OK (xem chi tiết). |
|
|
62
|
+
| `width` | `number \| string` | `720` | — |
|
|
63
|
+
| `closable` | `boolean` | `true` | — |
|
|
64
|
+
| `mask` | `boolean` | `true` | — |
|
|
65
|
+
| `maskClosable` | `boolean` | `false` | — |
|
|
66
|
+
| `keyboard` | `boolean` | `true` | — |
|
|
67
|
+
| `centered` | `boolean` | `true` | — |
|
|
68
|
+
| `zIndex` | `number` | `1000` | — |
|
|
69
|
+
| `className` | `string` | `''` | — |
|
|
70
|
+
| `wrapClassName` | `string` | `''` | — |
|
|
71
|
+
| `bodyScroll` | `boolean` | `true` | Body cuộn, header/footer cố định. |
|
|
72
|
+
| `bodyMaxHeight` | `string \| number` | `'60vh'` | Max-height của vùng body khi `bodyScroll` (vd `'60vh'`, `400`). |
|
|
54
73
|
|
|
55
74
|
## Outputs
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
| `ok` |
|
|
60
|
-
| `secondaryOk` |
|
|
61
|
-
| `cancel` |
|
|
62
|
-
| `afterOpen` |
|
|
63
|
-
| `afterClose` |
|
|
64
|
-
|
|
65
|
-
|
|
75
|
+
|
|
76
|
+
| Output | Payload | Description |
|
|
77
|
+
|--------|---------|-------------|
|
|
78
|
+
| `ok` | `OutputEmitterRef<void>` | — |
|
|
79
|
+
| `secondaryOk` | `OutputEmitterRef<void>` | — |
|
|
80
|
+
| `cancel` | `OutputEmitterRef<void>` | — |
|
|
81
|
+
| `afterOpen` | `OutputEmitterRef<void>` | — |
|
|
82
|
+
| `afterClose` | `OutputEmitterRef<void>` | — |
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
## Examples
|
|
86
|
+
|
|
87
|
+
### Basic
|
|
88
|
+
|
|
66
89
|
```html
|
|
67
90
|
<geo-form-modal
|
|
68
91
|
[open]="open"
|
|
@@ -76,13 +99,57 @@ Full-page wizards — use geo-step-form-layout.
|
|
|
76
99
|
</geo-form-modal>
|
|
77
100
|
```
|
|
78
101
|
|
|
102
|
+
### Full options
|
|
103
|
+
|
|
104
|
+
```html
|
|
105
|
+
<geo-form-modal
|
|
106
|
+
[open]="open"
|
|
107
|
+
title="Lập phiếu đăng ký"
|
|
108
|
+
[titleUppercase]="true"
|
|
109
|
+
cancelText="Hủy bỏ"
|
|
110
|
+
okText="Lưu"
|
|
111
|
+
okIcon="right"
|
|
112
|
+
okIconPlacement="end"
|
|
113
|
+
[confirmLoading]="saving"
|
|
114
|
+
[okDisabled]="!valid"
|
|
115
|
+
[width]="720"
|
|
116
|
+
[closable]="true"
|
|
117
|
+
[mask]="true"
|
|
118
|
+
[maskClosable]="false"
|
|
119
|
+
[centered]="true"
|
|
120
|
+
[bodyScroll]="true"
|
|
121
|
+
bodyMaxHeight="60vh"
|
|
122
|
+
(openChange)="open = $event"
|
|
123
|
+
(ok)="onSave()"
|
|
124
|
+
(cancel)="open = false"
|
|
125
|
+
>
|
|
126
|
+
<div style="display:grid;grid-template-columns:1fr 1fr;gap:16px;">
|
|
127
|
+
<geo-input label="Mã" [required]="true" [block]="true" [(ngModel)]="code"></geo-input>
|
|
128
|
+
<geo-input label="Tên" [required]="true" [block]="true" [(ngModel)]="name"></geo-input>
|
|
129
|
+
</div>
|
|
130
|
+
</geo-form-modal>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Tips
|
|
134
|
+
|
|
135
|
+
- Wizard full-page → geo-step-form-layout.
|
|
136
|
+
- okIcon/cancelIcon + placement cho nút Tiếp theo / Quay lại.
|
|
137
|
+
- bodyMaxHeight mặc định 60vh; readonly ẩn nút OK.
|
|
138
|
+
## Related components
|
|
139
|
+
|
|
140
|
+
- [`geo-stepper`](./geo-stepper.md)
|
|
141
|
+
- [`geo-input`](./geo-input.md)
|
|
142
|
+
- [`geo-select`](./geo-select.md)
|
|
143
|
+
- [`geo-confirm-modal`](./geo-confirm-modal.md)
|
|
144
|
+
- [`geo-step-form-layout`](./geo-step-form-layout.md)
|
|
145
|
+
## Package path
|
|
146
|
+
`node_modules/@geoit/ui/ai/components/geo-form-modal.md`
|
|
147
|
+
|
|
79
148
|
## Source
|
|
80
149
|
`projects/geo-ui/src/lib/figma/geo-form-modal/geo-form-modal.component.ts`
|
|
81
150
|
|
|
82
|
-
##
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
## Rules for AI
|
|
86
|
-
- Prefer this component over raw ng-zorro / HTML equivalents for the same UI role.
|
|
151
|
+
## Rules for AI / consumers
|
|
152
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
87
153
|
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
88
|
-
- Match props to
|
|
154
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
155
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
# geo-icon
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Complete usage reference for **GeoIconComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
4
6
|
|
|
5
7
|
## Summary
|
|
6
8
|
Ant Design icon wrapper with GEO size/color tokens.
|
|
7
9
|
|
|
8
10
|
## Import
|
|
11
|
+
|
|
9
12
|
```ts
|
|
10
13
|
import { GeoIconComponent } from '@geoit/ui';
|
|
11
14
|
```
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoIconComponent]
|
|
20
|
+
```
|
|
14
21
|
|
|
15
22
|
## Selector
|
|
16
23
|
`geo-icon`
|
|
@@ -24,30 +31,77 @@ Standalone icons; buttons usually use geo-button [icon].
|
|
|
24
31
|
## Do not use when
|
|
25
32
|
Do not hardcode icon hex colors — use color token names.
|
|
26
33
|
|
|
34
|
+
## How to use
|
|
35
|
+
|
|
36
|
+
Wrapper icon Ant Design. Bắt buộc [type]; size xs|sm|md|lg|xl hoặc px; color dùng token (vd. primary / var(--geo-color-*)).
|
|
37
|
+
|
|
38
|
+
## Binding
|
|
39
|
+
|
|
40
|
+
Standalone component — drive via Inputs (`input()` / `model()`) and Outputs (`output()`). Banana bindings work for any `model()` fields (e.g. `[(open)]`, `[(pageIndex)]`).
|
|
41
|
+
|
|
27
42
|
## Inputs
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
|
32
|
-
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
43
|
+
|
|
44
|
+
Every supported Input (do not invent others):
|
|
45
|
+
|
|
46
|
+
| Input | Type | Default | Description |
|
|
47
|
+
|-------|------|---------|-------------|
|
|
48
|
+
| `type` | `string` | — | Tên icon Ant Design (vd. `close`, `search`, `appstore`). |
|
|
49
|
+
| `theme` | `'outline' \| 'fill' \| 'twotone'` | `'outline'` | — |
|
|
50
|
+
| `spin` | `boolean` | `false` | — |
|
|
51
|
+
| `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| number \| string` | `'md'` | xs \| sm \| md \| lg \| xl \| number(px) \| CSS size string |
|
|
52
|
+
| `color` | `string \| undefined` | `undefined` | CSS color — ưu tiên design token, vd. `var(--geo-color-primary-default)` |
|
|
35
53
|
|
|
36
54
|
## Outputs
|
|
55
|
+
|
|
37
56
|
_None_
|
|
38
57
|
|
|
39
|
-
##
|
|
58
|
+
## Related types
|
|
59
|
+
|
|
60
|
+
From `figma/geo-icon/geo-icon.types.ts`:
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
export type GeoIconTheme = 'outline' | 'fill' | 'twotone';
|
|
64
|
+
|
|
65
|
+
export type GeoIconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number | string;
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Examples
|
|
69
|
+
|
|
70
|
+
### Basic
|
|
71
|
+
|
|
40
72
|
```html
|
|
41
73
|
<geo-icon type="search" size="md" color="primary"></geo-icon>
|
|
42
74
|
```
|
|
43
75
|
|
|
76
|
+
### Full options
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<geo-icon
|
|
80
|
+
type="loading"
|
|
81
|
+
theme="outline"
|
|
82
|
+
size="lg"
|
|
83
|
+
color="var(--geo-color-primary-default)"
|
|
84
|
+
[spin]="true"
|
|
85
|
+
></geo-icon>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Tips
|
|
89
|
+
|
|
90
|
+
- Trong nút ưu tiên geo-button [icon].
|
|
91
|
+
- Không hardcode hex — dùng color token.
|
|
92
|
+
- theme outline|fill|twotone; spin cho loading.
|
|
93
|
+
## Related components
|
|
94
|
+
|
|
95
|
+
- [`geo-button`](./geo-button.md)
|
|
96
|
+
- [`geo-status-tag`](./geo-status-tag.md)
|
|
97
|
+
## Package path
|
|
98
|
+
`node_modules/@geoit/ui/ai/components/geo-icon.md`
|
|
99
|
+
|
|
44
100
|
## Source
|
|
45
101
|
`projects/geo-ui/src/lib/figma/geo-icon/geo-icon.component.ts`
|
|
46
102
|
|
|
47
|
-
##
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
## Rules for AI
|
|
51
|
-
- Prefer this component over raw ng-zorro / HTML equivalents for the same UI role.
|
|
103
|
+
## Rules for AI / consumers
|
|
104
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
52
105
|
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
53
|
-
- Match props to
|
|
106
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
107
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
# geo-input
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Complete usage reference for **GeoInputComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
4
6
|
|
|
5
7
|
## Summary
|
|
6
8
|
Text input with label, validation, icons; CVA/ngModel.
|
|
7
9
|
|
|
8
10
|
## Import
|
|
11
|
+
|
|
9
12
|
```ts
|
|
10
13
|
import { GeoInputComponent } from '@geoit/ui';
|
|
14
|
+
import { FormsModule } from '@angular/forms'; // when using [(ngModel)]
|
|
11
15
|
```
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
Add to the consuming standalone component:
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
imports: [GeoInputComponent, FormsModule]
|
|
21
|
+
```
|
|
14
22
|
|
|
15
23
|
## Selector
|
|
16
24
|
`geo-input`
|
|
@@ -24,42 +32,99 @@ Default text fields in forms.
|
|
|
24
32
|
## Do not use when
|
|
25
33
|
Long text — use geo-textarea; select options — use geo-select.
|
|
26
34
|
|
|
35
|
+
## How to use
|
|
36
|
+
|
|
37
|
+
Ô text chuẩn form (CVA). label + [(ngModel)]; type text|number|password|email; prefixIcon/suffixIcon; [block] full width.
|
|
38
|
+
|
|
39
|
+
## Binding
|
|
40
|
+
|
|
41
|
+
Supports **ControlValueAccessor**.
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<geo-input [(ngModel)]="value"></geo-input>
|
|
45
|
+
<!-- or -->
|
|
46
|
+
<geo-input formControlName="field"></geo-input>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Also import `FormsModule` (template-driven) or `ReactiveFormsModule`.
|
|
50
|
+
|
|
51
|
+
Library API uses Angular 18 `input()` / `output()` signals under the hood.
|
|
52
|
+
|
|
27
53
|
## Inputs
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
|
32
|
-
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
54
|
+
|
|
55
|
+
Every supported Input (do not invent others):
|
|
56
|
+
|
|
57
|
+
| Input | Type | Default | Description |
|
|
58
|
+
|-------|------|---------|-------------|
|
|
59
|
+
| `label` | `string` | `''` | — |
|
|
60
|
+
| `placeholder` | `string` | `''` | — |
|
|
61
|
+
| `type` | `'text' \| 'number' \| 'password' \| 'email'` | `'text'` | — |
|
|
62
|
+
| `disabled` | `boolean` | `false` | — |
|
|
63
|
+
| `readonly` | `boolean` | `false` | — |
|
|
64
|
+
| `required` | `boolean` | `false` | — |
|
|
65
|
+
| `error` | `boolean` | `false` | — |
|
|
66
|
+
| `errorMessage` | `string` | `''` | — |
|
|
67
|
+
| `maxlength` | `number \| undefined` | `undefined` | — |
|
|
68
|
+
| `prefixIcon` | `string \| undefined` | `undefined` | — |
|
|
69
|
+
| `suffixIcon` | `string \| undefined` | `undefined` | — |
|
|
70
|
+
| `allowClear` | `boolean` | `false` | — |
|
|
71
|
+
| `block` | `boolean` | `false` | — |
|
|
72
|
+
| `width` | `number \| string \| undefined` | `undefined` | — |
|
|
44
73
|
|
|
45
74
|
## Outputs
|
|
46
|
-
| Output | Notes |
|
|
47
|
-
|--------|-------|
|
|
48
|
-
| `valueChange` | EventEmitter |
|
|
49
|
-
| `enterPressed` | EventEmitter |
|
|
50
75
|
|
|
51
|
-
|
|
76
|
+
| Output | Payload | Description |
|
|
77
|
+
|--------|---------|-------------|
|
|
78
|
+
| `valueChange` | `OutputEmitterRef<string>` | — |
|
|
79
|
+
| `enterPressed` | `OutputEmitterRef<void>` | — |
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Examples
|
|
83
|
+
|
|
84
|
+
### Basic
|
|
85
|
+
|
|
52
86
|
```html
|
|
53
87
|
<geo-input label="Họ tên" [required]="true" [block]="true" [(ngModel)]="name"></geo-input>
|
|
54
88
|
```
|
|
55
89
|
|
|
90
|
+
### Full options
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<geo-input
|
|
94
|
+
label="Mã hồ sơ"
|
|
95
|
+
placeholder="Nhập mã hồ sơ"
|
|
96
|
+
type="text"
|
|
97
|
+
prefixIcon="search"
|
|
98
|
+
[allowClear]="true"
|
|
99
|
+
[required]="true"
|
|
100
|
+
[block]="true"
|
|
101
|
+
[maxlength]="50"
|
|
102
|
+
[error]="codeError"
|
|
103
|
+
errorMessage="Mã không được để trống"
|
|
104
|
+
[(ngModel)]="code"
|
|
105
|
+
(enterPressed)="onSearch()"
|
|
106
|
+
(valueChange)="onCode($event)"
|
|
107
|
+
></geo-input>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Tips
|
|
111
|
+
|
|
112
|
+
- Văn bản dài → geo-textarea; chọn danh sách → geo-select.
|
|
113
|
+
- error + errorMessage khi validate fail.
|
|
114
|
+
- (enterPressed) cho tìm kiếm nhanh.
|
|
115
|
+
## Related components
|
|
116
|
+
|
|
117
|
+
- [`geo-textarea`](./geo-textarea.md)
|
|
118
|
+
- [`geo-select`](./geo-select.md)
|
|
119
|
+
- [`geo-form-modal`](./geo-form-modal.md)
|
|
120
|
+
## Package path
|
|
121
|
+
`node_modules/@geoit/ui/ai/components/geo-input.md`
|
|
122
|
+
|
|
56
123
|
## Source
|
|
57
124
|
`projects/geo-ui/src/lib/figma/geo-input/geo-input.component.ts`
|
|
58
125
|
|
|
59
|
-
##
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
## Rules for AI
|
|
63
|
-
- Prefer this component over raw ng-zorro / HTML equivalents for the same UI role.
|
|
126
|
+
## Rules for AI / consumers
|
|
127
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
64
128
|
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
65
|
-
- Match props to
|
|
129
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
130
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -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.
|