@geoit/ui 0.0.4 → 0.0.6
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 +94 -66
- package/ai/AGENTS.md +106 -16
- package/ai/README.md +35 -1
- package/ai/catalog.json +2855 -275
- 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 +115 -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 +102 -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 +81 -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 +75 -0
- package/ai/components/geo-login.md +106 -0
- package/ai/components/geo-map-admin-filter.md +85 -0
- package/ai/components/geo-map-basemap-switcher.md +79 -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 +84 -0
- package/ai/components/geo-map-search.md +89 -0
- package/ai/components/geo-map-shell.md +146 -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 +81 -0
- package/ai/components/geo-map-zoom.md +74 -0
- package/ai/components/geo-map.md +212 -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 +6 -8
- 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 +184 -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,75 @@
|
|
|
1
|
+
# geo-map-snapshot
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapSnapshotComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Capture current map canvas to image / download.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapSnapshotComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapSnapshotComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-snapshot`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Export screenshot control on map chrome.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Server-side tile export pipelines.
|
|
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
|
+
| `controller` | `GeoMapController \| null` | `null` | — |
|
|
46
|
+
| `label` | `string` | `'Chụp ảnh bản đồ'` | — |
|
|
47
|
+
| `filename` | `string` | `'ban-do.png'` | — |
|
|
48
|
+
|
|
49
|
+
## Outputs
|
|
50
|
+
|
|
51
|
+
| Output | Payload | Description |
|
|
52
|
+
|--------|---------|-------------|
|
|
53
|
+
| `captured` | `OutputEmitterRef<void>` | — |
|
|
54
|
+
| `captureError` | `OutputEmitterRef<unknown>` | — |
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
## Examples
|
|
58
|
+
|
|
59
|
+
### Example
|
|
60
|
+
|
|
61
|
+
```html
|
|
62
|
+
<geo-map-snapshot [controller]="ctrl" (captured)="onShot($event)"></geo-map-snapshot>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Package path
|
|
66
|
+
`node_modules/@geoit/ui/ai/components/geo-map-snapshot.md`
|
|
67
|
+
|
|
68
|
+
## Source
|
|
69
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.ts`
|
|
70
|
+
|
|
71
|
+
## Rules for AI / consumers
|
|
72
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
73
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
74
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
75
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# geo-map-swipe
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapSwipeComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Swipe compare control between two map layers.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapSwipeComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapSwipeComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-swipe`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Before/after planning vs current-use comparison.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Simple opacity blend — use geo-map-opacity.
|
|
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
|
+
| `controller` | `GeoMapController \| null` | `null` | — |
|
|
46
|
+
| `active` | `boolean` | `false` | When true, swipe mode is on. — Two-way `model()` (supports banana binding). |
|
|
47
|
+
| `position` | `number` | `50` | 0–100, left portion shows clipped overlay. — Two-way `model()` (supports banana binding). |
|
|
48
|
+
| `layerId` | `string \| null` | `null` | Optional explicit overlay layer id; defaults to top visible non-basemap. |
|
|
49
|
+
|
|
50
|
+
## Outputs
|
|
51
|
+
|
|
52
|
+
_None_
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
|
|
57
|
+
### Example
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<geo-map-swipe [controller]="ctrl" [(active)]="swipeOn" layerId="demo-qhsdd-2020"></geo-map-swipe>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Package path
|
|
64
|
+
`node_modules/@geoit/ui/ai/components/geo-map-swipe.md`
|
|
65
|
+
|
|
66
|
+
## Source
|
|
67
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.ts`
|
|
68
|
+
|
|
69
|
+
## Rules for AI / consumers
|
|
70
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
71
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
72
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
73
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# geo-map-toolbar
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapToolbarComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Vertical map tool strip (search, pan, measure, layers, …).
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapToolbarComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapToolbarComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-toolbar`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Custom map layouts; usually included inside geo-map-shell.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Full portal — use geo-map-shell.
|
|
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
|
+
| `controller` | `GeoMapController \| null` | `null` | — |
|
|
46
|
+
| `actions` | `GeoMapToolbarAction[]` | `[]` | When empty, uses built-in portal action set. |
|
|
47
|
+
| `compact` | `boolean` | `false` | — |
|
|
48
|
+
| `checkedMap` | `Record<string, boolean>` | — | Two-way checked map keyed by action id (for checkbox-style actions). — Two-way `model()` (supports banana binding). |
|
|
49
|
+
|
|
50
|
+
## Outputs
|
|
51
|
+
|
|
52
|
+
| Output | Payload | Description |
|
|
53
|
+
|--------|---------|-------------|
|
|
54
|
+
| `actionClick` | `OutputEmitterRef<GeoMapToolbarAction>` | — |
|
|
55
|
+
| `actionToggle` | `OutputEmitterRef<{ action: GeoMapToolbarAction; checked: boolean; }>` | — |
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Examples
|
|
59
|
+
|
|
60
|
+
### Example
|
|
61
|
+
|
|
62
|
+
```html
|
|
63
|
+
<geo-map-toolbar
|
|
64
|
+
[controller]="ctrl"
|
|
65
|
+
[actions]="actions"
|
|
66
|
+
[(checkedMap)]="checked"
|
|
67
|
+
(actionClick)="onTool($event)"
|
|
68
|
+
></geo-map-toolbar>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Package path
|
|
72
|
+
`node_modules/@geoit/ui/ai/components/geo-map-toolbar.md`
|
|
73
|
+
|
|
74
|
+
## Source
|
|
75
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.ts`
|
|
76
|
+
|
|
77
|
+
## Rules for AI / consumers
|
|
78
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
79
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
80
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
81
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# geo-map-zoom
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapZoomComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Zoom +/- and optional province / home navigation control.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapZoomComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapZoomComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-zoom`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Custom map chrome; geo-map-shell embeds this.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Relying on OpenLayers built-in zoom alone is fine for bare geo-map.
|
|
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
|
+
| `controller` | `GeoMapController \| null` | `null` | — |
|
|
46
|
+
| `showNav` | `boolean` | `true` | Show prev / next zoom + fullscreen + box zoom (UC-15). |
|
|
47
|
+
| `showFitProvince` | `boolean` | `true` | Show “xem toàn tỉnh” (TCQH.14 GD5) — fit province extent, not fullscreen. |
|
|
48
|
+
| `provinceExtent` | `readonly [number, number, number, number] \| null` | `null` | Province extent in EPSG:4326. Defaults to Lâm Đồng placeholder when omitted. |
|
|
49
|
+
| `fullscreenTarget` | `HTMLElement \| null` | `null` | Element to put in Fullscreen API. Defaults to closest `.geo-map-shell`, then the OL map target. |
|
|
50
|
+
|
|
51
|
+
## Outputs
|
|
52
|
+
|
|
53
|
+
_None_
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
### Example
|
|
59
|
+
|
|
60
|
+
```html
|
|
61
|
+
<geo-map-zoom [controller]="ctrl" [showNav]="true"></geo-map-zoom>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Package path
|
|
65
|
+
`node_modules/@geoit/ui/ai/components/geo-map-zoom.md`
|
|
66
|
+
|
|
67
|
+
## Source
|
|
68
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.ts`
|
|
69
|
+
|
|
70
|
+
## Rules for AI / consumers
|
|
71
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
72
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
73
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
74
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# geo-map
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
OpenLayers map host with basemap, typed layers, and GeoMapController.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Any map viewport (portal quy hoạch, tra cứu thửa). Peers: ol, proj4.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Full portal chrome — prefer geo-map-shell; non-map charts — use geo-chart.
|
|
33
|
+
|
|
34
|
+
## How to use
|
|
35
|
+
|
|
36
|
+
Host OpenLayers thuần. (mapReady) nhận GeoMapController để zoom/fit/addLayer. Layers typed (osm/xyz/wms/wmts/geojson). Projections tùy chỉnh qua [projections] — không invent VN-2000.
|
|
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
|
+
|
|
42
|
+
## Inputs
|
|
43
|
+
|
|
44
|
+
Every supported Input (do not invent others):
|
|
45
|
+
|
|
46
|
+
| Input | Type | Default | Description |
|
|
47
|
+
|-------|------|---------|-------------|
|
|
48
|
+
| `center` | `number[]` | `[...GEO_MAP_DEFAULT_CENTER]` | Map center in view projection (default Web Mercator Đà Lạt area). |
|
|
49
|
+
| `zoom` | — | `GEO_MAP_DEFAULT_ZOOM` | — |
|
|
50
|
+
| `minZoom` | — | `GEO_MAP_DEFAULT_MIN_ZOOM` | — |
|
|
51
|
+
| `maxZoom` | — | `GEO_MAP_DEFAULT_MAX_ZOOM` | — |
|
|
52
|
+
| `viewProjection` | — | `GEO_MAP_DEFAULT_VIEW_PROJECTION` | — |
|
|
53
|
+
| `basemap` | `'osm' \| { type: 'xyz'` | `'osm'` | — |
|
|
54
|
+
| `layers` | `(\| GeoMapOsmLayerConfig \| GeoMapXyzLayerConfig \| GeoMapWmsLayerConfig \| GeoMapWmtsLayerConfig \| G…` | `[]` | — |
|
|
55
|
+
| `height` | — | `GEO_MAP_DEFAULT_HEIGHT` | — |
|
|
56
|
+
| `registerProjections` | `boolean` | `true` | When true, custom projections listed in `projections` are registered before map create. Built-in EPSG:4326 / EPSG:3857 never need registration. VN-2000 definitions must be supplied via `projections` — never invented. |
|
|
57
|
+
| `projections` | `ProjectionConfig[]` | `[]` | Custom CRS definitions (e.g. local VN-2000 from environment). |
|
|
58
|
+
| `showMousePosition` | `boolean` | `false` | — |
|
|
59
|
+
| `mousePositionProjection` | `string` | `'EPSG:4326'` | — |
|
|
60
|
+
| `showZoomControl` | `boolean` | `true` | When false, hide built-in OL zoom control (prefer `geo-map-zoom`). |
|
|
61
|
+
|
|
62
|
+
## Outputs
|
|
63
|
+
|
|
64
|
+
| Output | Payload | Description |
|
|
65
|
+
|--------|---------|-------------|
|
|
66
|
+
| `mapReady` | `OutputEmitterRef<GeoMapController>` | — |
|
|
67
|
+
| `mapClick` | `OutputEmitterRef<GeoMapClickEvent>` | — |
|
|
68
|
+
| `viewChange` | `OutputEmitterRef<GeoMapViewChangeEvent>` | — |
|
|
69
|
+
| `initError` | `OutputEmitterRef<string>` | — |
|
|
70
|
+
|
|
71
|
+
## Related types
|
|
72
|
+
|
|
73
|
+
From `figma/geo-map/geo-map.types.ts`:
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
export interface ProjectionConfig {
|
|
77
|
+
code: string;
|
|
78
|
+
/** Full proj4 definition string. Must be supplied by env/API — never invent VN-2000 params. */
|
|
79
|
+
definition: string;
|
|
80
|
+
extent?: [number, number, number, number];
|
|
81
|
+
units?: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface GeoMapLayerBase {
|
|
85
|
+
id: string;
|
|
86
|
+
title: string;
|
|
87
|
+
visible?: boolean;
|
|
88
|
+
/** 0–1 */
|
|
89
|
+
opacity?: number;
|
|
90
|
+
zIndex?: number;
|
|
91
|
+
minZoom?: number;
|
|
92
|
+
maxZoom?: number;
|
|
93
|
+
/** Treat as basemap (only one active at a time). */
|
|
94
|
+
basemap?: boolean;
|
|
95
|
+
/** Group key for layer panel sections (`base-map`, `qhsdd`, …). */
|
|
96
|
+
group?: string;
|
|
97
|
+
/** Display title for the group accordion (falls back to group key). */
|
|
98
|
+
groupLabel?: string;
|
|
99
|
+
/** Selection UX within the group: radio (`single`) or checkbox (`multi`). */
|
|
100
|
+
groupSelection?: 'single' | 'multi';
|
|
101
|
+
/** Eligible for identify / GetFeatureInfo. */
|
|
102
|
+
queryable?: boolean;
|
|
103
|
+
legendUrl?: string;
|
|
104
|
+
projection?: string;
|
|
105
|
+
metadata?: Record<string, unknown>;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface GeoMapOsmLayerConfig extends GeoMapLayerBase {
|
|
109
|
+
type: 'osm';
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export interface GeoMapXyzLayerConfig extends GeoMapLayerBase {
|
|
113
|
+
type: 'xyz';
|
|
114
|
+
url: string;
|
|
115
|
+
attributions?: string | string[];
|
|
116
|
+
maxZoom?: number;
|
|
117
|
+
crossOrigin?: string | null;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export interface GeoMapWmsLayerConfig extends GeoMapLayerBase {
|
|
121
|
+
type: 'wms';
|
|
122
|
+
url: string;
|
|
123
|
+
params: Record<string, string | number | boolean>;
|
|
124
|
+
serverType?: 'geoserver' | 'mapserver' | 'qgis' | 'carmentaserver';
|
|
125
|
+
crossOrigin?: string | null;
|
|
126
|
+
/** Optional WMS layer name when not only in `params.LAYERS`. */
|
|
127
|
+
layerName?: string;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface GeoMapWmtsLayerConfig extends GeoMapLayerBase {
|
|
131
|
+
type: 'wmts';
|
|
132
|
+
url: string;
|
|
133
|
+
layer: string;
|
|
134
|
+
matrixSet: string;
|
|
135
|
+
format?: string;
|
|
136
|
+
style?: string;
|
|
137
|
+
projection?: string;
|
|
138
|
+
crossOrigin?: string | null;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export interface GeoMapGeoJsonLayerConfig extends GeoMapLayerBase {
|
|
142
|
+
type: 'geojson';
|
|
143
|
+
/** Inline GeoJSON object or URL string. */
|
|
144
|
+
data: object | string;
|
|
145
|
+
dataProjection?: string;
|
|
146
|
+
featureProjection?: string;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface GeoMapVectorLayerConfig extends GeoMapLayerBase {
|
|
150
|
+
type: 'vector';
|
|
151
|
+
/** Pre-built OL features (app-owned). */
|
|
152
|
+
features?: Feature<Geometry>[];
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface GeoMapBasemapOption {
|
|
156
|
+
id: string;
|
|
157
|
+
label: string;
|
|
158
|
+
basemap: GeoMapBasemap;
|
|
159
|
+
previewUrl?: string;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export interface GeoMapClickEvent {
|
|
163
|
+
/** Coordinate in view projection. */
|
|
164
|
+
coordinate: number[];
|
|
165
|
+
/** Lon/lat (EPSG:4326) as [longitude, latitude]. */
|
|
166
|
+
lonLat: [number, number];
|
|
167
|
+
pixel: [number, number];
|
|
168
|
+
originalEvent: UIEvent;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface GeoMapViewChangeEvent {
|
|
172
|
+
center: number[];
|
|
173
|
+
zoom: number;
|
|
174
|
+
resolution: number;
|
|
175
|
+
rotation: number;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export interface GeoMapLayerVisibilityChange {
|
|
179
|
+
layerId: string;
|
|
180
|
+
visible: boolean;
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Examples
|
|
185
|
+
|
|
186
|
+
### Basic
|
|
187
|
+
|
|
188
|
+
```html
|
|
189
|
+
<geo-map height="480px" basemap="osm" [center]="[108.45, 11.94]" [zoom]="12" (mapReady)="ctrl = $event"></geo-map>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Tips
|
|
193
|
+
|
|
194
|
+
- Portal đầy đủ → geo-map-shell.
|
|
195
|
+
- showZoomControl=false khi dùng geo-map-zoom riêng.
|
|
196
|
+
- Peers: ol, proj4.
|
|
197
|
+
## Related components
|
|
198
|
+
|
|
199
|
+
- [`geo-map-shell`](./geo-map-shell.md)
|
|
200
|
+
- [`geo-map-zoom`](./geo-map-zoom.md)
|
|
201
|
+
- [`geo-map-toolbar`](./geo-map-toolbar.md)
|
|
202
|
+
## Package path
|
|
203
|
+
`node_modules/@geoit/ui/ai/components/geo-map.md`
|
|
204
|
+
|
|
205
|
+
## Source
|
|
206
|
+
`projects/geo-ui/src/lib/figma/geo-map/geo-map.component.ts`
|
|
207
|
+
|
|
208
|
+
## Rules for AI / consumers
|
|
209
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
210
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
211
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
212
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# geo-overlap-result
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoOverlapResultComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Overlap analysis result list (planning type, area, percent).
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoOverlapResultComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoOverlapResultComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-overlap-result`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`data`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Show giao cắt quy hoạch vs hiện trạng results.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Generic tables — use geo-table.
|
|
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` | `'Kết quả phân tích chồng lấn'` | — |
|
|
46
|
+
| `rows` | `GeoOverlapResultRow[]` | `[]` | — |
|
|
47
|
+
| `areaUnit` | `string` | `'m²'` | — |
|
|
48
|
+
| `emptyText` | `string` | `'Chưa có kết quả phân tích.'` | — |
|
|
49
|
+
|
|
50
|
+
## Outputs
|
|
51
|
+
|
|
52
|
+
| Output | Payload | Description |
|
|
53
|
+
|--------|---------|-------------|
|
|
54
|
+
| `rowClick` | `OutputEmitterRef<GeoOverlapResultRow>` | — |
|
|
55
|
+
|
|
56
|
+
## Related types
|
|
57
|
+
|
|
58
|
+
From `figma/geo-overlap-result/geo-overlap-result.types.ts`:
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
export interface GeoOverlapResultRow {
|
|
62
|
+
id: string;
|
|
63
|
+
planningType: string;
|
|
64
|
+
intersectionArea: number | string;
|
|
65
|
+
percent: number | string;
|
|
66
|
+
color?: string;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Examples
|
|
71
|
+
|
|
72
|
+
### Example
|
|
73
|
+
|
|
74
|
+
```html
|
|
75
|
+
<geo-overlap-result [rows]="rows" (rowClick)="focus($event)"></geo-overlap-result>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Package path
|
|
79
|
+
`node_modules/@geoit/ui/ai/components/geo-overlap-result.md`
|
|
80
|
+
|
|
81
|
+
## Source
|
|
82
|
+
`projects/geo-ui/src/lib/figma/geo-overlap-result/geo-overlap-result.component.ts`
|
|
83
|
+
|
|
84
|
+
## Rules for AI / consumers
|
|
85
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
86
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
87
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
88
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# geo-page-header
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoPageHeaderComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Compact page header block (title + optional actions slot).
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoPageHeaderComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoPageHeaderComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-page-header`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`display`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Section headers on dashboard / list pages.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Full page title under breadcrumb — prefer geo-page-title.
|
|
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` | `''` | — |
|
|
46
|
+
| `breadcrumb` | `GeoBreadcrumbItem[]` | `[]` | — |
|
|
47
|
+
| `uppercase` | `boolean` | `true` | — |
|
|
48
|
+
|
|
49
|
+
## Outputs
|
|
50
|
+
|
|
51
|
+
_None_
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
### Example
|
|
57
|
+
|
|
58
|
+
```html
|
|
59
|
+
<geo-page-header title="Thống kê nhanh"></geo-page-header>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Package path
|
|
63
|
+
`node_modules/@geoit/ui/ai/components/geo-page-header.md`
|
|
64
|
+
|
|
65
|
+
## Source
|
|
66
|
+
`projects/geo-ui/src/lib/figma/geo-page-header/geo-page-header.component.ts`
|
|
67
|
+
|
|
68
|
+
## Rules for AI / consumers
|
|
69
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
70
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
71
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
72
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -37,7 +37,7 @@ Tiêu đề trang chữ hoa + gạch nhấn primary. title + level 1–4; accent
|
|
|
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
|
|