@c8y/ngx-components 1021.3.1 → 1021.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/assets-navigator/asset-selector/asset-selector-node.component.d.ts +2 -1
  2. package/assets-navigator/asset-selector/asset-selector-node.component.d.ts.map +1 -1
  3. package/assets-navigator/asset-selector/asset-selector.component.d.ts +2 -1
  4. package/assets-navigator/asset-selector/asset-selector.component.d.ts.map +1 -1
  5. package/cockpit-config/cockpit-config.service.d.ts.map +1 -1
  6. package/cockpit-config/cockpit-configuration.component.d.ts +1 -0
  7. package/cockpit-config/cockpit-configuration.component.d.ts.map +1 -1
  8. package/cockpit-config/root-node-config.component.d.ts +2 -1
  9. package/cockpit-config/root-node-config.component.d.ts.map +1 -1
  10. package/core/login/login.component.d.ts.map +1 -1
  11. package/core/login/login.service.d.ts +1 -1
  12. package/core/login/login.service.d.ts.map +1 -1
  13. package/esm2022/assets-navigator/asset-selector/asset-selector-node.component.mjs +6 -3
  14. package/esm2022/assets-navigator/asset-selector/asset-selector.component.mjs +7 -4
  15. package/esm2022/assets-navigator/asset-selector/miller-view.component.mjs +1 -1
  16. package/esm2022/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-modal.component.mjs +1 -1
  17. package/esm2022/cockpit-config/cockpit-config.service.mjs +7 -3
  18. package/esm2022/cockpit-config/cockpit-configuration.component.mjs +6 -3
  19. package/esm2022/cockpit-config/root-node-config.component.mjs +8 -4
  20. package/esm2022/cockpit-config/setup/cockpit-setup-step3.component.mjs +1 -1
  21. package/esm2022/core/login/login.component.mjs +8 -3
  22. package/esm2022/core/login/login.service.mjs +5 -2
  23. package/esm2022/device-grid/columns/group.filtering-form-renderer.component.mjs +1 -1
  24. package/esm2022/protocol-lwm2m/components/configuration/typed-forms/firmware-settings.component.mjs +11 -2
  25. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +12 -6
  26. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  27. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +1 -1
  28. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  29. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +19 -9
  30. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  31. package/fesm2022/c8y-ngx-components-device-grid.mjs +1 -1
  32. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +10 -1
  34. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components.mjs +11 -3
  36. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  37. package/locales/locales.pot +6 -0
  38. package/package.json +1 -1
  39. package/protocol-lwm2m/components/configuration/typed-forms/firmware-settings.component.d.ts +10 -0
  40. package/protocol-lwm2m/components/configuration/typed-forms/firmware-settings.component.d.ts.map +1 -1
@@ -46,6 +46,7 @@ export declare class AssetSelectorNodeComponent implements OnInit {
46
46
  * A function that should verify the need to add a column when a node is clicked.
47
47
  */
48
48
  handleNextMillerViewColumn: (node: GroupNode, index: number) => boolean;
49
+ disabled: boolean;
49
50
  /**
50
51
  * Event, which indicates whether the loading of the node has completed.
51
52
  */
@@ -107,6 +108,6 @@ export declare class AssetSelectorNodeComponent implements OnInit {
107
108
  isActive(): boolean;
108
109
  private updateSelection;
109
110
  static ɵfac: i0.ɵɵFactoryDeclaration<AssetSelectorNodeComponent, never>;
110
- static ɵcmp: i0.ɵɵComponentDeclaration<AssetSelectorNodeComponent, "c8y-asset-selector-node", never, { "node": { "alias": "node"; "required": false; }; "rootNode": { "alias": "rootNode"; "required": false; }; "preselected": { "alias": "preselected"; "required": false; }; "showPath": { "alias": "showPath"; "required": false; }; "multi": { "alias": "multi"; "required": false; }; "view": { "alias": "view"; "required": false; }; "index": { "alias": "index"; "required": false; }; "active": { "alias": "active"; "required": false; }; "handleNextMillerViewColumn": { "alias": "handleNextMillerViewColumn"; "required": false; }; }, { "isLoadingState": "isLoadingState"; "onSelect": "onSelect"; "onDeselect": "onDeselect"; }, never, never, false, never>;
111
+ static ɵcmp: i0.ɵɵComponentDeclaration<AssetSelectorNodeComponent, "c8y-asset-selector-node", never, { "node": { "alias": "node"; "required": false; }; "rootNode": { "alias": "rootNode"; "required": false; }; "preselected": { "alias": "preselected"; "required": false; }; "showPath": { "alias": "showPath"; "required": false; }; "multi": { "alias": "multi"; "required": false; }; "view": { "alias": "view"; "required": false; }; "index": { "alias": "index"; "required": false; }; "active": { "alias": "active"; "required": false; }; "handleNextMillerViewColumn": { "alias": "handleNextMillerViewColumn"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "isLoadingState": "isLoadingState"; "onSelect": "onSelect"; "onDeselect": "onDeselect"; }, never, never, false, never>;
111
112
  }
112
113
  //# sourceMappingURL=asset-selector-node.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-selector-node.component.d.ts","sourceRoot":"","sources":["../../../assets-navigator/asset-selector/asset-selector-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAa,YAAY,EAAS,MAAM,EAAU,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;;AAEzC,qBAIa,0BAA2B,YAAW,MAAM;IA2ErD,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,EAAE;IACH,oBAAoB,EAAE,oBAAoB;IA5EnD;;OAEG;IACM,IAAI,EAAE,SAAS,CAAC;IACzB;;OAEG;IACM,QAAQ,EAAE,SAAS,CAAC;IAC7B;;OAEG;IACM,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,CAAM;IACvD;;OAEG;IACM,QAAQ,UAAS;IAC1B;;OAEG;IACM,KAAK,UAAS;IACvB;;OAEG;IACM,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAU;IAC1C;;;OAGG;IACM,KAAK,MAAC;IACf;;OAEG;IACM,MAAM,EAAE,SAAS,CAAC;IAC3B;;OAEG;IACM,0BAA0B,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACjF;;OAEG;IACO,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAsB;IACrE;;OAEG;IACO,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,CAAsB;IACtE;;OAEG;IACO,UAAU,EAAE,YAAY,CAAC;QAAE,YAAY,EAAE,QAAQ,GAAG,KAAK,CAAC;QAAC,EAAE,EAAE,cAAc,CAAA;KAAE,CAAC,CACrE;IAErB,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,SAAK;IACV;;OAEG;IACH,YAAY,gBAAuB;IAEnC,2DAA2D;IAC3D,SAAS,UAAS;IAClB;;OAEG;IACH,IAAI,WAAW,0BAEd;IAED;;OAEG;gBAEO,gBAAgB,EAAE,gBAAgB,EAClC,EAAE,EAAE,iBAAiB,EACtB,oBAAoB,EAAE,oBAAoB;IAGnD;;OAEG;IACG,QAAQ;IA2Bd;;OAEG;IACH,KAAK;IAKL,wBAAwB,CAAC,IAAI,EAAE,SAAS;IAaxC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS;IAQxB;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS;IAY/B;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB,UAAU;IAOV,QAAQ;IAOR,OAAO,CAAC,eAAe;yCArLZ,0BAA0B;2CAA1B,0BAA0B;CAiMtC"}
1
+ {"version":3,"file":"asset-selector-node.component.d.ts","sourceRoot":"","sources":["../../../assets-navigator/asset-selector/asset-selector-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAa,YAAY,EAAS,MAAM,EAAU,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;;AAEzC,qBAIa,0BAA2B,YAAW,MAAM;IA6ErD,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,EAAE;IACH,oBAAoB,EAAE,oBAAoB;IA9EnD;;OAEG;IACM,IAAI,EAAE,SAAS,CAAC;IACzB;;OAEG;IACM,QAAQ,EAAE,SAAS,CAAC;IAC7B;;OAEG;IACM,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,CAAM;IACvD;;OAEG;IACM,QAAQ,UAAS;IAC1B;;OAEG;IACM,KAAK,UAAS;IACvB;;OAEG;IACM,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAU;IAC1C;;;OAGG;IACM,KAAK,MAAC;IACf;;OAEG;IACM,MAAM,EAAE,SAAS,CAAC;IAC3B;;OAEG;IACM,0BAA0B,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAExE,QAAQ,UAAS;IAC1B;;OAEG;IACO,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAsB;IACrE;;OAEG;IACO,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,CAAsB;IACtE;;OAEG;IACO,UAAU,EAAE,YAAY,CAAC;QAAE,YAAY,EAAE,QAAQ,GAAG,KAAK,CAAC;QAAC,EAAE,EAAE,cAAc,CAAA;KAAE,CAAC,CACrE;IAErB,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,SAAK;IACV;;OAEG;IACH,YAAY,gBAAuB;IAEnC,2DAA2D;IAC3D,SAAS,UAAS;IAClB;;OAEG;IACH,IAAI,WAAW,0BAEd;IAED;;OAEG;gBAEO,gBAAgB,EAAE,gBAAgB,EAClC,EAAE,EAAE,iBAAiB,EACtB,oBAAoB,EAAE,oBAAoB;IAGnD;;OAEG;IACG,QAAQ;IA2Bd;;OAEG;IACH,KAAK;IAKL,wBAAwB,CAAC,IAAI,EAAE,SAAS;IAaxC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS;IAQxB;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS;IAY/B;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB,UAAU;IAOV,QAAQ;IAOR,OAAO,CAAC,eAAe;yCAvLZ,0BAA0B;2CAA1B,0BAA0B;CAmMtC"}
@@ -49,6 +49,7 @@ export declare class AssetSelectorComponent extends AssetSelectorBase implements
49
49
  */
50
50
  selectedItems: IIdentified[] | IIdentified;
51
51
  container: '' | 'body';
52
+ disabled: boolean;
52
53
  /**
53
54
  * Emits if one item was selected (all currently selected nodes).
54
55
  */
@@ -139,6 +140,6 @@ export declare class AssetSelectorComponent extends AssetSelectorBase implements
139
140
  mo: IManagedObject;
140
141
  }): void;
141
142
  static ɵfac: i0.ɵɵFactoryDeclaration<AssetSelectorComponent, never>;
142
- static ɵcmp: i0.ɵɵComponentDeclaration<AssetSelectorComponent, "c8y-asset-selector", never, { "config": { "alias": "config"; "required": false; }; "active": { "alias": "active"; "required": false; }; "index": { "alias": "index"; "required": false; }; "asset": { "alias": "asset"; "required": false; }; "selectedDevice": { "alias": "selectedDevice"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "rootNode": { "alias": "rootNode"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "container": { "alias": "container"; "required": false; }; }, { "onSelected": "onSelected"; "onClearSelected": "onClearSelected"; "onRowSelected": "onRowSelected"; "onLoad": "onLoad"; }, never, never, false, never>;
143
+ static ɵcmp: i0.ɵɵComponentDeclaration<AssetSelectorComponent, "c8y-asset-selector", never, { "config": { "alias": "config"; "required": false; }; "active": { "alias": "active"; "required": false; }; "index": { "alias": "index"; "required": false; }; "asset": { "alias": "asset"; "required": false; }; "selectedDevice": { "alias": "selectedDevice"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "rootNode": { "alias": "rootNode"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "container": { "alias": "container"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "onSelected": "onSelected"; "onClearSelected": "onClearSelected"; "onRowSelected": "onRowSelected"; "onLoad": "onLoad"; }, never, never, false, never>;
143
144
  }
144
145
  //# sourceMappingURL=asset-selector.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-selector.component.d.ts","sourceRoot":"","sources":["../../../assets-navigator/asset-selector/asset-selector.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset-selector.component.d.ts","sourceRoot":"","sources":["../../../assets-navigator/asset-selector/asset-selector.component.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cockpit-config.service.d.ts","sourceRoot":"","sources":["../../cockpit-config/cockpit-config.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,eAAe,EAEf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,aAAa,EAEb,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAEjB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,aAAa,EAA+C,MAAM,wBAAwB,CAAC;;AAEpG,qBAGa,oBAAoB;IAgB7B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACgC,YAAY,EAAE,oBAAoB;IAxBvF,aAAa,EAAE,aAAa,CAAkB;IAC9C,KAAK,EAAE,aAAa,EAAE,CAAM;IAC5B,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IAE9C,IAAI,mBAAmB,aAItB;gBAGS,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,eAAe,EACzB,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACmB,YAAY,EAAE,oBAAoB;IAMvF,IAAI;IAYJ;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,aAAa;IAMtC;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,aAAa;IA0B7C,OAAO;IAMD,YAAY;IAwBlB,mBAAmB;YAML,sBAAsB;IAIpC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gCAAgC;IAWxC,OAAO,CAAC,oBAAoB;yCA/LjB,oBAAoB;6CAApB,oBAAoB;CA8MhC"}
1
+ {"version":3,"file":"cockpit-config.service.d.ts","sourceRoot":"","sources":["../../cockpit-config/cockpit-config.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,eAAe,EAEf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,aAAa,EAEb,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAEjB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,aAAa,EAA+C,MAAM,wBAAwB,CAAC;;AAGpG,qBAGa,oBAAoB;IAgB7B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACgC,YAAY,EAAE,oBAAoB;IAxBvF,aAAa,EAAE,aAAa,CAAkB;IAC9C,KAAK,EAAE,aAAa,EAAE,CAAM;IAC5B,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IAE9C,IAAI,mBAAmB,aAItB;gBAGS,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,eAAe,EACzB,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACmB,YAAY,EAAE,oBAAoB;IAMvF,IAAI;IAeJ;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,aAAa;IAMtC;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,aAAa;IA0B7C,OAAO;IAMD,YAAY;IAyBlB,mBAAmB;YAML,sBAAsB;IAIpC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gCAAgC;IAWxC,OAAO,CAAC,oBAAoB;yCAnMjB,oBAAoB;6CAApB,oBAAoB;CAkNhC"}
@@ -11,6 +11,7 @@ export declare class CockpitConfigurationComponent implements OnInit {
11
11
  * The currently used configuration.
12
12
  */
13
13
  config: CockpitConfig;
14
+ rootNodeDisabled: boolean;
14
15
  constructor(cockpitConfigService: CockpitConfigService, alertService: AlertService, appState: AppStateService);
15
16
  /**
16
17
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"cockpit-configuration.component.d.ts","sourceRoot":"","sources":["../../cockpit-config/cockpit-configuration.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAW,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAkB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;;AAEhE,qBAIa,6BAA8B,YAAW,MAAM;IAOxD,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ;IARlB;;OAEG;IACH,MAAM,EAAE,aAAa,CAAkB;gBAG7B,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,eAAe;IAGnC;;OAEG;IACH,QAAQ;IAIR;;OAEG;IACG,IAAI;IASV;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQvC;;OAEG;IACH,cAAc;IAKd;;OAEG;IACG,eAAe;yCArDV,6BAA6B;2CAA7B,6BAA6B;CAyDzC"}
1
+ {"version":3,"file":"cockpit-configuration.component.d.ts","sourceRoot":"","sources":["../../cockpit-config/cockpit-configuration.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAW,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAkB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;;AAEhE,qBAIa,6BAA8B,YAAW,MAAM;IASxD,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ;IAVlB;;OAEG;IACH,MAAM,EAAE,aAAa,CAAkB;IAEvC,gBAAgB,UAAS;gBAGf,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,eAAe;IAGnC;;OAEG;IACH,QAAQ;IAIR;;OAEG;IACG,IAAI;IASV;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQvC;;OAEG;IACH,cAAc;IAKd;;OAEG;IACG,eAAe;yCAvDV,6BAA6B;2CAA7B,6BAA6B;CA6DzC"}
@@ -3,6 +3,7 @@ import { CockpitConfig, CockpitConfigRootNode } from './cockpit-config.model';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class RootNodeConfigComponent {
5
5
  config: CockpitConfig;
6
+ disabled: boolean;
6
7
  onUpdate: EventEmitter<void>;
7
8
  /**
8
9
  * Removes one of the root nodes.
@@ -10,6 +11,6 @@ export declare class RootNodeConfigComponent {
10
11
  */
11
12
  removeNavigatorNode(node: CockpitConfigRootNode): void;
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<RootNodeConfigComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<RootNodeConfigComponent, "c8y-root-node-config", never, { "config": { "alias": "config"; "required": false; }; }, { "onUpdate": "onUpdate"; }, never, never, false, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<RootNodeConfigComponent, "c8y-root-node-config", never, { "config": { "alias": "config"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "onUpdate": "onUpdate"; }, never, never, false, never>;
14
15
  }
15
16
  //# sourceMappingURL=root-node-config.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"root-node-config.component.d.ts","sourceRoot":"","sources":["../../cockpit-config/root-node-config.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;;AAE9E,qBAIa,uBAAuB;IAElC,MAAM,EAAE,aAAa,CAAC;IAGtB,QAAQ,qBAA4B;IAEpC;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,qBAAqB;yCAXpC,uBAAuB;2CAAvB,uBAAuB;CAkBnC"}
1
+ {"version":3,"file":"root-node-config.component.d.ts","sourceRoot":"","sources":["../../cockpit-config/root-node-config.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;;AAE9E,qBAIa,uBAAuB;IAElC,MAAM,EAAE,aAAa,CAAC;IAEb,QAAQ,UAAS;IAG1B,QAAQ,qBAA4B;IAEpC;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,qBAAqB;yCAbpC,uBAAuB;2CAAvB,uBAAuB;CAqBnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.component.d.ts","sourceRoot":"","sources":["../../../core/login/login.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;;AAE7D,qBAKa,cAAe,YAAW,MAAM,EAAE,SAAS;IAiB7C,YAAY,EAAE,YAAY;IACjC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,iCAAiC;IAClC,EAAE,EAAE,eAAe;IApB5B,WAAW,EAAE,UAAU,CAAmB;IAC1C,WAAW,oBAAc;IAEzB,QAAQ,UAAS;IAER,IAAI,EAAE,MAAM,CAAC;IAEtB,WAAW,EAAE,YAAY,CAAM;IAC/B,eAAe,EAAE,0BAA0B,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;IAC1E,aAAa,UAAS;IACtB,OAAO,CAAC,WAAW,CAAW;IAE9B;;OAEG;gBAEM,YAAY,EAAE,YAAY,EACzB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,EACnB,iCAAiC,EAAE,iCAAiC,EACrE,EAAE,EAAE,eAAe;IAG5B,QAAQ;IAgBR,WAAW,IAAI,IAAI;IAKnB,mBAAmB,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,UAAU,CAAC;QACjB,WAAW,CAAC,EAAE,YAAY,CAAC;QAC3B,eAAe,CAAC,EAAE,0BAA0B,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACvE;IAMkC,OAAO,CAAC,KAAK,EAAE,aAAa;IAM/D,KAAK;YAMS,kBAAkB;IAuBhC,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,SAAS;yCA1HN,cAAc;2CAAd,cAAc;CAuI1B"}
1
+ {"version":3,"file":"login.component.d.ts","sourceRoot":"","sources":["../../../core/login/login.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;;AAE7D,qBAKa,cAAe,YAAW,MAAM,EAAE,SAAS;IAiB7C,YAAY,EAAE,YAAY;IACjC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,iCAAiC;IAClC,EAAE,EAAE,eAAe;IApB5B,WAAW,EAAE,UAAU,CAAmB;IAC1C,WAAW,oBAAc;IAEzB,QAAQ,UAAS;IAER,IAAI,EAAE,MAAM,CAAC;IAEtB,WAAW,EAAE,YAAY,CAAM;IAC/B,eAAe,EAAE,0BAA0B,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;IAC1E,aAAa,UAAS;IACtB,OAAO,CAAC,WAAW,CAAW;IAE9B;;OAEG;gBAEM,YAAY,EAAE,YAAY,EACzB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,EACnB,iCAAiC,EAAE,iCAAiC,EACrE,EAAE,EAAE,eAAe;IAG5B,QAAQ;IAgBR,WAAW,IAAI,IAAI;IAKnB,mBAAmB,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,UAAU,CAAC;QACjB,WAAW,CAAC,EAAE,YAAY,CAAC;QAC3B,eAAe,CAAC,EAAE,0BAA0B,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACvE;IAMkC,OAAO,CAAC,KAAK,EAAE,aAAa;IAM/D,KAAK;YAMS,kBAAkB;IAuBhC,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,SAAS;yCA1HN,cAAc;2CAAd,cAAc;CA4I1B"}
@@ -67,7 +67,7 @@ export declare class LoginService {
67
67
  getTenant(): string;
68
68
  initLoginOptions(): void;
69
69
  redirectToOauth(): void;
70
- loginBySso(sessionState: string, code: string): Promise<void>;
70
+ loginBySso(sessionState: string, code: string): Promise<IFetchResponse>;
71
71
  autoLogout(): void;
72
72
  /**
73
73
  * Gets the minimal number of characters that a password should have to be considered a “green” strong one.
@@ -1 +1 @@
1
- {"version":3,"file":"login.service.d.ts","sourceRoot":"","sources":["../../../core/login/login.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.service.d.ts","sourceRoot":"","sources":["../../../core/login/login.service.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ export class AssetSelectorNodeComponent {
42
42
  * The current path to the node.
43
43
  */
44
44
  this.view = 'tree';
45
+ this.disabled = false;
45
46
  /**
46
47
  * Event, which indicates whether the loading of the node has completed.
47
48
  */
@@ -163,11 +164,11 @@ export class AssetSelectorNodeComponent {
163
164
  this.cd.markForCheck();
164
165
  }
165
166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AssetSelectorNodeComponent, deps: [{ token: i1.TranslateService }, { token: i0.ChangeDetectorRef }, { token: i2.AssetSelectorService }], target: i0.ɵɵFactoryTarget.Component }); }
166
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AssetSelectorNodeComponent, selector: "c8y-asset-selector-node", inputs: { node: "node", rootNode: "rootNode", preselected: "preselected", showPath: "showPath", multi: "multi", view: "view", index: "index", active: "active", handleNextMillerViewColumn: "handleNextMillerViewColumn" }, outputs: { isLoadingState: "isLoadingState", onSelect: "onSelect", onDeselect: "onDeselect" }, ngImport: i0, template: "<!-- Hierarchy tree -->\n<div\n class=\"c8y-asset-selector__item\"\n [ngStyle]=\"{\n 'margin-left': level > 1 ? 16 + 'px' : '0'\n }\"\n *ngIf=\"view === 'tree'\"\n [attr.role]=\"view === 'tree' ? 'tree' : 'list'\"\n [ngClass]=\"{\n 'c8y-asset-selector__item--more': node?.icon === 'plus',\n 'c8y-asset-selector__item--start': level === 0\n }\"\n>\n <div\n class=\"c8y-asset-selector__node\"\n title=\"{{ breadcrumb | translate }}\"\n *ngIf=\"node && !node.root && !node.hidden\"\n [attr.role]=\"view === 'tree' ? 'treeitem' : 'listitem'\"\n [ngClass]=\"{ 'c8y-asset-selector__node--open': node?.open }\"\n >\n <!-- expand button -->\n <div class=\"c8y-asset-selector__node__btn-spacer\">\n <button\n [title]=\"expandTitle\"\n class=\"collapse-btn btn-dot\"\n (click)=\"click()\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n [attr.aria-expanded]=\"node.open\"\n >\n <i c8yIcon=\"angle-right\"></i>\n </button>\n </div>\n <div class=\"d-flex a-i-center p-t-4 p-b-4 \" *ngIf=\"node.toString() !== 'LoadMoreNode'\">\n <label [ngClass]=\"{ 'c8y-checkbox': multi, 'c8y-radio': !multi }\">\n <input\n id=\"nodeLabel\"\n [type]=\"multi ? 'checkbox' : 'radio'\"\n (change)=\"selected(node)\"\n [checked]=\"isSelected()\"\n [disabled]=\"!node.groupsSelectable && node.isGroup()\"\n />\n <span></span>\n <span\n class=\"sr-only\"\n for=\"nodeLabel\"\n translate\n >\n Node label\n </span>\n </label>\n </div>\n\n <!-- group button -->\n <button\n class=\"c8y-asset-selector__btn text-truncate\"\n [attr.aria-expanded]=\"!node.open\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n (click)=\"click()\"\n >\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Smart group' | translate\"\n *ngIf=\"node.icon === 'c8y-group-smart'\"\n ></i>\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Group' | translate\"\n *ngIf=\"node.icon !== 'c8y-group-smart'\"\n ></i>\n <span title=\"{{ breadcrumb }}\">\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n <!-- use just for search results to display the path -->\n <p\n class=\"text-truncate\"\n *ngIf=\"showPath\"\n >\n <small\n class=\"text-muted\"\n title=\"{{ breadcrumb }}\"\n >\n <em>{{ breadcrumb }}</em>\n </small>\n </p>\n <!-- up to here -->\n </span>\n </button>\n <!-- not a group button -->\n <button\n class=\"flex-grow\"\n title=\"{{ breadcrumb }}\"\n type=\"button\"\n *ngIf=\"!node.isGroup() && !node.hasChildDevices()\"\n [ngClass]=\"{\n 'btn btn-default btn-sm m-b-8 d-flex j-c-center': node.icon === 'plus',\n 'c8y-asset-selector__btn text-truncate': node.icon != 'plus'\n }\"\n (click)=\"selected(node)\"\n >\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Smart group' | translate\"\n *ngIf=\"node.icon === 'c8y-group-smart'\"\n ></i>\n <i\n class=\"c8y-icon m-r-4\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Group' | translate\"\n *ngIf=\"node.icon !== 'c8y-group-smart'\"\n [ngClass]=\"{ 'c8y-icon-duocolor text-16 ': node.icon != 'plus' }\"\n ></i>\n <span title=\"{{ breadcrumb }}\">\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n <!-- use just for search results to display the path -->\n <p\n class=\"text-truncate text-muted small\"\n *ngIf=\"showPath\"\n >\n <em>{{ breadcrumb }}</em>\n </p>\n <!-- up to here -->\n </span>\n </button>\n \n </div>\n <div\n class=\"collapse\"\n *ngIf=\"node.countChildren()\"\n [collapse]=\"!node.open\"\n [isAnimated]=\"true\"\n [attr.role]=\"'group'\"\n >\n <c8y-asset-selector-node\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n [preselected]=\"preselected || []\"\n [multi]=\"multi\"\n [active]=\"active\"\n [attr.role]=\"view === 'tree' ? 'treeitem' : 'listitem'\"\n (onSelect)=\"onSelect.emit($event)\"\n (onDeselect)=\"onDeselect.emit($event)\"\n ></c8y-asset-selector-node>\n </div>\n</div>\n\n<!-- Miller columns -->\n<div *ngIf=\"view === 'miller'\">\n <div\n class=\"miller-column__item bg-inherit\"\n title=\"{{ breadcrumb | translate }}\"\n *ngIf=\"node && !node.root && !node.hidden && node !== rootNode\"\n [ngClass]=\"{\n active: isActive(),\n 'miller-column__item--more': node.toString() === 'LoadMoreNode'\n }\"\n >\n <div\n class=\"m-l-4 m-r-4 miller-column__item__checkbox\"\n *ngIf=\"node.toString() !== 'LoadMoreNode'\"\n >\n <label [ngClass]=\"{ 'c8y-radio': !multi, 'c8y-checkbox': multi }\">\n <input\n id=\"nodeLabel2\"\n [type]=\"multi ? 'checkbox' : 'radio'\"\n (change)=\"selected(node)\"\n [checked]=\"isSelected()\"\n [disabled]=\"!node.groupsSelectable && node.isGroup()\"\n />\n <span></span>\n <span\n class=\"sr-only\"\n for=\"nodeLabel2\"\n translate\n >\n Node label\n </span>\n </label>\n </div>\n\n <button\n title=\"{{ breadcrumb | translate }}\"\n type=\"button\"\n [ngClass]=\"{\n 'btn btn-default btn-sm d-flex flex-grow j-c-center m-l-16 m-r-16 m-b-4 m-t-4':\n node.toString() === 'LoadMoreNode',\n 'miller-column__item__btn': node.toString() !== 'LoadMoreNode',\n 'btn-pending': node.loading && node.toString() === 'LoadMoreNode'\n }\"\n (click)=\"millerViewClick(node)\"\n >\n <i\n class=\"c8y-icon m-r-4\"\n [c8yIcon]=\"node.icon\"\n [ngClass]=\"{ 'c8y-icon-duocolor text-16': node.toString() !== 'LoadMoreNode' }\"\n ></i>\n <div class=\"text-left text-truncate\">\n <p\n class=\"text-truncate\"\n title=\"{{ node.translateLabel ? (node.label | translate) : node.label }}\"\n >\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n </p>\n <!-- use just for search results to display the path -->\n <small\n class=\"text-muted text-truncate\"\n title=\"{{ breadcrumb }}\"\n *ngIf=\"showPath\"\n >\n <em>{{ breadcrumb }}</em>\n </small>\n <!-- up to here -->\n </div>\n <span\n class=\"p-l-4 m-l-auto\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n >\n <i c8yIcon=\"angle-right\"></i>\n </span>\n </button>\n </div>\n\n <div\n role=\"list\"\n *ngIf=\"node\"\n [ngClass]=\"{ hidden: node !== rootNode }\"\n >\n <c8y-asset-selector-node\n role=\"listitem\"\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n [rootNode]=\"rootNode\"\n [preselected]=\"preselected || []\"\n [multi]=\"multi\"\n [view]=\"view\"\n [index]=\"index\"\n [active]=\"active\"\n [handleNextMillerViewColumn]=\"handleNextMillerViewColumn\"\n (onSelect)=\"onSelect.emit($event)\"\n (onDeselect)=\"onDeselect.emit($event)\"\n ></c8y-asset-selector-node>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "component", type: AssetSelectorNodeComponent, selector: "c8y-asset-selector-node", inputs: ["node", "rootNode", "preselected", "showPath", "multi", "view", "index", "active", "handleNextMillerViewColumn"], outputs: ["isLoadingState", "onSelect", "onDeselect"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AssetSelectorNodeComponent, selector: "c8y-asset-selector-node", inputs: { node: "node", rootNode: "rootNode", preselected: "preselected", showPath: "showPath", multi: "multi", view: "view", index: "index", active: "active", handleNextMillerViewColumn: "handleNextMillerViewColumn", disabled: "disabled" }, outputs: { isLoadingState: "isLoadingState", onSelect: "onSelect", onDeselect: "onDeselect" }, ngImport: i0, template: "<!-- Hierarchy tree -->\n<div\n class=\"c8y-asset-selector__item\"\n [ngStyle]=\"{\n 'margin-left': level > 1 ? 16 + 'px' : '0'\n }\"\n *ngIf=\"view === 'tree'\"\n [attr.role]=\"view === 'tree' ? 'tree' : 'list'\"\n [ngClass]=\"{\n 'c8y-asset-selector__item--more': node?.icon === 'plus',\n 'c8y-asset-selector__item--start': level === 0\n }\"\n>\n <div\n class=\"c8y-asset-selector__node\"\n title=\"{{ breadcrumb | translate }}\"\n *ngIf=\"node && !node.root && !node.hidden\"\n [attr.role]=\"view === 'tree' ? 'treeitem' : 'listitem'\"\n [ngClass]=\"{ 'c8y-asset-selector__node--open': node?.open }\"\n >\n <!-- expand button -->\n <div class=\"c8y-asset-selector__node__btn-spacer\">\n <button\n [title]=\"expandTitle\"\n class=\"collapse-btn btn-dot\"\n (click)=\"click()\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n [attr.aria-expanded]=\"node.open\"\n >\n <i c8yIcon=\"angle-right\"></i>\n </button>\n </div>\n <div class=\"d-flex a-i-center p-t-4 p-b-4 \" *ngIf=\"node.toString() !== 'LoadMoreNode'\">\n <label [ngClass]=\"{ 'c8y-checkbox': multi, 'c8y-radio': !multi }\">\n <input\n id=\"nodeLabel\"\n [type]=\"multi ? 'checkbox' : 'radio'\"\n (change)=\"selected(node)\"\n [checked]=\"isSelected()\"\n [disabled]=\"disabled || !node.groupsSelectable && node.isGroup()\"\n />\n <span></span>\n <span\n class=\"sr-only\"\n for=\"nodeLabel\"\n translate\n >\n Node label\n </span>\n </label>\n </div>\n\n <!-- group button -->\n <button\n class=\"c8y-asset-selector__btn text-truncate\"\n [attr.aria-expanded]=\"!node.open\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n (click)=\"click()\"\n >\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Smart group' | translate\"\n *ngIf=\"node.icon === 'c8y-group-smart'\"\n ></i>\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Group' | translate\"\n *ngIf=\"node.icon !== 'c8y-group-smart'\"\n ></i>\n <span title=\"{{ breadcrumb }}\">\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n <!-- use just for search results to display the path -->\n <p\n class=\"text-truncate\"\n *ngIf=\"showPath\"\n >\n <small\n class=\"text-muted\"\n title=\"{{ breadcrumb }}\"\n >\n <em>{{ breadcrumb }}</em>\n </small>\n </p>\n <!-- up to here -->\n </span>\n </button>\n <!-- not a group button -->\n <button\n class=\"flex-grow\"\n title=\"{{ breadcrumb }}\"\n type=\"button\"\n *ngIf=\"!node.isGroup() && !node.hasChildDevices()\"\n [ngClass]=\"{\n 'btn btn-default btn-sm m-b-8 d-flex j-c-center': node.icon === 'plus',\n 'c8y-asset-selector__btn text-truncate': node.icon != 'plus'\n }\"\n (click)=\"selected(node)\"\n >\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Smart group' | translate\"\n *ngIf=\"node.icon === 'c8y-group-smart'\"\n ></i>\n <i\n class=\"c8y-icon m-r-4\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Group' | translate\"\n *ngIf=\"node.icon !== 'c8y-group-smart'\"\n [ngClass]=\"{ 'c8y-icon-duocolor text-16 ': node.icon != 'plus' }\"\n ></i>\n <span title=\"{{ breadcrumb }}\">\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n <!-- use just for search results to display the path -->\n <p\n class=\"text-truncate text-muted small\"\n *ngIf=\"showPath\"\n >\n <em>{{ breadcrumb }}</em>\n </p>\n <!-- up to here -->\n </span>\n </button>\n \n </div>\n <div\n class=\"collapse\"\n *ngIf=\"node.countChildren()\"\n [collapse]=\"!node.open\"\n [isAnimated]=\"true\"\n [attr.role]=\"'group'\"\n >\n <c8y-asset-selector-node\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n [preselected]=\"preselected || []\"\n [disabled]=\"disabled\"\n [multi]=\"multi\"\n [active]=\"active\"\n [attr.role]=\"view === 'tree' ? 'treeitem' : 'listitem'\"\n (onSelect)=\"onSelect.emit($event)\"\n (onDeselect)=\"onDeselect.emit($event)\"\n ></c8y-asset-selector-node>\n </div>\n</div>\n\n<!-- Miller columns -->\n<div *ngIf=\"view === 'miller'\">\n <div\n class=\"miller-column__item bg-inherit\"\n title=\"{{ breadcrumb | translate }}\"\n *ngIf=\"node && !node.root && !node.hidden && node !== rootNode\"\n [ngClass]=\"{\n active: isActive(),\n 'miller-column__item--more': node.toString() === 'LoadMoreNode'\n }\"\n >\n <div\n class=\"m-l-4 m-r-4 miller-column__item__checkbox\"\n *ngIf=\"node.toString() !== 'LoadMoreNode'\"\n >\n <label [ngClass]=\"{ 'c8y-radio': !multi, 'c8y-checkbox': multi }\">\n <input\n id=\"nodeLabel2\"\n [type]=\"multi ? 'checkbox' : 'radio'\"\n (change)=\"selected(node)\"\n [checked]=\"isSelected()\"\n [disabled]=\"disabled || !node.groupsSelectable && node.isGroup()\"\n />\n <span></span>\n <span\n class=\"sr-only\"\n for=\"nodeLabel2\"\n translate\n >\n Node label\n </span>\n </label>\n </div>\n\n <button\n title=\"{{ breadcrumb | translate }}\"\n type=\"button\"\n [ngClass]=\"{\n 'btn btn-default btn-sm d-flex flex-grow j-c-center m-l-16 m-r-16 m-b-4 m-t-4':\n node.toString() === 'LoadMoreNode',\n 'miller-column__item__btn': node.toString() !== 'LoadMoreNode',\n 'btn-pending': node.loading && node.toString() === 'LoadMoreNode'\n }\"\n (click)=\"millerViewClick(node)\"\n >\n <i\n class=\"c8y-icon m-r-4\"\n [c8yIcon]=\"node.icon\"\n [ngClass]=\"{ 'c8y-icon-duocolor text-16': node.toString() !== 'LoadMoreNode' }\"\n ></i>\n <div class=\"text-left text-truncate\">\n <p\n class=\"text-truncate\"\n title=\"{{ node.translateLabel ? (node.label | translate) : node.label }}\"\n >\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n </p>\n <!-- use just for search results to display the path -->\n <small\n class=\"text-muted text-truncate\"\n title=\"{{ breadcrumb }}\"\n *ngIf=\"showPath\"\n >\n <em>{{ breadcrumb }}</em>\n </small>\n <!-- up to here -->\n </div>\n <span\n class=\"p-l-4 m-l-auto\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n >\n <i c8yIcon=\"angle-right\"></i>\n </span>\n </button>\n </div>\n\n <div\n role=\"list\"\n *ngIf=\"node\"\n [ngClass]=\"{ hidden: node !== rootNode }\"\n >\n <c8y-asset-selector-node\n role=\"listitem\"\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n [rootNode]=\"rootNode\"\n [preselected]=\"preselected || []\"\n [multi]=\"multi\"\n [view]=\"view\"\n [index]=\"index\"\n [active]=\"active\"\n [disabled]=\"disabled\"\n [handleNextMillerViewColumn]=\"handleNextMillerViewColumn\"\n (onSelect)=\"onSelect.emit($event)\"\n (onDeselect)=\"onDeselect.emit($event)\"\n ></c8y-asset-selector-node>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "component", type: AssetSelectorNodeComponent, selector: "c8y-asset-selector-node", inputs: ["node", "rootNode", "preselected", "showPath", "multi", "view", "index", "active", "handleNextMillerViewColumn", "disabled"], outputs: ["isLoadingState", "onSelect", "onDeselect"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
167
168
  }
168
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AssetSelectorNodeComponent, decorators: [{
169
170
  type: Component,
170
- args: [{ selector: 'c8y-asset-selector-node', template: "<!-- Hierarchy tree -->\n<div\n class=\"c8y-asset-selector__item\"\n [ngStyle]=\"{\n 'margin-left': level > 1 ? 16 + 'px' : '0'\n }\"\n *ngIf=\"view === 'tree'\"\n [attr.role]=\"view === 'tree' ? 'tree' : 'list'\"\n [ngClass]=\"{\n 'c8y-asset-selector__item--more': node?.icon === 'plus',\n 'c8y-asset-selector__item--start': level === 0\n }\"\n>\n <div\n class=\"c8y-asset-selector__node\"\n title=\"{{ breadcrumb | translate }}\"\n *ngIf=\"node && !node.root && !node.hidden\"\n [attr.role]=\"view === 'tree' ? 'treeitem' : 'listitem'\"\n [ngClass]=\"{ 'c8y-asset-selector__node--open': node?.open }\"\n >\n <!-- expand button -->\n <div class=\"c8y-asset-selector__node__btn-spacer\">\n <button\n [title]=\"expandTitle\"\n class=\"collapse-btn btn-dot\"\n (click)=\"click()\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n [attr.aria-expanded]=\"node.open\"\n >\n <i c8yIcon=\"angle-right\"></i>\n </button>\n </div>\n <div class=\"d-flex a-i-center p-t-4 p-b-4 \" *ngIf=\"node.toString() !== 'LoadMoreNode'\">\n <label [ngClass]=\"{ 'c8y-checkbox': multi, 'c8y-radio': !multi }\">\n <input\n id=\"nodeLabel\"\n [type]=\"multi ? 'checkbox' : 'radio'\"\n (change)=\"selected(node)\"\n [checked]=\"isSelected()\"\n [disabled]=\"!node.groupsSelectable && node.isGroup()\"\n />\n <span></span>\n <span\n class=\"sr-only\"\n for=\"nodeLabel\"\n translate\n >\n Node label\n </span>\n </label>\n </div>\n\n <!-- group button -->\n <button\n class=\"c8y-asset-selector__btn text-truncate\"\n [attr.aria-expanded]=\"!node.open\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n (click)=\"click()\"\n >\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Smart group' | translate\"\n *ngIf=\"node.icon === 'c8y-group-smart'\"\n ></i>\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Group' | translate\"\n *ngIf=\"node.icon !== 'c8y-group-smart'\"\n ></i>\n <span title=\"{{ breadcrumb }}\">\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n <!-- use just for search results to display the path -->\n <p\n class=\"text-truncate\"\n *ngIf=\"showPath\"\n >\n <small\n class=\"text-muted\"\n title=\"{{ breadcrumb }}\"\n >\n <em>{{ breadcrumb }}</em>\n </small>\n </p>\n <!-- up to here -->\n </span>\n </button>\n <!-- not a group button -->\n <button\n class=\"flex-grow\"\n title=\"{{ breadcrumb }}\"\n type=\"button\"\n *ngIf=\"!node.isGroup() && !node.hasChildDevices()\"\n [ngClass]=\"{\n 'btn btn-default btn-sm m-b-8 d-flex j-c-center': node.icon === 'plus',\n 'c8y-asset-selector__btn text-truncate': node.icon != 'plus'\n }\"\n (click)=\"selected(node)\"\n >\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Smart group' | translate\"\n *ngIf=\"node.icon === 'c8y-group-smart'\"\n ></i>\n <i\n class=\"c8y-icon m-r-4\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Group' | translate\"\n *ngIf=\"node.icon !== 'c8y-group-smart'\"\n [ngClass]=\"{ 'c8y-icon-duocolor text-16 ': node.icon != 'plus' }\"\n ></i>\n <span title=\"{{ breadcrumb }}\">\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n <!-- use just for search results to display the path -->\n <p\n class=\"text-truncate text-muted small\"\n *ngIf=\"showPath\"\n >\n <em>{{ breadcrumb }}</em>\n </p>\n <!-- up to here -->\n </span>\n </button>\n \n </div>\n <div\n class=\"collapse\"\n *ngIf=\"node.countChildren()\"\n [collapse]=\"!node.open\"\n [isAnimated]=\"true\"\n [attr.role]=\"'group'\"\n >\n <c8y-asset-selector-node\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n [preselected]=\"preselected || []\"\n [multi]=\"multi\"\n [active]=\"active\"\n [attr.role]=\"view === 'tree' ? 'treeitem' : 'listitem'\"\n (onSelect)=\"onSelect.emit($event)\"\n (onDeselect)=\"onDeselect.emit($event)\"\n ></c8y-asset-selector-node>\n </div>\n</div>\n\n<!-- Miller columns -->\n<div *ngIf=\"view === 'miller'\">\n <div\n class=\"miller-column__item bg-inherit\"\n title=\"{{ breadcrumb | translate }}\"\n *ngIf=\"node && !node.root && !node.hidden && node !== rootNode\"\n [ngClass]=\"{\n active: isActive(),\n 'miller-column__item--more': node.toString() === 'LoadMoreNode'\n }\"\n >\n <div\n class=\"m-l-4 m-r-4 miller-column__item__checkbox\"\n *ngIf=\"node.toString() !== 'LoadMoreNode'\"\n >\n <label [ngClass]=\"{ 'c8y-radio': !multi, 'c8y-checkbox': multi }\">\n <input\n id=\"nodeLabel2\"\n [type]=\"multi ? 'checkbox' : 'radio'\"\n (change)=\"selected(node)\"\n [checked]=\"isSelected()\"\n [disabled]=\"!node.groupsSelectable && node.isGroup()\"\n />\n <span></span>\n <span\n class=\"sr-only\"\n for=\"nodeLabel2\"\n translate\n >\n Node label\n </span>\n </label>\n </div>\n\n <button\n title=\"{{ breadcrumb | translate }}\"\n type=\"button\"\n [ngClass]=\"{\n 'btn btn-default btn-sm d-flex flex-grow j-c-center m-l-16 m-r-16 m-b-4 m-t-4':\n node.toString() === 'LoadMoreNode',\n 'miller-column__item__btn': node.toString() !== 'LoadMoreNode',\n 'btn-pending': node.loading && node.toString() === 'LoadMoreNode'\n }\"\n (click)=\"millerViewClick(node)\"\n >\n <i\n class=\"c8y-icon m-r-4\"\n [c8yIcon]=\"node.icon\"\n [ngClass]=\"{ 'c8y-icon-duocolor text-16': node.toString() !== 'LoadMoreNode' }\"\n ></i>\n <div class=\"text-left text-truncate\">\n <p\n class=\"text-truncate\"\n title=\"{{ node.translateLabel ? (node.label | translate) : node.label }}\"\n >\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n </p>\n <!-- use just for search results to display the path -->\n <small\n class=\"text-muted text-truncate\"\n title=\"{{ breadcrumb }}\"\n *ngIf=\"showPath\"\n >\n <em>{{ breadcrumb }}</em>\n </small>\n <!-- up to here -->\n </div>\n <span\n class=\"p-l-4 m-l-auto\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n >\n <i c8yIcon=\"angle-right\"></i>\n </span>\n </button>\n </div>\n\n <div\n role=\"list\"\n *ngIf=\"node\"\n [ngClass]=\"{ hidden: node !== rootNode }\"\n >\n <c8y-asset-selector-node\n role=\"listitem\"\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n [rootNode]=\"rootNode\"\n [preselected]=\"preselected || []\"\n [multi]=\"multi\"\n [view]=\"view\"\n [index]=\"index\"\n [active]=\"active\"\n [handleNextMillerViewColumn]=\"handleNextMillerViewColumn\"\n (onSelect)=\"onSelect.emit($event)\"\n (onDeselect)=\"onDeselect.emit($event)\"\n ></c8y-asset-selector-node>\n </div>\n</div>\n" }]
171
+ args: [{ selector: 'c8y-asset-selector-node', template: "<!-- Hierarchy tree -->\n<div\n class=\"c8y-asset-selector__item\"\n [ngStyle]=\"{\n 'margin-left': level > 1 ? 16 + 'px' : '0'\n }\"\n *ngIf=\"view === 'tree'\"\n [attr.role]=\"view === 'tree' ? 'tree' : 'list'\"\n [ngClass]=\"{\n 'c8y-asset-selector__item--more': node?.icon === 'plus',\n 'c8y-asset-selector__item--start': level === 0\n }\"\n>\n <div\n class=\"c8y-asset-selector__node\"\n title=\"{{ breadcrumb | translate }}\"\n *ngIf=\"node && !node.root && !node.hidden\"\n [attr.role]=\"view === 'tree' ? 'treeitem' : 'listitem'\"\n [ngClass]=\"{ 'c8y-asset-selector__node--open': node?.open }\"\n >\n <!-- expand button -->\n <div class=\"c8y-asset-selector__node__btn-spacer\">\n <button\n [title]=\"expandTitle\"\n class=\"collapse-btn btn-dot\"\n (click)=\"click()\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n [attr.aria-expanded]=\"node.open\"\n >\n <i c8yIcon=\"angle-right\"></i>\n </button>\n </div>\n <div class=\"d-flex a-i-center p-t-4 p-b-4 \" *ngIf=\"node.toString() !== 'LoadMoreNode'\">\n <label [ngClass]=\"{ 'c8y-checkbox': multi, 'c8y-radio': !multi }\">\n <input\n id=\"nodeLabel\"\n [type]=\"multi ? 'checkbox' : 'radio'\"\n (change)=\"selected(node)\"\n [checked]=\"isSelected()\"\n [disabled]=\"disabled || !node.groupsSelectable && node.isGroup()\"\n />\n <span></span>\n <span\n class=\"sr-only\"\n for=\"nodeLabel\"\n translate\n >\n Node label\n </span>\n </label>\n </div>\n\n <!-- group button -->\n <button\n class=\"c8y-asset-selector__btn text-truncate\"\n [attr.aria-expanded]=\"!node.open\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n (click)=\"click()\"\n >\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Smart group' | translate\"\n *ngIf=\"node.icon === 'c8y-group-smart'\"\n ></i>\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Group' | translate\"\n *ngIf=\"node.icon !== 'c8y-group-smart'\"\n ></i>\n <span title=\"{{ breadcrumb }}\">\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n <!-- use just for search results to display the path -->\n <p\n class=\"text-truncate\"\n *ngIf=\"showPath\"\n >\n <small\n class=\"text-muted\"\n title=\"{{ breadcrumb }}\"\n >\n <em>{{ breadcrumb }}</em>\n </small>\n </p>\n <!-- up to here -->\n </span>\n </button>\n <!-- not a group button -->\n <button\n class=\"flex-grow\"\n title=\"{{ breadcrumb }}\"\n type=\"button\"\n *ngIf=\"!node.isGroup() && !node.hasChildDevices()\"\n [ngClass]=\"{\n 'btn btn-default btn-sm m-b-8 d-flex j-c-center': node.icon === 'plus',\n 'c8y-asset-selector__btn text-truncate': node.icon != 'plus'\n }\"\n (click)=\"selected(node)\"\n >\n <i\n class=\"c8y-icon c8y-icon-duocolor m-r-4 text-16\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Smart group' | translate\"\n *ngIf=\"node.icon === 'c8y-group-smart'\"\n ></i>\n <i\n class=\"c8y-icon m-r-4\"\n [c8yIcon]=\"node.icon\"\n [title]=\"'Group' | translate\"\n *ngIf=\"node.icon !== 'c8y-group-smart'\"\n [ngClass]=\"{ 'c8y-icon-duocolor text-16 ': node.icon != 'plus' }\"\n ></i>\n <span title=\"{{ breadcrumb }}\">\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n <!-- use just for search results to display the path -->\n <p\n class=\"text-truncate text-muted small\"\n *ngIf=\"showPath\"\n >\n <em>{{ breadcrumb }}</em>\n </p>\n <!-- up to here -->\n </span>\n </button>\n \n </div>\n <div\n class=\"collapse\"\n *ngIf=\"node.countChildren()\"\n [collapse]=\"!node.open\"\n [isAnimated]=\"true\"\n [attr.role]=\"'group'\"\n >\n <c8y-asset-selector-node\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n [preselected]=\"preselected || []\"\n [disabled]=\"disabled\"\n [multi]=\"multi\"\n [active]=\"active\"\n [attr.role]=\"view === 'tree' ? 'treeitem' : 'listitem'\"\n (onSelect)=\"onSelect.emit($event)\"\n (onDeselect)=\"onDeselect.emit($event)\"\n ></c8y-asset-selector-node>\n </div>\n</div>\n\n<!-- Miller columns -->\n<div *ngIf=\"view === 'miller'\">\n <div\n class=\"miller-column__item bg-inherit\"\n title=\"{{ breadcrumb | translate }}\"\n *ngIf=\"node && !node.root && !node.hidden && node !== rootNode\"\n [ngClass]=\"{\n active: isActive(),\n 'miller-column__item--more': node.toString() === 'LoadMoreNode'\n }\"\n >\n <div\n class=\"m-l-4 m-r-4 miller-column__item__checkbox\"\n *ngIf=\"node.toString() !== 'LoadMoreNode'\"\n >\n <label [ngClass]=\"{ 'c8y-radio': !multi, 'c8y-checkbox': multi }\">\n <input\n id=\"nodeLabel2\"\n [type]=\"multi ? 'checkbox' : 'radio'\"\n (change)=\"selected(node)\"\n [checked]=\"isSelected()\"\n [disabled]=\"disabled || !node.groupsSelectable && node.isGroup()\"\n />\n <span></span>\n <span\n class=\"sr-only\"\n for=\"nodeLabel2\"\n translate\n >\n Node label\n </span>\n </label>\n </div>\n\n <button\n title=\"{{ breadcrumb | translate }}\"\n type=\"button\"\n [ngClass]=\"{\n 'btn btn-default btn-sm d-flex flex-grow j-c-center m-l-16 m-r-16 m-b-4 m-t-4':\n node.toString() === 'LoadMoreNode',\n 'miller-column__item__btn': node.toString() !== 'LoadMoreNode',\n 'btn-pending': node.loading && node.toString() === 'LoadMoreNode'\n }\"\n (click)=\"millerViewClick(node)\"\n >\n <i\n class=\"c8y-icon m-r-4\"\n [c8yIcon]=\"node.icon\"\n [ngClass]=\"{ 'c8y-icon-duocolor text-16': node.toString() !== 'LoadMoreNode' }\"\n ></i>\n <div class=\"text-left text-truncate\">\n <p\n class=\"text-truncate\"\n title=\"{{ node.translateLabel ? (node.label | translate) : node.label }}\"\n >\n {{ node.translateLabel ? (node.label | translate) : node.label }}\n </p>\n <!-- use just for search results to display the path -->\n <small\n class=\"text-muted text-truncate\"\n title=\"{{ breadcrumb }}\"\n *ngIf=\"showPath\"\n >\n <em>{{ breadcrumb }}</em>\n </small>\n <!-- up to here -->\n </div>\n <span\n class=\"p-l-4 m-l-auto\"\n *ngIf=\"node.isGroup() || node.hasChildDevices()\"\n >\n <i c8yIcon=\"angle-right\"></i>\n </span>\n </button>\n </div>\n\n <div\n role=\"list\"\n *ngIf=\"node\"\n [ngClass]=\"{ hidden: node !== rootNode }\"\n >\n <c8y-asset-selector-node\n role=\"listitem\"\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n [rootNode]=\"rootNode\"\n [preselected]=\"preselected || []\"\n [multi]=\"multi\"\n [view]=\"view\"\n [index]=\"index\"\n [active]=\"active\"\n [disabled]=\"disabled\"\n [handleNextMillerViewColumn]=\"handleNextMillerViewColumn\"\n (onSelect)=\"onSelect.emit($event)\"\n (onDeselect)=\"onDeselect.emit($event)\"\n ></c8y-asset-selector-node>\n </div>\n</div>\n" }]
171
172
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i2.AssetSelectorService }], propDecorators: { node: [{
172
173
  type: Input
173
174
  }], rootNode: [{
@@ -186,6 +187,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
186
187
  type: Input
187
188
  }], handleNextMillerViewColumn: [{
188
189
  type: Input
190
+ }], disabled: [{
191
+ type: Input
189
192
  }], isLoadingState: [{
190
193
  type: Output
191
194
  }], onSelect: [{
@@ -193,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
193
196
  }], onDeselect: [{
194
197
  type: Output
195
198
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtc2VsZWN0b3Itbm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hc3NldHMtbmF2aWdhdG9yL2Fzc2V0LXNlbGVjdG9yL2Fzc2V0LXNlbGVjdG9yLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vYXNzZXRzLW5hdmlnYXRvci9hc3NldC1zZWxlY3Rvci9hc3NldC1zZWxlY3Rvci1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBTXpDLE1BQU0sT0FBTywwQkFBMEI7SUFnRXJDOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUNVLGdCQUFrQyxFQUNsQyxFQUFxQixFQUN0QixvQkFBMEM7UUFG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UUFBUTtzQkFBakIsTUFBTTtnQkFJRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElJZGVudGlmaWVkLCBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXRzTmF2aWdhdG9yQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgQXNzZXRTZWxlY3RvclNlcnZpY2UgfSBmcm9tICcuL2Fzc2V0LXNlbGVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JvdXBOb2RlIH0gZnJvbSAnLi9ncm91cC1ub2RlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFzc2V0LXNlbGVjdG9yLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtc2VsZWN0b3Itbm9kZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRTZWxlY3Rvck5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgbm9kZS5cbiAgICovXG4gIEBJbnB1dCgpIG5vZGU6IEdyb3VwTm9kZTtcbiAgLyoqXG4gICAqIFJvb3Qgbm9kZS4gTm9kZSBmb3VuZCBhdCB0aGUgdG9wIG9mIHRoZSBoaWVyYXJjaHkuXG4gICAqL1xuICBASW5wdXQoKSByb290Tm9kZTogR3JvdXBOb2RlO1xuICAvKipcbiAgICogQWxsIHByZXNlbGVjdGVkIGl0ZW1zLlxuICAgKi9cbiAgQElucHV0KCkgcHJlc2VsZWN0ZWQ6IElJZGVudGlmaWVkIHwgSUlkZW50aWZpZWRbXSA9IFtdO1xuICAvKipcbiAgICogU2hvdWxkIHRoZSBwYXRoIGJlIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgc2hvd1BhdGggPSBmYWxzZTtcbiAgLyoqXG4gICAqIENhbiB0aGUgdXNlciBzZWxlY3QgbXVsdGlwbGUgYXNzZXRzLlxuICAgKi9cbiAgQElucHV0KCkgbXVsdGkgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHBhdGggdG8gdGhlIG5vZGUuXG4gICAqL1xuICBASW5wdXQoKSB2aWV3OiAndHJlZScgfCAnbWlsbGVyJyA9ICd0cmVlJztcbiAgLyoqXG4gICAqIFVzZWQgb25seSBmb3IgbWlsbGVyLXZpZXcsIGRpc3BsYXlzIHRoZSBjb2x1bW4gbGV2ZWwgZm9yIHRoZSBjdXJyZW50IG5vZGUuXG4gICAqIEUuZyBpZiB0aGUgaW5kZXggaXMgb25lLCB0aGlzIHdpbGwgYmUgc2Vjb25kIGNvbHVtbi5cbiAgICovXG4gIEBJbnB1dCgpIGluZGV4O1xuICAvKipcbiAgICogU2V0cyB0aGUgYWN0aXZlIG5vZGUuXG4gICAqL1xuICBASW5wdXQoKSBhY3RpdmU6IEdyb3VwTm9kZTtcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBzaG91bGQgdmVyaWZ5IHRoZSBuZWVkIHRvIGFkZCBhIGNvbHVtbiB3aGVuIGEgbm9kZSBpcyBjbGlja2VkLlxuICAgKi9cbiAgQElucHV0KCkgaGFuZGxlTmV4dE1pbGxlclZpZXdDb2x1bW46IChub2RlOiBHcm91cE5vZGUsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFdmVudCwgd2hpY2ggaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGxvYWRpbmcgb2YgdGhlIG5vZGUgaGFzIGNvbXBsZXRlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBpc0xvYWRpbmdTdGF0ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBlbWl0cyB3aGVuIGEgbm9kZSBpcyBzZWxlY3RlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPElNYW5hZ2VkT2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgZW1pdHMgd2hlbiBhIG5vZGUgaXMgZGVzZWxlY3RlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkRlc2VsZWN0OiBFdmVudEVtaXR0ZXI8eyBkZXNlbGVjdE1vZGU6ICdzaW5nbGUnIHwgJ2FsbCc7IG1vOiBJTWFuYWdlZE9iamVjdCB9PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGJyZWFkY3J1bWI6IHN0cmluZztcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGxldmVsID0gMDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqIHNldHMgdGhlIGBidG4tcGVuZGluZ2AgY2xhc3MgaW4gdGhlIGxvYWQgbW9yZSBidXR0b24gKi9cbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnZXQgZXhwYW5kVGl0bGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLm5vZGUub3BlbiA/IGdldHRleHQoJ0V4cGFuZCcpIDogZ2V0dGV4dCgnQ29sbGFwc2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlIG9ubHkgZGlcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgYXNzZXRTZWxlY3RvclNlcnZpY2U6IEFzc2V0U2VsZWN0b3JTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5icmVhZGNydW1iID0gdGhpcy5ub2RlLmxhYmVsO1xuICAgIHRoaXMuc2V0dXBCcmVhZGNydW1ic0FuZExldmVsKHRoaXMubm9kZSk7XG5cbiAgICBpZiAodGhpcy5ub2RlIGluc3RhbmNlb2YgR3JvdXBOb2RlKSB7XG4gICAgICB0aGlzLm5vZGUuaG9va0V2ZW50cygpO1xuICAgIH1cblxuICAgIC8vIG9wZW4gb24gc3RhcnR1cFxuICAgIGlmICh0aGlzLm5vZGUucm9vdCkge1xuICAgICAgdGhpcy5jbGljaygpO1xuICAgIH1cblxuICAgIC8vIHVzZWQgZm9yIGxvYWRpbmcgYW5kIHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiB3aGVuIHRoZSBub2RlIGlzIG5vIGxvbmdlciBsb2FkaW5nLlxuICAgIGlmICh0aGlzLm5vZGUuZXZlbnRzKSB7XG4gICAgICB0aGlzLm5vZGUuZXZlbnRzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgICAgZmlsdGVyKChhOiBBc3NldHNOYXZpZ2F0b3JBY3Rpb24pID0+IGEgPT09IEFzc2V0c05hdmlnYXRvckFjdGlvbi5MT0FESU5HX0RPTkUpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmdTdGF0ZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBub2RlLlxuICAgKi9cbiAgY2xpY2soKSB7XG4gICAgdGhpcy5ub2RlLm9wZW4gPSAhdGhpcy5ub2RlLm9wZW47XG4gICAgdGhpcy5ub2RlLmNsaWNrKHsgb3BlbjogdGhpcy5ub2RlLm9wZW4gfSk7XG4gIH1cblxuICBzZXR1cEJyZWFkY3J1bWJzQW5kTGV2ZWwobm9kZTogR3JvdXBOb2RlKSB7XG4gICAgaWYgKG5vZGUucGFyZW50cyAmJiBub2RlLnBhcmVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBub2RlLnBhcmVudHNbMF0gYXMgR3JvdXBOb2RlO1xuICAgICAgdGhpcy5icmVhZGNydW1iID1cbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocGFyZW50LmxhYmVsKSArXG4gICAgICAgICcgPiAnICtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5icmVhZGNydW1iKTtcbiAgICAgIHRoaXMubGV2ZWwrKztcblxuICAgICAgdGhpcy5zZXR1cEJyZWFkY3J1bWJzQW5kTGV2ZWwocGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgbm9kZSBhbmQgZW1pdHMgYSBjaGFuZ2Ugb24gdGhlIHBhcmVudCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBub2RlIFRoZSBub2RlIHRvIHNlbGVjdC5cbiAgICovXG4gIHNlbGVjdGVkKG5vZGU6IEdyb3VwTm9kZSkge1xuICAgIGlmIChub2RlLm1vKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbihub2RlLm1vKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY2xpY2tzIG9uIGEgaXRlbSBpbiBNaWxsZXIgVmlldy5cbiAgICogQHBhcmFtIG5vZGUgVGhlIG5vZGUgdGhhdCB3YXMgY2xpY2tlZC5cbiAgICovXG4gIG1pbGxlclZpZXdDbGljayhub2RlOiBHcm91cE5vZGUpIHtcbiAgICBub2RlLmJyZWFkY3J1bWIgPSB0aGlzLmJyZWFkY3J1bWI7XG5cbiAgICBpZiAoIXRoaXMuaGFuZGxlTmV4dE1pbGxlclZpZXdDb2x1bW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkSGFuZGxlRGVmYXVsdCA9IHRoaXMuaGFuZGxlTmV4dE1pbGxlclZpZXdDb2x1bW4obm9kZSwgdGhpcy5pbmRleCk7XG4gICAgaWYgKHNob3VsZEhhbmRsZURlZmF1bHQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgaXNTZWxlY3RlZCgpIHtcbiAgICBpZiAoIXRoaXMubm9kZS5tbykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NldFNlbGVjdG9yU2VydmljZS5nZXRJbmRleE9mU2VsZWN0ZWQodGhpcy5wcmVzZWxlY3RlZCwgdGhpcy5ub2RlLm1vKSA+IC0xO1xuICB9XG5cbiAgaXNBY3RpdmUoKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlICYmIHRoaXMubm9kZS5tbykge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlLm1vPy5pZCA9PT0gdGhpcy5ub2RlLm1vLmlkO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGlvbihzZWxlY3RlZE1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGlmICghdGhpcy5tdWx0aSkge1xuICAgICAgdGhpcy5vbkRlc2VsZWN0LmVtaXQoeyBkZXNlbGVjdE1vZGU6ICdhbGwnLCBtbzogc2VsZWN0ZWRNbyB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLm9uRGVzZWxlY3QuZW1pdCh7IGRlc2VsZWN0TW9kZTogJ3NpbmdsZScsIG1vOiBzZWxlY3RlZE1vIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQoc2VsZWN0ZWRNbyk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPCEtLSBIaWVyYXJjaHkgdHJlZSAtLT5cbjxkaXZcbiAgY2xhc3M9XCJjOHktYXNzZXQtc2VsZWN0b3JfX2l0ZW1cIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJ21hcmdpbi1sZWZ0JzogbGV2ZWwgPiAxID8gMTYgKyAncHgnIDogJzAnXG4gIH1cIlxuICAqbmdJZj1cInZpZXcgPT09ICd0cmVlJ1wiXG4gIFthdHRyLnJvbGVdPVwidmlldyA9PT0gJ3RyZWUnID8gJ3RyZWUnIDogJ2xpc3QnXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjOHktYXNzZXQtc2VsZWN0b3JfX2l0ZW0tLW1vcmUnOiBub2RlPy5pY29uID09PSAncGx1cycsXG4gICAgJ2M4eS1hc3NldC1zZWxlY3Rvcl9faXRlbS0tc3RhcnQnOiBsZXZlbCA9PT0gMFxuICB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYzh5LWFzc2V0LXNlbGVjdG9yX19ub2RlXCJcbiAgICB0aXRsZT1cInt7IGJyZWFkY3J1bWIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICpuZ0lmPVwibm9kZSAmJiAhbm9kZS5yb290ICYmICFub2RlLmhpZGRlblwiXG4gICAgW2F0dHIucm9sZV09XCJ2aWV3ID09PSAndHJlZScgPyAndHJlZWl0ZW0nIDogJ2xpc3RpdGVtJ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnYzh5LWFzc2V0LXNlbGVjdG9yX19ub2RlLS1vcGVuJzogbm9kZT8ub3BlbiB9XCJcbiAgPlxuICAgPCEtLSBleHBhbmQgYnV0dG9uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjOHktYXNzZXQtc2VsZWN0b3JfX25vZGVfX2J0bi1zcGFjZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3RpdGxlXT1cImV4cGFuZFRpdGxlXCJcbiAgICAgICAgY2xhc3M9XCJjb2xsYXBzZS1idG4gYnRuLWRvdFwiXG4gICAgICAgIChjbGljayk9XCJjbGljaygpXCJcbiAgICAgICAgKm5nSWY9XCJub2RlLmlzR3JvdXAoKSB8fCBub2RlLmhhc0NoaWxkRGV2aWNlcygpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJub2RlLm9wZW5cIlxuICAgICAgPlxuICAgICAgICA8aSBjOHlJY29uPVwiYW5nbGUtcmlnaHRcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXIgcC10LTQgcC1iLTQgXCIgKm5nSWY9XCJub2RlLnRvU3RyaW5nKCkgIT09ICdMb2FkTW9yZU5vZGUnXCI+XG4gICAgICA8bGFiZWwgW25nQ2xhc3NdPVwieyAnYzh5LWNoZWNrYm94JzogbXVsdGksICdjOHktcmFkaW8nOiAhbXVsdGkgfVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cIm5vZGVMYWJlbFwiXG4gICAgICAgICAgW3R5cGVdPVwibXVsdGkgPyAnY2hlY2tib3gnIDogJ3JhZGlvJ1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZCgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIW5vZGUuZ3JvdXBzU2VsZWN0YWJsZSAmJiBub2RlLmlzR3JvdXAoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNyLW9ubHlcIlxuICAgICAgICAgIGZvcj1cIm5vZGVMYWJlbFwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBOb2RlIGxhYmVsXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIGdyb3VwIGJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImM4eS1hc3NldC1zZWxlY3Rvcl9fYnRuIHRleHQtdHJ1bmNhdGVcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhbm9kZS5vcGVuXCJcbiAgICAgICpuZ0lmPVwibm9kZS5pc0dyb3VwKCkgfHwgbm9kZS5oYXNDaGlsZERldmljZXMoKVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2soKVwiXG4gICAgPlxuICAgICAgPGlcbiAgICAgICAgY2xhc3M9XCJjOHktaWNvbiBjOHktaWNvbi1kdW9jb2xvciBtLXItNCB0ZXh0LTE2XCJcbiAgICAgICAgW2M4eUljb25dPVwibm9kZS5pY29uXCJcbiAgICAgICAgW3RpdGxlXT1cIidTbWFydCBncm91cCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAqbmdJZj1cIm5vZGUuaWNvbiA9PT0gJ2M4eS1ncm91cC1zbWFydCdcIlxuICAgICAgPjwvaT5cbiAgICAgIDxpXG4gICAgICAgIGNsYXNzPVwiYzh5LWljb24gYzh5LWljb24tZHVvY29sb3IgbS1yLTQgdGV4dC0xNlwiXG4gICAgICAgIFtjOHlJY29uXT1cIm5vZGUuaWNvblwiXG4gICAgICAgIFt0aXRsZV09XCInR3JvdXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKm5nSWY9XCJub2RlLmljb24gIT09ICdjOHktZ3JvdXAtc21hcnQnXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhbiB0aXRsZT1cInt7IGJyZWFkY3J1bWIgfX1cIj5cbiAgICAgICAge3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX1cbiAgICAgICAgPCEtLSB1c2UganVzdCBmb3Igc2VhcmNoIHJlc3VsdHMgdG8gZGlzcGxheSB0aGUgcGF0aCAtLT5cbiAgICAgICAgPHBcbiAgICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICpuZ0lmPVwic2hvd1BhdGhcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBicmVhZGNydW1iIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZW0+e3sgYnJlYWRjcnVtYiB9fTwvZW0+XG4gICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgPC9wPlxuICAgICAgICA8IS0tIHVwIHRvIGhlcmUgLS0+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPCEtLSBub3QgYSBncm91cCBidXR0b24gLS0+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJmbGV4LWdyb3dcIlxuICAgICAgdGl0bGU9XCJ7eyBicmVhZGNydW1iIH19XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nSWY9XCIhbm9kZS5pc0dyb3VwKCkgJiYgIW5vZGUuaGFzQ2hpbGREZXZpY2VzKClcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbSBtLWItOCBkLWZsZXggai1jLWNlbnRlcic6IG5vZGUuaWNvbiA9PT0gJ3BsdXMnLFxuICAgICAgICAnYzh5LWFzc2V0LXNlbGVjdG9yX19idG4gdGV4dC10cnVuY2F0ZSc6IG5vZGUuaWNvbiAhPSAncGx1cydcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdGVkKG5vZGUpXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBjbGFzcz1cImM4eS1pY29uIGM4eS1pY29uLWR1b2NvbG9yIG0tci00IHRleHQtMTZcIlxuICAgICAgICBbYzh5SWNvbl09XCJub2RlLmljb25cIlxuICAgICAgICBbdGl0bGVdPVwiJ1NtYXJ0IGdyb3VwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICpuZ0lmPVwibm9kZS5pY29uID09PSAnYzh5LWdyb3VwLXNtYXJ0J1wiXG4gICAgICA+PC9pPlxuICAgICAgPGlcbiAgICAgICAgY2xhc3M9XCJjOHktaWNvbiBtLXItNFwiXG4gICAgICAgIFtjOHlJY29uXT1cIm5vZGUuaWNvblwiXG4gICAgICAgIFt0aXRsZV09XCInR3JvdXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKm5nSWY9XCJub2RlLmljb24gIT09ICdjOHktZ3JvdXAtc21hcnQnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnYzh5LWljb24tZHVvY29sb3IgdGV4dC0xNiAnOiBub2RlLmljb24gIT0gJ3BsdXMnIH1cIlxuICAgICAgPjwvaT5cbiAgICAgIDxzcGFuIHRpdGxlPVwie3sgYnJlYWRjcnVtYiB9fVwiPlxuICAgICAgICB7eyBub2RlLnRyYW5zbGF0ZUxhYmVsID8gKG5vZGUubGFiZWwgfCB0cmFuc2xhdGUpIDogbm9kZS5sYWJlbCB9fVxuICAgICAgICA8IS0tIHVzZSBqdXN0IGZvciBzZWFyY2ggcmVzdWx0cyB0byBkaXNwbGF5IHRoZSBwYXRoIC0tPlxuICAgICAgICA8cFxuICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZSB0ZXh0LW11dGVkIHNtYWxsXCJcbiAgICAgICAgICAqbmdJZj1cInNob3dQYXRoXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxlbT57eyBicmVhZGNydW1iIH19PC9lbT5cbiAgICAgICAgPC9wPlxuICAgICAgICA8IS0tIHVwIHRvIGhlcmUgLS0+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICBcbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbGxhcHNlXCJcbiAgICAqbmdJZj1cIm5vZGUuY291bnRDaGlsZHJlbigpXCJcbiAgICBbY29sbGFwc2VdPVwiIW5vZGUub3BlblwiXG4gICAgW2lzQW5pbWF0ZWRdPVwidHJ1ZVwiXG4gICAgW2F0dHIucm9sZV09XCInZ3JvdXAnXCJcbiAgPlxuICAgIDxjOHktYXNzZXQtc2VsZWN0b3Itbm9kZVxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuXCJcbiAgICAgIFtub2RlXT1cImNoaWxkTm9kZVwiXG4gICAgICBbcHJlc2VsZWN0ZWRdPVwicHJlc2VsZWN0ZWQgfHwgW11cIlxuICAgICAgW211bHRpXT1cIm11bHRpXCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlXCJcbiAgICAgIFthdHRyLnJvbGVdPVwidmlldyA9PT0gJ3RyZWUnID8gJ3RyZWVpdGVtJyA6ICdsaXN0aXRlbSdcIlxuICAgICAgKG9uU2VsZWN0KT1cIm9uU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgICAob25EZXNlbGVjdCk9XCJvbkRlc2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgPjwvYzh5LWFzc2V0LXNlbGVjdG9yLW5vZGU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gTWlsbGVyIGNvbHVtbnMgLS0+XG48ZGl2ICpuZ0lmPVwidmlldyA9PT0gJ21pbGxlcidcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibWlsbGVyLWNvbHVtbl9faXRlbSBiZy1pbmhlcml0XCJcbiAgICB0aXRsZT1cInt7IGJyZWFkY3J1bWIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICpuZ0lmPVwibm9kZSAmJiAhbm9kZS5yb290ICYmICFub2RlLmhpZGRlbiAmJiBub2RlICE9PSByb290Tm9kZVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgYWN0aXZlOiBpc0FjdGl2ZSgpLFxuICAgICAgJ21pbGxlci1jb2x1bW5fX2l0ZW0tLW1vcmUnOiBub2RlLnRvU3RyaW5nKCkgPT09ICdMb2FkTW9yZU5vZGUnXG4gICAgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm0tbC00IG0tci00IG1pbGxlci1jb2x1bW5fX2l0ZW1fX2NoZWNrYm94XCJcbiAgICAgICpuZ0lmPVwibm9kZS50b1N0cmluZygpICE9PSAnTG9hZE1vcmVOb2RlJ1wiXG4gICAgPlxuICAgICAgPGxhYmVsIFtuZ0NsYXNzXT1cInsgJ2M4eS1yYWRpbyc6ICFtdWx0aSwgJ2M4eS1jaGVja2JveCc6IG11bHRpIH1cIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9XCJub2RlTGFiZWwyXCJcbiAgICAgICAgICBbdHlwZV09XCJtdWx0aSA/ICdjaGVja2JveCcgOiAncmFkaW8nXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJpc1NlbGVjdGVkKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhbm9kZS5ncm91cHNTZWxlY3RhYmxlICYmIG5vZGUuaXNHcm91cCgpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic3Itb25seVwiXG4gICAgICAgICAgZm9yPVwibm9kZUxhYmVsMlwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBOb2RlIGxhYmVsXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0aXRsZT1cInt7IGJyZWFkY3J1bWIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdidG4gYnRuLWRlZmF1bHQgYnRuLXNtIGQtZmxleCBmbGV4LWdyb3cgai1jLWNlbnRlciBtLWwtMTYgbS1yLTE2IG0tYi00IG0tdC00JzpcbiAgICAgICAgICBub2RlLnRvU3RyaW5nKCkgPT09ICdMb2FkTW9yZU5vZGUnLFxuICAgICAgICAnbWlsbGVyLWNvbHVtbl9faXRlbV9fYnRuJzogbm9kZS50b1N0cmluZygpICE9PSAnTG9hZE1vcmVOb2RlJyxcbiAgICAgICAgJ2J0bi1wZW5kaW5nJzogbm9kZS5sb2FkaW5nICYmIG5vZGUudG9TdHJpbmcoKSA9PT0gJ0xvYWRNb3JlTm9kZSdcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cIm1pbGxlclZpZXdDbGljayhub2RlKVwiXG4gICAgPlxuICAgICAgPGlcbiAgICAgICAgY2xhc3M9XCJjOHktaWNvbiBtLXItNFwiXG4gICAgICAgIFtjOHlJY29uXT1cIm5vZGUuaWNvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2M4eS1pY29uLWR1b2NvbG9yIHRleHQtMTYnOiBub2RlLnRvU3RyaW5nKCkgIT09ICdMb2FkTW9yZU5vZGUnIH1cIlxuICAgICAgPjwvaT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnQgdGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICA8cFxuICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyBub2RlLnRyYW5zbGF0ZUxhYmVsID8gKG5vZGUubGFiZWwgfCB0cmFuc2xhdGUpIDogbm9kZS5sYWJlbCB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBub2RlLnRyYW5zbGF0ZUxhYmVsID8gKG5vZGUubGFiZWwgfCB0cmFuc2xhdGUpIDogbm9kZS5sYWJlbCB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDwhLS0gdXNlIGp1c3QgZm9yIHNlYXJjaCByZXN1bHRzIHRvIGRpc3BsYXkgdGhlIHBhdGggLS0+XG4gICAgICAgIDxzbWFsbFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1tdXRlZCB0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICB0aXRsZT1cInt7IGJyZWFkY3J1bWIgfX1cIlxuICAgICAgICAgICpuZ0lmPVwic2hvd1BhdGhcIlxuICAgICAgICA+XG4gICAgICAgICAgPGVtPnt7IGJyZWFkY3J1bWIgfX08L2VtPlxuICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8IS0tIHVwIHRvIGhlcmUgLS0+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwicC1sLTQgbS1sLWF1dG9cIlxuICAgICAgICAqbmdJZj1cIm5vZGUuaXNHcm91cCgpIHx8IG5vZGUuaGFzQ2hpbGREZXZpY2VzKClcIlxuICAgICAgPlxuICAgICAgICA8aSBjOHlJY29uPVwiYW5nbGUtcmlnaHRcIj48L2k+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICByb2xlPVwibGlzdFwiXG4gICAgKm5nSWY9XCJub2RlXCJcbiAgICBbbmdDbGFzc109XCJ7IGhpZGRlbjogbm9kZSAhPT0gcm9vdE5vZGUgfVwiXG4gID5cbiAgICA8Yzh5LWFzc2V0LXNlbGVjdG9yLW5vZGVcbiAgICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gICAgICAqbmdGb3I9XCJsZXQgY2hpbGROb2RlIG9mIG5vZGUuY2hpbGRyZW5cIlxuICAgICAgW25vZGVdPVwiY2hpbGROb2RlXCJcbiAgICAgIFtyb290Tm9kZV09XCJyb290Tm9kZVwiXG4gICAgICBbcHJlc2VsZWN0ZWRdPVwicHJlc2VsZWN0ZWQgfHwgW11cIlxuICAgICAgW211bHRpXT1cIm11bHRpXCJcbiAgICAgIFt2aWV3XT1cInZpZXdcIlxuICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlXCJcbiAgICAgIFtoYW5kbGVOZXh0TWlsbGVyVmlld0NvbHVtbl09XCJoYW5kbGVOZXh0TWlsbGVyVmlld0NvbHVtblwiXG4gICAgICAob25TZWxlY3QpPVwib25TZWxlY3QuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChvbkRlc2VsZWN0KT1cIm9uRGVzZWxlY3QuZW1pdCgkZXZlbnQpXCJcbiAgICA+PC9jOHktYXNzZXQtc2VsZWN0b3Itbm9kZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtc2VsZWN0b3Itbm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hc3NldHMtbmF2aWdhdG9yL2Fzc2V0LXNlbGVjdG9yL2Fzc2V0LXNlbGVjdG9yLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vYXNzZXRzLW5hdmlnYXRvci9hc3NldC1zZWxlY3Rvci9hc3NldC1zZWxlY3Rvci1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBTXpDLE1BQU0sT0FBTywwQkFBMEI7SUFrRXJDOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUNVLGdCQUFrQyxFQUNsQyxFQUFxQixFQUN0QixvQkFBMEM7UUFG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RUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJSSxjQUFjO3NCQUF2QixNQUFNO2dCQUlHLFFBQVE7c0JBQWpCLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSWRlbnRpZmllZCwgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFzc2V0c05hdmlnYXRvckFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbi5lbnVtJztcbmltcG9ydCB7IEFzc2V0U2VsZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi9hc3NldC1zZWxlY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IEdyb3VwTm9kZSB9IGZyb20gJy4vZ3JvdXAtbm9kZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hc3NldC1zZWxlY3Rvci1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXNlbGVjdG9yLW5vZGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFzc2V0U2VsZWN0b3JOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IG5vZGUuXG4gICAqL1xuICBASW5wdXQoKSBub2RlOiBHcm91cE5vZGU7XG4gIC8qKlxuICAgKiBSb290IG5vZGUuIE5vZGUgZm91bmQgYXQgdGhlIHRvcCBvZiB0aGUgaGllcmFyY2h5LlxuICAgKi9cbiAgQElucHV0KCkgcm9vdE5vZGU6IEdyb3VwTm9kZTtcbiAgLyoqXG4gICAqIEFsbCBwcmVzZWxlY3RlZCBpdGVtcy5cbiAgICovXG4gIEBJbnB1dCgpIHByZXNlbGVjdGVkOiBJSWRlbnRpZmllZCB8IElJZGVudGlmaWVkW10gPSBbXTtcbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgcGF0aCBiZSBzaG93bi5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dQYXRoID0gZmFsc2U7XG4gIC8qKlxuICAgKiBDYW4gdGhlIHVzZXIgc2VsZWN0IG11bHRpcGxlIGFzc2V0cy5cbiAgICovXG4gIEBJbnB1dCgpIG11bHRpID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBwYXRoIHRvIHRoZSBub2RlLlxuICAgKi9cbiAgQElucHV0KCkgdmlldzogJ3RyZWUnIHwgJ21pbGxlcicgPSAndHJlZSc7XG4gIC8qKlxuICAgKiBVc2VkIG9ubHkgZm9yIG1pbGxlci12aWV3LCBkaXNwbGF5cyB0aGUgY29sdW1uIGxldmVsIGZvciB0aGUgY3VycmVudCBub2RlLlxuICAgKiBFLmcgaWYgdGhlIGluZGV4IGlzIG9uZSwgdGhpcyB3aWxsIGJlIHNlY29uZCBjb2x1bW4uXG4gICAqL1xuICBASW5wdXQoKSBpbmRleDtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSBub2RlLlxuICAgKi9cbiAgQElucHV0KCkgYWN0aXZlOiBHcm91cE5vZGU7XG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIHZlcmlmeSB0aGUgbmVlZCB0byBhZGQgYSBjb2x1bW4gd2hlbiBhIG5vZGUgaXMgY2xpY2tlZC5cbiAgICovXG4gIEBJbnB1dCgpIGhhbmRsZU5leHRNaWxsZXJWaWV3Q29sdW1uOiAobm9kZTogR3JvdXBOb2RlLCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8qKlxuICAgKiBFdmVudCwgd2hpY2ggaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGxvYWRpbmcgb2YgdGhlIG5vZGUgaGFzIGNvbXBsZXRlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBpc0xvYWRpbmdTdGF0ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBlbWl0cyB3aGVuIGEgbm9kZSBpcyBzZWxlY3RlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPElNYW5hZ2VkT2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgZW1pdHMgd2hlbiBhIG5vZGUgaXMgZGVzZWxlY3RlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkRlc2VsZWN0OiBFdmVudEVtaXR0ZXI8eyBkZXNlbGVjdE1vZGU6ICdzaW5nbGUnIHwgJ2FsbCc7IG1vOiBJTWFuYWdlZE9iamVjdCB9PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGJyZWFkY3J1bWI6IHN0cmluZztcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGxldmVsID0gMDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqIHNldHMgdGhlIGBidG4tcGVuZGluZ2AgY2xhc3MgaW4gdGhlIGxvYWQgbW9yZSBidXR0b24gKi9cbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnZXQgZXhwYW5kVGl0bGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLm5vZGUub3BlbiA/IGdldHRleHQoJ0V4cGFuZCcpIDogZ2V0dGV4dCgnQ29sbGFwc2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlIG9ubHkgZGlcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgYXNzZXRTZWxlY3RvclNlcnZpY2U6IEFzc2V0U2VsZWN0b3JTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5icmVhZGNydW1iID0gdGhpcy5ub2RlLmxhYmVsO1xuICAgIHRoaXMuc2V0dXBCcmVhZGNydW1ic0FuZExldmVsKHRoaXMubm9kZSk7XG5cbiAgICBpZiAodGhpcy5ub2RlIGluc3RhbmNlb2YgR3JvdXBOb2RlKSB7XG4gICAgICB0aGlzLm5vZGUuaG9va0V2ZW50cygpO1xuICAgIH1cblxuICAgIC8vIG9wZW4gb24gc3RhcnR1cFxuICAgIGlmICh0aGlzLm5vZGUucm9vdCkge1xuICAgICAgdGhpcy5jbGljaygpO1xuICAgIH1cblxuICAgIC8vIHVzZWQgZm9yIGxvYWRpbmcgYW5kIHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiB3aGVuIHRoZSBub2RlIGlzIG5vIGxvbmdlciBsb2FkaW5nLlxuICAgIGlmICh0aGlzLm5vZGUuZXZlbnRzKSB7XG4gICAgICB0aGlzLm5vZGUuZXZlbnRzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgICAgZmlsdGVyKChhOiBBc3NldHNOYXZpZ2F0b3JBY3Rpb24pID0+IGEgPT09IEFzc2V0c05hdmlnYXRvckFjdGlvbi5MT0FESU5HX0RPTkUpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmdTdGF0ZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBub2RlLlxuICAgKi9cbiAgY2xpY2soKSB7XG4gICAgdGhpcy5ub2RlLm9wZW4gPSAhdGhpcy5ub2RlLm9wZW47XG4gICAgdGhpcy5ub2RlLmNsaWNrKHsgb3BlbjogdGhpcy5ub2RlLm9wZW4gfSk7XG4gIH1cblxuICBzZXR1cEJyZWFkY3J1bWJzQW5kTGV2ZWwobm9kZTogR3JvdXBOb2RlKSB7XG4gICAgaWYgKG5vZGUucGFyZW50cyAmJiBub2RlLnBhcmVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBub2RlLnBhcmVudHNbMF0gYXMgR3JvdXBOb2RlO1xuICAgICAgdGhpcy5icmVhZGNydW1iID1cbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocGFyZW50LmxhYmVsKSArXG4gICAgICAgICcgPiAnICtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5icmVhZGNydW1iKTtcbiAgICAgIHRoaXMubGV2ZWwrKztcblxuICAgICAgdGhpcy5zZXR1cEJyZWFkY3J1bWJzQW5kTGV2ZWwocGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgbm9kZSBhbmQgZW1pdHMgYSBjaGFuZ2Ugb24gdGhlIHBhcmVudCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBub2RlIFRoZSBub2RlIHRvIHNlbGVjdC5cbiAgICovXG4gIHNlbGVjdGVkKG5vZGU6IEdyb3VwTm9kZSkge1xuICAgIGlmIChub2RlLm1vKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbihub2RlLm1vKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY2xpY2tzIG9uIGEgaXRlbSBpbiBNaWxsZXIgVmlldy5cbiAgICogQHBhcmFtIG5vZGUgVGhlIG5vZGUgdGhhdCB3YXMgY2xpY2tlZC5cbiAgICovXG4gIG1pbGxlclZpZXdDbGljayhub2RlOiBHcm91cE5vZGUpIHtcbiAgICBub2RlLmJyZWFkY3J1bWIgPSB0aGlzLmJyZWFkY3J1bWI7XG5cbiAgICBpZiAoIXRoaXMuaGFuZGxlTmV4dE1pbGxlclZpZXdDb2x1bW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkSGFuZGxlRGVmYXVsdCA9IHRoaXMuaGFuZGxlTmV4dE1pbGxlclZpZXdDb2x1bW4obm9kZSwgdGhpcy5pbmRleCk7XG4gICAgaWYgKHNob3VsZEhhbmRsZURlZmF1bHQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgaXNTZWxlY3RlZCgpIHtcbiAgICBpZiAoIXRoaXMubm9kZS5tbykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NldFNlbGVjdG9yU2VydmljZS5nZXRJbmRleE9mU2VsZWN0ZWQodGhpcy5wcmVzZWxlY3RlZCwgdGhpcy5ub2RlLm1vKSA+IC0xO1xuICB9XG5cbiAgaXNBY3RpdmUoKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlICYmIHRoaXMubm9kZS5tbykge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlLm1vPy5pZCA9PT0gdGhpcy5ub2RlLm1vLmlkO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGlvbihzZWxlY3RlZE1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGlmICghdGhpcy5tdWx0aSkge1xuICAgICAgdGhpcy5vbkRlc2VsZWN0LmVtaXQoeyBkZXNlbGVjdE1vZGU6ICdhbGwnLCBtbzogc2VsZWN0ZWRNbyB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLm9uRGVzZWxlY3QuZW1pdCh7IGRlc2VsZWN0TW9kZTogJ3NpbmdsZScsIG1vOiBzZWxlY3RlZE1vIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQoc2VsZWN0ZWRNbyk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPCEtLSBIaWVyYXJjaHkgdHJlZSAtLT5cbjxkaXZcbiAgY2xhc3M9XCJjOHktYXNzZXQtc2VsZWN0b3JfX2l0ZW1cIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJ21hcmdpbi1sZWZ0JzogbGV2ZWwgPiAxID8gMTYgKyAncHgnIDogJzAnXG4gIH1cIlxuICAqbmdJZj1cInZpZXcgPT09ICd0cmVlJ1wiXG4gIFthdHRyLnJvbGVdPVwidmlldyA9PT0gJ3RyZWUnID8gJ3RyZWUnIDogJ2xpc3QnXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjOHktYXNzZXQtc2VsZWN0b3JfX2l0ZW0tLW1vcmUnOiBub2RlPy5pY29uID09PSAncGx1cycsXG4gICAgJ2M4eS1hc3NldC1zZWxlY3Rvcl9faXRlbS0tc3RhcnQnOiBsZXZlbCA9PT0gMFxuICB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYzh5LWFzc2V0LXNlbGVjdG9yX19ub2RlXCJcbiAgICB0aXRsZT1cInt7IGJyZWFkY3J1bWIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICpuZ0lmPVwibm9kZSAmJiAhbm9kZS5yb290ICYmICFub2RlLmhpZGRlblwiXG4gICAgW2F0dHIucm9sZV09XCJ2aWV3ID09PSAndHJlZScgPyAndHJlZWl0ZW0nIDogJ2xpc3RpdGVtJ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnYzh5LWFzc2V0LXNlbGVjdG9yX19ub2RlLS1vcGVuJzogbm9kZT8ub3BlbiB9XCJcbiAgPlxuICAgPCEtLSBleHBhbmQgYnV0dG9uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjOHktYXNzZXQtc2VsZWN0b3JfX25vZGVfX2J0bi1zcGFjZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3RpdGxlXT1cImV4cGFuZFRpdGxlXCJcbiAgICAgICAgY2xhc3M9XCJjb2xsYXBzZS1idG4gYnRuLWRvdFwiXG4gICAgICAgIChjbGljayk9XCJjbGljaygpXCJcbiAgICAgICAgKm5nSWY9XCJub2RlLmlzR3JvdXAoKSB8fCBub2RlLmhhc0NoaWxkRGV2aWNlcygpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJub2RlLm9wZW5cIlxuICAgICAgPlxuICAgICAgICA8aSBjOHlJY29uPVwiYW5nbGUtcmlnaHRcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXIgcC10LTQgcC1iLTQgXCIgKm5nSWY9XCJub2RlLnRvU3RyaW5nKCkgIT09ICdMb2FkTW9yZU5vZGUnXCI+XG4gICAgICA8bGFiZWwgW25nQ2xhc3NdPVwieyAnYzh5LWNoZWNrYm94JzogbXVsdGksICdjOHktcmFkaW8nOiAhbXVsdGkgfVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cIm5vZGVMYWJlbFwiXG4gICAgICAgICAgW3R5cGVdPVwibXVsdGkgPyAnY2hlY2tib3gnIDogJ3JhZGlvJ1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZCgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIW5vZGUuZ3JvdXBzU2VsZWN0YWJsZSAmJiBub2RlLmlzR3JvdXAoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNyLW9ubHlcIlxuICAgICAgICAgIGZvcj1cIm5vZGVMYWJlbFwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgID5cbiAgICAgICAgICBOb2RlIGxhYmVsXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIGdyb3VwIGJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImM4eS1hc3NldC1zZWxlY3Rvcl9fYnRuIHRleHQtdHJ1bmNhdGVcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhbm9kZS5vcGVuXCJcbiAgICAgICpuZ0lmPVwibm9kZS5pc0dyb3VwKCkgfHwgbm9kZS5oYXNDaGlsZERldmljZXMoKVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2soKVwiXG4gICAgPlxuICAgICAgPGlcbiAgICAgICAgY2xhc3M9XCJjOHktaWNvbiBjOHktaWNvbi1kdW9jb2xvciBtLXItNCB0ZXh0LTE2XCJcbiAgICAgICAgW2M4eUljb25dPVwibm9kZS5pY29uXCJcbiAgICAgICAgW3RpdGxlXT1cIidTbWFydCBncm91cCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAqbmdJZj1cIm5vZGUuaWNvbiA9PT0gJ2M4eS1ncm91cC1zbWFydCdcIlxuICAgICAgPjwvaT5cbiAgICAgIDxpXG4gICAgICAgIGNsYXNzPVwiYzh5LWljb24gYzh5LWljb24tZHVvY29sb3IgbS1yLTQgdGV4dC0xNlwiXG4gICAgICAgIFtjOHlJY29uXT1cIm5vZGUuaWNvblwiXG4gICAgICAgIFt0aXRsZV09XCInR3JvdXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKm5nSWY9XCJub2RlLmljb24gIT09ICdjOHktZ3JvdXAtc21hcnQnXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhbiB0aXRsZT1cInt7IGJyZWFkY3J1bWIgfX1cIj5cbiAgICAgICAge3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX1cbiAgICAgICAgPCEtLSB1c2UganVzdCBmb3Igc2VhcmNoIHJlc3VsdHMgdG8gZGlzcGxheSB0aGUgcGF0aCAtLT5cbiAgICAgICAgPHBcbiAgICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICpuZ0lmPVwic2hvd1BhdGhcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBicmVhZGNydW1iIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZW0+e3sgYnJlYWRjcnVtYiB9fTwvZW0+XG4gICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgPC9wPlxuICAgICAgICA8IS0tIHVwIHRvIGhlcmUgLS0+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPCEtLSBub3QgYSBncm91cCBidXR0b24gLS0+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJmbGV4LWdyb3dcIlxuICAgICAgdGl0bGU9XCJ7eyBicmVhZGNydW1iIH19XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nSWY9XCIhbm9kZS5pc0dyb3VwKCkgJiYgIW5vZGUuaGFzQ2hpbGREZXZpY2VzKClcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbSBtLWItOCBkLWZsZXggai1jLWNlbnRlcic6IG5vZGUuaWNvbiA9PT0gJ3BsdXMnLFxuICAgICAgICAnYzh5LWFzc2V0LXNlbGVjdG9yX19idG4gdGV4dC10cnVuY2F0ZSc6IG5vZGUuaWNvbiAhPSAncGx1cydcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdGVkKG5vZGUpXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBjbGFzcz1cImM4eS1pY29uIGM4eS1pY29uLWR1b2NvbG9yIG0tci00IHRleHQtMTZcIlxuICAgICAgICBbYzh5SWNvbl09XCJub2RlLmljb25cIlxuICAgICAgICBbdGl0bGVdPVwiJ1NtYXJ0IGdyb3VwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICpuZ0lmPVwibm9kZS5pY29uID09PSAnYzh5LWdyb3VwLXNtYXJ0J1wiXG4gICAgICA+PC9pPlxuICAgICAgPGlcbiAgICAgICAgY2xhc3M9XCJjOHktaWNvbiBtLXItNFwiXG4gICAgICAgIFtjOHlJY29uXT1cIm5vZGUuaWNvblwiXG4gICAgICAgIFt0aXRsZV09XCInR3JvdXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKm5nSWY9XCJub2RlLmljb24gIT09ICdjOHktZ3JvdXAtc21hcnQnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnYzh5LWljb24tZHVvY29sb3IgdGV4dC0xNiAnOiBub2RlLmljb24gIT0gJ3BsdXMnIH1cIlxuICAgICAgPjwvaT5cbiAgICAgIDxzcGFuIHRpdGxlPVwie3sgYnJlYWRjcnVtYiB9fVwiPlxuICAgICAgICB7eyBub2RlLnRyYW5zbGF0ZUxhYmVsID8gKG5vZGUubGFiZWwgfCB0cmFuc2xhdGUpIDogbm9kZS5sYWJlbCB9fVxuICAgICAgICA8IS0tIHVzZSBqdXN0IGZvciBzZWFyY2ggcmVzdWx0cyB0byBkaXNwbGF5IHRoZSBwYXRoIC0tPlxuICAgICAgICA8cFxuICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZSB0ZXh0LW11dGVkIHNtYWxsXCJcbiAgICAgICAgICAqbmdJZj1cInNob3dQYXRoXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxlbT57eyBicmVhZGNydW1iIH19PC9lbT5cbiAgICAgICAgPC9wPlxuICAgICAgICA8IS0tIHVwIHRvIGhlcmUgLS0+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICBcbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbGxhcHNlXCJcbiAgICAqbmdJZj1cIm5vZGUuY291bnRDaGlsZHJlbigpXCJcbiAgICBbY29sbGFwc2VdPVwiIW5vZGUub3BlblwiXG4gICAgW2lzQW5pbWF0ZWRdPVwidHJ1ZVwiXG4gICAgW2F0dHIucm9sZV09XCInZ3JvdXAnXCJcbiAgPlxuICAgIDxjOHktYXNzZXQtc2VsZWN0b3Itbm9kZVxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuXCJcbiAgICAgIFtub2RlXT1cImNoaWxkTm9kZVwiXG4gICAgICBbcHJlc2VsZWN0ZWRdPVwicHJlc2VsZWN0ZWQgfHwgW11cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFttdWx0aV09XCJtdWx0aVwiXG4gICAgICBbYWN0aXZlXT1cImFjdGl2ZVwiXG4gICAgICBbYXR0ci5yb2xlXT1cInZpZXcgPT09ICd0cmVlJyA/ICd0cmVlaXRlbScgOiAnbGlzdGl0ZW0nXCJcbiAgICAgIChvblNlbGVjdCk9XCJvblNlbGVjdC5lbWl0KCRldmVudClcIlxuICAgICAgKG9uRGVzZWxlY3QpPVwib25EZXNlbGVjdC5lbWl0KCRldmVudClcIlxuICAgID48L2M4eS1hc3NldC1zZWxlY3Rvci1ub2RlPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIE1pbGxlciBjb2x1bW5zIC0tPlxuPGRpdiAqbmdJZj1cInZpZXcgPT09ICdtaWxsZXInXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1pbGxlci1jb2x1bW5fX2l0ZW0gYmctaW5oZXJpdFwiXG4gICAgdGl0bGU9XCJ7eyBicmVhZGNydW1iIHwgdHJhbnNsYXRlIH19XCJcbiAgICAqbmdJZj1cIm5vZGUgJiYgIW5vZGUucm9vdCAmJiAhbm9kZS5oaWRkZW4gJiYgbm9kZSAhPT0gcm9vdE5vZGVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgIGFjdGl2ZTogaXNBY3RpdmUoKSxcbiAgICAgICdtaWxsZXItY29sdW1uX19pdGVtLS1tb3JlJzogbm9kZS50b1N0cmluZygpID09PSAnTG9hZE1vcmVOb2RlJ1xuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtLWwtNCBtLXItNCBtaWxsZXItY29sdW1uX19pdGVtX19jaGVja2JveFwiXG4gICAgICAqbmdJZj1cIm5vZGUudG9TdHJpbmcoKSAhPT0gJ0xvYWRNb3JlTm9kZSdcIlxuICAgID5cbiAgICAgIDxsYWJlbCBbbmdDbGFzc109XCJ7ICdjOHktcmFkaW8nOiAhbXVsdGksICdjOHktY2hlY2tib3gnOiBtdWx0aSB9XCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwibm9kZUxhYmVsMlwiXG4gICAgICAgICAgW3R5cGVdPVwibXVsdGkgPyAnY2hlY2tib3gnIDogJ3JhZGlvJ1wiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZCgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIW5vZGUuZ3JvdXBzU2VsZWN0YWJsZSAmJiBub2RlLmlzR3JvdXAoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNyLW9ubHlcIlxuICAgICAgICAgIGZvcj1cIm5vZGVMYWJlbDJcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgTm9kZSBsYWJlbFxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvblxuICAgICAgdGl0bGU9XCJ7eyBicmVhZGNydW1iIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbSBkLWZsZXggZmxleC1ncm93IGotYy1jZW50ZXIgbS1sLTE2IG0tci0xNiBtLWItNCBtLXQtNCc6XG4gICAgICAgICAgbm9kZS50b1N0cmluZygpID09PSAnTG9hZE1vcmVOb2RlJyxcbiAgICAgICAgJ21pbGxlci1jb2x1bW5fX2l0ZW1fX2J0bic6IG5vZGUudG9TdHJpbmcoKSAhPT0gJ0xvYWRNb3JlTm9kZScsXG4gICAgICAgICdidG4tcGVuZGluZyc6IG5vZGUubG9hZGluZyAmJiBub2RlLnRvU3RyaW5nKCkgPT09ICdMb2FkTW9yZU5vZGUnXG4gICAgICB9XCJcbiAgICAgIChjbGljayk9XCJtaWxsZXJWaWV3Q2xpY2sobm9kZSlcIlxuICAgID5cbiAgICAgIDxpXG4gICAgICAgIGNsYXNzPVwiYzh5LWljb24gbS1yLTRcIlxuICAgICAgICBbYzh5SWNvbl09XCJub2RlLmljb25cIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdjOHktaWNvbi1kdW9jb2xvciB0ZXh0LTE2Jzogbm9kZS50b1N0cmluZygpICE9PSAnTG9hZE1vcmVOb2RlJyB9XCJcbiAgICAgID48L2k+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZWZ0IHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgIHRpdGxlPVwie3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8IS0tIHVzZSBqdXN0IGZvciBzZWFyY2ggcmVzdWx0cyB0byBkaXNwbGF5IHRoZSBwYXRoIC0tPlxuICAgICAgICA8c21hbGxcbiAgICAgICAgICBjbGFzcz1cInRleHQtbXV0ZWQgdGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyBicmVhZGNydW1iIH19XCJcbiAgICAgICAgICAqbmdJZj1cInNob3dQYXRoXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxlbT57eyBicmVhZGNydW1iIH19PC9lbT5cbiAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgPCEtLSB1cCB0byBoZXJlIC0tPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInAtbC00IG0tbC1hdXRvXCJcbiAgICAgICAgKm5nSWY9XCJub2RlLmlzR3JvdXAoKSB8fCBub2RlLmhhc0NoaWxkRGV2aWNlcygpXCJcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cImFuZ2xlLXJpZ2h0XCI+PC9pPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgcm9sZT1cImxpc3RcIlxuICAgICpuZ0lmPVwibm9kZVwiXG4gICAgW25nQ2xhc3NdPVwieyBoaWRkZW46IG5vZGUgIT09IHJvb3ROb2RlIH1cIlxuICA+XG4gICAgPGM4eS1hc3NldC1zZWxlY3Rvci1ub2RlXG4gICAgICByb2xlPVwibGlzdGl0ZW1cIlxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuXCJcbiAgICAgIFtub2RlXT1cImNoaWxkTm9kZVwiXG4gICAgICBbcm9vdE5vZGVdPVwicm9vdE5vZGVcIlxuICAgICAgW3ByZXNlbGVjdGVkXT1cInByZXNlbGVjdGVkIHx8IFtdXCJcbiAgICAgIFttdWx0aV09XCJtdWx0aVwiXG4gICAgICBbdmlld109XCJ2aWV3XCJcbiAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICBbYWN0aXZlXT1cImFjdGl2ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2hhbmRsZU5leHRNaWxsZXJWaWV3Q29sdW1uXT1cImhhbmRsZU5leHRNaWxsZXJWaWV3Q29sdW1uXCJcbiAgICAgIChvblNlbGVjdCk9XCJvblNlbGVjdC5lbWl0KCRldmVudClcIlxuICAgICAgKG9uRGVzZWxlY3QpPVwib25EZXNlbGVjdC5lbWl0KCRldmVudClcIlxuICAgID48L2M4eS1hc3NldC1zZWxlY3Rvci1ub2RlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19