@geoit/ui 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/README.md +1 -1
- package/ai/catalog.json +18 -2
- package/ai/components/geo-map-shell.md +3 -0
- package/ai/mockup.html +2 -2
- package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.mjs +14 -37
- package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.util.mjs +38 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.mjs +25 -3
- package/esm2022/lib/figma/geo-map/geo-map.constants.mjs +13 -1
- package/fesm2022/geoit-ui.mjs +84 -38
- package/fesm2022/geoit-ui.mjs.map +1 -1
- package/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.util.d.ts +16 -0
- package/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.d.ts +11 -2
- package/lib/figma/geo-map/geo-map.constants.d.ts +6 -0
- package/package.json +1 -1
|
@@ -150,6 +150,18 @@ export const GEO_MAP_DEFAULT_TOOLBAR_ACTIONS = [
|
|
|
150
150
|
tooltip: 'Chụp ảnh bản đồ',
|
|
151
151
|
},
|
|
152
152
|
];
|
|
153
|
+
/**
|
|
154
|
+
* Built-in "Vị trí của tôi" toolbar action — pair with `id: 'locate'` handling that
|
|
155
|
+
* `geo-map-shell` already resolves internally (geolocate + emit `located`/`locateError`).
|
|
156
|
+
* Not included in `GEO_MAP_DEFAULT_TOOLBAR_ACTIONS`; host apps opt in explicitly.
|
|
157
|
+
*/
|
|
158
|
+
export const GEO_MAP_LOCATE_TOOLBAR_ACTION = {
|
|
159
|
+
id: 'locate',
|
|
160
|
+
label: 'Vị trí của tôi',
|
|
161
|
+
icon: 'aim',
|
|
162
|
+
iconOnly: true,
|
|
163
|
+
tooltip: 'Vị trí của tôi',
|
|
164
|
+
};
|
|
153
165
|
/**
|
|
154
166
|
* Demo thematic overlays for Storybook (offline-friendly GeoJSON).
|
|
155
167
|
* Groups match portal layers popover: QHSDD · địa chính · hiện trạng.
|
|
@@ -494,4 +506,4 @@ export const GEO_MAP_DEFAULT_PLANNING_LAYERS = [
|
|
|
494
506
|
features: [],
|
|
495
507
|
},
|
|
496
508
|
];
|
|
497
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tbWFwL2dlby1tYXAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBOEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsV0FBVyxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztBQUU5QyxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDO0FBRXhELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBSzdDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbEMseUVBQXlFO0FBQ3pF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LElBQUk7UUFDYixPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsS0FBSyxFQUFFLFFBQVE7UUFDZixRQUFRLEVBQUUsRUFBRTtLQUNiO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgR2VvTWFwQmFzZW1hcE9wdGlvbixcbiAgR2VvTWFwTGF5ZXJDb25maWcsXG4gIEdlb01hcExlZ2VuZEl0ZW0sXG4gIEdlb01hcFBhcmNlbERldGFpbCxcbiAgR2VvTWFwVG9vbGJhckFjdGlvbixcbiAgR2VvTWFwWHl6TGF5ZXJDb25maWcsXG59IGZyb20gJy4vZ2VvLW1hcC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEdlb1RyZWVOb2RlIH0gZnJvbSAnLi4vZ2VvLXRyZWUvZ2VvLXRyZWUudHlwZXMnO1xuaW1wb3J0IHsgR0VPX01BUF9UT09MQkFSX0lDT05TIH0gZnJvbSAnLi9nZW8tbWFwLXRvb2xiYXIuaWNvbnMnO1xuXG4vKiogQnVpbHQtaW4gQ1JTIGNvZGVzIGF2YWlsYWJsZSB3aXRob3V0IGN1c3RvbSBwcm9qNCByZWdpc3RyYXRpb24uICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9CVUlMVElOX1BST0pFQ1RJT05TID0gWydFUFNHOjQzMjYnLCAnRVBTRzozODU3J10gYXMgY29uc3Q7XG5cbi8qKlxuICogRGVmYXVsdCB2aWV3IOKAlCBXZWIgTWVyY2F0b3IgYXJvdW5kIMSQw6AgTOG6oXQgKEzDom0gxJDhu5NuZykuXG4gKiBDZW50ZXIgaXMgYWxyZWFkeSBpbiBFUFNHOjM4NTcgKGRvIG5vdCB0cmVhdCBhcyBsb24vbGF0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9DRU5URVI6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0gPSBbMTIwNTIwMDAsIDEzMzAwMDBdO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9aT09NID0gMTE7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX01JTl9aT09NID0gMjtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfTUFYX1pPT00gPSAyMDtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfVklFV19QUk9KRUNUSU9OID0gJ0VQU0c6Mzg1Nyc7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX0hFSUdIVCA9ICc0ODBweCc7XG5cbi8qKiBJbnRlcm5hbCBsYXllciBpZCByZXNlcnZlZCBmb3IgdGhlIGBiYXNlbWFwYCBpbnB1dCBzaG9ydGN1dC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0JBU0VNQVBfTEFZRVJfSUQgPSAnX19nZW9fYmFzZW1hcCc7XG5cbi8qKiBJbnRlcm5hbCB2ZWN0b3IgbGF5ZXJzIHJlc2VydmVkIGZvciBzZWxlY3Rpb24gLyBtZWFzdXJlIC8gaGlnaGxpZ2h0LiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfU0VMRUNUSU9OX0xBWUVSX0lEID0gJ19fZ2VvX3NlbGVjdGlvbic7XG5leHBvcnQgY29uc3QgR0VPX01BUF9NRUFTVVJFX0xBWUVSX0lEID0gJ19fZ2VvX21lYXN1cmUnO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfSElHSExJR0hUX0xBWUVSX0lEID0gJ19fZ2VvX2hpZ2hsaWdodCc7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aW5jZSBleHRlbnQgKEzDom0gxJDhu5NuZyBhcHByb3gsIEVQU0c6NDMyNikgZm9yIOKAnHhlbSB0b8OgbiB04buJbmjigJ0gKFRDUUguMTQgR0Q1KS5cbiAqIEhvc3QgYXBwcyBzaG91bGQgb3ZlcnJpZGUgd2l0aCBhdXRob3JpdGF0aXZlIGJvdW5kYXJ5IGV4dGVudCBmcm9tIEFQSS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9QUk9WSU5DRV9FWFRFTlRfNDMyNjogcmVhZG9ubHkgW1xuICBudW1iZXIsXG4gIG51bWJlcixcbiAgbnVtYmVyLFxuICBudW1iZXIsXG5dID0gWzEwNy4yLCAxMS4xNSwgMTA4Ljc1LCAxMi4zNV07XG5cbi8qKiBPcHRpb25hbCB0cmFmZmljIC8gcm9hZHMgcmVmZXJlbmNlIG92ZXJsYXkgKG5vdCBhIHBsYW5uaW5nIGxheWVyKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1RSQUZGSUNfTEFZRVJfSUQgPSAnX19nZW9fdHJhZmZpYyc7XG5cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0VTUklfSU1BR0VSWV9VUkwgPVxuICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9Xb3JsZF9JbWFnZXJ5L01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfRVNSSV9TVFJFRVRTX1VSTCA9XG4gICdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL1dvcmxkX1N0cmVldF9NYXAvTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nO1xuXG5leHBvcnQgY29uc3QgR0VPX01BUF9FU1JJX1RSQU5TUE9SVF9VUkwgPVxuICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9SZWZlcmVuY2UvV29ybGRfVHJhbnNwb3J0YXRpb24vTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nO1xuXG4vKiogRGVmYXVsdCBiYXNlbWFwIHBpY2tlciBvcHRpb25zICjEkcaw4budbmcgcGjhu5EgLyB24buHIHRpbmgpLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9CQVNFTUFQX09QVElPTlM6IEdlb01hcEJhc2VtYXBPcHRpb25bXSA9IFtcbiAge1xuICAgIGlkOiAnb3NtJyxcbiAgICBsYWJlbDogJ8SQxrDhu51uZyBwaOG7kScsXG4gICAgYmFzZW1hcDogJ29zbScsXG4gICAgcHJldmlld1VybDogJ2h0dHBzOi8vdGlsZS5vcGVuc3RyZWV0bWFwLm9yZy82LzUwLzMwLnBuZycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NhdGVsbGl0ZScsXG4gICAgbGFiZWw6ICdW4buHIHRpbmgnLFxuICAgIGJhc2VtYXA6IHtcbiAgICAgIHR5cGU6ICd4eXonLFxuICAgICAgdXJsOiBHRU9fTUFQX0VTUklfSU1BR0VSWV9VUkwsXG4gICAgICBhdHRyaWJ1dGlvbnM6ICdFc3JpLCBNYXhhciwgRWFydGhzdGFyIEdlb2dyYXBoaWNzJyxcbiAgICAgIHRpdGxlOiAn4bqibmggduG7hyB0aW5oJyxcbiAgICB9LFxuICAgIHByZXZpZXdVcmw6XG4gICAgICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9Xb3JsZF9JbWFnZXJ5L01hcFNlcnZlci90aWxlLzYvMzAvNTAnLFxuICB9LFxuXTtcblxuLyoqIFRyYW5zcG9ydGF0aW9uIHJlZmVyZW5jZSBvdmVybGF5IOKAlCB0b2dnbGUgaW5kZXBlbmRlbnRseSBvZiBiYXNlbWFwLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfVFJBRkZJQ19PVkVSTEFZOiBHZW9NYXBYeXpMYXllckNvbmZpZyA9IHtcbiAgaWQ6IEdFT19NQVBfVFJBRkZJQ19MQVlFUl9JRCxcbiAgdGl0bGU6ICdM4bubcCBnaWFvIHRow7RuZycsXG4gIHR5cGU6ICd4eXonLFxuICB1cmw6IEdFT19NQVBfRVNSSV9UUkFOU1BPUlRfVVJMLFxuICBhdHRyaWJ1dGlvbnM6ICdFc3JpJyxcbiAgdmlzaWJsZTogZmFsc2UsXG4gIG9wYWNpdHk6IDAuOSxcbiAgekluZGV4OiA1LFxuICBiYXNlbWFwOiBmYWxzZSxcbiAgZ3JvdXA6ICdiYXNlLW1hcCcsXG59O1xuXG4vKiogQnVpbHQtaW4gdG9vbGJhciBhY3Rpb25zIOKAlCBGaWdtYSBtYXAgY2hyb21lIChEYXQgRGFpIExhbSBEb25nIDIwMjYpLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9UT09MQkFSX0FDVElPTlM6IEdlb01hcFRvb2xiYXJBY3Rpb25bXSA9IFtcbiAge1xuICAgIGlkOiAnaG9tZScsXG4gICAgbGFiZWw6ICdUcmFuZyBjaOG7pycsXG4gICAgaWNvbjogJ2hvbWUnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5ob21lLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUcmFuZyBjaOG7pycsXG4gICAgdmFyaWFudDogJ3ByaW1hcnknLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzZWFyY2gnLFxuICAgIGxhYmVsOiAnVHJhIGPhu6l1JyxcbiAgICBpY29uOiAnc2VhcmNoJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuc2VhcmNoLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUcmEgY+G7qXUgdGjhu61hIMSR4bqldCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3BhbicsXG4gICAgbGFiZWw6ICdEaSBjaHV54buDbicsXG4gICAgaWNvbjogJ2RyYWcnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5wYW4sXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ0RpIGNodXnhu4NuIGLhuqNuIMSR4buTJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnem9vbS1pbicsXG4gICAgbGFiZWw6ICdQaMOzbmcgdG8nLFxuICAgIGljb246ICdwbHVzJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuem9vbUluLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdQaMOzbmcgdG8nLFxuICB9LFxuICB7XG4gICAgaWQ6ICd6b29tLW91dCcsXG4gICAgbGFiZWw6ICdUaHUgbmjhu48nLFxuICAgIGljb246ICdtaW51cycsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnpvb21PdXQsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ1RodSBuaOG7jycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2Z1bGxzY3JlZW4nLFxuICAgIGxhYmVsOiAnVG/DoG4gbcOgbiBow6xuaCcsXG4gICAgaWNvbjogJ2Z1bGxzY3JlZW4nLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5mdWxsc2NyZWVuLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdYZW0gdG/DoG4gYuG6o24gxJHhu5MnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdtZWFzdXJlLWRpc3RhbmNlJyxcbiAgICBsYWJlbDogJ8SQbyBraG/huqNuZyBjw6FjaCcsXG4gICAgaWNvbjogJ2NvbHVtbi13aWR0aCcsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLm1lYXN1cmVEaXN0YW5jZSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnxJBvIGtob+G6o25nIGPDoWNoJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnbWVhc3VyZS1hcmVhJyxcbiAgICBsYWJlbDogJ8SQbyBkaeG7h24gdMOtY2gnLFxuICAgIGljb246ICdib3JkZXItb3V0ZXInLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5tZWFzdXJlQXJlYSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnxJBvIGRp4buHbiB0w61jaCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xheWVycycsXG4gICAgbGFiZWw6ICdM4bubcCBi4bqjbiDEkeG7kycsXG4gICAgaWNvbjogJ2FwcHN0b3JlJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMubGF5ZXJzLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdC4bqtdC904bqvdCBs4bubcCBi4bqjbiDEkeG7kycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xlZ2VuZCcsXG4gICAgbGFiZWw6ICdDaMO6IGdp4bqjaScsXG4gICAgaWNvbjogJ3Vub3JkZXJlZC1saXN0JyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnWGVtIGNow7ogZ2nhuqNpJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnc25hcHNob3QnLFxuICAgIGxhYmVsOiAnQ2jhu6VwIOG6o25oJyxcbiAgICBpY29uOiAnY2FtZXJhJyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnQ2jhu6VwIOG6o25oIGLhuqNuIMSR4buTJyxcbiAgfSxcbl07XG5cbi8qKlxuICogRGVtbyB0aGVtYXRpYyBvdmVybGF5cyBmb3IgU3Rvcnlib29rIChvZmZsaW5lLWZyaWVuZGx5IEdlb0pTT04pLlxuICogR3JvdXBzIG1hdGNoIHBvcnRhbCBsYXllcnMgcG9wb3ZlcjogUUhTREQgwrcgxJHhu4thIGNow61uaCDCtyBoaeG7h24gdHLhuqFuZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVNT19USEVNQVRJQ19MQVlFUlM6IEdlb01hcExheWVyQ29uZmlnW10gPSBbXG4gIHtcbiAgICBpZDogJ2RlbW8tcWhzZGQtMjAyMCcsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjAtMjAyNScsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTAsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDIwLTIwMjUpJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTNdLFxuICAgICAgICAgICAgICAgIFsxMDguNDgsIDExLjkzXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ4LCAxMS45N10sXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTddLFxuICAgICAgICAgICAgICAgIFsxMDguNDIsIDExLjkzXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1xaHNkZC0yMDI1JyxcbiAgICB0aXRsZTogJ1FIU0REIHThu4luaCBMw6JtIMSQ4buTbmcgMjAyNS0yMDMwJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTEsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDI1LTIwMzApJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTI1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ5LCAxMS45MjVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDksIDExLjk2NV0sXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTY1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQzLCAxMS45MjVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLXBhcmNlbCcsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAwLjQsXG4gICAgekluZGV4OiAyMCxcbiAgICBncm91cDogJ2NhZGFzdHJlJyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgxJHhu4thIGNow61uaCcsXG4gICAgZ3JvdXBTZWxlY3Rpb246ICdtdWx0aScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgcXVlcnlhYmxlOiB0cnVlLFxuICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NycsXG4gICAgZGF0YToge1xuICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgIGZlYXR1cmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgICAgcHJvcGVydGllczogeyBwYXJjZWw6ICcxMicsIHNoZWV0OiAnNDUnIH0sXG4gICAgICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NF0sXG4gICAgICAgICAgICAgICAgWzEwOC40NjUsIDExLjk0XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ2NSwgMTEuOTUyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NTJdLFxuICAgICAgICAgICAgICAgIFsxMDguNDUsIDExLjk0XSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1jdXJyZW50LTIwMjAnLFxuICAgIHRpdGxlOiAnUUhTREQgdOG7iW5oIEzDom0gxJDhu5NuZyAyMDIwLTIwMjUnLFxuICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEyLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyMC0yMDI1KScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDQsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjk2XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ0LCAxMS45Nl0sXG4gICAgICAgICAgICAgICAgWzEwOC40NCwgMTEuOTJdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLWN1cnJlbnQtMjAyNScsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjUtMjAzMCcsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEzLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyNS0yMDMwKScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuXTtcblxuLyoqXG4gKiBTYW1wbGUgbGVnZW5kIOKAlCBwbGFjZWhvbGRlciBjb2xvcnMgdW50aWwgVGjDtG5nIHTGsCAwOS8yMDI0IHBhbGV0dGUgaXMgY29tcGxldGUgKFExM+KAk1ExNSkuXG4gKiBEbyBub3QgdHJlYXQgYXMgbGVnYWxseSBhdXRob3JpdGF0aXZlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERU1PX0xFR0VORF9JVEVNUzogR2VvTWFwTGVnZW5kSXRlbVtdID0gW1xuICB7IGNvZGU6ICdPRFQnLCBsYWJlbDogJ8SQ4bqldCDhu58gxJHDtCB0aOG7iycsIGNvbG9yOiAnI0U4N0IzNScgfSxcbiAgeyBjb2RlOiAnT05UJywgbGFiZWw6ICfEkOG6pXQg4bufIHThuqFpIG7DtG5nIHRow7RuJywgY29sb3I6ICcjRjJDMTRFJyB9LFxuICB7IGNvZGU6ICdTS0MnLCBsYWJlbDogJ8SQ4bqldCBjxqEgc+G7nyBz4bqjbiB4deG6pXQga2luaCBkb2FuaCcsIGNvbG9yOiAnI0M0NUMyNicgfSxcbiAgeyBjb2RlOiAnREdUJywgbGFiZWw6ICfEkOG6pXQgZ2lhbyB0aMO0bmcnLCBjb2xvcjogJyM2QjcyODAnIH0sXG4gIHsgY29kZTogJ1RNRCcsIGxhYmVsOiAnxJDhuqV0IHRoxrDGoW5nIG3huqFpIGThu4tjaCB24bulJywgY29sb3I6ICcjREIyNzc3JyB9LFxuICB7IGNvZGU6ICdDTE4nLCBsYWJlbDogJ8SQ4bqldCB0cuG7k25nIGPDonkgbMOidSBuxINtJywgY29sb3I6ICcjMTZBMzRBJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9IRUxQX1NFQ1RJT05TOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGJvZHk6IHN0cmluZyB9PiA9IFtcbiAge1xuICAgIHRpdGxlOiAnRGkgY2h1eeG7g24gYuG6o24gxJHhu5MnLFxuICAgIGJvZHk6ICdLw6lvIGNodeG7mXQgxJHhu4MgcGFuLiBDdeG7mW4gY2h14buZdCBob+G6t2MgZMO5bmcgbsO6dCArLy0gxJHhu4MgdGh1IHBow7NuZy4gRMO5bmcg4oCcUGjDs25nIHRvIHRoZW8gdsO5bmfigJ0gLyDigJxUaHUgbmjhu48gdGhlbyB2w7luZ+KAnSDEkeG7gyBraG9hbmggdsO5bmcgdHLDqm4gYuG6o24gxJHhu5MuIOKAnFhlbSB0b8OgbiB04buJbmjigJ0gY8SDbiBraHVuZyBuaMOsbiB24buBIHBo4bqhbSB2aSB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnVHJhIGPhu6l1IHRo4butYSDEkeG6pXQnLFxuICAgIGJvZHk6ICdN4bufIOKAnFRyYSBj4bupdeKAnSDEkeG7gyB0w6xtIHRoZW8gY2jhu6cgc+G7rSBk4bulbmcsIEdDTiwgdOG7jWEgxJHhu5ksIMSR4buLYSBjaOG7iSBob+G6t2Mgc+G7kSB04budL3Ro4butYS4gS+G6v3QgcXXhuqMgaGnhu4NuIHRo4buLIGRhbmggc8OhY2ggdsOgIGhpZ2hsaWdodCB0csOqbiBi4bqjbiDEkeG7ky4nLFxuICB9LFxuICB7XG4gICAgdGl0bGU6ICdM4bubcCBi4bqjbiDEkeG7kycsXG4gICAgYm9keTogJ03hu58g4oCcTOG7m3AgYuG6o24gxJHhu5PigJ0gxJHhu4MgYuG6rXQvdOG6r3QgcXV5IGhv4bqhY2ggU0TEkCwgaGnhu4duIHRy4bqhbmcgU0TEkCwgdGjhu61hIMSR4bqldC4gQ2jhu41uIHbhu4cgdGluaCDhu58gYuG7mSBjaHV54buDbiBs4bubcCBu4buBbi4gQuG6rXQgbmhp4buBdSBs4bubcCBjw7luZyBsw7pjIMSR4buDIGNo4buTbmcgeOG6v3Agc28gc8OhbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJDGoW4gduG7iyBow6BuaCBjaMOtbmgnLFxuICAgIGJvZHk6ICdN4bufIGLhu5kgbOG7jWMgxJBWSEMgY+G6pXAgeMOjIMSR4buDIHRodSBo4bq5cCBraHVuZyBuaMOsbiB0aGVvIHjDoyDEkcOjIGNo4buNbi4g4oCcWGVtIHRvw6BuIHThu4luaOKAnSDEkcawYSBi4bqjbiDEkeG7kyB24buBIHRvw6BuIGPhuqNuaCB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJBvIMSR4bqhYyAmIHRp4buHbiDDrWNoJyxcbiAgICBib2R5OiAnxJBvIGtob+G6o25nIGPDoWNoIC8gZGnhu4duIHTDrWNoIGLhurFuZyBjw6FjaCBuaOG6pXAgY8OhYyDEkWnhu4NtIHRyw6puIGLhuqNuIMSR4buTIChuaMOheSDEkcO6cCDEkeG7gyBr4bq/dCB0aMO6YykuIETDuW5nIOKAnMSQ4buZIHRyb25nIHN14buRdOKAnSDEkeG7gyBuaMOsbiB4dXnDqm4gbOG7m3AuIOKAnENo4bulcCDhuqNuaOKAnSB04bqjaSBQTkcga2h1bmcgbmjDrG4gaGnhu4duIHThuqFpLicsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbiAgICBib2R5OiAnQ2hvIHBow6lwIHRyw6xuaCBkdXnhu4d0IGNoaWEgc+G6uyB24buLIHRyw60gxJHhu4MgY8SDbiBnaeG7r2EgYuG6o24gxJHhu5MgdOG6oWkgduG7iyB0csOtIHRoaeG6v3QgYuG7iyBj4bunYSBi4bqhbi4nLFxuICB9LFxuXTtcblxuLyoqIERlbW8gYWRtaW4gdHJlZSAoeMOjKSBmb3IgU3Rvcnlib29rIOKAlCByZXBsYWNlIHZpYSBBUEkgaW4gcHJvZHVjdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fQURNSU5fTk9ERVM6IEdlb1RyZWVOb2RlW10gPSBbXG4gIHtcbiAgICBrZXk6ICdsYW0tZG9uZycsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICBleHBhbmRlZDogdHJ1ZSxcbiAgICBjaGlsZHJlbjogW1xuICAgICAgeyBrZXk6ICd4YS0xJywgdGl0bGU6ICdYw6MgxJDhuqEgVOG6u2gnLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtMicsIHRpdGxlOiAnWMOjIMSQ4bqhIEh1b2FpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTMnLCB0aXRsZTogJ1jDoyDEkOG6oSBLaG8nLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtNCcsIHRpdGxlOiAnUGjGsOG7nW5nIDEgKMSQw6AgTOG6oXQpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTUnLCB0aXRsZTogJ1BoxrDhu51uZyAyICjEkMOgIEzhuqF0KScsIGlzTGVhZjogdHJ1ZSB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG4vKiogRGVtbyBwYXJjZWwgZGV0YWlsIGZvciBTdG9yeWJvb2sgc2VhcmNoL3BvcHVwIChUQ1FILjEyKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fUEFSQ0VMX0RFVEFJTDogR2VvTWFwUGFyY2VsRGV0YWlsID0ge1xuICBwYXJjZWxDb2RlOiAnMDEwMDAwMTIzNCcsXG4gIHBhcmNlbE51bWJlcjogJzIwMjMnLFxuICBzaGVldE51bWJlcjogJzE1MycsXG4gIHdhcmQ6ICdQaMaw4budbmcgMScsXG4gIHByb3ZpbmNlOiAnTMOibSDEkOG7k25nJyxcbiAgYXJlYTogJzI1MDAgbcKyJyxcbiAgbGVnYWxBcmVhOiAnMjUwMCBtwrInLFxuICBsYW5kVXNlOiAnTFVDIC0gxJDhuqV0IGNodXnDqm4gdHLhu5NuZyBsw7phIG7GsOG7m2MnLFxuICBhZGRyZXNzOiAnU+G7kSAxMCwgxJHGsOG7nW5nIFRy4bqnbiBQaMO6JyxcbiAgdXNlRm9ybTogJ1Phu60gZOG7pW5nIHJpw6puZycsXG4gIHJlZ2lzdHJhdGlvblN0YXR1czogJ8SQw6MgY+G6pXAgZ2nhuqV5IGNo4bupbmcgbmjhuq1uJyxcbiAgbGFuZFByaWNlOiAnxJBhbmcgY+G6rXAgbmjhuq10JyxcbiAgc2hhcGVJbmZvOiAnSMOsbmggY2jhu68gbmjhuq10JyxcbiAgcGxhbm5pbmdJbmZvOiAnTuG6sW0gdHJvbmcgcXV5IGhv4bqhY2ggxJHhuqV0IOG7nyDEkcO0IHRo4buLIGdpYWkgxJFv4bqhbiAyMDIx4oCTMjAzMCcsXG59O1xuXG4vKipcbiAqIFBsYWNlaG9sZGVyIGVuZHBvaW50cyDigJQgcmVwbGFjZSB2aWEgZW52aXJvbm1lbnQgLyBBUEkuXG4gKiBEbyBub3QgaGFyZC1jb2RlIHByb2R1Y3Rpb24gZG9tYWlucyBoZXJlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTID0ge1xuICB3bXNVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2dlb3NlcnZlci93bXMnLFxuICB4eXpTYXRlbGxpdGVVcmw6XG4gICAgJ2h0dHBzOi8ve1RJTEVfSE9TVH0vc2F0ZWxsaXRlL3t6fS97eH0ve3l9LnBuZycsXG4gIGdlb2pzb25QYXJjZWxVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2FwaS92MS9wYXJjZWxzLmdlb2pzb24nLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBFeGFtcGxlIG11bHRpLWxheWVyIHN0YWNrIGZvciBsYW5kLXVzZSBwbGFubmluZyBkZW1vcyAvIFN0b3J5Ym9vay5cbiAqIFVSTHMgYXJlIHBsYWNlaG9sZGVyczsgV01TL1hZWiB0aWxlcyB3aWxsIGZhaWwgdW50aWwgZW52IGlzIHdpcmVkLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX1BMQU5OSU5HX0xBWUVSUzogR2VvTWFwTGF5ZXJDb25maWdbXSA9IFtcbiAge1xuICAgIGlkOiAnb3NtJyxcbiAgICB0aXRsZTogJ0LhuqNuIMSR4buTIMSRxrDhu51uZyBwaOG7kScsXG4gICAgdHlwZTogJ29zbScsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMCxcbiAgICBiYXNlbWFwOiB0cnVlLFxuICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIHRpdGxlOiAn4bqibmggduG7hyB0aW5oJyxcbiAgICB0eXBlOiAneHl6JyxcbiAgICB1cmw6IEdFT19NQVBfRU5WX1BMQUNFSE9MREVSUy54eXpTYXRlbGxpdGVVcmwsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDAsXG4gICAgYmFzZW1hcDogdHJ1ZSxcbiAgICBncm91cDogJ2Jhc2UtbWFwJyxcbiAgICBhdHRyaWJ1dGlvbnM6ICdTYXRlbGxpdGUgKHBsYWNlaG9sZGVyKScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xhbmQtdXNlLXBsYW5uaW5nJyxcbiAgICB0aXRsZTogJ1F1eSBob+G6oWNoIHPhu60gZOG7pW5nIMSR4bqldCcsXG4gICAgdHlwZTogJ3dtcycsXG4gICAgdXJsOiBHRU9fTUFQX0VOVl9QTEFDRUhPTERFUlMud21zVXJsLFxuICAgIGxheWVyTmFtZTogJ3dvcmtzcGFjZTpsYW5kX3VzZV9wbGFubmluZycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBMQVlFUlM6ICd3b3Jrc3BhY2U6bGFuZF91c2VfcGxhbm5pbmcnLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNyxcbiAgICB6SW5kZXg6IDEwLFxuICAgIHByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncGFyY2VsLWJvdW5kYXJ5JyxcbiAgICB0aXRsZTogJ1JhbmggZ2nhu5tpIHRo4butYSDEkeG6pXQnLFxuICAgIHR5cGU6ICd3bXMnLFxuICAgIHVybDogR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTLndtc1VybCxcbiAgICBsYXllck5hbWU6ICd3b3Jrc3BhY2U6cGFyY2VsX2JvdW5kYXJ5JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIExBWUVSUzogJ3dvcmtzcGFjZTpwYXJjZWxfYm91bmRhcnknLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuOSxcbiAgICB6SW5kZXg6IDIwLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiBHRU9fTUFQX1NFTEVDVElPTl9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ8SQ4buRaSB0xrDhu6NuZyDEkWFuZyBjaOG7jW4nLFxuICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDEwMCxcbiAgICBncm91cDogJ3N5c3RlbScsXG4gICAgZmVhdHVyZXM6IFtdLFxuICB9LFxuICB7XG4gICAgaWQ6IEdFT19NQVBfTUVBU1VSRV9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ0vhur90IHF14bqjIMSRbycsXG4gICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMTEwLFxuICAgIGdyb3VwOiAnc3lzdGVtJyxcbiAgICBmZWF0dXJlczogW10sXG4gIH0sXG5dO1xuIl19
|
|
509
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tbWFwL2dlby1tYXAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBOEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsV0FBVyxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztBQUU5QyxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDO0FBRXhELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBSzdDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbEMseUVBQXlFO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FDbkMsK0ZBQStGLENBQUM7QUFFbEcsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQ25DLGtHQUFrRyxDQUFDO0FBRXJHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUNyQyxnSEFBZ0gsQ0FBQztBQUVuSCw0REFBNEQ7QUFDNUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQTBCO0lBQ3BFO1FBQ0UsRUFBRSxFQUFFLEtBQUs7UUFDVCxLQUFLLEVBQUUsV0FBVztRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLFVBQVUsRUFBRSw0Q0FBNEM7S0FDekQ7SUFDRDtRQUNFLEVBQUUsRUFBRSxXQUFXO1FBQ2YsS0FBSyxFQUFFLFNBQVM7UUFDaEIsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUsd0JBQXdCO1lBQzdCLFlBQVksRUFBRSxvQ0FBb0M7WUFDbEQsS0FBSyxFQUFFLGFBQWE7U0FDckI7UUFDRCxVQUFVLEVBQ1IsMkZBQTJGO0tBQzlGO0NBQ0YsQ0FBQztBQUVGLDBFQUEwRTtBQUMxRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBeUI7SUFDM0QsRUFBRSxFQUFFLHdCQUF3QjtJQUM1QixLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLElBQUksRUFBRSxLQUFLO0lBQ1gsR0FBRyxFQUFFLDBCQUEwQjtJQUMvQixZQUFZLEVBQUUsTUFBTTtJQUNwQixPQUFPLEVBQUUsS0FBSztJQUNkLE9BQU8sRUFBRSxHQUFHO0lBQ1osTUFBTSxFQUFFLENBQUM7SUFDVCxPQUFPLEVBQUUsS0FBSztJQUNkLEtBQUssRUFBRSxVQUFVO0NBQ2xCLENBQUM7QUFFRiwyRUFBMkU7QUFDM0UsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQTBCO0lBQ3BFO1FBQ0UsRUFBRSxFQUFFLE1BQU07UUFDVixLQUFLLEVBQUUsV0FBVztRQUNsQixJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxJQUFJO1FBQ25DLFFBQVEsRUFBRSxJQUFJO1FBQ2QsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNFLEVBQUUsRUFBRSxRQUFRO1FBQ1osS0FBSyxFQUFFLFNBQVM7UUFDaEIsSUFBSSxFQUFFLFFBQVE7UUFDZCxPQUFPLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUNyQyxRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxrQkFBa0I7S0FDNUI7SUFDRDtRQUNFLEVBQUUsRUFBRSxLQUFLO1FBQ1QsS0FBSyxFQUFFLFdBQVc7UUFDbEIsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUUscUJBQXFCLENBQUMsR0FBRztRQUNsQyxRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxrQkFBa0I7S0FDNUI7SUFDRDtRQUNFLEVBQUUsRUFBRSxTQUFTO1FBQ2IsS0FBSyxFQUFFLFVBQVU7UUFDakIsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUUscUJBQXFCLENBQUMsTUFBTTtRQUNyQyxRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxVQUFVO0tBQ3BCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsVUFBVTtRQUNkLEtBQUssRUFBRSxTQUFTO1FBQ2hCLElBQUksRUFBRSxPQUFPO1FBQ2IsT0FBTyxFQUFFLHFCQUFxQixDQUFDLE9BQU87UUFDdEMsUUFBUSxFQUFFLElBQUk7UUFDZCxPQUFPLEVBQUUsU0FBUztLQUNuQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLFlBQVk7UUFDaEIsS0FBSyxFQUFFLGVBQWU7UUFDdEIsSUFBSSxFQUFFLFlBQVk7UUFDbEIsT0FBTyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7UUFDekMsUUFBUSxFQUFFLElBQUk7UUFDZCxPQUFPLEVBQUUsaUJBQWlCO0tBQzNCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsa0JBQWtCO1FBQ3RCLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLHFCQUFxQixDQUFDLGVBQWU7UUFDOUMsUUFBUSxFQUFFLElBQUk7UUFDZCxPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsY0FBYztRQUNsQixLQUFLLEVBQUUsY0FBYztRQUNyQixJQUFJLEVBQUUsY0FBYztRQUNwQixPQUFPLEVBQUUscUJBQXFCLENBQUMsV0FBVztRQUMxQyxRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxjQUFjO0tBQ3hCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsUUFBUTtRQUNaLEtBQUssRUFBRSxZQUFZO1FBQ25CLElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxNQUFNO1FBQ3JDLFFBQVEsRUFBRSxJQUFJO1FBQ2QsT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUNEO1FBQ0UsRUFBRSxFQUFFLFFBQVE7UUFDWixLQUFLLEVBQUUsVUFBVTtRQUNqQixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFDRDtRQUNFLEVBQUUsRUFBRSxVQUFVO1FBQ2QsS0FBSyxFQUFFLFVBQVU7UUFDakIsSUFBSSxFQUFFLFFBQVE7UUFDZCxRQUFRLEVBQUUsSUFBSTtRQUNkLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7Q0FDRixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUF3QjtJQUNoRSxFQUFFLEVBQUUsUUFBUTtJQUNaLEtBQUssRUFBRSxnQkFBZ0I7SUFDdkIsSUFBSSxFQUFFLEtBQUs7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLE9BQU8sRUFBRSxnQkFBZ0I7Q0FDMUIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUF3QjtJQUMvRDtRQUNFLEVBQUUsRUFBRSxpQkFBaUI7UUFDckIsS0FBSyxFQUFFLCtCQUErQjtRQUN0QyxJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLEdBQUc7UUFDWixNQUFNLEVBQUUsRUFBRTtRQUNWLEtBQUssRUFBRSxPQUFPO1FBQ2QsVUFBVSxFQUFFLGNBQWM7UUFDMUIsY0FBYyxFQUFFLFFBQVE7UUFDeEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxjQUFjLEVBQUUsV0FBVztRQUMzQixpQkFBaUIsRUFBRSxXQUFXO1FBQzlCLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxtQkFBbUI7WUFDekIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLDZCQUE2QixFQUFFO29CQUNoRSxRQUFRLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsV0FBVyxFQUFFOzRCQUNYO2dDQUNFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQ0FDZixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7Z0NBQ2YsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO2dDQUNmLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQ0FDZixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7NkJBQ2hCO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsaUJBQWlCO1FBQ3JCLEtBQUssRUFBRSwrQkFBK0I7UUFDdEMsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztRQUNkLE9BQU8sRUFBRSxHQUFHO1FBQ1osTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsT0FBTztRQUNkLFVBQVUsRUFBRSxjQUFjO1FBQzFCLGNBQWMsRUFBRSxRQUFRO1FBQ3hCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsY0FBYyxFQUFFLFdBQVc7UUFDM0IsaUJBQWlCLEVBQUUsV0FBVztRQUM5QixJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSw2QkFBNkIsRUFBRTtvQkFDaEUsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxTQUFTO3dCQUNmLFdBQVcsRUFBRTs0QkFDWDtnQ0FDRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7Z0NBQ2hCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztnQ0FDaEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO2dDQUNoQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7Z0NBQ2hCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQzs2QkFDakI7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0Y7SUFDRDtRQUNFLEVBQUUsRUFBRSxhQUFhO1FBQ2pCLEtBQUssRUFBRSxlQUFlO1FBQ3RCLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsR0FBRztRQUNaLE1BQU0sRUFBRSxFQUFFO1FBQ1YsS0FBSyxFQUFFLFVBQVU7UUFDakIsVUFBVSxFQUFFLGtCQUFrQjtRQUM5QixjQUFjLEVBQUUsT0FBTztRQUN2QixPQUFPLEVBQUUsS0FBSztRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsY0FBYyxFQUFFLFdBQVc7UUFDM0IsaUJBQWlCLEVBQUUsV0FBVztRQUM5QixJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7b0JBQ3pDLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsU0FBUzt3QkFDZixXQUFXLEVBQUU7NEJBQ1g7Z0NBQ0UsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO2dDQUNmLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztnQ0FDaEIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO2dDQUNqQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7Z0NBQ2hCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzs2QkFDaEI7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0Y7SUFDRDtRQUNFLEVBQUUsRUFBRSxtQkFBbUI7UUFDdkIsS0FBSyxFQUFFLCtCQUErQjtRQUN0QyxJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLEdBQUc7UUFDWixNQUFNLEVBQUUsRUFBRTtRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFVBQVUsRUFBRSxtQkFBbUI7UUFDL0IsY0FBYyxFQUFFLFFBQVE7UUFDeEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxjQUFjLEVBQUUsV0FBVztRQUMzQixpQkFBaUIsRUFBRSxXQUFXO1FBQzlCLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxtQkFBbUI7WUFDekIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLG9DQUFvQyxFQUFFO29CQUN2RSxRQUFRLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsV0FBVyxFQUFFOzRCQUNYO2dDQUNFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQ0FDZixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7Z0NBQ2QsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO2dDQUNkLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQ0FDZixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7NkJBQ2hCO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsbUJBQW1CO1FBQ3ZCLEtBQUssRUFBRSwrQkFBK0I7UUFDdEMsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztRQUNkLE9BQU8sRUFBRSxHQUFHO1FBQ1osTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsU0FBUztRQUNoQixVQUFVLEVBQUUsbUJBQW1CO1FBQy9CLGNBQWMsRUFBRSxRQUFRO1FBQ3hCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsY0FBYyxFQUFFLFdBQVc7UUFDM0IsaUJBQWlCLEVBQUUsV0FBVztRQUM5QixJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxvQ0FBb0MsRUFBRTtvQkFDdkUsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxTQUFTO3dCQUNmLFdBQVcsRUFBRTs0QkFDWDtnQ0FDRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7Z0NBQ2pCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztnQ0FDakIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO2dDQUNqQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7Z0NBQ2pCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzs2QkFDbEI7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXVCO0lBQzNELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7SUFDeEQsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQy9ELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsK0JBQStCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUN6RSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7SUFDMUQsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2xFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtDQUNsRSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQTJDO0lBQ25GO1FBQ0UsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixJQUFJLEVBQUUsMExBQTBMO0tBQ2pNO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLElBQUksRUFBRSxrSUFBa0k7S0FDekk7SUFDRDtRQUNFLEtBQUssRUFBRSxZQUFZO1FBQ25CLElBQUksRUFBRSxvSkFBb0o7S0FDM0o7SUFDRDtRQUNFLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsSUFBSSxFQUFFLDRHQUE0RztLQUNuSDtJQUNEO1FBQ0UsS0FBSyxFQUFFLG1CQUFtQjtRQUMxQixJQUFJLEVBQUUsd0tBQXdLO0tBQy9LO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLElBQUksRUFBRSxxRkFBcUY7S0FDNUY7Q0FDRixDQUFDO0FBRUYsMEVBQTBFO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFrQjtJQUNyRDtRQUNFLEdBQUcsRUFBRSxVQUFVO1FBQ2YsS0FBSyxFQUFFLGVBQWU7UUFDdEIsUUFBUSxFQUFFLElBQUk7UUFDZCxRQUFRLEVBQUU7WUFDUixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ2pELEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkQsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNqRCxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDekQsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1NBQzFEO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF1QjtJQUM1RCxVQUFVLEVBQUUsWUFBWTtJQUN4QixZQUFZLEVBQUUsTUFBTTtJQUNwQixXQUFXLEVBQUUsS0FBSztJQUNsQixJQUFJLEVBQUUsVUFBVTtJQUNoQixRQUFRLEVBQUUsVUFBVTtJQUNwQixJQUFJLEVBQUUsU0FBUztJQUNmLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLE9BQU8sRUFBRSxpQ0FBaUM7SUFDMUMsT0FBTyxFQUFFLHVCQUF1QjtJQUNoQyxPQUFPLEVBQUUsZUFBZTtJQUN4QixrQkFBa0IsRUFBRSx3QkFBd0I7SUFDNUMsU0FBUyxFQUFFLGVBQWU7SUFDMUIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsWUFBWSxFQUFFLHNEQUFzRDtDQUNyRSxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsTUFBTSxFQUFFLHNDQUFzQztJQUM5QyxlQUFlLEVBQ2IsK0NBQStDO0lBQ2pELGdCQUFnQixFQUFFLCtDQUErQztDQUN6RCxDQUFDO0FBRVg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQXdCO0lBQ2xFO1FBQ0UsRUFBRSxFQUFFLEtBQUs7UUFDVCxLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLElBQUksRUFBRSxLQUFLO1FBQ1gsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLElBQUk7UUFDYixLQUFLLEVBQUUsVUFBVTtLQUNsQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLFdBQVc7UUFDZixLQUFLLEVBQUUsYUFBYTtRQUNwQixJQUFJLEVBQUUsS0FBSztRQUNYLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxlQUFlO1FBQzdDLE9BQU8sRUFBRSxLQUFLO1FBQ2QsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsQ0FBQztRQUNULE9BQU8sRUFBRSxJQUFJO1FBQ2IsS0FBSyxFQUFFLFVBQVU7UUFDakIsWUFBWSxFQUFFLHlCQUF5QjtLQUN4QztJQUNEO1FBQ0UsRUFBRSxFQUFFLG1CQUFtQjtRQUN2QixLQUFLLEVBQUUsdUJBQXVCO1FBQzlCLElBQUksRUFBRSxLQUFLO1FBQ1gsR0FBRyxFQUFFLHdCQUF3QixDQUFDLE1BQU07UUFDcEMsU0FBUyxFQUFFLDZCQUE2QjtRQUN4QyxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsNkJBQTZCO1lBQ3JDLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRCxPQUFPLEVBQUUsSUFBSTtRQUNiLE9BQU8sRUFBRSxHQUFHO1FBQ1osTUFBTSxFQUFFLEVBQUU7UUFDVixVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsSUFBSTtRQUNmLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFVBQVUsRUFBRSxXQUFXO0tBQ3hCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsaUJBQWlCO1FBQ3JCLEtBQUssRUFBRSxvQkFBb0I7UUFDM0IsSUFBSSxFQUFFLEtBQUs7UUFDWCxHQUFHLEVBQUUsd0JBQXdCLENBQUMsTUFBTTtRQUNwQyxTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSwyQkFBMkI7WUFDbkMsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNELE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLEdBQUc7UUFDWixNQUFNLEVBQUUsRUFBRTtRQUNWLFNBQVMsRUFBRSxJQUFJO1FBQ2YsS0FBSyxFQUFFLFVBQVU7UUFDakIsVUFBVSxFQUFFLFdBQVc7S0FDeEI7SUFDRDtRQUNFLEVBQUUsRUFBRSwwQkFBMEI7UUFDOUIsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsR0FBRztRQUNYLEtBQUssRUFBRSxRQUFRO1FBQ2YsUUFBUSxFQUFFLEVBQUU7S0FDYjtJQUNEO1FBQ0UsRUFBRSxFQUFFLHdCQUF3QjtRQUM1QixLQUFLLEVBQUUsWUFBWTtRQUNuQixJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsR0FBRztRQUNYLEtBQUssRUFBRSxRQUFRO1FBQ2YsUUFBUSxFQUFFLEVBQUU7S0FDYjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEdlb01hcEJhc2VtYXBPcHRpb24sXG4gIEdlb01hcExheWVyQ29uZmlnLFxuICBHZW9NYXBMZWdlbmRJdGVtLFxuICBHZW9NYXBQYXJjZWxEZXRhaWwsXG4gIEdlb01hcFRvb2xiYXJBY3Rpb24sXG4gIEdlb01hcFh5ekxheWVyQ29uZmlnLFxufSBmcm9tICcuL2dlby1tYXAudHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBHZW9UcmVlTm9kZSB9IGZyb20gJy4uL2dlby10cmVlL2dlby10cmVlLnR5cGVzJztcbmltcG9ydCB7IEdFT19NQVBfVE9PTEJBUl9JQ09OUyB9IGZyb20gJy4vZ2VvLW1hcC10b29sYmFyLmljb25zJztcblxuLyoqIEJ1aWx0LWluIENSUyBjb2RlcyBhdmFpbGFibGUgd2l0aG91dCBjdXN0b20gcHJvajQgcmVnaXN0cmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfQlVJTFRJTl9QUk9KRUNUSU9OUyA9IFsnRVBTRzo0MzI2JywgJ0VQU0c6Mzg1NyddIGFzIGNvbnN0O1xuXG4vKipcbiAqIERlZmF1bHQgdmlldyDigJQgV2ViIE1lcmNhdG9yIGFyb3VuZCDEkMOgIEzhuqF0IChMw6JtIMSQ4buTbmcpLlxuICogQ2VudGVyIGlzIGFscmVhZHkgaW4gRVBTRzozODU3IChkbyBub3QgdHJlYXQgYXMgbG9uL2xhdCkuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfQ0VOVEVSOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdID0gWzEyMDUyMDAwLCAxMzMwMDAwXTtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfWk9PTSA9IDExO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9NSU5fWk9PTSA9IDI7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX01BWF9aT09NID0gMjA7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX1ZJRVdfUFJPSkVDVElPTiA9ICdFUFNHOjM4NTcnO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9IRUlHSFQgPSAnNDgwcHgnO1xuXG4vKiogSW50ZXJuYWwgbGF5ZXIgaWQgcmVzZXJ2ZWQgZm9yIHRoZSBgYmFzZW1hcGAgaW5wdXQgc2hvcnRjdXQuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9CQVNFTUFQX0xBWUVSX0lEID0gJ19fZ2VvX2Jhc2VtYXAnO1xuXG4vKiogSW50ZXJuYWwgdmVjdG9yIGxheWVycyByZXNlcnZlZCBmb3Igc2VsZWN0aW9uIC8gbWVhc3VyZSAvIGhpZ2hsaWdodC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1NFTEVDVElPTl9MQVlFUl9JRCA9ICdfX2dlb19zZWxlY3Rpb24nO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfTUVBU1VSRV9MQVlFUl9JRCA9ICdfX2dlb19tZWFzdXJlJztcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0hJR0hMSUdIVF9MQVlFUl9JRCA9ICdfX2dlb19oaWdobGlnaHQnO1xuXG4vKipcbiAqIERlZmF1bHQgcHJvdmluY2UgZXh0ZW50IChMw6JtIMSQ4buTbmcgYXBwcm94LCBFUFNHOjQzMjYpIGZvciDigJx4ZW0gdG/DoG4gdOG7iW5o4oCdIChUQ1FILjE0IEdENSkuXG4gKiBIb3N0IGFwcHMgc2hvdWxkIG92ZXJyaWRlIHdpdGggYXV0aG9yaXRhdGl2ZSBib3VuZGFyeSBleHRlbnQgZnJvbSBBUEkuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfUFJPVklOQ0VfRVhURU5UXzQzMjY6IHJlYWRvbmx5IFtcbiAgbnVtYmVyLFxuICBudW1iZXIsXG4gIG51bWJlcixcbiAgbnVtYmVyLFxuXSA9IFsxMDcuMiwgMTEuMTUsIDEwOC43NSwgMTIuMzVdO1xuXG4vKiogT3B0aW9uYWwgdHJhZmZpYyAvIHJvYWRzIHJlZmVyZW5jZSBvdmVybGF5IChub3QgYSBwbGFubmluZyBsYXllcikuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9UUkFGRklDX0xBWUVSX0lEID0gJ19fZ2VvX3RyYWZmaWMnO1xuXG5leHBvcnQgY29uc3QgR0VPX01BUF9FU1JJX0lNQUdFUllfVVJMID1cbiAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvV29ybGRfSW1hZ2VyeS9NYXBTZXJ2ZXIvdGlsZS97en0ve3l9L3t4fSc7XG5cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0VTUklfU1RSRUVUU19VUkwgPVxuICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9Xb3JsZF9TdHJlZXRfTWFwL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfRVNSSV9UUkFOU1BPUlRfVVJMID1cbiAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvUmVmZXJlbmNlL1dvcmxkX1RyYW5zcG9ydGF0aW9uL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuLyoqIERlZmF1bHQgYmFzZW1hcCBwaWNrZXIgb3B0aW9ucyAoxJHGsOG7nW5nIHBo4buRIC8gduG7hyB0aW5oKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfQkFTRU1BUF9PUFRJT05TOiBHZW9NYXBCYXNlbWFwT3B0aW9uW10gPSBbXG4gIHtcbiAgICBpZDogJ29zbScsXG4gICAgbGFiZWw6ICfEkMaw4budbmcgcGjhu5EnLFxuICAgIGJhc2VtYXA6ICdvc20nLFxuICAgIHByZXZpZXdVcmw6ICdodHRwczovL3RpbGUub3BlbnN0cmVldG1hcC5vcmcvNi81MC8zMC5wbmcnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIGxhYmVsOiAnVuG7hyB0aW5oJyxcbiAgICBiYXNlbWFwOiB7XG4gICAgICB0eXBlOiAneHl6JyxcbiAgICAgIHVybDogR0VPX01BUF9FU1JJX0lNQUdFUllfVVJMLFxuICAgICAgYXR0cmlidXRpb25zOiAnRXNyaSwgTWF4YXIsIEVhcnRoc3RhciBHZW9ncmFwaGljcycsXG4gICAgICB0aXRsZTogJ+G6om5oIHbhu4cgdGluaCcsXG4gICAgfSxcbiAgICBwcmV2aWV3VXJsOlxuICAgICAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvV29ybGRfSW1hZ2VyeS9NYXBTZXJ2ZXIvdGlsZS82LzMwLzUwJyxcbiAgfSxcbl07XG5cbi8qKiBUcmFuc3BvcnRhdGlvbiByZWZlcmVuY2Ugb3ZlcmxheSDigJQgdG9nZ2xlIGluZGVwZW5kZW50bHkgb2YgYmFzZW1hcC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1RSQUZGSUNfT1ZFUkxBWTogR2VvTWFwWHl6TGF5ZXJDb25maWcgPSB7XG4gIGlkOiBHRU9fTUFQX1RSQUZGSUNfTEFZRVJfSUQsXG4gIHRpdGxlOiAnTOG7m3AgZ2lhbyB0aMO0bmcnLFxuICB0eXBlOiAneHl6JyxcbiAgdXJsOiBHRU9fTUFQX0VTUklfVFJBTlNQT1JUX1VSTCxcbiAgYXR0cmlidXRpb25zOiAnRXNyaScsXG4gIHZpc2libGU6IGZhbHNlLFxuICBvcGFjaXR5OiAwLjksXG4gIHpJbmRleDogNSxcbiAgYmFzZW1hcDogZmFsc2UsXG4gIGdyb3VwOiAnYmFzZS1tYXAnLFxufTtcblxuLyoqIEJ1aWx0LWluIHRvb2xiYXIgYWN0aW9ucyDigJQgRmlnbWEgbWFwIGNocm9tZSAoRGF0IERhaSBMYW0gRG9uZyAyMDI2KS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfVE9PTEJBUl9BQ1RJT05TOiBHZW9NYXBUb29sYmFyQWN0aW9uW10gPSBbXG4gIHtcbiAgICBpZDogJ2hvbWUnLFxuICAgIGxhYmVsOiAnVHJhbmcgY2jhu6cnLFxuICAgIGljb246ICdob21lJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuaG9tZSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnVHJhbmcgY2jhu6cnLFxuICAgIHZhcmlhbnQ6ICdwcmltYXJ5JyxcbiAgfSxcbiAge1xuICAgIGlkOiAnc2VhcmNoJyxcbiAgICBsYWJlbDogJ1RyYSBj4bupdScsXG4gICAgaWNvbjogJ3NlYXJjaCcsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnNlYXJjaCxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnVHJhIGPhu6l1IHRo4butYSDEkeG6pXQnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdwYW4nLFxuICAgIGxhYmVsOiAnRGkgY2h1eeG7g24nLFxuICAgIGljb246ICdkcmFnJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMucGFuLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdEaSBjaHV54buDbiBi4bqjbiDEkeG7kycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3pvb20taW4nLFxuICAgIGxhYmVsOiAnUGjDs25nIHRvJyxcbiAgICBpY29uOiAncGx1cycsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnpvb21JbixcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnUGjDs25nIHRvJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnem9vbS1vdXQnLFxuICAgIGxhYmVsOiAnVGh1IG5o4buPJyxcbiAgICBpY29uOiAnbWludXMnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy56b29tT3V0LFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUaHUgbmjhu48nLFxuICB9LFxuICB7XG4gICAgaWQ6ICdmdWxsc2NyZWVuJyxcbiAgICBsYWJlbDogJ1Rvw6BuIG3DoG4gaMOsbmgnLFxuICAgIGljb246ICdmdWxsc2NyZWVuJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuZnVsbHNjcmVlbixcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnWGVtIHRvw6BuIGLhuqNuIMSR4buTJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnbWVhc3VyZS1kaXN0YW5jZScsXG4gICAgbGFiZWw6ICfEkG8ga2hv4bqjbmcgY8OhY2gnLFxuICAgIGljb246ICdjb2x1bW4td2lkdGgnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5tZWFzdXJlRGlzdGFuY2UsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ8SQbyBraG/huqNuZyBjw6FjaCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ21lYXN1cmUtYXJlYScsXG4gICAgbGFiZWw6ICfEkG8gZGnhu4duIHTDrWNoJyxcbiAgICBpY29uOiAnYm9yZGVyLW91dGVyJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMubWVhc3VyZUFyZWEsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ8SQbyBkaeG7h24gdMOtY2gnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdsYXllcnMnLFxuICAgIGxhYmVsOiAnTOG7m3AgYuG6o24gxJHhu5MnLFxuICAgIGljb246ICdhcHBzdG9yZScsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLmxheWVycyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnQuG6rXQvdOG6r3QgbOG7m3AgYuG6o24gxJHhu5MnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdsZWdlbmQnLFxuICAgIGxhYmVsOiAnQ2jDuiBnaeG6o2knLFxuICAgIGljb246ICd1bm9yZGVyZWQtbGlzdCcsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ1hlbSBjaMO6IGdp4bqjaScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NuYXBzaG90JyxcbiAgICBsYWJlbDogJ0No4bulcCDhuqNuaCcsXG4gICAgaWNvbjogJ2NhbWVyYScsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ0No4bulcCDhuqNuaCBi4bqjbiDEkeG7kycsXG4gIH0sXG5dO1xuXG4vKipcbiAqIEJ1aWx0LWluIFwiVuG7iyB0csOtIGPhu6dhIHTDtGlcIiB0b29sYmFyIGFjdGlvbiDigJQgcGFpciB3aXRoIGBpZDogJ2xvY2F0ZSdgIGhhbmRsaW5nIHRoYXRcbiAqIGBnZW8tbWFwLXNoZWxsYCBhbHJlYWR5IHJlc29sdmVzIGludGVybmFsbHkgKGdlb2xvY2F0ZSArIGVtaXQgYGxvY2F0ZWRgL2Bsb2NhdGVFcnJvcmApLlxuICogTm90IGluY2x1ZGVkIGluIGBHRU9fTUFQX0RFRkFVTFRfVE9PTEJBUl9BQ1RJT05TYDsgaG9zdCBhcHBzIG9wdCBpbiBleHBsaWNpdGx5LlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9MT0NBVEVfVE9PTEJBUl9BQ1RJT046IEdlb01hcFRvb2xiYXJBY3Rpb24gPSB7XG4gIGlkOiAnbG9jYXRlJyxcbiAgbGFiZWw6ICdW4buLIHRyw60gY+G7p2EgdMO0aScsXG4gIGljb246ICdhaW0nLFxuICBpY29uT25seTogdHJ1ZSxcbiAgdG9vbHRpcDogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbn07XG5cbi8qKlxuICogRGVtbyB0aGVtYXRpYyBvdmVybGF5cyBmb3IgU3Rvcnlib29rIChvZmZsaW5lLWZyaWVuZGx5IEdlb0pTT04pLlxuICogR3JvdXBzIG1hdGNoIHBvcnRhbCBsYXllcnMgcG9wb3ZlcjogUUhTREQgwrcgxJHhu4thIGNow61uaCDCtyBoaeG7h24gdHLhuqFuZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVNT19USEVNQVRJQ19MQVlFUlM6IEdlb01hcExheWVyQ29uZmlnW10gPSBbXG4gIHtcbiAgICBpZDogJ2RlbW8tcWhzZGQtMjAyMCcsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjAtMjAyNScsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTAsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDIwLTIwMjUpJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTNdLFxuICAgICAgICAgICAgICAgIFsxMDguNDgsIDExLjkzXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ4LCAxMS45N10sXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTddLFxuICAgICAgICAgICAgICAgIFsxMDguNDIsIDExLjkzXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1xaHNkZC0yMDI1JyxcbiAgICB0aXRsZTogJ1FIU0REIHThu4luaCBMw6JtIMSQ4buTbmcgMjAyNS0yMDMwJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTEsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDI1LTIwMzApJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTI1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ5LCAxMS45MjVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDksIDExLjk2NV0sXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTY1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQzLCAxMS45MjVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLXBhcmNlbCcsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAwLjQsXG4gICAgekluZGV4OiAyMCxcbiAgICBncm91cDogJ2NhZGFzdHJlJyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgxJHhu4thIGNow61uaCcsXG4gICAgZ3JvdXBTZWxlY3Rpb246ICdtdWx0aScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgcXVlcnlhYmxlOiB0cnVlLFxuICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NycsXG4gICAgZGF0YToge1xuICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgIGZlYXR1cmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgICAgcHJvcGVydGllczogeyBwYXJjZWw6ICcxMicsIHNoZWV0OiAnNDUnIH0sXG4gICAgICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NF0sXG4gICAgICAgICAgICAgICAgWzEwOC40NjUsIDExLjk0XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ2NSwgMTEuOTUyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NTJdLFxuICAgICAgICAgICAgICAgIFsxMDguNDUsIDExLjk0XSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1jdXJyZW50LTIwMjAnLFxuICAgIHRpdGxlOiAnUUhTREQgdOG7iW5oIEzDom0gxJDhu5NuZyAyMDIwLTIwMjUnLFxuICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEyLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyMC0yMDI1KScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDQsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjk2XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ0LCAxMS45Nl0sXG4gICAgICAgICAgICAgICAgWzEwOC40NCwgMTEuOTJdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLWN1cnJlbnQtMjAyNScsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjUtMjAzMCcsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEzLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyNS0yMDMwKScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuXTtcblxuLyoqXG4gKiBTYW1wbGUgbGVnZW5kIOKAlCBwbGFjZWhvbGRlciBjb2xvcnMgdW50aWwgVGjDtG5nIHTGsCAwOS8yMDI0IHBhbGV0dGUgaXMgY29tcGxldGUgKFExM+KAk1ExNSkuXG4gKiBEbyBub3QgdHJlYXQgYXMgbGVnYWxseSBhdXRob3JpdGF0aXZlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERU1PX0xFR0VORF9JVEVNUzogR2VvTWFwTGVnZW5kSXRlbVtdID0gW1xuICB7IGNvZGU6ICdPRFQnLCBsYWJlbDogJ8SQ4bqldCDhu58gxJHDtCB0aOG7iycsIGNvbG9yOiAnI0U4N0IzNScgfSxcbiAgeyBjb2RlOiAnT05UJywgbGFiZWw6ICfEkOG6pXQg4bufIHThuqFpIG7DtG5nIHRow7RuJywgY29sb3I6ICcjRjJDMTRFJyB9LFxuICB7IGNvZGU6ICdTS0MnLCBsYWJlbDogJ8SQ4bqldCBjxqEgc+G7nyBz4bqjbiB4deG6pXQga2luaCBkb2FuaCcsIGNvbG9yOiAnI0M0NUMyNicgfSxcbiAgeyBjb2RlOiAnREdUJywgbGFiZWw6ICfEkOG6pXQgZ2lhbyB0aMO0bmcnLCBjb2xvcjogJyM2QjcyODAnIH0sXG4gIHsgY29kZTogJ1RNRCcsIGxhYmVsOiAnxJDhuqV0IHRoxrDGoW5nIG3huqFpIGThu4tjaCB24bulJywgY29sb3I6ICcjREIyNzc3JyB9LFxuICB7IGNvZGU6ICdDTE4nLCBsYWJlbDogJ8SQ4bqldCB0cuG7k25nIGPDonkgbMOidSBuxINtJywgY29sb3I6ICcjMTZBMzRBJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9IRUxQX1NFQ1RJT05TOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGJvZHk6IHN0cmluZyB9PiA9IFtcbiAge1xuICAgIHRpdGxlOiAnRGkgY2h1eeG7g24gYuG6o24gxJHhu5MnLFxuICAgIGJvZHk6ICdLw6lvIGNodeG7mXQgxJHhu4MgcGFuLiBDdeG7mW4gY2h14buZdCBob+G6t2MgZMO5bmcgbsO6dCArLy0gxJHhu4MgdGh1IHBow7NuZy4gRMO5bmcg4oCcUGjDs25nIHRvIHRoZW8gdsO5bmfigJ0gLyDigJxUaHUgbmjhu48gdGhlbyB2w7luZ+KAnSDEkeG7gyBraG9hbmggdsO5bmcgdHLDqm4gYuG6o24gxJHhu5MuIOKAnFhlbSB0b8OgbiB04buJbmjigJ0gY8SDbiBraHVuZyBuaMOsbiB24buBIHBo4bqhbSB2aSB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnVHJhIGPhu6l1IHRo4butYSDEkeG6pXQnLFxuICAgIGJvZHk6ICdN4bufIOKAnFRyYSBj4bupdeKAnSDEkeG7gyB0w6xtIHRoZW8gY2jhu6cgc+G7rSBk4bulbmcsIEdDTiwgdOG7jWEgxJHhu5ksIMSR4buLYSBjaOG7iSBob+G6t2Mgc+G7kSB04budL3Ro4butYS4gS+G6v3QgcXXhuqMgaGnhu4NuIHRo4buLIGRhbmggc8OhY2ggdsOgIGhpZ2hsaWdodCB0csOqbiBi4bqjbiDEkeG7ky4nLFxuICB9LFxuICB7XG4gICAgdGl0bGU6ICdM4bubcCBi4bqjbiDEkeG7kycsXG4gICAgYm9keTogJ03hu58g4oCcTOG7m3AgYuG6o24gxJHhu5PigJ0gxJHhu4MgYuG6rXQvdOG6r3QgcXV5IGhv4bqhY2ggU0TEkCwgaGnhu4duIHRy4bqhbmcgU0TEkCwgdGjhu61hIMSR4bqldC4gQ2jhu41uIHbhu4cgdGluaCDhu58gYuG7mSBjaHV54buDbiBs4bubcCBu4buBbi4gQuG6rXQgbmhp4buBdSBs4bubcCBjw7luZyBsw7pjIMSR4buDIGNo4buTbmcgeOG6v3Agc28gc8OhbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJDGoW4gduG7iyBow6BuaCBjaMOtbmgnLFxuICAgIGJvZHk6ICdN4bufIGLhu5kgbOG7jWMgxJBWSEMgY+G6pXAgeMOjIMSR4buDIHRodSBo4bq5cCBraHVuZyBuaMOsbiB0aGVvIHjDoyDEkcOjIGNo4buNbi4g4oCcWGVtIHRvw6BuIHThu4luaOKAnSDEkcawYSBi4bqjbiDEkeG7kyB24buBIHRvw6BuIGPhuqNuaCB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJBvIMSR4bqhYyAmIHRp4buHbiDDrWNoJyxcbiAgICBib2R5OiAnxJBvIGtob+G6o25nIGPDoWNoIC8gZGnhu4duIHTDrWNoIGLhurFuZyBjw6FjaCBuaOG6pXAgY8OhYyDEkWnhu4NtIHRyw6puIGLhuqNuIMSR4buTIChuaMOheSDEkcO6cCDEkeG7gyBr4bq/dCB0aMO6YykuIETDuW5nIOKAnMSQ4buZIHRyb25nIHN14buRdOKAnSDEkeG7gyBuaMOsbiB4dXnDqm4gbOG7m3AuIOKAnENo4bulcCDhuqNuaOKAnSB04bqjaSBQTkcga2h1bmcgbmjDrG4gaGnhu4duIHThuqFpLicsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbiAgICBib2R5OiAnQ2hvIHBow6lwIHRyw6xuaCBkdXnhu4d0IGNoaWEgc+G6uyB24buLIHRyw60gxJHhu4MgY8SDbiBnaeG7r2EgYuG6o24gxJHhu5MgdOG6oWkgduG7iyB0csOtIHRoaeG6v3QgYuG7iyBj4bunYSBi4bqhbi4nLFxuICB9LFxuXTtcblxuLyoqIERlbW8gYWRtaW4gdHJlZSAoeMOjKSBmb3IgU3Rvcnlib29rIOKAlCByZXBsYWNlIHZpYSBBUEkgaW4gcHJvZHVjdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fQURNSU5fTk9ERVM6IEdlb1RyZWVOb2RlW10gPSBbXG4gIHtcbiAgICBrZXk6ICdsYW0tZG9uZycsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICBleHBhbmRlZDogdHJ1ZSxcbiAgICBjaGlsZHJlbjogW1xuICAgICAgeyBrZXk6ICd4YS0xJywgdGl0bGU6ICdYw6MgxJDhuqEgVOG6u2gnLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtMicsIHRpdGxlOiAnWMOjIMSQ4bqhIEh1b2FpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTMnLCB0aXRsZTogJ1jDoyDEkOG6oSBLaG8nLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtNCcsIHRpdGxlOiAnUGjGsOG7nW5nIDEgKMSQw6AgTOG6oXQpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTUnLCB0aXRsZTogJ1BoxrDhu51uZyAyICjEkMOgIEzhuqF0KScsIGlzTGVhZjogdHJ1ZSB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG4vKiogRGVtbyBwYXJjZWwgZGV0YWlsIGZvciBTdG9yeWJvb2sgc2VhcmNoL3BvcHVwIChUQ1FILjEyKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fUEFSQ0VMX0RFVEFJTDogR2VvTWFwUGFyY2VsRGV0YWlsID0ge1xuICBwYXJjZWxDb2RlOiAnMDEwMDAwMTIzNCcsXG4gIHBhcmNlbE51bWJlcjogJzIwMjMnLFxuICBzaGVldE51bWJlcjogJzE1MycsXG4gIHdhcmQ6ICdQaMaw4budbmcgMScsXG4gIHByb3ZpbmNlOiAnTMOibSDEkOG7k25nJyxcbiAgYXJlYTogJzI1MDAgbcKyJyxcbiAgbGVnYWxBcmVhOiAnMjUwMCBtwrInLFxuICBsYW5kVXNlOiAnTFVDIC0gxJDhuqV0IGNodXnDqm4gdHLhu5NuZyBsw7phIG7GsOG7m2MnLFxuICBhZGRyZXNzOiAnU+G7kSAxMCwgxJHGsOG7nW5nIFRy4bqnbiBQaMO6JyxcbiAgdXNlRm9ybTogJ1Phu60gZOG7pW5nIHJpw6puZycsXG4gIHJlZ2lzdHJhdGlvblN0YXR1czogJ8SQw6MgY+G6pXAgZ2nhuqV5IGNo4bupbmcgbmjhuq1uJyxcbiAgbGFuZFByaWNlOiAnxJBhbmcgY+G6rXAgbmjhuq10JyxcbiAgc2hhcGVJbmZvOiAnSMOsbmggY2jhu68gbmjhuq10JyxcbiAgcGxhbm5pbmdJbmZvOiAnTuG6sW0gdHJvbmcgcXV5IGhv4bqhY2ggxJHhuqV0IOG7nyDEkcO0IHRo4buLIGdpYWkgxJFv4bqhbiAyMDIx4oCTMjAzMCcsXG59O1xuXG4vKipcbiAqIFBsYWNlaG9sZGVyIGVuZHBvaW50cyDigJQgcmVwbGFjZSB2aWEgZW52aXJvbm1lbnQgLyBBUEkuXG4gKiBEbyBub3QgaGFyZC1jb2RlIHByb2R1Y3Rpb24gZG9tYWlucyBoZXJlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTID0ge1xuICB3bXNVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2dlb3NlcnZlci93bXMnLFxuICB4eXpTYXRlbGxpdGVVcmw6XG4gICAgJ2h0dHBzOi8ve1RJTEVfSE9TVH0vc2F0ZWxsaXRlL3t6fS97eH0ve3l9LnBuZycsXG4gIGdlb2pzb25QYXJjZWxVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2FwaS92MS9wYXJjZWxzLmdlb2pzb24nLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBFeGFtcGxlIG11bHRpLWxheWVyIHN0YWNrIGZvciBsYW5kLXVzZSBwbGFubmluZyBkZW1vcyAvIFN0b3J5Ym9vay5cbiAqIFVSTHMgYXJlIHBsYWNlaG9sZGVyczsgV01TL1hZWiB0aWxlcyB3aWxsIGZhaWwgdW50aWwgZW52IGlzIHdpcmVkLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX1BMQU5OSU5HX0xBWUVSUzogR2VvTWFwTGF5ZXJDb25maWdbXSA9IFtcbiAge1xuICAgIGlkOiAnb3NtJyxcbiAgICB0aXRsZTogJ0LhuqNuIMSR4buTIMSRxrDhu51uZyBwaOG7kScsXG4gICAgdHlwZTogJ29zbScsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMCxcbiAgICBiYXNlbWFwOiB0cnVlLFxuICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIHRpdGxlOiAn4bqibmggduG7hyB0aW5oJyxcbiAgICB0eXBlOiAneHl6JyxcbiAgICB1cmw6IEdFT19NQVBfRU5WX1BMQUNFSE9MREVSUy54eXpTYXRlbGxpdGVVcmwsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDAsXG4gICAgYmFzZW1hcDogdHJ1ZSxcbiAgICBncm91cDogJ2Jhc2UtbWFwJyxcbiAgICBhdHRyaWJ1dGlvbnM6ICdTYXRlbGxpdGUgKHBsYWNlaG9sZGVyKScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xhbmQtdXNlLXBsYW5uaW5nJyxcbiAgICB0aXRsZTogJ1F1eSBob+G6oWNoIHPhu60gZOG7pW5nIMSR4bqldCcsXG4gICAgdHlwZTogJ3dtcycsXG4gICAgdXJsOiBHRU9fTUFQX0VOVl9QTEFDRUhPTERFUlMud21zVXJsLFxuICAgIGxheWVyTmFtZTogJ3dvcmtzcGFjZTpsYW5kX3VzZV9wbGFubmluZycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBMQVlFUlM6ICd3b3Jrc3BhY2U6bGFuZF91c2VfcGxhbm5pbmcnLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNyxcbiAgICB6SW5kZXg6IDEwLFxuICAgIHByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncGFyY2VsLWJvdW5kYXJ5JyxcbiAgICB0aXRsZTogJ1JhbmggZ2nhu5tpIHRo4butYSDEkeG6pXQnLFxuICAgIHR5cGU6ICd3bXMnLFxuICAgIHVybDogR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTLndtc1VybCxcbiAgICBsYXllck5hbWU6ICd3b3Jrc3BhY2U6cGFyY2VsX2JvdW5kYXJ5JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIExBWUVSUzogJ3dvcmtzcGFjZTpwYXJjZWxfYm91bmRhcnknLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuOSxcbiAgICB6SW5kZXg6IDIwLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiBHRU9fTUFQX1NFTEVDVElPTl9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ8SQ4buRaSB0xrDhu6NuZyDEkWFuZyBjaOG7jW4nLFxuICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDEwMCxcbiAgICBncm91cDogJ3N5c3RlbScsXG4gICAgZmVhdHVyZXM6IFtdLFxuICB9LFxuICB7XG4gICAgaWQ6IEdFT19NQVBfTUVBU1VSRV9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ0vhur90IHF14bqjIMSRbycsXG4gICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMTEwLFxuICAgIGdyb3VwOiAnc3lzdGVtJyxcbiAgICBmZWF0dXJlczogW10sXG4gIH0sXG5dO1xuIl19
|
package/fesm2022/geoit-ui.mjs
CHANGED
|
@@ -4189,6 +4189,18 @@ const GEO_MAP_DEFAULT_TOOLBAR_ACTIONS = [
|
|
|
4189
4189
|
tooltip: 'Chụp ảnh bản đồ',
|
|
4190
4190
|
},
|
|
4191
4191
|
];
|
|
4192
|
+
/**
|
|
4193
|
+
* Built-in "Vị trí của tôi" toolbar action — pair with `id: 'locate'` handling that
|
|
4194
|
+
* `geo-map-shell` already resolves internally (geolocate + emit `located`/`locateError`).
|
|
4195
|
+
* Not included in `GEO_MAP_DEFAULT_TOOLBAR_ACTIONS`; host apps opt in explicitly.
|
|
4196
|
+
*/
|
|
4197
|
+
const GEO_MAP_LOCATE_TOOLBAR_ACTION = {
|
|
4198
|
+
id: 'locate',
|
|
4199
|
+
label: 'Vị trí của tôi',
|
|
4200
|
+
icon: 'aim',
|
|
4201
|
+
iconOnly: true,
|
|
4202
|
+
tooltip: 'Vị trí của tôi',
|
|
4203
|
+
};
|
|
4192
4204
|
/**
|
|
4193
4205
|
* Demo thematic overlays for Storybook (offline-friendly GeoJSON).
|
|
4194
4206
|
* Groups match portal layers popover: QHSDD · địa chính · hiện trạng.
|
|
@@ -6137,6 +6149,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
6137
6149
|
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=\"md\" />\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=\"md\" />\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: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:40px;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:40px;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"] }]
|
|
6138
6150
|
}], ctorParameters: () => [] });
|
|
6139
6151
|
|
|
6152
|
+
/**
|
|
6153
|
+
* Shared browser-geolocation trigger — centers `ctrl` on the user and reports the outcome.
|
|
6154
|
+
* Used by both `geo-map-locate` (standalone button) and `geo-map-shell`'s built-in locate
|
|
6155
|
+
* toolbar action so the two never drift on error-reason mapping.
|
|
6156
|
+
*/
|
|
6157
|
+
function runGeoMapLocate(ctrl, callbacks) {
|
|
6158
|
+
if (typeof navigator === 'undefined' || !navigator.geolocation) {
|
|
6159
|
+
callbacks.onError?.({
|
|
6160
|
+
reason: 'unsupported',
|
|
6161
|
+
message: 'Trình duyệt không hỗ trợ định vị.',
|
|
6162
|
+
});
|
|
6163
|
+
return;
|
|
6164
|
+
}
|
|
6165
|
+
navigator.geolocation.getCurrentPosition((pos) => {
|
|
6166
|
+
const lonLat = [pos.coords.longitude, pos.coords.latitude];
|
|
6167
|
+
const mercator = fromLonLat(lonLat);
|
|
6168
|
+
ctrl.setCenter(mercator, Math.max(ctrl.getZoom() ?? 14, 14));
|
|
6169
|
+
callbacks.onLocated?.(lonLat);
|
|
6170
|
+
}, (err) => {
|
|
6171
|
+
if (err.code === err.PERMISSION_DENIED) {
|
|
6172
|
+
callbacks.onDenied?.();
|
|
6173
|
+
callbacks.onError?.({ reason: 'denied', message: err.message });
|
|
6174
|
+
return;
|
|
6175
|
+
}
|
|
6176
|
+
const reason = err.code === err.POSITION_UNAVAILABLE
|
|
6177
|
+
? 'unavailable'
|
|
6178
|
+
: err.code === err.TIMEOUT
|
|
6179
|
+
? 'timeout'
|
|
6180
|
+
: 'unknown';
|
|
6181
|
+
callbacks.onError?.({ reason, message: err.message });
|
|
6182
|
+
}, {
|
|
6183
|
+
enableHighAccuracy: true,
|
|
6184
|
+
timeout: 12000,
|
|
6185
|
+
maximumAge: 0,
|
|
6186
|
+
});
|
|
6187
|
+
}
|
|
6188
|
+
|
|
6140
6189
|
/**
|
|
6141
6190
|
* Geolocation button: center map on user after permission.
|
|
6142
6191
|
*
|
|
@@ -6156,43 +6205,20 @@ class GeoMapLocateComponent {
|
|
|
6156
6205
|
if (!ctrl || this.busy()) {
|
|
6157
6206
|
return;
|
|
6158
6207
|
}
|
|
6159
|
-
if (typeof navigator === 'undefined' || !navigator.geolocation) {
|
|
6160
|
-
this.locateError.emit({
|
|
6161
|
-
reason: 'unsupported',
|
|
6162
|
-
message: 'Trình duyệt không hỗ trợ định vị.',
|
|
6163
|
-
});
|
|
6164
|
-
return;
|
|
6165
|
-
}
|
|
6166
6208
|
this.busy.set(true);
|
|
6167
|
-
|
|
6168
|
-
|
|
6169
|
-
|
|
6170
|
-
|
|
6171
|
-
|
|
6172
|
-
|
|
6173
|
-
|
|
6174
|
-
ctrl.setCenter(mercator, Math.max(ctrl.getZoom() ?? 14, 14));
|
|
6175
|
-
this.located.emit(lonLat);
|
|
6176
|
-
}, (err) => {
|
|
6177
|
-
this.busy.set(false);
|
|
6178
|
-
if (err.code === err.PERMISSION_DENIED) {
|
|
6209
|
+
runGeoMapLocate(ctrl, {
|
|
6210
|
+
onLocated: (lonLat) => {
|
|
6211
|
+
this.busy.set(false);
|
|
6212
|
+
this.located.emit(lonLat);
|
|
6213
|
+
},
|
|
6214
|
+
onDenied: () => {
|
|
6215
|
+
this.busy.set(false);
|
|
6179
6216
|
this.denied.emit();
|
|
6180
|
-
|
|
6181
|
-
|
|
6182
|
-
|
|
6183
|
-
|
|
6184
|
-
|
|
6185
|
-
}
|
|
6186
|
-
const reason = err.code === err.POSITION_UNAVAILABLE
|
|
6187
|
-
? 'unavailable'
|
|
6188
|
-
: err.code === err.TIMEOUT
|
|
6189
|
-
? 'timeout'
|
|
6190
|
-
: 'unknown';
|
|
6191
|
-
this.locateError.emit({ reason, message: err.message });
|
|
6192
|
-
}, {
|
|
6193
|
-
enableHighAccuracy: true,
|
|
6194
|
-
timeout: 12000,
|
|
6195
|
-
maximumAge: 0,
|
|
6217
|
+
},
|
|
6218
|
+
onError: (error) => {
|
|
6219
|
+
this.busy.set(false);
|
|
6220
|
+
this.locateError.emit(error);
|
|
6221
|
+
},
|
|
6196
6222
|
});
|
|
6197
6223
|
}
|
|
6198
6224
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLocateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -7554,6 +7580,8 @@ class GeoMapShellComponent {
|
|
|
7554
7580
|
/** Extra overlays merged after demo thematic + traffic. */
|
|
7555
7581
|
layers = input([]);
|
|
7556
7582
|
legendItems = input(GEO_MAP_DEMO_LEGEND_ITEMS);
|
|
7583
|
+
/** Host app sets true when the legend catalog (loại đất/ký hiệu/màu) failed to load. */
|
|
7584
|
+
legendCatalogMissing = input(false);
|
|
7557
7585
|
showNav = input(true);
|
|
7558
7586
|
includeDemoLayers = input(true);
|
|
7559
7587
|
adminNodes = input(GEO_MAP_DEMO_ADMIN_NODES);
|
|
@@ -7584,7 +7612,9 @@ class GeoMapShellComponent {
|
|
|
7584
7612
|
adminExpandedKeys = model(['lam-dong']);
|
|
7585
7613
|
mapReady = output();
|
|
7586
7614
|
mapClick = output();
|
|
7615
|
+
located = output();
|
|
7587
7616
|
locateDenied = output();
|
|
7617
|
+
locateError = output();
|
|
7588
7618
|
actionClick = output();
|
|
7589
7619
|
search = output();
|
|
7590
7620
|
searchReset = output();
|
|
@@ -7778,6 +7808,9 @@ class GeoMapShellComponent {
|
|
|
7778
7808
|
case 'fit-province':
|
|
7779
7809
|
this.zoomRef()?.fitProvince();
|
|
7780
7810
|
break;
|
|
7811
|
+
case 'locate':
|
|
7812
|
+
this.triggerLocate();
|
|
7813
|
+
break;
|
|
7781
7814
|
case 'pan':
|
|
7782
7815
|
if (this.toolMode() === 'pan') {
|
|
7783
7816
|
this.exitToolMode();
|
|
@@ -7991,6 +8024,18 @@ class GeoMapShellComponent {
|
|
|
7991
8024
|
}
|
|
7992
8025
|
this.setMapCursor('grab');
|
|
7993
8026
|
}
|
|
8027
|
+
/** Backing action for the `locate` toolbar entry (`GEO_MAP_LOCATE_TOOLBAR_ACTION`). */
|
|
8028
|
+
triggerLocate() {
|
|
8029
|
+
const ctrl = this.controller();
|
|
8030
|
+
if (!ctrl) {
|
|
8031
|
+
return;
|
|
8032
|
+
}
|
|
8033
|
+
runGeoMapLocate(ctrl, {
|
|
8034
|
+
onLocated: () => this.located.emit(),
|
|
8035
|
+
onDenied: () => this.locateDenied.emit(),
|
|
8036
|
+
onError: (error) => this.locateError.emit(error),
|
|
8037
|
+
});
|
|
8038
|
+
}
|
|
7994
8039
|
setMapCursor(cursor) {
|
|
7995
8040
|
const el = this.controller()?.getMap()?.getTargetElement();
|
|
7996
8041
|
if (!el) {
|
|
@@ -8069,7 +8114,7 @@ class GeoMapShellComponent {
|
|
|
8069
8114
|
this.managedLayers.set(next);
|
|
8070
8115
|
}
|
|
8071
8116
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8072
|
-
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 });
|
|
8117
|
+
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 }, legendCatalogMissing: { classPropertyName: "legendCatalogMissing", publicName: "legendCatalogMissing", 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", located: "located", locateDenied: "locateDenied", locateError: "locateError", 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 @if (legendCatalogMissing()) {\n <div class=\"geo-map-shell__notice\">\n <geo-alert\n type=\"warning\"\n [showIcon]=\"true\"\n title=\"Ch\u01B0a c\u00F3 danh m\u1EE5c ch\u00FA gi\u1EA3i\"\n message=\"Danh m\u1EE5c lo\u1EA1i \u0111\u1EA5t v\u00E0 k\u00FD hi\u1EC7u/m\u00E0u c\u1EE7a t\u1EC9nh ch\u01B0a \u0111\u01B0\u1EE3c n\u1EA1p v\u00E0o h\u1EC7 th\u1ED1ng. B\u1EA3n \u0111\u1ED3 v\u1EABn hi\u1EC3n th\u1ECB b\u00ECnh th\u01B0\u1EDDng.\"\n />\n </div>\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__notice{position:absolute;top:16px;left:50%;z-index:8;transform:translate(-50%);width:min(480px,100% - 32px);pointer-events:none}.geo-map-shell__notice>*{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"] }, { kind: "component", type: GeoAlertComponent, selector: "geo-alert", inputs: ["type", "title", "message", "closable", "visible", "showIcon"], outputs: ["visibleChange", "closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
8073
8118
|
}
|
|
8074
8119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapShellComponent, decorators: [{
|
|
8075
8120
|
type: Component,
|
|
@@ -8088,10 +8133,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
8088
8133
|
GeoMapParcelPopupComponent,
|
|
8089
8134
|
GeoMapLocationChipComponent,
|
|
8090
8135
|
GeoMapBasemapSwitcherComponent,
|
|
8136
|
+
GeoAlertComponent,
|
|
8091
8137
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
8092
8138
|
class: 'geo-map-shell-host',
|
|
8093
8139
|
'[style.height]': 'height()',
|
|
8094
|
-
}, 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"] }]
|
|
8140
|
+
}, 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 @if (legendCatalogMissing()) {\n <div class=\"geo-map-shell__notice\">\n <geo-alert\n type=\"warning\"\n [showIcon]=\"true\"\n title=\"Ch\u01B0a c\u00F3 danh m\u1EE5c ch\u00FA gi\u1EA3i\"\n message=\"Danh m\u1EE5c lo\u1EA1i \u0111\u1EA5t v\u00E0 k\u00FD hi\u1EC7u/m\u00E0u c\u1EE7a t\u1EC9nh ch\u01B0a \u0111\u01B0\u1EE3c n\u1EA1p v\u00E0o h\u1EC7 th\u1ED1ng. B\u1EA3n \u0111\u1ED3 v\u1EABn hi\u1EC3n th\u1ECB b\u00ECnh th\u01B0\u1EDDng.\"\n />\n </div>\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__notice{position:absolute;top:16px;left:50%;z-index:8;transform:translate(-50%);width:min(480px,100% - 32px);pointer-events:none}.geo-map-shell__notice>*{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"] }]
|
|
8095
8141
|
}], ctorParameters: () => [] });
|
|
8096
8142
|
|
|
8097
8143
|
/*
|
|
@@ -8102,5 +8148,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
8102
8148
|
* Generated bundle index. Do not edit.
|
|
8103
8149
|
*/
|
|
8104
8150
|
|
|
8105
|
-
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, GeoAccordionComponent, GeoAccordionPanelDirective, GeoAlertComponent, GeoBackButtonComponent, GeoBreadcrumbComponent, GeoButtonComponent, GeoChartComponent, GeoCheckboxComponent, GeoColumnPickerComponent, GeoConfirmModalComponent, GeoDashboardComponent, GeoDatePickerComponent, GeoDateRangePickerComponent, GeoDetailViewComponent, GeoDetailViewItemDirective, 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, GeoSwitchComponent, 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 };
|
|
8151
|
+
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, GeoAccordionComponent, GeoAccordionPanelDirective, GeoAlertComponent, GeoBackButtonComponent, GeoBreadcrumbComponent, GeoButtonComponent, GeoChartComponent, GeoCheckboxComponent, GeoColumnPickerComponent, GeoConfirmModalComponent, GeoDashboardComponent, GeoDatePickerComponent, GeoDateRangePickerComponent, GeoDetailViewComponent, GeoDetailViewItemDirective, 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, GeoSwitchComponent, 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 };
|
|
8106
8152
|
//# sourceMappingURL=geoit-ui.mjs.map
|