@geoit/ui 0.0.8 → 0.1.1
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/ai/AGENTS.md +4 -0
- package/ai/README.md +4 -1
- package/ai/catalog.json +202 -56
- package/ai/components/geo-accordion.md +92 -0
- package/ai/components/geo-detail-view.md +91 -0
- package/ai/components/geo-map-admin-filter.md +0 -1
- package/ai/components/geo-map-legend.md +0 -1
- package/ai/components/geo-map-shell.md +3 -7
- package/ai/components/geo-switch.md +76 -0
- package/ai/components/geo-tree.md +0 -2
- package/ai/mockup.html +2 -2
- package/esm2022/lib/figma/geo-accordion/geo-accordion.component.mjs +67 -0
- package/esm2022/lib/figma/geo-accordion/geo-accordion.types.mjs +2 -0
- package/esm2022/lib/figma/geo-chart/geo-chart.component.mjs +3 -14
- package/esm2022/lib/figma/geo-detail-view/geo-detail-view.component.mjs +47 -0
- package/esm2022/lib/figma/geo-detail-view/geo-detail-view.types.mjs +2 -0
- package/esm2022/lib/figma/geo-list-page/geo-list-page.component.mjs +3 -3
- package/esm2022/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.mjs +3 -5
- package/esm2022/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.mjs +3 -3
- package/esm2022/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.mjs +3 -3
- package/esm2022/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.mjs +3 -5
- package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.mjs +16 -39
- package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.util.mjs +38 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.mjs +3 -3
- package/esm2022/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.mjs +2 -2
- package/esm2022/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.mjs +3 -3
- package/esm2022/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.mjs +23 -20
- package/esm2022/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.mjs +3 -3
- package/esm2022/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.mjs +3 -3
- package/esm2022/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.mjs +3 -3
- package/esm2022/lib/figma/geo-map/geo-map.constants.mjs +5 -5
- package/esm2022/lib/figma/geo-switch/geo-switch.component.mjs +44 -0
- package/esm2022/lib/figma/geo-tree/geo-tree.component.mjs +3 -17
- package/esm2022/lib/figma/index.mjs +6 -1
- package/fesm2022/geoit-ui.mjs +262 -130
- package/fesm2022/geoit-ui.mjs.map +1 -1
- package/lib/figma/geo-accordion/geo-accordion.component.d.ts +34 -0
- package/lib/figma/geo-accordion/geo-accordion.types.d.ts +7 -0
- package/lib/figma/geo-chart/geo-chart.component.d.ts +0 -9
- package/lib/figma/geo-detail-view/geo-detail-view.component.d.ts +30 -0
- package/lib/figma/geo-detail-view/geo-detail-view.types.d.ts +8 -0
- package/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.d.ts +1 -3
- package/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.d.ts +1 -3
- package/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.util.d.ts +16 -0
- package/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.d.ts +6 -14
- package/lib/figma/geo-map/geo-map.constants.d.ts +3 -3
- package/lib/figma/geo-switch/geo-switch.component.d.ts +25 -0
- package/lib/figma/geo-tree/geo-tree.component.d.ts +1 -5
- package/lib/figma/index.d.ts +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { QueryList, TemplateRef } from '@angular/core';
|
|
2
|
+
import { GeoAccordionItem } from './geo-accordion.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class GeoAccordionPanelDirective {
|
|
5
|
+
readonly key: import("@angular/core").InputSignal<string>;
|
|
6
|
+
readonly template: TemplateRef<any>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoAccordionPanelDirective, never>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<GeoAccordionPanelDirective, "[uiPanel]", never, { "key": { "alias": "uiPanel"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Collapsible panel group.
|
|
12
|
+
*
|
|
13
|
+
* @summary Nhóm panel thu gọn/mở rộng (nz-collapse); mỗi panel chiếu nội dung qua `[uiPanel]`.
|
|
14
|
+
* @whenToUse Gom nhiều nhóm thông tin dài trên cùng trang (FAQ, chi tiết theo mục).
|
|
15
|
+
* @doNotUseWhen Điều hướng giữa các view ngang hàng — use geo-tabs.
|
|
16
|
+
*/
|
|
17
|
+
export declare class GeoAccordionComponent {
|
|
18
|
+
readonly items: import("@angular/core").InputSignal<GeoAccordionItem[]>;
|
|
19
|
+
/** `true` → chỉ 1 panel mở tại một thời điểm (maps to `nzAccordion`). */
|
|
20
|
+
readonly accordion: import("@angular/core").InputSignal<boolean>;
|
|
21
|
+
readonly bordered: import("@angular/core").InputSignal<boolean>;
|
|
22
|
+
readonly ghost: import("@angular/core").InputSignal<boolean>;
|
|
23
|
+
readonly activeKeys: import("@angular/core").ModelSignal<string[]>;
|
|
24
|
+
readonly panelChange: import("@angular/core").OutputEmitterRef<{
|
|
25
|
+
key: string;
|
|
26
|
+
active: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
panelTemplates: QueryList<GeoAccordionPanelDirective>;
|
|
29
|
+
isActive(key: string): boolean;
|
|
30
|
+
onActiveChange(key: string, active: boolean): void;
|
|
31
|
+
getTemplate(key: string): TemplateRef<unknown> | null;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoAccordionComponent, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoAccordionComponent, "geo-accordion", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "accordion": { "alias": "accordion"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "ghost": { "alias": "ghost"; "required": false; "isSignal": true; }; "activeKeys": { "alias": "activeKeys"; "required": false; "isSignal": true; }; }, { "activeKeys": "activeKeysChange"; "panelChange": "panelChange"; }, ["panelTemplates"], never, true, never>;
|
|
34
|
+
}
|
|
@@ -32,15 +32,6 @@ export declare class GeoChartComponent {
|
|
|
32
32
|
percent: number;
|
|
33
33
|
}[]>;
|
|
34
34
|
colorOf(item: GeoChartDatum, index: number): string;
|
|
35
|
-
/**
|
|
36
|
-
* `@for` track dùng qua method thay vì `item.id ?? item.label` trực tiếp trong template —
|
|
37
|
-
* Angular linker (18.2.14) sinh sai scope biến tạm cho track expression chứa `??` khi bị
|
|
38
|
-
* hoist lên module scope, gây `ReferenceError: tmp_x_0 is not defined` lúc chạy.
|
|
39
|
-
*/
|
|
40
|
-
trackDatum(item: GeoChartDatum): string;
|
|
41
|
-
trackSegment(seg: {
|
|
42
|
-
datum: GeoChartDatum;
|
|
43
|
-
}): string;
|
|
44
35
|
barWidth(value: number): string;
|
|
45
36
|
setSort(next: GeoChartSort): void;
|
|
46
37
|
onSegment(datum: GeoChartDatum, index: number): void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { QueryList, TemplateRef } from '@angular/core';
|
|
2
|
+
import { GeoDetailViewItem } from './geo-detail-view.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export type GeoDetailViewLayout = 'horizontal' | 'vertical';
|
|
5
|
+
export type GeoDetailViewSize = 'default' | 'small';
|
|
6
|
+
export declare class GeoDetailViewItemDirective {
|
|
7
|
+
readonly key: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly template: TemplateRef<any>;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoDetailViewItemDirective, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<GeoDetailViewItemDirective, "[uiDetailItem]", never, { "key": { "alias": "uiDetailItem"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Read-only key/value grid for viewing entity details.
|
|
14
|
+
*
|
|
15
|
+
* @summary Lưới label/value chỉ đọc (nz-descriptions); value tùy biến qua `[uiDetailItem]`.
|
|
16
|
+
* @whenToUse Trang/khối xem chi tiết hồ sơ, thửa đất, người dùng… (không chỉnh sửa).
|
|
17
|
+
* @doNotUseWhen Cần nhập liệu — use geo-input/geo-select trong form.
|
|
18
|
+
*/
|
|
19
|
+
export declare class GeoDetailViewComponent {
|
|
20
|
+
readonly title: import("@angular/core").InputSignal<string>;
|
|
21
|
+
readonly items: import("@angular/core").InputSignal<GeoDetailViewItem[]>;
|
|
22
|
+
readonly column: import("@angular/core").InputSignal<number>;
|
|
23
|
+
readonly bordered: import("@angular/core").InputSignal<boolean>;
|
|
24
|
+
readonly layout: import("@angular/core").InputSignal<GeoDetailViewLayout>;
|
|
25
|
+
readonly size: import("@angular/core").InputSignal<GeoDetailViewSize>;
|
|
26
|
+
itemTemplates: QueryList<GeoDetailViewItemDirective>;
|
|
27
|
+
getTemplate(key: string): TemplateRef<unknown> | null;
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoDetailViewComponent, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoDetailViewComponent, "geo-detail-view", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "column": { "alias": "column"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, ["itemTemplates"], never, true, never>;
|
|
30
|
+
}
|
|
@@ -11,8 +11,6 @@ export declare class GeoMapAdminFilterComponent {
|
|
|
11
11
|
readonly open: import("@angular/core").ModelSignal<boolean>;
|
|
12
12
|
readonly title: import("@angular/core").InputSignal<string>;
|
|
13
13
|
readonly nodes: import("@angular/core").InputSignal<GeoTreeNode[]>;
|
|
14
|
-
/** `single` — chọn đúng 1 xã/phường (BR-06-03); `multi` — checkbox nhiều cấp (mặc định). */
|
|
15
|
-
readonly selectionMode: import("@angular/core").InputSignal<"multi" | "single">;
|
|
16
14
|
readonly checkedKeys: import("@angular/core").ModelSignal<(string | number)[]>;
|
|
17
15
|
readonly expandedKeys: import("@angular/core").ModelSignal<(string | number)[]>;
|
|
18
16
|
readonly apply: import("@angular/core").OutputEmitterRef<(string | number)[]>;
|
|
@@ -26,5 +24,5 @@ export declare class GeoMapAdminFilterComponent {
|
|
|
26
24
|
onFitProvince(): void;
|
|
27
25
|
close(): void;
|
|
28
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<GeoMapAdminFilterComponent, never>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapAdminFilterComponent, "geo-map-admin-filter", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "
|
|
27
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapAdminFilterComponent, "geo-map-admin-filter", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "checkedKeys": { "alias": "checkedKeys"; "required": false; "isSignal": true; }; "expandedKeys": { "alias": "expandedKeys"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "checkedKeys": "checkedKeysChange"; "expandedKeys": "expandedKeysChange"; "apply": "apply"; "reset": "reset"; "fitProvince": "fitProvince"; "closed": "closed"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
30
28
|
}
|
|
@@ -10,11 +10,9 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
export declare class GeoMapLegendComponent {
|
|
11
11
|
readonly title: import("@angular/core").InputSignal<string>;
|
|
12
12
|
readonly items: import("@angular/core").InputSignal<GeoMapLegendItem[]>;
|
|
13
|
-
/** True khi danh mục chú giải không tải được (`ERR_MAP_LEGEND_CATALOG_MISSING`). */
|
|
14
|
-
readonly catalogMissing: import("@angular/core").InputSignal<boolean>;
|
|
15
13
|
readonly open: import("@angular/core").ModelSignal<boolean>;
|
|
16
14
|
readonly closed: import("@angular/core").OutputEmitterRef<void>;
|
|
17
15
|
onClose(): void;
|
|
18
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<GeoMapLegendComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapLegendComponent, "geo-map-legend", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapLegendComponent, "geo-map-legend", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, never, true, never>;
|
|
20
18
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GeoMapController } from '../../geo-map.controller';
|
|
2
|
+
import type { GeoMapLocateErrorReason } from '../../geo-map.types';
|
|
3
|
+
export interface GeoMapLocateCallbacks {
|
|
4
|
+
onLocated?: (lonLat: [number, number]) => void;
|
|
5
|
+
onDenied?: () => void;
|
|
6
|
+
onError?: (error: {
|
|
7
|
+
reason: GeoMapLocateErrorReason;
|
|
8
|
+
message?: string;
|
|
9
|
+
}) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Shared browser-geolocation trigger — centers `ctrl` on the user and reports the outcome.
|
|
13
|
+
* Used by both `geo-map-locate` (standalone button) and `geo-map-shell`'s built-in locate
|
|
14
|
+
* toolbar action so the two never drift on error-reason mapping.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runGeoMapLocate(ctrl: GeoMapController, callbacks: GeoMapLocateCallbacks): void;
|
|
@@ -13,7 +13,6 @@ export declare class GeoMapShellComponent {
|
|
|
13
13
|
private readonly destroyRef;
|
|
14
14
|
private readonly snapshotRef;
|
|
15
15
|
private readonly zoomRef;
|
|
16
|
-
private readonly locateRef;
|
|
17
16
|
readonly center: import("@angular/core").InputSignal<number[]>;
|
|
18
17
|
readonly zoom: import("@angular/core").InputSignal<number>;
|
|
19
18
|
readonly height: import("@angular/core").InputSignal<string>;
|
|
@@ -23,19 +22,12 @@ export declare class GeoMapShellComponent {
|
|
|
23
22
|
/** Extra overlays merged after demo thematic + traffic. */
|
|
24
23
|
readonly layers: import("@angular/core").InputSignal<GeoMapLayerConfig[]>;
|
|
25
24
|
readonly legendItems: import("@angular/core").InputSignal<GeoMapLegendItem[]>;
|
|
25
|
+
/** Host app sets true when the legend catalog (loại đất/ký hiệu/màu) failed to load. */
|
|
26
|
+
readonly legendCatalogMissing: import("@angular/core").InputSignal<boolean>;
|
|
26
27
|
readonly showNav: import("@angular/core").InputSignal<boolean>;
|
|
27
28
|
readonly includeDemoLayers: import("@angular/core").InputSignal<boolean>;
|
|
28
29
|
readonly adminNodes: import("@angular/core").InputSignal<GeoTreeNode[]>;
|
|
29
|
-
/** `single` — chọn đúng 1 xã/phường (BR-06-03); `multi` — checkbox nhiều cấp (mặc định). */
|
|
30
|
-
readonly adminSelectionMode: import("@angular/core").InputSignal<"multi" | "single">;
|
|
31
30
|
readonly locationLabel: import("@angular/core").InputSignal<string>;
|
|
32
|
-
/**
|
|
33
|
-
* Ghi chú pháp lý hiển thị khi đang đo (BR-10-03). `null` ẩn ghi chú —
|
|
34
|
-
* mặc định giữ nguyên câu chữ đã dùng ở `qh-map-shell`.
|
|
35
|
-
*/
|
|
36
|
-
readonly measureDisclaimer: import("@angular/core").InputSignal<string | null>;
|
|
37
|
-
/** True khi danh mục chú giải không tải được (`ERR_MAP_LEGEND_CATALOG_MISSING`). */
|
|
38
|
-
readonly legendCatalogMissing: import("@angular/core").InputSignal<boolean>;
|
|
39
31
|
readonly parcelAudience: import("@angular/core").InputSignal<GeoMapParcelAudience>;
|
|
40
32
|
readonly provinceExtent: import("@angular/core").InputSignal<readonly [number, number, number, number]>;
|
|
41
33
|
/** When true, shell seeds mock search results (Storybook / demos). */
|
|
@@ -62,7 +54,7 @@ export declare class GeoMapShellComponent {
|
|
|
62
54
|
readonly adminExpandedKeys: import("@angular/core").ModelSignal<(string | number)[]>;
|
|
63
55
|
readonly mapReady: import("@angular/core").OutputEmitterRef<GeoMapController>;
|
|
64
56
|
readonly mapClick: import("@angular/core").OutputEmitterRef<GeoMapClickEvent>;
|
|
65
|
-
readonly located: import("@angular/core").OutputEmitterRef<
|
|
57
|
+
readonly located: import("@angular/core").OutputEmitterRef<void>;
|
|
66
58
|
readonly locateDenied: import("@angular/core").OutputEmitterRef<void>;
|
|
67
59
|
readonly locateError: import("@angular/core").OutputEmitterRef<{
|
|
68
60
|
reason: GeoMapLocateErrorReason;
|
|
@@ -74,8 +66,6 @@ export declare class GeoMapShellComponent {
|
|
|
74
66
|
readonly resultSelect: import("@angular/core").OutputEmitterRef<GeoMapSearchResultItem>;
|
|
75
67
|
readonly parcelExport: import("@angular/core").OutputEmitterRef<GeoMapParcelDetail>;
|
|
76
68
|
readonly adminApply: import("@angular/core").OutputEmitterRef<(string | number)[]>;
|
|
77
|
-
readonly snapshotCaptured: import("@angular/core").OutputEmitterRef<void>;
|
|
78
|
-
readonly snapshotError: import("@angular/core").OutputEmitterRef<unknown>;
|
|
79
69
|
readonly controller: import("@angular/core").WritableSignal<GeoMapController | null>;
|
|
80
70
|
/** Active map pointer tool (`none` = default arrow cursor). */
|
|
81
71
|
readonly toolMode: import("@angular/core").WritableSignal<"area" | "none" | "distance" | "pan">;
|
|
@@ -110,11 +100,13 @@ export declare class GeoMapShellComponent {
|
|
|
110
100
|
private enterPanMode;
|
|
111
101
|
private exitToolMode;
|
|
112
102
|
private applyPanCursor;
|
|
103
|
+
/** Backing action for the `locate` toolbar entry (`GEO_MAP_LOCATE_TOOLBAR_ACTION`). */
|
|
104
|
+
private triggerLocate;
|
|
113
105
|
private setMapCursor;
|
|
114
106
|
private bindPanCursor;
|
|
115
107
|
private unbindPanCursor;
|
|
116
108
|
private buildDemoSearchResults;
|
|
117
109
|
private ensureSwipeOverlayVisible;
|
|
118
110
|
static ɵfac: i0.ɵɵFactoryDeclaration<GeoMapShellComponent, never>;
|
|
119
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapShellComponent, "geo-map-shell", never, { "center": { "alias": "center"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "showMousePosition": { "alias": "showMousePosition"; "required": false; "isSignal": true; }; "basemapOptions": { "alias": "basemapOptions"; "required": false; "isSignal": true; }; "toolbarActions": { "alias": "toolbarActions"; "required": false; "isSignal": true; }; "layers": { "alias": "layers"; "required": false; "isSignal": true; }; "legendItems": { "alias": "legendItems"; "required": false; "isSignal": true; }; "
|
|
111
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoMapShellComponent, "geo-map-shell", never, { "center": { "alias": "center"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "showMousePosition": { "alias": "showMousePosition"; "required": false; "isSignal": true; }; "basemapOptions": { "alias": "basemapOptions"; "required": false; "isSignal": true; }; "toolbarActions": { "alias": "toolbarActions"; "required": false; "isSignal": true; }; "layers": { "alias": "layers"; "required": false; "isSignal": true; }; "legendItems": { "alias": "legendItems"; "required": false; "isSignal": true; }; "legendCatalogMissing": { "alias": "legendCatalogMissing"; "required": false; "isSignal": true; }; "showNav": { "alias": "showNav"; "required": false; "isSignal": true; }; "includeDemoLayers": { "alias": "includeDemoLayers"; "required": false; "isSignal": true; }; "adminNodes": { "alias": "adminNodes"; "required": false; "isSignal": true; }; "locationLabel": { "alias": "locationLabel"; "required": false; "isSignal": true; }; "parcelAudience": { "alias": "parcelAudience"; "required": false; "isSignal": true; }; "provinceExtent": { "alias": "provinceExtent"; "required": false; "isSignal": true; }; "demoSearch": { "alias": "demoSearch"; "required": false; "isSignal": true; }; "homeMode": { "alias": "homeMode"; "required": false; "isSignal": true; }; "basemapId": { "alias": "basemapId"; "required": false; "isSignal": true; }; "measureMode": { "alias": "measureMode"; "required": false; "isSignal": true; }; "checkedMap": { "alias": "checkedMap"; "required": false; "isSignal": true; }; "layersOpen": { "alias": "layersOpen"; "required": false; "isSignal": true; }; "legendOpen": { "alias": "legendOpen"; "required": false; "isSignal": true; }; "helpOpen": { "alias": "helpOpen"; "required": false; "isSignal": true; }; "swipeActive": { "alias": "swipeActive"; "required": false; "isSignal": true; }; "searchOpen": { "alias": "searchOpen"; "required": false; "isSignal": true; }; "adminFilterOpen": { "alias": "adminFilterOpen"; "required": false; "isSignal": true; }; "parcelOpen": { "alias": "parcelOpen"; "required": false; "isSignal": true; }; "managedLayers": { "alias": "managedLayers"; "required": false; "isSignal": true; }; "searchResults": { "alias": "searchResults"; "required": false; "isSignal": true; }; "selectedParcel": { "alias": "selectedParcel"; "required": false; "isSignal": true; }; "adminCheckedKeys": { "alias": "adminCheckedKeys"; "required": false; "isSignal": true; }; "adminExpandedKeys": { "alias": "adminExpandedKeys"; "required": false; "isSignal": true; }; }, { "basemapId": "basemapIdChange"; "measureMode": "measureModeChange"; "checkedMap": "checkedMapChange"; "layersOpen": "layersOpenChange"; "legendOpen": "legendOpenChange"; "helpOpen": "helpOpenChange"; "swipeActive": "swipeActiveChange"; "searchOpen": "searchOpenChange"; "adminFilterOpen": "adminFilterOpenChange"; "parcelOpen": "parcelOpenChange"; "managedLayers": "managedLayersChange"; "searchResults": "searchResultsChange"; "selectedParcel": "selectedParcelChange"; "adminCheckedKeys": "adminCheckedKeysChange"; "adminExpandedKeys": "adminExpandedKeysChange"; "mapReady": "mapReady"; "mapClick": "mapClick"; "located": "located"; "locateDenied": "locateDenied"; "locateError": "locateError"; "actionClick": "actionClick"; "search": "search"; "searchReset": "searchReset"; "resultSelect": "resultSelect"; "parcelExport": "parcelExport"; "adminApply": "adminApply"; }, never, ["[geoMapShellTopRight]"], true, never>;
|
|
120
112
|
}
|
|
@@ -40,9 +40,9 @@ export declare const GEO_MAP_TRAFFIC_OVERLAY: GeoMapXyzLayerConfig;
|
|
|
40
40
|
/** Built-in toolbar actions — Figma map chrome (Dat Dai Lam Dong 2026). */
|
|
41
41
|
export declare const GEO_MAP_DEFAULT_TOOLBAR_ACTIONS: GeoMapToolbarAction[];
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* `
|
|
43
|
+
* Built-in "Vị trí của tôi" toolbar action — pair with `id: 'locate'` handling that
|
|
44
|
+
* `geo-map-shell` already resolves internally (geolocate + emit `located`/`locateError`).
|
|
45
|
+
* Not included in `GEO_MAP_DEFAULT_TOOLBAR_ACTIONS`; host apps opt in explicitly.
|
|
46
46
|
*/
|
|
47
47
|
export declare const GEO_MAP_LOCATE_TOOLBAR_ACTION: GeoMapToolbarAction;
|
|
48
48
|
/**
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export type GeoSwitchSize = 'default' | 'small';
|
|
3
|
+
/**
|
|
4
|
+
* On/off toggle with optional trailing label.
|
|
5
|
+
*
|
|
6
|
+
* @summary Công tắc bật/tắt (nz-switch); nhãn tùy chọn bên cạnh.
|
|
7
|
+
* @whenToUse Bật/tắt trạng thái tức thì (không cần Lưu) — ví dụ hiển thị/ẩn, kích hoạt.
|
|
8
|
+
* @doNotUseWhen Lựa chọn trong form cần submit — use geo-checkbox.
|
|
9
|
+
*/
|
|
10
|
+
export declare class GeoSwitchComponent {
|
|
11
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
12
|
+
/** Two-way: `[(checked)]`. */
|
|
13
|
+
readonly checked: import("@angular/core").ModelSignal<boolean>;
|
|
14
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
15
|
+
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
16
|
+
readonly size: import("@angular/core").InputSignal<GeoSwitchSize>;
|
|
17
|
+
/** Text hiển thị trong pill khi bật. */
|
|
18
|
+
readonly checkedLabel: import("@angular/core").InputSignal<string>;
|
|
19
|
+
/** Text hiển thị trong pill khi tắt. */
|
|
20
|
+
readonly uncheckedLabel: import("@angular/core").InputSignal<string>;
|
|
21
|
+
onChange(value: boolean): void;
|
|
22
|
+
onLabelClick(): void;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoSwitchComponent, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoSwitchComponent, "geo-switch", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "checkedLabel": { "alias": "checkedLabel"; "required": false; "isSignal": true; }; "uncheckedLabel": { "alias": "uncheckedLabel"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
25
|
+
}
|
|
@@ -8,15 +8,11 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
export declare class GeoTreeComponent {
|
|
9
9
|
readonly nodes: import("@angular/core").InputSignal<GeoTreeNode[]>;
|
|
10
10
|
readonly checkable: import("@angular/core").InputSignal<boolean>;
|
|
11
|
-
/** `single` — click chọn đúng 1 node (BR-06-03); `multi` — giữ hành vi checkbox hiện có. */
|
|
12
|
-
readonly selectionMode: import("@angular/core").InputSignal<"multi" | "single">;
|
|
13
11
|
readonly checkedKeys: import("@angular/core").ModelSignal<(string | number)[]>;
|
|
14
|
-
readonly selectedKeys: import("@angular/core").ModelSignal<(string | number)[]>;
|
|
15
12
|
readonly expandedKeys: import("@angular/core").ModelSignal<(string | number)[]>;
|
|
16
13
|
readonly showLine: import("@angular/core").InputSignal<boolean>;
|
|
17
14
|
readonly blockNode: import("@angular/core").InputSignal<boolean>;
|
|
18
15
|
readonly nodeClick: import("@angular/core").OutputEmitterRef<NzFormatEmitEvent>;
|
|
19
|
-
onNodeClick(event: NzFormatEmitEvent): void;
|
|
20
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<GeoTreeComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GeoTreeComponent, "geo-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GeoTreeComponent, "geo-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "checkedKeys": { "alias": "checkedKeys"; "required": false; "isSignal": true; }; "expandedKeys": { "alias": "expandedKeys"; "required": false; "isSignal": true; }; "showLine": { "alias": "showLine"; "required": false; "isSignal": true; }; "blockNode": { "alias": "blockNode"; "required": false; "isSignal": true; }; }, { "checkedKeys": "checkedKeysChange"; "expandedKeys": "expandedKeysChange"; "nodeClick": "nodeClick"; }, never, never, true, never>;
|
|
22
18
|
}
|
package/lib/figma/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './geo-breadcrumb/geo-breadcrumb.types';
|
|
|
6
6
|
export * from './geo-button/geo-button.component';
|
|
7
7
|
export * from './geo-button/geo-button.types';
|
|
8
8
|
export * from './geo-checkbox/geo-checkbox.component';
|
|
9
|
+
export * from './geo-switch/geo-switch.component';
|
|
9
10
|
export * from './geo-confirm-modal/geo-confirm-modal.component';
|
|
10
11
|
export * from './geo-confirm-modal/geo-confirm-modal.types';
|
|
11
12
|
export * from './geo-date-picker/geo-date-picker.component';
|
|
@@ -42,6 +43,8 @@ export * from './geo-layout/header/geo-layout-header.component';
|
|
|
42
43
|
export * from './geo-layout/footer/geo-layout-footer.component';
|
|
43
44
|
export * from './geo-tabs/geo-tabs.component';
|
|
44
45
|
export * from './geo-tabs/geo-tabs.types';
|
|
46
|
+
export * from './geo-accordion/geo-accordion.component';
|
|
47
|
+
export * from './geo-accordion/geo-accordion.types';
|
|
45
48
|
export * from './geo-table/geo-table.component';
|
|
46
49
|
export * from './geo-table/geo-table.types';
|
|
47
50
|
export * from './geo-table/geo-table-filter/geo-table-filter.component';
|
|
@@ -66,6 +69,8 @@ export * from './geo-chart/geo-chart.component';
|
|
|
66
69
|
export * from './geo-chart/geo-chart.types';
|
|
67
70
|
export * from './geo-empty-state/geo-empty-state.component';
|
|
68
71
|
export * from './geo-page-header/geo-page-header.component';
|
|
72
|
+
export * from './geo-detail-view/geo-detail-view.component';
|
|
73
|
+
export * from './geo-detail-view/geo-detail-view.types';
|
|
69
74
|
export * from './geo-login/geo-login.component';
|
|
70
75
|
export * from './geo-login/geo-login.types';
|
|
71
76
|
export * from './geo-forgot-password/geo-forgot-password.component';
|