@geoit/ui 0.0.7 → 0.1.0

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.
Files changed (39) hide show
  1. package/ai/AGENTS.md +4 -0
  2. package/ai/README.md +4 -1
  3. package/ai/catalog.json +194 -64
  4. package/ai/components/geo-accordion.md +92 -0
  5. package/ai/components/geo-detail-view.md +91 -0
  6. package/ai/components/geo-map-admin-filter.md +0 -1
  7. package/ai/components/geo-map-legend.md +0 -1
  8. package/ai/components/geo-map-shell.md +0 -7
  9. package/ai/components/geo-switch.md +76 -0
  10. package/ai/components/geo-tree.md +0 -2
  11. package/ai/mockup.html +2 -2
  12. package/esm2022/lib/figma/geo-accordion/geo-accordion.component.mjs +67 -0
  13. package/esm2022/lib/figma/geo-accordion/geo-accordion.types.mjs +2 -0
  14. package/esm2022/lib/figma/geo-chart/geo-chart.component.mjs +3 -14
  15. package/esm2022/lib/figma/geo-detail-view/geo-detail-view.component.mjs +47 -0
  16. package/esm2022/lib/figma/geo-detail-view/geo-detail-view.types.mjs +2 -0
  17. package/esm2022/lib/figma/geo-list-page/geo-list-page.component.mjs +3 -3
  18. package/esm2022/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.mjs +3 -5
  19. package/esm2022/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.mjs +3 -5
  20. package/esm2022/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.mjs +3 -22
  21. package/esm2022/lib/figma/geo-map/geo-map.constants.mjs +1 -13
  22. package/esm2022/lib/figma/geo-switch/geo-switch.component.mjs +44 -0
  23. package/esm2022/lib/figma/geo-tree/geo-tree.component.mjs +3 -17
  24. package/esm2022/lib/figma/index.mjs +6 -1
  25. package/fesm2022/geoit-ui.mjs +173 -87
  26. package/fesm2022/geoit-ui.mjs.map +1 -1
  27. package/lib/figma/geo-accordion/geo-accordion.component.d.ts +34 -0
  28. package/lib/figma/geo-accordion/geo-accordion.types.d.ts +7 -0
  29. package/lib/figma/geo-chart/geo-chart.component.d.ts +0 -9
  30. package/lib/figma/geo-detail-view/geo-detail-view.component.d.ts +30 -0
  31. package/lib/figma/geo-detail-view/geo-detail-view.types.d.ts +8 -0
  32. package/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.d.ts +1 -3
  33. package/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.d.ts +1 -3
  34. package/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.d.ts +2 -19
  35. package/lib/figma/geo-map/geo-map.constants.d.ts +0 -6
  36. package/lib/figma/geo-switch/geo-switch.component.d.ts +25 -0
  37. package/lib/figma/geo-tree/geo-tree.component.d.ts +1 -5
  38. package/lib/figma/index.d.ts +5 -0
  39. package/package.json +1 -1
@@ -14,8 +14,6 @@ export class GeoMapAdminFilterComponent {
14
14
  open = model(false);
15
15
  title = input('Đơn vị hành chính');
16
16
  nodes = input([]);
17
- /** `single` — chọn đúng 1 xã/phường (BR-06-03); `multi` — checkbox nhiều cấp (mặc định). */
18
- selectionMode = input('multi');
19
17
  checkedKeys = model([]);
20
18
  expandedKeys = model([]);
21
19
  apply = output();
@@ -42,13 +40,13 @@ export class GeoMapAdminFilterComponent {
42
40
  this.closed.emit();
43
41
  }
44
42
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapAdminFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
- 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;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}.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:40px;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 });
43
+ 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]=\"true\"\n [checkedKeys]=\"checkedKeys()\"\n [expandedKeys]=\"expandedKeys()\"\n (checkedKeysChange)=\"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;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}.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:40px;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", "checkedKeys", "expandedKeys", "showLine", "blockNode"], outputs: ["checkedKeysChange", "expandedKeysChange", "nodeClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
46
44
  }
47
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapAdminFilterComponent, decorators: [{
48
46
  type: Component,
49
47
  args: [{ selector: 'geo-map-admin-filter', standalone: true, imports: [GeoButtonComponent, GeoIconComponent, GeoTreeComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
50
48
  class: 'geo-map-admin-filter-host',
51
49
  '[class.geo-map-admin-filter-host--open]': 'open()',
52
- }, 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;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}.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:40px;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"] }]
50
+ }, 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]=\"true\"\n [checkedKeys]=\"checkedKeys()\"\n [expandedKeys]=\"expandedKeys()\"\n (checkedKeysChange)=\"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;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}.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:40px;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"] }]
53
51
  }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC1hZG1pbi1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1hZG1pbi1maWx0ZXIvZ2VvLW1hcC1hZG1pbi1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1hZG1pbi1maWx0ZXIvZ2VvLW1hcC1hZG1pbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUd4RTs7Ozs7O0dBTUc7QUFjSCxNQUFNLE9BQU8sMEJBQTBCO0lBQzVCLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ25DLEtBQUssR0FBRyxLQUFLLENBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLDRGQUE0RjtJQUNuRixhQUFhLEdBQUcsS0FBSyxDQUFxQixPQUFPLENBQUMsQ0FBQztJQUNuRCxXQUFXLEdBQUcsS0FBSyxDQUF5QixFQUFFLENBQUMsQ0FBQztJQUNoRCxZQUFZLEdBQUcsS0FBSyxDQUF5QixFQUFFLENBQUMsQ0FBQztJQUVqRCxLQUFLLEdBQUcsTUFBTSxFQUEwQixDQUFDO0lBQ3pDLEtBQUssR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUN2QixXQUFXLEdBQUcsTUFBTSxFQUFRLENBQUM7SUFDN0IsTUFBTSxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBQ3hCLGVBQWUsR0FBRyxNQUFNLEVBQTBCLENBQUM7SUFFNUQsZUFBZSxDQUFDLElBQTRCO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzt3R0FwQ1UsMEJBQTBCOzRGQUExQiwwQkFBMEIsMnJDQ2pDdkMsOGhEQTJDQSx3a0VEcEJZLGtCQUFrQixzT0FBRSxnQkFBZ0IseUdBQUUsZ0JBQWdCOzs0RkFVckQsMEJBQTBCO2tCQWJ0QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxtQkFHaEQsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsMkJBQTJCO3dCQUNsQyx5Q0FBeUMsRUFBRSxRQUFRO3FCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHZW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9nZW8tYnV0dG9uL2dlby1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEdlb0ljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9nZW8taWNvbi9nZW8taWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VvVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2dlby10cmVlL2dlby10cmVlLmNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7IEdlb1RyZWVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vZ2VvLXRyZWUvZ2VvLXRyZWUudHlwZXMnO1xuXG4vKipcbiAqIEFkbWluaXN0cmF0aXZlIHVuaXQgZmlsdGVyIHRyZWUgKFRDUUguMTQg4oCUIGPhuqVwIHjDoykuXG4gKlxuICogQHN1bW1hcnkgUGFuZWwgbOG7jWMgY8OieSDEkcahbiB24buLIGjDoG5oIGNow61uaCBj4bqlcCB4w6MgdHLDqm4gYuG6o24gxJHhu5MuXG4gKiBAd2hlblRvVXNlIFRyYSBj4bupdSBi4bqjbiDEkeG7kyBj4bqnbiBs4buNYyB0aGVvIHjDoyAvIHBoxrDhu51uZy5cbiAqIEBkb05vdFVzZVdoZW4gR2xvYmFsIG9yZyBjaGFydHMgb3V0c2lkZSBtYXAgY29udGV4dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLW1hcC1hZG1pbi1maWx0ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbR2VvQnV0dG9uQ29tcG9uZW50LCBHZW9JY29uQ29tcG9uZW50LCBHZW9UcmVlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1tYXAtYWRtaW4tZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1tYXAtYWRtaW4tZmlsdGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1tYXAtYWRtaW4tZmlsdGVyLWhvc3QnLFxuICAgICdbY2xhc3MuZ2VvLW1hcC1hZG1pbi1maWx0ZXItaG9zdC0tb3Blbl0nOiAnb3BlbigpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvTWFwQWRtaW5GaWx0ZXJDb21wb25lbnQge1xuICByZWFkb25seSBvcGVuID0gbW9kZWwoZmFsc2UpO1xuICByZWFkb25seSB0aXRsZSA9IGlucHV0KCfEkMahbiB24buLIGjDoG5oIGNow61uaCcpO1xuICByZWFkb25seSBub2RlcyA9IGlucHV0PEdlb1RyZWVOb2RlW10+KFtdKTtcbiAgLyoqIGBzaW5nbGVgIOKAlCBjaOG7jW4gxJHDum5nIDEgeMOjL3BoxrDhu51uZyAoQlItMDYtMDMpOyBgbXVsdGlgIOKAlCBjaGVja2JveCBuaGnhu4F1IGPhuqVwICht4bq3YyDEkeG7i25oKS4gKi9cbiAgcmVhZG9ubHkgc2VsZWN0aW9uTW9kZSA9IGlucHV0PCdzaW5nbGUnIHwgJ211bHRpJz4oJ211bHRpJyk7XG4gIHJlYWRvbmx5IGNoZWNrZWRLZXlzID0gbW9kZWw8QXJyYXk8c3RyaW5nIHwgbnVtYmVyPj4oW10pO1xuICByZWFkb25seSBleHBhbmRlZEtleXMgPSBtb2RlbDxBcnJheTxzdHJpbmcgfCBudW1iZXI+PihbXSk7XG5cbiAgcmVhZG9ubHkgYXBwbHkgPSBvdXRwdXQ8QXJyYXk8c3RyaW5nIHwgbnVtYmVyPj4oKTtcbiAgcmVhZG9ubHkgcmVzZXQgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgcmVhZG9ubHkgZml0UHJvdmluY2UgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgcmVhZG9ubHkgY2xvc2VkID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZSA9IG91dHB1dDxBcnJheTxzdHJpbmcgfCBudW1iZXI+PigpO1xuXG4gIG9uQ2hlY2tlZENoYW5nZShrZXlzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkS2V5cy5zZXQoa2V5cyk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChrZXlzKTtcbiAgfVxuXG4gIG9uQXBwbHkoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBseS5lbWl0KHRoaXMuY2hlY2tlZEtleXMoKSk7XG4gIH1cblxuICBvblJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZEtleXMuc2V0KFtdKTtcbiAgICB0aGlzLnJlc2V0LmVtaXQoKTtcbiAgfVxuXG4gIG9uRml0UHJvdmluY2UoKTogdm9pZCB7XG4gICAgdGhpcy5maXRQcm92aW5jZS5lbWl0KCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIkBpZiAob3BlbigpKSB7XG4gIDxzZWN0aW9uIGNsYXNzPVwiZ2VvLW1hcC1hZG1pbi1maWx0ZXJcIiBhcmlhLWxhYmVsPVwiTOG7jWMgxJHGoW4gduG7iyBow6BuaCBjaMOtbmhcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwiZ2VvLW1hcC1hZG1pbi1maWx0ZXJfX2hlYWRlclwiPlxuICAgICAgPGgzIGNsYXNzPVwiZ2VvLW1hcC1hZG1pbi1maWx0ZXJfX3RpdGxlXCI+e3sgdGl0bGUoKSB9fTwvaDM+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImdlby1tYXAtYWRtaW4tZmlsdGVyX19pY29uLWJ0blwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCLEkMOzbmcgYuG7mSBs4buNY1wiXG4gICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGdlby1pY29uIHR5cGU9XCJjbG9zZVwiIHNpemU9XCJzbVwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2hlYWRlcj5cblxuICAgIDxkaXYgY2xhc3M9XCJnZW8tbWFwLWFkbWluLWZpbHRlcl9fYm9keVwiPlxuICAgICAgPGdlby10cmVlXG4gICAgICAgIFtub2Rlc109XCJub2RlcygpXCJcbiAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcbiAgICAgICAgW2NoZWNrYWJsZV09XCJzZWxlY3Rpb25Nb2RlKCkgPT09ICdtdWx0aSdcIlxuICAgICAgICBbY2hlY2tlZEtleXNdPVwiY2hlY2tlZEtleXMoKVwiXG4gICAgICAgIFtzZWxlY3RlZEtleXNdPVwiY2hlY2tlZEtleXMoKVwiXG4gICAgICAgIFtleHBhbmRlZEtleXNdPVwiZXhwYW5kZWRLZXlzKClcIlxuICAgICAgICAoY2hlY2tlZEtleXNDaGFuZ2UpPVwib25DaGVja2VkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoc2VsZWN0ZWRLZXlzQ2hhbmdlKT1cIm9uQ2hlY2tlZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGV4cGFuZGVkS2V5c0NoYW5nZSk9XCJleHBhbmRlZEtleXMuc2V0KCRldmVudClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxmb290ZXIgY2xhc3M9XCJnZW8tbWFwLWFkbWluLWZpbHRlcl9fZm9vdGVyXCI+XG4gICAgICA8Z2VvLWJ1dHRvbiBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCIgKGNsaWNrZWQpPVwib25GaXRQcm92aW5jZSgpXCI+XG4gICAgICAgIFhlbSB0b8OgbiB04buJbmhcbiAgICAgIDwvZ2VvLWJ1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnZW8tbWFwLWFkbWluLWZpbHRlcl9fZm9vdGVyLWVuZFwiPlxuICAgICAgICA8Z2VvLWJ1dHRvbiBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCIgKGNsaWNrZWQpPVwib25SZXNldCgpXCI+XG4gICAgICAgICAgxJDhurd0IGzhuqFpXG4gICAgICAgIDwvZ2VvLWJ1dHRvbj5cbiAgICAgICAgPGdlby1idXR0b24gYXBwZWFyYW5jZT1cInByaW1hcnlcIiAoY2xpY2tlZCk9XCJvbkFwcGx5KClcIj5cbiAgICAgICAgICDDgXAgZOG7pW5nXG4gICAgICAgIDwvZ2VvLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9vdGVyPlxuICA8L3NlY3Rpb24+XG59XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC1hZG1pbi1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1hZG1pbi1maWx0ZXIvZ2VvLW1hcC1hZG1pbi1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1hZG1pbi1maWx0ZXIvZ2VvLW1hcC1hZG1pbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUd4RTs7Ozs7O0dBTUc7QUFjSCxNQUFNLE9BQU8sMEJBQTBCO0lBQzVCLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ25DLEtBQUssR0FBRyxLQUFLLENBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLFdBQVcsR0FBRyxLQUFLLENBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELFlBQVksR0FBRyxLQUFLLENBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBRWpELEtBQUssR0FBRyxNQUFNLEVBQTBCLENBQUM7SUFDekMsS0FBSyxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBQ3ZCLFdBQVcsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUM3QixNQUFNLEdBQUcsTUFBTSxFQUFRLENBQUM7SUFDeEIsZUFBZSxHQUFHLE1BQU0sRUFBMEIsQ0FBQztJQUU1RCxlQUFlLENBQUMsSUFBNEI7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO3dHQWxDVSwwQkFBMEI7NEZBQTFCLDBCQUEwQiwyaUNDakN2QyxzM0NBd0NBLHdrRURqQlksa0JBQWtCLHNPQUFFLGdCQUFnQix5R0FBRSxnQkFBZ0I7OzRGQVVyRCwwQkFBMEI7a0JBYnRDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLG1CQUdoRCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSwyQkFBMkI7d0JBQ2xDLHlDQUF5QyxFQUFFLFFBQVE7cUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdlb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2dlby1idXR0b24vZ2VvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VvSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2dlby1pY29uL2dlby1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW9UcmVlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZ2VvLXRyZWUvZ2VvLXRyZWUuY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgR2VvVHJlZU5vZGUgfSBmcm9tICcuLi8uLi8uLi9nZW8tdHJlZS9nZW8tdHJlZS50eXBlcyc7XG5cbi8qKlxuICogQWRtaW5pc3RyYXRpdmUgdW5pdCBmaWx0ZXIgdHJlZSAoVENRSC4xNCDigJQgY+G6pXAgeMOjKS5cbiAqXG4gKiBAc3VtbWFyeSBQYW5lbCBs4buNYyBjw6J5IMSRxqFuIHbhu4sgaMOgbmggY2jDrW5oIGPhuqVwIHjDoyB0csOqbiBi4bqjbiDEkeG7ky5cbiAqIEB3aGVuVG9Vc2UgVHJhIGPhu6l1IGLhuqNuIMSR4buTIGPhuqduIGzhu41jIHRoZW8geMOjIC8gcGjGsOG7nW5nLlxuICogQGRvTm90VXNlV2hlbiBHbG9iYWwgb3JnIGNoYXJ0cyBvdXRzaWRlIG1hcCBjb250ZXh0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tbWFwLWFkbWluLWZpbHRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtHZW9CdXR0b25Db21wb25lbnQsIEdlb0ljb25Db21wb25lbnQsIEdlb1RyZWVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLW1hcC1hZG1pbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2VvLW1hcC1hZG1pbi1maWx0ZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ2VvLW1hcC1hZG1pbi1maWx0ZXItaG9zdCcsXG4gICAgJ1tjbGFzcy5nZW8tbWFwLWFkbWluLWZpbHRlci1ob3N0LS1vcGVuXSc6ICdvcGVuKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHZW9NYXBBZG1pbkZpbHRlckNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IG9wZW4gPSBtb2RlbChmYWxzZSk7XG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQoJ8SQxqFuIHbhu4sgaMOgbmggY2jDrW5oJyk7XG4gIHJlYWRvbmx5IG5vZGVzID0gaW5wdXQ8R2VvVHJlZU5vZGVbXT4oW10pO1xuICByZWFkb25seSBjaGVja2VkS2V5cyA9IG1vZGVsPEFycmF5PHN0cmluZyB8IG51bWJlcj4+KFtdKTtcbiAgcmVhZG9ubHkgZXhwYW5kZWRLZXlzID0gbW9kZWw8QXJyYXk8c3RyaW5nIHwgbnVtYmVyPj4oW10pO1xuXG4gIHJlYWRvbmx5IGFwcGx5ID0gb3V0cHV0PEFycmF5PHN0cmluZyB8IG51bWJlcj4+KCk7XG4gIHJlYWRvbmx5IHJlc2V0ID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IGZpdFByb3ZpbmNlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IGNsb3NlZCA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBvdXRwdXQ8QXJyYXk8c3RyaW5nIHwgbnVtYmVyPj4oKTtcblxuICBvbkNoZWNrZWRDaGFuZ2Uoa2V5czogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZEtleXMuc2V0KGtleXMpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoa2V5cyk7XG4gIH1cblxuICBvbkFwcGx5KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHkuZW1pdCh0aGlzLmNoZWNrZWRLZXlzKCkpO1xuICB9XG5cbiAgb25SZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWRLZXlzLnNldChbXSk7XG4gICAgdGhpcy5yZXNldC5lbWl0KCk7XG4gIH1cblxuICBvbkZpdFByb3ZpbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZml0UHJvdmluY2UuZW1pdCgpO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG59XG4iLCJAaWYgKG9wZW4oKSkge1xuICA8c2VjdGlvbiBjbGFzcz1cImdlby1tYXAtYWRtaW4tZmlsdGVyXCIgYXJpYS1sYWJlbD1cIkzhu41jIMSRxqFuIHbhu4sgaMOgbmggY2jDrW5oXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cImdlby1tYXAtYWRtaW4tZmlsdGVyX19oZWFkZXJcIj5cbiAgICAgIDxoMyBjbGFzcz1cImdlby1tYXAtYWRtaW4tZmlsdGVyX190aXRsZVwiPnt7IHRpdGxlKCkgfX08L2gzPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJnZW8tbWFwLWFkbWluLWZpbHRlcl9faWNvbi1idG5cIlxuICAgICAgICBhcmlhLWxhYmVsPVwixJDDs25nIGLhu5kgbOG7jWNcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICA+XG4gICAgICAgIDxnZW8taWNvbiB0eXBlPVwiY2xvc2VcIiBzaXplPVwic21cIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ2VvLW1hcC1hZG1pbi1maWx0ZXJfX2JvZHlcIj5cbiAgICAgIDxnZW8tdHJlZVxuICAgICAgICBbbm9kZXNdPVwibm9kZXMoKVwiXG4gICAgICAgIFtjaGVja2FibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtjaGVja2VkS2V5c109XCJjaGVja2VkS2V5cygpXCJcbiAgICAgICAgW2V4cGFuZGVkS2V5c109XCJleHBhbmRlZEtleXMoKVwiXG4gICAgICAgIChjaGVja2VkS2V5c0NoYW5nZSk9XCJvbkNoZWNrZWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChleHBhbmRlZEtleXNDaGFuZ2UpPVwiZXhwYW5kZWRLZXlzLnNldCgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8Zm9vdGVyIGNsYXNzPVwiZ2VvLW1hcC1hZG1pbi1maWx0ZXJfX2Zvb3RlclwiPlxuICAgICAgPGdlby1idXR0b24gYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiIChjbGlja2VkKT1cIm9uRml0UHJvdmluY2UoKVwiPlxuICAgICAgICBYZW0gdG/DoG4gdOG7iW5oXG4gICAgICA8L2dlby1idXR0b24+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2VvLW1hcC1hZG1pbi1maWx0ZXJfX2Zvb3Rlci1lbmRcIj5cbiAgICAgICAgPGdlby1idXR0b24gYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiIChjbGlja2VkKT1cIm9uUmVzZXQoKVwiPlxuICAgICAgICAgIMSQ4bq3dCBs4bqhaVxuICAgICAgICA8L2dlby1idXR0b24+XG4gICAgICAgIDxnZW8tYnV0dG9uIGFwcGVhcmFuY2U9XCJwcmltYXJ5XCIgKGNsaWNrZWQpPVwib25BcHBseSgpXCI+XG4gICAgICAgICAgw4FwIGThu6VuZ1xuICAgICAgICA8L2dlby1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgPC9zZWN0aW9uPlxufVxuIl19
@@ -11,8 +11,6 @@ import * as i0 from "@angular/core";
11
11
  export class GeoMapLegendComponent {
12
12
  title = input('Chú giải');
13
13
  items = input([]);
14
- /** True khi danh mục chú giải không tải được (`ERR_MAP_LEGEND_CATALOG_MISSING`). */
15
- catalogMissing = input(false);
16
14
  open = model(false);
17
15
  closed = output();
18
16
  onClose() {
@@ -20,13 +18,13 @@ export class GeoMapLegendComponent {
20
18
  this.closed.emit();
21
19
  }
22
20
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- 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;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}.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:40px;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 });
21
+ 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 @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 </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;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}.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:40px;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)}\n"], dependencies: [{ kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24
22
  }
25
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLegendComponent, decorators: [{
26
24
  type: Component,
27
25
  args: [{ selector: 'geo-map-legend', standalone: true, imports: [GeoIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
28
26
  class: 'geo-map-legend-host',
29
27
  '[class.geo-map-legend-host--open]': 'open()',
30
- }, 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;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}.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:40px;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"] }]
28
+ }, 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 @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 </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;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}.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:40px;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)}\n"] }]
31
29
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC1sZWdlbmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1sZWdlbmQvZ2VvLW1hcC1sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1sZWdlbmQvZ2VvLW1hcC1sZWdlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUd4RTs7Ozs7O0dBTUc7QUFjSCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsS0FBSyxHQUFHLEtBQUssQ0FBcUIsRUFBRSxDQUFDLENBQUM7SUFDL0Msb0ZBQW9GO0lBQzNFLGNBQWMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwQixNQUFNLEdBQUcsTUFBTSxFQUFRLENBQUM7SUFFakMsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzt3R0FaVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiwrdUJDL0JsQywrb0RBNENBLGdxRkR2QlksZ0JBQWdCOzs0RkFVZixxQkFBcUI7a0JBYmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QixtQ0FBbUMsRUFBRSxRQUFRO3FCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHZW9JY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZ2VvLWljb24vZ2VvLWljb24uY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgR2VvTWFwTGVnZW5kSXRlbSB9IGZyb20gJy4uLy4uL2dlby1tYXAudHlwZXMnO1xuXG4vKipcbiAqIEZsb2F0aW5nIGxlZ2VuZCBwb3BvdmVyIChjb2xvci9zd2F0Y2ggKyBsYWJlbCkuXG4gKlxuICogQHN1bW1hcnkgUG9wb3ZlciBjaMO6IGdp4bqjaSBsb+G6oWkgxJHhuqV0LlxuICogQHdoZW5Ub1VzZSBPcGVuZWQgZnJvbSB0b29sYmFyIGxlZ2VuZCBhY3Rpb24uXG4gKiBAZG9Ob3RVc2VXaGVuIEZvcm0gZmllbGQgbGFiZWxzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tbWFwLWxlZ2VuZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtHZW9JY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1tYXAtbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1tYXAtbGVnZW5kLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1tYXAtbGVnZW5kLWhvc3QnLFxuICAgICdbY2xhc3MuZ2VvLW1hcC1sZWdlbmQtaG9zdC0tb3Blbl0nOiAnb3BlbigpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvTWFwTGVnZW5kQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dCgnQ2jDuiBnaeG6o2knKTtcbiAgcmVhZG9ubHkgaXRlbXMgPSBpbnB1dDxHZW9NYXBMZWdlbmRJdGVtW10+KFtdKTtcbiAgLyoqIFRydWUga2hpIGRhbmggbeG7pWMgY2jDuiBnaeG6o2kga2jDtG5nIHThuqNpIMSRxrDhu6NjIChgRVJSX01BUF9MRUdFTkRfQ0FUQUxPR19NSVNTSU5HYCkuICovXG4gIHJlYWRvbmx5IGNhdGFsb2dNaXNzaW5nID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBvcGVuID0gbW9kZWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGNsb3NlZCA9IG91dHB1dDx2b2lkPigpO1xuXG4gIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG59XG4iLCJAaWYgKG9wZW4oKSkge1xuICA8YXNpZGUgY2xhc3M9XCJnZW8tbWFwLWxlZ2VuZFwiIHJvbGU9XCJkaWFsb2dcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlKClcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwiZ2VvLW1hcC1sZWdlbmRfX2hlYWRlclwiPlxuICAgICAgPGgzIGNsYXNzPVwiZ2VvLW1hcC1sZWdlbmRfX3RpdGxlXCI+e3sgdGl0bGUoKSB9fTwvaDM+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImdlby1tYXAtbGVnZW5kX19jbG9zZVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCLEkMOzbmcgY2jDuiBnaeG6o2lcIlxuICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGdlby1pY29uIHR5cGU9XCJjbG9zZVwiIHNpemU9XCJzbVwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2hlYWRlcj5cblxuICAgIEBpZiAoY2F0YWxvZ01pc3NpbmcoKSkge1xuICAgICAgPHAgY2xhc3M9XCJnZW8tbWFwLWxlZ2VuZF9fbm90aWNlXCI+XG4gICAgICAgIEtow7RuZyB04bqjaSDEkcaw4bujYyBkYW5oIG3hu6VjIGNow7ogZ2nhuqNpLiBWdWkgbMOybmcgdGjhu60gbOG6oWkgc2F1LlxuICAgICAgPC9wPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHVsIGNsYXNzPVwiZ2VvLW1hcC1sZWdlbmRfX2xpc3RcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtcygpOyB0cmFjayBpdGVtLmNvZGUgfHwgaXRlbS5sYWJlbCkge1xuICAgICAgICAgIDxsaSBjbGFzcz1cImdlby1tYXAtbGVnZW5kX19pdGVtXCI+XG4gICAgICAgICAgICBAaWYgKGl0ZW0uc3dhdGNoVXJsKSB7XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJnZW8tbWFwLWxlZ2VuZF9fc3dhdGNoXCIgW3NyY109XCJpdGVtLnN3YXRjaFVybFwiIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImdlby1tYXAtbGVnZW5kX19zd2F0Y2ggZ2VvLW1hcC1sZWdlbmRfX3N3YXRjaC0tY29sb3JcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIml0ZW0uY29sb3IgfHwgJ3ZhcigtLWdlby1jb2xvci1uZXV0cmFsLTMwMCknXCJcbiAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLW1hcC1sZWdlbmRfX3RleHRcIj5cbiAgICAgICAgICAgICAgQGlmIChpdGVtLmNvZGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdlby1tYXAtbGVnZW5kX19jb2RlXCI+e3sgaXRlbS5jb2RlIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLW1hcC1sZWdlbmRfX2xhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICB9IEBlbXB0eSB7XG4gICAgICAgICAgPGxpIGNsYXNzPVwiZ2VvLW1hcC1sZWdlbmRfX2VtcHR5XCI+Q2jGsGEgY8OzIG3hu6VjIGNow7ogZ2nhuqNpLjwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgfVxuICA8L2FzaWRlPlxufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC1sZWdlbmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1sZWdlbmQvZ2VvLW1hcC1sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1sZWdlbmQvZ2VvLW1hcC1sZWdlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUd4RTs7Ozs7O0dBTUc7QUFjSCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsS0FBSyxHQUFHLEtBQUssQ0FBcUIsRUFBRSxDQUFDLENBQUM7SUFDdEMsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwQixNQUFNLEdBQUcsTUFBTSxFQUFRLENBQUM7SUFFakMsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzt3R0FWVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiw0bEJDL0JsQywrM0NBc0NBLHloRkRqQlksZ0JBQWdCOzs0RkFVZixxQkFBcUI7a0JBYmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QixtQ0FBbUMsRUFBRSxRQUFRO3FCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHZW9JY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZ2VvLWljb24vZ2VvLWljb24uY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgR2VvTWFwTGVnZW5kSXRlbSB9IGZyb20gJy4uLy4uL2dlby1tYXAudHlwZXMnO1xuXG4vKipcbiAqIEZsb2F0aW5nIGxlZ2VuZCBwb3BvdmVyIChjb2xvci9zd2F0Y2ggKyBsYWJlbCkuXG4gKlxuICogQHN1bW1hcnkgUG9wb3ZlciBjaMO6IGdp4bqjaSBsb+G6oWkgxJHhuqV0LlxuICogQHdoZW5Ub1VzZSBPcGVuZWQgZnJvbSB0b29sYmFyIGxlZ2VuZCBhY3Rpb24uXG4gKiBAZG9Ob3RVc2VXaGVuIEZvcm0gZmllbGQgbGFiZWxzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tbWFwLWxlZ2VuZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtHZW9JY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1tYXAtbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1tYXAtbGVnZW5kLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1tYXAtbGVnZW5kLWhvc3QnLFxuICAgICdbY2xhc3MuZ2VvLW1hcC1sZWdlbmQtaG9zdC0tb3Blbl0nOiAnb3BlbigpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvTWFwTGVnZW5kQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dCgnQ2jDuiBnaeG6o2knKTtcbiAgcmVhZG9ubHkgaXRlbXMgPSBpbnB1dDxHZW9NYXBMZWdlbmRJdGVtW10+KFtdKTtcbiAgcmVhZG9ubHkgb3BlbiA9IG1vZGVsKGZhbHNlKTtcblxuICByZWFkb25seSBjbG9zZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMub3Blbi5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiQGlmIChvcGVuKCkpIHtcbiAgPGFzaWRlIGNsYXNzPVwiZ2VvLW1hcC1sZWdlbmRcIiByb2xlPVwiZGlhbG9nXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZSgpXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cImdlby1tYXAtbGVnZW5kX19oZWFkZXJcIj5cbiAgICAgIDxoMyBjbGFzcz1cImdlby1tYXAtbGVnZW5kX190aXRsZVwiPnt7IHRpdGxlKCkgfX08L2gzPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJnZW8tbWFwLWxlZ2VuZF9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPVwixJDDs25nIGNow7ogZ2nhuqNpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4gICAgICA+XG4gICAgICAgIDxnZW8taWNvbiB0eXBlPVwiY2xvc2VcIiBzaXplPVwic21cIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8dWwgY2xhc3M9XCJnZW8tbWFwLWxlZ2VuZF9fbGlzdFwiPlxuICAgICAgQGZvciAoaXRlbSBvZiBpdGVtcygpOyB0cmFjayBpdGVtLmNvZGUgfHwgaXRlbS5sYWJlbCkge1xuICAgICAgICA8bGkgY2xhc3M9XCJnZW8tbWFwLWxlZ2VuZF9faXRlbVwiPlxuICAgICAgICAgIEBpZiAoaXRlbS5zd2F0Y2hVcmwpIHtcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJnZW8tbWFwLWxlZ2VuZF9fc3dhdGNoXCIgW3NyY109XCJpdGVtLnN3YXRjaFVybFwiIGFsdD1cIlwiIC8+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImdlby1tYXAtbGVnZW5kX19zd2F0Y2ggZ2VvLW1hcC1sZWdlbmRfX3N3YXRjaC0tY29sb3JcIlxuICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJpdGVtLmNvbG9yIHx8ICd2YXIoLS1nZW8tY29sb3ItbmV1dHJhbC0zMDApJ1wiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdlby1tYXAtbGVnZW5kX190ZXh0XCI+XG4gICAgICAgICAgICBAaWYgKGl0ZW0uY29kZSkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdlby1tYXAtbGVnZW5kX19jb2RlXCI+e3sgaXRlbS5jb2RlIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnZW8tbWFwLWxlZ2VuZF9fbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICAgIH0gQGVtcHR5IHtcbiAgICAgICAgPGxpIGNsYXNzPVwiZ2VvLW1hcC1sZWdlbmRfX2VtcHR5XCI+Q2jGsGEgY8OzIG3hu6VjIGNow7ogZ2nhuqNpLjwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgPC9hc2lkZT5cbn1cbiJdfQ==