@geoit/ui 0.0.6 → 0.0.8
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/README.md +1 -1
- package/ai/catalog.json +64 -2
- package/ai/components/geo-map-admin-filter.md +1 -0
- package/ai/components/geo-map-legend.md +1 -0
- package/ai/components/geo-map-shell.md +7 -0
- package/ai/components/geo-tree.md +2 -0
- package/ai/mockup.html +2 -2
- package/esm2022/lib/figma/geo-chart/geo-chart.component.mjs +14 -3
- 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 +5 -3
- 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 +5 -3
- package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.mjs +3 -3
- 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 +22 -3
- 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 +13 -1
- package/esm2022/lib/figma/geo-tree/geo-tree.component.mjs +17 -3
- package/fesm2022/geoit-ui.mjs +90 -31
- package/fesm2022/geoit-ui.mjs.map +1 -1
- package/lib/figma/geo-chart/geo-chart.component.d.ts +9 -0
- package/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.d.ts +3 -1
- package/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.d.ts +3 -1
- package/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.d.ts +19 -2
- package/lib/figma/geo-map/geo-map.constants.d.ts +6 -0
- package/lib/figma/geo-tree/geo-tree.component.d.ts +5 -1
- package/package.json +1 -1
package/fesm2022/geoit-ui.mjs
CHANGED
|
@@ -3229,17 +3229,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3229
3229
|
class GeoTreeComponent {
|
|
3230
3230
|
nodes = input([]);
|
|
3231
3231
|
checkable = input(false);
|
|
3232
|
+
/** `single` — click chọn đúng 1 node (BR-06-03); `multi` — giữ hành vi checkbox hiện có. */
|
|
3233
|
+
selectionMode = input('multi');
|
|
3232
3234
|
checkedKeys = model([]);
|
|
3235
|
+
selectedKeys = model([]);
|
|
3233
3236
|
expandedKeys = model([]);
|
|
3234
3237
|
showLine = input(false);
|
|
3235
3238
|
blockNode = input(false);
|
|
3236
3239
|
nodeClick = output();
|
|
3240
|
+
onNodeClick(event) {
|
|
3241
|
+
this.nodeClick.emit(event);
|
|
3242
|
+
if (this.selectionMode() !== 'single') {
|
|
3243
|
+
return;
|
|
3244
|
+
}
|
|
3245
|
+
const key = event.node?.key;
|
|
3246
|
+
if (key == null) {
|
|
3247
|
+
return;
|
|
3248
|
+
}
|
|
3249
|
+
this.selectedKeys.set([key]);
|
|
3250
|
+
}
|
|
3237
3251
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3238
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoTreeComponent, isStandalone: true, selector: "geo-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, checkable: { classPropertyName: "checkable", publicName: "checkable", isSignal: true, isRequired: false, transformFunction: null }, checkedKeys: { classPropertyName: "checkedKeys", publicName: "checkedKeys", isSignal: true, isRequired: false, transformFunction: null }, expandedKeys: { classPropertyName: "expandedKeys", publicName: "expandedKeys", isSignal: true, isRequired: false, transformFunction: null }, showLine: { classPropertyName: "showLine", publicName: "showLine", isSignal: true, isRequired: false, transformFunction: null }, blockNode: { classPropertyName: "blockNode", publicName: "blockNode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedKeys: "checkedKeysChange", expandedKeys: "expandedKeysChange", nodeClick: "nodeClick" }, host: { classAttribute: "geo-tree-host" }, ngImport: i0, template: "<div class=\"geo-tree\">\n <nz-tree\n [nzData]=\"nodes()\"\n [nzCheckable]=\"checkable()\"\n [nzCheckedKeys]=\"checkedKeys()\"\n [nzExpandedKeys]=\"expandedKeys()\"\n [nzShowLine]=\"showLine()\"\n [nzBlockNode]=\"blockNode()\"\n (nzCheckedKeysChange)=\"checkedKeys.set($event)\"\n (nzExpandedKeysChange)=\"expandedKeys.set($event)\"\n (nzClick)=\"
|
|
3252
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoTreeComponent, isStandalone: true, selector: "geo-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, checkable: { classPropertyName: "checkable", publicName: "checkable", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, checkedKeys: { classPropertyName: "checkedKeys", publicName: "checkedKeys", isSignal: true, isRequired: false, transformFunction: null }, selectedKeys: { classPropertyName: "selectedKeys", publicName: "selectedKeys", isSignal: true, isRequired: false, transformFunction: null }, expandedKeys: { classPropertyName: "expandedKeys", publicName: "expandedKeys", isSignal: true, isRequired: false, transformFunction: null }, showLine: { classPropertyName: "showLine", publicName: "showLine", isSignal: true, isRequired: false, transformFunction: null }, blockNode: { classPropertyName: "blockNode", publicName: "blockNode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedKeys: "checkedKeysChange", selectedKeys: "selectedKeysChange", expandedKeys: "expandedKeysChange", nodeClick: "nodeClick" }, host: { classAttribute: "geo-tree-host" }, ngImport: i0, template: "<div class=\"geo-tree\">\n <nz-tree\n [nzData]=\"nodes()\"\n [nzCheckable]=\"checkable()\"\n [nzCheckedKeys]=\"checkedKeys()\"\n [nzSelectedKeys]=\"selectedKeys()\"\n [nzMultiple]=\"false\"\n [nzExpandedKeys]=\"expandedKeys()\"\n [nzShowLine]=\"showLine()\"\n [nzBlockNode]=\"blockNode()\"\n (nzCheckedKeysChange)=\"checkedKeys.set($event)\"\n (nzExpandedKeysChange)=\"expandedKeys.set($event)\"\n (nzClick)=\"onNodeClick($event)\"\n ></nz-tree>\n</div>\n", styles: [".geo-tree-host{display:block;width:100%}.geo-tree{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: NzTreeModule }, { kind: "component", type: i1$a.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckBoxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3239
3253
|
}
|
|
3240
3254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoTreeComponent, decorators: [{
|
|
3241
3255
|
type: Component,
|
|
3242
|
-
args: [{ selector: 'geo-tree', standalone: true, imports: [NzTreeModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'geo-tree-host' }, template: "<div class=\"geo-tree\">\n <nz-tree\n [nzData]=\"nodes()\"\n [nzCheckable]=\"checkable()\"\n [nzCheckedKeys]=\"checkedKeys()\"\n [nzExpandedKeys]=\"expandedKeys()\"\n [nzShowLine]=\"showLine()\"\n [nzBlockNode]=\"blockNode()\"\n (nzCheckedKeysChange)=\"checkedKeys.set($event)\"\n (nzExpandedKeysChange)=\"expandedKeys.set($event)\"\n (nzClick)=\"
|
|
3256
|
+
args: [{ selector: 'geo-tree', standalone: true, imports: [NzTreeModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'geo-tree-host' }, template: "<div class=\"geo-tree\">\n <nz-tree\n [nzData]=\"nodes()\"\n [nzCheckable]=\"checkable()\"\n [nzCheckedKeys]=\"checkedKeys()\"\n [nzSelectedKeys]=\"selectedKeys()\"\n [nzMultiple]=\"false\"\n [nzExpandedKeys]=\"expandedKeys()\"\n [nzShowLine]=\"showLine()\"\n [nzBlockNode]=\"blockNode()\"\n (nzCheckedKeysChange)=\"checkedKeys.set($event)\"\n (nzExpandedKeysChange)=\"expandedKeys.set($event)\"\n (nzClick)=\"onNodeClick($event)\"\n ></nz-tree>\n</div>\n", styles: [".geo-tree-host{display:block;width:100%}.geo-tree{width:100%}\n"] }]
|
|
3243
3257
|
}] });
|
|
3244
3258
|
|
|
3245
3259
|
const STORAGE_PREFIX = 'geo-column-picker:';
|
|
@@ -3597,6 +3611,17 @@ class GeoChartComponent {
|
|
|
3597
3611
|
colorOf(item, index) {
|
|
3598
3612
|
return item.color || DEFAULT_COLORS[index % DEFAULT_COLORS.length];
|
|
3599
3613
|
}
|
|
3614
|
+
/**
|
|
3615
|
+
* `@for` track dùng qua method thay vì `item.id ?? item.label` trực tiếp trong template —
|
|
3616
|
+
* Angular linker (18.2.14) sinh sai scope biến tạm cho track expression chứa `??` khi bị
|
|
3617
|
+
* hoist lên module scope, gây `ReferenceError: tmp_x_0 is not defined` lúc chạy.
|
|
3618
|
+
*/
|
|
3619
|
+
trackDatum(item) {
|
|
3620
|
+
return item.id ?? item.label;
|
|
3621
|
+
}
|
|
3622
|
+
trackSegment(seg) {
|
|
3623
|
+
return seg.datum.id ?? seg.datum.label;
|
|
3624
|
+
}
|
|
3600
3625
|
barWidth(value) {
|
|
3601
3626
|
const max = this.maxValue() || 1;
|
|
3602
3627
|
return `${Math.max(2, (value / max) * 100)}%`;
|
|
@@ -3609,11 +3634,11 @@ class GeoChartComponent {
|
|
|
3609
3634
|
this.segmentClick.emit({ datum, index });
|
|
3610
3635
|
}
|
|
3611
3636
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3612
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoChartComponent, isStandalone: true, selector: "geo-chart", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, showSort: { classPropertyName: "showSort", publicName: "showSort", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sortChange", segmentClick: "segmentClick", sortChange: "sortChange" }, host: { classAttribute: "geo-chart-host" }, ngImport: i0, template: "<div class=\"geo-chart\" [style.--geo-chart-height.px]=\"height()\">\n <header class=\"geo-chart__header\">\n @if (title()) {\n <h3 class=\"geo-chart__title\">{{ title() }}</h3>\n }\n @if (showSort() && type() === 'bar') {\n <div class=\"geo-chart__sort\" role=\"group\" aria-label=\"S\u1EAFp x\u1EBFp\">\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'desc'\"\n (clicked)=\"setSort('desc')\"\n >\n Gi\u1EA3m d\u1EA7n\n </geo-button>\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'asc'\"\n (clicked)=\"setSort('asc')\"\n >\n T\u0103ng d\u1EA7n\n </geo-button>\n </div>\n }\n </header>\n\n @if (!sortedData().length) {\n <geo-empty-state [title]=\"emptyText()\" icon=\"bar-chart\" />\n } @else if (type() === 'bar') {\n <div class=\"geo-chart__bars\" role=\"img\" [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 c\u1ED9t'\">\n @for (item of sortedData(); track item
|
|
3637
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoChartComponent, isStandalone: true, selector: "geo-chart", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, showSort: { classPropertyName: "showSort", publicName: "showSort", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sortChange", segmentClick: "segmentClick", sortChange: "sortChange" }, host: { classAttribute: "geo-chart-host" }, ngImport: i0, template: "<div class=\"geo-chart\" [style.--geo-chart-height.px]=\"height()\">\n <header class=\"geo-chart__header\">\n @if (title()) {\n <h3 class=\"geo-chart__title\">{{ title() }}</h3>\n }\n @if (showSort() && type() === 'bar') {\n <div class=\"geo-chart__sort\" role=\"group\" aria-label=\"S\u1EAFp x\u1EBFp\">\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'desc'\"\n (clicked)=\"setSort('desc')\"\n >\n Gi\u1EA3m d\u1EA7n\n </geo-button>\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'asc'\"\n (clicked)=\"setSort('asc')\"\n >\n T\u0103ng d\u1EA7n\n </geo-button>\n </div>\n }\n </header>\n\n @if (!sortedData().length) {\n <geo-empty-state [title]=\"emptyText()\" icon=\"bar-chart\" />\n } @else if (type() === 'bar') {\n <div class=\"geo-chart__bars\" role=\"img\" [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 c\u1ED9t'\">\n @for (item of sortedData(); track trackDatum(item); let i = $index) {\n <button\n type=\"button\"\n class=\"geo-chart__bar-row\"\n (click)=\"onSegment(item, i)\"\n >\n <span class=\"geo-chart__bar-label\" [title]=\"item.label\">{{ item.label }}</span>\n <span class=\"geo-chart__bar-track\">\n <span\n class=\"geo-chart__bar-fill\"\n [style.width]=\"barWidth(item.value)\"\n [style.background]=\"colorOf(item, i)\"\n ></span>\n </span>\n <span class=\"geo-chart__bar-value\">\n {{ item.value }}{{ unit() ? ' ' + unit() : '' }}\n </span>\n </button>\n }\n </div>\n } @else {\n <div class=\"geo-chart__donut-wrap\">\n <svg\n class=\"geo-chart__donut\"\n viewBox=\"0 0 140 140\"\n role=\"img\"\n [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 donut'\"\n >\n <circle\n class=\"geo-chart__donut-track\"\n cx=\"70\"\n cy=\"70\"\n r=\"56\"\n fill=\"none\"\n stroke-width=\"18\"\n />\n @for (seg of donutSegments(); track trackSegment(seg)) {\n <circle\n class=\"geo-chart__donut-seg\"\n cx=\"70\"\n cy=\"70\"\n r=\"56\"\n fill=\"none\"\n stroke-width=\"18\"\n [attr.stroke]=\"seg.color\"\n [attr.stroke-dasharray]=\"seg.dasharray\"\n [attr.stroke-dashoffset]=\"seg.dashoffset\"\n transform=\"rotate(-90 70 70)\"\n (click)=\"onSegment(seg.datum, seg.index)\"\n />\n }\n <text x=\"70\" y=\"66\" text-anchor=\"middle\" class=\"geo-chart__donut-center-label\">\n T\u1ED5ng\n </text>\n <text x=\"70\" y=\"84\" text-anchor=\"middle\" class=\"geo-chart__donut-center-value\">\n {{ total() }}\n </text>\n </svg>\n\n @if (showLegend()) {\n <ul class=\"geo-chart__legend\">\n @for (seg of donutSegments(); track trackSegment(seg)) {\n <li>\n <button\n type=\"button\"\n class=\"geo-chart__legend-item\"\n (click)=\"onSegment(seg.datum, seg.index)\"\n >\n <span\n class=\"geo-chart__swatch\"\n [style.background]=\"seg.color\"\n ></span>\n <span class=\"geo-chart__legend-label\">{{ seg.datum.label }}</span>\n <span class=\"geo-chart__legend-value\">{{ seg.percent }}%</span>\n </button>\n </li>\n }\n </ul>\n }\n </div>\n }\n</div>\n", styles: [".geo-chart-host{display:block}.geo-chart{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);min-height:var(--geo-chart-height, 260px)}.geo-chart__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.geo-chart__title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-chart__sort{display:inline-flex;gap:4px}.geo-chart__bars{display:flex;flex-direction:column;gap:10px;max-height:calc(var(--geo-chart-height, 260px) - 48px);overflow:auto;padding-right:4px}.geo-chart__bar-row{display:grid;grid-template-columns:minmax(88px,140px) 1fr auto;align-items:center;gap:10px;margin:0;padding:0;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.geo-chart__bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-700)}.geo-chart__bar-track{height:12px;border-radius:var(--geo-radius-sm);background:var(--geo-color-neutral-100);overflow:hidden}.geo-chart__bar-fill{display:block;height:100%;border-radius:inherit;transition:width .2s ease}.geo-chart__bar-value{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-800);white-space:nowrap}.geo-chart__donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.geo-chart__donut{width:180px;height:180px;flex-shrink:0}.geo-chart__donut-track{stroke:var(--geo-color-neutral-100)}.geo-chart__donut-seg{cursor:pointer;transition:opacity .15s ease}.geo-chart__donut-seg:hover{opacity:.85}.geo-chart__donut-center-label{fill:var(--geo-color-neutral-500);font-size:11px}.geo-chart__donut-center-value{fill:var(--geo-color-neutral-900);font-size:16px;font-weight:600}.geo-chart__legend{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;flex:1;min-width:160px}.geo-chart__legend-item{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;width:100%;margin:0;padding:4px 0;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.geo-chart__swatch{width:12px;height:12px;border-radius:2px}.geo-chart__legend-label{font-size:var(--geo-font-size-body-small);color:var(--geo-color-neutral-800)}.geo-chart__legend-value{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-600)}\n"], dependencies: [{ kind: "component", type: GeoButtonComponent, selector: "geo-button", inputs: ["appearance", "color", "icon", "iconTheme", "iconPlacement", "iconOnly", "type", "disabled", "tooltip", "tooltipPlacement", "active", "title"], outputs: ["clicked"] }, { kind: "component", type: GeoEmptyStateComponent, selector: "geo-empty-state", inputs: ["title", "description", "icon", "actionLabel"], outputs: ["actionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3613
3638
|
}
|
|
3614
3639
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoChartComponent, decorators: [{
|
|
3615
3640
|
type: Component,
|
|
3616
|
-
args: [{ selector: 'geo-chart', standalone: true, imports: [GeoButtonComponent, GeoEmptyStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-chart-host' }, template: "<div class=\"geo-chart\" [style.--geo-chart-height.px]=\"height()\">\n <header class=\"geo-chart__header\">\n @if (title()) {\n <h3 class=\"geo-chart__title\">{{ title() }}</h3>\n }\n @if (showSort() && type() === 'bar') {\n <div class=\"geo-chart__sort\" role=\"group\" aria-label=\"S\u1EAFp x\u1EBFp\">\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'desc'\"\n (clicked)=\"setSort('desc')\"\n >\n Gi\u1EA3m d\u1EA7n\n </geo-button>\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'asc'\"\n (clicked)=\"setSort('asc')\"\n >\n T\u0103ng d\u1EA7n\n </geo-button>\n </div>\n }\n </header>\n\n @if (!sortedData().length) {\n <geo-empty-state [title]=\"emptyText()\" icon=\"bar-chart\" />\n } @else if (type() === 'bar') {\n <div class=\"geo-chart__bars\" role=\"img\" [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 c\u1ED9t'\">\n @for (item of sortedData(); track item
|
|
3641
|
+
args: [{ selector: 'geo-chart', standalone: true, imports: [GeoButtonComponent, GeoEmptyStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-chart-host' }, template: "<div class=\"geo-chart\" [style.--geo-chart-height.px]=\"height()\">\n <header class=\"geo-chart__header\">\n @if (title()) {\n <h3 class=\"geo-chart__title\">{{ title() }}</h3>\n }\n @if (showSort() && type() === 'bar') {\n <div class=\"geo-chart__sort\" role=\"group\" aria-label=\"S\u1EAFp x\u1EBFp\">\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'desc'\"\n (clicked)=\"setSort('desc')\"\n >\n Gi\u1EA3m d\u1EA7n\n </geo-button>\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'asc'\"\n (clicked)=\"setSort('asc')\"\n >\n T\u0103ng d\u1EA7n\n </geo-button>\n </div>\n }\n </header>\n\n @if (!sortedData().length) {\n <geo-empty-state [title]=\"emptyText()\" icon=\"bar-chart\" />\n } @else if (type() === 'bar') {\n <div class=\"geo-chart__bars\" role=\"img\" [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 c\u1ED9t'\">\n @for (item of sortedData(); track trackDatum(item); let i = $index) {\n <button\n type=\"button\"\n class=\"geo-chart__bar-row\"\n (click)=\"onSegment(item, i)\"\n >\n <span class=\"geo-chart__bar-label\" [title]=\"item.label\">{{ item.label }}</span>\n <span class=\"geo-chart__bar-track\">\n <span\n class=\"geo-chart__bar-fill\"\n [style.width]=\"barWidth(item.value)\"\n [style.background]=\"colorOf(item, i)\"\n ></span>\n </span>\n <span class=\"geo-chart__bar-value\">\n {{ item.value }}{{ unit() ? ' ' + unit() : '' }}\n </span>\n </button>\n }\n </div>\n } @else {\n <div class=\"geo-chart__donut-wrap\">\n <svg\n class=\"geo-chart__donut\"\n viewBox=\"0 0 140 140\"\n role=\"img\"\n [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 donut'\"\n >\n <circle\n class=\"geo-chart__donut-track\"\n cx=\"70\"\n cy=\"70\"\n r=\"56\"\n fill=\"none\"\n stroke-width=\"18\"\n />\n @for (seg of donutSegments(); track trackSegment(seg)) {\n <circle\n class=\"geo-chart__donut-seg\"\n cx=\"70\"\n cy=\"70\"\n r=\"56\"\n fill=\"none\"\n stroke-width=\"18\"\n [attr.stroke]=\"seg.color\"\n [attr.stroke-dasharray]=\"seg.dasharray\"\n [attr.stroke-dashoffset]=\"seg.dashoffset\"\n transform=\"rotate(-90 70 70)\"\n (click)=\"onSegment(seg.datum, seg.index)\"\n />\n }\n <text x=\"70\" y=\"66\" text-anchor=\"middle\" class=\"geo-chart__donut-center-label\">\n T\u1ED5ng\n </text>\n <text x=\"70\" y=\"84\" text-anchor=\"middle\" class=\"geo-chart__donut-center-value\">\n {{ total() }}\n </text>\n </svg>\n\n @if (showLegend()) {\n <ul class=\"geo-chart__legend\">\n @for (seg of donutSegments(); track trackSegment(seg)) {\n <li>\n <button\n type=\"button\"\n class=\"geo-chart__legend-item\"\n (click)=\"onSegment(seg.datum, seg.index)\"\n >\n <span\n class=\"geo-chart__swatch\"\n [style.background]=\"seg.color\"\n ></span>\n <span class=\"geo-chart__legend-label\">{{ seg.datum.label }}</span>\n <span class=\"geo-chart__legend-value\">{{ seg.percent }}%</span>\n </button>\n </li>\n }\n </ul>\n }\n </div>\n }\n</div>\n", styles: [".geo-chart-host{display:block}.geo-chart{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);min-height:var(--geo-chart-height, 260px)}.geo-chart__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.geo-chart__title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-chart__sort{display:inline-flex;gap:4px}.geo-chart__bars{display:flex;flex-direction:column;gap:10px;max-height:calc(var(--geo-chart-height, 260px) - 48px);overflow:auto;padding-right:4px}.geo-chart__bar-row{display:grid;grid-template-columns:minmax(88px,140px) 1fr auto;align-items:center;gap:10px;margin:0;padding:0;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.geo-chart__bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-700)}.geo-chart__bar-track{height:12px;border-radius:var(--geo-radius-sm);background:var(--geo-color-neutral-100);overflow:hidden}.geo-chart__bar-fill{display:block;height:100%;border-radius:inherit;transition:width .2s ease}.geo-chart__bar-value{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-800);white-space:nowrap}.geo-chart__donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.geo-chart__donut{width:180px;height:180px;flex-shrink:0}.geo-chart__donut-track{stroke:var(--geo-color-neutral-100)}.geo-chart__donut-seg{cursor:pointer;transition:opacity .15s ease}.geo-chart__donut-seg:hover{opacity:.85}.geo-chart__donut-center-label{fill:var(--geo-color-neutral-500);font-size:11px}.geo-chart__donut-center-value{fill:var(--geo-color-neutral-900);font-size:16px;font-weight:600}.geo-chart__legend{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;flex:1;min-width:160px}.geo-chart__legend-item{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;width:100%;margin:0;padding:4px 0;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.geo-chart__swatch{width:12px;height:12px;border-radius:2px}.geo-chart__legend-label{font-size:var(--geo-font-size-body-small);color:var(--geo-color-neutral-800)}.geo-chart__legend-value{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-600)}\n"] }]
|
|
3617
3642
|
}] });
|
|
3618
3643
|
|
|
3619
3644
|
/**
|
|
@@ -3868,11 +3893,11 @@ class GeoListPageComponent {
|
|
|
3868
3893
|
breadcrumb = input([]);
|
|
3869
3894
|
uppercase = input(true);
|
|
3870
3895
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoListPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3871
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoListPageComponent, isStandalone: true, selector: "geo-list-page", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, breadcrumb: { classPropertyName: "breadcrumb", publicName: "breadcrumb", isSignal: true, isRequired: false, transformFunction: null }, uppercase: { classPropertyName: "uppercase", publicName: "uppercase", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "geo-list-page-host" }, ngImport: i0, template: "<div class=\"geo-list-page\">\n <geo-page-header\n [title]=\"title()\"\n [breadcrumb]=\"breadcrumb()\"\n [uppercase]=\"uppercase()\"\n >\n <div geoPageActions>\n <ng-content select=\"[geoListActions]\" />\n </div>\n <div geoPageFilters>\n <ng-content select=\"[geoListFilters]\" />\n </div>\n </geo-page-header>\n\n <div class=\"geo-list-page__filter\">\n <ng-content select=\"geo-table-filter,[geoListFilter]\" />\n </div>\n\n <div class=\"geo-list-page__table-panel\">\n <div class=\"geo-list-page__toolbar\">\n <ng-content select=\"geo-table-toolbar,[geoListToolbar]\" />\n </div>\n <div class=\"geo-list-page__body\">\n <ng-content />\n </div>\n </div>\n</div>\n", styles: ["
|
|
3896
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoListPageComponent, isStandalone: true, selector: "geo-list-page", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, breadcrumb: { classPropertyName: "breadcrumb", publicName: "breadcrumb", isSignal: true, isRequired: false, transformFunction: null }, uppercase: { classPropertyName: "uppercase", publicName: "uppercase", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "geo-list-page-host" }, ngImport: i0, template: "<div class=\"geo-list-page\">\n <geo-page-header\n [title]=\"title()\"\n [breadcrumb]=\"breadcrumb()\"\n [uppercase]=\"uppercase()\"\n >\n <div geoPageActions>\n <ng-content select=\"[geoListActions]\" />\n </div>\n <div geoPageFilters>\n <ng-content select=\"[geoListFilters]\" />\n </div>\n </geo-page-header>\n\n <div class=\"geo-list-page__filter\">\n <ng-content select=\"geo-table-filter,[geoListFilter]\" />\n </div>\n\n <div class=\"geo-list-page__table-panel\">\n <div class=\"geo-list-page__toolbar\">\n <ng-content select=\"geo-table-toolbar,[geoListToolbar]\" />\n </div>\n <div class=\"geo-list-page__body\">\n <ng-content />\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.geo-list-page-host{display:block}.geo-list-page{display:flex;flex-direction:column;gap:16px}.geo-list-page__filter:empty,.geo-list-page__toolbar:empty{display:none}.geo-list-page__filter:not(:empty){padding:16px;background:var(--geo-color-neutral-white);border:1px solid var(--geo-color-primary-border);border-radius:var(--geo-radius)}.geo-list-page__table-panel{display:flex;flex-direction:column;min-width:0;gap:0}.geo-list-page__body{min-width:0}\n"], dependencies: [{ kind: "component", type: GeoPageHeaderComponent, selector: "geo-page-header", inputs: ["title", "breadcrumb", "uppercase"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3872
3897
|
}
|
|
3873
3898
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoListPageComponent, decorators: [{
|
|
3874
3899
|
type: Component,
|
|
3875
|
-
args: [{ selector: 'geo-list-page', standalone: true, imports: [GeoPageHeaderComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-list-page-host' }, template: "<div class=\"geo-list-page\">\n <geo-page-header\n [title]=\"title()\"\n [breadcrumb]=\"breadcrumb()\"\n [uppercase]=\"uppercase()\"\n >\n <div geoPageActions>\n <ng-content select=\"[geoListActions]\" />\n </div>\n <div geoPageFilters>\n <ng-content select=\"[geoListFilters]\" />\n </div>\n </geo-page-header>\n\n <div class=\"geo-list-page__filter\">\n <ng-content select=\"geo-table-filter,[geoListFilter]\" />\n </div>\n\n <div class=\"geo-list-page__table-panel\">\n <div class=\"geo-list-page__toolbar\">\n <ng-content select=\"geo-table-toolbar,[geoListToolbar]\" />\n </div>\n <div class=\"geo-list-page__body\">\n <ng-content />\n </div>\n </div>\n</div>\n", styles: ["
|
|
3900
|
+
args: [{ selector: 'geo-list-page', standalone: true, imports: [GeoPageHeaderComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-list-page-host' }, template: "<div class=\"geo-list-page\">\n <geo-page-header\n [title]=\"title()\"\n [breadcrumb]=\"breadcrumb()\"\n [uppercase]=\"uppercase()\"\n >\n <div geoPageActions>\n <ng-content select=\"[geoListActions]\" />\n </div>\n <div geoPageFilters>\n <ng-content select=\"[geoListFilters]\" />\n </div>\n </geo-page-header>\n\n <div class=\"geo-list-page__filter\">\n <ng-content select=\"geo-table-filter,[geoListFilter]\" />\n </div>\n\n <div class=\"geo-list-page__table-panel\">\n <div class=\"geo-list-page__toolbar\">\n <ng-content select=\"geo-table-toolbar,[geoListToolbar]\" />\n </div>\n <div class=\"geo-list-page__body\">\n <ng-content />\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.geo-list-page-host{display:block}.geo-list-page{display:flex;flex-direction:column;gap:16px}.geo-list-page__filter:empty,.geo-list-page__toolbar:empty{display:none}.geo-list-page__filter:not(:empty){padding:16px;background:var(--geo-color-neutral-white);border:1px solid var(--geo-color-primary-border);border-radius:var(--geo-radius)}.geo-list-page__table-panel{display:flex;flex-direction:column;min-width:0;gap:0}.geo-list-page__body{min-width:0}\n"] }]
|
|
3876
3901
|
}] });
|
|
3877
3902
|
|
|
3878
3903
|
/**
|
|
@@ -4044,6 +4069,18 @@ const GEO_MAP_DEFAULT_TOOLBAR_ACTIONS = [
|
|
|
4044
4069
|
tooltip: 'Chụp ảnh bản đồ',
|
|
4045
4070
|
},
|
|
4046
4071
|
];
|
|
4072
|
+
/**
|
|
4073
|
+
* Toolbar action cho định vị (UC-14) — KHÔNG có trong `GEO_MAP_DEFAULT_TOOLBAR_ACTIONS` để
|
|
4074
|
+
* không đổi giao diện các consumer hiện có (M02/M07). Ghép thêm khi cần:
|
|
4075
|
+
* `toolbarActions: [...GEO_MAP_DEFAULT_TOOLBAR_ACTIONS, GEO_MAP_LOCATE_TOOLBAR_ACTION]`.
|
|
4076
|
+
*/
|
|
4077
|
+
const GEO_MAP_LOCATE_TOOLBAR_ACTION = {
|
|
4078
|
+
id: 'locate',
|
|
4079
|
+
label: 'Vị trí của tôi',
|
|
4080
|
+
icon: 'aim',
|
|
4081
|
+
iconOnly: true,
|
|
4082
|
+
tooltip: 'Định vị vị trí của tôi',
|
|
4083
|
+
};
|
|
4047
4084
|
/**
|
|
4048
4085
|
* Demo thematic overlays for Storybook (offline-friendly GeoJSON).
|
|
4049
4086
|
* Groups match portal layers popover: QHSDD · địa chính · hiện trạng.
|
|
@@ -5626,13 +5663,13 @@ class GeoMapToolbarComponent {
|
|
|
5626
5663
|
this.actionClick.emit(action);
|
|
5627
5664
|
}
|
|
5628
5665
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5629
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapToolbarComponent, isStandalone: true, selector: "geo-map-toolbar", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, checkedMap: { classPropertyName: "checkedMap", publicName: "checkedMap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedMap: "checkedMapChange", actionClick: "actionClick", actionToggle: "actionToggle" }, host: { classAttribute: "geo-map-toolbar-host" }, ngImport: i0, template: "<div\n class=\"geo-map-toolbar\"\n [class.geo-map-toolbar--compact]=\"compact()\"\n role=\"toolbar\"\n aria-label=\"Thao t\u00E1c b\u1EA3n \u0111\u1ED3\"\n>\n @for (action of resolvedActions(); track action.id) {\n <span\n class=\"geo-map-toolbar__tip\"\n [nz-tooltip]=\"tooltipOf(action)\"\n nzTooltipPlacement=\"bottom\"\n >\n <button\n type=\"button\"\n class=\"geo-map-toolbar__btn\"\n [class.geo-map-toolbar__btn--icon-only]=\"\n action.iconOnly || !action.label || compact()\n \"\n [class.geo-map-toolbar__btn--active]=\"action.active\"\n [class.geo-map-toolbar__btn--checked]=\"isChecked(action)\"\n [class.geo-map-toolbar__btn--primary]=\"action.variant === 'primary'\"\n [disabled]=\"action.disabled\"\n [attr.aria-label]=\"tooltipOf(action)\"\n [attr.aria-pressed]=\"isToggleAction(action) ? isChecked(action) : null\"\n (click)=\"onActionClick(action)\"\n >\n @if (action.iconSrc) {\n <img\n class=\"geo-map-toolbar__icon-img\"\n [class.geo-map-toolbar__icon-img--home]=\"action.variant === 'primary'\"\n [src]=\"action.iconSrc\"\n alt=\"\"\n draggable=\"false\"\n />\n } @else if (action.icon) {\n <geo-icon [type]=\"action.icon\" size=\"
|
|
5666
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapToolbarComponent, isStandalone: true, selector: "geo-map-toolbar", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, checkedMap: { classPropertyName: "checkedMap", publicName: "checkedMap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedMap: "checkedMapChange", actionClick: "actionClick", actionToggle: "actionToggle" }, host: { classAttribute: "geo-map-toolbar-host" }, ngImport: i0, template: "<div\n class=\"geo-map-toolbar\"\n [class.geo-map-toolbar--compact]=\"compact()\"\n role=\"toolbar\"\n aria-label=\"Thao t\u00E1c b\u1EA3n \u0111\u1ED3\"\n>\n @for (action of resolvedActions(); track action.id) {\n <span\n class=\"geo-map-toolbar__tip\"\n [nz-tooltip]=\"tooltipOf(action)\"\n nzTooltipPlacement=\"bottom\"\n >\n <button\n type=\"button\"\n class=\"geo-map-toolbar__btn\"\n [class.geo-map-toolbar__btn--icon-only]=\"\n action.iconOnly || !action.label || compact()\n \"\n [class.geo-map-toolbar__btn--active]=\"action.active\"\n [class.geo-map-toolbar__btn--checked]=\"isChecked(action)\"\n [class.geo-map-toolbar__btn--primary]=\"action.variant === 'primary'\"\n [disabled]=\"action.disabled\"\n [attr.aria-label]=\"tooltipOf(action)\"\n [attr.aria-pressed]=\"isToggleAction(action) ? isChecked(action) : null\"\n (click)=\"onActionClick(action)\"\n >\n @if (action.iconSrc) {\n <img\n class=\"geo-map-toolbar__icon-img\"\n [class.geo-map-toolbar__icon-img--home]=\"action.variant === 'primary'\"\n [src]=\"action.iconSrc\"\n alt=\"\"\n draggable=\"false\"\n />\n } @else if (action.icon) {\n <geo-icon [type]=\"action.icon\" size=\"sm\" />\n }\n @if (action.label && !action.iconOnly && !compact()) {\n <span class=\"geo-map-toolbar__label\">{{ action.label }}</span>\n }\n </button>\n </span>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.geo-map-toolbar-host{display:block;pointer-events:none}.geo-map-toolbar{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:12px;min-height:48px;padding:6px 10px;overflow:visible;pointer-events:auto;border:0;border-radius:var(--geo-radius-md);background:var(--geo-color-neutral-white, #fff);box-shadow:var(--geo-shadow-sm)}.geo-map-toolbar__tip{display:inline-flex}.geo-map-toolbar__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;min-height:32px;padding:4px;border:1px solid var(--geo-color-primary-default);border-radius:var(--geo-radius-xs);background:var(--geo-color-neutral-white, #fff);color:var(--geo-color-primary-default);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;box-shadow:0 0 2px color-mix(in srgb,var(--geo-color-neutral-900) 25%,transparent);transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.geo-map-toolbar__btn:hover:not(:disabled){background:color-mix(in srgb,var(--geo-color-primary-default) 14%,var(--geo-color-neutral-white))}.geo-map-toolbar__btn:active:not(:disabled){transform:scale(.98)}.geo-map-toolbar__btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-toolbar__btn--icon-only{width:32px;padding:4px}.geo-map-toolbar__btn--active,.geo-map-toolbar__btn--checked{background:color-mix(in srgb,var(--geo-color-primary-light) 58%,var(--geo-color-neutral-white));color:var(--geo-color-primary-default)}.geo-map-toolbar__btn--active:hover:not(:disabled),.geo-map-toolbar__btn--checked:hover:not(:disabled){background:color-mix(in srgb,var(--geo-color-primary-light) 68%,var(--geo-color-neutral-white));color:var(--geo-color-primary-default)}.geo-map-toolbar__btn--primary{width:32px;min-width:32px;min-height:32px;padding:0;border:0;border-radius:50%;background:var(--geo-color-primary-light);box-shadow:0 4px 4px color-mix(in srgb,var(--geo-color-neutral-900) 25%,transparent);margin-right:-2px}.geo-map-toolbar__btn--primary:hover:not(:disabled){background:var(--geo-color-primary-default);filter:none}.geo-map-toolbar__btn--primary.geo-map-toolbar__btn--active,.geo-map-toolbar__btn--primary.geo-map-toolbar__btn--checked{background:var(--geo-color-primary-light)}.geo-map-toolbar__icon-img{display:block;width:18px;height:18px;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.geo-map-toolbar__icon-img--home{width:16px;height:14px}.geo-map-toolbar__label{white-space:nowrap}.geo-map-toolbar--compact .geo-map-toolbar__label{display:none}\n"], dependencies: [{ kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i1$2.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5630
5667
|
}
|
|
5631
5668
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapToolbarComponent, decorators: [{
|
|
5632
5669
|
type: Component,
|
|
5633
5670
|
args: [{ selector: 'geo-map-toolbar', standalone: true, imports: [GeoIconComponent, NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
5634
5671
|
class: 'geo-map-toolbar-host',
|
|
5635
|
-
}, template: "<div\n class=\"geo-map-toolbar\"\n [class.geo-map-toolbar--compact]=\"compact()\"\n role=\"toolbar\"\n aria-label=\"Thao t\u00E1c b\u1EA3n \u0111\u1ED3\"\n>\n @for (action of resolvedActions(); track action.id) {\n <span\n class=\"geo-map-toolbar__tip\"\n [nz-tooltip]=\"tooltipOf(action)\"\n nzTooltipPlacement=\"bottom\"\n >\n <button\n type=\"button\"\n class=\"geo-map-toolbar__btn\"\n [class.geo-map-toolbar__btn--icon-only]=\"\n action.iconOnly || !action.label || compact()\n \"\n [class.geo-map-toolbar__btn--active]=\"action.active\"\n [class.geo-map-toolbar__btn--checked]=\"isChecked(action)\"\n [class.geo-map-toolbar__btn--primary]=\"action.variant === 'primary'\"\n [disabled]=\"action.disabled\"\n [attr.aria-label]=\"tooltipOf(action)\"\n [attr.aria-pressed]=\"isToggleAction(action) ? isChecked(action) : null\"\n (click)=\"onActionClick(action)\"\n >\n @if (action.iconSrc) {\n <img\n class=\"geo-map-toolbar__icon-img\"\n [class.geo-map-toolbar__icon-img--home]=\"action.variant === 'primary'\"\n [src]=\"action.iconSrc\"\n alt=\"\"\n draggable=\"false\"\n />\n } @else if (action.icon) {\n <geo-icon [type]=\"action.icon\" size=\"
|
|
5672
|
+
}, template: "<div\n class=\"geo-map-toolbar\"\n [class.geo-map-toolbar--compact]=\"compact()\"\n role=\"toolbar\"\n aria-label=\"Thao t\u00E1c b\u1EA3n \u0111\u1ED3\"\n>\n @for (action of resolvedActions(); track action.id) {\n <span\n class=\"geo-map-toolbar__tip\"\n [nz-tooltip]=\"tooltipOf(action)\"\n nzTooltipPlacement=\"bottom\"\n >\n <button\n type=\"button\"\n class=\"geo-map-toolbar__btn\"\n [class.geo-map-toolbar__btn--icon-only]=\"\n action.iconOnly || !action.label || compact()\n \"\n [class.geo-map-toolbar__btn--active]=\"action.active\"\n [class.geo-map-toolbar__btn--checked]=\"isChecked(action)\"\n [class.geo-map-toolbar__btn--primary]=\"action.variant === 'primary'\"\n [disabled]=\"action.disabled\"\n [attr.aria-label]=\"tooltipOf(action)\"\n [attr.aria-pressed]=\"isToggleAction(action) ? isChecked(action) : null\"\n (click)=\"onActionClick(action)\"\n >\n @if (action.iconSrc) {\n <img\n class=\"geo-map-toolbar__icon-img\"\n [class.geo-map-toolbar__icon-img--home]=\"action.variant === 'primary'\"\n [src]=\"action.iconSrc\"\n alt=\"\"\n draggable=\"false\"\n />\n } @else if (action.icon) {\n <geo-icon [type]=\"action.icon\" size=\"sm\" />\n }\n @if (action.label && !action.iconOnly && !compact()) {\n <span class=\"geo-map-toolbar__label\">{{ action.label }}</span>\n }\n </button>\n </span>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.geo-map-toolbar-host{display:block;pointer-events:none}.geo-map-toolbar{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:12px;min-height:48px;padding:6px 10px;overflow:visible;pointer-events:auto;border:0;border-radius:var(--geo-radius-md);background:var(--geo-color-neutral-white, #fff);box-shadow:var(--geo-shadow-sm)}.geo-map-toolbar__tip{display:inline-flex}.geo-map-toolbar__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;min-height:32px;padding:4px;border:1px solid var(--geo-color-primary-default);border-radius:var(--geo-radius-xs);background:var(--geo-color-neutral-white, #fff);color:var(--geo-color-primary-default);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;box-shadow:0 0 2px color-mix(in srgb,var(--geo-color-neutral-900) 25%,transparent);transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.geo-map-toolbar__btn:hover:not(:disabled){background:color-mix(in srgb,var(--geo-color-primary-default) 14%,var(--geo-color-neutral-white))}.geo-map-toolbar__btn:active:not(:disabled){transform:scale(.98)}.geo-map-toolbar__btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-toolbar__btn--icon-only{width:32px;padding:4px}.geo-map-toolbar__btn--active,.geo-map-toolbar__btn--checked{background:color-mix(in srgb,var(--geo-color-primary-light) 58%,var(--geo-color-neutral-white));color:var(--geo-color-primary-default)}.geo-map-toolbar__btn--active:hover:not(:disabled),.geo-map-toolbar__btn--checked:hover:not(:disabled){background:color-mix(in srgb,var(--geo-color-primary-light) 68%,var(--geo-color-neutral-white));color:var(--geo-color-primary-default)}.geo-map-toolbar__btn--primary{width:32px;min-width:32px;min-height:32px;padding:0;border:0;border-radius:50%;background:var(--geo-color-primary-light);box-shadow:0 4px 4px color-mix(in srgb,var(--geo-color-neutral-900) 25%,transparent);margin-right:-2px}.geo-map-toolbar__btn--primary:hover:not(:disabled){background:var(--geo-color-primary-default);filter:none}.geo-map-toolbar__btn--primary.geo-map-toolbar__btn--active,.geo-map-toolbar__btn--primary.geo-map-toolbar__btn--checked{background:var(--geo-color-primary-light)}.geo-map-toolbar__icon-img{display:block;width:18px;height:18px;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.geo-map-toolbar__icon-img--home{width:16px;height:14px}.geo-map-toolbar__label{white-space:nowrap}.geo-map-toolbar--compact .geo-map-toolbar__label{display:none}\n"] }]
|
|
5636
5673
|
}] });
|
|
5637
5674
|
|
|
5638
5675
|
/**
|
|
@@ -5985,11 +6022,11 @@ class GeoMapZoomComponent {
|
|
|
5985
6022
|
this.canZoomNext.set(idx >= 0 && idx < len - 1);
|
|
5986
6023
|
}
|
|
5987
6024
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapZoomComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5988
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapZoomComponent, isStandalone: true, selector: "geo-map-zoom", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, showNav: { classPropertyName: "showNav", publicName: "showNav", isSignal: true, isRequired: false, transformFunction: null }, showFitProvince: { classPropertyName: "showFitProvince", publicName: "showFitProvince", isSignal: true, isRequired: false, transformFunction: null }, provinceExtent: { classPropertyName: "provinceExtent", publicName: "provinceExtent", isSignal: true, isRequired: false, transformFunction: null }, fullscreenTarget: { classPropertyName: "fullscreenTarget", publicName: "fullscreenTarget", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "geo-map-zoom-host" }, ngImport: i0, template: "<div class=\"geo-map-zoom\" role=\"group\" aria-label=\"Thu ph\u00F3ng b\u1EA3n \u0111\u1ED3\">\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Ph\u00F3ng to\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Ph\u00F3ng to\"\n [disabled]=\"!controller()\"\n (click)=\"zoomIn()\"\n >\n <geo-icon type=\"plus\" size=\"
|
|
6025
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapZoomComponent, isStandalone: true, selector: "geo-map-zoom", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, showNav: { classPropertyName: "showNav", publicName: "showNav", isSignal: true, isRequired: false, transformFunction: null }, showFitProvince: { classPropertyName: "showFitProvince", publicName: "showFitProvince", isSignal: true, isRequired: false, transformFunction: null }, provinceExtent: { classPropertyName: "provinceExtent", publicName: "provinceExtent", isSignal: true, isRequired: false, transformFunction: null }, fullscreenTarget: { classPropertyName: "fullscreenTarget", publicName: "fullscreenTarget", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "geo-map-zoom-host" }, ngImport: i0, template: "<div class=\"geo-map-zoom\" role=\"group\" aria-label=\"Thu ph\u00F3ng b\u1EA3n \u0111\u1ED3\">\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Ph\u00F3ng to\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Ph\u00F3ng to\"\n [disabled]=\"!controller()\"\n (click)=\"zoomIn()\"\n >\n <geo-icon type=\"plus\" size=\"sm\" />\n </button>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Thu nh\u1ECF\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Thu nh\u1ECF\"\n [disabled]=\"!controller()\"\n (click)=\"zoomOut()\"\n >\n <geo-icon type=\"minus\" size=\"sm\" />\n </button>\n\n @if (showNav()) {\n <span class=\"geo-map-zoom__divider\" aria-hidden=\"true\"></span>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n [class.geo-map-zoom__btn--active]=\"boxMode() === 'in'\"\n nz-tooltip=\"Ph\u00F3ng to theo v\u00F9ng (k\u00E9o khung)\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Ph\u00F3ng to theo v\u00F9ng\"\n [disabled]=\"!controller()\"\n (click)=\"toggleBoxZoom('in')\"\n >\n <geo-icon type=\"zoom-in\" size=\"sm\" />\n </button>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n [class.geo-map-zoom__btn--active]=\"boxMode() === 'out'\"\n nz-tooltip=\"Thu nh\u1ECF theo v\u00F9ng (k\u00E9o khung)\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Thu nh\u1ECF theo v\u00F9ng\"\n [disabled]=\"!controller()\"\n (click)=\"toggleBoxZoom('out')\"\n >\n <geo-icon type=\"zoom-out\" size=\"sm\" />\n </button>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Zoom tr\u01B0\u1EDBc\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Zoom tr\u01B0\u1EDBc\"\n [disabled]=\"!controller() || !canZoomPrev()\"\n (click)=\"zoomPrev()\"\n >\n <geo-icon type=\"left\" size=\"sm\" />\n </button>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Zoom sau\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Zoom sau\"\n [disabled]=\"!controller() || !canZoomNext()\"\n (click)=\"zoomNext()\"\n >\n <geo-icon type=\"right\" size=\"sm\" />\n </button>\n @if (showFitProvince()) {\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Xem to\u00E0n t\u1EC9nh\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Xem to\u00E0n t\u1EC9nh\"\n [disabled]=\"!controller()\"\n (click)=\"fitProvince()\"\n >\n <geo-icon type=\"expand\" size=\"sm\" />\n </button>\n }\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n [class.geo-map-zoom__btn--active]=\"isFullscreen()\"\n [nz-tooltip]=\"\n isFullscreen() ? 'Tho\u00E1t to\u00E0n m\u00E0n h\u00ECnh' : 'Xem to\u00E0n b\u1EA3n \u0111\u1ED3'\n \"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"\n isFullscreen() ? 'Tho\u00E1t to\u00E0n m\u00E0n h\u00ECnh' : 'Xem to\u00E0n b\u1EA3n \u0111\u1ED3'\n \"\n [disabled]=\"!controller()\"\n (click)=\"toggleFullscreen()\"\n >\n <geo-icon\n [type]=\"isFullscreen() ? 'fullscreen-exit' : 'fullscreen'\"\n size=\"sm\"\n />\n </button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.geo-map-zoom-host{display:block}.geo-map-zoom{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:4px}.geo-map-zoom__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;min-height:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;padding:0}.geo-map-zoom__btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-zoom__btn:active:not(:disabled){transform:scale(.98)}.geo-map-zoom__btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-zoom__btn--active,.geo-map-zoom__btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-zoom__btn--icon-only{width:32px;padding:0}.geo-map-zoom__btn--active{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-zoom__dragbox{background:color-mix(in srgb,var(--geo-color-primary-default) 18%,transparent);border:2px solid var(--geo-color-primary-default)}.geo-map-zoom__divider{height:1px;margin:2px 6px;background:var(--geo-color-neutral-100)}\n"], dependencies: [{ kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i1$2.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5989
6026
|
}
|
|
5990
6027
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapZoomComponent, decorators: [{
|
|
5991
6028
|
type: Component,
|
|
5992
|
-
args: [{ selector: 'geo-map-zoom', standalone: true, imports: [GeoIconComponent, NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-zoom-host' }, template: "<div class=\"geo-map-zoom\" role=\"group\" aria-label=\"Thu ph\u00F3ng b\u1EA3n \u0111\u1ED3\">\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Ph\u00F3ng to\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Ph\u00F3ng to\"\n [disabled]=\"!controller()\"\n (click)=\"zoomIn()\"\n >\n <geo-icon type=\"plus\" size=\"
|
|
6029
|
+
args: [{ selector: 'geo-map-zoom', standalone: true, imports: [GeoIconComponent, NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-zoom-host' }, template: "<div class=\"geo-map-zoom\" role=\"group\" aria-label=\"Thu ph\u00F3ng b\u1EA3n \u0111\u1ED3\">\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Ph\u00F3ng to\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Ph\u00F3ng to\"\n [disabled]=\"!controller()\"\n (click)=\"zoomIn()\"\n >\n <geo-icon type=\"plus\" size=\"sm\" />\n </button>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Thu nh\u1ECF\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Thu nh\u1ECF\"\n [disabled]=\"!controller()\"\n (click)=\"zoomOut()\"\n >\n <geo-icon type=\"minus\" size=\"sm\" />\n </button>\n\n @if (showNav()) {\n <span class=\"geo-map-zoom__divider\" aria-hidden=\"true\"></span>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n [class.geo-map-zoom__btn--active]=\"boxMode() === 'in'\"\n nz-tooltip=\"Ph\u00F3ng to theo v\u00F9ng (k\u00E9o khung)\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Ph\u00F3ng to theo v\u00F9ng\"\n [disabled]=\"!controller()\"\n (click)=\"toggleBoxZoom('in')\"\n >\n <geo-icon type=\"zoom-in\" size=\"sm\" />\n </button>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n [class.geo-map-zoom__btn--active]=\"boxMode() === 'out'\"\n nz-tooltip=\"Thu nh\u1ECF theo v\u00F9ng (k\u00E9o khung)\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Thu nh\u1ECF theo v\u00F9ng\"\n [disabled]=\"!controller()\"\n (click)=\"toggleBoxZoom('out')\"\n >\n <geo-icon type=\"zoom-out\" size=\"sm\" />\n </button>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Zoom tr\u01B0\u1EDBc\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Zoom tr\u01B0\u1EDBc\"\n [disabled]=\"!controller() || !canZoomPrev()\"\n (click)=\"zoomPrev()\"\n >\n <geo-icon type=\"left\" size=\"sm\" />\n </button>\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Zoom sau\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Zoom sau\"\n [disabled]=\"!controller() || !canZoomNext()\"\n (click)=\"zoomNext()\"\n >\n <geo-icon type=\"right\" size=\"sm\" />\n </button>\n @if (showFitProvince()) {\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n nz-tooltip=\"Xem to\u00E0n t\u1EC9nh\"\n nzTooltipPlacement=\"left\"\n aria-label=\"Xem to\u00E0n t\u1EC9nh\"\n [disabled]=\"!controller()\"\n (click)=\"fitProvince()\"\n >\n <geo-icon type=\"expand\" size=\"sm\" />\n </button>\n }\n <button\n type=\"button\"\n class=\"geo-map-zoom__btn\"\n [class.geo-map-zoom__btn--active]=\"isFullscreen()\"\n [nz-tooltip]=\"\n isFullscreen() ? 'Tho\u00E1t to\u00E0n m\u00E0n h\u00ECnh' : 'Xem to\u00E0n b\u1EA3n \u0111\u1ED3'\n \"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"\n isFullscreen() ? 'Tho\u00E1t to\u00E0n m\u00E0n h\u00ECnh' : 'Xem to\u00E0n b\u1EA3n \u0111\u1ED3'\n \"\n [disabled]=\"!controller()\"\n (click)=\"toggleFullscreen()\"\n >\n <geo-icon\n [type]=\"isFullscreen() ? 'fullscreen-exit' : 'fullscreen'\"\n size=\"sm\"\n />\n </button>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.geo-map-zoom-host{display:block}.geo-map-zoom{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:4px}.geo-map-zoom__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;min-height:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;padding:0}.geo-map-zoom__btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-zoom__btn:active:not(:disabled){transform:scale(.98)}.geo-map-zoom__btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-zoom__btn--active,.geo-map-zoom__btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-zoom__btn--icon-only{width:32px;padding:0}.geo-map-zoom__btn--active{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-zoom__dragbox{background:color-mix(in srgb,var(--geo-color-primary-default) 18%,transparent);border:2px solid var(--geo-color-primary-default)}.geo-map-zoom__divider{height:1px;margin:2px 6px;background:var(--geo-color-neutral-100)}\n"] }]
|
|
5993
6030
|
}], ctorParameters: () => [] });
|
|
5994
6031
|
|
|
5995
6032
|
/**
|
|
@@ -6051,11 +6088,11 @@ class GeoMapLocateComponent {
|
|
|
6051
6088
|
});
|
|
6052
6089
|
}
|
|
6053
6090
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLocateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6054
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoMapLocateComponent, isStandalone: true, selector: "geo-map-locate", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { located: "located", denied: "denied", locateError: "locateError" }, host: { classAttribute: "geo-map-locate-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-map-locate__btn\"\n [nz-tooltip]=\"label()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"label()\"\n [disabled]=\"!controller() || busy()\"\n (click)=\"locate()\"\n>\n <geo-icon type=\"aim\" size=\"
|
|
6091
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoMapLocateComponent, isStandalone: true, selector: "geo-map-locate", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { located: "located", denied: "denied", locateError: "locateError" }, host: { classAttribute: "geo-map-locate-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-map-locate__btn\"\n [nz-tooltip]=\"label()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"label()\"\n [disabled]=\"!controller() || busy()\"\n (click)=\"locate()\"\n>\n <geo-icon type=\"aim\" size=\"sm\" />\n</button>\n", styles: ["@charset \"UTF-8\";.geo-map-locate-host{display:block}.geo-map-locate__btn{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-height:32px;padding:0}.geo-map-locate__btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-locate__btn:active:not(:disabled){transform:scale(.98)}.geo-map-locate__btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-locate__btn--active,.geo-map-locate__btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-locate__btn--icon-only{width:32px;padding:0}\n"], dependencies: [{ kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i1$2.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6055
6092
|
}
|
|
6056
6093
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLocateComponent, decorators: [{
|
|
6057
6094
|
type: Component,
|
|
6058
|
-
args: [{ selector: 'geo-map-locate', standalone: true, imports: [GeoIconComponent, NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-locate-host' }, template: "<button\n type=\"button\"\n class=\"geo-map-locate__btn\"\n [nz-tooltip]=\"label()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"label()\"\n [disabled]=\"!controller() || busy()\"\n (click)=\"locate()\"\n>\n <geo-icon type=\"aim\" size=\"
|
|
6095
|
+
args: [{ selector: 'geo-map-locate', standalone: true, imports: [GeoIconComponent, NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-locate-host' }, template: "<button\n type=\"button\"\n class=\"geo-map-locate__btn\"\n [nz-tooltip]=\"label()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"label()\"\n [disabled]=\"!controller() || busy()\"\n (click)=\"locate()\"\n>\n <geo-icon type=\"aim\" size=\"sm\" />\n</button>\n", styles: ["@charset \"UTF-8\";.geo-map-locate-host{display:block}.geo-map-locate__btn{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-height:32px;padding:0}.geo-map-locate__btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-locate__btn:active:not(:disabled){transform:scale(.98)}.geo-map-locate__btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-locate__btn--active,.geo-map-locate__btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-locate__btn--icon-only{width:32px;padding:0}\n"] }]
|
|
6059
6096
|
}] });
|
|
6060
6097
|
|
|
6061
6098
|
/**
|
|
@@ -6139,11 +6176,11 @@ class GeoMapSnapshotComponent {
|
|
|
6139
6176
|
map.renderSync();
|
|
6140
6177
|
}
|
|
6141
6178
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapSnapshotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6142
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoMapSnapshotComponent, isStandalone: true, selector: "geo-map-snapshot", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, filename: { classPropertyName: "filename", publicName: "filename", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { captured: "captured", captureError: "captureError" }, host: { classAttribute: "geo-map-snapshot-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-map-snapshot__btn\"\n [nz-tooltip]=\"label()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"label()\"\n [disabled]=\"!controller() || busy()\"\n (click)=\"capture()\"\n>\n <geo-icon type=\"camera\" size=\"
|
|
6179
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoMapSnapshotComponent, isStandalone: true, selector: "geo-map-snapshot", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, filename: { classPropertyName: "filename", publicName: "filename", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { captured: "captured", captureError: "captureError" }, host: { classAttribute: "geo-map-snapshot-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-map-snapshot__btn\"\n [nz-tooltip]=\"label()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"label()\"\n [disabled]=\"!controller() || busy()\"\n (click)=\"capture()\"\n>\n <geo-icon type=\"camera\" size=\"sm\" />\n</button>\n", styles: ["@charset \"UTF-8\";.geo-map-snapshot-host{display:block}.geo-map-snapshot__btn{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-height:32px;padding:0}.geo-map-snapshot__btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-snapshot__btn:active:not(:disabled){transform:scale(.98)}.geo-map-snapshot__btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-snapshot__btn--active,.geo-map-snapshot__btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-snapshot__btn--icon-only{width:32px;padding:0}\n"], dependencies: [{ kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i1$2.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6143
6180
|
}
|
|
6144
6181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapSnapshotComponent, decorators: [{
|
|
6145
6182
|
type: Component,
|
|
6146
|
-
args: [{ selector: 'geo-map-snapshot', standalone: true, imports: [GeoIconComponent, NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-snapshot-host' }, template: "<button\n type=\"button\"\n class=\"geo-map-snapshot__btn\"\n [nz-tooltip]=\"label()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"label()\"\n [disabled]=\"!controller() || busy()\"\n (click)=\"capture()\"\n>\n <geo-icon type=\"camera\" size=\"
|
|
6183
|
+
args: [{ selector: 'geo-map-snapshot', standalone: true, imports: [GeoIconComponent, NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-snapshot-host' }, template: "<button\n type=\"button\"\n class=\"geo-map-snapshot__btn\"\n [nz-tooltip]=\"label()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"label()\"\n [disabled]=\"!controller() || busy()\"\n (click)=\"capture()\"\n>\n <geo-icon type=\"camera\" size=\"sm\" />\n</button>\n", styles: ["@charset \"UTF-8\";.geo-map-snapshot-host{display:block}.geo-map-snapshot__btn{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-height:32px;padding:0}.geo-map-snapshot__btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-snapshot__btn:active:not(:disabled){transform:scale(.98)}.geo-map-snapshot__btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-snapshot__btn--active,.geo-map-snapshot__btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-snapshot__btn--icon-only{width:32px;padding:0}\n"] }]
|
|
6147
6184
|
}] });
|
|
6148
6185
|
|
|
6149
6186
|
/**
|
|
@@ -6195,11 +6232,11 @@ class GeoMapBasemapSwitcherComponent {
|
|
|
6195
6232
|
this.basemapChange.emit(next.basemap);
|
|
6196
6233
|
}
|
|
6197
6234
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapBasemapSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6198
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapBasemapSwitcherComponent, isStandalone: true, selector: "geo-map-basemap-switcher", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedId: "selectedIdChange", basemapChange: "basemapChange" }, host: { classAttribute: "geo-map-basemap-switcher-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-map-basemap-switcher__trigger\"\n [nz-tooltip]=\"tooltipText()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"tooltipText()\"\n (click)=\"toggle()\"\n>\n @if (next(); as option) {\n @if (option.previewUrl; as url) {\n <img class=\"geo-map-basemap-switcher__preview\" [src]=\"url\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__veil\" aria-hidden=\"true\"></span>\n <span class=\"geo-map-basemap-switcher__content\">\n <span class=\"geo-map-basemap-switcher__icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 4.2 3 8.7l9 4.5 9-4.5-9-4.5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 15.3 12 19.8l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"geo-map-basemap-switcher__caption\">{{ label() }}</span>\n </span>\n</button>\n", styles: [".geo-map-basemap-switcher-host{display:block}.geo-map-basemap-switcher__trigger{position:relative;display:block;width:
|
|
6235
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapBasemapSwitcherComponent, isStandalone: true, selector: "geo-map-basemap-switcher", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedId: "selectedIdChange", basemapChange: "basemapChange" }, host: { classAttribute: "geo-map-basemap-switcher-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-map-basemap-switcher__trigger\"\n [nz-tooltip]=\"tooltipText()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"tooltipText()\"\n (click)=\"toggle()\"\n>\n @if (next(); as option) {\n @if (option.previewUrl; as url) {\n <img class=\"geo-map-basemap-switcher__preview\" [src]=\"url\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__veil\" aria-hidden=\"true\"></span>\n <span class=\"geo-map-basemap-switcher__content\">\n <span class=\"geo-map-basemap-switcher__icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 4.2 3 8.7l9 4.5 9-4.5-9-4.5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 15.3 12 19.8l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"geo-map-basemap-switcher__caption\">{{ label() }}</span>\n </span>\n</button>\n", styles: [".geo-map-basemap-switcher-host{display:block}.geo-map-basemap-switcher__trigger{position:relative;display:block;width:56px;height:56px;padding:0;overflow:hidden;border:2px solid var(--geo-color-neutral-white, #fff);border-radius:var(--geo-radius-lg);background:var(--geo-color-neutral-800);box-shadow:var(--geo-shadow-md);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.geo-map-basemap-switcher__trigger:hover{box-shadow:var(--geo-shadow-lg, var(--geo-shadow-md));transform:translateY(-1px)}.geo-map-basemap-switcher__trigger:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-map-basemap-switcher__preview{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.geo-map-basemap-switcher__preview--empty{background:linear-gradient(145deg,var(--geo-color-neutral-600),var(--geo-color-neutral-800))}.geo-map-basemap-switcher__veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--geo-color-neutral-900) 55%,transparent) 100%)}.geo-map-basemap-switcher__content{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:2px;padding:0 6px 6px;color:var(--geo-color-neutral-white, #fff);pointer-events:none}.geo-map-basemap-switcher__icon{display:inline-flex;width:14px;height:14px;color:inherit;filter:drop-shadow(0 1px 2px color-mix(in srgb,var(--geo-color-neutral-900) 45%,transparent))}.geo-map-basemap-switcher__icon svg{width:100%;height:100%}.geo-map-basemap-switcher__caption{max-width:100%;font-size:var(--geo-font-size-tiny);font-weight:var(--geo-font-weight-semibold);line-height:1.2;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px color-mix(in srgb,var(--geo-color-neutral-900) 55%,transparent)}\n"], dependencies: [{ kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i1$2.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6199
6236
|
}
|
|
6200
6237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapBasemapSwitcherComponent, decorators: [{
|
|
6201
6238
|
type: Component,
|
|
6202
|
-
args: [{ selector: 'geo-map-basemap-switcher', standalone: true, imports: [NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-basemap-switcher-host' }, template: "<button\n type=\"button\"\n class=\"geo-map-basemap-switcher__trigger\"\n [nz-tooltip]=\"tooltipText()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"tooltipText()\"\n (click)=\"toggle()\"\n>\n @if (next(); as option) {\n @if (option.previewUrl; as url) {\n <img class=\"geo-map-basemap-switcher__preview\" [src]=\"url\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__veil\" aria-hidden=\"true\"></span>\n <span class=\"geo-map-basemap-switcher__content\">\n <span class=\"geo-map-basemap-switcher__icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 4.2 3 8.7l9 4.5 9-4.5-9-4.5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 15.3 12 19.8l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"geo-map-basemap-switcher__caption\">{{ label() }}</span>\n </span>\n</button>\n", styles: [".geo-map-basemap-switcher-host{display:block}.geo-map-basemap-switcher__trigger{position:relative;display:block;width:
|
|
6239
|
+
args: [{ selector: 'geo-map-basemap-switcher', standalone: true, imports: [NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-basemap-switcher-host' }, template: "<button\n type=\"button\"\n class=\"geo-map-basemap-switcher__trigger\"\n [nz-tooltip]=\"tooltipText()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"tooltipText()\"\n (click)=\"toggle()\"\n>\n @if (next(); as option) {\n @if (option.previewUrl; as url) {\n <img class=\"geo-map-basemap-switcher__preview\" [src]=\"url\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__veil\" aria-hidden=\"true\"></span>\n <span class=\"geo-map-basemap-switcher__content\">\n <span class=\"geo-map-basemap-switcher__icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 4.2 3 8.7l9 4.5 9-4.5-9-4.5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 15.3 12 19.8l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"geo-map-basemap-switcher__caption\">{{ label() }}</span>\n </span>\n</button>\n", styles: [".geo-map-basemap-switcher-host{display:block}.geo-map-basemap-switcher__trigger{position:relative;display:block;width:56px;height:56px;padding:0;overflow:hidden;border:2px solid var(--geo-color-neutral-white, #fff);border-radius:var(--geo-radius-lg);background:var(--geo-color-neutral-800);box-shadow:var(--geo-shadow-md);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.geo-map-basemap-switcher__trigger:hover{box-shadow:var(--geo-shadow-lg, var(--geo-shadow-md));transform:translateY(-1px)}.geo-map-basemap-switcher__trigger:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-map-basemap-switcher__preview{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.geo-map-basemap-switcher__preview--empty{background:linear-gradient(145deg,var(--geo-color-neutral-600),var(--geo-color-neutral-800))}.geo-map-basemap-switcher__veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--geo-color-neutral-900) 55%,transparent) 100%)}.geo-map-basemap-switcher__content{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:2px;padding:0 6px 6px;color:var(--geo-color-neutral-white, #fff);pointer-events:none}.geo-map-basemap-switcher__icon{display:inline-flex;width:14px;height:14px;color:inherit;filter:drop-shadow(0 1px 2px color-mix(in srgb,var(--geo-color-neutral-900) 45%,transparent))}.geo-map-basemap-switcher__icon svg{width:100%;height:100%}.geo-map-basemap-switcher__caption{max-width:100%;font-size:var(--geo-font-size-tiny);font-weight:var(--geo-font-weight-semibold);line-height:1.2;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px color-mix(in srgb,var(--geo-color-neutral-900) 55%,transparent)}\n"] }]
|
|
6203
6240
|
}] });
|
|
6204
6241
|
|
|
6205
6242
|
/**
|
|
@@ -6639,7 +6676,7 @@ class GeoMapOpacityComponent {
|
|
|
6639
6676
|
return this.layerOptions()[0]?.id ?? null;
|
|
6640
6677
|
}
|
|
6641
6678
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapOpacityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6642
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapOpacityComponent, isStandalone: true, selector: "geo-map-opacity", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, layerId: { classPropertyName: "layerId", publicName: "layerId", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: "opacity", publicName: "opacity", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, applyToFirstLayer: { classPropertyName: "applyToFirstLayer", publicName: "applyToFirstLayer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { layerId: "layerIdChange", opacity: "opacityChange" }, host: { classAttribute: "geo-map-opacity-host" }, ngImport: i0, template: "@if (variant() === 'compact') {\n <button\n type=\"button\"\n class=\"geo-map-opacity__trigger\"\n nz-dropdown\n nzTrigger=\"click\"\n nzPlacement=\"bottomLeft\"\n nzOverlayClassName=\"geo-map-opacity-overlay\"\n [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"open()\"\n (nzVisibleChange)=\"onVisible($event)\"\n [nz-tooltip]=\"title()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"title()\"\n [disabled]=\"!controller()\"\n >\n <geo-icon type=\"bg-colors\" size=\"
|
|
6679
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapOpacityComponent, isStandalone: true, selector: "geo-map-opacity", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, layerId: { classPropertyName: "layerId", publicName: "layerId", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: "opacity", publicName: "opacity", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, applyToFirstLayer: { classPropertyName: "applyToFirstLayer", publicName: "applyToFirstLayer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { layerId: "layerIdChange", opacity: "opacityChange" }, host: { classAttribute: "geo-map-opacity-host" }, ngImport: i0, template: "@if (variant() === 'compact') {\n <button\n type=\"button\"\n class=\"geo-map-opacity__trigger\"\n nz-dropdown\n nzTrigger=\"click\"\n nzPlacement=\"bottomLeft\"\n nzOverlayClassName=\"geo-map-opacity-overlay\"\n [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"open()\"\n (nzVisibleChange)=\"onVisible($event)\"\n [nz-tooltip]=\"title()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"title()\"\n [disabled]=\"!controller()\"\n >\n <geo-icon type=\"bg-colors\" size=\"sm\" />\n </button>\n\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div class=\"geo-map-opacity__panel geo-map-opacity__panel--popup\">\n <div class=\"geo-map-opacity__title\">{{ title() }}</div>\n @if (layerOptions().length > 1) {\n <ul class=\"geo-map-opacity__layers\">\n @for (layer of layerOptions(); track layer.id) {\n <li>\n <button\n type=\"button\"\n class=\"geo-map-opacity__layer\"\n [class.geo-map-opacity__layer--active]=\"\n layer.id === (layerId() || layerOptions()[0].id)\n \"\n (click)=\"selectLayer(layer.id)\"\n >\n {{ layer.title }}\n </button>\n </li>\n }\n </ul>\n } @else if (layerOptions().length === 1) {\n <div class=\"geo-map-opacity__layer-name\">\n {{ layerOptions()[0].title }}\n </div>\n } @else {\n <div class=\"geo-map-opacity__empty\">Ch\u01B0a c\u00F3 l\u1EDBp \u0111\u1EC3 ch\u1EC9nh.</div>\n }\n\n <div class=\"geo-map-opacity__slider\">\n <geo-slider [(value)]=\"opacity\" [min]=\"0\" [max]=\"100\" [step]=\"1\" />\n <span class=\"geo-map-opacity__value\">{{ opacity() }}%</span>\n </div>\n </div>\n </nz-dropdown-menu>\n} @else {\n <div class=\"geo-map-opacity__panel\">\n <div class=\"geo-map-opacity__title\">{{ title() }}</div>\n @if (layerOptions().length > 1) {\n <ul class=\"geo-map-opacity__layers\">\n @for (layer of layerOptions(); track layer.id) {\n <li>\n <button\n type=\"button\"\n class=\"geo-map-opacity__layer\"\n [class.geo-map-opacity__layer--active]=\"\n layer.id === (layerId() || layerOptions()[0].id)\n \"\n (click)=\"selectLayer(layer.id)\"\n >\n {{ layer.title }}\n </button>\n </li>\n }\n </ul>\n } @else if (layerOptions().length === 1) {\n <div class=\"geo-map-opacity__layer-name\">{{ layerOptions()[0].title }}</div>\n } @else {\n <div class=\"geo-map-opacity__empty\">Ch\u01B0a c\u00F3 l\u1EDBp \u0111\u1EC3 ch\u1EC9nh.</div>\n }\n\n <div class=\"geo-map-opacity__slider\">\n <geo-slider [(value)]=\"opacity\" [min]=\"0\" [max]=\"100\" [step]=\"1\" />\n <span class=\"geo-map-opacity__value\">{{ opacity() }}%</span>\n </div>\n </div>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-opacity-host{display:block}.geo-map-opacity__trigger{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-height:32px;padding:0}.geo-map-opacity__trigger:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-opacity__trigger:active:not(:disabled){transform:scale(.98)}.geo-map-opacity__trigger:disabled{opacity:.45;cursor:not-allowed}.geo-map-opacity__trigger--active,.geo-map-opacity__trigger--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-opacity__trigger--icon-only{width:32px;padding:0}.geo-map-opacity-overlay .ant-dropdown-menu{padding:0;border:0;background:transparent;box-shadow:none}.geo-map-opacity__panel{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);min-width:220px;padding:10px 12px}.geo-map-opacity__panel--popup{box-shadow:var(--geo-shadow-md)}.geo-map-opacity__title{margin-bottom:8px;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-map-opacity__layers{display:flex;flex-direction:column;gap:4px;margin:0 0 10px;padding:0;list-style:none}.geo-map-opacity__layer{width:100%;padding:6px 8px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-800);font:inherit;font-size:var(--geo-font-size-body-small);text-align:left;cursor:pointer}.geo-map-opacity__layer:hover{background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-opacity__layer--active{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default);font-weight:var(--geo-font-weight-semibold)}.geo-map-opacity__layer-name,.geo-map-opacity__empty{margin-bottom:8px;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-600)}.geo-map-opacity__slider{display:flex;align-items:center;gap:10px}.geo-map-opacity__slider geo-slider{flex:1;min-width:0}.geo-map-opacity__value{flex-shrink:0;min-width:40px;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-700);text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i2$6.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$6.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i1$2.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "component", type: GeoSliderComponent, selector: "geo-slider", inputs: ["value", "min", "max", "step", "disabled", "tipFormatter"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6643
6680
|
}
|
|
6644
6681
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapOpacityComponent, decorators: [{
|
|
6645
6682
|
type: Component,
|
|
@@ -6648,7 +6685,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
6648
6685
|
NzToolTipModule,
|
|
6649
6686
|
GeoIconComponent,
|
|
6650
6687
|
GeoSliderComponent,
|
|
6651
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-opacity-host' }, template: "@if (variant() === 'compact') {\n <button\n type=\"button\"\n class=\"geo-map-opacity__trigger\"\n nz-dropdown\n nzTrigger=\"click\"\n nzPlacement=\"bottomLeft\"\n nzOverlayClassName=\"geo-map-opacity-overlay\"\n [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"open()\"\n (nzVisibleChange)=\"onVisible($event)\"\n [nz-tooltip]=\"title()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"title()\"\n [disabled]=\"!controller()\"\n >\n <geo-icon type=\"bg-colors\" size=\"
|
|
6688
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-opacity-host' }, template: "@if (variant() === 'compact') {\n <button\n type=\"button\"\n class=\"geo-map-opacity__trigger\"\n nz-dropdown\n nzTrigger=\"click\"\n nzPlacement=\"bottomLeft\"\n nzOverlayClassName=\"geo-map-opacity-overlay\"\n [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"open()\"\n (nzVisibleChange)=\"onVisible($event)\"\n [nz-tooltip]=\"title()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"title()\"\n [disabled]=\"!controller()\"\n >\n <geo-icon type=\"bg-colors\" size=\"sm\" />\n </button>\n\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div class=\"geo-map-opacity__panel geo-map-opacity__panel--popup\">\n <div class=\"geo-map-opacity__title\">{{ title() }}</div>\n @if (layerOptions().length > 1) {\n <ul class=\"geo-map-opacity__layers\">\n @for (layer of layerOptions(); track layer.id) {\n <li>\n <button\n type=\"button\"\n class=\"geo-map-opacity__layer\"\n [class.geo-map-opacity__layer--active]=\"\n layer.id === (layerId() || layerOptions()[0].id)\n \"\n (click)=\"selectLayer(layer.id)\"\n >\n {{ layer.title }}\n </button>\n </li>\n }\n </ul>\n } @else if (layerOptions().length === 1) {\n <div class=\"geo-map-opacity__layer-name\">\n {{ layerOptions()[0].title }}\n </div>\n } @else {\n <div class=\"geo-map-opacity__empty\">Ch\u01B0a c\u00F3 l\u1EDBp \u0111\u1EC3 ch\u1EC9nh.</div>\n }\n\n <div class=\"geo-map-opacity__slider\">\n <geo-slider [(value)]=\"opacity\" [min]=\"0\" [max]=\"100\" [step]=\"1\" />\n <span class=\"geo-map-opacity__value\">{{ opacity() }}%</span>\n </div>\n </div>\n </nz-dropdown-menu>\n} @else {\n <div class=\"geo-map-opacity__panel\">\n <div class=\"geo-map-opacity__title\">{{ title() }}</div>\n @if (layerOptions().length > 1) {\n <ul class=\"geo-map-opacity__layers\">\n @for (layer of layerOptions(); track layer.id) {\n <li>\n <button\n type=\"button\"\n class=\"geo-map-opacity__layer\"\n [class.geo-map-opacity__layer--active]=\"\n layer.id === (layerId() || layerOptions()[0].id)\n \"\n (click)=\"selectLayer(layer.id)\"\n >\n {{ layer.title }}\n </button>\n </li>\n }\n </ul>\n } @else if (layerOptions().length === 1) {\n <div class=\"geo-map-opacity__layer-name\">{{ layerOptions()[0].title }}</div>\n } @else {\n <div class=\"geo-map-opacity__empty\">Ch\u01B0a c\u00F3 l\u1EDBp \u0111\u1EC3 ch\u1EC9nh.</div>\n }\n\n <div class=\"geo-map-opacity__slider\">\n <geo-slider [(value)]=\"opacity\" [min]=\"0\" [max]=\"100\" [step]=\"1\" />\n <span class=\"geo-map-opacity__value\">{{ opacity() }}%</span>\n </div>\n </div>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-opacity-host{display:block}.geo-map-opacity__trigger{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-height:32px;padding:0}.geo-map-opacity__trigger:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-opacity__trigger:active:not(:disabled){transform:scale(.98)}.geo-map-opacity__trigger:disabled{opacity:.45;cursor:not-allowed}.geo-map-opacity__trigger--active,.geo-map-opacity__trigger--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-opacity__trigger--icon-only{width:32px;padding:0}.geo-map-opacity-overlay .ant-dropdown-menu{padding:0;border:0;background:transparent;box-shadow:none}.geo-map-opacity__panel{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);min-width:220px;padding:10px 12px}.geo-map-opacity__panel--popup{box-shadow:var(--geo-shadow-md)}.geo-map-opacity__title{margin-bottom:8px;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-map-opacity__layers{display:flex;flex-direction:column;gap:4px;margin:0 0 10px;padding:0;list-style:none}.geo-map-opacity__layer{width:100%;padding:6px 8px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-800);font:inherit;font-size:var(--geo-font-size-body-small);text-align:left;cursor:pointer}.geo-map-opacity__layer:hover{background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-opacity__layer--active{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default);font-weight:var(--geo-font-weight-semibold)}.geo-map-opacity__layer-name,.geo-map-opacity__empty{margin-bottom:8px;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-600)}.geo-map-opacity__slider{display:flex;align-items:center;gap:10px}.geo-map-opacity__slider geo-slider{flex:1;min-width:0}.geo-map-opacity__value{flex-shrink:0;min-width:40px;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-700);text-align:right}\n"] }]
|
|
6652
6689
|
}], ctorParameters: () => [] });
|
|
6653
6690
|
|
|
6654
6691
|
/**
|
|
@@ -6661,6 +6698,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
6661
6698
|
class GeoMapLegendComponent {
|
|
6662
6699
|
title = input('Chú giải');
|
|
6663
6700
|
items = input([]);
|
|
6701
|
+
/** True khi danh mục chú giải không tải được (`ERR_MAP_LEGEND_CATALOG_MISSING`). */
|
|
6702
|
+
catalogMissing = input(false);
|
|
6664
6703
|
open = model(false);
|
|
6665
6704
|
closed = output();
|
|
6666
6705
|
onClose() {
|
|
@@ -6668,14 +6707,14 @@ class GeoMapLegendComponent {
|
|
|
6668
6707
|
this.closed.emit();
|
|
6669
6708
|
}
|
|
6670
6709
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6671
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapLegendComponent, isStandalone: true, selector: "geo-map-legend", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", closed: "closed" }, host: { properties: { "class.geo-map-legend-host--open": "open()" }, classAttribute: "geo-map-legend-host" }, ngImport: i0, template: "@if (open()) {\n <aside class=\"geo-map-legend\" role=\"dialog\" [attr.aria-label]=\"title()\">\n <header class=\"geo-map-legend__header\">\n <h3 class=\"geo-map-legend__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-legend__close\"\n aria-label=\"\u0110\u00F3ng ch\u00FA gi\u1EA3i\"\n (click)=\"onClose()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <ul class=\"geo-map-legend__list\">\n
|
|
6710
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapLegendComponent, isStandalone: true, selector: "geo-map-legend", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, catalogMissing: { classPropertyName: "catalogMissing", publicName: "catalogMissing", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", closed: "closed" }, host: { properties: { "class.geo-map-legend-host--open": "open()" }, classAttribute: "geo-map-legend-host" }, ngImport: i0, template: "@if (open()) {\n <aside class=\"geo-map-legend\" role=\"dialog\" [attr.aria-label]=\"title()\">\n <header class=\"geo-map-legend__header\">\n <h3 class=\"geo-map-legend__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-legend__close\"\n aria-label=\"\u0110\u00F3ng ch\u00FA gi\u1EA3i\"\n (click)=\"onClose()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n @if (catalogMissing()) {\n <p class=\"geo-map-legend__notice\">\n Kh\u00F4ng t\u1EA3i \u0111\u01B0\u1EE3c danh m\u1EE5c ch\u00FA gi\u1EA3i. Vui l\u00F2ng th\u1EED l\u1EA1i sau.\n </p>\n } @else {\n <ul class=\"geo-map-legend__list\">\n @for (item of items(); track item.code || item.label) {\n <li class=\"geo-map-legend__item\">\n @if (item.swatchUrl) {\n <img class=\"geo-map-legend__swatch\" [src]=\"item.swatchUrl\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-legend__swatch geo-map-legend__swatch--color\"\n [style.background]=\"item.color || 'var(--geo-color-neutral-300)'\"\n ></span>\n }\n <span class=\"geo-map-legend__text\">\n @if (item.code) {\n <span class=\"geo-map-legend__code\">{{ item.code }}</span>\n }\n <span class=\"geo-map-legend__label\">{{ item.label }}</span>\n </span>\n </li>\n } @empty {\n <li class=\"geo-map-legend__empty\">Ch\u01B0a c\u00F3 m\u1EE5c ch\u00FA gi\u1EA3i.</li>\n }\n </ul>\n }\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-legend-host{display:none;max-width:min(320px,100%)}.geo-map-legend-host--open{display:block}.geo-map-legend{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(320px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden}.geo-map-legend__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-legend__title{margin:0;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-legend__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0}.geo-map-legend__close:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-legend__close:active:not(:disabled){transform:scale(.98)}.geo-map-legend__close:disabled{opacity:.45;cursor:not-allowed}.geo-map-legend__close--active,.geo-map-legend__close--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-legend__close--icon-only{width:32px;padding:0}.geo-map-legend__list{margin:0;padding:8px 12px 12px;list-style:none;overflow:auto}.geo-map-legend__item{display:flex;align-items:center;gap:10px;padding:6px 4px}.geo-map-legend__swatch{flex-shrink:0;width:20px;height:20px;border-radius:var(--geo-radius-sm);border:1px solid var(--geo-color-neutral-200);object-fit:cover}.geo-map-legend__swatch--color{display:inline-block}.geo-map-legend__text{display:flex;flex-direction:column;gap:1px;min-width:0}.geo-map-legend__code{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-500)}.geo-map-legend__label{font-size:var(--geo-font-size-body-small);color:var(--geo-color-neutral-800)}.geo-map-legend__empty{padding:8px 4px;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-legend__notice{margin:0;padding:12px 16px 14px;font-size:var(--geo-font-size-body-small);color:var(--geo-color-error-default)}\n"], dependencies: [{ kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6672
6711
|
}
|
|
6673
6712
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLegendComponent, decorators: [{
|
|
6674
6713
|
type: Component,
|
|
6675
6714
|
args: [{ selector: 'geo-map-legend', standalone: true, imports: [GeoIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
6676
6715
|
class: 'geo-map-legend-host',
|
|
6677
6716
|
'[class.geo-map-legend-host--open]': 'open()',
|
|
6678
|
-
}, template: "@if (open()) {\n <aside class=\"geo-map-legend\" role=\"dialog\" [attr.aria-label]=\"title()\">\n <header class=\"geo-map-legend__header\">\n <h3 class=\"geo-map-legend__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-legend__close\"\n aria-label=\"\u0110\u00F3ng ch\u00FA gi\u1EA3i\"\n (click)=\"onClose()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <ul class=\"geo-map-legend__list\">\n
|
|
6717
|
+
}, template: "@if (open()) {\n <aside class=\"geo-map-legend\" role=\"dialog\" [attr.aria-label]=\"title()\">\n <header class=\"geo-map-legend__header\">\n <h3 class=\"geo-map-legend__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-legend__close\"\n aria-label=\"\u0110\u00F3ng ch\u00FA gi\u1EA3i\"\n (click)=\"onClose()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n @if (catalogMissing()) {\n <p class=\"geo-map-legend__notice\">\n Kh\u00F4ng t\u1EA3i \u0111\u01B0\u1EE3c danh m\u1EE5c ch\u00FA gi\u1EA3i. Vui l\u00F2ng th\u1EED l\u1EA1i sau.\n </p>\n } @else {\n <ul class=\"geo-map-legend__list\">\n @for (item of items(); track item.code || item.label) {\n <li class=\"geo-map-legend__item\">\n @if (item.swatchUrl) {\n <img class=\"geo-map-legend__swatch\" [src]=\"item.swatchUrl\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-legend__swatch geo-map-legend__swatch--color\"\n [style.background]=\"item.color || 'var(--geo-color-neutral-300)'\"\n ></span>\n }\n <span class=\"geo-map-legend__text\">\n @if (item.code) {\n <span class=\"geo-map-legend__code\">{{ item.code }}</span>\n }\n <span class=\"geo-map-legend__label\">{{ item.label }}</span>\n </span>\n </li>\n } @empty {\n <li class=\"geo-map-legend__empty\">Ch\u01B0a c\u00F3 m\u1EE5c ch\u00FA gi\u1EA3i.</li>\n }\n </ul>\n }\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-legend-host{display:none;max-width:min(320px,100%)}.geo-map-legend-host--open{display:block}.geo-map-legend{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(320px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden}.geo-map-legend__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-legend__title{margin:0;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-legend__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0}.geo-map-legend__close:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-legend__close:active:not(:disabled){transform:scale(.98)}.geo-map-legend__close:disabled{opacity:.45;cursor:not-allowed}.geo-map-legend__close--active,.geo-map-legend__close--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-legend__close--icon-only{width:32px;padding:0}.geo-map-legend__list{margin:0;padding:8px 12px 12px;list-style:none;overflow:auto}.geo-map-legend__item{display:flex;align-items:center;gap:10px;padding:6px 4px}.geo-map-legend__swatch{flex-shrink:0;width:20px;height:20px;border-radius:var(--geo-radius-sm);border:1px solid var(--geo-color-neutral-200);object-fit:cover}.geo-map-legend__swatch--color{display:inline-block}.geo-map-legend__text{display:flex;flex-direction:column;gap:1px;min-width:0}.geo-map-legend__code{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-500)}.geo-map-legend__label{font-size:var(--geo-font-size-body-small);color:var(--geo-color-neutral-800)}.geo-map-legend__empty{padding:8px 4px;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-legend__notice{margin:0;padding:12px 16px 14px;font-size:var(--geo-font-size-body-small);color:var(--geo-color-error-default)}\n"] }]
|
|
6679
6718
|
}] });
|
|
6680
6719
|
|
|
6681
6720
|
const GROUP_META = {
|
|
@@ -6860,14 +6899,14 @@ class GeoMapLayersDrawerComponent {
|
|
|
6860
6899
|
this.closed.emit();
|
|
6861
6900
|
}
|
|
6862
6901
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLayersDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6863
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapLayersDrawerComponent, isStandalone: true, selector: "geo-map-layers-drawer", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, legendItems: { classPropertyName: "legendItems", publicName: "legendItems", isSignal: true, isRequired: false, transformFunction: null }, showOpacity: { classPropertyName: "showOpacity", publicName: "showOpacity", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, layers: { classPropertyName: "layers", publicName: "layers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", layers: "layersChange", closed: "closed" }, host: { properties: { "class.geo-map-layers-drawer-host--open": "open()" }, classAttribute: "geo-map-layers-drawer-host" }, ngImport: i0, template: "@if (open()) {\n <aside class=\"geo-map-layers-drawer\" role=\"dialog\" aria-label=\"L\u1EDBp b\u1EA3n \u0111\u1ED3\">\n <header class=\"geo-map-layers-drawer__header\">\n <h3 class=\"geo-map-layers-drawer__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-layers-drawer__close\"\n aria-label=\"\u0110\u00F3ng l\u1EDBp b\u1EA3n \u0111\u1ED3\"\n (click)=\"onClose()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-layers-drawer__body\">\n <geo-map-layer-panel\n [embedded]=\"true\"\n [controller]=\"controller()\"\n [(layers)]=\"layers\"\n />\n </div>\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-layers-drawer-host{display:none}.geo-map-layers-drawer-host--open{display:block}.geo-map-layers-drawer{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(400px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden}.geo-map-layers-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-layers-drawer__title{margin:0;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-layers-drawer__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;
|
|
6902
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapLayersDrawerComponent, isStandalone: true, selector: "geo-map-layers-drawer", inputs: { controller: { classPropertyName: "controller", publicName: "controller", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, legendItems: { classPropertyName: "legendItems", publicName: "legendItems", isSignal: true, isRequired: false, transformFunction: null }, showOpacity: { classPropertyName: "showOpacity", publicName: "showOpacity", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, layers: { classPropertyName: "layers", publicName: "layers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", layers: "layersChange", closed: "closed" }, host: { properties: { "class.geo-map-layers-drawer-host--open": "open()" }, classAttribute: "geo-map-layers-drawer-host" }, ngImport: i0, template: "@if (open()) {\n <aside class=\"geo-map-layers-drawer\" role=\"dialog\" aria-label=\"L\u1EDBp b\u1EA3n \u0111\u1ED3\">\n <header class=\"geo-map-layers-drawer__header\">\n <h3 class=\"geo-map-layers-drawer__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-layers-drawer__close\"\n aria-label=\"\u0110\u00F3ng l\u1EDBp b\u1EA3n \u0111\u1ED3\"\n (click)=\"onClose()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-layers-drawer__body\">\n <geo-map-layer-panel\n [embedded]=\"true\"\n [controller]=\"controller()\"\n [(layers)]=\"layers\"\n />\n </div>\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-layers-drawer-host{display:none}.geo-map-layers-drawer-host--open{display:block}.geo-map-layers-drawer{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(400px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden}.geo-map-layers-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-layers-drawer__title{margin:0;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-layers-drawer__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0;color:var(--geo-color-neutral-500)}.geo-map-layers-drawer__close:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-layers-drawer__close:active:not(:disabled){transform:scale(.98)}.geo-map-layers-drawer__close:disabled{opacity:.45;cursor:not-allowed}.geo-map-layers-drawer__close--active,.geo-map-layers-drawer__close--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-layers-drawer__close--icon-only{width:32px;padding:0}.geo-map-layers-drawer__body{padding:4px 16px 14px;overflow:auto}\n"], dependencies: [{ kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "component", type: GeoMapLayerPanelComponent, selector: "geo-map-layer-panel", inputs: ["controller", "title", "embedded", "layers"], outputs: ["layersChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6864
6903
|
}
|
|
6865
6904
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLayersDrawerComponent, decorators: [{
|
|
6866
6905
|
type: Component,
|
|
6867
6906
|
args: [{ selector: 'geo-map-layers-drawer', standalone: true, imports: [GeoIconComponent, GeoMapLayerPanelComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
6868
6907
|
class: 'geo-map-layers-drawer-host',
|
|
6869
6908
|
'[class.geo-map-layers-drawer-host--open]': 'open()',
|
|
6870
|
-
}, template: "@if (open()) {\n <aside class=\"geo-map-layers-drawer\" role=\"dialog\" aria-label=\"L\u1EDBp b\u1EA3n \u0111\u1ED3\">\n <header class=\"geo-map-layers-drawer__header\">\n <h3 class=\"geo-map-layers-drawer__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-layers-drawer__close\"\n aria-label=\"\u0110\u00F3ng l\u1EDBp b\u1EA3n \u0111\u1ED3\"\n (click)=\"onClose()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-layers-drawer__body\">\n <geo-map-layer-panel\n [embedded]=\"true\"\n [controller]=\"controller()\"\n [(layers)]=\"layers\"\n />\n </div>\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-layers-drawer-host{display:none}.geo-map-layers-drawer-host--open{display:block}.geo-map-layers-drawer{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(400px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden}.geo-map-layers-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-layers-drawer__title{margin:0;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-layers-drawer__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;
|
|
6909
|
+
}, template: "@if (open()) {\n <aside class=\"geo-map-layers-drawer\" role=\"dialog\" aria-label=\"L\u1EDBp b\u1EA3n \u0111\u1ED3\">\n <header class=\"geo-map-layers-drawer__header\">\n <h3 class=\"geo-map-layers-drawer__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-layers-drawer__close\"\n aria-label=\"\u0110\u00F3ng l\u1EDBp b\u1EA3n \u0111\u1ED3\"\n (click)=\"onClose()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-layers-drawer__body\">\n <geo-map-layer-panel\n [embedded]=\"true\"\n [controller]=\"controller()\"\n [(layers)]=\"layers\"\n />\n </div>\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-layers-drawer-host{display:none}.geo-map-layers-drawer-host--open{display:block}.geo-map-layers-drawer{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(400px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden}.geo-map-layers-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-layers-drawer__title{margin:0;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-layers-drawer__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0;color:var(--geo-color-neutral-500)}.geo-map-layers-drawer__close:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-layers-drawer__close:active:not(:disabled){transform:scale(.98)}.geo-map-layers-drawer__close:disabled{opacity:.45;cursor:not-allowed}.geo-map-layers-drawer__close--active,.geo-map-layers-drawer__close--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-layers-drawer__close--icon-only{width:32px;padding:0}.geo-map-layers-drawer__body{padding:4px 16px 14px;overflow:auto}\n"] }]
|
|
6871
6910
|
}] });
|
|
6872
6911
|
|
|
6873
6912
|
/**
|
|
@@ -7028,6 +7067,8 @@ class GeoMapAdminFilterComponent {
|
|
|
7028
7067
|
open = model(false);
|
|
7029
7068
|
title = input('Đơn vị hành chính');
|
|
7030
7069
|
nodes = input([]);
|
|
7070
|
+
/** `single` — chọn đúng 1 xã/phường (BR-06-03); `multi` — checkbox nhiều cấp (mặc định). */
|
|
7071
|
+
selectionMode = input('multi');
|
|
7031
7072
|
checkedKeys = model([]);
|
|
7032
7073
|
expandedKeys = model([]);
|
|
7033
7074
|
apply = output();
|
|
@@ -7054,14 +7095,14 @@ class GeoMapAdminFilterComponent {
|
|
|
7054
7095
|
this.closed.emit();
|
|
7055
7096
|
}
|
|
7056
7097
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapAdminFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7057
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapAdminFilterComponent, isStandalone: true, selector: "geo-map-admin-filter", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, checkedKeys: { classPropertyName: "checkedKeys", publicName: "checkedKeys", isSignal: true, isRequired: false, transformFunction: null }, expandedKeys: { classPropertyName: "expandedKeys", publicName: "expandedKeys", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", checkedKeys: "checkedKeysChange", expandedKeys: "expandedKeysChange", apply: "apply", reset: "reset", fitProvince: "fitProvince", closed: "closed", selectionChange: "selectionChange" }, host: { properties: { "class.geo-map-admin-filter-host--open": "open()" }, classAttribute: "geo-map-admin-filter-host" }, ngImport: i0, template: "@if (open()) {\n <section class=\"geo-map-admin-filter\" aria-label=\"L\u1ECDc \u0111\u01A1n v\u1ECB h\u00E0nh ch\u00EDnh\">\n <header class=\"geo-map-admin-filter__header\">\n <h3 class=\"geo-map-admin-filter__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-admin-filter__icon-btn\"\n aria-label=\"\u0110\u00F3ng b\u1ED9 l\u1ECDc\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-admin-filter__body\">\n <geo-tree\n [nodes]=\"nodes()\"\n [checkable]=\"
|
|
7098
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapAdminFilterComponent, isStandalone: true, selector: "geo-map-admin-filter", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, checkedKeys: { classPropertyName: "checkedKeys", publicName: "checkedKeys", isSignal: true, isRequired: false, transformFunction: null }, expandedKeys: { classPropertyName: "expandedKeys", publicName: "expandedKeys", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", checkedKeys: "checkedKeysChange", expandedKeys: "expandedKeysChange", apply: "apply", reset: "reset", fitProvince: "fitProvince", closed: "closed", selectionChange: "selectionChange" }, host: { properties: { "class.geo-map-admin-filter-host--open": "open()" }, classAttribute: "geo-map-admin-filter-host" }, ngImport: i0, template: "@if (open()) {\n <section class=\"geo-map-admin-filter\" aria-label=\"L\u1ECDc \u0111\u01A1n v\u1ECB h\u00E0nh ch\u00EDnh\">\n <header class=\"geo-map-admin-filter__header\">\n <h3 class=\"geo-map-admin-filter__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-admin-filter__icon-btn\"\n aria-label=\"\u0110\u00F3ng b\u1ED9 l\u1ECDc\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-admin-filter__body\">\n <geo-tree\n [nodes]=\"nodes()\"\n [selectionMode]=\"selectionMode()\"\n [checkable]=\"selectionMode() === 'multi'\"\n [checkedKeys]=\"checkedKeys()\"\n [selectedKeys]=\"checkedKeys()\"\n [expandedKeys]=\"expandedKeys()\"\n (checkedKeysChange)=\"onCheckedChange($event)\"\n (selectedKeysChange)=\"onCheckedChange($event)\"\n (expandedKeysChange)=\"expandedKeys.set($event)\"\n />\n </div>\n\n <footer class=\"geo-map-admin-filter__footer\">\n <geo-button appearance=\"secondary\" (clicked)=\"onFitProvince()\">\n Xem to\u00E0n t\u1EC9nh\n </geo-button>\n <div class=\"geo-map-admin-filter__footer-end\">\n <geo-button appearance=\"secondary\" (clicked)=\"onReset()\">\n \u0110\u1EB7t l\u1EA1i\n </geo-button>\n <geo-button appearance=\"primary\" (clicked)=\"onApply()\">\n \u00C1p d\u1EE5ng\n </geo-button>\n </div>\n </footer>\n </section>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-admin-filter-host{display:none}.geo-map-admin-filter-host--open{display:block}.geo-map-admin-filter{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);width:min(320px,100vw - 32px);max-height:min(520px,75vh);display:flex;flex-direction:column;overflow:hidden}.geo-map-admin-filter__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-admin-filter__title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-map-admin-filter__icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0}.geo-map-admin-filter__icon-btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-admin-filter__icon-btn:active:not(:disabled){transform:scale(.98)}.geo-map-admin-filter__icon-btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-admin-filter__icon-btn--active,.geo-map-admin-filter__icon-btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-admin-filter__icon-btn--icon-only{width:32px;padding:0}.geo-map-admin-filter__body{padding:8px 10px;overflow:auto;flex:1;min-height:160px}.geo-map-admin-filter__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-top:1px solid var(--geo-color-neutral-100)}.geo-map-admin-filter__footer-end{display:flex;gap:8px;margin-left:auto}\n"], dependencies: [{ kind: "component", type: GeoButtonComponent, selector: "geo-button", inputs: ["appearance", "color", "icon", "iconTheme", "iconPlacement", "iconOnly", "type", "disabled", "tooltip", "tooltipPlacement", "active", "title"], outputs: ["clicked"] }, { kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "component", type: GeoTreeComponent, selector: "geo-tree", inputs: ["nodes", "checkable", "selectionMode", "checkedKeys", "selectedKeys", "expandedKeys", "showLine", "blockNode"], outputs: ["checkedKeysChange", "selectedKeysChange", "expandedKeysChange", "nodeClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7058
7099
|
}
|
|
7059
7100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapAdminFilterComponent, decorators: [{
|
|
7060
7101
|
type: Component,
|
|
7061
7102
|
args: [{ selector: 'geo-map-admin-filter', standalone: true, imports: [GeoButtonComponent, GeoIconComponent, GeoTreeComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
7062
7103
|
class: 'geo-map-admin-filter-host',
|
|
7063
7104
|
'[class.geo-map-admin-filter-host--open]': 'open()',
|
|
7064
|
-
}, template: "@if (open()) {\n <section class=\"geo-map-admin-filter\" aria-label=\"L\u1ECDc \u0111\u01A1n v\u1ECB h\u00E0nh ch\u00EDnh\">\n <header class=\"geo-map-admin-filter__header\">\n <h3 class=\"geo-map-admin-filter__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-admin-filter__icon-btn\"\n aria-label=\"\u0110\u00F3ng b\u1ED9 l\u1ECDc\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-admin-filter__body\">\n <geo-tree\n [nodes]=\"nodes()\"\n [checkable]=\"
|
|
7105
|
+
}, template: "@if (open()) {\n <section class=\"geo-map-admin-filter\" aria-label=\"L\u1ECDc \u0111\u01A1n v\u1ECB h\u00E0nh ch\u00EDnh\">\n <header class=\"geo-map-admin-filter__header\">\n <h3 class=\"geo-map-admin-filter__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-admin-filter__icon-btn\"\n aria-label=\"\u0110\u00F3ng b\u1ED9 l\u1ECDc\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-admin-filter__body\">\n <geo-tree\n [nodes]=\"nodes()\"\n [selectionMode]=\"selectionMode()\"\n [checkable]=\"selectionMode() === 'multi'\"\n [checkedKeys]=\"checkedKeys()\"\n [selectedKeys]=\"checkedKeys()\"\n [expandedKeys]=\"expandedKeys()\"\n (checkedKeysChange)=\"onCheckedChange($event)\"\n (selectedKeysChange)=\"onCheckedChange($event)\"\n (expandedKeysChange)=\"expandedKeys.set($event)\"\n />\n </div>\n\n <footer class=\"geo-map-admin-filter__footer\">\n <geo-button appearance=\"secondary\" (clicked)=\"onFitProvince()\">\n Xem to\u00E0n t\u1EC9nh\n </geo-button>\n <div class=\"geo-map-admin-filter__footer-end\">\n <geo-button appearance=\"secondary\" (clicked)=\"onReset()\">\n \u0110\u1EB7t l\u1EA1i\n </geo-button>\n <geo-button appearance=\"primary\" (clicked)=\"onApply()\">\n \u00C1p d\u1EE5ng\n </geo-button>\n </div>\n </footer>\n </section>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-admin-filter-host{display:none}.geo-map-admin-filter-host--open{display:block}.geo-map-admin-filter{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);width:min(320px,100vw - 32px);max-height:min(520px,75vh);display:flex;flex-direction:column;overflow:hidden}.geo-map-admin-filter__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-admin-filter__title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-map-admin-filter__icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0}.geo-map-admin-filter__icon-btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-admin-filter__icon-btn:active:not(:disabled){transform:scale(.98)}.geo-map-admin-filter__icon-btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-admin-filter__icon-btn--active,.geo-map-admin-filter__icon-btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-admin-filter__icon-btn--icon-only{width:32px;padding:0}.geo-map-admin-filter__body{padding:8px 10px;overflow:auto;flex:1;min-height:160px}.geo-map-admin-filter__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-top:1px solid var(--geo-color-neutral-100)}.geo-map-admin-filter__footer-end{display:flex;gap:8px;margin-left:auto}\n"] }]
|
|
7065
7106
|
}] });
|
|
7066
7107
|
|
|
7067
7108
|
/**
|
|
@@ -7205,14 +7246,14 @@ class GeoMapParcelPopupComponent {
|
|
|
7205
7246
|
}
|
|
7206
7247
|
}
|
|
7207
7248
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapParcelPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7208
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapParcelPopupComponent, isStandalone: true, selector: "geo-map-parcel-popup", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, parcel: { classPropertyName: "parcel", publicName: "parcel", isSignal: true, isRequired: false, transformFunction: null }, audience: { classPropertyName: "audience", publicName: "audience", isSignal: true, isRequired: false, transformFunction: null }, showExport: { classPropertyName: "showExport", publicName: "showExport", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", closed: "closed", back: "back", exportClick: "exportClick", diagramClick: "diagramClick" }, host: { properties: { "class.geo-map-parcel-popup-host--open": "open()" }, classAttribute: "geo-map-parcel-popup-host" }, ngImport: i0, template: "@if (open() && parcel(); as data) {\n <aside class=\"geo-map-parcel-popup\" role=\"dialog\" aria-label=\"Th\u00F4ng tin th\u1EEDa \u0111\u1EA5t\">\n <header class=\"geo-map-parcel-popup__header\">\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__back\"\n aria-label=\"Quay l\u1EA1i\"\n (click)=\"onBack()\"\n >\n <geo-icon type=\"arrow-left\" size=\"sm\" />\n </button>\n <h3 class=\"geo-map-parcel-popup__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__close\"\n aria-label=\"\u0110\u00F3ng chi ti\u1EBFt\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-parcel-popup__body\">\n @for (section of sections(); track section.id) {\n <section class=\"geo-map-parcel-popup__section\">\n <div class=\"geo-map-parcel-popup__section-head\">\n <h4 class=\"geo-map-parcel-popup__section-title\">\n <geo-icon [type]=\"section.icon\" size=\"sm\" />\n <span>{{ section.title }}</span>\n </h4>\n @if (section.diagram) {\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__link\"\n (click)=\"onDiagramDetail()\"\n >\n Chi ti\u1EBFt\n </button>\n }\n </div>\n\n @if (section.rows?.length) {\n <dl class=\"geo-map-parcel-popup__rows\">\n @for (row of section.rows; track row.label) {\n <div class=\"geo-map-parcel-popup__row\">\n <dt>{{ row.label }}:</dt>\n <dd>{{ row.value }}</dd>\n </div>\n }\n </dl>\n } @else if (section.value) {\n <p class=\"geo-map-parcel-popup__value\">{{ section.value }}</p>\n }\n\n @if (section.diagram) {\n <div class=\"geo-map-parcel-popup__diagram\">\n @if (data.diagramUrl) {\n <img\n class=\"geo-map-parcel-popup__diagram-img\"\n [src]=\"data.diagramUrl\"\n alt=\"S\u01A1 \u0111\u1ED3 th\u1EEDa \u0111\u1EA5t\"\n />\n } @else {\n <div class=\"geo-map-parcel-popup__diagram-placeholder\" aria-hidden=\"true\">\n <geo-icon type=\"picture\" size=\"lg\" />\n <span>S\u01A1 \u0111\u1ED3 th\u1EEDa \u0111\u1EA5t</span>\n </div>\n }\n </div>\n }\n </section>\n }\n </div>\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-parcel-popup-host{display:none}.geo-map-parcel-popup-host--open{display:block}.geo-map-parcel-popup{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(400px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden;--geo-parcel-content-indent: 24px}.geo-map-parcel-popup__header{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-parcel-popup__title{margin:0;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-parcel-popup__back,.geo-map-parcel-popup__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:
|
|
7249
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapParcelPopupComponent, isStandalone: true, selector: "geo-map-parcel-popup", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, parcel: { classPropertyName: "parcel", publicName: "parcel", isSignal: true, isRequired: false, transformFunction: null }, audience: { classPropertyName: "audience", publicName: "audience", isSignal: true, isRequired: false, transformFunction: null }, showExport: { classPropertyName: "showExport", publicName: "showExport", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", closed: "closed", back: "back", exportClick: "exportClick", diagramClick: "diagramClick" }, host: { properties: { "class.geo-map-parcel-popup-host--open": "open()" }, classAttribute: "geo-map-parcel-popup-host" }, ngImport: i0, template: "@if (open() && parcel(); as data) {\n <aside class=\"geo-map-parcel-popup\" role=\"dialog\" aria-label=\"Th\u00F4ng tin th\u1EEDa \u0111\u1EA5t\">\n <header class=\"geo-map-parcel-popup__header\">\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__back\"\n aria-label=\"Quay l\u1EA1i\"\n (click)=\"onBack()\"\n >\n <geo-icon type=\"arrow-left\" size=\"sm\" />\n </button>\n <h3 class=\"geo-map-parcel-popup__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__close\"\n aria-label=\"\u0110\u00F3ng chi ti\u1EBFt\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-parcel-popup__body\">\n @for (section of sections(); track section.id) {\n <section class=\"geo-map-parcel-popup__section\">\n <div class=\"geo-map-parcel-popup__section-head\">\n <h4 class=\"geo-map-parcel-popup__section-title\">\n <geo-icon [type]=\"section.icon\" size=\"sm\" />\n <span>{{ section.title }}</span>\n </h4>\n @if (section.diagram) {\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__link\"\n (click)=\"onDiagramDetail()\"\n >\n Chi ti\u1EBFt\n </button>\n }\n </div>\n\n @if (section.rows?.length) {\n <dl class=\"geo-map-parcel-popup__rows\">\n @for (row of section.rows; track row.label) {\n <div class=\"geo-map-parcel-popup__row\">\n <dt>{{ row.label }}:</dt>\n <dd>{{ row.value }}</dd>\n </div>\n }\n </dl>\n } @else if (section.value) {\n <p class=\"geo-map-parcel-popup__value\">{{ section.value }}</p>\n }\n\n @if (section.diagram) {\n <div class=\"geo-map-parcel-popup__diagram\">\n @if (data.diagramUrl) {\n <img\n class=\"geo-map-parcel-popup__diagram-img\"\n [src]=\"data.diagramUrl\"\n alt=\"S\u01A1 \u0111\u1ED3 th\u1EEDa \u0111\u1EA5t\"\n />\n } @else {\n <div class=\"geo-map-parcel-popup__diagram-placeholder\" aria-hidden=\"true\">\n <geo-icon type=\"picture\" size=\"lg\" />\n <span>S\u01A1 \u0111\u1ED3 th\u1EEDa \u0111\u1EA5t</span>\n </div>\n }\n </div>\n }\n </section>\n }\n </div>\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-parcel-popup-host{display:none}.geo-map-parcel-popup-host--open{display:block}.geo-map-parcel-popup{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(400px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden;--geo-parcel-content-indent: 24px}.geo-map-parcel-popup__header{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-parcel-popup__title{margin:0;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-parcel-popup__back,.geo-map-parcel-popup__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;min-height:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:36px;min-width:36px;min-height:36px;padding:0}.geo-map-parcel-popup__back:hover:not(:disabled),.geo-map-parcel-popup__close:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__back:active:not(:disabled),.geo-map-parcel-popup__close:active:not(:disabled){transform:scale(.98)}.geo-map-parcel-popup__back:disabled,.geo-map-parcel-popup__close:disabled{opacity:.45;cursor:not-allowed}.geo-map-parcel-popup__back--active,.geo-map-parcel-popup__back--checked,.geo-map-parcel-popup__close--active,.geo-map-parcel-popup__close--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__back--icon-only,.geo-map-parcel-popup__close--icon-only{width:32px;padding:0}.geo-map-parcel-popup__back{border-radius:var(--geo-radius);background:var(--geo-color-primary-surface-light);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__back:hover:not(:disabled){background:var(--geo-color-primary-soft-strong);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__close{color:var(--geo-color-neutral-500)}.geo-map-parcel-popup__body{display:flex;flex-direction:column;gap:16px;padding:14px 16px 18px;overflow:auto}.geo-map-parcel-popup__section{display:flex;flex-direction:column;gap:8px}.geo-map-parcel-popup__section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.geo-map-parcel-popup__section-title{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900);line-height:1.3}.geo-map-parcel-popup__section-title geo-icon,.geo-map-parcel-popup__section-title .geo-icon-host{flex-shrink:0;width:16px;color:var(--geo-color-neutral-900)}.geo-map-parcel-popup__link{flex-shrink:0;padding:0;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__link:hover{text-decoration:underline}.geo-map-parcel-popup__link:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:2px}.geo-map-parcel-popup__rows{margin:0;padding-left:var(--geo-parcel-content-indent);display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:8px;row-gap:6px}.geo-map-parcel-popup__row{display:contents}.geo-map-parcel-popup__row dt{margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-regular, 400);color:var(--geo-color-neutral-600)}.geo-map-parcel-popup__row dd{margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-neutral-900);word-break:break-word}.geo-map-parcel-popup__value{margin:0;padding-left:var(--geo-parcel-content-indent);font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-neutral-900);line-height:1.45}.geo-map-parcel-popup__diagram{margin-left:var(--geo-parcel-content-indent);overflow:hidden;border-radius:var(--geo-radius);border:1px solid var(--geo-color-border-default);background:var(--geo-color-neutral-50)}.geo-map-parcel-popup__diagram-img{display:block;width:100%;height:auto;max-height:160px;object-fit:cover}.geo-map-parcel-popup__diagram-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:120px;padding:16px;color:var(--geo-color-neutral-400);font-size:var(--geo-font-size-caption);background:linear-gradient(135deg,color-mix(in srgb,var(--geo-color-primary-soft) 80%,transparent) 0%,transparent 45%),repeating-linear-gradient(-12deg,transparent,transparent 10px,color-mix(in srgb,var(--geo-color-neutral-200) 55%,transparent) 10px,color-mix(in srgb,var(--geo-color-neutral-200) 55%,transparent) 11px)}\n"], dependencies: [{ kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7209
7250
|
}
|
|
7210
7251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapParcelPopupComponent, decorators: [{
|
|
7211
7252
|
type: Component,
|
|
7212
7253
|
args: [{ selector: 'geo-map-parcel-popup', standalone: true, imports: [GeoIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
7213
7254
|
class: 'geo-map-parcel-popup-host',
|
|
7214
7255
|
'[class.geo-map-parcel-popup-host--open]': 'open()',
|
|
7215
|
-
}, template: "@if (open() && parcel(); as data) {\n <aside class=\"geo-map-parcel-popup\" role=\"dialog\" aria-label=\"Th\u00F4ng tin th\u1EEDa \u0111\u1EA5t\">\n <header class=\"geo-map-parcel-popup__header\">\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__back\"\n aria-label=\"Quay l\u1EA1i\"\n (click)=\"onBack()\"\n >\n <geo-icon type=\"arrow-left\" size=\"sm\" />\n </button>\n <h3 class=\"geo-map-parcel-popup__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__close\"\n aria-label=\"\u0110\u00F3ng chi ti\u1EBFt\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-parcel-popup__body\">\n @for (section of sections(); track section.id) {\n <section class=\"geo-map-parcel-popup__section\">\n <div class=\"geo-map-parcel-popup__section-head\">\n <h4 class=\"geo-map-parcel-popup__section-title\">\n <geo-icon [type]=\"section.icon\" size=\"sm\" />\n <span>{{ section.title }}</span>\n </h4>\n @if (section.diagram) {\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__link\"\n (click)=\"onDiagramDetail()\"\n >\n Chi ti\u1EBFt\n </button>\n }\n </div>\n\n @if (section.rows?.length) {\n <dl class=\"geo-map-parcel-popup__rows\">\n @for (row of section.rows; track row.label) {\n <div class=\"geo-map-parcel-popup__row\">\n <dt>{{ row.label }}:</dt>\n <dd>{{ row.value }}</dd>\n </div>\n }\n </dl>\n } @else if (section.value) {\n <p class=\"geo-map-parcel-popup__value\">{{ section.value }}</p>\n }\n\n @if (section.diagram) {\n <div class=\"geo-map-parcel-popup__diagram\">\n @if (data.diagramUrl) {\n <img\n class=\"geo-map-parcel-popup__diagram-img\"\n [src]=\"data.diagramUrl\"\n alt=\"S\u01A1 \u0111\u1ED3 th\u1EEDa \u0111\u1EA5t\"\n />\n } @else {\n <div class=\"geo-map-parcel-popup__diagram-placeholder\" aria-hidden=\"true\">\n <geo-icon type=\"picture\" size=\"lg\" />\n <span>S\u01A1 \u0111\u1ED3 th\u1EEDa \u0111\u1EA5t</span>\n </div>\n }\n </div>\n }\n </section>\n }\n </div>\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-parcel-popup-host{display:none}.geo-map-parcel-popup-host--open{display:block}.geo-map-parcel-popup{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(400px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden;--geo-parcel-content-indent: 24px}.geo-map-parcel-popup__header{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-parcel-popup__title{margin:0;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-parcel-popup__back,.geo-map-parcel-popup__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:
|
|
7256
|
+
}, template: "@if (open() && parcel(); as data) {\n <aside class=\"geo-map-parcel-popup\" role=\"dialog\" aria-label=\"Th\u00F4ng tin th\u1EEDa \u0111\u1EA5t\">\n <header class=\"geo-map-parcel-popup__header\">\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__back\"\n aria-label=\"Quay l\u1EA1i\"\n (click)=\"onBack()\"\n >\n <geo-icon type=\"arrow-left\" size=\"sm\" />\n </button>\n <h3 class=\"geo-map-parcel-popup__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__close\"\n aria-label=\"\u0110\u00F3ng chi ti\u1EBFt\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-parcel-popup__body\">\n @for (section of sections(); track section.id) {\n <section class=\"geo-map-parcel-popup__section\">\n <div class=\"geo-map-parcel-popup__section-head\">\n <h4 class=\"geo-map-parcel-popup__section-title\">\n <geo-icon [type]=\"section.icon\" size=\"sm\" />\n <span>{{ section.title }}</span>\n </h4>\n @if (section.diagram) {\n <button\n type=\"button\"\n class=\"geo-map-parcel-popup__link\"\n (click)=\"onDiagramDetail()\"\n >\n Chi ti\u1EBFt\n </button>\n }\n </div>\n\n @if (section.rows?.length) {\n <dl class=\"geo-map-parcel-popup__rows\">\n @for (row of section.rows; track row.label) {\n <div class=\"geo-map-parcel-popup__row\">\n <dt>{{ row.label }}:</dt>\n <dd>{{ row.value }}</dd>\n </div>\n }\n </dl>\n } @else if (section.value) {\n <p class=\"geo-map-parcel-popup__value\">{{ section.value }}</p>\n }\n\n @if (section.diagram) {\n <div class=\"geo-map-parcel-popup__diagram\">\n @if (data.diagramUrl) {\n <img\n class=\"geo-map-parcel-popup__diagram-img\"\n [src]=\"data.diagramUrl\"\n alt=\"S\u01A1 \u0111\u1ED3 th\u1EEDa \u0111\u1EA5t\"\n />\n } @else {\n <div class=\"geo-map-parcel-popup__diagram-placeholder\" aria-hidden=\"true\">\n <geo-icon type=\"picture\" size=\"lg\" />\n <span>S\u01A1 \u0111\u1ED3 th\u1EEDa \u0111\u1EA5t</span>\n </div>\n }\n </div>\n }\n </section>\n }\n </div>\n </aside>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-parcel-popup-host{display:none}.geo-map-parcel-popup-host--open{display:block}.geo-map-parcel-popup{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);display:flex;flex-direction:column;width:min(400px,100vw - 32px);max-height:min(640px,100dvh - 100px);overflow:hidden;--geo-parcel-content-indent: 24px}.geo-map-parcel-popup__header{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-parcel-popup__title{margin:0;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;color:var(--geo-color-neutral-900)}.geo-map-parcel-popup__back,.geo-map-parcel-popup__close{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:32px;min-height:32px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:36px;min-width:36px;min-height:36px;padding:0}.geo-map-parcel-popup__back:hover:not(:disabled),.geo-map-parcel-popup__close:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__back:active:not(:disabled),.geo-map-parcel-popup__close:active:not(:disabled){transform:scale(.98)}.geo-map-parcel-popup__back:disabled,.geo-map-parcel-popup__close:disabled{opacity:.45;cursor:not-allowed}.geo-map-parcel-popup__back--active,.geo-map-parcel-popup__back--checked,.geo-map-parcel-popup__close--active,.geo-map-parcel-popup__close--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__back--icon-only,.geo-map-parcel-popup__close--icon-only{width:32px;padding:0}.geo-map-parcel-popup__back{border-radius:var(--geo-radius);background:var(--geo-color-primary-surface-light);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__back:hover:not(:disabled){background:var(--geo-color-primary-soft-strong);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__close{color:var(--geo-color-neutral-500)}.geo-map-parcel-popup__body{display:flex;flex-direction:column;gap:16px;padding:14px 16px 18px;overflow:auto}.geo-map-parcel-popup__section{display:flex;flex-direction:column;gap:8px}.geo-map-parcel-popup__section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.geo-map-parcel-popup__section-title{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900);line-height:1.3}.geo-map-parcel-popup__section-title geo-icon,.geo-map-parcel-popup__section-title .geo-icon-host{flex-shrink:0;width:16px;color:var(--geo-color-neutral-900)}.geo-map-parcel-popup__link{flex-shrink:0;padding:0;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-primary-default)}.geo-map-parcel-popup__link:hover{text-decoration:underline}.geo-map-parcel-popup__link:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:2px}.geo-map-parcel-popup__rows{margin:0;padding-left:var(--geo-parcel-content-indent);display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:8px;row-gap:6px}.geo-map-parcel-popup__row{display:contents}.geo-map-parcel-popup__row dt{margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-regular, 400);color:var(--geo-color-neutral-600)}.geo-map-parcel-popup__row dd{margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-neutral-900);word-break:break-word}.geo-map-parcel-popup__value{margin:0;padding-left:var(--geo-parcel-content-indent);font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-neutral-900);line-height:1.45}.geo-map-parcel-popup__diagram{margin-left:var(--geo-parcel-content-indent);overflow:hidden;border-radius:var(--geo-radius);border:1px solid var(--geo-color-border-default);background:var(--geo-color-neutral-50)}.geo-map-parcel-popup__diagram-img{display:block;width:100%;height:auto;max-height:160px;object-fit:cover}.geo-map-parcel-popup__diagram-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:120px;padding:16px;color:var(--geo-color-neutral-400);font-size:var(--geo-font-size-caption);background:linear-gradient(135deg,color-mix(in srgb,var(--geo-color-primary-soft) 80%,transparent) 0%,transparent 45%),repeating-linear-gradient(-12deg,transparent,transparent 10px,color-mix(in srgb,var(--geo-color-neutral-200) 55%,transparent) 10px,color-mix(in srgb,var(--geo-color-neutral-200) 55%,transparent) 11px)}\n"] }]
|
|
7216
7257
|
}] });
|
|
7217
7258
|
|
|
7218
7259
|
const MODE_TILES = [
|
|
@@ -7373,7 +7414,7 @@ class GeoMapSearchComponent {
|
|
|
7373
7414
|
this.closed.emit();
|
|
7374
7415
|
}
|
|
7375
7416
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7376
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapSearchComponent, isStandalone: true, selector: "geo-map-search", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, results: { classPropertyName: "results", publicName: "results", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, pageIndex: { classPropertyName: "pageIndex", publicName: "pageIndex", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", mode: "modeChange", pageIndex: "pageIndexChange", pageSize: "pageSizeChange", search: "search", reset: "reset", resultSelect: "resultSelect", closed: "closed" }, host: { properties: { "class.geo-map-search-host--open": "open()" }, classAttribute: "geo-map-search-host" }, ngImport: i0, template: "@if (open()) {\n <section class=\"geo-map-search\" aria-label=\"Tra c\u1EE9u th\u00F4ng tin quy ho\u1EA1ch\">\n <header class=\"geo-map-search__header\">\n <h3 class=\"geo-map-search__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-search__icon-btn\"\n aria-label=\"\u0110\u00F3ng tra c\u1EE9u\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-search__body\">\n <div class=\"geo-map-search__modes\" role=\"listbox\" aria-label=\"H\u00ECnh th\u1EE9c tra c\u1EE9u\">\n @for (tile of modeTiles; track tile.id) {\n <button\n type=\"button\"\n class=\"geo-map-search__mode\"\n role=\"option\"\n [class.geo-map-search__mode--active]=\"formOpen() && mode() === tile.id\"\n [attr.aria-selected]=\"formOpen() && mode() === tile.id\"\n (click)=\"selectMode(tile.id)\"\n >\n <span class=\"geo-map-search__mode-icon\" aria-hidden=\"true\">\n <geo-icon [type]=\"tile.icon\" size=\"md\" />\n </span>\n <span class=\"geo-map-search__mode-label\">{{ tile.label }}</span>\n </button>\n }\n </div>\n\n @if (formOpen()) {\n <section class=\"geo-map-search__form\" [attr.aria-label]=\"modeHeading()\">\n <div class=\"geo-map-search__form-head\">\n <h4 class=\"geo-map-search__form-title\">{{ modeHeading() }}</h4>\n <button\n type=\"button\"\n class=\"geo-map-search__icon-btn geo-map-search__icon-btn--sm\"\n aria-label=\"Thu g\u1ECDn form t\u00ECm ki\u1EBFm\"\n (click)=\"collapseForm()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </div>\n\n <div\n class=\"geo-map-search__fields\"\n [class.geo-map-search__fields--inline]=\"fieldsInline()\"\n >\n @for (field of fields(); track field.key) {\n <geo-input\n [label]=\"field.label\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.type ?? 'text'\"\n [ngModel]=\"fieldValue(field.key)\"\n (ngModelChange)=\"setField(field.key, $event)\"\n (enterPressed)=\"submit()\"\n [allowClear]=\"true\"\n [block]=\"true\"\n />\n }\n </div>\n\n <div class=\"geo-map-search__actions\">\n <geo-button\n appearance=\"primary\"\n icon=\"search\"\n [disabled]=\"loading()\"\n (clicked)=\"submit()\"\n >\n T\u00ECm ki\u1EBFm\n </geo-button>\n <geo-button\n appearance=\"secondary\"\n icon=\"reload\"\n (clicked)=\"onReset()\"\n >\n \u0110\u1EB7t l\u1EA1i\n </geo-button>\n </div>\n </section>\n }\n\n @if (formOpen() && (loading() || hasSearched())) {\n <div class=\"geo-map-search__results\" aria-live=\"polite\">\n @if (loading()) {\n <p class=\"geo-map-search__hint\">\u0110ang t\u00ECm ki\u1EBFm\u2026</p>\n } @else if (!results().length) {\n <p class=\"geo-map-search__hint\">{{ emptyText() }}</p>\n } @else {\n <ul class=\"geo-map-search__list\">\n @for (item of results(); track item.id) {\n <li class=\"geo-map-search__result\">\n <div class=\"geo-map-search__result-head\">\n <span class=\"geo-map-search__result-map\">{{ mapLabel(item) }}</span>\n <button\n type=\"button\"\n class=\"geo-map-search__detail-link\"\n (click)=\"selectResult(item)\"\n >\n Chi ti\u1EBFt\n </button>\n </div>\n @if (item.parcel; as parcel) {\n <dl class=\"geo-map-search__result-meta\">\n @if (parcel.ward) {\n <div class=\"geo-map-search__result-row\">\n <dt>X\u00E3:</dt>\n <dd>{{ parcel.ward }}</dd>\n </div>\n }\n @if (parcel.province) {\n <div class=\"geo-map-search__result-row\">\n <dt>T\u1EC9nh:</dt>\n <dd>{{ parcel.province }}</dd>\n </div>\n }\n @if (parcel.area) {\n <div class=\"geo-map-search__result-row\">\n <dt>Di\u1EC7n t\u00EDch:</dt>\n <dd>{{ parcel.area }}</dd>\n </div>\n }\n </dl>\n } @else if (item.subtitle) {\n <p class=\"geo-map-search__result-sub\">{{ item.subtitle }}</p>\n }\n </li>\n }\n </ul>\n\n @if (resolvedTotal() > pageSize()) {\n <geo-pagination\n class=\"geo-map-search__paging\"\n [(pageIndex)]=\"pageIndex\"\n [(pageSize)]=\"pageSize\"\n [total]=\"resolvedTotal()\"\n size=\"small\"\n [simple]=\"true\"\n />\n }\n }\n </div>\n }\n </div>\n </section>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-search-host{display:none}.geo-map-search-host--open{display:block}.geo-map-search{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);width:min(420px,100vw - 32px);max-height:min(640px,82vh);overflow:hidden;display:flex;flex-direction:column}.geo-map-search__header{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 40px 12px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-search__title{margin:0;max-width:100%;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;line-height:1.35;color:var(--geo-color-neutral-900)}.geo-map-search__header .geo-map-search__icon-btn{position:absolute;top:8px;right:8px}.geo-map-search__icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:40px;min-height:40px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0;color:var(--geo-color-neutral-500)}.geo-map-search__icon-btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-search__icon-btn:active:not(:disabled){transform:scale(.98)}.geo-map-search__icon-btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-search__icon-btn--active,.geo-map-search__icon-btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-search__icon-btn--icon-only{width:40px;padding:0}.geo-map-search__icon-btn--sm{width:28px;min-width:28px;min-height:28px}.geo-map-search__body{display:flex;flex-direction:column;gap:14px;padding:14px 16px 16px;overflow:auto}.geo-map-search__modes{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 12px}.geo-map-search__mode{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:104px;padding:0;border:0;background:transparent;cursor:pointer;color:var(--geo-color-primary-default);font:inherit}.geo-map-search__mode:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:var(--geo-radius)}.geo-map-search__mode-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--geo-color-primary-default);background:var(--geo-color-primary-soft, var(--geo-color-primary-surface-light));color:var(--geo-color-primary-default);transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.geo-map-search__mode:hover .geo-map-search__mode-icon{background:var(--geo-color-primary-soft-hover)}.geo-map-search__mode--active .geo-map-search__mode-icon{background:var(--geo-color-primary-soft-active);box-shadow:inset 0 0 0 1px var(--geo-color-primary-default)}.geo-map-search__mode-label{text-align:center;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-medium);line-height:1.3;color:var(--geo-color-primary-default)}.geo-map-search__form{display:flex;flex-direction:column;gap:12px;padding-top:4px;border-top:1px solid var(--geo-color-neutral-100)}.geo-map-search__form-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:28px;padding:0 28px}.geo-map-search__form-title{margin:0;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);letter-spacing:.03em;color:var(--geo-color-neutral-900)}.geo-map-search__form-head .geo-map-search__icon-btn{position:absolute;top:50%;right:0;transform:translateY(-50%)}.geo-map-search__fields{display:flex;flex-direction:column;gap:10px}.geo-map-search__fields--inline,.geo-map-search__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.geo-map-search__actions>geo-button{display:block;min-width:0}.geo-map-search__actions .geo-button{width:100%}.geo-map-search__results{display:flex;flex-direction:column;gap:10px;padding-top:4px;border-top:1px solid var(--geo-color-primary-default)}.geo-map-search__hint{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.geo-map-search__result{display:flex;flex-direction:column;gap:8px;padding:0}.geo-map-search__result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.geo-map-search__result-map{font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900);line-height:1.4}.geo-map-search__detail-link{flex-shrink:0;padding:0;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-primary-default);text-decoration:none}.geo-map-search__detail-link:hover{text-decoration:underline}.geo-map-search__detail-link:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:2px}.geo-map-search__result-meta{margin:0;display:flex;flex-direction:column;gap:4px}.geo-map-search__result-row{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:baseline}.geo-map-search__result-row dt{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__result-row dd{margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-map-search__result-sub{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__paging{display:flex;justify-content:center;margin-top:2px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: GeoButtonComponent, selector: "geo-button", inputs: ["appearance", "color", "icon", "iconTheme", "iconPlacement", "iconOnly", "type", "disabled", "tooltip", "tooltipPlacement", "active", "title"], outputs: ["clicked"] }, { kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "component", type: GeoInputComponent, selector: "geo-input", inputs: ["label", "placeholder", "type", "disabled", "readonly", "required", "error", "errorMessage", "maxlength", "prefixIcon", "suffixIcon", "allowClear", "block", "width"], outputs: ["valueChange", "enterPressed"] }, { kind: "component", type: GeoPaginationComponent, selector: "geo-pagination", inputs: ["pageIndex", "pageSize", "total", "size", "simple", "hideOnSinglePage", "showSizeChanger", "pageSizeOptions"], outputs: ["pageIndexChange", "pageSizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7417
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapSearchComponent, isStandalone: true, selector: "geo-map-search", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, results: { classPropertyName: "results", publicName: "results", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, pageIndex: { classPropertyName: "pageIndex", publicName: "pageIndex", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", mode: "modeChange", pageIndex: "pageIndexChange", pageSize: "pageSizeChange", search: "search", reset: "reset", resultSelect: "resultSelect", closed: "closed" }, host: { properties: { "class.geo-map-search-host--open": "open()" }, classAttribute: "geo-map-search-host" }, ngImport: i0, template: "@if (open()) {\n <section class=\"geo-map-search\" aria-label=\"Tra c\u1EE9u th\u00F4ng tin quy ho\u1EA1ch\">\n <header class=\"geo-map-search__header\">\n <h3 class=\"geo-map-search__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-search__icon-btn\"\n aria-label=\"\u0110\u00F3ng tra c\u1EE9u\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-search__body\">\n <div class=\"geo-map-search__modes\" role=\"listbox\" aria-label=\"H\u00ECnh th\u1EE9c tra c\u1EE9u\">\n @for (tile of modeTiles; track tile.id) {\n <button\n type=\"button\"\n class=\"geo-map-search__mode\"\n role=\"option\"\n [class.geo-map-search__mode--active]=\"formOpen() && mode() === tile.id\"\n [attr.aria-selected]=\"formOpen() && mode() === tile.id\"\n (click)=\"selectMode(tile.id)\"\n >\n <span class=\"geo-map-search__mode-icon\" aria-hidden=\"true\">\n <geo-icon [type]=\"tile.icon\" size=\"md\" />\n </span>\n <span class=\"geo-map-search__mode-label\">{{ tile.label }}</span>\n </button>\n }\n </div>\n\n @if (formOpen()) {\n <section class=\"geo-map-search__form\" [attr.aria-label]=\"modeHeading()\">\n <div class=\"geo-map-search__form-head\">\n <h4 class=\"geo-map-search__form-title\">{{ modeHeading() }}</h4>\n <button\n type=\"button\"\n class=\"geo-map-search__icon-btn geo-map-search__icon-btn--sm\"\n aria-label=\"Thu g\u1ECDn form t\u00ECm ki\u1EBFm\"\n (click)=\"collapseForm()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </div>\n\n <div\n class=\"geo-map-search__fields\"\n [class.geo-map-search__fields--inline]=\"fieldsInline()\"\n >\n @for (field of fields(); track field.key) {\n <geo-input\n [label]=\"field.label\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.type ?? 'text'\"\n [ngModel]=\"fieldValue(field.key)\"\n (ngModelChange)=\"setField(field.key, $event)\"\n (enterPressed)=\"submit()\"\n [allowClear]=\"true\"\n [block]=\"true\"\n />\n }\n </div>\n\n <div class=\"geo-map-search__actions\">\n <geo-button\n appearance=\"primary\"\n icon=\"search\"\n [disabled]=\"loading()\"\n (clicked)=\"submit()\"\n >\n T\u00ECm ki\u1EBFm\n </geo-button>\n <geo-button\n appearance=\"secondary\"\n icon=\"reload\"\n (clicked)=\"onReset()\"\n >\n \u0110\u1EB7t l\u1EA1i\n </geo-button>\n </div>\n </section>\n }\n\n @if (formOpen() && (loading() || hasSearched())) {\n <div class=\"geo-map-search__results\" aria-live=\"polite\">\n @if (loading()) {\n <p class=\"geo-map-search__hint\">\u0110ang t\u00ECm ki\u1EBFm\u2026</p>\n } @else if (!results().length) {\n <p class=\"geo-map-search__hint\">{{ emptyText() }}</p>\n } @else {\n <ul class=\"geo-map-search__list\">\n @for (item of results(); track item.id) {\n <li class=\"geo-map-search__result\">\n <div class=\"geo-map-search__result-head\">\n <span class=\"geo-map-search__result-map\">{{ mapLabel(item) }}</span>\n <button\n type=\"button\"\n class=\"geo-map-search__detail-link\"\n (click)=\"selectResult(item)\"\n >\n Chi ti\u1EBFt\n </button>\n </div>\n @if (item.parcel; as parcel) {\n <dl class=\"geo-map-search__result-meta\">\n @if (parcel.ward) {\n <div class=\"geo-map-search__result-row\">\n <dt>X\u00E3:</dt>\n <dd>{{ parcel.ward }}</dd>\n </div>\n }\n @if (parcel.province) {\n <div class=\"geo-map-search__result-row\">\n <dt>T\u1EC9nh:</dt>\n <dd>{{ parcel.province }}</dd>\n </div>\n }\n @if (parcel.area) {\n <div class=\"geo-map-search__result-row\">\n <dt>Di\u1EC7n t\u00EDch:</dt>\n <dd>{{ parcel.area }}</dd>\n </div>\n }\n </dl>\n } @else if (item.subtitle) {\n <p class=\"geo-map-search__result-sub\">{{ item.subtitle }}</p>\n }\n </li>\n }\n </ul>\n\n @if (resolvedTotal() > pageSize()) {\n <geo-pagination\n class=\"geo-map-search__paging\"\n [(pageIndex)]=\"pageIndex\"\n [(pageSize)]=\"pageSize\"\n [total]=\"resolvedTotal()\"\n size=\"small\"\n [simple]=\"true\"\n />\n }\n }\n </div>\n }\n </div>\n </section>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-search-host{display:none}.geo-map-search-host--open{display:block}.geo-map-search{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);width:min(420px,100vw - 32px);max-height:min(640px,82vh);overflow:hidden;display:flex;flex-direction:column}.geo-map-search__header{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 40px 12px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-search__title{margin:0;max-width:100%;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;line-height:1.35;color:var(--geo-color-neutral-900)}.geo-map-search__header .geo-map-search__icon-btn{position:absolute;top:8px;right:8px}.geo-map-search__icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0;color:var(--geo-color-neutral-500)}.geo-map-search__icon-btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-search__icon-btn:active:not(:disabled){transform:scale(.98)}.geo-map-search__icon-btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-search__icon-btn--active,.geo-map-search__icon-btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-search__icon-btn--icon-only{width:32px;padding:0}.geo-map-search__icon-btn--sm{width:28px;min-width:28px;min-height:28px}.geo-map-search__body{display:flex;flex-direction:column;gap:14px;padding:14px 16px 16px;overflow:auto}.geo-map-search__modes{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 12px}.geo-map-search__mode{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:104px;padding:0;border:0;background:transparent;cursor:pointer;color:var(--geo-color-primary-default);font:inherit}.geo-map-search__mode:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:var(--geo-radius)}.geo-map-search__mode-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--geo-color-primary-default);background:var(--geo-color-primary-soft, var(--geo-color-primary-surface-light));color:var(--geo-color-primary-default);transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.geo-map-search__mode:hover .geo-map-search__mode-icon{background:var(--geo-color-primary-soft-hover)}.geo-map-search__mode--active .geo-map-search__mode-icon{background:var(--geo-color-primary-soft-active);box-shadow:inset 0 0 0 1px var(--geo-color-primary-default)}.geo-map-search__mode-label{text-align:center;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-medium);line-height:1.3;color:var(--geo-color-primary-default)}.geo-map-search__form{display:flex;flex-direction:column;gap:12px;padding-top:4px;border-top:1px solid var(--geo-color-neutral-100)}.geo-map-search__form-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:28px;padding:0 28px}.geo-map-search__form-title{margin:0;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);letter-spacing:.03em;color:var(--geo-color-neutral-900)}.geo-map-search__form-head .geo-map-search__icon-btn{position:absolute;top:50%;right:0;transform:translateY(-50%)}.geo-map-search__fields{display:flex;flex-direction:column;gap:10px}.geo-map-search__fields--inline,.geo-map-search__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.geo-map-search__actions>geo-button{display:block;min-width:0}.geo-map-search__actions .geo-button{width:100%}.geo-map-search__results{display:flex;flex-direction:column;gap:10px;padding-top:4px;border-top:1px solid var(--geo-color-primary-default)}.geo-map-search__hint{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.geo-map-search__result{display:flex;flex-direction:column;gap:8px;padding:0}.geo-map-search__result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.geo-map-search__result-map{font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900);line-height:1.4}.geo-map-search__detail-link{flex-shrink:0;padding:0;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-primary-default);text-decoration:none}.geo-map-search__detail-link:hover{text-decoration:underline}.geo-map-search__detail-link:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:2px}.geo-map-search__result-meta{margin:0;display:flex;flex-direction:column;gap:4px}.geo-map-search__result-row{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:baseline}.geo-map-search__result-row dt{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__result-row dd{margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-map-search__result-sub{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__paging{display:flex;justify-content:center;margin-top:2px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: GeoButtonComponent, selector: "geo-button", inputs: ["appearance", "color", "icon", "iconTheme", "iconPlacement", "iconOnly", "type", "disabled", "tooltip", "tooltipPlacement", "active", "title"], outputs: ["clicked"] }, { kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "component", type: GeoInputComponent, selector: "geo-input", inputs: ["label", "placeholder", "type", "disabled", "readonly", "required", "error", "errorMessage", "maxlength", "prefixIcon", "suffixIcon", "allowClear", "block", "width"], outputs: ["valueChange", "enterPressed"] }, { kind: "component", type: GeoPaginationComponent, selector: "geo-pagination", inputs: ["pageIndex", "pageSize", "total", "size", "simple", "hideOnSinglePage", "showSizeChanger", "pageSizeOptions"], outputs: ["pageIndexChange", "pageSizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7377
7418
|
}
|
|
7378
7419
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapSearchComponent, decorators: [{
|
|
7379
7420
|
type: Component,
|
|
@@ -7386,7 +7427,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
7386
7427
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
7387
7428
|
class: 'geo-map-search-host',
|
|
7388
7429
|
'[class.geo-map-search-host--open]': 'open()',
|
|
7389
|
-
}, template: "@if (open()) {\n <section class=\"geo-map-search\" aria-label=\"Tra c\u1EE9u th\u00F4ng tin quy ho\u1EA1ch\">\n <header class=\"geo-map-search__header\">\n <h3 class=\"geo-map-search__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-search__icon-btn\"\n aria-label=\"\u0110\u00F3ng tra c\u1EE9u\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-search__body\">\n <div class=\"geo-map-search__modes\" role=\"listbox\" aria-label=\"H\u00ECnh th\u1EE9c tra c\u1EE9u\">\n @for (tile of modeTiles; track tile.id) {\n <button\n type=\"button\"\n class=\"geo-map-search__mode\"\n role=\"option\"\n [class.geo-map-search__mode--active]=\"formOpen() && mode() === tile.id\"\n [attr.aria-selected]=\"formOpen() && mode() === tile.id\"\n (click)=\"selectMode(tile.id)\"\n >\n <span class=\"geo-map-search__mode-icon\" aria-hidden=\"true\">\n <geo-icon [type]=\"tile.icon\" size=\"md\" />\n </span>\n <span class=\"geo-map-search__mode-label\">{{ tile.label }}</span>\n </button>\n }\n </div>\n\n @if (formOpen()) {\n <section class=\"geo-map-search__form\" [attr.aria-label]=\"modeHeading()\">\n <div class=\"geo-map-search__form-head\">\n <h4 class=\"geo-map-search__form-title\">{{ modeHeading() }}</h4>\n <button\n type=\"button\"\n class=\"geo-map-search__icon-btn geo-map-search__icon-btn--sm\"\n aria-label=\"Thu g\u1ECDn form t\u00ECm ki\u1EBFm\"\n (click)=\"collapseForm()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </div>\n\n <div\n class=\"geo-map-search__fields\"\n [class.geo-map-search__fields--inline]=\"fieldsInline()\"\n >\n @for (field of fields(); track field.key) {\n <geo-input\n [label]=\"field.label\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.type ?? 'text'\"\n [ngModel]=\"fieldValue(field.key)\"\n (ngModelChange)=\"setField(field.key, $event)\"\n (enterPressed)=\"submit()\"\n [allowClear]=\"true\"\n [block]=\"true\"\n />\n }\n </div>\n\n <div class=\"geo-map-search__actions\">\n <geo-button\n appearance=\"primary\"\n icon=\"search\"\n [disabled]=\"loading()\"\n (clicked)=\"submit()\"\n >\n T\u00ECm ki\u1EBFm\n </geo-button>\n <geo-button\n appearance=\"secondary\"\n icon=\"reload\"\n (clicked)=\"onReset()\"\n >\n \u0110\u1EB7t l\u1EA1i\n </geo-button>\n </div>\n </section>\n }\n\n @if (formOpen() && (loading() || hasSearched())) {\n <div class=\"geo-map-search__results\" aria-live=\"polite\">\n @if (loading()) {\n <p class=\"geo-map-search__hint\">\u0110ang t\u00ECm ki\u1EBFm\u2026</p>\n } @else if (!results().length) {\n <p class=\"geo-map-search__hint\">{{ emptyText() }}</p>\n } @else {\n <ul class=\"geo-map-search__list\">\n @for (item of results(); track item.id) {\n <li class=\"geo-map-search__result\">\n <div class=\"geo-map-search__result-head\">\n <span class=\"geo-map-search__result-map\">{{ mapLabel(item) }}</span>\n <button\n type=\"button\"\n class=\"geo-map-search__detail-link\"\n (click)=\"selectResult(item)\"\n >\n Chi ti\u1EBFt\n </button>\n </div>\n @if (item.parcel; as parcel) {\n <dl class=\"geo-map-search__result-meta\">\n @if (parcel.ward) {\n <div class=\"geo-map-search__result-row\">\n <dt>X\u00E3:</dt>\n <dd>{{ parcel.ward }}</dd>\n </div>\n }\n @if (parcel.province) {\n <div class=\"geo-map-search__result-row\">\n <dt>T\u1EC9nh:</dt>\n <dd>{{ parcel.province }}</dd>\n </div>\n }\n @if (parcel.area) {\n <div class=\"geo-map-search__result-row\">\n <dt>Di\u1EC7n t\u00EDch:</dt>\n <dd>{{ parcel.area }}</dd>\n </div>\n }\n </dl>\n } @else if (item.subtitle) {\n <p class=\"geo-map-search__result-sub\">{{ item.subtitle }}</p>\n }\n </li>\n }\n </ul>\n\n @if (resolvedTotal() > pageSize()) {\n <geo-pagination\n class=\"geo-map-search__paging\"\n [(pageIndex)]=\"pageIndex\"\n [(pageSize)]=\"pageSize\"\n [total]=\"resolvedTotal()\"\n size=\"small\"\n [simple]=\"true\"\n />\n }\n }\n </div>\n }\n </div>\n </section>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-search-host{display:none}.geo-map-search-host--open{display:block}.geo-map-search{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);width:min(420px,100vw - 32px);max-height:min(640px,82vh);overflow:hidden;display:flex;flex-direction:column}.geo-map-search__header{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 40px 12px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-search__title{margin:0;max-width:100%;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;line-height:1.35;color:var(--geo-color-neutral-900)}.geo-map-search__header .geo-map-search__icon-btn{position:absolute;top:8px;right:8px}.geo-map-search__icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:40px;min-height:40px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0;color:var(--geo-color-neutral-500)}.geo-map-search__icon-btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-search__icon-btn:active:not(:disabled){transform:scale(.98)}.geo-map-search__icon-btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-search__icon-btn--active,.geo-map-search__icon-btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-search__icon-btn--icon-only{width:40px;padding:0}.geo-map-search__icon-btn--sm{width:28px;min-width:28px;min-height:28px}.geo-map-search__body{display:flex;flex-direction:column;gap:14px;padding:14px 16px 16px;overflow:auto}.geo-map-search__modes{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 12px}.geo-map-search__mode{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:104px;padding:0;border:0;background:transparent;cursor:pointer;color:var(--geo-color-primary-default);font:inherit}.geo-map-search__mode:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:var(--geo-radius)}.geo-map-search__mode-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--geo-color-primary-default);background:var(--geo-color-primary-soft, var(--geo-color-primary-surface-light));color:var(--geo-color-primary-default);transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.geo-map-search__mode:hover .geo-map-search__mode-icon{background:var(--geo-color-primary-soft-hover)}.geo-map-search__mode--active .geo-map-search__mode-icon{background:var(--geo-color-primary-soft-active);box-shadow:inset 0 0 0 1px var(--geo-color-primary-default)}.geo-map-search__mode-label{text-align:center;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-medium);line-height:1.3;color:var(--geo-color-primary-default)}.geo-map-search__form{display:flex;flex-direction:column;gap:12px;padding-top:4px;border-top:1px solid var(--geo-color-neutral-100)}.geo-map-search__form-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:28px;padding:0 28px}.geo-map-search__form-title{margin:0;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);letter-spacing:.03em;color:var(--geo-color-neutral-900)}.geo-map-search__form-head .geo-map-search__icon-btn{position:absolute;top:50%;right:0;transform:translateY(-50%)}.geo-map-search__fields{display:flex;flex-direction:column;gap:10px}.geo-map-search__fields--inline,.geo-map-search__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.geo-map-search__actions>geo-button{display:block;min-width:0}.geo-map-search__actions .geo-button{width:100%}.geo-map-search__results{display:flex;flex-direction:column;gap:10px;padding-top:4px;border-top:1px solid var(--geo-color-primary-default)}.geo-map-search__hint{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.geo-map-search__result{display:flex;flex-direction:column;gap:8px;padding:0}.geo-map-search__result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.geo-map-search__result-map{font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900);line-height:1.4}.geo-map-search__detail-link{flex-shrink:0;padding:0;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-primary-default);text-decoration:none}.geo-map-search__detail-link:hover{text-decoration:underline}.geo-map-search__detail-link:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:2px}.geo-map-search__result-meta{margin:0;display:flex;flex-direction:column;gap:4px}.geo-map-search__result-row{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:baseline}.geo-map-search__result-row dt{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__result-row dd{margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-map-search__result-sub{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__paging{display:flex;justify-content:center;margin-top:2px}\n"] }]
|
|
7430
|
+
}, template: "@if (open()) {\n <section class=\"geo-map-search\" aria-label=\"Tra c\u1EE9u th\u00F4ng tin quy ho\u1EA1ch\">\n <header class=\"geo-map-search__header\">\n <h3 class=\"geo-map-search__title\">{{ title() }}</h3>\n <button\n type=\"button\"\n class=\"geo-map-search__icon-btn\"\n aria-label=\"\u0110\u00F3ng tra c\u1EE9u\"\n (click)=\"close()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </header>\n\n <div class=\"geo-map-search__body\">\n <div class=\"geo-map-search__modes\" role=\"listbox\" aria-label=\"H\u00ECnh th\u1EE9c tra c\u1EE9u\">\n @for (tile of modeTiles; track tile.id) {\n <button\n type=\"button\"\n class=\"geo-map-search__mode\"\n role=\"option\"\n [class.geo-map-search__mode--active]=\"formOpen() && mode() === tile.id\"\n [attr.aria-selected]=\"formOpen() && mode() === tile.id\"\n (click)=\"selectMode(tile.id)\"\n >\n <span class=\"geo-map-search__mode-icon\" aria-hidden=\"true\">\n <geo-icon [type]=\"tile.icon\" size=\"md\" />\n </span>\n <span class=\"geo-map-search__mode-label\">{{ tile.label }}</span>\n </button>\n }\n </div>\n\n @if (formOpen()) {\n <section class=\"geo-map-search__form\" [attr.aria-label]=\"modeHeading()\">\n <div class=\"geo-map-search__form-head\">\n <h4 class=\"geo-map-search__form-title\">{{ modeHeading() }}</h4>\n <button\n type=\"button\"\n class=\"geo-map-search__icon-btn geo-map-search__icon-btn--sm\"\n aria-label=\"Thu g\u1ECDn form t\u00ECm ki\u1EBFm\"\n (click)=\"collapseForm()\"\n >\n <geo-icon type=\"close\" size=\"sm\" />\n </button>\n </div>\n\n <div\n class=\"geo-map-search__fields\"\n [class.geo-map-search__fields--inline]=\"fieldsInline()\"\n >\n @for (field of fields(); track field.key) {\n <geo-input\n [label]=\"field.label\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.type ?? 'text'\"\n [ngModel]=\"fieldValue(field.key)\"\n (ngModelChange)=\"setField(field.key, $event)\"\n (enterPressed)=\"submit()\"\n [allowClear]=\"true\"\n [block]=\"true\"\n />\n }\n </div>\n\n <div class=\"geo-map-search__actions\">\n <geo-button\n appearance=\"primary\"\n icon=\"search\"\n [disabled]=\"loading()\"\n (clicked)=\"submit()\"\n >\n T\u00ECm ki\u1EBFm\n </geo-button>\n <geo-button\n appearance=\"secondary\"\n icon=\"reload\"\n (clicked)=\"onReset()\"\n >\n \u0110\u1EB7t l\u1EA1i\n </geo-button>\n </div>\n </section>\n }\n\n @if (formOpen() && (loading() || hasSearched())) {\n <div class=\"geo-map-search__results\" aria-live=\"polite\">\n @if (loading()) {\n <p class=\"geo-map-search__hint\">\u0110ang t\u00ECm ki\u1EBFm\u2026</p>\n } @else if (!results().length) {\n <p class=\"geo-map-search__hint\">{{ emptyText() }}</p>\n } @else {\n <ul class=\"geo-map-search__list\">\n @for (item of results(); track item.id) {\n <li class=\"geo-map-search__result\">\n <div class=\"geo-map-search__result-head\">\n <span class=\"geo-map-search__result-map\">{{ mapLabel(item) }}</span>\n <button\n type=\"button\"\n class=\"geo-map-search__detail-link\"\n (click)=\"selectResult(item)\"\n >\n Chi ti\u1EBFt\n </button>\n </div>\n @if (item.parcel; as parcel) {\n <dl class=\"geo-map-search__result-meta\">\n @if (parcel.ward) {\n <div class=\"geo-map-search__result-row\">\n <dt>X\u00E3:</dt>\n <dd>{{ parcel.ward }}</dd>\n </div>\n }\n @if (parcel.province) {\n <div class=\"geo-map-search__result-row\">\n <dt>T\u1EC9nh:</dt>\n <dd>{{ parcel.province }}</dd>\n </div>\n }\n @if (parcel.area) {\n <div class=\"geo-map-search__result-row\">\n <dt>Di\u1EC7n t\u00EDch:</dt>\n <dd>{{ parcel.area }}</dd>\n </div>\n }\n </dl>\n } @else if (item.subtitle) {\n <p class=\"geo-map-search__result-sub\">{{ item.subtitle }}</p>\n }\n </li>\n }\n </ul>\n\n @if (resolvedTotal() > pageSize()) {\n <geo-pagination\n class=\"geo-map-search__paging\"\n [(pageIndex)]=\"pageIndex\"\n [(pageSize)]=\"pageSize\"\n [total]=\"resolvedTotal()\"\n size=\"small\"\n [simple]=\"true\"\n />\n }\n }\n </div>\n }\n </div>\n </section>\n}\n", styles: ["@charset \"UTF-8\";.geo-map-search-host{display:none}.geo-map-search-host--open{display:block}.geo-map-search{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);width:min(420px,100vw - 32px);max-height:min(640px,82vh);overflow:hidden;display:flex;flex-direction:column}.geo-map-search__header{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 40px 12px;border-bottom:1px solid var(--geo-color-neutral-100)}.geo-map-search__title{margin:0;max-width:100%;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);letter-spacing:.02em;line-height:1.35;color:var(--geo-color-neutral-900)}.geo-map-search__header .geo-map-search__icon-btn{position:absolute;top:8px;right:8px}.geo-map-search__icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--geo-radius);background:transparent;color:var(--geo-color-neutral-700);font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease;width:32px;min-width:32px;min-height:32px;padding:0;color:var(--geo-color-neutral-500)}.geo-map-search__icon-btn:hover:not(:disabled){background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-map-search__icon-btn:active:not(:disabled){transform:scale(.98)}.geo-map-search__icon-btn:disabled{opacity:.45;cursor:not-allowed}.geo-map-search__icon-btn--active,.geo-map-search__icon-btn--checked{background:var(--geo-color-primary-soft-active);color:var(--geo-color-primary-default)}.geo-map-search__icon-btn--icon-only{width:32px;padding:0}.geo-map-search__icon-btn--sm{width:28px;min-width:28px;min-height:28px}.geo-map-search__body{display:flex;flex-direction:column;gap:14px;padding:14px 16px 16px;overflow:auto}.geo-map-search__modes{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 12px}.geo-map-search__mode{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:104px;padding:0;border:0;background:transparent;cursor:pointer;color:var(--geo-color-primary-default);font:inherit}.geo-map-search__mode:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:var(--geo-radius)}.geo-map-search__mode-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--geo-color-primary-default);background:var(--geo-color-primary-soft, var(--geo-color-primary-surface-light));color:var(--geo-color-primary-default);transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.geo-map-search__mode:hover .geo-map-search__mode-icon{background:var(--geo-color-primary-soft-hover)}.geo-map-search__mode--active .geo-map-search__mode-icon{background:var(--geo-color-primary-soft-active);box-shadow:inset 0 0 0 1px var(--geo-color-primary-default)}.geo-map-search__mode-label{text-align:center;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-medium);line-height:1.3;color:var(--geo-color-primary-default)}.geo-map-search__form{display:flex;flex-direction:column;gap:12px;padding-top:4px;border-top:1px solid var(--geo-color-neutral-100)}.geo-map-search__form-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:28px;padding:0 28px}.geo-map-search__form-title{margin:0;text-align:center;text-transform:uppercase;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);letter-spacing:.03em;color:var(--geo-color-neutral-900)}.geo-map-search__form-head .geo-map-search__icon-btn{position:absolute;top:50%;right:0;transform:translateY(-50%)}.geo-map-search__fields{display:flex;flex-direction:column;gap:10px}.geo-map-search__fields--inline,.geo-map-search__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.geo-map-search__actions>geo-button{display:block;min-width:0}.geo-map-search__actions .geo-button{width:100%}.geo-map-search__results{display:flex;flex-direction:column;gap:10px;padding-top:4px;border-top:1px solid var(--geo-color-primary-default)}.geo-map-search__hint{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.geo-map-search__result{display:flex;flex-direction:column;gap:8px;padding:0}.geo-map-search__result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.geo-map-search__result-map{font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900);line-height:1.4}.geo-map-search__detail-link{flex-shrink:0;padding:0;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-medium);color:var(--geo-color-primary-default);text-decoration:none}.geo-map-search__detail-link:hover{text-decoration:underline}.geo-map-search__detail-link:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px;border-radius:2px}.geo-map-search__result-meta{margin:0;display:flex;flex-direction:column;gap:4px}.geo-map-search__result-row{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:baseline}.geo-map-search__result-row dt{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__result-row dd{margin:0;font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-map-search__result-sub{margin:0;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-500)}.geo-map-search__paging{display:flex;justify-content:center;margin-top:2px}\n"] }]
|
|
7390
7431
|
}] });
|
|
7391
7432
|
|
|
7392
7433
|
/**
|
|
@@ -7400,6 +7441,7 @@ class GeoMapShellComponent {
|
|
|
7400
7441
|
destroyRef = inject(DestroyRef);
|
|
7401
7442
|
snapshotRef = viewChild(GeoMapSnapshotComponent);
|
|
7402
7443
|
zoomRef = viewChild(GeoMapZoomComponent);
|
|
7444
|
+
locateRef = viewChild(GeoMapLocateComponent);
|
|
7403
7445
|
center = input([...GEO_MAP_DEFAULT_CENTER]);
|
|
7404
7446
|
zoom = input(GEO_MAP_DEFAULT_ZOOM);
|
|
7405
7447
|
height = input('560px');
|
|
@@ -7412,7 +7454,16 @@ class GeoMapShellComponent {
|
|
|
7412
7454
|
showNav = input(true);
|
|
7413
7455
|
includeDemoLayers = input(true);
|
|
7414
7456
|
adminNodes = input(GEO_MAP_DEMO_ADMIN_NODES);
|
|
7457
|
+
/** `single` — chọn đúng 1 xã/phường (BR-06-03); `multi` — checkbox nhiều cấp (mặc định). */
|
|
7458
|
+
adminSelectionMode = input('multi');
|
|
7415
7459
|
locationLabel = input('Phường 1 — TP Đà Lạt, Lâm Đồng');
|
|
7460
|
+
/**
|
|
7461
|
+
* Ghi chú pháp lý hiển thị khi đang đo (BR-10-03). `null` ẩn ghi chú —
|
|
7462
|
+
* mặc định giữ nguyên câu chữ đã dùng ở `qh-map-shell`.
|
|
7463
|
+
*/
|
|
7464
|
+
measureDisclaimer = input('Giá trị tham khảo trên bản đồ, không có giá trị pháp lý. Diện tích pháp lý của thửa đất lấy theo hồ sơ địa chính.');
|
|
7465
|
+
/** True khi danh mục chú giải không tải được (`ERR_MAP_LEGEND_CATALOG_MISSING`). */
|
|
7466
|
+
legendCatalogMissing = input(false);
|
|
7416
7467
|
parcelAudience = input('citizen');
|
|
7417
7468
|
provinceExtent = input(GEO_MAP_DEFAULT_PROVINCE_EXTENT_4326);
|
|
7418
7469
|
/** When true, shell seeds mock search results (Storybook / demos). */
|
|
@@ -7439,13 +7490,17 @@ class GeoMapShellComponent {
|
|
|
7439
7490
|
adminExpandedKeys = model(['lam-dong']);
|
|
7440
7491
|
mapReady = output();
|
|
7441
7492
|
mapClick = output();
|
|
7493
|
+
located = output();
|
|
7442
7494
|
locateDenied = output();
|
|
7495
|
+
locateError = output();
|
|
7443
7496
|
actionClick = output();
|
|
7444
7497
|
search = output();
|
|
7445
7498
|
searchReset = output();
|
|
7446
7499
|
resultSelect = output();
|
|
7447
7500
|
parcelExport = output();
|
|
7448
7501
|
adminApply = output();
|
|
7502
|
+
snapshotCaptured = output();
|
|
7503
|
+
snapshotError = output();
|
|
7449
7504
|
controller = signal(null);
|
|
7450
7505
|
/** Active map pointer tool (`none` = default arrow cursor). */
|
|
7451
7506
|
toolMode = signal('none');
|
|
@@ -7712,6 +7767,9 @@ class GeoMapShellComponent {
|
|
|
7712
7767
|
case 'snapshot':
|
|
7713
7768
|
this.snapshotRef()?.capture();
|
|
7714
7769
|
break;
|
|
7770
|
+
case 'locate':
|
|
7771
|
+
this.locateRef()?.locate();
|
|
7772
|
+
break;
|
|
7715
7773
|
default:
|
|
7716
7774
|
break;
|
|
7717
7775
|
}
|
|
@@ -7924,7 +7982,7 @@ class GeoMapShellComponent {
|
|
|
7924
7982
|
this.managedLayers.set(next);
|
|
7925
7983
|
}
|
|
7926
7984
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7927
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapShellComponent, isStandalone: true, selector: "geo-map-shell", inputs: { center: { classPropertyName: "center", publicName: "center", isSignal: true, isRequired: false, transformFunction: null }, zoom: { classPropertyName: "zoom", publicName: "zoom", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, showMousePosition: { classPropertyName: "showMousePosition", publicName: "showMousePosition", isSignal: true, isRequired: false, transformFunction: null }, basemapOptions: { classPropertyName: "basemapOptions", publicName: "basemapOptions", isSignal: true, isRequired: false, transformFunction: null }, toolbarActions: { classPropertyName: "toolbarActions", publicName: "toolbarActions", isSignal: true, isRequired: false, transformFunction: null }, layers: { classPropertyName: "layers", publicName: "layers", isSignal: true, isRequired: false, transformFunction: null }, legendItems: { classPropertyName: "legendItems", publicName: "legendItems", isSignal: true, isRequired: false, transformFunction: null }, showNav: { classPropertyName: "showNav", publicName: "showNav", isSignal: true, isRequired: false, transformFunction: null }, includeDemoLayers: { classPropertyName: "includeDemoLayers", publicName: "includeDemoLayers", isSignal: true, isRequired: false, transformFunction: null }, adminNodes: { classPropertyName: "adminNodes", publicName: "adminNodes", isSignal: true, isRequired: false, transformFunction: null }, locationLabel: { classPropertyName: "locationLabel", publicName: "locationLabel", isSignal: true, isRequired: false, transformFunction: null }, parcelAudience: { classPropertyName: "parcelAudience", publicName: "parcelAudience", isSignal: true, isRequired: false, transformFunction: null }, provinceExtent: { classPropertyName: "provinceExtent", publicName: "provinceExtent", isSignal: true, isRequired: false, transformFunction: null }, demoSearch: { classPropertyName: "demoSearch", publicName: "demoSearch", isSignal: true, isRequired: false, transformFunction: null }, homeMode: { classPropertyName: "homeMode", publicName: "homeMode", isSignal: true, isRequired: false, transformFunction: null }, basemapId: { classPropertyName: "basemapId", publicName: "basemapId", isSignal: true, isRequired: false, transformFunction: null }, measureMode: { classPropertyName: "measureMode", publicName: "measureMode", isSignal: true, isRequired: false, transformFunction: null }, checkedMap: { classPropertyName: "checkedMap", publicName: "checkedMap", isSignal: true, isRequired: false, transformFunction: null }, layersOpen: { classPropertyName: "layersOpen", publicName: "layersOpen", isSignal: true, isRequired: false, transformFunction: null }, legendOpen: { classPropertyName: "legendOpen", publicName: "legendOpen", isSignal: true, isRequired: false, transformFunction: null }, helpOpen: { classPropertyName: "helpOpen", publicName: "helpOpen", isSignal: true, isRequired: false, transformFunction: null }, swipeActive: { classPropertyName: "swipeActive", publicName: "swipeActive", isSignal: true, isRequired: false, transformFunction: null }, searchOpen: { classPropertyName: "searchOpen", publicName: "searchOpen", isSignal: true, isRequired: false, transformFunction: null }, adminFilterOpen: { classPropertyName: "adminFilterOpen", publicName: "adminFilterOpen", isSignal: true, isRequired: false, transformFunction: null }, parcelOpen: { classPropertyName: "parcelOpen", publicName: "parcelOpen", isSignal: true, isRequired: false, transformFunction: null }, managedLayers: { classPropertyName: "managedLayers", publicName: "managedLayers", isSignal: true, isRequired: false, transformFunction: null }, searchResults: { classPropertyName: "searchResults", publicName: "searchResults", isSignal: true, isRequired: false, transformFunction: null }, selectedParcel: { classPropertyName: "selectedParcel", publicName: "selectedParcel", isSignal: true, isRequired: false, transformFunction: null }, adminCheckedKeys: { classPropertyName: "adminCheckedKeys", publicName: "adminCheckedKeys", isSignal: true, isRequired: false, transformFunction: null }, adminExpandedKeys: { classPropertyName: "adminExpandedKeys", publicName: "adminExpandedKeys", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { 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", locateDenied: "locateDenied", actionClick: "actionClick", search: "search", searchReset: "searchReset", resultSelect: "resultSelect", parcelExport: "parcelExport", adminApply: "adminApply" }, host: { properties: { "style.height": "height()" }, classAttribute: "geo-map-shell-host" }, viewQueries: [{ propertyName: "snapshotRef", first: true, predicate: GeoMapSnapshotComponent, descendants: true, isSignal: true }, { propertyName: "zoomRef", first: true, predicate: GeoMapZoomComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"geo-map-shell\">\n <geo-map\n class=\"geo-map-shell__map\"\n [center]=\"center()\"\n [zoom]=\"zoom()\"\n [height]=\"'100%'\"\n [basemap]=\"basemap()\"\n [layers]=\"resolvedLayers()\"\n [showMousePosition]=\"showMousePosition()\"\n [showZoomControl]=\"false\"\n (mapReady)=\"onMapReady($event)\"\n (mapClick)=\"onMapClick($event)\"\n />\n\n <div class=\"geo-map-shell__chrome-left\">\n <geo-map-toolbar\n class=\"geo-map-shell__toolbar\"\n [controller]=\"controller()\"\n [actions]=\"resolvedToolbarActions()\"\n [(checkedMap)]=\"checkedMap\"\n (actionClick)=\"onToolbarAction($event)\"\n (actionToggle)=\"onToolbarToggle($event)\"\n />\n\n <div class=\"geo-map-shell__panels\">\n <geo-map-search\n [(open)]=\"searchOpen\"\n [results]=\"searchResults()\"\n (search)=\"onSearch($event)\"\n (reset)=\"onSearchReset()\"\n (resultSelect)=\"onResultSelect($event)\"\n />\n <geo-map-admin-filter\n [(open)]=\"adminFilterOpen\"\n title=\"Chuy\u1EC3n v\u1ECB tr\u00ED\"\n [nodes]=\"adminNodes()\"\n [(checkedKeys)]=\"adminCheckedKeys\"\n [(expandedKeys)]=\"adminExpandedKeys\"\n (apply)=\"onAdminApply($event)\"\n (reset)=\"adminCheckedKeys.set([])\"\n (fitProvince)=\"onFitProvince()\"\n (closed)=\"onAdminClosed()\"\n />\n <geo-map-parcel-popup\n [(open)]=\"parcelOpen\"\n [parcel]=\"selectedParcel()\"\n [audience]=\"parcelAudience()\"\n (exportClick)=\"parcelExport.emit($event)\"\n (back)=\"onParcelBack()\"\n (closed)=\"onParcelClosed()\"\n />\n <geo-map-layers-drawer\n [controller]=\"controller()\"\n [(open)]=\"layersOpen\"\n [(layers)]=\"managedLayers\"\n />\n <geo-map-legend\n [(open)]=\"legendOpen\"\n [items]=\"legendItems()\"\n />\n </div>\n </div>\n\n <!-- Headless bridges: zoom/fullscreen + snapshot (driven by toolbar actions). -->\n <geo-map-zoom\n class=\"geo-map-shell__zoom-bridge\"\n [controller]=\"controller()\"\n [showNav]=\"showNav()\"\n [provinceExtent]=\"provinceExtent()\"\n />\n <geo-map-snapshot\n class=\"geo-map-shell__snapshot-bridge\"\n [controller]=\"controller()\"\n />\n\n <div class=\"geo-map-shell__top-right\">\n <ng-content select=\"[geoMapShellTopRight]\" />\n </div>\n\n <div class=\"geo-map-shell__bottom-right\">\n <geo-map-basemap-switcher\n [options]=\"basemapOptions()\"\n [(selectedId)]=\"basemapId\"\n (basemapChange)=\"onBasemapChange($event)\"\n />\n </div>\n\n <div class=\"geo-map-shell__status\">\n @if (locationLabel()) {\n <geo-map-location-chip [label]=\"locationLabel()\" />\n }\n <geo-map-measure\n [controller]=\"controller()\"\n [(mode)]=\"measureMode\"\n />\n </div>\n\n <geo-map-swipe\n [controller]=\"controller()\"\n [(active)]=\"swipeActive\"\n />\n\n <geo-map-help [(open)]=\"helpOpen\" />\n</div>\n", styles: [".geo-map-shell-host{display:block;min-height:360px}.geo-map-shell{position:relative;width:100%;height:100%;min-height:inherit;overflow:hidden;border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-neutral-100)}.geo-map-shell:fullscreen,.geo-map-shell:-webkit-full-screen{width:100%;height:100%;min-height:100%;border:0;border-radius:0;background:var(--geo-color-neutral-100)}.geo-map-shell:fullscreen>.cdk-overlay-container,.geo-map-shell:-webkit-full-screen>.cdk-overlay-container{z-index:1200}.geo-map-shell__map{display:block;width:100%;height:100%}.geo-map-shell__chrome-left{position:absolute;top:16px;left:16px;z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:calc(100% - 32px);max-height:calc(100% - 172px);overflow:visible;pointer-events:none}.geo-map-shell__chrome-left>*{pointer-events:auto}.geo-map-shell__toolbar{flex-shrink:0}.geo-map-shell__panels{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:min(420px,100%);min-height:0;overflow:visible;pointer-events:none}.geo-map-shell__panels>*{pointer-events:auto}.geo-map-shell__panels .geo-map-search,.geo-map-shell__panels .geo-map-admin-filter,.geo-map-shell__panels .geo-map-parcel-popup,.geo-map-shell__panels .geo-map-layers-drawer,.geo-map-shell__panels .geo-map-legend{max-height:min(640px,100dvh - 100px);overflow:auto}.geo-map-shell__snapshot-bridge,.geo-map-shell__zoom-bridge{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;opacity:0}.geo-map-shell__bottom-left{position:absolute;left:16px;bottom:72px;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:min(300px,100% - 120px);pointer-events:none}.geo-map-shell__bottom-left>*{pointer-events:auto}.geo-map-shell__top-right{position:absolute;top:16px;right:16px;z-index:7;display:flex;align-items:center;justify-content:flex-end;height:64px;max-width:min(360px,100% - 32px);pointer-events:none}.geo-map-shell__top-right>*{pointer-events:auto}.geo-map-shell__bottom-right{position:absolute;right:16px;bottom:24px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.geo-map-shell__bottom-right>*{pointer-events:auto}.geo-map-shell__status{position:absolute;left:50%;bottom:24px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:min(480px,100% - 32px);transform:translate(-50%);pointer-events:none}.geo-map-shell__status>*{pointer-events:auto}.geo-map-shell .geo-map__mouse-position,.geo-map-shell .ol-scale-line{display:none!important}.geo-map-shell .ol-attribution{display:none}\n"], dependencies: [{ kind: "component", type: GeoMapComponent, selector: "geo-map", inputs: ["center", "zoom", "minZoom", "maxZoom", "viewProjection", "basemap", "layers", "height", "registerProjections", "projections", "showMousePosition", "mousePositionProjection", "showZoomControl"], outputs: ["mapReady", "mapClick", "viewChange", "initError"] }, { kind: "component", type: GeoMapToolbarComponent, selector: "geo-map-toolbar", inputs: ["controller", "actions", "compact", "checkedMap"], outputs: ["checkedMapChange", "actionClick", "actionToggle"] }, { kind: "component", type: GeoMapZoomComponent, selector: "geo-map-zoom", inputs: ["controller", "showNav", "showFitProvince", "provinceExtent", "fullscreenTarget"] }, { kind: "component", type: GeoMapSnapshotComponent, selector: "geo-map-snapshot", inputs: ["controller", "label", "filename"], outputs: ["captured", "captureError"] }, { kind: "component", type: GeoMapMeasureComponent, selector: "geo-map-measure", inputs: ["controller", "mode", "showResult"], outputs: ["modeChange", "measureChange"] }, { kind: "component", type: GeoMapLayersDrawerComponent, selector: "geo-map-layers-drawer", inputs: ["controller", "open", "title", "legendItems", "showOpacity", "showLegend", "layers"], outputs: ["openChange", "layersChange", "closed"] }, { kind: "component", type: GeoMapLegendComponent, selector: "geo-map-legend", inputs: ["title", "items", "open"], outputs: ["openChange", "closed"] }, { kind: "component", type: GeoMapHelpComponent, selector: "geo-map-help", inputs: ["open", "title", "sections"], outputs: ["openChange"] }, { kind: "component", type: GeoMapSwipeComponent, selector: "geo-map-swipe", inputs: ["controller", "active", "position", "layerId"], outputs: ["activeChange", "positionChange"] }, { kind: "component", type: GeoMapSearchComponent, selector: "geo-map-search", inputs: ["open", "title", "mode", "results", "loading", "pageIndex", "pageSize", "total", "emptyText"], outputs: ["openChange", "modeChange", "pageIndexChange", "pageSizeChange", "search", "reset", "resultSelect", "closed"] }, { kind: "component", type: GeoMapAdminFilterComponent, selector: "geo-map-admin-filter", inputs: ["open", "title", "nodes", "checkedKeys", "expandedKeys"], outputs: ["openChange", "checkedKeysChange", "expandedKeysChange", "apply", "reset", "fitProvince", "closed", "selectionChange"] }, { kind: "component", type: GeoMapParcelPopupComponent, selector: "geo-map-parcel-popup", inputs: ["open", "title", "parcel", "audience", "showExport"], outputs: ["openChange", "closed", "back", "exportClick", "diagramClick"] }, { kind: "component", type: GeoMapLocationChipComponent, selector: "geo-map-location-chip", inputs: ["label", "icon"] }, { kind: "component", type: GeoMapBasemapSwitcherComponent, selector: "geo-map-basemap-switcher", inputs: ["options", "selectedId", "label", "tooltip"], outputs: ["selectedIdChange", "basemapChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7985
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapShellComponent, isStandalone: true, selector: "geo-map-shell", inputs: { center: { classPropertyName: "center", publicName: "center", isSignal: true, isRequired: false, transformFunction: null }, zoom: { classPropertyName: "zoom", publicName: "zoom", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, showMousePosition: { classPropertyName: "showMousePosition", publicName: "showMousePosition", isSignal: true, isRequired: false, transformFunction: null }, basemapOptions: { classPropertyName: "basemapOptions", publicName: "basemapOptions", isSignal: true, isRequired: false, transformFunction: null }, toolbarActions: { classPropertyName: "toolbarActions", publicName: "toolbarActions", isSignal: true, isRequired: false, transformFunction: null }, layers: { classPropertyName: "layers", publicName: "layers", isSignal: true, isRequired: false, transformFunction: null }, legendItems: { classPropertyName: "legendItems", publicName: "legendItems", isSignal: true, isRequired: false, transformFunction: null }, showNav: { classPropertyName: "showNav", publicName: "showNav", isSignal: true, isRequired: false, transformFunction: null }, includeDemoLayers: { classPropertyName: "includeDemoLayers", publicName: "includeDemoLayers", isSignal: true, isRequired: false, transformFunction: null }, adminNodes: { classPropertyName: "adminNodes", publicName: "adminNodes", isSignal: true, isRequired: false, transformFunction: null }, adminSelectionMode: { classPropertyName: "adminSelectionMode", publicName: "adminSelectionMode", isSignal: true, isRequired: false, transformFunction: null }, locationLabel: { classPropertyName: "locationLabel", publicName: "locationLabel", isSignal: true, isRequired: false, transformFunction: null }, measureDisclaimer: { classPropertyName: "measureDisclaimer", publicName: "measureDisclaimer", isSignal: true, isRequired: false, transformFunction: null }, legendCatalogMissing: { classPropertyName: "legendCatalogMissing", publicName: "legendCatalogMissing", isSignal: true, isRequired: false, transformFunction: null }, parcelAudience: { classPropertyName: "parcelAudience", publicName: "parcelAudience", isSignal: true, isRequired: false, transformFunction: null }, provinceExtent: { classPropertyName: "provinceExtent", publicName: "provinceExtent", isSignal: true, isRequired: false, transformFunction: null }, demoSearch: { classPropertyName: "demoSearch", publicName: "demoSearch", isSignal: true, isRequired: false, transformFunction: null }, homeMode: { classPropertyName: "homeMode", publicName: "homeMode", isSignal: true, isRequired: false, transformFunction: null }, basemapId: { classPropertyName: "basemapId", publicName: "basemapId", isSignal: true, isRequired: false, transformFunction: null }, measureMode: { classPropertyName: "measureMode", publicName: "measureMode", isSignal: true, isRequired: false, transformFunction: null }, checkedMap: { classPropertyName: "checkedMap", publicName: "checkedMap", isSignal: true, isRequired: false, transformFunction: null }, layersOpen: { classPropertyName: "layersOpen", publicName: "layersOpen", isSignal: true, isRequired: false, transformFunction: null }, legendOpen: { classPropertyName: "legendOpen", publicName: "legendOpen", isSignal: true, isRequired: false, transformFunction: null }, helpOpen: { classPropertyName: "helpOpen", publicName: "helpOpen", isSignal: true, isRequired: false, transformFunction: null }, swipeActive: { classPropertyName: "swipeActive", publicName: "swipeActive", isSignal: true, isRequired: false, transformFunction: null }, searchOpen: { classPropertyName: "searchOpen", publicName: "searchOpen", isSignal: true, isRequired: false, transformFunction: null }, adminFilterOpen: { classPropertyName: "adminFilterOpen", publicName: "adminFilterOpen", isSignal: true, isRequired: false, transformFunction: null }, parcelOpen: { classPropertyName: "parcelOpen", publicName: "parcelOpen", isSignal: true, isRequired: false, transformFunction: null }, managedLayers: { classPropertyName: "managedLayers", publicName: "managedLayers", isSignal: true, isRequired: false, transformFunction: null }, searchResults: { classPropertyName: "searchResults", publicName: "searchResults", isSignal: true, isRequired: false, transformFunction: null }, selectedParcel: { classPropertyName: "selectedParcel", publicName: "selectedParcel", isSignal: true, isRequired: false, transformFunction: null }, adminCheckedKeys: { classPropertyName: "adminCheckedKeys", publicName: "adminCheckedKeys", isSignal: true, isRequired: false, transformFunction: null }, adminExpandedKeys: { classPropertyName: "adminExpandedKeys", publicName: "adminExpandedKeys", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { 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", snapshotCaptured: "snapshotCaptured", snapshotError: "snapshotError" }, host: { properties: { "style.height": "height()" }, classAttribute: "geo-map-shell-host" }, viewQueries: [{ propertyName: "snapshotRef", first: true, predicate: GeoMapSnapshotComponent, descendants: true, isSignal: true }, { propertyName: "zoomRef", first: true, predicate: GeoMapZoomComponent, descendants: true, isSignal: true }, { propertyName: "locateRef", first: true, predicate: GeoMapLocateComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"geo-map-shell\">\n <geo-map\n class=\"geo-map-shell__map\"\n [center]=\"center()\"\n [zoom]=\"zoom()\"\n [height]=\"'100%'\"\n [basemap]=\"basemap()\"\n [layers]=\"resolvedLayers()\"\n [showMousePosition]=\"showMousePosition()\"\n [showZoomControl]=\"false\"\n (mapReady)=\"onMapReady($event)\"\n (mapClick)=\"onMapClick($event)\"\n />\n\n <div class=\"geo-map-shell__chrome-left\">\n <geo-map-toolbar\n class=\"geo-map-shell__toolbar\"\n [controller]=\"controller()\"\n [actions]=\"resolvedToolbarActions()\"\n [(checkedMap)]=\"checkedMap\"\n (actionClick)=\"onToolbarAction($event)\"\n (actionToggle)=\"onToolbarToggle($event)\"\n />\n\n <div class=\"geo-map-shell__panels\">\n <geo-map-search\n [(open)]=\"searchOpen\"\n [results]=\"searchResults()\"\n (search)=\"onSearch($event)\"\n (reset)=\"onSearchReset()\"\n (resultSelect)=\"onResultSelect($event)\"\n />\n <geo-map-admin-filter\n [(open)]=\"adminFilterOpen\"\n title=\"Chuy\u1EC3n v\u1ECB tr\u00ED\"\n [nodes]=\"adminNodes()\"\n [selectionMode]=\"adminSelectionMode()\"\n [(checkedKeys)]=\"adminCheckedKeys\"\n [(expandedKeys)]=\"adminExpandedKeys\"\n (apply)=\"onAdminApply($event)\"\n (reset)=\"adminCheckedKeys.set([])\"\n (fitProvince)=\"onFitProvince()\"\n (closed)=\"onAdminClosed()\"\n />\n <geo-map-parcel-popup\n [(open)]=\"parcelOpen\"\n [parcel]=\"selectedParcel()\"\n [audience]=\"parcelAudience()\"\n (exportClick)=\"parcelExport.emit($event)\"\n (back)=\"onParcelBack()\"\n (closed)=\"onParcelClosed()\"\n />\n <geo-map-layers-drawer\n [controller]=\"controller()\"\n [(open)]=\"layersOpen\"\n [(layers)]=\"managedLayers\"\n />\n <geo-map-legend\n [(open)]=\"legendOpen\"\n [items]=\"legendItems()\"\n [catalogMissing]=\"legendCatalogMissing()\"\n />\n </div>\n </div>\n\n <!-- Headless bridges: zoom/fullscreen + snapshot + locate (driven by toolbar actions). -->\n <geo-map-zoom\n class=\"geo-map-shell__zoom-bridge\"\n [controller]=\"controller()\"\n [showNav]=\"showNav()\"\n [provinceExtent]=\"provinceExtent()\"\n />\n <geo-map-snapshot\n class=\"geo-map-shell__snapshot-bridge\"\n [controller]=\"controller()\"\n (captured)=\"snapshotCaptured.emit()\"\n (captureError)=\"snapshotError.emit($event)\"\n />\n <geo-map-locate\n class=\"geo-map-shell__locate-bridge\"\n [controller]=\"controller()\"\n (located)=\"located.emit($event)\"\n (denied)=\"locateDenied.emit()\"\n (locateError)=\"locateError.emit($event)\"\n />\n\n <div class=\"geo-map-shell__top-right\">\n <ng-content select=\"[geoMapShellTopRight]\" />\n </div>\n\n <div class=\"geo-map-shell__bottom-right\">\n <geo-map-basemap-switcher\n [options]=\"basemapOptions()\"\n [(selectedId)]=\"basemapId\"\n (basemapChange)=\"onBasemapChange($event)\"\n />\n </div>\n\n <div class=\"geo-map-shell__status\">\n @if (locationLabel()) {\n <geo-map-location-chip [label]=\"locationLabel()\" />\n }\n <geo-map-measure\n [controller]=\"controller()\"\n [(mode)]=\"measureMode\"\n />\n @if (measureMode() !== 'none' && measureDisclaimer()) {\n <p class=\"geo-map-shell__measure-disclaimer\" role=\"note\">\n {{ measureDisclaimer() }}\n </p>\n }\n </div>\n\n <geo-map-swipe\n [controller]=\"controller()\"\n [(active)]=\"swipeActive\"\n />\n\n <geo-map-help [(open)]=\"helpOpen\" />\n</div>\n", styles: ["@charset \"UTF-8\";.geo-map-shell-host{display:block;min-height:360px}.geo-map-shell{position:relative;width:100%;height:100%;min-height:inherit;overflow:hidden;border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-neutral-100)}.geo-map-shell:fullscreen,.geo-map-shell:-webkit-full-screen{width:100%;height:100%;min-height:100%;border:0;border-radius:0;background:var(--geo-color-neutral-100)}.geo-map-shell:fullscreen>.cdk-overlay-container,.geo-map-shell:-webkit-full-screen>.cdk-overlay-container{z-index:1200}.geo-map-shell__map{display:block;width:100%;height:100%}.geo-map-shell__chrome-left{position:absolute;top:16px;left:16px;z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:calc(100% - 32px);max-height:calc(100% - 172px);overflow:visible;pointer-events:none}.geo-map-shell__chrome-left>*{pointer-events:auto}.geo-map-shell__toolbar{flex-shrink:0}.geo-map-shell__panels{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:min(420px,100%);min-height:0;overflow:visible;pointer-events:none}.geo-map-shell__panels>*{pointer-events:auto}.geo-map-shell__panels .geo-map-search,.geo-map-shell__panels .geo-map-admin-filter,.geo-map-shell__panels .geo-map-parcel-popup,.geo-map-shell__panels .geo-map-layers-drawer,.geo-map-shell__panels .geo-map-legend{max-height:min(640px,100dvh - 100px);overflow:auto}.geo-map-shell__snapshot-bridge,.geo-map-shell__zoom-bridge,.geo-map-shell__locate-bridge{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;opacity:0}.geo-map-shell__bottom-left{position:absolute;left:16px;bottom:72px;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:min(300px,100% - 120px);pointer-events:none}.geo-map-shell__bottom-left>*{pointer-events:auto}.geo-map-shell__top-right{position:absolute;top:16px;right:16px;z-index:7;display:flex;align-items:center;justify-content:flex-end;height:48px;max-width:min(360px,100% - 32px);pointer-events:none}.geo-map-shell__top-right>*{pointer-events:auto}.geo-map-shell__bottom-right{position:absolute;right:16px;bottom:24px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.geo-map-shell__bottom-right>*{pointer-events:auto}.geo-map-shell__status{position:absolute;left:50%;bottom:24px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:min(480px,100% - 32px);transform:translate(-50%);pointer-events:none}.geo-map-shell__status>*{pointer-events:auto}.geo-map-shell__measure-disclaimer{margin:0;padding:6px 12px;border-radius:var(--geo-radius);background:var(--geo-color-neutral-white);border:1px solid var(--geo-color-border-default);font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-700);text-align:center}.geo-map-shell .geo-map__mouse-position,.geo-map-shell .ol-scale-line{display:none!important}.geo-map-shell .ol-attribution{display:none}\n"], dependencies: [{ kind: "component", type: GeoMapComponent, selector: "geo-map", inputs: ["center", "zoom", "minZoom", "maxZoom", "viewProjection", "basemap", "layers", "height", "registerProjections", "projections", "showMousePosition", "mousePositionProjection", "showZoomControl"], outputs: ["mapReady", "mapClick", "viewChange", "initError"] }, { kind: "component", type: GeoMapToolbarComponent, selector: "geo-map-toolbar", inputs: ["controller", "actions", "compact", "checkedMap"], outputs: ["checkedMapChange", "actionClick", "actionToggle"] }, { kind: "component", type: GeoMapZoomComponent, selector: "geo-map-zoom", inputs: ["controller", "showNav", "showFitProvince", "provinceExtent", "fullscreenTarget"] }, { kind: "component", type: GeoMapSnapshotComponent, selector: "geo-map-snapshot", inputs: ["controller", "label", "filename"], outputs: ["captured", "captureError"] }, { kind: "component", type: GeoMapMeasureComponent, selector: "geo-map-measure", inputs: ["controller", "mode", "showResult"], outputs: ["modeChange", "measureChange"] }, { kind: "component", type: GeoMapLayersDrawerComponent, selector: "geo-map-layers-drawer", inputs: ["controller", "open", "title", "legendItems", "showOpacity", "showLegend", "layers"], outputs: ["openChange", "layersChange", "closed"] }, { kind: "component", type: GeoMapLegendComponent, selector: "geo-map-legend", inputs: ["title", "items", "catalogMissing", "open"], outputs: ["openChange", "closed"] }, { kind: "component", type: GeoMapHelpComponent, selector: "geo-map-help", inputs: ["open", "title", "sections"], outputs: ["openChange"] }, { kind: "component", type: GeoMapSwipeComponent, selector: "geo-map-swipe", inputs: ["controller", "active", "position", "layerId"], outputs: ["activeChange", "positionChange"] }, { kind: "component", type: GeoMapSearchComponent, selector: "geo-map-search", inputs: ["open", "title", "mode", "results", "loading", "pageIndex", "pageSize", "total", "emptyText"], outputs: ["openChange", "modeChange", "pageIndexChange", "pageSizeChange", "search", "reset", "resultSelect", "closed"] }, { kind: "component", type: GeoMapAdminFilterComponent, selector: "geo-map-admin-filter", inputs: ["open", "title", "nodes", "selectionMode", "checkedKeys", "expandedKeys"], outputs: ["openChange", "checkedKeysChange", "expandedKeysChange", "apply", "reset", "fitProvince", "closed", "selectionChange"] }, { kind: "component", type: GeoMapParcelPopupComponent, selector: "geo-map-parcel-popup", inputs: ["open", "title", "parcel", "audience", "showExport"], outputs: ["openChange", "closed", "back", "exportClick", "diagramClick"] }, { kind: "component", type: GeoMapLocationChipComponent, selector: "geo-map-location-chip", inputs: ["label", "icon"] }, { kind: "component", type: GeoMapBasemapSwitcherComponent, selector: "geo-map-basemap-switcher", inputs: ["options", "selectedId", "label", "tooltip"], outputs: ["selectedIdChange", "basemapChange"] }, { kind: "component", type: GeoMapLocateComponent, selector: "geo-map-locate", inputs: ["controller", "label"], outputs: ["located", "denied", "locateError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7928
7986
|
}
|
|
7929
7987
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapShellComponent, decorators: [{
|
|
7930
7988
|
type: Component,
|
|
@@ -7943,10 +8001,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
7943
8001
|
GeoMapParcelPopupComponent,
|
|
7944
8002
|
GeoMapLocationChipComponent,
|
|
7945
8003
|
GeoMapBasemapSwitcherComponent,
|
|
8004
|
+
GeoMapLocateComponent,
|
|
7946
8005
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
7947
8006
|
class: 'geo-map-shell-host',
|
|
7948
8007
|
'[style.height]': 'height()',
|
|
7949
|
-
}, template: "<div class=\"geo-map-shell\">\n <geo-map\n class=\"geo-map-shell__map\"\n [center]=\"center()\"\n [zoom]=\"zoom()\"\n [height]=\"'100%'\"\n [basemap]=\"basemap()\"\n [layers]=\"resolvedLayers()\"\n [showMousePosition]=\"showMousePosition()\"\n [showZoomControl]=\"false\"\n (mapReady)=\"onMapReady($event)\"\n (mapClick)=\"onMapClick($event)\"\n />\n\n <div class=\"geo-map-shell__chrome-left\">\n <geo-map-toolbar\n class=\"geo-map-shell__toolbar\"\n [controller]=\"controller()\"\n [actions]=\"resolvedToolbarActions()\"\n [(checkedMap)]=\"checkedMap\"\n (actionClick)=\"onToolbarAction($event)\"\n (actionToggle)=\"onToolbarToggle($event)\"\n />\n\n <div class=\"geo-map-shell__panels\">\n <geo-map-search\n [(open)]=\"searchOpen\"\n [results]=\"searchResults()\"\n (search)=\"onSearch($event)\"\n (reset)=\"onSearchReset()\"\n (resultSelect)=\"onResultSelect($event)\"\n />\n <geo-map-admin-filter\n [(open)]=\"adminFilterOpen\"\n title=\"Chuy\u1EC3n v\u1ECB tr\u00ED\"\n [nodes]=\"adminNodes()\"\n [(checkedKeys)]=\"adminCheckedKeys\"\n [(expandedKeys)]=\"adminExpandedKeys\"\n (apply)=\"onAdminApply($event)\"\n (reset)=\"adminCheckedKeys.set([])\"\n (fitProvince)=\"onFitProvince()\"\n (closed)=\"onAdminClosed()\"\n />\n <geo-map-parcel-popup\n [(open)]=\"parcelOpen\"\n [parcel]=\"selectedParcel()\"\n [audience]=\"parcelAudience()\"\n (exportClick)=\"parcelExport.emit($event)\"\n (back)=\"onParcelBack()\"\n (closed)=\"onParcelClosed()\"\n />\n <geo-map-layers-drawer\n [controller]=\"controller()\"\n [(open)]=\"layersOpen\"\n [(layers)]=\"managedLayers\"\n />\n <geo-map-legend\n [(open)]=\"legendOpen\"\n [items]=\"legendItems()\"\n />\n </div>\n </div>\n\n <!-- Headless bridges: zoom/fullscreen + snapshot (driven by toolbar actions). -->\n <geo-map-zoom\n class=\"geo-map-shell__zoom-bridge\"\n [controller]=\"controller()\"\n [showNav]=\"showNav()\"\n [provinceExtent]=\"provinceExtent()\"\n />\n <geo-map-snapshot\n class=\"geo-map-shell__snapshot-bridge\"\n [controller]=\"controller()\"\n />\n\n <div class=\"geo-map-shell__top-right\">\n <ng-content select=\"[geoMapShellTopRight]\" />\n </div>\n\n <div class=\"geo-map-shell__bottom-right\">\n <geo-map-basemap-switcher\n [options]=\"basemapOptions()\"\n [(selectedId)]=\"basemapId\"\n (basemapChange)=\"onBasemapChange($event)\"\n />\n </div>\n\n <div class=\"geo-map-shell__status\">\n @if (locationLabel()) {\n <geo-map-location-chip [label]=\"locationLabel()\" />\n }\n <geo-map-measure\n [controller]=\"controller()\"\n [(mode)]=\"measureMode\"\n />\n </div>\n\n <geo-map-swipe\n [controller]=\"controller()\"\n [(active)]=\"swipeActive\"\n />\n\n <geo-map-help [(open)]=\"helpOpen\" />\n</div>\n", styles: ["
|
|
8008
|
+
}, template: "<div class=\"geo-map-shell\">\n <geo-map\n class=\"geo-map-shell__map\"\n [center]=\"center()\"\n [zoom]=\"zoom()\"\n [height]=\"'100%'\"\n [basemap]=\"basemap()\"\n [layers]=\"resolvedLayers()\"\n [showMousePosition]=\"showMousePosition()\"\n [showZoomControl]=\"false\"\n (mapReady)=\"onMapReady($event)\"\n (mapClick)=\"onMapClick($event)\"\n />\n\n <div class=\"geo-map-shell__chrome-left\">\n <geo-map-toolbar\n class=\"geo-map-shell__toolbar\"\n [controller]=\"controller()\"\n [actions]=\"resolvedToolbarActions()\"\n [(checkedMap)]=\"checkedMap\"\n (actionClick)=\"onToolbarAction($event)\"\n (actionToggle)=\"onToolbarToggle($event)\"\n />\n\n <div class=\"geo-map-shell__panels\">\n <geo-map-search\n [(open)]=\"searchOpen\"\n [results]=\"searchResults()\"\n (search)=\"onSearch($event)\"\n (reset)=\"onSearchReset()\"\n (resultSelect)=\"onResultSelect($event)\"\n />\n <geo-map-admin-filter\n [(open)]=\"adminFilterOpen\"\n title=\"Chuy\u1EC3n v\u1ECB tr\u00ED\"\n [nodes]=\"adminNodes()\"\n [selectionMode]=\"adminSelectionMode()\"\n [(checkedKeys)]=\"adminCheckedKeys\"\n [(expandedKeys)]=\"adminExpandedKeys\"\n (apply)=\"onAdminApply($event)\"\n (reset)=\"adminCheckedKeys.set([])\"\n (fitProvince)=\"onFitProvince()\"\n (closed)=\"onAdminClosed()\"\n />\n <geo-map-parcel-popup\n [(open)]=\"parcelOpen\"\n [parcel]=\"selectedParcel()\"\n [audience]=\"parcelAudience()\"\n (exportClick)=\"parcelExport.emit($event)\"\n (back)=\"onParcelBack()\"\n (closed)=\"onParcelClosed()\"\n />\n <geo-map-layers-drawer\n [controller]=\"controller()\"\n [(open)]=\"layersOpen\"\n [(layers)]=\"managedLayers\"\n />\n <geo-map-legend\n [(open)]=\"legendOpen\"\n [items]=\"legendItems()\"\n [catalogMissing]=\"legendCatalogMissing()\"\n />\n </div>\n </div>\n\n <!-- Headless bridges: zoom/fullscreen + snapshot + locate (driven by toolbar actions). -->\n <geo-map-zoom\n class=\"geo-map-shell__zoom-bridge\"\n [controller]=\"controller()\"\n [showNav]=\"showNav()\"\n [provinceExtent]=\"provinceExtent()\"\n />\n <geo-map-snapshot\n class=\"geo-map-shell__snapshot-bridge\"\n [controller]=\"controller()\"\n (captured)=\"snapshotCaptured.emit()\"\n (captureError)=\"snapshotError.emit($event)\"\n />\n <geo-map-locate\n class=\"geo-map-shell__locate-bridge\"\n [controller]=\"controller()\"\n (located)=\"located.emit($event)\"\n (denied)=\"locateDenied.emit()\"\n (locateError)=\"locateError.emit($event)\"\n />\n\n <div class=\"geo-map-shell__top-right\">\n <ng-content select=\"[geoMapShellTopRight]\" />\n </div>\n\n <div class=\"geo-map-shell__bottom-right\">\n <geo-map-basemap-switcher\n [options]=\"basemapOptions()\"\n [(selectedId)]=\"basemapId\"\n (basemapChange)=\"onBasemapChange($event)\"\n />\n </div>\n\n <div class=\"geo-map-shell__status\">\n @if (locationLabel()) {\n <geo-map-location-chip [label]=\"locationLabel()\" />\n }\n <geo-map-measure\n [controller]=\"controller()\"\n [(mode)]=\"measureMode\"\n />\n @if (measureMode() !== 'none' && measureDisclaimer()) {\n <p class=\"geo-map-shell__measure-disclaimer\" role=\"note\">\n {{ measureDisclaimer() }}\n </p>\n }\n </div>\n\n <geo-map-swipe\n [controller]=\"controller()\"\n [(active)]=\"swipeActive\"\n />\n\n <geo-map-help [(open)]=\"helpOpen\" />\n</div>\n", styles: ["@charset \"UTF-8\";.geo-map-shell-host{display:block;min-height:360px}.geo-map-shell{position:relative;width:100%;height:100%;min-height:inherit;overflow:hidden;border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-neutral-100)}.geo-map-shell:fullscreen,.geo-map-shell:-webkit-full-screen{width:100%;height:100%;min-height:100%;border:0;border-radius:0;background:var(--geo-color-neutral-100)}.geo-map-shell:fullscreen>.cdk-overlay-container,.geo-map-shell:-webkit-full-screen>.cdk-overlay-container{z-index:1200}.geo-map-shell__map{display:block;width:100%;height:100%}.geo-map-shell__chrome-left{position:absolute;top:16px;left:16px;z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:calc(100% - 32px);max-height:calc(100% - 172px);overflow:visible;pointer-events:none}.geo-map-shell__chrome-left>*{pointer-events:auto}.geo-map-shell__toolbar{flex-shrink:0}.geo-map-shell__panels{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:min(420px,100%);min-height:0;overflow:visible;pointer-events:none}.geo-map-shell__panels>*{pointer-events:auto}.geo-map-shell__panels .geo-map-search,.geo-map-shell__panels .geo-map-admin-filter,.geo-map-shell__panels .geo-map-parcel-popup,.geo-map-shell__panels .geo-map-layers-drawer,.geo-map-shell__panels .geo-map-legend{max-height:min(640px,100dvh - 100px);overflow:auto}.geo-map-shell__snapshot-bridge,.geo-map-shell__zoom-bridge,.geo-map-shell__locate-bridge{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;opacity:0}.geo-map-shell__bottom-left{position:absolute;left:16px;bottom:72px;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:min(300px,100% - 120px);pointer-events:none}.geo-map-shell__bottom-left>*{pointer-events:auto}.geo-map-shell__top-right{position:absolute;top:16px;right:16px;z-index:7;display:flex;align-items:center;justify-content:flex-end;height:48px;max-width:min(360px,100% - 32px);pointer-events:none}.geo-map-shell__top-right>*{pointer-events:auto}.geo-map-shell__bottom-right{position:absolute;right:16px;bottom:24px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.geo-map-shell__bottom-right>*{pointer-events:auto}.geo-map-shell__status{position:absolute;left:50%;bottom:24px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:min(480px,100% - 32px);transform:translate(-50%);pointer-events:none}.geo-map-shell__status>*{pointer-events:auto}.geo-map-shell__measure-disclaimer{margin:0;padding:6px 12px;border-radius:var(--geo-radius);background:var(--geo-color-neutral-white);border:1px solid var(--geo-color-border-default);font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-700);text-align:center}.geo-map-shell .geo-map__mouse-position,.geo-map-shell .ol-scale-line{display:none!important}.geo-map-shell .ol-attribution{display:none}\n"] }]
|
|
7950
8009
|
}], ctorParameters: () => [] });
|
|
7951
8010
|
|
|
7952
8011
|
/*
|
|
@@ -7957,5 +8016,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
7957
8016
|
* Generated bundle index. Do not edit.
|
|
7958
8017
|
*/
|
|
7959
8018
|
|
|
7960
|
-
export { DEFAULT_UI_ROW_ACTIONS, DEFAULT_UI_TABLE_PAGE_SIZE_OPTIONS, GEO_ICON_SIZE_MAP, GEO_LAYOUT_DEFAULT_NOTIFICATIONS, GEO_LAYOUT_DEFAULT_SUBSYSTEMS, GEO_LAYOUT_DEFAULT_USER, GEO_LAYOUT_DEFAULT_USER_MENU, GEO_MAP_BASEMAP_LAYER_ID, GEO_MAP_BUILTIN_PROJECTIONS, GEO_MAP_DEFAULT_BASEMAP_OPTIONS, GEO_MAP_DEFAULT_CENTER, GEO_MAP_DEFAULT_HEIGHT, GEO_MAP_DEFAULT_HELP_SECTIONS, GEO_MAP_DEFAULT_MAX_ZOOM, GEO_MAP_DEFAULT_MIN_ZOOM, GEO_MAP_DEFAULT_PLANNING_LAYERS, GEO_MAP_DEFAULT_PROVINCE_EXTENT_4326, GEO_MAP_DEFAULT_TOOLBAR_ACTIONS, GEO_MAP_DEFAULT_VIEW_PROJECTION, GEO_MAP_DEFAULT_ZOOM, GEO_MAP_DEMO_ADMIN_NODES, GEO_MAP_DEMO_LEGEND_ITEMS, GEO_MAP_DEMO_PARCEL_DETAIL, GEO_MAP_DEMO_THEMATIC_LAYERS, GEO_MAP_ENV_PLACEHOLDERS, GEO_MAP_ESRI_IMAGERY_URL, GEO_MAP_ESRI_STREETS_URL, GEO_MAP_ESRI_TRANSPORT_URL, GEO_MAP_HIGHLIGHT_LAYER_ID, GEO_MAP_MEASURE_LAYER_ID, GEO_MAP_SELECTION_LAYER_ID, GEO_MAP_TOOLBAR_ASSET_BASE, GEO_MAP_TOOLBAR_ICONS, GEO_MAP_TRAFFIC_LAYER_ID, GEO_MAP_TRAFFIC_OVERLAY, GEO_STATUS_COLOR_MAP, GEO_STATUS_LABELS, GEO_TOAST_DEFAULT_TITLES, GEO_TOAST_ICONS, GEO_TYPOGRAPHY_TAG, GEO_TYPOGRAPHY_VARIANTS, GeoAlertComponent, GeoBackButtonComponent, GeoBreadcrumbComponent, GeoButtonComponent, GeoChartComponent, GeoCheckboxComponent, GeoColumnPickerComponent, GeoConfirmModalComponent, GeoDashboardComponent, GeoDatePickerComponent, GeoDateRangePickerComponent, GeoEmptyStateComponent, GeoFeedbackFormComponent, GeoFilePickerComponent, GeoForgotPasswordComponent, GeoFormModalComponent, GeoIconComponent, GeoInputComponent, GeoLayoutActionsDirective, GeoLayoutComponent, GeoLayoutFooterComponent, GeoLayoutHeaderActionsComponent, GeoLayoutHeaderComponent, GeoLayoutSidebarComponent, GeoListPageComponent, GeoLoginComponent, GeoMapAdminFilterComponent, GeoMapBasemapSwitcherComponent, GeoMapComponent, GeoMapController, GeoMapHelpComponent, GeoMapLayerCardComponent, GeoMapLayerPanelComponent, GeoMapLayerService, GeoMapLayersDrawerComponent, GeoMapLegendComponent, GeoMapLocateComponent, GeoMapLocationChipComponent, GeoMapMeasureComponent, GeoMapOpacityComponent, GeoMapParcelPopupComponent, GeoMapProjectionError, GeoMapProjectionService, GeoMapSearchComponent, GeoMapService, GeoMapShellComponent, GeoMapSnapshotComponent, GeoMapSwipeComponent, GeoMapToolbarComponent, GeoMapZoomComponent, GeoOverlapResultComponent, GeoPageHeaderComponent, GeoPageTitleComponent, GeoPaginationComponent, GeoRadioComponent, GeoRowActionsComponent, GeoSelectComponent, GeoSliderComponent, GeoStatCardComponent, GeoStatusTagComponent, GeoStepFormLayoutComponent, GeoStepperComponent, GeoTabDirective, GeoTableComponent, GeoTableFilterComponent, GeoTablePaginationComponent, GeoTableToolbarComponent, GeoTabsComponent, GeoTextareaComponent, GeoToastComponent, GeoToastService, GeoTreeComponent, GeoTypographyComponent, GeoUploadComponent, NgZorroAntdModule, UI_ALERT_DEFAULT_TITLES, UI_STATUS_LABELS, UI_TABLE_MOBILE_BREAKPOINT, applyColumnPickerState, cssVar, geoColorCssVars, geoColorTokens, geoFormatBytes, geoFormatSpeed, geoRadiusCssVars, geoRadiusTokens, geoShadowTokens, geoTypographyTokens, geoUploadPercent, loadColumnPickerState, mergeColumnPickerItems, pickInlineRowActions, pickOverflowRowActions, saveColumnPickerState };
|
|
8019
|
+
export { DEFAULT_UI_ROW_ACTIONS, DEFAULT_UI_TABLE_PAGE_SIZE_OPTIONS, GEO_ICON_SIZE_MAP, GEO_LAYOUT_DEFAULT_NOTIFICATIONS, GEO_LAYOUT_DEFAULT_SUBSYSTEMS, GEO_LAYOUT_DEFAULT_USER, GEO_LAYOUT_DEFAULT_USER_MENU, GEO_MAP_BASEMAP_LAYER_ID, GEO_MAP_BUILTIN_PROJECTIONS, GEO_MAP_DEFAULT_BASEMAP_OPTIONS, GEO_MAP_DEFAULT_CENTER, GEO_MAP_DEFAULT_HEIGHT, GEO_MAP_DEFAULT_HELP_SECTIONS, GEO_MAP_DEFAULT_MAX_ZOOM, GEO_MAP_DEFAULT_MIN_ZOOM, GEO_MAP_DEFAULT_PLANNING_LAYERS, GEO_MAP_DEFAULT_PROVINCE_EXTENT_4326, GEO_MAP_DEFAULT_TOOLBAR_ACTIONS, GEO_MAP_DEFAULT_VIEW_PROJECTION, GEO_MAP_DEFAULT_ZOOM, GEO_MAP_DEMO_ADMIN_NODES, GEO_MAP_DEMO_LEGEND_ITEMS, GEO_MAP_DEMO_PARCEL_DETAIL, GEO_MAP_DEMO_THEMATIC_LAYERS, GEO_MAP_ENV_PLACEHOLDERS, GEO_MAP_ESRI_IMAGERY_URL, GEO_MAP_ESRI_STREETS_URL, GEO_MAP_ESRI_TRANSPORT_URL, GEO_MAP_HIGHLIGHT_LAYER_ID, GEO_MAP_LOCATE_TOOLBAR_ACTION, GEO_MAP_MEASURE_LAYER_ID, GEO_MAP_SELECTION_LAYER_ID, GEO_MAP_TOOLBAR_ASSET_BASE, GEO_MAP_TOOLBAR_ICONS, GEO_MAP_TRAFFIC_LAYER_ID, GEO_MAP_TRAFFIC_OVERLAY, GEO_STATUS_COLOR_MAP, GEO_STATUS_LABELS, GEO_TOAST_DEFAULT_TITLES, GEO_TOAST_ICONS, GEO_TYPOGRAPHY_TAG, GEO_TYPOGRAPHY_VARIANTS, GeoAlertComponent, GeoBackButtonComponent, GeoBreadcrumbComponent, GeoButtonComponent, GeoChartComponent, GeoCheckboxComponent, GeoColumnPickerComponent, GeoConfirmModalComponent, GeoDashboardComponent, GeoDatePickerComponent, GeoDateRangePickerComponent, GeoEmptyStateComponent, GeoFeedbackFormComponent, GeoFilePickerComponent, GeoForgotPasswordComponent, GeoFormModalComponent, GeoIconComponent, GeoInputComponent, GeoLayoutActionsDirective, GeoLayoutComponent, GeoLayoutFooterComponent, GeoLayoutHeaderActionsComponent, GeoLayoutHeaderComponent, GeoLayoutSidebarComponent, GeoListPageComponent, GeoLoginComponent, GeoMapAdminFilterComponent, GeoMapBasemapSwitcherComponent, GeoMapComponent, GeoMapController, GeoMapHelpComponent, GeoMapLayerCardComponent, GeoMapLayerPanelComponent, GeoMapLayerService, GeoMapLayersDrawerComponent, GeoMapLegendComponent, GeoMapLocateComponent, GeoMapLocationChipComponent, GeoMapMeasureComponent, GeoMapOpacityComponent, GeoMapParcelPopupComponent, GeoMapProjectionError, GeoMapProjectionService, GeoMapSearchComponent, GeoMapService, GeoMapShellComponent, GeoMapSnapshotComponent, GeoMapSwipeComponent, GeoMapToolbarComponent, GeoMapZoomComponent, GeoOverlapResultComponent, GeoPageHeaderComponent, GeoPageTitleComponent, GeoPaginationComponent, GeoRadioComponent, GeoRowActionsComponent, GeoSelectComponent, GeoSliderComponent, GeoStatCardComponent, GeoStatusTagComponent, GeoStepFormLayoutComponent, GeoStepperComponent, GeoTabDirective, GeoTableComponent, GeoTableFilterComponent, GeoTablePaginationComponent, GeoTableToolbarComponent, GeoTabsComponent, GeoTextareaComponent, GeoToastComponent, GeoToastService, GeoTreeComponent, GeoTypographyComponent, GeoUploadComponent, NgZorroAntdModule, UI_ALERT_DEFAULT_TITLES, UI_STATUS_LABELS, UI_TABLE_MOBILE_BREAKPOINT, applyColumnPickerState, cssVar, geoColorCssVars, geoColorTokens, geoFormatBytes, geoFormatSpeed, geoRadiusCssVars, geoRadiusTokens, geoShadowTokens, geoTypographyTokens, geoUploadPercent, loadColumnPickerState, mergeColumnPickerItems, pickInlineRowActions, pickOverflowRowActions, saveColumnPickerState };
|
|
7961
8020
|
//# sourceMappingURL=geoit-ui.mjs.map
|