ato-water-lib 0.0.39 → 0.0.41

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@ import { Component, EventEmitter, HostListener, Input, Output, ViewChild, } from
2
2
  import * as go from 'gojs';
3
3
  import _ from 'lodash';
4
4
  import { AtoGoJSBase64 } from '../../constants/base64.const';
5
- import { ATO_ASSET_LAYERS, ATO_COMPONENTS_GROUP_DATA } from '../../constants/components-group-const';
5
+ import { ATO_ASSET_LAYERS, ATO_COMPONENTS_GROUP_DATA, } from '../../constants/components-group-const';
6
6
  import { AtoGojsEditorModel } from '../../models/gojs-editor.model';
7
7
  import { AtoAssetParamsViewComponent } from '../asset-params-view/asset-params-view.component';
8
8
  import { AtoFlowDiagramLibComponent } from '../flow-diagram-lib/flow-diagram-lib.component';
@@ -42,8 +42,7 @@ export class AssetFlowComponent {
42
42
  }, 1000);
43
43
  }
44
44
  checkResponsiveView() {
45
- if (this?.systemType ===
46
- AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER) {
45
+ if (this?.systemType === AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER) {
47
46
  this.isResponsiveView = window.innerWidth < 1024;
48
47
  }
49
48
  else {
@@ -55,7 +54,7 @@ export class AssetFlowComponent {
55
54
  this.flowData = AssetFlowComponent.getDefaultFlowData({
56
55
  systemType: this.systemType,
57
56
  isUseBase64: this.isUseBase64,
58
- assetLayer: this.assetLayer
57
+ assetLayer: this.assetLayer,
59
58
  });
60
59
  }
61
60
  _.forEach(this.flowData?.nodeDataArray, (node) => {
@@ -80,9 +79,14 @@ export class AssetFlowComponent {
80
79
  // Reponsive
81
80
  _.forEach(flowData?.nodeDataArray, (node) => {
82
81
  node = _.merge(node, node[`extendedData${window.innerWidth < 1024 ? 'Responsive' : ''}`]);
82
+ if (node?.assetLayers) {
83
+ node.visible =
84
+ node?.assetLayers ===
85
+ (defaultData?.assetLayer ?? ATO_ASSET_LAYERS.FLOW);
86
+ }
83
87
  });
84
88
  // assetLayer
85
- flowData.nodeDataArray = _.filter(flowData.nodeDataArray, x => !x?.assetLayers || (x?.assetLayers && x?.assetLayers === (defaultData?.assetLayer ?? ATO_ASSET_LAYERS.FLOW)));
89
+ // flowData.nodeDataArray = _.filter(flowData.nodeDataArray, x => !x?.assetLayers || (x?.assetLayers && x?.assetLayers === (defaultData?.assetLayer ?? ATO_ASSET_LAYERS.FLOW)))
86
90
  if (defaultData?.isUseBase64) {
87
91
  const itemImageTemp = flowData?.nodeDataArray?.find((x) => x?.type === 'Image Template');
88
92
  if (itemImageTemp) {
@@ -93,16 +97,22 @@ export class AssetFlowComponent {
93
97
  }
94
98
  setFlowData(data) {
95
99
  // const layer = data?.assetLayer ?? this?.assetLayer ?? ATO_ASSET_LAYERS.FLOW;
100
+ _.forEach(data.nodeDataArray, (node) => {
101
+ if (node?.assetLayers) {
102
+ node.visible = node?.assetLayers === this.assetLayer;
103
+ }
104
+ });
96
105
  this.flowData = {
97
106
  ...data,
98
- nodeDataArray: _.filter(data.nodeDataArray, x => !x?.assetLayers || (x?.assetLayers && x?.assetLayers === data?.assetLayer))
107
+ // nodeDataArray: _.filter(data.nodeDataArray, x => !x?.assetLayers || (x?.assetLayers && x?.assetLayers === data?.assetLayer))
99
108
  };
100
109
  this.updateDataTableAssetParams(data);
101
110
  }
102
111
  updateDataTableAssetParams(data) {
103
- this.dataTableAssetParams = _.forEach(this.flowData?.nodeDataArray?.filter((e) => e?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE && e?.assetLayers === data?.assetLayer), x => {
112
+ this.dataTableAssetParams = _.forEach(this.flowData?.nodeDataArray?.filter((e) => e?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE &&
113
+ e?.assetLayers === data?.assetLayer), (x) => {
104
114
  if (!data?.isRefresh) {
105
- x.isCollapsed = this.assetParamsViewTemp?.data?.find(y => y?.key === x?.key)?.isCollapsed;
115
+ x.isCollapsed = this.assetParamsViewTemp?.data?.find((y) => y?.key === x?.key)?.isCollapsed;
106
116
  }
107
117
  });
108
118
  }
@@ -138,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
138
148
  type: HostListener,
139
149
  args: ['window:resize', ['$event']]
140
150
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZmxvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG8td2F0ZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9hc3NldC1mbG93L2Fzc2V0LWZsb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvLXdhdGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYXNzZXQtZmxvdy9hc3NldC1mbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7QUFPNUYsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQWFZLDZCQUF3QixHQUNoQyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzdCLE1BQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUN4QixZQUFPLEdBQUc7WUFDUixNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVB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QUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGdvIGZyb20gJ2dvanMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEF0b0dvSlNCYXNlNjQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYmFzZTY0LmNvbnN0JztcbmltcG9ydCB7IEFUT19BU1NFVF9MQVlFUlMsIEFUT19DT01QT05FTlRTX0dST1VQX0RBVEEgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29tcG9uZW50cy1ncm91cC1jb25zdCc7XG5pbXBvcnQgeyBBdG9EZWZhdWx0Rmxvd0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXRvLWFzc2V0LWZsb3cubW9kZWwnO1xuaW1wb3J0IHsgQXRvR29KU0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ29qcy1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEF0b0dvanNFZGl0b3JNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nb2pzLWVkaXRvci5tb2RlbCc7XG5pbXBvcnQgeyBBdG9Bc3NldFBhcmFtc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9hc3NldC1wYXJhbXMtdmlldy9hc3NldC1wYXJhbXMtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXRvRmxvd0RpYWdyYW1MaWJDb21wb25lbnQgfSBmcm9tICcuLi9mbG93LWRpYWdyYW0tbGliL2Zsb3ctZGlhZ3JhbS1saWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXRvLWFzc2V0LWZsb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtZmxvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fzc2V0LWZsb3cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRGbG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYXNzZXRMYXllcjogQVRPX0FTU0VUX0xBWUVSUztcbiAgQFZpZXdDaGlsZChBdG9GbG93RGlhZ3JhbUxpYkNvbXBvbmVudClcbiAgZ2pGbG93RGlhZ3JhbVRlbXA6IEF0b0Zsb3dEaWFncmFtTGliQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKEF0b0Fzc2V0UGFyYW1zVmlld0NvbXBvbmVudClcbiAgYXNzZXRQYXJhbXNWaWV3VGVtcDogQXRvQXNzZXRQYXJhbXNWaWV3Q29tcG9uZW50O1xuICBASW5wdXQoKSBzZWxlY3RlZENvbXBvbmVudDogYW55O1xuICBASW5wdXQoKSBzeXN0ZW1UeXBlOiBBdG9Hb2pzRWRpdG9yTW9kZWwuRU5VTV9UWVBFUztcbiAgQE91dHB1dCgpIG9uQ2xpY2tQYXJhbU9mVGFibGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBpc1VzZUJhc2U2NCA9IGZhbHNlO1xuICAkID0gZ28uR3JhcGhPYmplY3QubWFrZTtcbiAgb3B0aW9ucyA9IHtcbiAgICBsYXlvdXQ6IHRoaXMuJChnby5MYXllcmVkRGlncmFwaExheW91dCwge1xuICAgICAgLy8gZGlyZWN0aW9uOiAwLFxuICAgIH0pLFxuICAgIC8vIGlzUmVhZE9ubHk6IHRydWUsXG4gIH07XG5cbiAgcHJpdmF0ZSBfZmxvd0RhdGE6IGFueTtcbiAgQElucHV0KCkgc2V0IGZsb3dEYXRhKHY6IEF0b0dvSlNEYXRhKSB7XG4gICAgdGhpcy5fZmxvd0RhdGEgPSB2O1xuICAgIHRoaXMudXBkYXRlRGF0YVRhYmxlQXNzZXRQYXJhbXMoey4uLnYsIGFzc2V0TGF5ZXI6IHRoaXMuYXNzZXRMYXllcn0pO1xuICB9XG4gIGdldCBmbG93RGF0YSgpOiBBdG9Hb0pTRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zsb3dEYXRhO1xufVxuXG4gIC8vIFJlcG9uc2l2ZVxuICBkYXRhVGFibGVBc3NldFBhcmFtczogYW55W107XG4gIEBJbnB1dCgpIGlzUmVzcG9uc2l2ZVZpZXcgPSBmYWxzZTtcbiAgQElucHV0KCkgZ2V0Rmxvd0RhdGFDYWxsQmFjazogRnVuY3Rpb247XG5cbiAgdGltZW91dFJlc2l6ZVdpbmRvdztcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIC8vIE5vdyBvbmx5IFN1cHBvcnQgQ29vbGluZyBUb3dlciBSZXNwb25zaXZlXG4gICAgaWYgKHRoaXMudGltZW91dFJlc2l6ZVdpbmRvdykge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFJlc2l6ZVdpbmRvdyk7XG4gICAgfVxuICAgIHRoaXMudGltZW91dFJlc2l6ZVdpbmRvdyA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmVWaWV3KCk7XG4gICAgICB0aGlzLnVwZGF0ZUxvY2F0aW9uUmVwb25zaXZlKCk7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBjaGVja1Jlc3BvbnNpdmVWaWV3KCkge1xuICAgIGlmIChcbiAgICAgIHRoaXM/LnN5c3RlbVR5cGUgPT09XG4gICAgICBBdG9Hb2pzRWRpdG9yTW9kZWwuRU5VTV9UWVBFUy5DT09MSU5HX1RPV0VSXG4gICAgKSB7XG4gICAgICB0aGlzLmlzUmVzcG9uc2l2ZVZpZXcgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDEwMjQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNSZXNwb25zaXZlVmlldyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUxvY2F0aW9uUmVwb25zaXZlKCkge1xuICAgIGlmICghdGhpcy5mbG93RGF0YT8ubm9kZURhdGFBcnJheSkge1xuICAgICAgdGhpcy5mbG93RGF0YSA9IEFzc2V0Rmxvd0NvbXBvbmVudC5nZXREZWZhdWx0Rmxvd0RhdGEoe1xuICAgICAgICBzeXN0ZW1UeXBlOiB0aGlzLnN5c3RlbVR5cGUsIFxuICAgICAgICBpc1VzZUJhc2U2NDogdGhpcy5pc1VzZUJhc2U2NCxcbiAgICAgICAgYXNzZXRMYXllcjogdGhpcy5hc3NldExheWVyXG4gICAgICB9KTtcbiAgICB9XG4gICAgXy5mb3JFYWNoKFxuICAgICAgdGhpcy5mbG93RGF0YT8ubm9kZURhdGFBcnJheSxcbiAgICAgIChub2RlOiBhbnkpID0+IHtcbiAgICAgICAgbm9kZSA9IF8ubWVyZ2Uobm9kZSwgbm9kZVtgZXh0ZW5kZWREYXRhJHt0aGlzLmlzUmVzcG9uc2l2ZVZpZXcgPyAnUmVzcG9uc2l2ZScgOiAnJ31gXSk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnNldEZsb3dEYXRhKF8uY2xvbmVEZWVwKHRoaXMuZmxvd0RhdGEpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hlY2tSZXNwb25zaXZlVmlldygpO1xuICAgIHRoaXMudXBkYXRlTG9jYXRpb25SZXBvbnNpdmUoKTtcbiAgfVxuICBvbkNsaWNrUGFyYW1PZlRhYmxlKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkNsaWNrUGFyYW1PZlRhYmxlRXZlbnQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgc3RhdGljIGdldERlZmF1bHRGbG93RGF0YShkZWZhdWx0RGF0YTogQXRvRGVmYXVsdEZsb3dEYXRhKSB7XG4gICAgY29uc3QgZmxvd0RhdGEgPSB7XG4gICAgICAuLi5kZWZhdWx0RGF0YSxcbiAgICAgIC4uLl8uY2xvbmVEZWVwKEFUT19DT01QT05FTlRTX0dST1VQX0RBVEEpW1xuICAgICAgICBkZWZhdWx0RGF0YT8uc3lzdGVtVHlwZVxuICAgICAgXSxcbiAgICAgIGxpbmtGcm9tUG9ydElkUHJvcGVydHk6ICdmcm9tUG9ydCcsXG4gICAgICBsaW5rVG9Qb3J0SWRQcm9wZXJ0eTogJ3RvUG9ydCcsXG4gICAgfTtcbiAgICAvLyBSZXBvbnNpdmVcbiAgICBfLmZvckVhY2goXG4gICAgICBmbG93RGF0YT8ubm9kZURhdGFBcnJheSxcbiAgICAgIChub2RlOiBhbnkpID0+IHtcbiAgICAgICAgbm9kZSA9IF8ubWVyZ2Uobm9kZSwgbm9kZVtgZXh0ZW5kZWREYXRhJHt3aW5kb3cuaW5uZXJXaWR0aCA8IDEwMjQgPyAnUmVzcG9uc2l2ZScgOiAnJ31gXSk7XG4gICAgICB9XG4gICAgKTtcbiAgICAvLyBhc3NldExheWVyXG4gICAgZmxvd0RhdGEubm9kZURhdGFBcnJheSA9IF8uZmlsdGVyKGZsb3dEYXRhLm5vZGVEYXRhQXJyYXksIHggPT4gIXg/LmFzc2V0TGF5ZXJzIHx8ICh4Py5hc3NldExheWVycyAmJiB4Py5hc3NldExheWVycyA9PT0gKGRlZmF1bHREYXRhPy5hc3NldExheWVyID8/IEFUT19BU1NFVF9MQVlFUlMuRkxPVykpKVxuICAgIGlmIChkZWZhdWx0RGF0YT8uaXNVc2VCYXNlNjQpIHtcbiAgICAgIGNvbnN0IGl0ZW1JbWFnZVRlbXAgPSAoZmxvd0RhdGEgYXMgQXRvR29KU0RhdGEpPy5ub2RlRGF0YUFycmF5Py5maW5kKFxuICAgICAgICAoeCkgPT4geD8udHlwZSA9PT0gJ0ltYWdlIFRlbXBsYXRlJ1xuICAgICAgKTtcbiAgICAgIGlmIChpdGVtSW1hZ2VUZW1wKSB7XG4gICAgICAgIGl0ZW1JbWFnZVRlbXAuc291cmNlID0gQXRvR29KU0Jhc2U2NFtkZWZhdWx0RGF0YT8uc3lzdGVtVHlwZV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmbG93RGF0YTtcbiAgfVxuXG4gIHNldEZsb3dEYXRhKGRhdGE6IEF0b0dvSlNEYXRhKSB7XG4gICAgLy8gY29uc3QgbGF5ZXIgPSBkYXRhPy5hc3NldExheWVyID8/IHRoaXM/LmFzc2V0TGF5ZXIgPz8gQVRPX0FTU0VUX0xBWUVSUy5GTE9XO1xuICAgIHRoaXMuZmxvd0RhdGEgPSB7IFxuICAgICAgLi4uZGF0YSxcbiAgICAgIG5vZGVEYXRhQXJyYXk6IF8uZmlsdGVyKGRhdGEubm9kZURhdGFBcnJheSwgeCA9PiAheD8uYXNzZXRMYXllcnMgfHwgKHg/LmFzc2V0TGF5ZXJzICYmIHg/LmFzc2V0TGF5ZXJzID09PSBkYXRhPy5hc3NldExheWVyKSlcbiAgICB9O1xuICAgIHRoaXMudXBkYXRlRGF0YVRhYmxlQXNzZXRQYXJhbXMoZGF0YSk7XG4gIH1cblxuICB1cGRhdGVEYXRhVGFibGVBc3NldFBhcmFtcyhkYXRhOiBBdG9Hb0pTRGF0YSkge1xuICAgIHRoaXMuZGF0YVRhYmxlQXNzZXRQYXJhbXMgPSBfLmZvckVhY2goXG4gICAgICB0aGlzLmZsb3dEYXRhPy5ub2RlRGF0YUFycmF5Py5maWx0ZXIoXG4gICAgICAgIChlKSA9PiBlPy50eXBlID09PSBBdG9Hb2pzRWRpdG9yTW9kZWwuRU5VTV9URU1QTEFURVMuUEFSQU1fVEFCTEUgJiYgZT8uYXNzZXRMYXllcnMgPT09IGRhdGE/LmFzc2V0TGF5ZXJcbiAgICAgICksIHggPT4ge1xuICAgICAgICBpZiAoIWRhdGE/LmlzUmVmcmVzaCkge1xuICAgICAgICAgIHguaXNDb2xsYXBzZWQgPSB0aGlzLmFzc2V0UGFyYW1zVmlld1RlbXA/LmRhdGE/LmZpbmQoeSA9PiB5Py5rZXkgPT09IHg/LmtleSk/LmlzQ29sbGFwc2VkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImgtMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWdhcC0zIGZsZXgtZ3Jvdy0xIG92ZXJmbG93LWF1dG8gcHgtMyBwYi0zXCI+XG4gIDxkaXYgY2xhc3M9XCJoLTEwMCBkLWZsZXggZmxleC1jb2x1bW5cIiBhdG9Mb2FkaW5nIFthcHBMb2FkaW5nXT1cImZsb3dEYXRhID09PSBudWxsXCI+XG4gICAgPGF0by1mbG93LWRpYWdyYW0tbGliXG4gICAgICAqbmdJZj1cImZsb3dEYXRhICE9PSBudWxsXCJcbiAgICAgICNnakZsb3dEaWFncmFtVGVtcFxuICAgICAgW2RhdGFdPVwiZmxvd0RhdGFcIlxuICAgICAgW2luaXRpYWxPcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgKG9uQ2xpa1BhcmFtT2ZUYWJsZSk9XCJvbkNsaWNrUGFyYW1PZlRhYmxlKCRldmVudClcIlxuICAgICAgW2NsYXNzXT1cIiEhaXNSZXNwb25zaXZlVmlldyA/ICdkaWFncmFtLXJlc3BvbnNpdmUtdmlldycgOiAnZmxleC1ncm93LTEnXCJcbiAgICA+PC9hdG8tZmxvdy1kaWFncmFtLWxpYj5cbiAgICA8ZGl2IGNsYXNzPVwibXQtMlwiICpuZ0lmPVwiaXNSZXNwb25zaXZlVmlld1wiPlxuICAgICAgPGF0by1hc3NldC1wYXJhbXMtdmlld1xuICAgICAgICAjYXNzZXRQYXJhbXNWaWV3VGVtcFxuICAgICAgICBbZGF0YV09XCJkYXRhVGFibGVBc3NldFBhcmFtc1wiXG4gICAgICAgIFtpc0VkaXRWaWV3XT1cInRydWVcIlxuICAgICAgICAoY2xpY2tQYXJhbVRhYmxlUm93KT1cIm9uQ2xpY2tQYXJhbU9mVGFibGUoJGV2ZW50KVwiXG4gICAgICA+PC9hdG8tYXNzZXQtcGFyYW1zLXZpZXc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZmxvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG8td2F0ZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9hc3NldC1mbG93L2Fzc2V0LWZsb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvLXdhdGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYXNzZXQtZmxvdy9hc3NldC1mbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIseUJBQXlCLEdBQzFCLE1BQU0sd0NBQXdDLENBQUM7QUFHaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDL0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7OztBQU81RixNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBYVksNkJBQXdCLEdBQ2hDLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDN0IsTUFBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3hCLFlBQU8sR0FBRztZQUNSLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0Is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LENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBnbyBmcm9tICdnb2pzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBdG9Hb0pTQmFzZTY0IH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Jhc2U2NC5jb25zdCc7XG5pbXBvcnQge1xuICBBVE9fQVNTRVRfTEFZRVJTLFxuICBBVE9fQ09NUE9ORU5UU19HUk9VUF9EQVRBLFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29tcG9uZW50cy1ncm91cC1jb25zdCc7XG5pbXBvcnQgeyBBdG9EZWZhdWx0Rmxvd0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXRvLWFzc2V0LWZsb3cubW9kZWwnO1xuaW1wb3J0IHsgQXRvR29KU0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ29qcy1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEF0b0dvanNFZGl0b3JNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nb2pzLWVkaXRvci5tb2RlbCc7XG5pbXBvcnQgeyBBdG9Bc3NldFBhcmFtc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9hc3NldC1wYXJhbXMtdmlldy9hc3NldC1wYXJhbXMtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXRvRmxvd0RpYWdyYW1MaWJDb21wb25lbnQgfSBmcm9tICcuLi9mbG93LWRpYWdyYW0tbGliL2Zsb3ctZGlhZ3JhbS1saWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXRvLWFzc2V0LWZsb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtZmxvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fzc2V0LWZsb3cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRGbG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYXNzZXRMYXllcjogQVRPX0FTU0VUX0xBWUVSUztcbiAgQFZpZXdDaGlsZChBdG9GbG93RGlhZ3JhbUxpYkNvbXBvbmVudClcbiAgZ2pGbG93RGlhZ3JhbVRlbXA6IEF0b0Zsb3dEaWFncmFtTGliQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKEF0b0Fzc2V0UGFyYW1zVmlld0NvbXBvbmVudClcbiAgYXNzZXRQYXJhbXNWaWV3VGVtcDogQXRvQXNzZXRQYXJhbXNWaWV3Q29tcG9uZW50O1xuICBASW5wdXQoKSBzZWxlY3RlZENvbXBvbmVudDogYW55O1xuICBASW5wdXQoKSBzeXN0ZW1UeXBlOiBBdG9Hb2pzRWRpdG9yTW9kZWwuRU5VTV9UWVBFUztcbiAgQE91dHB1dCgpIG9uQ2xpY2tQYXJhbU9mVGFibGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBpc1VzZUJhc2U2NCA9IGZhbHNlO1xuICAkID0gZ28uR3JhcGhPYmplY3QubWFrZTtcbiAgb3B0aW9ucyA9IHtcbiAgICBsYXlvdXQ6IHRoaXMuJChnby5MYXllcmVkRGlncmFwaExheW91dCwge1xuICAgICAgLy8gZGlyZWN0aW9uOiAwLFxuICAgIH0pLFxuICAgIC8vIGlzUmVhZE9ubHk6IHRydWUsXG4gIH07XG5cbiAgcHJpdmF0ZSBfZmxvd0RhdGE6IGFueTtcbiAgQElucHV0KCkgc2V0IGZsb3dEYXRhKHY6IEF0b0dvSlNEYXRhKSB7XG4gICAgdGhpcy5fZmxvd0RhdGEgPSB2O1xuICAgIHRoaXMudXBkYXRlRGF0YVRhYmxlQXNzZXRQYXJhbXMoeyAuLi52LCBhc3NldExheWVyOiB0aGlzLmFzc2V0TGF5ZXIgfSk7XG4gIH1cbiAgZ2V0IGZsb3dEYXRhKCk6IEF0b0dvSlNEYXRhIHtcbiAgICByZXR1cm4gdGhpcy5fZmxvd0RhdGE7XG4gIH1cblxuICAvLyBSZXBvbnNpdmVcbiAgZGF0YVRhYmxlQXNzZXRQYXJhbXM6IGFueVtdO1xuICBASW5wdXQoKSBpc1Jlc3BvbnNpdmVWaWV3ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdldEZsb3dEYXRhQ2FsbEJhY2s6IEZ1bmN0aW9uO1xuXG4gIHRpbWVvdXRSZXNpemVXaW5kb3c7XG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBvblJlc2l6ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBOb3cgb25seSBTdXBwb3J0IENvb2xpbmcgVG93ZXIgUmVzcG9uc2l2ZVxuICAgIGlmICh0aGlzLnRpbWVvdXRSZXNpemVXaW5kb3cpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRSZXNpemVXaW5kb3cpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVvdXRSZXNpemVXaW5kb3cgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tSZXNwb25zaXZlVmlldygpO1xuICAgICAgdGhpcy51cGRhdGVMb2NhdGlvblJlcG9uc2l2ZSgpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgY2hlY2tSZXNwb25zaXZlVmlldygpIHtcbiAgICBpZiAodGhpcz8uc3lzdGVtVHlwZSA9PT0gQXRvR29qc0VkaXRvck1vZGVsLkVOVU1fVFlQRVMuQ09PTElOR19UT1dFUikge1xuICAgICAgdGhpcy5pc1Jlc3BvbnNpdmVWaWV3ID0gd2luZG93LmlubmVyV2lkdGggPCAxMDI0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzUmVzcG9uc2l2ZVZpZXcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVMb2NhdGlvblJlcG9uc2l2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZmxvd0RhdGE/Lm5vZGVEYXRhQXJyYXkpIHtcbiAgICAgIHRoaXMuZmxvd0RhdGEgPSBBc3NldEZsb3dDb21wb25lbnQuZ2V0RGVmYXVsdEZsb3dEYXRhKHtcbiAgICAgICAgc3lzdGVtVHlwZTogdGhpcy5zeXN0ZW1UeXBlLFxuICAgICAgICBpc1VzZUJhc2U2NDogdGhpcy5pc1VzZUJhc2U2NCxcbiAgICAgICAgYXNzZXRMYXllcjogdGhpcy5hc3NldExheWVyLFxuICAgICAgfSk7XG4gICAgfVxuICAgIF8uZm9yRWFjaCh0aGlzLmZsb3dEYXRhPy5ub2RlRGF0YUFycmF5LCAobm9kZTogYW55KSA9PiB7XG4gICAgICBub2RlID0gXy5tZXJnZShcbiAgICAgICAgbm9kZSxcbiAgICAgICAgbm9kZVtgZXh0ZW5kZWREYXRhJHt0aGlzLmlzUmVzcG9uc2l2ZVZpZXcgPyAnUmVzcG9uc2l2ZScgOiAnJ31gXVxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLnNldEZsb3dEYXRhKF8uY2xvbmVEZWVwKHRoaXMuZmxvd0RhdGEpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hlY2tSZXNwb25zaXZlVmlldygpO1xuICAgIHRoaXMudXBkYXRlTG9jYXRpb25SZXBvbnNpdmUoKTtcbiAgfVxuICBvbkNsaWNrUGFyYW1PZlRhYmxlKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkNsaWNrUGFyYW1PZlRhYmxlRXZlbnQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgc3RhdGljIGdldERlZmF1bHRGbG93RGF0YShkZWZhdWx0RGF0YTogQXRvRGVmYXVsdEZsb3dEYXRhKSB7XG4gICAgY29uc3QgZmxvd0RhdGEgPSB7XG4gICAgICAuLi5kZWZhdWx0RGF0YSxcbiAgICAgIC4uLl8uY2xvbmVEZWVwKEFUT19DT01QT05FTlRTX0dST1VQX0RBVEEpW2RlZmF1bHREYXRhPy5zeXN0ZW1UeXBlXSxcbiAgICAgIGxpbmtGcm9tUG9ydElkUHJvcGVydHk6ICdmcm9tUG9ydCcsXG4gICAgICBsaW5rVG9Qb3J0SWRQcm9wZXJ0eTogJ3RvUG9ydCcsXG4gICAgfTtcbiAgICAvLyBSZXBvbnNpdmVcbiAgICBfLmZvckVhY2goZmxvd0RhdGE/Lm5vZGVEYXRhQXJyYXksIChub2RlOiBhbnkpID0+IHtcbiAgICAgIG5vZGUgPSBfLm1lcmdlKFxuICAgICAgICBub2RlLFxuICAgICAgICBub2RlW2BleHRlbmRlZERhdGEke3dpbmRvdy5pbm5lcldpZHRoIDwgMTAyNCA/ICdSZXNwb25zaXZlJyA6ICcnfWBdXG4gICAgICApO1xuICAgICAgaWYgKG5vZGU/LmFzc2V0TGF5ZXJzKSB7XG4gICAgICAgIG5vZGUudmlzaWJsZSA9XG4gICAgICAgICAgbm9kZT8uYXNzZXRMYXllcnMgPT09XG4gICAgICAgICAgKGRlZmF1bHREYXRhPy5hc3NldExheWVyID8/IEFUT19BU1NFVF9MQVlFUlMuRkxPVyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gYXNzZXRMYXllclxuICAgIC8vIGZsb3dEYXRhLm5vZGVEYXRhQXJyYXkgPSBfLmZpbHRlcihmbG93RGF0YS5ub2RlRGF0YUFycmF5LCB4ID0+ICF4Py5hc3NldExheWVycyB8fCAoeD8uYXNzZXRMYXllcnMgJiYgeD8uYXNzZXRMYXllcnMgPT09IChkZWZhdWx0RGF0YT8uYXNzZXRMYXllciA/PyBBVE9fQVNTRVRfTEFZRVJTLkZMT1cpKSlcbiAgICBpZiAoZGVmYXVsdERhdGE/LmlzVXNlQmFzZTY0KSB7XG4gICAgICBjb25zdCBpdGVtSW1hZ2VUZW1wID0gKGZsb3dEYXRhIGFzIEF0b0dvSlNEYXRhKT8ubm9kZURhdGFBcnJheT8uZmluZChcbiAgICAgICAgKHgpID0+IHg/LnR5cGUgPT09ICdJbWFnZSBUZW1wbGF0ZSdcbiAgICAgICk7XG4gICAgICBpZiAoaXRlbUltYWdlVGVtcCkge1xuICAgICAgICBpdGVtSW1hZ2VUZW1wLnNvdXJjZSA9IEF0b0dvSlNCYXNlNjRbZGVmYXVsdERhdGE/LnN5c3RlbVR5cGVdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmxvd0RhdGE7XG4gIH1cblxuICBzZXRGbG93RGF0YShkYXRhOiBBdG9Hb0pTRGF0YSkge1xuICAgIC8vIGNvbnN0IGxheWVyID0gZGF0YT8uYXNzZXRMYXllciA/PyB0aGlzPy5hc3NldExheWVyID8/IEFUT19BU1NFVF9MQVlFUlMuRkxPVztcbiAgICBfLmZvckVhY2goZGF0YS5ub2RlRGF0YUFycmF5LCAobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGU/LmFzc2V0TGF5ZXJzKSB7XG4gICAgICAgIG5vZGUudmlzaWJsZSA9IG5vZGU/LmFzc2V0TGF5ZXJzID09PSB0aGlzLmFzc2V0TGF5ZXI7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5mbG93RGF0YSA9IHtcbiAgICAgIC4uLmRhdGEsXG4gICAgICAvLyBub2RlRGF0YUFycmF5OiBfLmZpbHRlcihkYXRhLm5vZGVEYXRhQXJyYXksIHggPT4gIXg/LmFzc2V0TGF5ZXJzIHx8ICh4Py5hc3NldExheWVycyAmJiB4Py5hc3NldExheWVycyA9PT0gZGF0YT8uYXNzZXRMYXllcikpXG4gICAgfTtcbiAgICB0aGlzLnVwZGF0ZURhdGFUYWJsZUFzc2V0UGFyYW1zKGRhdGEpO1xuICB9XG5cbiAgdXBkYXRlRGF0YVRhYmxlQXNzZXRQYXJhbXMoZGF0YTogQXRvR29KU0RhdGEpIHtcbiAgICB0aGlzLmRhdGFUYWJsZUFzc2V0UGFyYW1zID0gXy5mb3JFYWNoKFxuICAgICAgdGhpcy5mbG93RGF0YT8ubm9kZURhdGFBcnJheT8uZmlsdGVyKFxuICAgICAgICAoZSkgPT5cbiAgICAgICAgICBlPy50eXBlID09PSBBdG9Hb2pzRWRpdG9yTW9kZWwuRU5VTV9URU1QTEFURVMuUEFSQU1fVEFCTEUgJiZcbiAgICAgICAgICBlPy5hc3NldExheWVycyA9PT0gZGF0YT8uYXNzZXRMYXllclxuICAgICAgKSxcbiAgICAgICh4KSA9PiB7XG4gICAgICAgIGlmICghZGF0YT8uaXNSZWZyZXNoKSB7XG4gICAgICAgICAgeC5pc0NvbGxhcHNlZCA9IHRoaXMuYXNzZXRQYXJhbXNWaWV3VGVtcD8uZGF0YT8uZmluZChcbiAgICAgICAgICAgICh5KSA9PiB5Py5rZXkgPT09IHg/LmtleVxuICAgICAgICAgICk/LmlzQ29sbGFwc2VkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImgtMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWdhcC0zIGZsZXgtZ3Jvdy0xIG92ZXJmbG93LWF1dG8gcHgtMyBwYi0zXCI+XG4gIDxkaXYgY2xhc3M9XCJoLTEwMCBkLWZsZXggZmxleC1jb2x1bW5cIiBhdG9Mb2FkaW5nIFthcHBMb2FkaW5nXT1cImZsb3dEYXRhID09PSBudWxsXCI+XG4gICAgPGF0by1mbG93LWRpYWdyYW0tbGliXG4gICAgICAqbmdJZj1cImZsb3dEYXRhICE9PSBudWxsXCJcbiAgICAgICNnakZsb3dEaWFncmFtVGVtcFxuICAgICAgW2RhdGFdPVwiZmxvd0RhdGFcIlxuICAgICAgW2luaXRpYWxPcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgKG9uQ2xpa1BhcmFtT2ZUYWJsZSk9XCJvbkNsaWNrUGFyYW1PZlRhYmxlKCRldmVudClcIlxuICAgICAgW2NsYXNzXT1cIiEhaXNSZXNwb25zaXZlVmlldyA/ICdkaWFncmFtLXJlc3BvbnNpdmUtdmlldycgOiAnZmxleC1ncm93LTEnXCJcbiAgICA+PC9hdG8tZmxvdy1kaWFncmFtLWxpYj5cbiAgICA8ZGl2IGNsYXNzPVwibXQtMlwiICpuZ0lmPVwiaXNSZXNwb25zaXZlVmlld1wiPlxuICAgICAgPGF0by1hc3NldC1wYXJhbXMtdmlld1xuICAgICAgICAjYXNzZXRQYXJhbXNWaWV3VGVtcFxuICAgICAgICBbZGF0YV09XCJkYXRhVGFibGVBc3NldFBhcmFtc1wiXG4gICAgICAgIFtpc0VkaXRWaWV3XT1cInRydWVcIlxuICAgICAgICAoY2xpY2tQYXJhbVRhYmxlUm93KT1cIm9uQ2xpY2tQYXJhbU9mVGFibGUoJGV2ZW50KVwiXG4gICAgICA+PC9hdG8tYXNzZXQtcGFyYW1zLXZpZXc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==