@geoit/ui 0.0.5 → 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/README.md +45 -4
- package/ai/AGENTS.md +122 -42
- package/ai/README.md +29 -29
- package/ai/catalog.json +266 -194
- package/ai/components/geo-chart.md +18 -6
- package/ai/components/geo-dashboard.md +17 -6
- package/ai/components/geo-empty-state.md +5 -5
- package/ai/components/geo-feedback-form.md +5 -5
- package/ai/components/geo-forgot-password.md +8 -5
- package/ai/components/geo-list-page.md +8 -5
- package/ai/components/geo-login.md +18 -6
- package/ai/components/geo-map-admin-filter.md +10 -5
- package/ai/components/geo-map-basemap-switcher.md +9 -5
- package/ai/components/geo-map-help.md +5 -5
- package/ai/components/geo-map-layer-card.md +5 -5
- package/ai/components/geo-map-layer-panel.md +5 -5
- package/ai/components/geo-map-layers-drawer.md +5 -5
- package/ai/components/geo-map-legend.md +5 -5
- package/ai/components/geo-map-locate.md +5 -5
- package/ai/components/geo-map-location-chip.md +5 -5
- package/ai/components/geo-map-measure.md +5 -5
- package/ai/components/geo-map-opacity.md +5 -5
- package/ai/components/geo-map-parcel-popup.md +10 -5
- package/ai/components/geo-map-search.md +11 -5
- package/ai/components/geo-map-shell.md +42 -6
- package/ai/components/geo-map-snapshot.md +5 -5
- package/ai/components/geo-map-swipe.md +5 -5
- package/ai/components/geo-map-toolbar.md +10 -5
- package/ai/components/geo-map-zoom.md +5 -5
- package/ai/components/geo-map.md +16 -9
- package/ai/components/geo-overlap-result.md +5 -5
- package/ai/components/geo-page-header.md +5 -5
- package/ai/components/geo-slider.md +1 -1
- package/ai/components/geo-stat-card.md +5 -5
- package/ai/mockup.html +2 -2
- package/ai/recipes.md +86 -0
- package/package.json +1 -1
package/ai/catalog.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "@geoit/ui",
|
|
3
3
|
"import": "@geoit/ui",
|
|
4
|
-
"version": "0.0.
|
|
5
|
-
"generatedAt": "2026-
|
|
4
|
+
"version": "0.0.6",
|
|
5
|
+
"generatedAt": "2026-09-03T03:52:29.749Z",
|
|
6
6
|
"styles": [
|
|
7
7
|
"@geoit/ui/src/lib/styles/design-tokens.scss",
|
|
8
8
|
"@geoit/ui/src/lib/styles/theme.scss"
|
|
@@ -339,12 +339,15 @@
|
|
|
339
339
|
{
|
|
340
340
|
"name": "GeoChartComponent",
|
|
341
341
|
"selector": "geo-chart",
|
|
342
|
-
"category": "
|
|
343
|
-
"summary": "
|
|
344
|
-
"whenToUse": "",
|
|
345
|
-
"doNotUseWhen": "",
|
|
346
|
-
"howTo": "",
|
|
347
|
-
"tips": [
|
|
342
|
+
"category": "data",
|
|
343
|
+
"summary": "Bar / donut chart for dashboard statistics (ApexCharts).",
|
|
344
|
+
"whenToUse": "KPI breakdowns on dashboard pages.",
|
|
345
|
+
"doNotUseWhen": "Maps / spatial — use geo-map; single KPI — use geo-stat-card.",
|
|
346
|
+
"howTo": "Biểu đồ bar/donut cho dashboard. [data] = { label, value, color? }[]; (segmentClick) khi click lát.",
|
|
347
|
+
"tips": [
|
|
348
|
+
"Màu ưu tiên CSS var(--geo-color-*).",
|
|
349
|
+
"KPI đơn → geo-stat-card; ghép sẵn → geo-dashboard."
|
|
350
|
+
],
|
|
348
351
|
"binding": "none",
|
|
349
352
|
"cva": false,
|
|
350
353
|
"path": "projects/geo-ui/src/lib/figma/geo-chart/geo-chart.component.ts",
|
|
@@ -419,12 +422,17 @@
|
|
|
419
422
|
],
|
|
420
423
|
"examples": [
|
|
421
424
|
{
|
|
422
|
-
"title": "
|
|
423
|
-
"lang": "html"
|
|
425
|
+
"title": "Bar",
|
|
426
|
+
"lang": "html",
|
|
427
|
+
"code": "<geo-chart type=\"bar\" title=\"Theo xã\" [data]=\"wardData\" [height]=\"280\"></geo-chart>"
|
|
424
428
|
}
|
|
425
429
|
],
|
|
426
|
-
"example": "<geo-chart></geo-chart>",
|
|
427
|
-
"related": [
|
|
430
|
+
"example": "<geo-chart type=\"bar\" title=\"Theo xã\" [data]=\"wardData\" [height]=\"280\"></geo-chart>",
|
|
431
|
+
"related": [
|
|
432
|
+
"geo-stat-card",
|
|
433
|
+
"geo-dashboard",
|
|
434
|
+
"geo-empty-state"
|
|
435
|
+
]
|
|
428
436
|
},
|
|
429
437
|
{
|
|
430
438
|
"name": "GeoCheckboxComponent",
|
|
@@ -675,12 +683,14 @@
|
|
|
675
683
|
{
|
|
676
684
|
"name": "GeoDashboardComponent",
|
|
677
685
|
"selector": "geo-dashboard",
|
|
678
|
-
"category": "
|
|
679
|
-
"summary": "
|
|
680
|
-
"whenToUse": "",
|
|
681
|
-
"doNotUseWhen": "",
|
|
682
|
-
"howTo": "",
|
|
683
|
-
"tips": [
|
|
686
|
+
"category": "layout",
|
|
687
|
+
"summary": "Composed dashboard: period, KPI cards, ward/mismatch charts.",
|
|
688
|
+
"whenToUse": "TCQH overview pages (thống kê nhanh).",
|
|
689
|
+
"doNotUseWhen": "Custom layouts — compose geo-stat-card + geo-chart yourself.",
|
|
690
|
+
"howTo": "Dashboard ghép sẵn: stats + biểu đồ xã + lệch kỳ. [(period)] điều khiển kỳ thống kê.",
|
|
691
|
+
"tips": [
|
|
692
|
+
"Tự layout → geo-stat-card + geo-chart."
|
|
693
|
+
],
|
|
684
694
|
"binding": "none",
|
|
685
695
|
"cva": false,
|
|
686
696
|
"path": "projects/geo-ui/src/lib/figma/geo-dashboard/geo-dashboard.component.ts",
|
|
@@ -760,12 +770,17 @@
|
|
|
760
770
|
],
|
|
761
771
|
"examples": [
|
|
762
772
|
{
|
|
763
|
-
"title": "
|
|
764
|
-
"lang": "html"
|
|
773
|
+
"title": "Basic",
|
|
774
|
+
"lang": "html",
|
|
775
|
+
"code": "<geo-dashboard [stats]=\"stats\" [wardData]=\"wards\" [mismatchData]=\"mismatch\" [(period)]=\"period\"></geo-dashboard>"
|
|
765
776
|
}
|
|
766
777
|
],
|
|
767
|
-
"example": "<geo-dashboard></geo-dashboard>",
|
|
768
|
-
"related": [
|
|
778
|
+
"example": "<geo-dashboard [stats]=\"stats\" [wardData]=\"wards\" [mismatchData]=\"mismatch\" [(period)]=\"period\"></geo-dashboard>",
|
|
779
|
+
"related": [
|
|
780
|
+
"geo-stat-card",
|
|
781
|
+
"geo-chart",
|
|
782
|
+
"geo-page-header"
|
|
783
|
+
]
|
|
769
784
|
},
|
|
770
785
|
{
|
|
771
786
|
"name": "GeoDatePickerComponent",
|
|
@@ -1033,10 +1048,10 @@
|
|
|
1033
1048
|
{
|
|
1034
1049
|
"name": "GeoEmptyStateComponent",
|
|
1035
1050
|
"selector": "geo-empty-state",
|
|
1036
|
-
"category": "
|
|
1037
|
-
"summary": "
|
|
1038
|
-
"whenToUse": "",
|
|
1039
|
-
"doNotUseWhen": "",
|
|
1051
|
+
"category": "feedback",
|
|
1052
|
+
"summary": "Empty region placeholder (icon + title + optional action).",
|
|
1053
|
+
"whenToUse": "No data / no results areas inside pages or cards.",
|
|
1054
|
+
"doNotUseWhen": "Inline form validation — use field errorMessage / geo-alert.",
|
|
1040
1055
|
"howTo": "",
|
|
1041
1056
|
"tips": [],
|
|
1042
1057
|
"binding": "none",
|
|
@@ -1079,19 +1094,20 @@
|
|
|
1079
1094
|
"examples": [
|
|
1080
1095
|
{
|
|
1081
1096
|
"title": "Example",
|
|
1082
|
-
"lang": "html"
|
|
1097
|
+
"lang": "html",
|
|
1098
|
+
"code": "<geo-empty-state title=\"Chưa có dữ liệu\" description=\"Thử đổi bộ lọc.\"></geo-empty-state>"
|
|
1083
1099
|
}
|
|
1084
1100
|
],
|
|
1085
|
-
"example": "<geo-empty-state></geo-empty-state>",
|
|
1101
|
+
"example": "<geo-empty-state title=\"Chưa có dữ liệu\" description=\"Thử đổi bộ lọc.\"></geo-empty-state>",
|
|
1086
1102
|
"related": []
|
|
1087
1103
|
},
|
|
1088
1104
|
{
|
|
1089
1105
|
"name": "GeoFeedbackFormComponent",
|
|
1090
1106
|
"selector": "geo-feedback-form",
|
|
1091
|
-
"category": "
|
|
1092
|
-
"summary": "
|
|
1093
|
-
"whenToUse": "",
|
|
1094
|
-
"doNotUseWhen": "",
|
|
1107
|
+
"category": "forms",
|
|
1108
|
+
"summary": "Citizen feedback / phản ánh form with validation.",
|
|
1109
|
+
"whenToUse": "Public feedback submission pages.",
|
|
1110
|
+
"doNotUseWhen": "Admin feedback inbox — use geo-list-page + geo-table.",
|
|
1095
1111
|
"howTo": "",
|
|
1096
1112
|
"tips": [],
|
|
1097
1113
|
"binding": "none",
|
|
@@ -1175,10 +1191,11 @@
|
|
|
1175
1191
|
"examples": [
|
|
1176
1192
|
{
|
|
1177
1193
|
"title": "Example",
|
|
1178
|
-
"lang": "html"
|
|
1194
|
+
"lang": "html",
|
|
1195
|
+
"code": "<geo-feedback-form (submittedFeedback)=\"send($event)\"></geo-feedback-form>"
|
|
1179
1196
|
}
|
|
1180
1197
|
],
|
|
1181
|
-
"example": "<geo-feedback-form></geo-feedback-form>",
|
|
1198
|
+
"example": "<geo-feedback-form (submittedFeedback)=\"send($event)\"></geo-feedback-form>",
|
|
1182
1199
|
"related": []
|
|
1183
1200
|
},
|
|
1184
1201
|
{
|
|
@@ -1301,10 +1318,10 @@
|
|
|
1301
1318
|
{
|
|
1302
1319
|
"name": "GeoForgotPasswordComponent",
|
|
1303
1320
|
"selector": "geo-forgot-password",
|
|
1304
|
-
"category": "
|
|
1305
|
-
"summary": "
|
|
1306
|
-
"whenToUse": "",
|
|
1307
|
-
"doNotUseWhen": "",
|
|
1321
|
+
"category": "forms",
|
|
1322
|
+
"summary": "Forgot-password form (email + submit / back to login).",
|
|
1323
|
+
"whenToUse": "Password reset entry page.",
|
|
1324
|
+
"doNotUseWhen": "Inside login card — navigate to a dedicated route.",
|
|
1308
1325
|
"howTo": "",
|
|
1309
1326
|
"tips": [],
|
|
1310
1327
|
"binding": "none",
|
|
@@ -1364,10 +1381,11 @@
|
|
|
1364
1381
|
"examples": [
|
|
1365
1382
|
{
|
|
1366
1383
|
"title": "Example",
|
|
1367
|
-
"lang": "html"
|
|
1384
|
+
"lang": "html",
|
|
1385
|
+
"code": "<geo-forgot-password\n (submitEmail)=\"reset($event)\"\n (backToLogin)=\"goLogin()\"\n></geo-forgot-password>"
|
|
1368
1386
|
}
|
|
1369
1387
|
],
|
|
1370
|
-
"example": "<geo-forgot-password></geo-forgot-password>",
|
|
1388
|
+
"example": "<geo-forgot-password\n (submitEmail)=\"reset($event)\"\n (backToLogin)=\"goLogin()\"\n></geo-forgot-password>",
|
|
1371
1389
|
"related": []
|
|
1372
1390
|
},
|
|
1373
1391
|
{
|
|
@@ -2282,10 +2300,10 @@
|
|
|
2282
2300
|
{
|
|
2283
2301
|
"name": "GeoListPageComponent",
|
|
2284
2302
|
"selector": "geo-list-page",
|
|
2285
|
-
"category": "
|
|
2286
|
-
"summary": "
|
|
2287
|
-
"whenToUse": "",
|
|
2288
|
-
"doNotUseWhen": "",
|
|
2303
|
+
"category": "layout",
|
|
2304
|
+
"summary": "List page chrome: title + breadcrumb shell for admin CRUD screens.",
|
|
2305
|
+
"whenToUse": "Wrap table toolbars on admin list pages.",
|
|
2306
|
+
"doNotUseWhen": "Map portals — use geo-map-shell; dashboards — use geo-dashboard.",
|
|
2289
2307
|
"howTo": "",
|
|
2290
2308
|
"tips": [],
|
|
2291
2309
|
"binding": "none",
|
|
@@ -2316,21 +2334,25 @@
|
|
|
2316
2334
|
"examples": [
|
|
2317
2335
|
{
|
|
2318
2336
|
"title": "Example",
|
|
2319
|
-
"lang": "html"
|
|
2337
|
+
"lang": "html",
|
|
2338
|
+
"code": "<geo-list-page title=\"Quản lý người dùng\" [breadcrumb]=\"crumbs\">\n <geo-table-toolbar ...></geo-table-toolbar>\n <geo-table ...></geo-table>\n</geo-list-page>"
|
|
2320
2339
|
}
|
|
2321
2340
|
],
|
|
2322
|
-
"example": "<geo-list-page
|
|
2341
|
+
"example": "<geo-list-page title=\"Quản lý người dùng\" [breadcrumb]=\"crumbs\">\n <geo-table-toolbar ...></geo-table-toolbar>\n <geo-table ...></geo-table>\n</geo-list-page>",
|
|
2323
2342
|
"related": []
|
|
2324
2343
|
},
|
|
2325
2344
|
{
|
|
2326
2345
|
"name": "GeoLoginComponent",
|
|
2327
2346
|
"selector": "geo-login",
|
|
2328
|
-
"category": "
|
|
2329
|
-
"summary": "
|
|
2330
|
-
"whenToUse": "",
|
|
2331
|
-
"doNotUseWhen": "",
|
|
2332
|
-
"howTo": "",
|
|
2333
|
-
"tips": [
|
|
2347
|
+
"category": "forms",
|
|
2348
|
+
"summary": "Login form (username, password, captcha, remember).",
|
|
2349
|
+
"whenToUse": "Specialist / admin login page.",
|
|
2350
|
+
"doNotUseWhen": "SSO-only flows without local credentials.",
|
|
2351
|
+
"howTo": "Form đăng nhập: username/password/captcha/remember. (submitLogin) payload; (forgotPassword) điều hướng quên mật khẩu.",
|
|
2352
|
+
"tips": [
|
|
2353
|
+
"Cần FormsModule + styles tokens.",
|
|
2354
|
+
"Ghép geo-forgot-password trên route riêng."
|
|
2355
|
+
],
|
|
2334
2356
|
"binding": "none",
|
|
2335
2357
|
"cva": false,
|
|
2336
2358
|
"path": "projects/geo-ui/src/lib/figma/geo-login/geo-login.component.ts",
|
|
@@ -2411,12 +2433,17 @@
|
|
|
2411
2433
|
],
|
|
2412
2434
|
"examples": [
|
|
2413
2435
|
{
|
|
2414
|
-
"title": "
|
|
2415
|
-
"lang": "html"
|
|
2436
|
+
"title": "Basic",
|
|
2437
|
+
"lang": "html",
|
|
2438
|
+
"code": "<geo-login (submitLogin)=\"login($event)\" (forgotPassword)=\"goForgot()\"></geo-login>"
|
|
2416
2439
|
}
|
|
2417
2440
|
],
|
|
2418
|
-
"example": "<geo-login></geo-login>",
|
|
2419
|
-
"related": [
|
|
2441
|
+
"example": "<geo-login (submitLogin)=\"login($event)\" (forgotPassword)=\"goForgot()\"></geo-login>",
|
|
2442
|
+
"related": [
|
|
2443
|
+
"geo-forgot-password",
|
|
2444
|
+
"geo-input",
|
|
2445
|
+
"geo-button"
|
|
2446
|
+
]
|
|
2420
2447
|
},
|
|
2421
2448
|
{
|
|
2422
2449
|
"name": "GeoMapComponent",
|
|
@@ -2424,9 +2451,13 @@
|
|
|
2424
2451
|
"category": "map",
|
|
2425
2452
|
"summary": "OpenLayers map host with basemap, typed layers, and GeoMapController.",
|
|
2426
2453
|
"whenToUse": "Any map viewport (portal quy hoạch, tra cứu thửa). Peers: ol, proj4.",
|
|
2427
|
-
"doNotUseWhen": "
|
|
2428
|
-
"howTo": "",
|
|
2429
|
-
"tips": [
|
|
2454
|
+
"doNotUseWhen": "Full portal chrome — prefer geo-map-shell; non-map charts — use geo-chart.",
|
|
2455
|
+
"howTo": "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.",
|
|
2456
|
+
"tips": [
|
|
2457
|
+
"Portal đầy đủ → geo-map-shell.",
|
|
2458
|
+
"showZoomControl=false khi dùng geo-map-zoom riêng.",
|
|
2459
|
+
"Peers: ol, proj4."
|
|
2460
|
+
],
|
|
2430
2461
|
"binding": "none",
|
|
2431
2462
|
"cva": false,
|
|
2432
2463
|
"path": "projects/geo-ui/src/lib/figma/geo-map/geo-map.component.ts",
|
|
@@ -2535,21 +2566,25 @@
|
|
|
2535
2566
|
],
|
|
2536
2567
|
"examples": [
|
|
2537
2568
|
{
|
|
2538
|
-
"title": "
|
|
2569
|
+
"title": "Basic",
|
|
2539
2570
|
"lang": "html",
|
|
2540
|
-
"code": "<geo-map
|
|
2571
|
+
"code": "<geo-map height=\"480px\" basemap=\"osm\" [center]=\"[108.45, 11.94]\" [zoom]=\"12\" (mapReady)=\"ctrl = $event\"></geo-map>"
|
|
2541
2572
|
}
|
|
2542
2573
|
],
|
|
2543
|
-
"example": "<geo-map
|
|
2544
|
-
"related": [
|
|
2574
|
+
"example": "<geo-map height=\"480px\" basemap=\"osm\" [center]=\"[108.45, 11.94]\" [zoom]=\"12\" (mapReady)=\"ctrl = $event\"></geo-map>",
|
|
2575
|
+
"related": [
|
|
2576
|
+
"geo-map-shell",
|
|
2577
|
+
"geo-map-zoom",
|
|
2578
|
+
"geo-map-toolbar"
|
|
2579
|
+
]
|
|
2545
2580
|
},
|
|
2546
2581
|
{
|
|
2547
2582
|
"name": "GeoMapAdminFilterComponent",
|
|
2548
2583
|
"selector": "geo-map-admin-filter",
|
|
2549
|
-
"category": "
|
|
2550
|
-
"summary": "
|
|
2551
|
-
"whenToUse": "",
|
|
2552
|
-
"doNotUseWhen": "",
|
|
2584
|
+
"category": "map",
|
|
2585
|
+
"summary": "Administrative unit tree filter (ĐVHC) for map extent.",
|
|
2586
|
+
"whenToUse": "Filter map by tỉnh/huyện/xã; included in geo-map-shell.",
|
|
2587
|
+
"doNotUseWhen": "Generic trees outside map — use geo-tree.",
|
|
2553
2588
|
"howTo": "",
|
|
2554
2589
|
"tips": [],
|
|
2555
2590
|
"binding": "none",
|
|
@@ -2618,19 +2653,20 @@
|
|
|
2618
2653
|
"examples": [
|
|
2619
2654
|
{
|
|
2620
2655
|
"title": "Example",
|
|
2621
|
-
"lang": "html"
|
|
2656
|
+
"lang": "html",
|
|
2657
|
+
"code": "<geo-map-admin-filter\n [(open)]=\"adminOpen\"\n [nodes]=\"adminNodes\"\n [(checkedKeys)]=\"checked\"\n (apply)=\"applyAdmin($event)\"\n></geo-map-admin-filter>"
|
|
2622
2658
|
}
|
|
2623
2659
|
],
|
|
2624
|
-
"example": "<geo-map-admin-filter></geo-map-admin-filter>",
|
|
2660
|
+
"example": "<geo-map-admin-filter\n [(open)]=\"adminOpen\"\n [nodes]=\"adminNodes\"\n [(checkedKeys)]=\"checked\"\n (apply)=\"applyAdmin($event)\"\n></geo-map-admin-filter>",
|
|
2625
2661
|
"related": []
|
|
2626
2662
|
},
|
|
2627
2663
|
{
|
|
2628
2664
|
"name": "GeoMapBasemapSwitcherComponent",
|
|
2629
2665
|
"selector": "geo-map-basemap-switcher",
|
|
2630
|
-
"category": "
|
|
2631
|
-
"summary": "
|
|
2632
|
-
"whenToUse": "",
|
|
2633
|
-
"doNotUseWhen": "",
|
|
2666
|
+
"category": "map",
|
|
2667
|
+
"summary": "Basemap preview chip (e.g. street ↔ satellite).",
|
|
2668
|
+
"whenToUse": "Bottom-right basemap toggle; included in geo-map-shell.",
|
|
2669
|
+
"doNotUseWhen": "Programmatic basemap only — set geo-map [basemap] / shell basemapId.",
|
|
2634
2670
|
"howTo": "",
|
|
2635
2671
|
"tips": [],
|
|
2636
2672
|
"binding": "none",
|
|
@@ -2673,19 +2709,20 @@
|
|
|
2673
2709
|
"examples": [
|
|
2674
2710
|
{
|
|
2675
2711
|
"title": "Example",
|
|
2676
|
-
"lang": "html"
|
|
2712
|
+
"lang": "html",
|
|
2713
|
+
"code": "<geo-map-basemap-switcher\n [options]=\"basemapOptions\"\n [(selectedId)]=\"basemapId\"\n (basemapChange)=\"onBasemap($event)\"\n></geo-map-basemap-switcher>"
|
|
2677
2714
|
}
|
|
2678
2715
|
],
|
|
2679
|
-
"example": "<geo-map-basemap-switcher></geo-map-basemap-switcher>",
|
|
2716
|
+
"example": "<geo-map-basemap-switcher\n [options]=\"basemapOptions\"\n [(selectedId)]=\"basemapId\"\n (basemapChange)=\"onBasemap($event)\"\n></geo-map-basemap-switcher>",
|
|
2680
2717
|
"related": []
|
|
2681
2718
|
},
|
|
2682
2719
|
{
|
|
2683
2720
|
"name": "GeoMapHelpComponent",
|
|
2684
2721
|
"selector": "geo-map-help",
|
|
2685
|
-
"category": "
|
|
2686
|
-
"summary": "
|
|
2687
|
-
"whenToUse": "",
|
|
2688
|
-
"doNotUseWhen": "",
|
|
2722
|
+
"category": "map",
|
|
2723
|
+
"summary": "Map help / hướng dẫn popover with sections.",
|
|
2724
|
+
"whenToUse": "Help affordance on map chrome.",
|
|
2725
|
+
"doNotUseWhen": "App-wide help pages — use normal content pages.",
|
|
2689
2726
|
"howTo": "",
|
|
2690
2727
|
"tips": [],
|
|
2691
2728
|
"binding": "none",
|
|
@@ -2716,19 +2753,20 @@
|
|
|
2716
2753
|
"examples": [
|
|
2717
2754
|
{
|
|
2718
2755
|
"title": "Example",
|
|
2719
|
-
"lang": "html"
|
|
2756
|
+
"lang": "html",
|
|
2757
|
+
"code": "<geo-map-help [(open)]=\"helpOpen\" [sections]=\"helpSections\"></geo-map-help>"
|
|
2720
2758
|
}
|
|
2721
2759
|
],
|
|
2722
|
-
"example": "<geo-map-help></geo-map-help>",
|
|
2760
|
+
"example": "<geo-map-help [(open)]=\"helpOpen\" [sections]=\"helpSections\"></geo-map-help>",
|
|
2723
2761
|
"related": []
|
|
2724
2762
|
},
|
|
2725
2763
|
{
|
|
2726
2764
|
"name": "GeoMapLayerCardComponent",
|
|
2727
2765
|
"selector": "geo-map-layer-card",
|
|
2728
|
-
"category": "
|
|
2729
|
-
"summary": "
|
|
2730
|
-
"whenToUse": "",
|
|
2731
|
-
"doNotUseWhen": "",
|
|
2766
|
+
"category": "map",
|
|
2767
|
+
"summary": "Basemap / layer preview card (thumbnail + title).",
|
|
2768
|
+
"whenToUse": "Layer pickers and basemap grids.",
|
|
2769
|
+
"doNotUseWhen": "Full layer management — use geo-map-layer-panel.",
|
|
2732
2770
|
"howTo": "",
|
|
2733
2771
|
"tips": [],
|
|
2734
2772
|
"binding": "none",
|
|
@@ -2759,19 +2797,20 @@
|
|
|
2759
2797
|
"examples": [
|
|
2760
2798
|
{
|
|
2761
2799
|
"title": "Example",
|
|
2762
|
-
"lang": "html"
|
|
2800
|
+
"lang": "html",
|
|
2801
|
+
"code": "<geo-map-layer-card title=\"Đường phố\" [previewUrl]=\"url\" (clicked)=\"select()\"></geo-map-layer-card>"
|
|
2763
2802
|
}
|
|
2764
2803
|
],
|
|
2765
|
-
"example": "<geo-map-layer-card></geo-map-layer-card>",
|
|
2804
|
+
"example": "<geo-map-layer-card title=\"Đường phố\" [previewUrl]=\"url\" (clicked)=\"select()\"></geo-map-layer-card>",
|
|
2766
2805
|
"related": []
|
|
2767
2806
|
},
|
|
2768
2807
|
{
|
|
2769
2808
|
"name": "GeoMapLayerPanelComponent",
|
|
2770
2809
|
"selector": "geo-map-layer-panel",
|
|
2771
|
-
"category": "
|
|
2772
|
-
"summary": "
|
|
2773
|
-
"whenToUse": "",
|
|
2774
|
-
"doNotUseWhen": "",
|
|
2810
|
+
"category": "map",
|
|
2811
|
+
"summary": "Layer list with visibility / opacity / group selection.",
|
|
2812
|
+
"whenToUse": "Standalone layer manager or inside geo-map-layers-drawer.",
|
|
2813
|
+
"doNotUseWhen": "Single opacity control — use geo-map-opacity.",
|
|
2775
2814
|
"howTo": "",
|
|
2776
2815
|
"tips": [],
|
|
2777
2816
|
"binding": "none",
|
|
@@ -2814,19 +2853,20 @@
|
|
|
2814
2853
|
"examples": [
|
|
2815
2854
|
{
|
|
2816
2855
|
"title": "Example",
|
|
2817
|
-
"lang": "html"
|
|
2856
|
+
"lang": "html",
|
|
2857
|
+
"code": "<geo-map-layer-panel [layers]=\"layers\" [controller]=\"ctrl\" [embedded]=\"true\"></geo-map-layer-panel>"
|
|
2818
2858
|
}
|
|
2819
2859
|
],
|
|
2820
|
-
"example": "<geo-map-layer-panel></geo-map-layer-panel>",
|
|
2860
|
+
"example": "<geo-map-layer-panel [layers]=\"layers\" [controller]=\"ctrl\" [embedded]=\"true\"></geo-map-layer-panel>",
|
|
2821
2861
|
"related": []
|
|
2822
2862
|
},
|
|
2823
2863
|
{
|
|
2824
2864
|
"name": "GeoMapLayersDrawerComponent",
|
|
2825
2865
|
"selector": "geo-map-layers-drawer",
|
|
2826
|
-
"category": "
|
|
2827
|
-
"summary": "
|
|
2828
|
-
"whenToUse": "",
|
|
2829
|
-
"doNotUseWhen": "",
|
|
2866
|
+
"category": "map",
|
|
2867
|
+
"summary": "Popover/drawer hosting the layer panel (“Lớp bản đồ”).",
|
|
2868
|
+
"whenToUse": "Portal layer UI; included in geo-map-shell.",
|
|
2869
|
+
"doNotUseWhen": "Always-visible side panel — embed geo-map-layer-panel directly.",
|
|
2830
2870
|
"howTo": "",
|
|
2831
2871
|
"tips": [],
|
|
2832
2872
|
"binding": "none",
|
|
@@ -2887,19 +2927,20 @@
|
|
|
2887
2927
|
"examples": [
|
|
2888
2928
|
{
|
|
2889
2929
|
"title": "Example",
|
|
2890
|
-
"lang": "html"
|
|
2930
|
+
"lang": "html",
|
|
2931
|
+
"code": "<geo-map-layers-drawer [(open)]=\"layersOpen\" [layers]=\"layers\" [controller]=\"ctrl\"></geo-map-layers-drawer>"
|
|
2891
2932
|
}
|
|
2892
2933
|
],
|
|
2893
|
-
"example": "<geo-map-layers-drawer></geo-map-layers-drawer>",
|
|
2934
|
+
"example": "<geo-map-layers-drawer [(open)]=\"layersOpen\" [layers]=\"layers\" [controller]=\"ctrl\"></geo-map-layers-drawer>",
|
|
2894
2935
|
"related": []
|
|
2895
2936
|
},
|
|
2896
2937
|
{
|
|
2897
2938
|
"name": "GeoMapLegendComponent",
|
|
2898
2939
|
"selector": "geo-map-legend",
|
|
2899
|
-
"category": "
|
|
2900
|
-
"summary": "
|
|
2901
|
-
"whenToUse": "",
|
|
2902
|
-
"doNotUseWhen": "",
|
|
2940
|
+
"category": "map",
|
|
2941
|
+
"summary": "Map legend popover / panel with color swatches.",
|
|
2942
|
+
"whenToUse": "Show thematic legend; geo-map-shell includes this.",
|
|
2943
|
+
"doNotUseWhen": "Non-map legends in dashboards — use static markup / geo-status-tag.",
|
|
2903
2944
|
"howTo": "",
|
|
2904
2945
|
"tips": [],
|
|
2905
2946
|
"binding": "none",
|
|
@@ -2936,19 +2977,20 @@
|
|
|
2936
2977
|
"examples": [
|
|
2937
2978
|
{
|
|
2938
2979
|
"title": "Example",
|
|
2939
|
-
"lang": "html"
|
|
2980
|
+
"lang": "html",
|
|
2981
|
+
"code": "<geo-map-legend [(open)]=\"legendOpen\" [items]=\"legendItems\"></geo-map-legend>"
|
|
2940
2982
|
}
|
|
2941
2983
|
],
|
|
2942
|
-
"example": "<geo-map-legend></geo-map-legend>",
|
|
2984
|
+
"example": "<geo-map-legend [(open)]=\"legendOpen\" [items]=\"legendItems\"></geo-map-legend>",
|
|
2943
2985
|
"related": []
|
|
2944
2986
|
},
|
|
2945
2987
|
{
|
|
2946
2988
|
"name": "GeoMapLocateComponent",
|
|
2947
2989
|
"selector": "geo-map-locate",
|
|
2948
|
-
"category": "
|
|
2949
|
-
"summary": "
|
|
2950
|
-
"whenToUse": "",
|
|
2951
|
-
"doNotUseWhen": "",
|
|
2990
|
+
"category": "map",
|
|
2991
|
+
"summary": "Geolocation button (browser GPS) for the map view.",
|
|
2992
|
+
"whenToUse": "Locate-me control on custom map chrome.",
|
|
2993
|
+
"doNotUseWhen": "Inside geo-map-shell (already wired) unless building a custom shell.",
|
|
2952
2994
|
"howTo": "",
|
|
2953
2995
|
"tips": [],
|
|
2954
2996
|
"binding": "none",
|
|
@@ -2989,19 +3031,20 @@
|
|
|
2989
3031
|
"examples": [
|
|
2990
3032
|
{
|
|
2991
3033
|
"title": "Example",
|
|
2992
|
-
"lang": "html"
|
|
3034
|
+
"lang": "html",
|
|
3035
|
+
"code": "<geo-map-locate [controller]=\"ctrl\" (denied)=\"onDenied()\"></geo-map-locate>"
|
|
2993
3036
|
}
|
|
2994
3037
|
],
|
|
2995
|
-
"example": "<geo-map-locate></geo-map-locate>",
|
|
3038
|
+
"example": "<geo-map-locate [controller]=\"ctrl\" (denied)=\"onDenied()\"></geo-map-locate>",
|
|
2996
3039
|
"related": []
|
|
2997
3040
|
},
|
|
2998
3041
|
{
|
|
2999
3042
|
"name": "GeoMapLocationChipComponent",
|
|
3000
3043
|
"selector": "geo-map-location-chip",
|
|
3001
|
-
"category": "
|
|
3002
|
-
"summary": "
|
|
3003
|
-
"whenToUse": "",
|
|
3004
|
-
"doNotUseWhen": "",
|
|
3044
|
+
"category": "map",
|
|
3045
|
+
"summary": "Location breadcrumb chip shown on the map (ward / province).",
|
|
3046
|
+
"whenToUse": "Show current admin context on map chrome.",
|
|
3047
|
+
"doNotUseWhen": "Page breadcrumb — use geo-breadcrumb.",
|
|
3005
3048
|
"howTo": "",
|
|
3006
3049
|
"tips": [],
|
|
3007
3050
|
"binding": "none",
|
|
@@ -3026,19 +3069,20 @@
|
|
|
3026
3069
|
"examples": [
|
|
3027
3070
|
{
|
|
3028
3071
|
"title": "Example",
|
|
3029
|
-
"lang": "html"
|
|
3072
|
+
"lang": "html",
|
|
3073
|
+
"code": "<geo-map-location-chip label=\"Phường 1 — TP Đà Lạt, Lâm Đồng\"></geo-map-location-chip>"
|
|
3030
3074
|
}
|
|
3031
3075
|
],
|
|
3032
|
-
"example": "<geo-map-location-chip></geo-map-location-chip>",
|
|
3076
|
+
"example": "<geo-map-location-chip label=\"Phường 1 — TP Đà Lạt, Lâm Đồng\"></geo-map-location-chip>",
|
|
3033
3077
|
"related": []
|
|
3034
3078
|
},
|
|
3035
3079
|
{
|
|
3036
3080
|
"name": "GeoMapMeasureComponent",
|
|
3037
3081
|
"selector": "geo-map-measure",
|
|
3038
|
-
"category": "
|
|
3039
|
-
"summary": "
|
|
3040
|
-
"whenToUse": "",
|
|
3041
|
-
"doNotUseWhen": "",
|
|
3082
|
+
"category": "map",
|
|
3083
|
+
"summary": "Distance / area measure interaction on the map.",
|
|
3084
|
+
"whenToUse": "Measure tool mode; usually driven by toolbar via geo-map-shell.",
|
|
3085
|
+
"doNotUseWhen": "Static length labels without interaction.",
|
|
3042
3086
|
"howTo": "",
|
|
3043
3087
|
"tips": [],
|
|
3044
3088
|
"binding": "none",
|
|
@@ -3075,19 +3119,20 @@
|
|
|
3075
3119
|
"examples": [
|
|
3076
3120
|
{
|
|
3077
3121
|
"title": "Example",
|
|
3078
|
-
"lang": "html"
|
|
3122
|
+
"lang": "html",
|
|
3123
|
+
"code": "<geo-map-measure [controller]=\"ctrl\" [(mode)]=\"measureMode\"></geo-map-measure>"
|
|
3079
3124
|
}
|
|
3080
3125
|
],
|
|
3081
|
-
"example": "<geo-map-measure></geo-map-measure>",
|
|
3126
|
+
"example": "<geo-map-measure [controller]=\"ctrl\" [(mode)]=\"measureMode\"></geo-map-measure>",
|
|
3082
3127
|
"related": []
|
|
3083
3128
|
},
|
|
3084
3129
|
{
|
|
3085
3130
|
"name": "GeoMapOpacityComponent",
|
|
3086
3131
|
"selector": "geo-map-opacity",
|
|
3087
|
-
"category": "
|
|
3088
|
-
"summary": "
|
|
3089
|
-
"whenToUse": "",
|
|
3090
|
-
"doNotUseWhen": "",
|
|
3132
|
+
"category": "map",
|
|
3133
|
+
"summary": "Layer opacity slider bound to a map layer id.",
|
|
3134
|
+
"whenToUse": "Adjust overlay transparency in custom layer UI.",
|
|
3135
|
+
"doNotUseWhen": "Full layer list — use geo-map-layer-panel / layers drawer.",
|
|
3091
3136
|
"howTo": "",
|
|
3092
3137
|
"tips": [],
|
|
3093
3138
|
"binding": "none",
|
|
@@ -3136,19 +3181,20 @@
|
|
|
3136
3181
|
"examples": [
|
|
3137
3182
|
{
|
|
3138
3183
|
"title": "Example",
|
|
3139
|
-
"lang": "html"
|
|
3184
|
+
"lang": "html",
|
|
3185
|
+
"code": "<geo-map-opacity [controller]=\"ctrl\" layerId=\"demo-qhsdd-2020\" [(opacity)]=\"opacity\"></geo-map-opacity>"
|
|
3140
3186
|
}
|
|
3141
3187
|
],
|
|
3142
|
-
"example": "<geo-map-opacity></geo-map-opacity>",
|
|
3188
|
+
"example": "<geo-map-opacity [controller]=\"ctrl\" layerId=\"demo-qhsdd-2020\" [(opacity)]=\"opacity\"></geo-map-opacity>",
|
|
3143
3189
|
"related": []
|
|
3144
3190
|
},
|
|
3145
3191
|
{
|
|
3146
3192
|
"name": "GeoMapParcelPopupComponent",
|
|
3147
3193
|
"selector": "geo-map-parcel-popup",
|
|
3148
|
-
"category": "
|
|
3149
|
-
"summary": "
|
|
3150
|
-
"whenToUse": "",
|
|
3151
|
-
"doNotUseWhen": "",
|
|
3194
|
+
"category": "map",
|
|
3195
|
+
"summary": "Parcel detail popup (citizen / specialist audience).",
|
|
3196
|
+
"whenToUse": "Show thửa detail after search or map click.",
|
|
3197
|
+
"doNotUseWhen": "Full detail page — navigate to a route instead.",
|
|
3152
3198
|
"howTo": "",
|
|
3153
3199
|
"tips": [],
|
|
3154
3200
|
"binding": "none",
|
|
@@ -3212,19 +3258,20 @@
|
|
|
3212
3258
|
"examples": [
|
|
3213
3259
|
{
|
|
3214
3260
|
"title": "Example",
|
|
3215
|
-
"lang": "html"
|
|
3261
|
+
"lang": "html",
|
|
3262
|
+
"code": "<geo-map-parcel-popup\n [(open)]=\"parcelOpen\"\n [parcel]=\"selected\"\n audience=\"citizen\"\n (exportClick)=\"exportPdf($event)\"\n></geo-map-parcel-popup>"
|
|
3216
3263
|
}
|
|
3217
3264
|
],
|
|
3218
|
-
"example": "<geo-map-parcel-popup></geo-map-parcel-popup>",
|
|
3265
|
+
"example": "<geo-map-parcel-popup\n [(open)]=\"parcelOpen\"\n [parcel]=\"selected\"\n audience=\"citizen\"\n (exportClick)=\"exportPdf($event)\"\n></geo-map-parcel-popup>",
|
|
3219
3266
|
"related": []
|
|
3220
3267
|
},
|
|
3221
3268
|
{
|
|
3222
3269
|
"name": "GeoMapSearchComponent",
|
|
3223
3270
|
"selector": "geo-map-search",
|
|
3224
|
-
"category": "
|
|
3225
|
-
"summary": "
|
|
3226
|
-
"whenToUse": "",
|
|
3227
|
-
"doNotUseWhen": "",
|
|
3271
|
+
"category": "map",
|
|
3272
|
+
"summary": "Map search panel (owner / certificate / parcel / address / coordinates).",
|
|
3273
|
+
"whenToUse": "Tra cứu thửa on portal; prefer via geo-map-shell.",
|
|
3274
|
+
"doNotUseWhen": "Global app search unrelated to map.",
|
|
3228
3275
|
"howTo": "",
|
|
3229
3276
|
"tips": [],
|
|
3230
3277
|
"binding": "none",
|
|
@@ -3312,21 +3359,28 @@
|
|
|
3312
3359
|
"examples": [
|
|
3313
3360
|
{
|
|
3314
3361
|
"title": "Example",
|
|
3315
|
-
"lang": "html"
|
|
3362
|
+
"lang": "html",
|
|
3363
|
+
"code": "<geo-map-search\n [(open)]=\"searchOpen\"\n mode=\"parcel\"\n [results]=\"results\"\n (search)=\"runSearch($event)\"\n (resultSelect)=\"onSelect($event)\"\n></geo-map-search>"
|
|
3316
3364
|
}
|
|
3317
3365
|
],
|
|
3318
|
-
"example": "<geo-map-search></geo-map-search>",
|
|
3366
|
+
"example": "<geo-map-search\n [(open)]=\"searchOpen\"\n mode=\"parcel\"\n [results]=\"results\"\n (search)=\"runSearch($event)\"\n (resultSelect)=\"onSelect($event)\"\n></geo-map-search>",
|
|
3319
3367
|
"related": []
|
|
3320
3368
|
},
|
|
3321
3369
|
{
|
|
3322
3370
|
"name": "GeoMapShellComponent",
|
|
3323
3371
|
"selector": "geo-map-shell",
|
|
3324
|
-
"category": "
|
|
3325
|
-
"summary": "
|
|
3326
|
-
"whenToUse": "",
|
|
3327
|
-
"doNotUseWhen": "",
|
|
3328
|
-
"howTo": "",
|
|
3329
|
-
"tips": [
|
|
3372
|
+
"category": "map",
|
|
3373
|
+
"summary": "Full map portal chrome: search, ĐVHC, layers, legend, measure, basemap, parcel popup.",
|
|
3374
|
+
"whenToUse": "Public / specialist map portal pages (tra cứu quy hoạch). Prefer this over composing chrome by hand.",
|
|
3375
|
+
"doNotUseWhen": "Bare map embed without UI chrome — use geo-map only.",
|
|
3376
|
+
"howTo": "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.",
|
|
3377
|
+
"tips": [
|
|
3378
|
+
"Ưu tiên geo-map-shell thay vì tự ghép chrome.",
|
|
3379
|
+
"Peers bắt buộc: ol, proj4.",
|
|
3380
|
+
"demoSearch=true chỉ cho Storybook/demo — production phải false + API thật.",
|
|
3381
|
+
"parcelAudience: citizen | specialist.",
|
|
3382
|
+
"Đọc geo-map.md cho layer types / projections."
|
|
3383
|
+
],
|
|
3330
3384
|
"binding": "none",
|
|
3331
3385
|
"cva": false,
|
|
3332
3386
|
"path": "projects/geo-ui/src/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.ts",
|
|
@@ -3568,20 +3622,31 @@
|
|
|
3568
3622
|
],
|
|
3569
3623
|
"examples": [
|
|
3570
3624
|
{
|
|
3571
|
-
"title": "
|
|
3572
|
-
"lang": "html"
|
|
3625
|
+
"title": "Basic portal",
|
|
3626
|
+
"lang": "html",
|
|
3627
|
+
"code": "<geo-map-shell\n height=\"640px\"\n [demoSearch]=\"false\"\n parcelAudience=\"citizen\"\n [layers]=\"layers\"\n (mapReady)=\"ctrl = $event\"\n (search)=\"onSearch($event)\"\n></geo-map-shell>"
|
|
3628
|
+
},
|
|
3629
|
+
{
|
|
3630
|
+
"title": "Open search panel",
|
|
3631
|
+
"lang": "html",
|
|
3632
|
+
"code": "<geo-map-shell\n height=\"640px\"\n [demoSearch]=\"false\"\n [(searchOpen)]=\"searchOpen\"\n [(searchResults)]=\"results\"\n (search)=\"runQuery($event)\"\n (resultSelect)=\"onResult($event)\"\n></geo-map-shell>"
|
|
3573
3633
|
}
|
|
3574
3634
|
],
|
|
3575
|
-
"example": "<geo-map-shell></geo-map-shell>",
|
|
3576
|
-
"related": [
|
|
3635
|
+
"example": "<geo-map-shell\n height=\"640px\"\n [demoSearch]=\"false\"\n parcelAudience=\"citizen\"\n [layers]=\"layers\"\n (mapReady)=\"ctrl = $event\"\n (search)=\"onSearch($event)\"\n></geo-map-shell>",
|
|
3636
|
+
"related": [
|
|
3637
|
+
"geo-map",
|
|
3638
|
+
"geo-map-search",
|
|
3639
|
+
"geo-map-toolbar",
|
|
3640
|
+
"geo-map-layers-drawer"
|
|
3641
|
+
]
|
|
3577
3642
|
},
|
|
3578
3643
|
{
|
|
3579
3644
|
"name": "GeoMapSnapshotComponent",
|
|
3580
3645
|
"selector": "geo-map-snapshot",
|
|
3581
|
-
"category": "
|
|
3582
|
-
"summary": "
|
|
3583
|
-
"whenToUse": "",
|
|
3584
|
-
"doNotUseWhen": "",
|
|
3646
|
+
"category": "map",
|
|
3647
|
+
"summary": "Capture current map canvas to image / download.",
|
|
3648
|
+
"whenToUse": "Export screenshot control on map chrome.",
|
|
3649
|
+
"doNotUseWhen": "Server-side tile export pipelines.",
|
|
3585
3650
|
"howTo": "",
|
|
3586
3651
|
"tips": [],
|
|
3587
3652
|
"binding": "none",
|
|
@@ -3623,19 +3688,20 @@
|
|
|
3623
3688
|
"examples": [
|
|
3624
3689
|
{
|
|
3625
3690
|
"title": "Example",
|
|
3626
|
-
"lang": "html"
|
|
3691
|
+
"lang": "html",
|
|
3692
|
+
"code": "<geo-map-snapshot [controller]=\"ctrl\" (captured)=\"onShot($event)\"></geo-map-snapshot>"
|
|
3627
3693
|
}
|
|
3628
3694
|
],
|
|
3629
|
-
"example": "<geo-map-snapshot></geo-map-snapshot>",
|
|
3695
|
+
"example": "<geo-map-snapshot [controller]=\"ctrl\" (captured)=\"onShot($event)\"></geo-map-snapshot>",
|
|
3630
3696
|
"related": []
|
|
3631
3697
|
},
|
|
3632
3698
|
{
|
|
3633
3699
|
"name": "GeoMapSwipeComponent",
|
|
3634
3700
|
"selector": "geo-map-swipe",
|
|
3635
|
-
"category": "
|
|
3636
|
-
"summary": "
|
|
3637
|
-
"whenToUse": "",
|
|
3638
|
-
"doNotUseWhen": "",
|
|
3701
|
+
"category": "map",
|
|
3702
|
+
"summary": "Swipe compare control between two map layers.",
|
|
3703
|
+
"whenToUse": "Before/after planning vs current-use comparison.",
|
|
3704
|
+
"doNotUseWhen": "Simple opacity blend — use geo-map-opacity.",
|
|
3639
3705
|
"howTo": "",
|
|
3640
3706
|
"tips": [],
|
|
3641
3707
|
"binding": "none",
|
|
@@ -3672,19 +3738,20 @@
|
|
|
3672
3738
|
"examples": [
|
|
3673
3739
|
{
|
|
3674
3740
|
"title": "Example",
|
|
3675
|
-
"lang": "html"
|
|
3741
|
+
"lang": "html",
|
|
3742
|
+
"code": "<geo-map-swipe [controller]=\"ctrl\" [(active)]=\"swipeOn\" layerId=\"demo-qhsdd-2020\"></geo-map-swipe>"
|
|
3676
3743
|
}
|
|
3677
3744
|
],
|
|
3678
|
-
"example": "<geo-map-swipe></geo-map-swipe>",
|
|
3745
|
+
"example": "<geo-map-swipe [controller]=\"ctrl\" [(active)]=\"swipeOn\" layerId=\"demo-qhsdd-2020\"></geo-map-swipe>",
|
|
3679
3746
|
"related": []
|
|
3680
3747
|
},
|
|
3681
3748
|
{
|
|
3682
3749
|
"name": "GeoMapToolbarComponent",
|
|
3683
3750
|
"selector": "geo-map-toolbar",
|
|
3684
|
-
"category": "
|
|
3685
|
-
"summary": "
|
|
3686
|
-
"whenToUse": "",
|
|
3687
|
-
"doNotUseWhen": "",
|
|
3751
|
+
"category": "map",
|
|
3752
|
+
"summary": "Vertical map tool strip (search, pan, measure, layers, …).",
|
|
3753
|
+
"whenToUse": "Custom map layouts; usually included inside geo-map-shell.",
|
|
3754
|
+
"doNotUseWhen": "Full portal — use geo-map-shell.",
|
|
3688
3755
|
"howTo": "",
|
|
3689
3756
|
"tips": [],
|
|
3690
3757
|
"binding": "none",
|
|
@@ -3732,19 +3799,20 @@
|
|
|
3732
3799
|
"examples": [
|
|
3733
3800
|
{
|
|
3734
3801
|
"title": "Example",
|
|
3735
|
-
"lang": "html"
|
|
3802
|
+
"lang": "html",
|
|
3803
|
+
"code": "<geo-map-toolbar\n [controller]=\"ctrl\"\n [actions]=\"actions\"\n [(checkedMap)]=\"checked\"\n (actionClick)=\"onTool($event)\"\n></geo-map-toolbar>"
|
|
3736
3804
|
}
|
|
3737
3805
|
],
|
|
3738
|
-
"example": "<geo-map-toolbar></geo-map-toolbar>",
|
|
3806
|
+
"example": "<geo-map-toolbar\n [controller]=\"ctrl\"\n [actions]=\"actions\"\n [(checkedMap)]=\"checked\"\n (actionClick)=\"onTool($event)\"\n></geo-map-toolbar>",
|
|
3739
3807
|
"related": []
|
|
3740
3808
|
},
|
|
3741
3809
|
{
|
|
3742
3810
|
"name": "GeoMapZoomComponent",
|
|
3743
3811
|
"selector": "geo-map-zoom",
|
|
3744
|
-
"category": "
|
|
3745
|
-
"summary": "
|
|
3746
|
-
"whenToUse": "",
|
|
3747
|
-
"doNotUseWhen": "",
|
|
3812
|
+
"category": "map",
|
|
3813
|
+
"summary": "Zoom +/- and optional province / home navigation control.",
|
|
3814
|
+
"whenToUse": "Custom map chrome; geo-map-shell embeds this.",
|
|
3815
|
+
"doNotUseWhen": "Relying on OpenLayers built-in zoom alone is fine for bare geo-map.",
|
|
3748
3816
|
"howTo": "",
|
|
3749
3817
|
"tips": [],
|
|
3750
3818
|
"binding": "none",
|
|
@@ -3787,19 +3855,20 @@
|
|
|
3787
3855
|
"examples": [
|
|
3788
3856
|
{
|
|
3789
3857
|
"title": "Example",
|
|
3790
|
-
"lang": "html"
|
|
3858
|
+
"lang": "html",
|
|
3859
|
+
"code": "<geo-map-zoom [controller]=\"ctrl\" [showNav]=\"true\"></geo-map-zoom>"
|
|
3791
3860
|
}
|
|
3792
3861
|
],
|
|
3793
|
-
"example": "<geo-map-zoom></geo-map-zoom>",
|
|
3862
|
+
"example": "<geo-map-zoom [controller]=\"ctrl\" [showNav]=\"true\"></geo-map-zoom>",
|
|
3794
3863
|
"related": []
|
|
3795
3864
|
},
|
|
3796
3865
|
{
|
|
3797
3866
|
"name": "GeoOverlapResultComponent",
|
|
3798
3867
|
"selector": "geo-overlap-result",
|
|
3799
|
-
"category": "
|
|
3800
|
-
"summary": "
|
|
3801
|
-
"whenToUse": "",
|
|
3802
|
-
"doNotUseWhen": "",
|
|
3868
|
+
"category": "data",
|
|
3869
|
+
"summary": "Overlap analysis result list (planning type, area, percent).",
|
|
3870
|
+
"whenToUse": "Show giao cắt quy hoạch vs hiện trạng results.",
|
|
3871
|
+
"doNotUseWhen": "Generic tables — use geo-table.",
|
|
3803
3872
|
"howTo": "",
|
|
3804
3873
|
"tips": [],
|
|
3805
3874
|
"binding": "none",
|
|
@@ -3842,19 +3911,20 @@
|
|
|
3842
3911
|
"examples": [
|
|
3843
3912
|
{
|
|
3844
3913
|
"title": "Example",
|
|
3845
|
-
"lang": "html"
|
|
3914
|
+
"lang": "html",
|
|
3915
|
+
"code": "<geo-overlap-result [rows]=\"rows\" (rowClick)=\"focus($event)\"></geo-overlap-result>"
|
|
3846
3916
|
}
|
|
3847
3917
|
],
|
|
3848
|
-
"example": "<geo-overlap-result></geo-overlap-result>",
|
|
3918
|
+
"example": "<geo-overlap-result [rows]=\"rows\" (rowClick)=\"focus($event)\"></geo-overlap-result>",
|
|
3849
3919
|
"related": []
|
|
3850
3920
|
},
|
|
3851
3921
|
{
|
|
3852
3922
|
"name": "GeoPageHeaderComponent",
|
|
3853
3923
|
"selector": "geo-page-header",
|
|
3854
|
-
"category": "
|
|
3855
|
-
"summary": "
|
|
3856
|
-
"whenToUse": "",
|
|
3857
|
-
"doNotUseWhen": "",
|
|
3924
|
+
"category": "display",
|
|
3925
|
+
"summary": "Compact page header block (title + optional actions slot).",
|
|
3926
|
+
"whenToUse": "Section headers on dashboard / list pages.",
|
|
3927
|
+
"doNotUseWhen": "Full page title under breadcrumb — prefer geo-page-title.",
|
|
3858
3928
|
"howTo": "",
|
|
3859
3929
|
"tips": [],
|
|
3860
3930
|
"binding": "none",
|
|
@@ -3885,10 +3955,11 @@
|
|
|
3885
3955
|
"examples": [
|
|
3886
3956
|
{
|
|
3887
3957
|
"title": "Example",
|
|
3888
|
-
"lang": "html"
|
|
3958
|
+
"lang": "html",
|
|
3959
|
+
"code": "<geo-page-header title=\"Thống kê nhanh\"></geo-page-header>"
|
|
3889
3960
|
}
|
|
3890
3961
|
],
|
|
3891
|
-
"example": "<geo-page-header></geo-page-header>",
|
|
3962
|
+
"example": "<geo-page-header title=\"Thống kê nhanh\"></geo-page-header>",
|
|
3892
3963
|
"related": []
|
|
3893
3964
|
},
|
|
3894
3965
|
{
|
|
@@ -4346,7 +4417,7 @@
|
|
|
4346
4417
|
"selector": "geo-slider",
|
|
4347
4418
|
"category": "forms",
|
|
4348
4419
|
"summary": "Numeric range slider.",
|
|
4349
|
-
"whenToUse": "Continuous numeric value in a range.",
|
|
4420
|
+
"whenToUse": "Continuous numeric value in a range (opacity, percent).",
|
|
4350
4421
|
"doNotUseWhen": "Discrete small sets — use select/radio.",
|
|
4351
4422
|
"howTo": "Thanh trượt số liên tục. Two-way [(value)] / (valueChange); min/max/step; tipFormatter tùy chỉnh tooltip.",
|
|
4352
4423
|
"tips": [
|
|
@@ -4418,10 +4489,10 @@
|
|
|
4418
4489
|
{
|
|
4419
4490
|
"name": "GeoStatCardComponent",
|
|
4420
4491
|
"selector": "geo-stat-card",
|
|
4421
|
-
"category": "
|
|
4422
|
-
"summary": "
|
|
4423
|
-
"whenToUse": "",
|
|
4424
|
-
"doNotUseWhen": "",
|
|
4492
|
+
"category": "data",
|
|
4493
|
+
"summary": "KPI stat card (label, value, optional delta / icon).",
|
|
4494
|
+
"whenToUse": "Dashboard summary tiles.",
|
|
4495
|
+
"doNotUseWhen": "Detailed tables — use geo-table.",
|
|
4425
4496
|
"howTo": "",
|
|
4426
4497
|
"tips": [],
|
|
4427
4498
|
"binding": "none",
|
|
@@ -4500,10 +4571,11 @@
|
|
|
4500
4571
|
"examples": [
|
|
4501
4572
|
{
|
|
4502
4573
|
"title": "Example",
|
|
4503
|
-
"lang": "html"
|
|
4574
|
+
"lang": "html",
|
|
4575
|
+
"code": "<geo-stat-card label=\"Tổng thửa\" [value]=\"12450\" unit=\"thửa\"></geo-stat-card>"
|
|
4504
4576
|
}
|
|
4505
4577
|
],
|
|
4506
|
-
"example": "<geo-stat-card></geo-stat-card>",
|
|
4578
|
+
"example": "<geo-stat-card label=\"Tổng thửa\" [value]=\"12450\" unit=\"thửa\"></geo-stat-card>",
|
|
4507
4579
|
"related": []
|
|
4508
4580
|
},
|
|
4509
4581
|
{
|