@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,74 @@
|
|
|
1
|
+
# geo-map-legend
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapLegendComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Map legend popover / panel with color swatches.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapLegendComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapLegendComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-legend`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Show thematic legend; geo-map-shell includes this.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Non-map legends in dashboards — use static markup / geo-status-tag.
|
|
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` | `'Chú giải'` | — |
|
|
46
|
+
| `items` | `GeoMapLegendItem[]` | `[]` | — |
|
|
47
|
+
| `open` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
48
|
+
|
|
49
|
+
## Outputs
|
|
50
|
+
|
|
51
|
+
| Output | Payload | Description |
|
|
52
|
+
|--------|---------|-------------|
|
|
53
|
+
| `closed` | `OutputEmitterRef<void>` | — |
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
### Example
|
|
59
|
+
|
|
60
|
+
```html
|
|
61
|
+
<geo-map-legend [(open)]="legendOpen" [items]="legendItems"></geo-map-legend>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Package path
|
|
65
|
+
`node_modules/@geoit/ui/ai/components/geo-map-legend.md`
|
|
66
|
+
|
|
67
|
+
## Source
|
|
68
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.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,75 @@
|
|
|
1
|
+
# geo-map-locate
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapLocateComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Geolocation button (browser GPS) for the map view.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapLocateComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapLocateComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-locate`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Locate-me control on custom map chrome.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Inside geo-map-shell (already wired) unless building a custom 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
|
+
| `label` | `string` | `'Vị trí của tôi'` | — |
|
|
47
|
+
|
|
48
|
+
## Outputs
|
|
49
|
+
|
|
50
|
+
| Output | Payload | Description |
|
|
51
|
+
|--------|---------|-------------|
|
|
52
|
+
| `located` | `OutputEmitterRef<[number, number]>` | — |
|
|
53
|
+
| `denied` | `OutputEmitterRef<void>` | — |
|
|
54
|
+
| `locateError` | `OutputEmitterRef<{ reason: GeoMapLocateErrorReason; message?: string; }>` | — |
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
## Examples
|
|
58
|
+
|
|
59
|
+
### Example
|
|
60
|
+
|
|
61
|
+
```html
|
|
62
|
+
<geo-map-locate [controller]="ctrl" (denied)="onDenied()"></geo-map-locate>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Package path
|
|
66
|
+
`node_modules/@geoit/ui/ai/components/geo-map-locate.md`
|
|
67
|
+
|
|
68
|
+
## Source
|
|
69
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.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,71 @@
|
|
|
1
|
+
# geo-map-location-chip
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapLocationChipComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Location breadcrumb chip shown on the map (ward / province).
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapLocationChipComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapLocationChipComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-location-chip`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Show current admin context on map chrome.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Page breadcrumb — use geo-breadcrumb.
|
|
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
|
+
| `label` | `string` | `''` | — |
|
|
46
|
+
| `icon` | `string` | `'environment'` | — |
|
|
47
|
+
|
|
48
|
+
## Outputs
|
|
49
|
+
|
|
50
|
+
_None_
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
### Example
|
|
56
|
+
|
|
57
|
+
```html
|
|
58
|
+
<geo-map-location-chip label="Phường 1 — TP Đà Lạt, Lâm Đồng"></geo-map-location-chip>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Package path
|
|
62
|
+
`node_modules/@geoit/ui/ai/components/geo-map-location-chip.md`
|
|
63
|
+
|
|
64
|
+
## Source
|
|
65
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.ts`
|
|
66
|
+
|
|
67
|
+
## Rules for AI / consumers
|
|
68
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
69
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
70
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
71
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# geo-map-measure
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapMeasureComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Distance / area measure interaction on the map.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapMeasureComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapMeasureComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-measure`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Measure tool mode; usually driven by toolbar via geo-map-shell.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Static length labels without interaction.
|
|
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
|
+
| `mode` | `GeoMapMeasureMode` | `'none'` | Two-way `model()` (supports banana binding). |
|
|
47
|
+
| `showResult` | `boolean` | `true` | — |
|
|
48
|
+
|
|
49
|
+
## Outputs
|
|
50
|
+
|
|
51
|
+
| Output | Payload | Description |
|
|
52
|
+
|--------|---------|-------------|
|
|
53
|
+
| `measureChange` | `OutputEmitterRef<GeoMapMeasureResult \| null>` | — |
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
### Example
|
|
59
|
+
|
|
60
|
+
```html
|
|
61
|
+
<geo-map-measure [controller]="ctrl" [(mode)]="measureMode"></geo-map-measure>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Package path
|
|
65
|
+
`node_modules/@geoit/ui/ai/components/geo-map-measure.md`
|
|
66
|
+
|
|
67
|
+
## Source
|
|
68
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.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,75 @@
|
|
|
1
|
+
# geo-map-opacity
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapOpacityComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Layer opacity slider bound to a map layer id.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapOpacityComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapOpacityComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-opacity`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Adjust overlay transparency in custom layer UI.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Full layer list — use geo-map-layer-panel / layers drawer.
|
|
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
|
+
| `title` | `string` | `'Độ trong suốt'` | — |
|
|
47
|
+
| `layerId` | `string \| null` | `null` | Two-way `model()` (supports banana binding). |
|
|
48
|
+
| `opacity` | `number` | `100` | Opacity percent 0–100. — Two-way `model()` (supports banana binding). |
|
|
49
|
+
| `variant` | `'panel' \| 'compact'` | `'panel'` | — |
|
|
50
|
+
| `applyToFirstLayer` | `boolean` | `true` | When compact and no layerId, apply to first non-basemap overlay. |
|
|
51
|
+
|
|
52
|
+
## Outputs
|
|
53
|
+
|
|
54
|
+
_None_
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
## Examples
|
|
58
|
+
|
|
59
|
+
### Example
|
|
60
|
+
|
|
61
|
+
```html
|
|
62
|
+
<geo-map-opacity [controller]="ctrl" layerId="demo-qhsdd-2020" [(opacity)]="opacity"></geo-map-opacity>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Package path
|
|
66
|
+
`node_modules/@geoit/ui/ai/components/geo-map-opacity.md`
|
|
67
|
+
|
|
68
|
+
## Source
|
|
69
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.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,84 @@
|
|
|
1
|
+
# geo-map-parcel-popup
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapParcelPopupComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Parcel detail popup (citizen / specialist audience).
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapParcelPopupComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapParcelPopupComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-parcel-popup`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Show thửa detail after search or map click.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Full detail page — navigate to a route instead.
|
|
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
|
+
| `open` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
46
|
+
| `title` | `string` | `'Thông tin thửa đất'` | — |
|
|
47
|
+
| `parcel` | `GeoMapParcelDetail \| null` | `null` | — |
|
|
48
|
+
| `audience` | `GeoMapParcelAudience` | `'citizen'` | — |
|
|
49
|
+
| `showExport` | `boolean` | `false` | Giữ tương thích API cũ; footer xuất file không còn trong layout thiết kế. |
|
|
50
|
+
|
|
51
|
+
## Outputs
|
|
52
|
+
|
|
53
|
+
| Output | Payload | Description |
|
|
54
|
+
|--------|---------|-------------|
|
|
55
|
+
| `closed` | `OutputEmitterRef<void>` | — |
|
|
56
|
+
| `back` | `OutputEmitterRef<void>` | — |
|
|
57
|
+
| `exportClick` | `OutputEmitterRef<GeoMapParcelDetail>` | — |
|
|
58
|
+
| `diagramClick` | `OutputEmitterRef<GeoMapParcelDetail>` | — |
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
|
|
63
|
+
### Example
|
|
64
|
+
|
|
65
|
+
```html
|
|
66
|
+
<geo-map-parcel-popup
|
|
67
|
+
[(open)]="parcelOpen"
|
|
68
|
+
[parcel]="selected"
|
|
69
|
+
audience="citizen"
|
|
70
|
+
(exportClick)="exportPdf($event)"
|
|
71
|
+
></geo-map-parcel-popup>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Package path
|
|
75
|
+
`node_modules/@geoit/ui/ai/components/geo-map-parcel-popup.md`
|
|
76
|
+
|
|
77
|
+
## Source
|
|
78
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.ts`
|
|
79
|
+
|
|
80
|
+
## Rules for AI / consumers
|
|
81
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
82
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
83
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
84
|
+
- Copy examples and adapt labels/bindings only.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# geo-map-search
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapSearchComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Map search panel (owner / certificate / parcel / address / coordinates).
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapSearchComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapSearchComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-search`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Tra cứu thửa on portal; prefer via geo-map-shell.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Global app search unrelated to 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
|
+
| `open` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
46
|
+
| `title` | `string` | `'Tra cứu thông tin quy hoạch theo'` | — |
|
|
47
|
+
| `mode` | `GeoMapSearchMode` | `'parcel'` | Two-way `model()` (supports banana binding). |
|
|
48
|
+
| `results` | `GeoMapSearchResultItem[]` | `[]` | — |
|
|
49
|
+
| `loading` | `boolean` | `false` | — |
|
|
50
|
+
| `pageIndex` | `number` | `1` | Two-way `model()` (supports banana binding). |
|
|
51
|
+
| `pageSize` | `number` | `5` | Two-way `model()` (supports banana binding). |
|
|
52
|
+
| `total` | `number` | `0` | — |
|
|
53
|
+
| `emptyText` | `string` | `'Chưa có kết quả tra cứu.'` | — |
|
|
54
|
+
|
|
55
|
+
## Outputs
|
|
56
|
+
|
|
57
|
+
| Output | Payload | Description |
|
|
58
|
+
|--------|---------|-------------|
|
|
59
|
+
| `search` | `OutputEmitterRef<GeoMapSearchQuery>` | — |
|
|
60
|
+
| `reset` | `OutputEmitterRef<void>` | — |
|
|
61
|
+
| `resultSelect` | `OutputEmitterRef<GeoMapSearchResultItem>` | — |
|
|
62
|
+
| `closed` | `OutputEmitterRef<void>` | — |
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
## Examples
|
|
66
|
+
|
|
67
|
+
### Example
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<geo-map-search
|
|
71
|
+
[(open)]="searchOpen"
|
|
72
|
+
mode="parcel"
|
|
73
|
+
[results]="results"
|
|
74
|
+
(search)="runSearch($event)"
|
|
75
|
+
(resultSelect)="onSelect($event)"
|
|
76
|
+
></geo-map-search>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Package path
|
|
80
|
+
`node_modules/@geoit/ui/ai/components/geo-map-search.md`
|
|
81
|
+
|
|
82
|
+
## Source
|
|
83
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.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,146 @@
|
|
|
1
|
+
# geo-map-shell
|
|
2
|
+
|
|
3
|
+
> Complete usage reference for **GeoMapShellComponent** (`@geoit/ui`)
|
|
4
|
+
>
|
|
5
|
+
> Read this file before using the component. Use **only** the Inputs/Outputs listed here.
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Full map portal chrome: search, ĐVHC, layers, legend, measure, basemap, parcel popup.
|
|
9
|
+
|
|
10
|
+
## Import
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { GeoMapShellComponent } from '@geoit/ui';
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to the consuming standalone component:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
imports: [GeoMapShellComponent]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Selector
|
|
23
|
+
`geo-map-shell`
|
|
24
|
+
|
|
25
|
+
## Category
|
|
26
|
+
`map`
|
|
27
|
+
|
|
28
|
+
## When to use
|
|
29
|
+
Public / specialist map portal pages (tra cứu quy hoạch). Prefer this over composing chrome by hand.
|
|
30
|
+
|
|
31
|
+
## Do not use when
|
|
32
|
+
Bare map embed without UI chrome — use geo-map only.
|
|
33
|
+
|
|
34
|
+
## How to use
|
|
35
|
+
|
|
36
|
+
Shell portal tra cứu: gắn height + layers API; tắt demoSearch trên production. Lắng nghe (search)/(resultSelect)/(parcelExport). Models [(searchOpen)], [(layersOpen)], … để điều khiển panel từ ngoài.
|
|
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]` | — |
|
|
49
|
+
| `zoom` | — | `GEO_MAP_DEFAULT_ZOOM` | — |
|
|
50
|
+
| `height` | `string` | `'560px'` | — |
|
|
51
|
+
| `showMousePosition` | `boolean` | `false` | — |
|
|
52
|
+
| `basemapOptions` | `GeoMapBasemapOption[]` | `GEO_MAP_DEFAULT_BASEMAP_OPTIONS` | — |
|
|
53
|
+
| `toolbarActions` | `GeoMapToolbarAction[]` | `GEO_MAP_DEFAULT_TOOLBAR_ACTIONS` | — |
|
|
54
|
+
| `layers` | `GeoMapLayerConfig[]` | `[]` | Extra overlays merged after demo thematic + traffic. |
|
|
55
|
+
| `legendItems` | `GeoMapLegendItem[]` | `GEO_MAP_DEMO_LEGEND_ITEMS` | — |
|
|
56
|
+
| `showNav` | `boolean` | `true` | — |
|
|
57
|
+
| `includeDemoLayers` | `boolean` | `true` | — |
|
|
58
|
+
| `adminNodes` | `GeoTreeNode[]` | `GEO_MAP_DEMO_ADMIN_NODES` | — |
|
|
59
|
+
| `locationLabel` | `string` | `'Phường 1 — TP Đà Lạt, Lâm Đồng'` | — |
|
|
60
|
+
| `parcelAudience` | `GeoMapParcelAudience` | `'citizen'` | — |
|
|
61
|
+
| `provinceExtent` | `readonly [number, number, number, number]` | `GEO_MAP_DEFAULT_PROVINCE_EXTENT_4326` | — |
|
|
62
|
+
| `demoSearch` | `boolean` | `true` | When true, shell seeds mock search results (Storybook / demos). |
|
|
63
|
+
| `homeMode` | `'location' \| 'emit'` | `'location'` | `location` — Home opens ĐVHC filter (default). `emit` — Home only emits `actionClick` (e.g. portal navigates to login/dashboard). |
|
|
64
|
+
| `basemapId` | `string` | `'osm'` | Two-way `model()` (supports banana binding). |
|
|
65
|
+
| `measureMode` | `GeoMapMeasureMode` | `'none'` | Two-way `model()` (supports banana binding). |
|
|
66
|
+
| `checkedMap` | `Record<string, boolean>` | — | Two-way `model()` (supports banana binding). |
|
|
67
|
+
| `layersOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
68
|
+
| `legendOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
69
|
+
| `helpOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
70
|
+
| `swipeActive` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
71
|
+
| `searchOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
72
|
+
| `adminFilterOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
73
|
+
| `parcelOpen` | `boolean` | `false` | Two-way `model()` (supports banana binding). |
|
|
74
|
+
| `managedLayers` | `GeoMapLayerConfig[]` | `[]` | Two-way `model()` (supports banana binding). |
|
|
75
|
+
| `searchResults` | `GeoMapSearchResultItem[]` | `[]` | Two-way `model()` (supports banana binding). |
|
|
76
|
+
| `selectedParcel` | `GeoMapParcelDetail \| null` | `null` | Two-way `model()` (supports banana binding). |
|
|
77
|
+
| `adminCheckedKeys` | `Array<string \| number>` | `[]` | Two-way `model()` (supports banana binding). |
|
|
78
|
+
| `adminExpandedKeys` | `Array<string \| number>` | `['lam-dong']` | Two-way `model()` (supports banana binding). |
|
|
79
|
+
|
|
80
|
+
## Outputs
|
|
81
|
+
|
|
82
|
+
| Output | Payload | Description |
|
|
83
|
+
|--------|---------|-------------|
|
|
84
|
+
| `mapReady` | `OutputEmitterRef<GeoMapController>` | — |
|
|
85
|
+
| `mapClick` | `OutputEmitterRef<GeoMapClickEvent>` | — |
|
|
86
|
+
| `locateDenied` | `OutputEmitterRef<void>` | — |
|
|
87
|
+
| `actionClick` | `OutputEmitterRef<GeoMapToolbarAction>` | — |
|
|
88
|
+
| `search` | `OutputEmitterRef<GeoMapSearchQuery>` | — |
|
|
89
|
+
| `searchReset` | `OutputEmitterRef<void>` | — |
|
|
90
|
+
| `resultSelect` | `OutputEmitterRef<GeoMapSearchResultItem>` | — |
|
|
91
|
+
| `parcelExport` | `OutputEmitterRef<GeoMapParcelDetail>` | — |
|
|
92
|
+
| `adminApply` | `OutputEmitterRef<Array<string \| number>>` | — |
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
## Examples
|
|
96
|
+
|
|
97
|
+
### Basic portal
|
|
98
|
+
|
|
99
|
+
```html
|
|
100
|
+
<geo-map-shell
|
|
101
|
+
height="640px"
|
|
102
|
+
[demoSearch]="false"
|
|
103
|
+
parcelAudience="citizen"
|
|
104
|
+
[layers]="layers"
|
|
105
|
+
(mapReady)="ctrl = $event"
|
|
106
|
+
(search)="onSearch($event)"
|
|
107
|
+
></geo-map-shell>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Open search panel
|
|
111
|
+
|
|
112
|
+
```html
|
|
113
|
+
<geo-map-shell
|
|
114
|
+
height="640px"
|
|
115
|
+
[demoSearch]="false"
|
|
116
|
+
[(searchOpen)]="searchOpen"
|
|
117
|
+
[(searchResults)]="results"
|
|
118
|
+
(search)="runQuery($event)"
|
|
119
|
+
(resultSelect)="onResult($event)"
|
|
120
|
+
></geo-map-shell>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Tips
|
|
124
|
+
|
|
125
|
+
- Ưu tiên geo-map-shell thay vì tự ghép chrome.
|
|
126
|
+
- Peers bắt buộc: ol, proj4.
|
|
127
|
+
- demoSearch=true chỉ cho Storybook/demo — production phải false + API thật.
|
|
128
|
+
- parcelAudience: citizen | specialist.
|
|
129
|
+
- Đọc geo-map.md cho layer types / projections.
|
|
130
|
+
## Related components
|
|
131
|
+
|
|
132
|
+
- [`geo-map`](./geo-map.md)
|
|
133
|
+
- [`geo-map-search`](./geo-map-search.md)
|
|
134
|
+
- [`geo-map-toolbar`](./geo-map-toolbar.md)
|
|
135
|
+
- [`geo-map-layers-drawer`](./geo-map-layers-drawer.md)
|
|
136
|
+
## Package path
|
|
137
|
+
`node_modules/@geoit/ui/ai/components/geo-map-shell.md`
|
|
138
|
+
|
|
139
|
+
## Source
|
|
140
|
+
`projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.ts`
|
|
141
|
+
|
|
142
|
+
## Rules for AI / consumers
|
|
143
|
+
- Prefer this component over raw ng-zorro / HTML for the same UI role.
|
|
144
|
+
- Use design tokens (`var(--geo-*)`) — never hardcode brand colors or radius.
|
|
145
|
+
- Match props exactly to the Inputs table; do not invent unsupported inputs.
|
|
146
|
+
- Copy examples and adapt labels/bindings only.
|