@smartbit4all/ng-client 4.2.35 → 4.2.37
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/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/param.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/variables.mjs +1 -1
- package/esm2022/lib/smart-form/api/api/api.mjs +1 -1
- package/esm2022/lib/smart-form/api/api/default.service.mjs +1 -1
- package/esm2022/lib/smart-form/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-form/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-form/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-form/api/index.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +1 -1
- package/esm2022/lib/smart-form/api/param.mjs +1 -1
- package/esm2022/lib/smart-form/api/variables.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/index.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/param.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +1 -1
- package/esm2022/lib/smart-map/abstract-map.mjs +1 -1
- package/esm2022/lib/smart-map/api/api/api.mjs +1 -1
- package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +1 -1
- package/esm2022/lib/smart-map/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-map/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-map/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-map/api/index.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +1 -1
- package/esm2022/lib/smart-map/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-map/api/param.mjs +1 -1
- package/esm2022/lib/smart-map/api/variables.mjs +1 -1
- package/esm2022/lib/smart-map/impl/google-map.mjs +4 -1
- package/esm2022/lib/smart-map/impl/leaflet-map.mjs +94 -7
- package/esm2022/lib/smart-map/smart-map.component.mjs +11 -7
- package/esm2022/lib/view-context/api/api/api.mjs +1 -1
- package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
- package/esm2022/lib/view-context/api/api.module.mjs +1 -1
- package/esm2022/lib/view-context/api/configuration.mjs +1 -1
- package/esm2022/lib/view-context/api/encoder.mjs +1 -1
- package/esm2022/lib/view-context/api/index.mjs +1 -1
- package/esm2022/lib/view-context/api/model/clipboardData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/closeResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModelChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +1 -1
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/downloadedFile.mjs +1 -1
- package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
- package/esm2022/lib/view-context/api/model/imageResource.mjs +1 -1
- package/esm2022/lib/view-context/api/model/link.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOption.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOptionType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageTextType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/statisticRecord.mjs +1 -1
- package/esm2022/lib/view-context/api/model/style.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2022/lib/view-context/api/model/view.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewApiError.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewState.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewType.mjs +1 -1
- package/esm2022/lib/view-context/api/param.mjs +1 -1
- package/esm2022/lib/view-context/api/variables.mjs +1 -1
- package/fesm2022/smartbit4all-ng-client.mjs +105 -11
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-map/abstract-map.d.ts +1 -0
- package/lib/smart-map/impl/google-map.d.ts +1 -0
- package/lib/smart-map/impl/leaflet-map.d.ts +3 -0
- package/lib/smart-map/smart-map.component.d.ts +3 -0
- package/package.json +1 -1
- package/smartbit4all-ng-client-4.2.37.tgz +0 -0
- package/smartbit4all-ng-client-4.2.35.tgz +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwTGF5ZXJDaGFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvYXBpL21vZGVsL2dlb01hcExheWVyQ2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogR2VvTWFwIGFwaVxyXG4gKiBUaGUgZ2VvbWFwIGFwaSBpcyByZXNwb3NpYmxlIGZvciB0aGUgZ2VvbWFwIGNvbXBvbmVudHMgdGhhdCBzaG93cyBhIGxpc3Qgb2YgaXRlbS4gXHJcbiAqXHJcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxyXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxyXG4gKlxyXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxyXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcclxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxyXG4gKi9cclxuaW1wb3J0IHsgR2VvTWFwSXRlbSB9IGZyb20gJy4vZ2VvTWFwSXRlbSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoaXMgb2JqZWN0IGNvbnRhaW50IHRoZSBwYWdlIGluZm9ybWF0aW9uIG9mIHRoZSBjb250ZW50LiBUaGUgY3VycmVudGx5IHNlZW4gcm93IHJhbmdlLCB0aGUgdG90YWwgcm93IGNvbnQgYW5kIG90aGVyIG9wdGlvbnMuIFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBMYXllckNoYW5nZSB7IFxyXG4gICAgY29kZT86IHN0cmluZztcclxuICAgIHRvQWRkOiBBcnJheTxHZW9NYXBJdGVtPjtcclxuICAgIHRvUmVtb3ZlOiBBcnJheTxzdHJpbmc+O1xyXG59XHJcblxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwTGF5ZXJEZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtbWFwL2FwaS9tb2RlbC9nZW9NYXBMYXllckRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBHZW9NYXAgYXBpXHJcbiAqIFRoZSBnZW9tYXAgYXBpIGlzIHJlc3Bvc2libGUgZm9yIHRoZSBnZW9tYXAgY29tcG9uZW50cyB0aGF0IHNob3dzIGEgbGlzdCBvZiBpdGVtLiBcclxuICpcclxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXHJcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXHJcbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5pbXBvcnQgeyBHZW9NYXBPcGVyYXRpb25Nb2RlIH0gZnJvbSAnLi9nZW9NYXBPcGVyYXRpb25Nb2RlJztcclxuaW1wb3J0IHsgR2VvTWFwU2VsZWN0aW9uTW9kZSB9IGZyb20gJy4vZ2VvTWFwU2VsZWN0aW9uTW9kZSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIEhvdyB0aGUgbGF5ZXIgYmVoYXZlcy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwTGF5ZXJEZXNjcmlwdG9yIHsgXHJcbiAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICBzZWxlY3Rpb25Nb2RlPzogR2VvTWFwU2VsZWN0aW9uTW9kZTtcclxuICAgIC8qKlxyXG4gICAgICogUmVzZXJ2ZXMgdGhlIHNlbGVjdGVkIGl0ZW1zIGV2ZW4gaWYgdGhleSBhcmUgaW52aXNpYmxlLlxyXG4gICAgICovXHJcbiAgICBwcmVzZXJ2ZVNlbGVjdGlvbjogYm9vbGVhbjtcclxuICAgIG9wZXJhdGlvbk1vZGU/OiBHZW9NYXBPcGVyYXRpb25Nb2RlO1xyXG59XHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvYXBpL21vZGVsL2dlb01hcE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogR2VvTWFwIGFwaVxyXG4gKiBUaGUgZ2VvbWFwIGFwaSBpcyByZXNwb3NpYmxlIGZvciB0aGUgZ2VvbWFwIGNvbXBvbmVudHMgdGhhdCBzaG93cyBhIGxpc3Qgb2YgaXRlbS4gXHJcbiAqXHJcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxyXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxyXG4gKlxyXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxyXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcclxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxyXG4gKi9cclxuaW1wb3J0IHsgR2VvTWFwTGF5ZXIgfSBmcm9tICcuL2dlb01hcExheWVyJztcclxuaW1wb3J0IHsgR2VvTWFwVmlld3BvcnQgfSBmcm9tICcuL2dlb01hcFZpZXdwb3J0JztcclxuaW1wb3J0IHsgR2VvTWFwVmlld1N0YXRlIH0gZnJvbSAnLi9nZW9NYXBWaWV3U3RhdGUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBUaGlzIG9iamVjdCByZXByZXNlbnRzIHRoZSBjbGllbnQgbW9kZWwgb2YgYSBnZW9tYXAgY29tcG9uZW50LiBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwTW9kZWwgeyBcclxuICAgIHZpZXdVdWlkPzogc3RyaW5nO1xyXG4gICAgaWRlbnRpZmllcj86IHN0cmluZztcclxuICAgIHF1YWxpZmllcj86IHN0cmluZztcclxuICAgIGxheWVyczogQXJyYXk8R2VvTWFwTGF5ZXI+O1xyXG4gICAgdmlld1N0YXRlPzogR2VvTWFwVmlld1N0YXRlO1xyXG4gICAgdmlld3BvcnQ/OiBHZW9NYXBWaWV3cG9ydDtcclxuICAgIGRlZmF1bHRJdGVtQWN0aW9uczogQXJyYXk8c3RyaW5nPjtcclxufVxyXG5cclxuIl19
|
|
@@ -14,4 +14,4 @@ export var GeoMapOperationMode;
|
|
|
14
14
|
GeoMapOperationMode["ACTION"] = "ACTION";
|
|
15
15
|
GeoMapOperationMode["SELECTION"] = "SELECTION";
|
|
16
16
|
})(GeoMapOperationMode || (GeoMapOperationMode = {}));
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwT3BlcmF0aW9uTW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LW1hcC9hcGkvbW9kZWwvZ2VvTWFwT3BlcmF0aW9uTW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBR0gsTUFBTSxDQUFOLElBQVksbUJBR1g7QUFIRCxXQUFZLG1CQUFtQjtJQUMzQix3Q0FBaUIsQ0FBQTtJQUNqQiw4Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBSFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUc5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBHZW9NYXAgYXBpXHJcbiAqIFRoZSBnZW9tYXAgYXBpIGlzIHJlc3Bvc2libGUgZm9yIHRoZSBnZW9tYXAgY29tcG9uZW50cyB0aGF0IHNob3dzIGEgbGlzdCBvZiBpdGVtLiBcclxuICpcclxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXHJcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXHJcbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuXHJcbmV4cG9ydCBlbnVtIEdlb01hcE9wZXJhdGlvbk1vZGUge1xyXG4gICAgQUNUSU9OID0gJ0FDVElPTicsXHJcbiAgICBTRUxFQ1RJT04gPSAnU0VMRUNUSU9OJ1xyXG59XHJcblxyXG4iXX0=
|
|
@@ -15,4 +15,4 @@ export var GeoMapSelectionMode;
|
|
|
15
15
|
GeoMapSelectionMode["SINGLE"] = "SINGLE";
|
|
16
16
|
GeoMapSelectionMode["MULTIPLE"] = "MULTIPLE";
|
|
17
17
|
})(GeoMapSelectionMode || (GeoMapSelectionMode = {}));
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwU2VsZWN0aW9uTW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LW1hcC9hcGkvbW9kZWwvZ2VvTWFwU2VsZWN0aW9uTW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBR0gsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQixvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsNENBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogR2VvTWFwIGFwaVxyXG4gKiBUaGUgZ2VvbWFwIGFwaSBpcyByZXNwb3NpYmxlIGZvciB0aGUgZ2VvbWFwIGNvbXBvbmVudHMgdGhhdCBzaG93cyBhIGxpc3Qgb2YgaXRlbS4gXHJcbiAqXHJcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxyXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxyXG4gKlxyXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxyXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcclxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxyXG4gKi9cclxuXHJcblxyXG5leHBvcnQgZW51bSBHZW9NYXBTZWxlY3Rpb25Nb2RlIHtcclxuICAgIE5PTkUgPSAnTk9ORScsXHJcbiAgICBTSU5HTEUgPSAnU0lOR0xFJyxcclxuICAgIE1VTFRJUExFID0gJ01VTFRJUExFJ1xyXG59XHJcblxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwU2VydmVyTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvYXBpL21vZGVsL2dlb01hcFNlcnZlck1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogR2VvTWFwIGFwaVxyXG4gKiBUaGUgZ2VvbWFwIGFwaSBpcyByZXNwb3NpYmxlIGZvciB0aGUgZ2VvbWFwIGNvbXBvbmVudHMgdGhhdCBzaG93cyBhIGxpc3Qgb2YgaXRlbS4gXHJcbiAqXHJcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxyXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxyXG4gKlxyXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxyXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcclxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxyXG4gKi9cclxuaW1wb3J0IHsgR2VvTWFwRGF0YVNvdXJjZURlc2NyaXB0b3IgfSBmcm9tICcuL2dlb01hcERhdGFTb3VyY2VEZXNjcmlwdG9yJztcclxuaW1wb3J0IHsgR2VvTWFwSXRlbSB9IGZyb20gJy4vZ2VvTWFwSXRlbSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoaXMgb2JqZWN0IHJlcHJlc2VudHMgdGhlIHNlcnZlciBtb2RlbCBvZiBhIGdlb21hcCBjb21wb25lbnQuIFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBTZXJ2ZXJNb2RlbCB7IFxyXG4gICAgc2VsZWN0ZWRJdGVtczogeyBba2V5OiBzdHJpbmddOiBHZW9NYXBJdGVtOyB9O1xyXG4gICAgc2VsZWN0ZWRMYXllcnM6IEFycmF5PHN0cmluZz47XHJcbiAgICBkYXRhU291cmNlczogeyBba2V5OiBzdHJpbmddOiBHZW9NYXBEYXRhU291cmNlRGVzY3JpcHRvcjsgfTtcclxufVxyXG5cclxuIl19
|
|
@@ -14,4 +14,4 @@ export var GeoMapTextType;
|
|
|
14
14
|
GeoMapTextType["TEXT"] = "TEXT";
|
|
15
15
|
GeoMapTextType["HTML"] = "HTML";
|
|
16
16
|
})(GeoMapTextType || (GeoMapTextType = {}));
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwVGV4dFR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvYXBpL21vZGVsL2dlb01hcFRleHRUeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSCxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLCtCQUFhLENBQUE7SUFDYiwrQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBHZW9NYXAgYXBpXHJcbiAqIFRoZSBnZW9tYXAgYXBpIGlzIHJlc3Bvc2libGUgZm9yIHRoZSBnZW9tYXAgY29tcG9uZW50cyB0aGF0IHNob3dzIGEgbGlzdCBvZiBpdGVtLiBcclxuICpcclxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXHJcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXHJcbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuXHJcbmV4cG9ydCBlbnVtIEdlb01hcFRleHRUeXBlIHtcclxuICAgIFRFWFQgPSAnVEVYVCcsXHJcbiAgICBIVE1MID0gJ0hUTUwnXHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwVmlld1N0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtbWFwL2FwaS9tb2RlbC9nZW9NYXBWaWV3U3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBHZW9NYXAgYXBpXHJcbiAqIFRoZSBnZW9tYXAgYXBpIGlzIHJlc3Bvc2libGUgZm9yIHRoZSBnZW9tYXAgY29tcG9uZW50cyB0aGF0IHNob3dzIGEgbGlzdCBvZiBpdGVtLiBcclxuICpcclxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXHJcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXHJcbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5pbXBvcnQgeyBHZW9NYXBMYXllckRlc2NyaXB0b3IgfSBmcm9tICcuL2dlb01hcExheWVyRGVzY3JpcHRvcic7XHJcbmltcG9ydCB7IEdlb01hcE9wZXJhdGlvbk1vZGUgfSBmcm9tICcuL2dlb01hcE9wZXJhdGlvbk1vZGUnO1xyXG5pbXBvcnQgeyBHZW9NYXBFZGl0aW5nU2Vzc2lvbiB9IGZyb20gJy4vZ2VvTWFwRWRpdGluZ1Nlc3Npb24nO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBXaGF0IHRvIHNob3cgYW5kIGhvdy4uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBWaWV3U3RhdGUgeyBcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgbGF5ZXJEZXNjcmlwdG9yczogQXJyYXk8R2VvTWFwTGF5ZXJEZXNjcmlwdG9yPjtcclxuICAgIHZpc2libGVMYXllcnM6IEFycmF5PHN0cmluZz47XHJcbiAgICBmaXRUb0luaXRpYWxJdGVtczogYm9vbGVhbjtcclxuICAgIGNlbnRlck9uSXRlbUNsaWNrOiBib29sZWFuO1xyXG4gICAgb3BlcmF0aW9uTW9kZT86IEdlb01hcE9wZXJhdGlvbk1vZGU7XHJcbiAgICBzZWxlY3RlZEl0ZW1zOiBBcnJheTxzdHJpbmc+O1xyXG4gICAgZWRpdGluZ1Nlc3Npb24/OiBHZW9NYXBFZGl0aW5nU2Vzc2lvbjtcclxufVxyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvTWFwVmlld3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvYXBpL21vZGVsL2dlb01hcFZpZXdwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogR2VvTWFwIGFwaVxyXG4gKiBUaGUgZ2VvbWFwIGFwaSBpcyByZXNwb3NpYmxlIGZvciB0aGUgZ2VvbWFwIGNvbXBvbmVudHMgdGhhdCBzaG93cyBhIGxpc3Qgb2YgaXRlbS4gXHJcbiAqXHJcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxyXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxyXG4gKlxyXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxyXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcclxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxyXG4gKi9cclxuaW1wb3J0IHsgR1BTUG9zaXRpb24gfSBmcm9tICcuL2dQU1Bvc2l0aW9uJztcclxuXHJcblxyXG4vKipcclxuICogVGhlIHZpZXdwb3J0Li4uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcFZpZXdwb3J0IHsgXHJcbiAgICBjZW50ZXI/OiBHUFNQb3NpdGlvbjtcclxuICAgIHpvb21MZXZlbD86IG51bWJlcjtcclxuICAgIGJvdW5kczogQXJyYXk8R1BTUG9zaXRpb24+O1xyXG59XHJcblxyXG4iXX0=
|
|
@@ -18,4 +18,4 @@ export * from './geoMapServerModel';
|
|
|
18
18
|
export * from './geoMapTextType';
|
|
19
19
|
export * from './geoMapViewState';
|
|
20
20
|
export * from './geoMapViewport';
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtbWFwL2FwaS9tb2RlbC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dQU1Bvc2l0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9nUFNSb3V0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VvTWFwQ2hhbmdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9NYXBEYXRhTG9hZGluZ01vZGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dlb01hcERhdGFTb3VyY2VEZXNjcmlwdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9NYXBEYXRhU291cmNlVHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VvTWFwRWRpdGluZ1Nlc3Npb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2dlb01hcEludGVyYWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9NYXBJdGVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9NYXBJdGVtS2luZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VvTWFwTGF5ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2dlb01hcExheWVyQ2hhbmdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9NYXBMYXllckRlc2NyaXB0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2dlb01hcE1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9NYXBPcGVyYXRpb25Nb2RlJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9NYXBTZWxlY3Rpb25Nb2RlJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9NYXBTZXJ2ZXJNb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VvTWFwVGV4dFR5cGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dlb01hcFZpZXdTdGF0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VvTWFwVmlld3BvcnQnO1xyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvYXBpL3BhcmFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU3RhbmRhcmQgcGFyYW1ldGVyIHN0eWxlcyBkZWZpbmVkIGJ5IE9wZW5BUEkgc3BlY1xyXG4gKi9cclxuZXhwb3J0IHR5cGUgU3RhbmRhcmRQYXJhbVN0eWxlID1cclxuICB8ICdtYXRyaXgnXHJcbiAgfCAnbGFiZWwnXHJcbiAgfCAnZm9ybSdcclxuICB8ICdzaW1wbGUnXHJcbiAgfCAnc3BhY2VEZWxpbWl0ZWQnXHJcbiAgfCAncGlwZURlbGltaXRlZCdcclxuICB8ICdkZWVwT2JqZWN0J1xyXG4gIDtcclxuXHJcbi8qKlxyXG4gKiBUaGUgT3BlbkFQSSBzdGFuZGFyZCB7QGxpbmsgU3RhbmRhcmRQYXJhbVN0eWxlfXMgbWF5IGJlIGV4dGVuZGVkIGJ5IGN1c3RvbSBzdHlsZXMgYnkgdGhlIHVzZXIuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBQYXJhbVN0eWxlID0gU3RhbmRhcmRQYXJhbVN0eWxlIHwgc3RyaW5nO1xyXG5cclxuLyoqXHJcbiAqIFN0YW5kYXJkIHBhcmFtZXRlciBsb2NhdGlvbnMgZGVmaW5lZCBieSBPcGVuQVBJIHNwZWNcclxuICovXHJcbmV4cG9ydCB0eXBlIFBhcmFtTG9jYXRpb24gPSAncXVlcnknIHwgJ2hlYWRlcicgfCAncGF0aCcgfCAnY29va2llJztcclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZCB0eXBlcyBhcyBkZWZpbmVkIGluIDxhIGhyZWY9XCJodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jZGF0YS10eXBlc1wiPk9wZW5BUEkgU3BlY2lmaWNhdGlvbjogRGF0YSBUeXBlczwvYT5cclxuICovXHJcbmV4cG9ydCB0eXBlIFN0YW5kYXJkRGF0YVR5cGUgPVxyXG4gIHwgXCJpbnRlZ2VyXCJcclxuICB8IFwibnVtYmVyXCJcclxuICB8IFwiYm9vbGVhblwiXHJcbiAgfCBcInN0cmluZ1wiXHJcbiAgfCBcIm9iamVjdFwiXHJcbiAgfCBcImFycmF5XCJcclxuICA7XHJcblxyXG4vKipcclxuICogU3RhbmRhcmQge0BsaW5rIERhdGFUeXBlfXMgcGx1cyB5b3VyIG93biB0eXBlcy9jbGFzc2VzLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRGF0YVR5cGUgPSBTdGFuZGFyZERhdGFUeXBlIHwgc3RyaW5nO1xyXG5cclxuLyoqXHJcbiAqIFN0YW5kYXJkIGZvcm1hdHMgYXMgZGVmaW5lZCBpbiA8YSBocmVmPVwiaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2RhdGEtdHlwZXNcIj5PcGVuQVBJIFNwZWNpZmljYXRpb246IERhdGEgVHlwZXM8L2E+XHJcbiAqL1xyXG5leHBvcnQgdHlwZSBTdGFuZGFyZERhdGFGb3JtYXQgPVxyXG4gIHwgXCJpbnQzMlwiXHJcbiAgfCBcImludDY0XCJcclxuICB8IFwiZmxvYXRcIlxyXG4gIHwgXCJkb3VibGVcIlxyXG4gIHwgXCJieXRlXCJcclxuICB8IFwiYmluYXJ5XCJcclxuICB8IFwiZGF0ZVwiXHJcbiAgfCBcImRhdGUtdGltZVwiXHJcbiAgfCBcInBhc3N3b3JkXCJcclxuICA7XHJcblxyXG5leHBvcnQgdHlwZSBEYXRhRm9ybWF0ID0gU3RhbmRhcmREYXRhRm9ybWF0IHwgc3RyaW5nO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBwYXJhbWV0ZXIgdG8gZW5jb2RlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQYXJhbSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiB1bmtub3duO1xyXG4gIGluOiBQYXJhbUxvY2F0aW9uO1xyXG4gIHN0eWxlOiBQYXJhbVN0eWxlLFxyXG4gIGV4cGxvZGU6IGJvb2xlYW47XHJcbiAgZGF0YVR5cGU6IERhdGFUeXBlO1xyXG4gIGRhdGFGb3JtYXQ6IERhdGFGb3JtYXQgfCB1bmRlZmluZWQ7XHJcbn1cclxuIl19
|
|
@@ -6,4 +6,4 @@ export const COLLECTION_FORMATS = {
|
|
|
6
6
|
'ssv': ' ',
|
|
7
7
|
'pipes': '|'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtbWFwL2FwaS92YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQVMsVUFBVSxDQUFDLENBQUM7QUFDaEUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsS0FBSztJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsT0FBTyxFQUFFLEdBQUc7Q0FDZixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBCQVNFX1BBVEggPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignYmFzZVBhdGgnKTtcclxuZXhwb3J0IGNvbnN0IENPTExFQ1RJT05fRk9STUFUUyA9IHtcclxuICAgICdjc3YnOiAnLCcsXHJcbiAgICAndHN2JzogJyAgICcsXHJcbiAgICAnc3N2JzogJyAnLFxyXG4gICAgJ3BpcGVzJzogJ3wnXHJcbn1cclxuIl19
|
|
@@ -189,6 +189,9 @@ export class GoogleMap extends AbstractMap {
|
|
|
189
189
|
getMap() {
|
|
190
190
|
return this.map;
|
|
191
191
|
}
|
|
192
|
+
toBase64() {
|
|
193
|
+
throw new Error('Method not implemented.');
|
|
194
|
+
}
|
|
192
195
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GoogleMap, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
193
196
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GoogleMap, selector: "google-map", inputs: { style: "style", styleClass: "styleClass" }, outputs: { onOverlayDblClick: "onOverlayDblClick", onOverlayDragStart: "onOverlayDragStart", onOverlayDrag: "onOverlayDrag", onOverlayDragEnd: "onOverlayDragEnd", onMapReady: "onMapReady" }, host: { classAttribute: "p-element" }, usesInheritance: true, ngImport: i0, template: ` <div [ngStyle]="style" [class]="styleClass"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
194
197
|
}
|
|
@@ -218,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
218
221
|
}], onMapReady: [{
|
|
219
222
|
type: Output
|
|
220
223
|
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LW1hcC9pbXBsL2dvb2dsZS1tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFjLGNBQWMsRUFBa0IsTUFBTSxRQUFRLENBQUM7OztBQUtwRSxTQUFTLG9CQUFvQixDQUFDLElBQWdCLEVBQUUsTUFBNEI7SUFDMUUsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyxjQUFjLENBQUMsTUFBTTtZQUN4QixPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQzVCLFFBQVEsRUFBRTtvQkFDUixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxRQUFRO29CQUM1QixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxTQUFTO2lCQUM5QjtnQkFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDbEIsQ0FBQyxDQUFDO1FBQ0wsS0FBSyxjQUFjLENBQUMsSUFBSTtZQUN0QixPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pELENBQUMsQ0FB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QyxJQUFJLENBQUM7b0JBQ3pCLGFBQWEsRUFBRSxLQUFLO29CQUNwQixPQUFPLEVBQUUsT0FBTztvQkFDaEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2lCQUNkLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDOytHQWpMVSxTQUFTO21HQUFULFNBQVMscVdBUFYscURBQXFEOzs0RkFPcEQsU0FBUztrQkFUckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLHFEQUFxRDtvQkFDL0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFdBQVcsRUFBRSw2Q0FBNkM7cUJBQ2xFO2lCQUNGO29JQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RNYXAsIFJlY29yZFdpdGhJZCB9IGZyb20gJy4uL2Fic3RyYWN0LW1hcCc7XHJcbmltcG9ydCB7IEdlb01hcEl0ZW0sIEdlb01hcEl0ZW1LaW5kLCBHZW9NYXBWaWV3cG9ydCB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IE1hcEl0ZW1Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc21hcnQtbWFwLnR5cGVzJztcclxuXHJcbmRlY2xhcmUgdmFyIGdvb2dsZTogYW55O1xyXG5cclxuZnVuY3Rpb24gY3JlYXRlR29vZ2xlTWFwc0l0ZW0oaXRlbTogR2VvTWFwSXRlbSwgY29uZmlnOiBNYXBJdGVtQ29uZmlndXJhdGlvbik6IGFueSB7XHJcbiAgc3dpdGNoIChpdGVtLmtpbmQpIHtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTUFSS0VSOlxyXG4gICAgICByZXR1cm4gbmV3IGdvb2dsZS5tYXBzLk1hcmtlcih7XHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIGxhdDogaXRlbS5wb3NpdGlvbiEubGF0aXR1ZGUsXHJcbiAgICAgICAgICBsbmc6IGl0ZW0ucG9zaXRpb24hLmxvbmdpdHVkZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRpdGxlOiBpdGVtLmxhYmVsLFxyXG4gICAgICB9KTtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTElORTpcclxuICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5Qb2x5bGluZSh7XHJcbiAgICAgICAgcGF0aDogaXRlbS5yb3V0ZSEucG9pbnRzLm1hcCgoaXQpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7IGxhdDogaXQubGF0aXR1ZGUsIGxuZzogaXQubG9uZ2l0dWRlIH07XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZ2VvZGVzaWM6IHRydWUsXHJcbiAgICAgICAgc3Ryb2tlQ29sb3I6ICcjRkYwMDAwJyxcclxuICAgICAgICBzdHJva2VPcGFjaXR5OiAwLjUsXHJcbiAgICAgICAgc3Ryb2tlV2VpZ2h0OiAyLFxyXG4gICAgICB9KTtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuUE9MWUdPTjpcclxuICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5Qb2x5Z29uKHtcclxuICAgICAgICBwYXRoOiBpdGVtLnJvdXRlIS5wb2ludHMubWFwKChpdCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHsgbGF0OiBpdC5sYXRpdHVkZSwgbG5nOiBpdC5sb25naXR1ZGUgfTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBzdHJva2VPcGFjaXR5OiAwLjUsXHJcbiAgICAgICAgc3RvcmVXZWlnaHQ6IDEsXHJcbiAgICAgICAgZmlsbENvbG9yOiAnIzE5NzZEMicsXHJcbiAgICAgICAgZmlsbE9wYWNpdHk6IDAuMzUsXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdnb29nbGUtbWFwJyxcclxuICB0ZW1wbGF0ZTogYCA8ZGl2IFtuZ1N0eWxlXT1cInN0eWxlXCIgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIj48L2Rpdj5gLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwLWVsZW1lbnQnLCAvLyB0aGlzIGlzIGZhbmN5LCBidXQgY2FuIHdlIHVzZSBpdCBhY3R1YWxseT9cclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR29vZ2xlTWFwIGV4dGVuZHMgQWJzdHJhY3RNYXAgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuICBASW5wdXQoKSBzdHlsZT86IGFueTtcclxuICBASW5wdXQoKSBzdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgb25PdmVybGF5RGJsQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk92ZXJsYXlEcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk92ZXJsYXlEcmFnOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25PdmVybGF5RHJhZ0VuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTWFwUmVhZHk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZiwgY2Q6IENoYW5nZURldGVjdG9yUmVmLCB6b25lOiBOZ1pvbmUpIHtcclxuICAgIHN1cGVyKGVsLCBjZCwgem9uZSwgY3JlYXRlR29vZ2xlTWFwc0l0ZW0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgaWYgKCF0aGlzLm1hcCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXAgPSBuZXcgZ29vZ2xlLm1hcHMuTWFwKFxyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0sXHJcbiAgICAgIHRoaXMuY3JlYXRlR29vZ2xlTWFwc09wdGlvbnMoKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpO1xyXG4gICAgY29uc3QgdG9BZGQ6IEFycmF5PFJlY29yZFdpdGhJZD4gPSBpdGVtcy5tYXAoKGl0KSA9PiAoe1xyXG4gICAgICBpZDogaXQuaWQhLFxyXG4gICAgICByZWNvcmQ6IGNyZWF0ZUdvb2dsZU1hcHNJdGVtKGl0LCB7IGNvbG9yOiAnIzMzODhmZicsIGRyYWdnYWJsZTogZmFsc2UgfSksXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLmhhbmRsZUl0ZW1DaGFuZ2VzKFtdLCB0b0FkZCk7XHJcblxyXG4gICAgdGhpcy5vbk1hcFJlYWR5LmVtaXQoe1xyXG4gICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAuYWRkTGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2VudGVyID0gdGhpcy5tYXAuZ2V0Q2VudGVyKCk7IC8vIEZJWE1FIGdldCBhY3R1YWwgY29vcmRpbmF0ZXNcclxuICAgICAgICB0aGlzLm9uTWFwQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBjb29yZGluYXRlczoge1xyXG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyLmxhdCBhcyBudW1iZXIsXHJcbiAgICAgICAgICAgIGxvbmdpdHVkZTogY2VudGVyLmxuZyBhcyBudW1iZXIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAuYWRkTGlzdGVuZXIoJ2RyYWdlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBjb25zdCBjZW50ZXIgPSB0aGlzLm1hcC5nZXRDZW50ZXIoKTtcclxuICAgICAgICBjb25zdCB6b29tID0gdGhpcy5tYXAuZ2V0Wm9vbSgpO1xyXG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMubWFwLmdldEJvdW5kcygpO1xyXG4gICAgICAgIGNvbnN0IG5lID0gYm91bmRzLmdldE5vcnRoRWFzdCgpO1xyXG4gICAgICAgIGNvbnN0IHN3ID0gYm91bmRzLmdldFNvdXRoV2VzdCgpO1xyXG4gICAgICAgIHRoaXMub25NYXBEcmFnRW5kLmVtaXQoe1xyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgICB2aWV3cG9ydDoge1xyXG4gICAgICAgICAgICBjZW50ZXI6IHtcclxuICAgICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyLmxhdCBhcyBudW1iZXIsXHJcbiAgICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXIubG5nIGFzIG51bWJlcixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgem9vbUxldmVsOiB6b29tIGFzIG51bWJlcixcclxuICAgICAgICAgICAgYm91bmRzOiBbXHJcbiAgICAgICAgICAgICAgeyBsYXRpdHVkZTogbmUubGF0LCBsb25naXR1ZGU6IG5lLmxuZyB9LFxyXG4gICAgICAgICAgICAgIHsgbGF0aXR1ZGU6IHN3LmxhdCwgbG9uZ2l0dWRlOiBzdy5sbmcgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAuYWRkTGlzdGVuZXIoJ3pvb21fY2hhbmdlZCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub25ab29tQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIHZpZXdwb3J0OiB7XHJcbiAgICAgICAgICAgIHpvb21MZXZlbDogdGhpcy5tYXAuZ2V0Wm9vbSgpIGFzIG51bWJlcixcclxuICAgICAgICAgICAgLi4udGhpcy5tb2RlbCgpLnZpZXdwb3J0ISxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlR29vZ2xlTWFwc09wdGlvbnMoKTogYW55IHtcclxuICAgIGNvbnN0IHZpZXdwb3J0OiBHZW9NYXBWaWV3cG9ydCA9IHRoaXMubW9kZWwoKS52aWV3cG9ydCE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjZW50ZXI6IHtcclxuICAgICAgICBsYXQ6IHZpZXdwb3J0LmNlbnRlcj8ubGF0aXR1ZGUsXHJcbiAgICAgICAgbG5nOiB2aWV3cG9ydC5jZW50ZXI/LmxvbmdpdHVkZSxcclxuICAgICAgfSxcclxuICAgICAgem9vbTogdmlld3BvcnQuem9vbUxldmVsLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGhhbmRsZUl0ZW1DaGFuZ2VzKHRvUmVtb3ZlOiBBcnJheTxSZWNvcmRXaXRoSWQ+LCB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0b1JlbW92ZS5mb3JFYWNoKChpdDogUmVjb3JkV2l0aElkKSA9PiB7XHJcbiAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmNsZWFySW5zdGFuY2VMaXN0ZW5lcnMoaXQucmVjb3JkLml0ZW0pO1xyXG4gICAgICBpdC5yZWNvcmQuaXRlbS5zZXRNYXAobnVsbCk7XHJcbiAgICAgIHRoaXMub3ZlcmxheXMuZGVsZXRlKGl0LmlkKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRvQWRkLmZvckVhY2goKGl0OiBSZWNvcmRXaXRoSWQpID0+IHtcclxuICAgICAgaXQucmVjb3JkLml0ZW0uc2V0TWFwKHRoaXMubWFwKTtcclxuICAgICAgaXQucmVjb3JkLml0ZW0uYWRkTGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMub25PdmVybGF5Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IHtcclxuICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgICBvdmVybGF5OiBpdC5yZWNvcmQuaXRlbSxcclxuICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpdC5yZWNvcmQuaXRlbS5hZGRMaXN0ZW5lcignZGJsY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbk92ZXJsYXlEYmxDbGljay5lbWl0KHtcclxuICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgIG92ZXJsYXk6IGl0LFxyXG4gICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGl0LnJlY29yZC5pdGVtLmdldERyYWdnYWJsZSgpKSB7XHJcbiAgICAgICAgdGhpcy5iaW5kRHJhZ0V2ZW50cyhpdC5yZWNvcmQuaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vdmVybGF5cy5zZXQoaXQuaWQsIGl0LnJlY29yZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGhhbmRsZUVkaXRpbmdJdGVtQ2hhbmdlcyhcclxuICAgIHRvUmVtb3ZlOiBBcnJheTxSZWNvcmRXaXRoSWQ+LFxyXG4gICAgdG9BZGQ6IEFycmF5PFJlY29yZFdpdGhJZD5cclxuICApOiB2b2lkIHt9XHJcblxyXG4gIGJpbmREcmFnRXZlbnRzKG92ZXJsYXk6IGFueSkge1xyXG4gICAgb3ZlcmxheS5hZGRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbk92ZXJsYXlEcmFnU3RhcnQuZW1pdCh7XHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgIG92ZXJsYXk6IG92ZXJsYXksXHJcbiAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIG92ZXJsYXkuYWRkTGlzdGVuZXIoJ2RyYWcnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLm9uT3ZlcmxheURyYWcuZW1pdCh7XHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgIG92ZXJsYXk6IG92ZXJsYXksXHJcbiAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIG92ZXJsYXkuYWRkTGlzdGVuZXIoJ2RyYWdlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLm9uT3ZlcmxheURyYWdFbmQuZW1pdCh7XHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgIG92ZXJsYXk6IG92ZXJsYXksXHJcbiAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWFwKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LW1hcC9pbXBsL2dvb2dsZS1tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFjLGNBQWMsRUFBa0IsTUFBTSxRQUFRLENBQUM7OztBQUtwRSxTQUFTLG9CQUFvQixDQUFDLElBQWdCLEVBQUUsTUFBNEI7SUFDMUUsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyxjQUFjLENBQUMsTUFBTTtZQUN4QixPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQzVCLFFBQVEsRUFBRTtvQkFDUixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxRQUFRO29CQUM1QixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxTQUFTO2lCQUM5QjtnQkFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDbEIsQ0FBQyxDQUFDO1FBQ0wsS0FBSyxjQUFjLENBQUMsSUFBSTtZQUN0QixPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pELENBQUMsQ0FB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QyxJQUFJLENBQUM7b0JBQ3pCLGFBQWEsRUFBRSxLQUFLO29CQUNwQixPQUFPLEVBQUUsT0FBTztvQkFDaEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2lCQUNkLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRVEsUUFBUTtRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQXJMVSxTQUFTO21HQUFULFNBQVMscVdBUFYscURBQXFEOzs0RkFPcEQsU0FBUztrQkFUckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLHFEQUFxRDtvQkFDL0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFdBQVcsRUFBRSw2Q0FBNkM7cUJBQ2xFO2lCQUNGO29JQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RNYXAsIFJlY29yZFdpdGhJZCB9IGZyb20gJy4uL2Fic3RyYWN0LW1hcCc7XHJcbmltcG9ydCB7IEdlb01hcEl0ZW0sIEdlb01hcEl0ZW1LaW5kLCBHZW9NYXBWaWV3cG9ydCB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IE1hcEl0ZW1Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc21hcnQtbWFwLnR5cGVzJztcclxuXHJcbmRlY2xhcmUgdmFyIGdvb2dsZTogYW55O1xyXG5cclxuZnVuY3Rpb24gY3JlYXRlR29vZ2xlTWFwc0l0ZW0oaXRlbTogR2VvTWFwSXRlbSwgY29uZmlnOiBNYXBJdGVtQ29uZmlndXJhdGlvbik6IGFueSB7XHJcbiAgc3dpdGNoIChpdGVtLmtpbmQpIHtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTUFSS0VSOlxyXG4gICAgICByZXR1cm4gbmV3IGdvb2dsZS5tYXBzLk1hcmtlcih7XHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgIGxhdDogaXRlbS5wb3NpdGlvbiEubGF0aXR1ZGUsXHJcbiAgICAgICAgICBsbmc6IGl0ZW0ucG9zaXRpb24hLmxvbmdpdHVkZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRpdGxlOiBpdGVtLmxhYmVsLFxyXG4gICAgICB9KTtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTElORTpcclxuICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5Qb2x5bGluZSh7XHJcbiAgICAgICAgcGF0aDogaXRlbS5yb3V0ZSEucG9pbnRzLm1hcCgoaXQpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7IGxhdDogaXQubGF0aXR1ZGUsIGxuZzogaXQubG9uZ2l0dWRlIH07XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZ2VvZGVzaWM6IHRydWUsXHJcbiAgICAgICAgc3Ryb2tlQ29sb3I6ICcjRkYwMDAwJyxcclxuICAgICAgICBzdHJva2VPcGFjaXR5OiAwLjUsXHJcbiAgICAgICAgc3Ryb2tlV2VpZ2h0OiAyLFxyXG4gICAgICB9KTtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuUE9MWUdPTjpcclxuICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5Qb2x5Z29uKHtcclxuICAgICAgICBwYXRoOiBpdGVtLnJvdXRlIS5wb2ludHMubWFwKChpdCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHsgbGF0OiBpdC5sYXRpdHVkZSwgbG5nOiBpdC5sb25naXR1ZGUgfTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBzdHJva2VPcGFjaXR5OiAwLjUsXHJcbiAgICAgICAgc3RvcmVXZWlnaHQ6IDEsXHJcbiAgICAgICAgZmlsbENvbG9yOiAnIzE5NzZEMicsXHJcbiAgICAgICAgZmlsbE9wYWNpdHk6IDAuMzUsXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdnb29nbGUtbWFwJyxcclxuICB0ZW1wbGF0ZTogYCA8ZGl2IFtuZ1N0eWxlXT1cInN0eWxlXCIgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIj48L2Rpdj5gLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwLWVsZW1lbnQnLCAvLyB0aGlzIGlzIGZhbmN5LCBidXQgY2FuIHdlIHVzZSBpdCBhY3R1YWxseT9cclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR29vZ2xlTWFwIGV4dGVuZHMgQWJzdHJhY3RNYXAgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuICBASW5wdXQoKSBzdHlsZT86IGFueTtcclxuICBASW5wdXQoKSBzdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgb25PdmVybGF5RGJsQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk92ZXJsYXlEcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk92ZXJsYXlEcmFnOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25PdmVybGF5RHJhZ0VuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTWFwUmVhZHk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZiwgY2Q6IENoYW5nZURldGVjdG9yUmVmLCB6b25lOiBOZ1pvbmUpIHtcclxuICAgIHN1cGVyKGVsLCBjZCwgem9uZSwgY3JlYXRlR29vZ2xlTWFwc0l0ZW0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgaWYgKCF0aGlzLm1hcCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXAgPSBuZXcgZ29vZ2xlLm1hcHMuTWFwKFxyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0sXHJcbiAgICAgIHRoaXMuY3JlYXRlR29vZ2xlTWFwc09wdGlvbnMoKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpO1xyXG4gICAgY29uc3QgdG9BZGQ6IEFycmF5PFJlY29yZFdpdGhJZD4gPSBpdGVtcy5tYXAoKGl0KSA9PiAoe1xyXG4gICAgICBpZDogaXQuaWQhLFxyXG4gICAgICByZWNvcmQ6IGNyZWF0ZUdvb2dsZU1hcHNJdGVtKGl0LCB7IGNvbG9yOiAnIzMzODhmZicsIGRyYWdnYWJsZTogZmFsc2UgfSksXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLmhhbmRsZUl0ZW1DaGFuZ2VzKFtdLCB0b0FkZCk7XHJcblxyXG4gICAgdGhpcy5vbk1hcFJlYWR5LmVtaXQoe1xyXG4gICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAuYWRkTGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2VudGVyID0gdGhpcy5tYXAuZ2V0Q2VudGVyKCk7IC8vIEZJWE1FIGdldCBhY3R1YWwgY29vcmRpbmF0ZXNcclxuICAgICAgICB0aGlzLm9uTWFwQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBjb29yZGluYXRlczoge1xyXG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyLmxhdCBhcyBudW1iZXIsXHJcbiAgICAgICAgICAgIGxvbmdpdHVkZTogY2VudGVyLmxuZyBhcyBudW1iZXIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAuYWRkTGlzdGVuZXIoJ2RyYWdlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBjb25zdCBjZW50ZXIgPSB0aGlzLm1hcC5nZXRDZW50ZXIoKTtcclxuICAgICAgICBjb25zdCB6b29tID0gdGhpcy5tYXAuZ2V0Wm9vbSgpO1xyXG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMubWFwLmdldEJvdW5kcygpO1xyXG4gICAgICAgIGNvbnN0IG5lID0gYm91bmRzLmdldE5vcnRoRWFzdCgpO1xyXG4gICAgICAgIGNvbnN0IHN3ID0gYm91bmRzLmdldFNvdXRoV2VzdCgpO1xyXG4gICAgICAgIHRoaXMub25NYXBEcmFnRW5kLmVtaXQoe1xyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgICB2aWV3cG9ydDoge1xyXG4gICAgICAgICAgICBjZW50ZXI6IHtcclxuICAgICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyLmxhdCBhcyBudW1iZXIsXHJcbiAgICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXIubG5nIGFzIG51bWJlcixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgem9vbUxldmVsOiB6b29tIGFzIG51bWJlcixcclxuICAgICAgICAgICAgYm91bmRzOiBbXHJcbiAgICAgICAgICAgICAgeyBsYXRpdHVkZTogbmUubGF0LCBsb25naXR1ZGU6IG5lLmxuZyB9LFxyXG4gICAgICAgICAgICAgIHsgbGF0aXR1ZGU6IHN3LmxhdCwgbG9uZ2l0dWRlOiBzdy5sbmcgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAuYWRkTGlzdGVuZXIoJ3pvb21fY2hhbmdlZCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub25ab29tQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIHZpZXdwb3J0OiB7XHJcbiAgICAgICAgICAgIHpvb21MZXZlbDogdGhpcy5tYXAuZ2V0Wm9vbSgpIGFzIG51bWJlcixcclxuICAgICAgICAgICAgLi4udGhpcy5tb2RlbCgpLnZpZXdwb3J0ISxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlR29vZ2xlTWFwc09wdGlvbnMoKTogYW55IHtcclxuICAgIGNvbnN0IHZpZXdwb3J0OiBHZW9NYXBWaWV3cG9ydCA9IHRoaXMubW9kZWwoKS52aWV3cG9ydCE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjZW50ZXI6IHtcclxuICAgICAgICBsYXQ6IHZpZXdwb3J0LmNlbnRlcj8ubGF0aXR1ZGUsXHJcbiAgICAgICAgbG5nOiB2aWV3cG9ydC5jZW50ZXI/LmxvbmdpdHVkZSxcclxuICAgICAgfSxcclxuICAgICAgem9vbTogdmlld3BvcnQuem9vbUxldmVsLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGhhbmRsZUl0ZW1DaGFuZ2VzKHRvUmVtb3ZlOiBBcnJheTxSZWNvcmRXaXRoSWQ+LCB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0b1JlbW92ZS5mb3JFYWNoKChpdDogUmVjb3JkV2l0aElkKSA9PiB7XHJcbiAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmNsZWFySW5zdGFuY2VMaXN0ZW5lcnMoaXQucmVjb3JkLml0ZW0pO1xyXG4gICAgICBpdC5yZWNvcmQuaXRlbS5zZXRNYXAobnVsbCk7XHJcbiAgICAgIHRoaXMub3ZlcmxheXMuZGVsZXRlKGl0LmlkKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRvQWRkLmZvckVhY2goKGl0OiBSZWNvcmRXaXRoSWQpID0+IHtcclxuICAgICAgaXQucmVjb3JkLml0ZW0uc2V0TWFwKHRoaXMubWFwKTtcclxuICAgICAgaXQucmVjb3JkLml0ZW0uYWRkTGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMub25PdmVybGF5Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IHtcclxuICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgICBvdmVybGF5OiBpdC5yZWNvcmQuaXRlbSxcclxuICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpdC5yZWNvcmQuaXRlbS5hZGRMaXN0ZW5lcignZGJsY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbk92ZXJsYXlEYmxDbGljay5lbWl0KHtcclxuICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgIG92ZXJsYXk6IGl0LFxyXG4gICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGl0LnJlY29yZC5pdGVtLmdldERyYWdnYWJsZSgpKSB7XHJcbiAgICAgICAgdGhpcy5iaW5kRHJhZ0V2ZW50cyhpdC5yZWNvcmQuaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vdmVybGF5cy5zZXQoaXQuaWQsIGl0LnJlY29yZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGhhbmRsZUVkaXRpbmdJdGVtQ2hhbmdlcyhcclxuICAgIHRvUmVtb3ZlOiBBcnJheTxSZWNvcmRXaXRoSWQ+LFxyXG4gICAgdG9BZGQ6IEFycmF5PFJlY29yZFdpdGhJZD5cclxuICApOiB2b2lkIHt9XHJcblxyXG4gIGJpbmREcmFnRXZlbnRzKG92ZXJsYXk6IGFueSkge1xyXG4gICAgb3ZlcmxheS5hZGRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbk92ZXJsYXlEcmFnU3RhcnQuZW1pdCh7XHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgIG92ZXJsYXk6IG92ZXJsYXksXHJcbiAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIG92ZXJsYXkuYWRkTGlzdGVuZXIoJ2RyYWcnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLm9uT3ZlcmxheURyYWcuZW1pdCh7XHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgIG92ZXJsYXk6IG92ZXJsYXksXHJcbiAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIG92ZXJsYXkuYWRkTGlzdGVuZXIoJ2RyYWdlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLm9uT3ZlcmxheURyYWdFbmQuZW1pdCh7XHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgIG92ZXJsYXk6IG92ZXJsYXksXHJcbiAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWFwKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgdG9CYXNlNjQoKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -5,10 +5,14 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
function createLeafletMapItem(item, config) {
|
|
6
6
|
switch (item.kind) {
|
|
7
7
|
case GeoMapItemKind.MARKER:
|
|
8
|
-
|
|
9
|
-
title: item.label,
|
|
8
|
+
let marker = L.marker(L.latLng(item.position.latitude, item.position.longitude), {
|
|
10
9
|
draggable: config.draggable,
|
|
10
|
+
}).bindTooltip(item.label, {
|
|
11
|
+
permanent: false,
|
|
12
|
+
direction: 'auto',
|
|
11
13
|
});
|
|
14
|
+
marker.originalLatLng = L.latLng(item.position.latitude, item.position.longitude); //
|
|
15
|
+
return marker;
|
|
12
16
|
case GeoMapItemKind.POLYGON:
|
|
13
17
|
const polygonRoutePoints = item.route.points;
|
|
14
18
|
return L.layerGroup([
|
|
@@ -35,6 +39,7 @@ function createLeafletMapItem(item, config) {
|
|
|
35
39
|
export class LeafletMap extends AbstractMap {
|
|
36
40
|
constructor(el, cd, zone) {
|
|
37
41
|
super(el, cd, zone, createLeafletMapItem);
|
|
42
|
+
this.offsetDistance = 0.00004;
|
|
38
43
|
}
|
|
39
44
|
ngAfterViewChecked() {
|
|
40
45
|
if (!this.map && this.el.nativeElement.offsetParent) {
|
|
@@ -43,7 +48,7 @@ export class LeafletMap extends AbstractMap {
|
|
|
43
48
|
}
|
|
44
49
|
initialize() {
|
|
45
50
|
const options = this.createLeafletMapOptions();
|
|
46
|
-
this.map = L.map('leaflet').setView(options.centre, options.zoom);
|
|
51
|
+
this.map = L.map('leaflet', { preferCanvas: true }).setView(options.centre, options.zoom);
|
|
47
52
|
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
|
48
53
|
maxZoom: 19,
|
|
49
54
|
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
|
|
@@ -130,11 +135,21 @@ export class LeafletMap extends AbstractMap {
|
|
|
130
135
|
if (!this.map) {
|
|
131
136
|
return;
|
|
132
137
|
}
|
|
138
|
+
const markerGroups = new Map();
|
|
139
|
+
toAdd.forEach((item) => {
|
|
140
|
+
if (item.record instanceof L.Marker) {
|
|
141
|
+
const key = item.record.getLatLng().lat.toFixed(6) + ',' + item.record.getLatLng().lng.toFixed(6);
|
|
142
|
+
if (!markerGroups.get(key)) {
|
|
143
|
+
markerGroups.set(key, []);
|
|
144
|
+
}
|
|
145
|
+
markerGroups.get(key).push(item.record);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
133
148
|
toRemove.forEach((it) => {
|
|
134
149
|
it.record.remove();
|
|
135
150
|
this.overlays.delete(it.id);
|
|
136
151
|
});
|
|
137
|
-
toAdd.forEach((it) => {
|
|
152
|
+
toAdd.forEach((it, index) => {
|
|
138
153
|
let record = it.record;
|
|
139
154
|
if (record instanceof L.LayerGroup) {
|
|
140
155
|
Object.values(record._layers).forEach((at) => {
|
|
@@ -165,6 +180,38 @@ export class LeafletMap extends AbstractMap {
|
|
|
165
180
|
});
|
|
166
181
|
});
|
|
167
182
|
});
|
|
183
|
+
let group = markerGroups.get(it.record.getLatLng().lat.toFixed(6) + ',' + it.record.getLatLng().lng.toFixed(6));
|
|
184
|
+
if (group && group.length > 1) {
|
|
185
|
+
const icon = this.createNumberedIcon(group.length);
|
|
186
|
+
const clusterMarker = L.marker(group[0].originalLatLng, { icon }).addTo(this.map);
|
|
187
|
+
it.record.on('mouseover', (_event) => {
|
|
188
|
+
toAdd.forEach((item, index) => {
|
|
189
|
+
if (item.record instanceof L.Marker &&
|
|
190
|
+
item.record.originalLatLng.lat == it.record.originalLatLng.lat &&
|
|
191
|
+
item.record.originalLatLng.lng == it.record.originalLatLng.lng) {
|
|
192
|
+
it.record.setZIndexOffset(1000);
|
|
193
|
+
const angle = ((360 / toAdd.length) * index * Math.PI) / 180;
|
|
194
|
+
const newLat = item.record.originalLatLng.lat + this.offsetDistance * Math.cos(angle);
|
|
195
|
+
const newLng = item.record.originalLatLng.lng + this.offsetDistance * Math.sin(angle);
|
|
196
|
+
item.record.setLatLng([newLat, newLng]);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
if (this.map.hasLayer(clusterMarker)) {
|
|
200
|
+
this.map.removeLayer(clusterMarker);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
it.record.on('mouseout', (_event) => {
|
|
204
|
+
toAdd.forEach((item, _index) => {
|
|
205
|
+
if (item.record instanceof L.Marker) {
|
|
206
|
+
item.record.setLatLng(item.record.originalLatLng);
|
|
207
|
+
it.record.setZIndexOffset(0);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
if (!this.map.hasLayer(clusterMarker)) {
|
|
211
|
+
clusterMarker.addTo(this.map);
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}
|
|
168
215
|
}
|
|
169
216
|
it.record.addTo(this.map);
|
|
170
217
|
this.overlays.set(it.id, it.record);
|
|
@@ -254,11 +301,51 @@ export class LeafletMap extends AbstractMap {
|
|
|
254
301
|
});
|
|
255
302
|
return { a: southwest, b: northeast };
|
|
256
303
|
}
|
|
304
|
+
toBase64() {
|
|
305
|
+
return new Promise((resolve, reject) => {
|
|
306
|
+
leafletImage(this.map, (err, canvas) => {
|
|
307
|
+
if (err) {
|
|
308
|
+
console.error('Leaflet image capture error', err);
|
|
309
|
+
reject(err);
|
|
310
|
+
}
|
|
311
|
+
resolve(canvas.toDataURL('image/png'));
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
createNumberedIcon(number) {
|
|
316
|
+
const size = 35;
|
|
317
|
+
const scaleFactor = 15;
|
|
318
|
+
const scaledSize = size * scaleFactor;
|
|
319
|
+
const canvas = document.createElement('canvas');
|
|
320
|
+
canvas.width = scaledSize;
|
|
321
|
+
canvas.height = scaledSize;
|
|
322
|
+
canvas.style.width = canvas.style.height = '35px';
|
|
323
|
+
const ctx = canvas.getContext('2d');
|
|
324
|
+
ctx.scale(scaleFactor, scaleFactor);
|
|
325
|
+
ctx.beginPath();
|
|
326
|
+
ctx.arc(size / 2, size / 2, size / 2 - 2, 0, 2 * Math.PI, false);
|
|
327
|
+
ctx.fillStyle = '#0078d4';
|
|
328
|
+
ctx.fill();
|
|
329
|
+
ctx.lineWidth = 2;
|
|
330
|
+
ctx.strokeStyle = '#ffffff';
|
|
331
|
+
ctx.stroke();
|
|
332
|
+
ctx.fillStyle = '#ffffff';
|
|
333
|
+
ctx.font = 'bold 16px sans-serif';
|
|
334
|
+
ctx.textAlign = 'center';
|
|
335
|
+
ctx.textBaseline = 'middle';
|
|
336
|
+
ctx.fillText(number.toString(), size / 2, size / 2);
|
|
337
|
+
return L.icon({
|
|
338
|
+
iconUrl: canvas.toDataURL(),
|
|
339
|
+
iconSize: [size, size],
|
|
340
|
+
iconAnchor: [size / 2, size / 2],
|
|
341
|
+
popupAnchor: [0, -size / 2],
|
|
342
|
+
});
|
|
343
|
+
}
|
|
257
344
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LeafletMap, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
258
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: LeafletMap, selector: "leaflet-map", usesInheritance: true, ngImport: i0, template: ` <div id="leaflet"></div>`, isInline: true, styles: ["#leaflet{height:720px}\n"] }); }
|
|
345
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: LeafletMap, selector: "leaflet-map", usesInheritance: true, ngImport: i0, template: ` <div id="leaflet"></div>`, isInline: true, styles: ["#leaflet{height:720px}::ng-deep .marker-count{background-color:#0078d4;color:#fff;font-weight:700;border-radius:50%;width:30px;height:30px;line-height:30px;text-align:center;border:2px solid white;box-shadow:0 0 4px #0006}::ng-deep .custom-cluster-icon{pointer-events:auto!important}\n"] }); }
|
|
259
346
|
}
|
|
260
347
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LeafletMap, decorators: [{
|
|
261
348
|
type: Component,
|
|
262
|
-
args: [{ selector: 'leaflet-map', template: ` <div id="leaflet"></div>`, styles: ["#leaflet{height:720px}\n"] }]
|
|
349
|
+
args: [{ selector: 'leaflet-map', template: ` <div id="leaflet"></div>`, styles: ["#leaflet{height:720px}::ng-deep .marker-count{background-color:#0078d4;color:#fff;font-weight:700;border-radius:50%;width:30px;height:30px;line-height:30px;text-align:center;border:2px solid white;box-shadow:0 0 4px #0006}::ng-deep .custom-cluster-icon{pointer-events:auto!important}\n"] }]
|
|
263
350
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }] });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvaW1wbC9sZWFmbGV0LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsY0FBYyxFQUFrQixNQUFNLFFBQVEsQ0FBQzs7QUFVcEUsU0FBUyxvQkFBb0IsQ0FBQyxJQUFnQixFQUFFLE1BQTRCO0lBQzFFLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDeEIsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDM0UsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsS0FBSyxjQUFjLENBQUMsT0FBTztZQUN6QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDbEIsQ0FBQyxDQUFDLE9BQU8sQ0FDUCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDeEQsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFB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dGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdE1hcCwgUmVjb3JkV2l0aElkIH0gZnJvbSAnLi4vYWJzdHJhY3QtbWFwJztcclxuaW1wb3J0IHsgR2VvTWFwSXRlbSwgR2VvTWFwSXRlbUtpbmQsIEdlb01hcFZpZXdwb3J0IH0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgQ29vcmQsIE1hcEl0ZW1Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc21hcnQtbWFwLnR5cGVzJztcclxuXHJcbmRlY2xhcmUgdmFyIEw6IGFueTtcclxuXHJcbmludGVyZmFjZSBMZWFmbGV0TWFwT3B0aW9ucyB7XHJcbiAgY2VudHJlOiBBcnJheTxudW1iZXI+O1xyXG4gIHpvb206IG51bWJlcjtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTGVhZmxldE1hcEl0ZW0oaXRlbTogR2VvTWFwSXRlbSwgY29uZmlnOiBNYXBJdGVtQ29uZmlndXJhdGlvbik6IGFueSB7XHJcbiAgc3dpdGNoIChpdGVtLmtpbmQpIHtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTUFSS0VSOlxyXG4gICAgICByZXR1cm4gTC5tYXJrZXIoTC5sYXRMbmcoaXRlbS5wb3NpdGlvbiEubGF0aXR1ZGUsIGl0ZW0ucG9zaXRpb24hLmxvbmdpdHVkZSksIHtcclxuICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcclxuICAgICAgICBkcmFnZ2FibGU6IGNvbmZpZy5kcmFnZ2FibGUsXHJcbiAgICAgIH0pO1xyXG4gICAgY2FzZSBHZW9NYXBJdGVtS2luZC5QT0xZR09OOlxyXG4gICAgICBjb25zdCBwb2x5Z29uUm91dGVQb2ludHMgPSBpdGVtLnJvdXRlIS5wb2ludHM7XHJcbiAgICAgIHJldHVybiBMLmxheWVyR3JvdXAoW1xyXG4gICAgICAgIEwucG9seWdvbihcclxuICAgICAgICAgIHBvbHlnb25Sb3V0ZVBvaW50cy5tYXAoKHApID0+IFtwLmxhdGl0dWRlLCBwLmxvbmdpdHVkZV0pLFxyXG4gICAgICAgICAgeyB0aXRsZTogaXRlbS5sYWJlbCwgY29sb3I6IGNvbmZpZy5jb2xvciB9XHJcbiAgICAgICAgKSxcclxuICAgICAgICAuLi5wb2x5Z29uUm91dGVQb2ludHMubWFwKChwKSA9PlxyXG4gICAgICAgICAgTC5tYXJrZXIoW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSwge1xyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgbWFya2VyQ29sb3I6IGNvbmZpZy5jb2xvcixcclxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLFxyXG4gICAgICBdKTtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTElORTpcclxuICAgICAgY29uc3QgbGluZVJvdXRlUG9pbnRzID0gaXRlbS5yb3V0ZSEucG9pbnRzO1xyXG5cclxuICAgICAgcmV0dXJuIEwubGF5ZXJHcm91cChbXHJcbiAgICAgICAgTC5wb2x5bGluZShcclxuICAgICAgICAgIGxpbmVSb3V0ZVBvaW50cy5tYXAoKHApID0+IFtwLmxhdGl0dWRlLCBwLmxvbmdpdHVkZV0pLFxyXG4gICAgICAgICAgeyB0aXRsZTogaXRlbS5sYWJlbCwgY29sb3I6IGNvbmZpZy5jb2xvciB9XHJcbiAgICAgICAgKSxcclxuICAgICAgICAuLi5saW5lUm91dGVQb2ludHMubWFwKChwKSA9PlxyXG4gICAgICAgICAgTC5tYXJrZXIoW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSwge1xyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgY29sb3I6IGNvbmZpZy5jb2xvcixcclxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLFxyXG4gICAgICBdKTtcclxuICB9XHJcbiAgdGhyb3cgbmV3IEVycm9yKCdGb28hJyk7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGVhZmxldC1tYXAnLFxyXG4gIHRlbXBsYXRlOiBgIDxkaXYgaWQ9XCJsZWFmbGV0XCI+PC9kaXY+YCxcclxuICBzdHlsZXM6IGBcclxuICAgICAgI2xlYWZsZXQge1xyXG4gICAgICAgICAgaGVpZ2h0OiA3MjBweDtcclxuICAgICAgfWAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMZWFmbGV0TWFwIGV4dGVuZHMgQWJzdHJhY3RNYXAgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuICBvcmlnaW5hbExhdExuZzogYW55O1xyXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHpvbmU6IE5nWm9uZSkge1xyXG4gICAgc3VwZXIoZWwsIGNkLCB6b25lLCBjcmVhdGVMZWFmbGV0TWFwSXRlbSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubWFwICYmIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRQYXJlbnQpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVMZWFmbGV0TWFwT3B0aW9ucygpO1xyXG4gICAgdGhpcy5tYXAgPSBMLm1hcCgnbGVhZmxldCcpLnNldFZpZXcob3B0aW9ucy5jZW50cmUsIG9wdGlvbnMuem9vbSk7XHJcbiAgICBMLnRpbGVMYXllcignaHR0cHM6Ly90aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsIHtcclxuICAgICAgbWF4Wm9vbTogMTksXHJcbiAgICAgIGF0dHJpYnV0aW9uOiAnJmNvcHk7IDxhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+JyxcclxuICAgIH0pLmFkZFRvKHRoaXMubWFwKTtcclxuXHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXMoKTtcclxuICAgIGNvbnN0IHRvQWRkOiBBcnJheTxSZWNvcmRXaXRoSWQ+ID0gaXRlbXMubWFwKChpdCkgPT4gKHtcclxuICAgICAgaWQ6IGl0LmlkISxcclxuICAgICAgcmVjb3JkOiBjcmVhdGVMZWFmbGV0TWFwSXRlbShpdCwgeyBjb2xvcjogJyMzMzg4ZmYnLCBkcmFnZ2FibGU6IGZhbHNlIH0pLFxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5oYW5kbGVJdGVtQ2hhbmdlcyhbXSwgdG9BZGQpO1xyXG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsKCk7XHJcbiAgICBpZiAobW9kZWwudmlld1N0YXRlPy5maXRUb0luaXRpYWxJdGVtcykge1xyXG4gICAgICBjb25zdCBkYXRhc2V0Qm91bmRzID0gdGhpcy5maW5kRGF0YXNldEJvdW5kcygpO1xyXG4gICAgICBpZiAoZGF0YXNldEJvdW5kcykge1xyXG4gICAgICAgIGNvbnN0IHsgYSwgYiB9ID0gZGF0YXNldEJvdW5kcztcclxuICAgICAgICBjb25zdCBwbnRBID0gTC5sYXRMbmcoYS54LCBhLnkpO1xyXG4gICAgICAgIGNvbnN0IHBudEIgPSBMLmxhdExuZyhiLngsIGIueSk7XHJcbiAgICAgICAgY29uc3QgYm91bmRzID0gTC5sYXRMbmdCb3VuZHMocG50QSwgcG50Qik7XHJcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1hcC5maXRCb3VuZHMoYm91bmRzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5tYXAub24oJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcG9zID0gZXZlbnQubGF0bG5nO1xyXG4gICAgICAgIHRoaXMub25NYXBDbGljay5lbWl0KHtcclxuICAgICAgICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgICAgIGxhdGl0dWRlOiBwb3MubGF0IGFzIG51bWJlcixcclxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBwb3MubG5nIGFzIG51bWJlcixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1hcC5vbignbW92ZWVuZCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy5nZXRWaWV3cG9ydCgpO1xyXG4gICAgICAgIHRoaXMub25NYXBEcmFnRW5kLmVtaXQoe1xyXG4gICAgICAgICAgdmlld3BvcnQsXHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1hcC5vbignem9vbWVuZCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy5nZXRWaWV3cG9ydCgpO1xyXG4gICAgICAgIHRoaXMub25NYXBEcmFnRW5kLmVtaXQoe1xyXG4gICAgICAgICAgdmlld3BvcnQsXHJcbiAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFZpZXdwb3J0KCk6IEdlb01hcFZpZXdwb3J0IHtcclxuICAgIGlmICghdGhpcy5tYXApIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXAgaXMgbm90IHlldCBpbml0aWFsaXNlZCEnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjZW50ZXIgPSB0aGlzLm1hcC5nZXRDZW50ZXIoKTtcclxuICAgIGNvbnN0IHpvb21MZXZlbCA9IHRoaXMubWFwLmdldFpvb20oKSBhcyBudW1iZXI7XHJcbiAgICBjb25zdCBsZWFmbGV0Qm91bmRzID0gdGhpcy5tYXAuZ2V0Qm91bmRzKCk7XHJcbiAgICBjb25zdCB7IGxhdDogc3dMYXQsIGxuZzogc3dMbmcgfSA9IGxlYWZsZXRCb3VuZHMuZ2V0U291dGhXZXN0KCk7XHJcbiAgICBjb25zdCB7IGxhdDogbmVMYXQsIGxuZzogbmVMbmcgfSA9IGxlYWZsZXRCb3VuZHMuZ2V0Tm9ydGhFYXN0KCk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2VudGVyOiB7XHJcbiAgICAgICAgbGF0aXR1ZGU6IGNlbnRlci5sYXQgYXMgbnVtYmVyLFxyXG4gICAgICAgIGxvbmdpdHVkZTogY2VudGVyLmxuZyBhcyBudW1iZXIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHpvb21MZXZlbCxcclxuICAgICAgYm91bmRzOiBbXHJcbiAgICAgICAgeyBsYXRpdHVkZTogc3dMYXQsIGxvbmdpdHVkZTogc3dMbmcgfSxcclxuICAgICAgICB7IGxhdGl0dWRlOiBuZUxhdCwgbG9uZ2l0dWRlOiBuZUxuZyB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTGVhZmxldE1hcE9wdGlvbnMoKTogTGVhZmxldE1hcE9wdGlvbnMge1xyXG4gICAgY29uc3Qgdmlld3BvcnQ6IEdlb01hcFZpZXdwb3J0ID0gdGhpcy5tb2RlbCgpLnZpZXdwb3J0ITtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNlbnRyZTogW3ZpZXdwb3J0LmNlbnRlciEubGF0aXR1ZGUsIHZpZXdwb3J0LmNlbnRlciEubG9uZ2l0dWRlXSxcclxuICAgICAgem9vbTogdmlld3BvcnQuem9vbUxldmVsISxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBoYW5kbGVJdGVtQ2hhbmdlcyh0b1JlbW92ZTogQXJyYXk8UmVjb3JkV2l0aElkPiwgdG9BZGQ6IEFycmF5PFJlY29yZFdpdGhJZD4pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5tYXApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRvUmVtb3ZlLmZvckVhY2goKGl0KSA9PiB7XHJcbiAgICAgIGl0LnJlY29yZC5yZW1vdmUoKTtcclxuICAgICAgdGhpcy5vdmVybGF5cy5kZWxldGUoaXQuaWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdG9BZGQuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgbGV0IHJlY29yZCA9IGl0LnJlY29yZDtcclxuICAgICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEwuTGF5ZXJHcm91cCkge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMocmVjb3JkLl9sYXllcnMpLmZvckVhY2goKGF0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGF0Lm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25PdmVybGF5Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBpdGVtSWQ6IGl0LmlkLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xyXG4gICAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgICAgICAgb3ZlcmxheTogaXQucmVjb3JkLFxyXG4gICAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpdC5yZWNvcmQub24oJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5OiBpdC5yZWNvcmQsXHJcbiAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaXQucmVjb3JkLmFkZFRvKHRoaXMubWFwKTtcclxuICAgICAgdGhpcy5vdmVybGF5cy5zZXQoaXQuaWQsIGl0LnJlY29yZCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgaGFuZGxlRWRpdGluZ0l0ZW1DaGFuZ2VzKFxyXG4gICAgdG9SZW1vdmU6IEFycmF5PFJlY29yZFdpdGhJZD4sXHJcbiAgICB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPlxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdG9SZW1vdmUuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgaXQucmVjb3JkLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLmVkaXRpbmdPdmVybGF5cy5kZWxldGUoaXQuaWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdG9BZGQuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgbGV0IHJlY29yZCA9IGl0LnJlY29yZDtcclxuICAgICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEwuTGF5ZXJHcm91cCkge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMocmVjb3JkLl9sYXllcnMpLmZvckVhY2goKGF0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGF0Lm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25FZGl0aW5nT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgaXRlbUlkOiBpdC5pZCxcclxuICAgICAgICAgICAgICAgIGNvb3JkOiB7XHJcbiAgICAgICAgICAgICAgICAgIHg6IGV2ZW50LmxhdGxuZy5sbmcsXHJcbiAgICAgICAgICAgICAgICAgIHk6IGV2ZW50LmxhdGxuZy5sYXQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYXQub24oJ2RyYWdzdGFydCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxMYXRMbmcgPSBldmVudC50YXJnZXQuZ2V0TGF0TG5nKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGF0Lm9uKCdkcmFnZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkVkaXRpbmdPdmVybGF5RHJhZy5lbWl0KHtcclxuICAgICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgIHg6IHRoaXMub3JpZ2luYWxMYXRMbmcubG5nLFxyXG4gICAgICAgICAgICAgICAgICB5OiB0aGlzLm9yaWdpbmFsTGF0TG5nLmxhdCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkcmFnVG86IHtcclxuICAgICAgICAgICAgICAgICAgeDogZXZlbnQudGFyZ2V0LmdldExhdExuZygpLmxuZyxcclxuICAgICAgICAgICAgICAgICAgeTogZXZlbnQudGFyZ2V0LmdldExhdExuZygpLmxhdCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsTGF0TG5nID0gbnVsbDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0LnJlY29yZC5vbignY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25FZGl0aW5nT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgY29vcmQ6IHtcclxuICAgICAgICAgICAgICAgIHg6IGV2ZW50LmxhdGxuZy5sbmcsXHJcbiAgICAgICAgICAgICAgICB5OiBldmVudC5sYXRsbmcubGF0LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGl0LnJlY29yZC5hZGRUbyh0aGlzLm1hcCk7XHJcbiAgICAgIHRoaXMuZWRpdGluZ092ZXJsYXlzLnNldChpdC5pZCwgaXQucmVjb3JkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRGF0YXNldEJvdW5kcygpOiB7IGE6IENvb3JkOyBiOiBDb29yZCB9IHwgbnVsbCB7XHJcbiAgICBjb25zdCBpdGVtczogQXJyYXk8Q29vcmQ+ID0gdGhpcy5pdGVtcygpXHJcbiAgICAgIC5mbGF0TWFwKChpdCkgPT4gKGl0LnBvc2l0aW9uID8gW2l0LnBvc2l0aW9uXSA6IGl0LnJvdXRlID8gaXQucm91dGUucG9pbnRzIDogW10pKVxyXG4gICAgICAubWFwKChpdCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IHg6IGl0LmxhdGl0dWRlLCB5OiBpdC5sb25naXR1ZGUgfTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc291dGh3ZXN0OiBDb29yZCA9IHsgeDogaXRlbXNbMF0ueCwgeTogaXRlbXNbMF0ueSB9O1xyXG4gICAgbGV0IG5vcnRoZWFzdDogQ29vcmQgPSB7IHg6IGl0ZW1zWzBdLngsIHk6IGl0ZW1zWzBdLnkgfTtcclxuXHJcbiAgICBpdGVtcy5mb3JFYWNoKChpdCkgPT4ge1xyXG4gICAgICBpZiAoaXQueCA8IHNvdXRod2VzdC54KSBzb3V0aHdlc3QueCA9IGl0Lng7XHJcbiAgICAgIGlmIChpdC55IDwgc291dGh3ZXN0LnkpIHNvdXRod2VzdC55ID0gaXQueTtcclxuXHJcbiAgICAgIGlmIChpdC54ID4gbm9ydGhlYXN0LngpIG5vcnRoZWFzdC54ID0gaXQueDtcclxuICAgICAgaWYgKGl0LnkgPiBub3J0aGVhc3QueSkgbm9ydGhlYXN0LnkgPSBpdC55O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHsgYTogc291dGh3ZXN0LCBiOiBub3J0aGVhc3QgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvaW1wbC9sZWFmbGV0LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsY0FBYyxFQUFrQixNQUFNLFFBQVEsQ0FBQzs7QUFXcEUsU0FBUyxvQkFBb0IsQ0FBQyxJQUFnQixFQUFFLE1BQTRCO0lBQzFFLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDeEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2pGLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzthQUM1QixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3pCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixTQUFTLEVBQUUsTUFBTTthQUNsQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkYsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxjQUFjLENBQUMsT0FBTztZQUN6QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDO1lBQzlDLE9BQU8sQ0FB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QUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakUsR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDMUIsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1gsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsR0FBRyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDNUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWIsR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDMUIsR0FBRyxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztRQUNsQyxHQUFHLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUN6QixHQUFHLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUM1QixHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVwRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDWixPQUFPLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUMzQixRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RCLFVBQVUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNoQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBalZVLFVBQVU7bUdBQVYsVUFBVSwwRUFyQlgsMkJBQTJCOzs0RkFxQjFCLFVBQVU7a0JBdkJ0QixTQUFTOytCQUNFLGFBQWEsWUFDYiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RNYXAsIFJlY29yZFdpdGhJZCB9IGZyb20gJy4uL2Fic3RyYWN0LW1hcCc7XHJcbmltcG9ydCB7IEdlb01hcEl0ZW0sIEdlb01hcEl0ZW1LaW5kLCBHZW9NYXBWaWV3cG9ydCB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IENvb3JkLCBNYXBJdGVtQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NtYXJ0LW1hcC50eXBlcyc7XHJcblxyXG5kZWNsYXJlIHZhciBMOiBhbnk7XHJcbmRlY2xhcmUgY29uc3QgbGVhZmxldEltYWdlOiBhbnk7XHJcblxyXG5pbnRlcmZhY2UgTGVhZmxldE1hcE9wdGlvbnMge1xyXG4gIGNlbnRyZTogQXJyYXk8bnVtYmVyPjtcclxuICB6b29tOiBudW1iZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUxlYWZsZXRNYXBJdGVtKGl0ZW06IEdlb01hcEl0ZW0sIGNvbmZpZzogTWFwSXRlbUNvbmZpZ3VyYXRpb24pOiBhbnkge1xyXG4gIHN3aXRjaCAoaXRlbS5raW5kKSB7XHJcbiAgICBjYXNlIEdlb01hcEl0ZW1LaW5kLk1BUktFUjpcclxuICAgICAgbGV0IG1hcmtlciA9IEwubWFya2VyKEwubGF0TG5nKGl0ZW0ucG9zaXRpb24hLmxhdGl0dWRlLCBpdGVtLnBvc2l0aW9uIS5sb25naXR1ZGUpLCB7XHJcbiAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICB9KS5iaW5kVG9vbHRpcChpdGVtLmxhYmVsLCB7XHJcbiAgICAgICAgcGVybWFuZW50OiBmYWxzZSxcclxuICAgICAgICBkaXJlY3Rpb246ICdhdXRvJyxcclxuICAgICAgfSk7XHJcbiAgICAgIG1hcmtlci5vcmlnaW5hbExhdExuZyA9IEwubGF0TG5nKGl0ZW0ucG9zaXRpb24hLmxhdGl0dWRlLCBpdGVtLnBvc2l0aW9uIS5sb25naXR1ZGUpOyAvL1xyXG4gICAgICByZXR1cm4gbWFya2VyO1xyXG4gICAgY2FzZSBHZW9NYXBJdGVtS2luZC5QT0xZR09OOlxyXG4gICAgICBjb25zdCBwb2x5Z29uUm91dGVQb2ludHMgPSBpdGVtLnJvdXRlIS5wb2ludHM7XHJcbiAgICAgIHJldHVybiBMLmxheWVyR3JvdXAoW1xyXG4gICAgICAgIEwucG9seWdvbihcclxuICAgICAgICAgIHBvbHlnb25Sb3V0ZVBvaW50cy5tYXAoKHApID0+IFtwLmxhdGl0dWRlLCBwLmxvbmdpdHVkZV0pLFxyXG4gICAgICAgICAgeyB0aXRsZTogaXRlbS5sYWJlbCwgY29sb3I6IGNvbmZpZy5jb2xvciB9XHJcbiAgICAgICAgKSxcclxuICAgICAgICAuLi5wb2x5Z29uUm91dGVQb2ludHMubWFwKChwKSA9PlxyXG4gICAgICAgICAgTC5tYXJrZXIoW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSwge1xyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgbWFya2VyQ29sb3I6IGNvbmZpZy5jb2xvcixcclxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLFxyXG4gICAgICBdKTtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTElORTpcclxuICAgICAgY29uc3QgbGluZVJvdXRlUG9pbnRzID0gaXRlbS5yb3V0ZSEucG9pbnRzO1xyXG5cclxuICAgICAgcmV0dXJuIEwubGF5ZXJHcm91cChbXHJcbiAgICAgICAgTC5wb2x5bGluZShcclxuICAgICAgICAgIGxpbmVSb3V0ZVBvaW50cy5tYXAoKHApID0+IFtwLmxhdGl0dWRlLCBwLmxvbmdpdHVkZV0pLFxyXG4gICAgICAgICAgeyB0aXRsZTogaXRlbS5sYWJlbCwgY29sb3I6IGNvbmZpZy5jb2xvciB9XHJcbiAgICAgICAgKSxcclxuICAgICAgICAuLi5saW5lUm91dGVQb2ludHMubWFwKChwKSA9PlxyXG4gICAgICAgICAgTC5tYXJrZXIoW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSwge1xyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgY29sb3I6IGNvbmZpZy5jb2xvcixcclxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLFxyXG4gICAgICBdKTtcclxuICB9XHJcbiAgdGhyb3cgbmV3IEVycm9yKCdGb28hJyk7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGVhZmxldC1tYXAnLFxyXG4gIHRlbXBsYXRlOiBgIDxkaXYgaWQ9XCJsZWFmbGV0XCI+PC9kaXY+YCxcclxuICBzdHlsZXM6IGBcclxuICAgICAgI2xlYWZsZXQge1xyXG4gICAgICAgICAgaGVpZ2h0OiA3MjBweDtcclxuICAgICAgfVxyXG4gICAgIDo6bmctZGVlcCAubWFya2VyLWNvdW50IHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7XHJcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgwLDAsMCwwLjQpO1xyXG4gICAgfVxyXG4gICAgIDo6bmctZGVlcCAuY3VzdG9tLWNsdXN0ZXItaWNvbiB7XHJcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfWAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMZWFmbGV0TWFwIGV4dGVuZHMgQWJzdHJhY3RNYXAgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuICBvcmlnaW5hbExhdExuZzogYW55O1xyXG4gIG9mZnNldERpc3RhbmNlID0gMC4wMDAwNDtcclxuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZiwgY2Q6IENoYW5nZURldGVjdG9yUmVmLCB6b25lOiBOZ1pvbmUpIHtcclxuICAgIHN1cGVyKGVsLCBjZCwgem9uZSwgY3JlYXRlTGVhZmxldE1hcEl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlTGVhZmxldE1hcE9wdGlvbnMoKTtcclxuICAgIHRoaXMubWFwID0gTC5tYXAoJ2xlYWZsZXQnLCB7IHByZWZlckNhbnZhczogdHJ1ZSB9KS5zZXRWaWV3KG9wdGlvbnMuY2VudHJlLCBvcHRpb25zLnpvb20pO1xyXG4gICAgTC50aWxlTGF5ZXIoJ2h0dHBzOi8vdGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLCB7XHJcbiAgICAgIG1heFpvb206IDE5LFxyXG4gICAgICBhdHRyaWJ1dGlvbjogJyZjb3B5OyA8YSBocmVmPVwiaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPicsXHJcbiAgICB9KS5hZGRUbyh0aGlzLm1hcCk7XHJcblxyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zKCk7XHJcbiAgICBjb25zdCB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPiA9IGl0ZW1zLm1hcCgoaXQpID0+ICh7XHJcbiAgICAgIGlkOiBpdC5pZCEsXHJcbiAgICAgIHJlY29yZDogY3JlYXRlTGVhZmxldE1hcEl0ZW0oaXQsIHsgY29sb3I6ICcjMzM4OGZmJywgZHJhZ2dhYmxlOiBmYWxzZSB9KSxcclxuICAgIH0pKTtcclxuICAgIHRoaXMuaGFuZGxlSXRlbUNoYW5nZXMoW10sIHRvQWRkKTtcclxuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbCgpO1xyXG4gICAgaWYgKG1vZGVsLnZpZXdTdGF0ZT8uZml0VG9Jbml0aWFsSXRlbXMpIHtcclxuICAgICAgY29uc3QgZGF0YXNldEJvdW5kcyA9IHRoaXMuZmluZERhdGFzZXRCb3VuZHMoKTtcclxuICAgICAgaWYgKGRhdGFzZXRCb3VuZHMpIHtcclxuICAgICAgICBjb25zdCB7IGEsIGIgfSA9IGRhdGFzZXRCb3VuZHM7XHJcbiAgICAgICAgY29uc3QgcG50QSA9IEwubGF0TG5nKGEueCwgYS55KTtcclxuICAgICAgICBjb25zdCBwbnRCID0gTC5sYXRMbmcoYi54LCBiLnkpO1xyXG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IEwubGF0TG5nQm91bmRzKHBudEEsIHBudEIpO1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tYXAuZml0Qm91bmRzKGJvdW5kcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMubWFwLm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBvcyA9IGV2ZW50LmxhdGxuZztcclxuICAgICAgICB0aGlzLm9uTWFwQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBjb29yZGluYXRlczoge1xyXG4gICAgICAgICAgICBsYXRpdHVkZTogcG9zLmxhdCBhcyBudW1iZXIsXHJcbiAgICAgICAgICAgIGxvbmdpdHVkZTogcG9zLmxuZyBhcyBudW1iZXIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAub24oJ21vdmVlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuZ2V0Vmlld3BvcnQoKTtcclxuICAgICAgICB0aGlzLm9uTWFwRHJhZ0VuZC5lbWl0KHtcclxuICAgICAgICAgIHZpZXdwb3J0LFxyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAub24oJ3pvb21lbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuZ2V0Vmlld3BvcnQoKTtcclxuICAgICAgICB0aGlzLm9uTWFwRHJhZ0VuZC5lbWl0KHtcclxuICAgICAgICAgIHZpZXdwb3J0LFxyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRWaWV3cG9ydCgpOiBHZW9NYXBWaWV3cG9ydCB7XHJcbiAgICBpZiAoIXRoaXMubWFwKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWFwIGlzIG5vdCB5ZXQgaW5pdGlhbGlzZWQhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2VudGVyID0gdGhpcy5tYXAuZ2V0Q2VudGVyKCk7XHJcbiAgICBjb25zdCB6b29tTGV2ZWwgPSB0aGlzLm1hcC5nZXRab29tKCkgYXMgbnVtYmVyO1xyXG4gICAgY29uc3QgbGVhZmxldEJvdW5kcyA9IHRoaXMubWFwLmdldEJvdW5kcygpO1xyXG4gICAgY29uc3QgeyBsYXQ6IHN3TGF0LCBsbmc6IHN3TG5nIH0gPSBsZWFmbGV0Qm91bmRzLmdldFNvdXRoV2VzdCgpO1xyXG4gICAgY29uc3QgeyBsYXQ6IG5lTGF0LCBsbmc6IG5lTG5nIH0gPSBsZWFmbGV0Qm91bmRzLmdldE5vcnRoRWFzdCgpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNlbnRlcjoge1xyXG4gICAgICAgIGxhdGl0dWRlOiBjZW50ZXIubGF0IGFzIG51bWJlcixcclxuICAgICAgICBsb25naXR1ZGU6IGNlbnRlci5sbmcgYXMgbnVtYmVyLFxyXG4gICAgICB9LFxyXG4gICAgICB6b29tTGV2ZWwsXHJcbiAgICAgIGJvdW5kczogW1xyXG4gICAgICAgIHsgbGF0aXR1ZGU6IHN3TGF0LCBsb25naXR1ZGU6IHN3TG5nIH0sXHJcbiAgICAgICAgeyBsYXRpdHVkZTogbmVMYXQsIGxvbmdpdHVkZTogbmVMbmcgfSxcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxlYWZsZXRNYXBPcHRpb25zKCk6IExlYWZsZXRNYXBPcHRpb25zIHtcclxuICAgIGNvbnN0IHZpZXdwb3J0OiBHZW9NYXBWaWV3cG9ydCA9IHRoaXMubW9kZWwoKS52aWV3cG9ydCE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjZW50cmU6IFt2aWV3cG9ydC5jZW50ZXIhLmxhdGl0dWRlLCB2aWV3cG9ydC5jZW50ZXIhLmxvbmdpdHVkZV0sXHJcbiAgICAgIHpvb206IHZpZXdwb3J0Lnpvb21MZXZlbCEsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaGFuZGxlSXRlbUNoYW5nZXModG9SZW1vdmU6IEFycmF5PFJlY29yZFdpdGhJZD4sIHRvQWRkOiBBcnJheTxSZWNvcmRXaXRoSWQ+KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubWFwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IG1hcmtlckdyb3VwczogTWFwPHN0cmluZywgYW55W10+ID0gbmV3IE1hcCgpO1xyXG5cclxuICAgIHRvQWRkLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKGl0ZW0ucmVjb3JkIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcclxuICAgICAgICBjb25zdCBrZXkgPVxyXG4gICAgICAgICAgaXRlbS5yZWNvcmQuZ2V0TGF0TG5nKCkubGF0LnRvRml4ZWQoNikgKyAnLCcgKyBpdGVtLnJlY29yZC5nZXRMYXRMbmcoKS5sbmcudG9GaXhlZCg2KTtcclxuICAgICAgICBpZiAoIW1hcmtlckdyb3Vwcy5nZXQoa2V5KSkge1xyXG4gICAgICAgICAgbWFya2VyR3JvdXBzLnNldChrZXksIFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFya2VyR3JvdXBzLmdldChrZXkpIS5wdXNoKGl0ZW0ucmVjb3JkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdG9SZW1vdmUuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgaXQucmVjb3JkLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLm92ZXJsYXlzLmRlbGV0ZShpdC5pZCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0b0FkZC5mb3JFYWNoKChpdCwgaW5kZXgpID0+IHtcclxuICAgICAgbGV0IHJlY29yZCA9IGl0LnJlY29yZDtcclxuICAgICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEwuTGF5ZXJHcm91cCkge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMocmVjb3JkLl9sYXllcnMpLmZvckVhY2goKGF0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGF0Lm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25PdmVybGF5Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBpdGVtSWQ6IGl0LmlkLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xyXG4gICAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgICAgICAgb3ZlcmxheTogaXQucmVjb3JkLFxyXG4gICAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpdC5yZWNvcmQub24oJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5OiBpdC5yZWNvcmQsXHJcbiAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCBncm91cCA9IG1hcmtlckdyb3Vwcy5nZXQoXHJcbiAgICAgICAgICBpdC5yZWNvcmQuZ2V0TGF0TG5nKCkubGF0LnRvRml4ZWQoNikgKyAnLCcgKyBpdC5yZWNvcmQuZ2V0TGF0TG5nKCkubG5nLnRvRml4ZWQoNilcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChncm91cCAmJiBncm91cC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICBjb25zdCBpY29uID0gdGhpcy5jcmVhdGVOdW1iZXJlZEljb24oZ3JvdXAubGVuZ3RoKTtcclxuICAgICAgICAgIGNvbnN0IGNsdXN0ZXJNYXJrZXIgPSBMLm1hcmtlcihncm91cFswXS5vcmlnaW5hbExhdExuZywgeyBpY29uIH0pLmFkZFRvKHRoaXMubWFwKTtcclxuICAgICAgICAgIGl0LnJlY29yZC5vbignbW91c2VvdmVyJywgKF9ldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRvQWRkLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQgaW5zdGFuY2VvZiBMLk1hcmtlciAmJlxyXG4gICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubGF0ID09IGl0LnJlY29yZC5vcmlnaW5hbExhdExuZy5sYXQgJiZcclxuICAgICAgICAgICAgICAgIGl0ZW0ucmVjb3JkLm9yaWdpbmFsTGF0TG5nLmxuZyA9PSBpdC5yZWNvcmQub3JpZ2luYWxMYXRMbmcubG5nXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBpdC5yZWNvcmQuc2V0WkluZGV4T2Zmc2V0KDEwMDApO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYW5nbGUgPSAoKDM2MCAvIHRvQWRkLmxlbmd0aCkgKiBpbmRleCAqIE1hdGguUEkpIC8gMTgwO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3TGF0ID1cclxuICAgICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubGF0ICsgdGhpcy5vZmZzZXREaXN0YW5jZSAqIE1hdGguY29zKGFuZ2xlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xuZyA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0ucmVjb3JkLm9yaWdpbmFsTGF0TG5nLmxuZyArIHRoaXMub2Zmc2V0RGlzdGFuY2UgKiBNYXRoLnNpbihhbmdsZSk7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnJlY29yZC5zZXRMYXRMbmcoW25ld0xhdCwgbmV3TG5nXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwLmhhc0xheWVyKGNsdXN0ZXJNYXJrZXIpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIoY2x1c3Rlck1hcmtlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaXQucmVjb3JkLm9uKCdtb3VzZW91dCcsIChfZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0b0FkZC5mb3JFYWNoKChpdGVtLCBfaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXRlbS5yZWNvcmQgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xyXG4gICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQuc2V0TGF0TG5nKGl0ZW0ucmVjb3JkLm9yaWdpbmFsTGF0TG5nKTtcclxuICAgICAgICAgICAgICAgIGl0LnJlY29yZC5zZXRaSW5kZXhPZmZzZXQoMCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLm1hcC5oYXNMYXllcihjbHVzdGVyTWFya2VyKSkge1xyXG4gICAgICAgICAgICAgIGNsdXN0ZXJNYXJrZXIuYWRkVG8odGhpcy5tYXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaXQucmVjb3JkLmFkZFRvKHRoaXMubWFwKTtcclxuICAgICAgdGhpcy5vdmVybGF5cy5zZXQoaXQuaWQsIGl0LnJlY29yZCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgaGFuZGxlRWRpdGluZ0l0ZW1DaGFuZ2VzKFxyXG4gICAgdG9SZW1vdmU6IEFycmF5PFJlY29yZFdpdGhJZD4sXHJcbiAgICB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPlxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdG9SZW1vdmUuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgaXQucmVjb3JkLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLmVkaXRpbmdPdmVybGF5cy5kZWxldGUoaXQuaWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdG9BZGQuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgbGV0IHJlY29yZCA9IGl0LnJlY29yZDtcclxuICAgICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEwuTGF5ZXJHcm91cCkge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMocmVjb3JkLl9sYXllcnMpLmZvckVhY2goKGF0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGF0Lm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25FZGl0aW5nT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgaXRlbUlkOiBpdC5pZCxcclxuICAgICAgICAgICAgICAgIGNvb3JkOiB7XHJcbiAgICAgICAgICAgICAgICAgIHg6IGV2ZW50LmxhdGxuZy5sbmcsXHJcbiAgICAgICAgICAgICAgICAgIHk6IGV2ZW50LmxhdGxuZy5sYXQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYXQub24oJ2RyYWdzdGFydCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxMYXRMbmcgPSBldmVudC50YXJnZXQuZ2V0TGF0TG5nKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGF0Lm9uKCdkcmFnZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkVkaXRpbmdPdmVybGF5RHJhZy5lbWl0KHtcclxuICAgICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgIHg6IHRoaXMub3JpZ2luYWxMYXRMbmcubG5nLFxyXG4gICAgICAgICAgICAgICAgICB5OiB0aGlzLm9yaWdpbmFsTGF0TG5nLmxhdCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkcmFnVG86IHtcclxuICAgICAgICAgICAgICAgICAgeDogZXZlbnQudGFyZ2V0LmdldExhdExuZygpLmxuZyxcclxuICAgICAgICAgICAgICAgICAgeTogZXZlbnQudGFyZ2V0LmdldExhdExuZygpLmxhdCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsTGF0TG5nID0gbnVsbDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0LnJlY29yZC5vbignY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25FZGl0aW5nT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgY29vcmQ6IHtcclxuICAgICAgICAgICAgICAgIHg6IGV2ZW50LmxhdGxuZy5sbmcsXHJcbiAgICAgICAgICAgICAgICB5OiBldmVudC5sYXRsbmcubGF0LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGl0LnJlY29yZC5hZGRUbyh0aGlzLm1hcCk7XHJcbiAgICAgIHRoaXMuZWRpdGluZ092ZXJsYXlzLnNldChpdC5pZCwgaXQucmVjb3JkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRGF0YXNldEJvdW5kcygpOiB7IGE6IENvb3JkOyBiOiBDb29yZCB9IHwgbnVsbCB7XHJcbiAgICBjb25zdCBpdGVtczogQXJyYXk8Q29vcmQ+ID0gdGhpcy5pdGVtcygpXHJcbiAgICAgIC5mbGF0TWFwKChpdCkgPT4gKGl0LnBvc2l0aW9uID8gW2l0LnBvc2l0aW9uXSA6IGl0LnJvdXRlID8gaXQucm91dGUucG9pbnRzIDogW10pKVxyXG4gICAgICAubWFwKChpdCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IHg6IGl0LmxhdGl0dWRlLCB5OiBpdC5sb25naXR1ZGUgfTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc291dGh3ZXN0OiBDb29yZCA9IHsgeDogaXRlbXNbMF0ueCwgeTogaXRlbXNbMF0ueSB9O1xyXG4gICAgbGV0IG5vcnRoZWFzdDogQ29vcmQgPSB7IHg6IGl0ZW1zWzBdLngsIHk6IGl0ZW1zWzBdLnkgfTtcclxuXHJcbiAgICBpdGVtcy5mb3JFYWNoKChpdCkgPT4ge1xyXG4gICAgICBpZiAoaXQueCA8IHNvdXRod2VzdC54KSBzb3V0aHdlc3QueCA9IGl0Lng7XHJcbiAgICAgIGlmIChpdC55IDwgc291dGh3ZXN0LnkpIHNvdXRod2VzdC55ID0gaXQueTtcclxuXHJcbiAgICAgIGlmIChpdC54ID4gbm9ydGhlYXN0LngpIG5vcnRoZWFzdC54ID0gaXQueDtcclxuICAgICAgaWYgKGl0LnkgPiBub3J0aGVhc3QueSkgbm9ydGhlYXN0LnkgPSBpdC55O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHsgYTogc291dGh3ZXN0LCBiOiBub3J0aGVhc3QgfTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHRvQmFzZTY0KCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBsZWFmbGV0SW1hZ2UodGhpcy5tYXAsIChlcnI6IGFueSwgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0xlYWZsZXQgaW1hZ2UgY2FwdHVyZSBlcnJvcicsIGVycik7XHJcbiAgICAgICAgICByZWplY3QoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzb2x2ZShjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVOdW1iZXJlZEljb24obnVtYmVyOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHNpemUgPSAzNTtcclxuICAgIGNvbnN0IHNjYWxlRmFjdG9yID0gMTU7XHJcbiAgICBjb25zdCBzY2FsZWRTaXplID0gc2l6ZSAqIHNjYWxlRmFjdG9yO1xyXG5cclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgY2FudmFzLndpZHRoID0gc2NhbGVkU2l6ZTtcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBzY2FsZWRTaXplO1xyXG4gICAgY2FudmFzLnN0eWxlLndpZHRoID0gY2FudmFzLnN0eWxlLmhlaWdodCA9ICczNXB4JztcclxuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcclxuICAgIGN0eC5zY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpO1xyXG5cclxuICAgIGN0eC5iZWdpblBhdGgoKTtcclxuICAgIGN0eC5hcmMoc2l6ZSAvIDIsIHNpemUgLyAyLCBzaXplIC8gMiAtIDIsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjdHguZmlsbFN0eWxlID0gJyMwMDc4ZDQnO1xyXG4gICAgY3R4LmZpbGwoKTtcclxuICAgIGN0eC5saW5lV2lkdGggPSAyO1xyXG4gICAgY3R4LnN0cm9rZVN0eWxlID0gJyNmZmZmZmYnO1xyXG4gICAgY3R4LnN0cm9rZSgpO1xyXG5cclxuICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7XHJcbiAgICBjdHguZm9udCA9ICdib2xkIDE2cHggc2Fucy1zZXJpZic7XHJcbiAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XHJcbiAgICBjdHgudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XHJcbiAgICBjdHguZmlsbFRleHQobnVtYmVyLnRvU3RyaW5nKCksIHNpemUgLyAyLCBzaXplIC8gMik7XHJcblxyXG4gICAgcmV0dXJuIEwuaWNvbih7XHJcbiAgICAgIGljb25Vcmw6IGNhbnZhcy50b0RhdGFVUkwoKSxcclxuICAgICAgaWNvblNpemU6IFtzaXplLCBzaXplXSxcclxuICAgICAgaWNvbkFuY2hvcjogW3NpemUgLyAyLCBzaXplIC8gMl0sXHJcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLXNpemUgLyAyXSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|