@c8y/ngx-components 1018.503.117 → 1018.503.118

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 (34) hide show
  1. package/esm2020/core/navigator/navigator-node.component.mjs +7 -2
  2. package/esm2020/sub-assets/add-group/add-group.module.mjs +4 -16
  3. package/esm2020/sub-assets/groups.component.mjs +47 -9
  4. package/esm2020/sub-assets/sub-assets.component.mjs +42 -12
  5. package/esm2020/widgets/implementations/cockpit-welcome/welcome.component.mjs +11 -5
  6. package/esm2020/widgets/implementations/device-management-welcome/welcome.component.mjs +5 -4
  7. package/esm2020/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.mjs +49 -11
  8. package/fesm2015/c8y-ngx-components-sub-assets.mjs +99 -49
  9. package/fesm2015/c8y-ngx-components-sub-assets.mjs.map +1 -1
  10. package/fesm2015/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +10 -4
  11. package/fesm2015/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
  12. package/fesm2015/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +4 -3
  13. package/fesm2015/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
  14. package/fesm2015/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +43 -8
  15. package/fesm2015/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
  16. package/fesm2015/c8y-ngx-components.mjs +6 -1
  17. package/fesm2015/c8y-ngx-components.mjs.map +1 -1
  18. package/fesm2020/c8y-ngx-components-sub-assets.mjs +112 -62
  19. package/fesm2020/c8y-ngx-components-sub-assets.mjs.map +1 -1
  20. package/fesm2020/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +10 -4
  21. package/fesm2020/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
  22. package/fesm2020/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +4 -3
  23. package/fesm2020/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
  24. package/fesm2020/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +45 -8
  25. package/fesm2020/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
  26. package/fesm2020/c8y-ngx-components.mjs +6 -1
  27. package/fesm2020/c8y-ngx-components.mjs.map +1 -1
  28. package/locales/fr.po +22 -22
  29. package/locales/ko.po +1 -1
  30. package/locales/pt_BR.po +2 -2
  31. package/package.json +1 -1
  32. package/sub-assets/groups.component.d.ts +16 -2
  33. package/sub-assets/sub-assets.component.d.ts +14 -3
  34. package/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.d.ts +10 -3
@@ -41,7 +41,12 @@ export class NavigatorNodeComponent {
41
41
  if (isUndefined(this.node.path)) {
42
42
  return false;
43
43
  }
44
- return this.router.isActive(this.node.path, this.node.routerLinkExact);
44
+ return this.router.isActive(this.node.path, {
45
+ paths: this.node.routerLinkExact ? 'exact' : 'subset',
46
+ queryParams: 'ignored',
47
+ fragment: 'ignored',
48
+ matrixParams: 'ignored'
49
+ });
45
50
  }), distinctUntilChanged(), tap(isActive => {
46
51
  if (isActive) {
47
52
  this.expandCollapse(true);
@@ -185,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
185
190
  type: ViewChild,
186
191
  args: [PopoverConfirmComponent, { static: false }]
187
192
  }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9uYXZpZ2F0b3IvbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS9uYXZpZ2F0b3IvbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7O0FBUXhDOztHQUVHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQTREakMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUE1Q2xDOzs7Ozs7O1dBT0c7UUFDTyxjQUFTLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFTL0Q7O1dBRUc7UUFDSCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVoQzs7V0FFRztRQUNILGNBQVMsR0FBRyxLQUFLLENBQ2Ys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RSxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUtuRCxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQVVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBS2dELE9BQU87c0JBQTdELFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9wb3BvdmVyLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRvckljb25Db21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRvci1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja09wdGlvbnMsIE5hdmlnYXRvck5vZGUgfSBmcm9tICcuL25hdmlnYXRvci1ub2RlJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGNvbnN0IGVudW0gQ2xpY2tFdmVudFNvdXJjZSB7XG4gIElDT04gPSAnaWNvbicsXG4gIEVYUEFOREVSID0gJ2V4cGFuZGVyJyxcbiAgTElOSyA9ICdsaW5rJ1xufVxuXG4vKipcbiAqIE5hdmlnYXRvciBub2RlIHJlbmRlcmVyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktbmF2aWdhdG9yLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRvck5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdpY29uJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlIH0pIGljb25TbG90OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8qKlxuICAgKiBOYXZpZ2F0b3Igbm9kZS5cbiAgICovXG4gIEBJbnB1dCgpIG5vZGU6IE5hdmlnYXRvck5vZGU7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgbmF2aWdhdG9yIG5vZGUgaXMgYSByb290IG5vZGUgKHRvcCBub2RlIGluIHRoZSBoaWVyYXJjaHkpLlxuICAgKi9cbiAgQElucHV0KCkgaXNSb290OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVyIHJlc3BvbnNpYmxlIGZvciBicm9hZGNhc3Rpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgZXZlbnRzOiBcImljb25cIiwgXCJleHBhbmRlclwiIG9yIFwibGlua1wiIGFzIHN0cmluZyB2YWx1ZS5cbiAgICpcbiAgICogVGhlIHR5cGUgb2YgZXZlbnQgZGVwZW5kcyBvbiB3aGVyZSB5b3UgY2xpY2sgb24gdGhlIG5hdmlnYXRvciBub2RlOlxuICAgKiAqIGNsaWNraW5nIHRoZSBpY29uIHdpbGwgYnJvYWRjYXN0IHRoZSBldmVudCBcImljb25cIixcbiAgICogKiBjbGlja2luZyB0aGUgZXhwYW5kZXIgd2lsbCBicm9hZGNhc3QgdGhlIGV2ZW50IFwiZXhwYW5kZXJcIixcbiAgICogKiBjbGlja2luZyB0aGUgbGFiZWwgd2lsbCBicm9hZGNhc3QgdGhlIGV2ZW50IFwibGlua1wiLlxuICAgKi9cbiAgQE91dHB1dCgpIG5vZGVDbGljazogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbmZpcm1Db21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBjb25maXJtOiBQb3BvdmVyQ29uZmlybUNvbXBvbmVudDtcblxuICBwcml2YXRlIHZpZXdJbml0VGltZW91dDtcblxuICAvKipcbiAgICogQSBzdWJqZWN0IHRoYXQgaXMgdHJpZ2dlcmVkIGFzIHNvb24gYXMgdGhlIG5hdmlnYXRvciBub2RlIGlzIGluaXRpYWxpemVkLlxuICAgKi9cbiAgbm9kZUluaXQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogQSBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzLCBhcyBzb29uIGFzIHRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIG5vZGUgY2hhbmdlcy5cbiAgICovXG4gIGlzQWN0aXZlJCA9IG1lcmdlKFxuICAgIHRoaXMubm9kZUluaXQkLFxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kKSlcbiAgKS5waXBlKFxuICAgIG1hcCgoKSA9PiB7XG4gICAgICBpZiAoaXNVbmRlZmluZWQodGhpcy5ub2RlLnBhdGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5pc0FjdGl2ZSh0aGlzLm5vZGUucGF0aCwgdGhpcy5ub2RlLnJvdXRlckxpbmtFeGFjdCk7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICB0YXAoaXNBY3RpdmUgPT4ge1xuICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kQ29sbGFwc2UodHJ1ZSk7XG4gICAgICAgIHRoaXMuZXhwYW5kUmVjdXJzaXZlUGFyZW50KHRoaXMubm9kZS5wYXJlbnRzKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChcbiAgICAgIGNoYW5nZXMubm9kZSAmJlxuICAgICAgIWNoYW5nZXMubm9kZS5maXJzdENoYW5nZSAmJlxuICAgICAgY2hhbmdlcy5ub2RlLnByZXZpb3VzVmFsdWUuaWNvbiAhPT0gY2hhbmdlcy5ub2RlLmN1cnJlbnRWYWx1ZS5pY29uXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICghdGhpcy5ub2RlLmNvbXBvbmVudCkge1xuICAgICAgdGhpcy52aWV3SW5pdFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVJY29uKCk7XG4gICAgICAgIHRoaXMubm9kZS5jb25maXJtID0gdGhpcy5jb25maXJtO1xuICAgICAgICB0aGlzLm5vZGVJbml0JC5uZXh0KCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXhwYW5kZXIgdGl0bGUuXG4gICAqL1xuICBnZXQgZXhwYW5kVGl0bGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLm5vZGUub3BlbiA/ICdFeHBhbmQnIDogJ0NvbGxhcHNlJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGljayBldmVudCBoYW5kbGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZnJvbSBTb3VyY2Ugb2YgdGhlIGNsaWNrIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgRE9NIGV2ZW50LlxuICAgKi9cbiAgY2xpY2soZnJvbTogJ2ljb24nIHwgJ2V4cGFuZGVyJyB8ICdsaW5rJyA9ICdsaW5rJywgJGV2ZW50PzogTW91c2VFdmVudCkge1xuICAgIGxldCBvcGVuOiBib29sZWFuO1xuICAgIHN3aXRjaCAoZnJvbSkge1xuICAgICAgY2FzZSBDbGlja0V2ZW50U291cmNlLkVYUEFOREVSOlxuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIG9wZW4gPSAhdGhpcy5ub2RlLm9wZW47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDbGlja0V2ZW50U291cmNlLklDT046XG4gICAgICBjYXNlIENsaWNrRXZlbnRTb3VyY2UuTElOSzpcbiAgICAgICAgb3BlbiA9IHRoaXMucm91dGVyLmlzQWN0aXZlKHRoaXMubm9kZS5wYXRoLCB0aGlzLm5vZGUucm91dGVyTGlua0V4YWN0KVxuICAgICAgICAgID8gdHJ1ZVxuICAgICAgICAgIDogIXRoaXMubm9kZS5vcGVuO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5oYW5kbGVFeHBhbmRDb2xsYXBzZShvcGVuLCBmcm9tLCAkZXZlbnQpO1xuICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoZnJvbSk7XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyBvciBjb2xsYXBzZXMgdGhlIG5hdmlnYXRvciBub2RlIGFuZCBpdHMgY2hpbGRyZW4gcmVjdXJzaXZlbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3BlbiBPcGVuIG9yIGNsb3NlIHRoZSBub2RlLlxuICAgKiBAcGFyYW0ge0NsaWNrT3B0aW9uc30gZm9yTm9kZSBDbGljayBvcHRpb25zLlxuICAgKi9cbiAgZXhwYW5kQ29sbGFwc2Uob3BlbiwgZm9yTm9kZTogQ2xpY2tPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLm5vZGUub3BlbiA9IG9wZW47XG4gICAgZm9yTm9kZS5vcGVuID0gb3BlbjtcbiAgICB0aGlzLm5vZGUuY2xpY2soZm9yTm9kZSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudmlld0luaXRUaW1lb3V0KTtcblxuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZHMgdGhlIHBhcmVudCBub2RlcyByZWN1cnNpdmVseS5cbiAgICogQHBhcmFtIG5vZGVzIFRoZSBub2RlcyB0aGF0IHNob3VsZCBiZSB0cmllZCB0byBnZXQgb3BlbmVkLlxuICAgKiBAcGFyYW0gY2xpY2tPcHRpb24gVGhlIGNsaWNrIG9wdGlvbnMgdG8gcGVyZm9ybSBvbiB0aGUgcGFyZW50IG5vZGVzLlxuICAgKi9cbiAgZXhwYW5kUmVjdXJzaXZlUGFyZW50KG5vZGVzOiBOYXZpZ2F0b3JOb2RlW10sIGNsaWNrT3B0aW9uOiBDbGlja09wdGlvbnMgPSB7IGV4cGFuZGVyOiB0cnVlIH0pIHtcbiAgICBub2Rlcy5mb3JFYWNoKHBhcmVudE5vZGUgPT4ge1xuICAgICAgaWYgKCFwYXJlbnROb2RlLm9wZW4pIHtcbiAgICAgICAgcGFyZW50Tm9kZS5vcGVuID0gdHJ1ZTtcbiAgICAgICAgcGFyZW50Tm9kZS5jbGljayhjbGlja09wdGlvbik7XG4gICAgICB9XG4gICAgICB0aGlzLmV4cGFuZFJlY3Vyc2l2ZVBhcmVudChwYXJlbnROb2RlLnBhcmVudHMsIGNsaWNrT3B0aW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXhwYW5kQ29sbGFwc2Uob3BlbiwgZnJvbSwgJGV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgb3BlbiA9PT0gdGhpcy5ub2RlLm9wZW4gfHxcbiAgICAgICh0aGlzLm5vZGUucGF0aCAmJiAhb3BlbiAmJiBmcm9tICE9PSBDbGlja0V2ZW50U291cmNlLkVYUEFOREVSKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmV4cGFuZENvbGxhcHNlKG9wZW4sIHsgW2Zyb21dOiB0cnVlLCAkZXZlbnQgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUljb24oKSB7XG4gICAgaWYgKHRoaXMubm9kZS5pY29uVGVtcGxhdGUpIHtcbiAgICAgIHRoaXMudXBkYXRlSWNvblRlbXBsYXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlSWNvbkNvbXBvbmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSWNvbkNvbXBvbmVudCgpIHtcbiAgICBsZXQgY29tcG9uZW50VHlwZSA9IE5hdmlnYXRvckljb25Db21wb25lbnQ7XG4gICAgaWYgKHRoaXMubm9kZSAmJiB0aGlzLm5vZGUuaWNvbkNvbXBvbmVudCkge1xuICAgICAgY29tcG9uZW50VHlwZSA9IHRoaXMubm9kZS5pY29uQ29tcG9uZW50O1xuICAgIH1cbiAgICB0aGlzLmljb25TbG90LmNsZWFyKCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5pY29uU2xvdC5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSwge1xuICAgICAgaW5qZWN0b3I6IHRoaXMubm9kZS5pbmplY3RvclxuICAgIH0pO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5ub2RlID0gdGhpcy5ub2RlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJY29uVGVtcGxhdGUoKSB7XG4gICAgdGhpcy5pY29uU2xvdC5jbGVhcigpO1xuICAgIHRoaXMuaWNvblNsb3QuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubm9kZS5pY29uVGVtcGxhdGUsIHVuZGVmaW5lZCwge1xuICAgICAgaW5qZWN0b3I6IHRoaXMubm9kZS5pbmplY3RvclxuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZS5jb21wb25lbnRcIj5cbiAgPG5nLWNvbnRhaW5lciAqYzh5Q29tcG9uZW50T3V0bGV0PVwibm9kZS5jb21wb25lbnQ7IGVudmlyb25tZW50SW5qZWN0b3I6IG5vZGUuaW5qZWN0b3JcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2XG4gIGNsYXNzPVwic2xvdFwiXG4gICpuZ0lmPVwiIW5vZGUuY29tcG9uZW50XCJcbiAgW2hpZGRlbl09XCJub2RlLmhpZGRlblwiXG4gIChkcmFnc3RhcnQpPVwibm9kZS5kcmFnU3RhcnQoJGV2ZW50KVwiXG4gIChkcmFnZW5kKT1cIm5vZGUuZHJhZ0VuZCgkZXZlbnQpXCJcbiAgKGRyb3ApPVwibm9kZS5kcm9wKCRldmVudClcIlxuICBbZHJhZ2dhYmxlXT1cIm5vZGUuZHJhZ2dhYmxlXCJcbiAgW25nQ2xhc3NdPVwieyBkcmFnZ2VkOiBub2RlLmRyYWdnZWQsIGRpc2FibGVkOiBub2RlLmxvYWRpbmcgfVwiXG4+XG4gIDxuZy1jb250YWluZXI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsaW5rXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW3JvdXRlckxpbmtdPVwibm9kZS5jYW5OYXZpZ2F0ZSA/IG5vZGUucGF0aCA6IHVuZGVmaW5lZFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgIGFjdGl2ZTogaXNBY3RpdmUkIHwgYXN5bmMsXG4gICAgICAgICdkcmFnZ2VkLWhvdmVyJzogbm9kZS5kcmFnZ2VkSG92ZXIgJiYgIW5vZGUuZHJhZ2dlZFxuICAgICAgfVwiXG4gICAgICAoZHJhZ292ZXIpPVwibm9kZS5jYW5Ecm9wICYmICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgIChkcmFnZW50ZXIpPVwibm9kZS5jYW5Ecm9wICYmIG5vZGUuZHJhZ0VudGVyKCRldmVudClcIlxuICAgICAgKGRyYWdsZWF2ZSk9XCJub2RlLmNhbkRyb3AgJiYgbm9kZS5kcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5hdmljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4tY2xlYW5cIlxuICAgICAgICB0aXRsZT1cInt7IG5vZGUudHJhbnNsYXRlTGFiZWwgPyAobm9kZS5sYWJlbCB8IHRyYW5zbGF0ZSkgOiBub2RlLmxhYmVsIH19XCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJub2RlLmhhc0NoaWxkcmVuID8gbm9kZS5vcGVuIDogbnVsbFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwibm9kZS5sYWJlbFwiXG4gICAgICAgIFthdHRyLmlkXT1cImlzUm9vdCA/IG5vZGUuaWQgOiB1bmRlZmluZWRcIlxuICAgICAgICAoY2xpY2spPVwiY2xpY2sobm9kZS5jYW5OYXZpZ2F0ZSA/ICdsaW5rJyA6ICdleHBhbmRlcicsICRldmVudClcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3Jvb3QtbGluayc6IGlzUm9vdCxcbiAgICAgICAgICBvcGVuOiBub2RlLm9wZW4gJiYgbm9kZS5oYXNDaGlsZHJlbixcbiAgICAgICAgICBwYXJlbnQ6IG5vZGUuaGFzQ2hpbGRyZW5cbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImNoaWxkcmVuIHBhbmVsLWV4cGFuZCBleHBhbmRcIlxuICAgICpuZ0lmPVwibm9kZS5jaGlsZHJlbi5sZW5ndGhcIlxuICAgIFtjb2xsYXBzZV09XCIhbm9kZS5vcGVuXCJcbiAgICBbaXNBbmltYXRlZF09XCJ0cnVlXCJcbiAgPlxuICAgIDxjOHktbmF2aWdhdG9yLW5vZGVcbiAgICAgICpuZ0Zvcj1cImxldCBjaGlsZE5vZGUgb2Ygbm9kZS5jaGlsZHJlblwiXG4gICAgICBbbm9kZV09XCJjaGlsZE5vZGVcIlxuICAgICAgKG5vZGVDbGljayk9XCJub2RlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICA+PC9jOHktbmF2aWdhdG9yLW5vZGU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gaWNvbiAtLT5cbjxuZy10ZW1wbGF0ZSAjbmF2aWNvbj5cbiAgPCEtLSBsb2FkZXIgLS0+XG4gIDxpXG4gICAgY2xhc3M9XCJpY29uLXNwaW4gbG9hZGluZ0luZGljYXRvclwiXG4gICAgW2M4eUljb25dPVwiJ2NpcmNsZS1vLW5vdGNoJ1wiXG4gICAgc3R5bGU9XCJ7eyBpc1Jvb3QgPyAncGFkZGluZy1sZWZ0OiAxNnB4OycgOiBudWxsIH19XCJcbiAgICAqbmdJZj1cIm5vZGUubG9hZGluZyAmJiAhaXNSb290XCJcbiAgPjwvaT5cbiAgPG5nLWNvbnRhaW5lciAjaWNvbj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5uZXI+XG4gIDwhLS10aXRsZSAgLS0+XG4gIDxzcGFuPnt7IG5vZGUudHJhbnNsYXRlTGFiZWwgPyAobm9kZS5sYWJlbCB8IHRyYW5zbGF0ZSkgOiBub2RlLmxhYmVsIH19PC9zcGFuPlxuXG4gIDwhLS1leHBhbmRlciAgLS0+XG4gIDxpXG4gICAgY2xhc3M9XCJleHBhbmRlclwiXG4gICAgW2M4eUljb25dPVwiJ2NoZXZyb24tZG93bidcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZXhwYW5kVGl0bGVcIlxuICAgIHJvbGU9XCJidXR0b25cIlxuICAgICpuZ0lmPVwibm9kZS5oYXNDaGlsZHJlblwiXG4gICAgKGNsaWNrKT1cImNsaWNrKCdleHBhbmRlcicsICRldmVudClcIlxuICAgIGRhdGEtY3k9XCJjOHktbmF2aWdhdG9yLW5vZGUtLWV4cGFuZGVyXCJcbiAgPjwvaT5cblxuICA8IS0tICBQb3BvdmVyIGNvbmZpcm0gIC0tPlxuICA8Yzh5LXBvcG92ZXItY29uZmlybVxuICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgIGNvbnRhaW5lckNsYXNzPVwibmF2aWdhdG9yLXBvcG92ZXJcIlxuICA+PC9jOHktcG9wb3Zlci1jb25maXJtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9uYXZpZ2F0b3IvbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS9uYXZpZ2F0b3IvbmF2aWdhdG9yLW5vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztBQVF4Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRWpDLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBakRsQzs7Ozs7OztXQU9HO1FBQ08sY0FBUyxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUy9EOztXQUVHO1FBQ0gsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxjQUFTLEdBQUcsS0FBSyxDQUNm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dUdBQXRCLHNCQUFzQix3TkFJTixnQkFBZ0IsdURBeUJoQyx1QkFBdUIscUVDL0RwQyw0MUZBK0ZBLGc2Q0Q3RGEsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0Usb0JBQW9COzZGQU9nQyxRQUFRO3NCQUFyRSxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUtuRCxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQVVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBS2dELE9BQU87c0JBQTdELFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0aW9uRW5kLCBJc0FjdGl2ZU1hdGNoT3B0aW9ucywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBvcG92ZXJDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwvcG9wb3Zlci1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0b3ItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2xpY2tPcHRpb25zLCBOYXZpZ2F0b3JOb2RlIH0gZnJvbSAnLi9uYXZpZ2F0b3Itbm9kZSc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIENsaWNrRXZlbnRTb3VyY2Uge1xuICBJQ09OID0gJ2ljb24nLFxuICBFWFBBTkRFUiA9ICdleHBhbmRlcicsXG4gIExJTksgPSAnbGluaydcbn1cblxuLyoqXG4gKiBOYXZpZ2F0b3Igbm9kZSByZW5kZXJlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LW5hdmlnYXRvci1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRvci1ub2RlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnaWNvbicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KSBpY29uU2xvdDogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKipcbiAgICogTmF2aWdhdG9yIG5vZGUuXG4gICAqL1xuICBASW5wdXQoKSBub2RlOiBOYXZpZ2F0b3JOb2RlO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG5hdmlnYXRvciBub2RlIGlzIGEgcm9vdCBub2RlICh0b3Agbm9kZSBpbiB0aGUgaGllcmFyY2h5KS5cbiAgICovXG4gIEBJbnB1dCgpIGlzUm9vdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlciByZXNwb25zaWJsZSBmb3IgYnJvYWRjYXN0aW5nIG9uZSBvZiB0aGUgZm9sbG93aW5nIGV2ZW50czogXCJpY29uXCIsIFwiZXhwYW5kZXJcIiBvciBcImxpbmtcIiBhcyBzdHJpbmcgdmFsdWUuXG4gICAqXG4gICAqIFRoZSB0eXBlIG9mIGV2ZW50IGRlcGVuZHMgb24gd2hlcmUgeW91IGNsaWNrIG9uIHRoZSBuYXZpZ2F0b3Igbm9kZTpcbiAgICogKiBjbGlja2luZyB0aGUgaWNvbiB3aWxsIGJyb2FkY2FzdCB0aGUgZXZlbnQgXCJpY29uXCIsXG4gICAqICogY2xpY2tpbmcgdGhlIGV4cGFuZGVyIHdpbGwgYnJvYWRjYXN0IHRoZSBldmVudCBcImV4cGFuZGVyXCIsXG4gICAqICogY2xpY2tpbmcgdGhlIGxhYmVsIHdpbGwgYnJvYWRjYXN0IHRoZSBldmVudCBcImxpbmtcIi5cbiAgICovXG4gIEBPdXRwdXQoKSBub2RlQ2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKFBvcG92ZXJDb25maXJtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY29uZmlybTogUG9wb3ZlckNvbmZpcm1Db21wb25lbnQ7XG5cbiAgcHJpdmF0ZSB2aWV3SW5pdFRpbWVvdXQ7XG5cbiAgLyoqXG4gICAqIEEgc3ViamVjdCB0aGF0IGlzIHRyaWdnZXJlZCBhcyBzb29uIGFzIHRoZSBuYXZpZ2F0b3Igbm9kZSBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIG5vZGVJbml0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEEgb2JzZXJ2YWJsZSB3aGljaCBlbWl0cywgYXMgc29vbiBhcyB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoZSBub2RlIGNoYW5nZXMuXG4gICAqL1xuICBpc0FjdGl2ZSQgPSBtZXJnZShcbiAgICB0aGlzLm5vZGVJbml0JCxcbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgQWN0aXZhdGlvbkVuZCkpXG4gICkucGlwZShcbiAgICBtYXAoKCkgPT4ge1xuICAgICAgaWYgKGlzVW5kZWZpbmVkKHRoaXMubm9kZS5wYXRoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUodGhpcy5ub2RlLnBhdGgsIHtcbiAgICAgICAgcGF0aHM6IHRoaXMubm9kZS5yb3V0ZXJMaW5rRXhhY3QgPyAnZXhhY3QnIDogJ3N1YnNldCcsXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiAnaWdub3JlZCcsXG4gICAgICAgIGZyYWdtZW50OiAnaWdub3JlZCcsXG4gICAgICAgIG1hdHJpeFBhcmFtczogJ2lnbm9yZWQnXG4gICAgICB9IGFzIElzQWN0aXZlTWF0Y2hPcHRpb25zKTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHRhcChpc0FjdGl2ZSA9PiB7XG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy5leHBhbmRDb2xsYXBzZSh0cnVlKTtcbiAgICAgICAgdGhpcy5leHBhbmRSZWN1cnNpdmVQYXJlbnQodGhpcy5ub2RlLnBhcmVudHMpO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5ub2RlICYmXG4gICAgICAhY2hhbmdlcy5ub2RlLmZpcnN0Q2hhbmdlICYmXG4gICAgICBjaGFuZ2VzLm5vZGUucHJldmlvdXNWYWx1ZS5pY29uICE9PSBjaGFuZ2VzLm5vZGUuY3VycmVudFZhbHVlLmljb25cbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlSWNvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLm5vZGUuY29tcG9uZW50KSB7XG4gICAgICB0aGlzLnZpZXdJbml0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgICAgICAgdGhpcy5ub2RlLmNvbmZpcm0gPSB0aGlzLmNvbmZpcm07XG4gICAgICAgIHRoaXMubm9kZUluaXQkLm5leHQoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBleHBhbmRlciB0aXRsZS5cbiAgICovXG4gIGdldCBleHBhbmRUaXRsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMubm9kZS5vcGVuID8gJ0V4cGFuZCcgOiAnQ29sbGFwc2UnO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmcm9tIFNvdXJjZSBvZiB0aGUgY2xpY2sgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBET00gZXZlbnQuXG4gICAqL1xuICBjbGljayhmcm9tOiAnaWNvbicgfCAnZXhwYW5kZXInIHwgJ2xpbmsnID0gJ2xpbmsnLCAkZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgbGV0IG9wZW46IGJvb2xlYW47XG4gICAgc3dpdGNoIChmcm9tKSB7XG4gICAgICBjYXNlIENsaWNrRXZlbnRTb3VyY2UuRVhQQU5ERVI6XG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgb3BlbiA9ICF0aGlzLm5vZGUub3BlbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENsaWNrRXZlbnRTb3VyY2UuSUNPTjpcbiAgICAgIGNhc2UgQ2xpY2tFdmVudFNvdXJjZS5MSU5LOlxuICAgICAgICBvcGVuID0gdGhpcy5yb3V0ZXIuaXNBY3RpdmUodGhpcy5ub2RlLnBhdGgsIHRoaXMubm9kZS5yb3V0ZXJMaW5rRXhhY3QpXG4gICAgICAgICAgPyB0cnVlXG4gICAgICAgICAgOiAhdGhpcy5ub2RlLm9wZW47XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLmhhbmRsZUV4cGFuZENvbGxhcHNlKG9wZW4sIGZyb20sICRldmVudCk7XG4gICAgdGhpcy5ub2RlQ2xpY2suZW1pdChmcm9tKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIG9yIGNvbGxhcHNlcyB0aGUgbmF2aWdhdG9yIG5vZGUgYW5kIGl0cyBjaGlsZHJlbiByZWN1cnNpdmVseS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBvcGVuIE9wZW4gb3IgY2xvc2UgdGhlIG5vZGUuXG4gICAqIEBwYXJhbSB7Q2xpY2tPcHRpb25zfSBmb3JOb2RlIENsaWNrIG9wdGlvbnMuXG4gICAqL1xuICBleHBhbmRDb2xsYXBzZShvcGVuLCBmb3JOb2RlOiBDbGlja09wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMubm9kZS5vcGVuID0gb3BlbjtcbiAgICBmb3JOb2RlLm9wZW4gPSBvcGVuO1xuICAgIHRoaXMubm9kZS5jbGljayhmb3JOb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy52aWV3SW5pdFRpbWVvdXQpO1xuXG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyB0aGUgcGFyZW50IG5vZGVzIHJlY3Vyc2l2ZWx5LlxuICAgKiBAcGFyYW0gbm9kZXMgVGhlIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHRyaWVkIHRvIGdldCBvcGVuZWQuXG4gICAqIEBwYXJhbSBjbGlja09wdGlvbiBUaGUgY2xpY2sgb3B0aW9ucyB0byBwZXJmb3JtIG9uIHRoZSBwYXJlbnQgbm9kZXMuXG4gICAqL1xuICBleHBhbmRSZWN1cnNpdmVQYXJlbnQobm9kZXM6IE5hdmlnYXRvck5vZGVbXSwgY2xpY2tPcHRpb246IENsaWNrT3B0aW9ucyA9IHsgZXhwYW5kZXI6IHRydWUgfSkge1xuICAgIG5vZGVzLmZvckVhY2gocGFyZW50Tm9kZSA9PiB7XG4gICAgICBpZiAoIXBhcmVudE5vZGUub3Blbikge1xuICAgICAgICBwYXJlbnROb2RlLm9wZW4gPSB0cnVlO1xuICAgICAgICBwYXJlbnROb2RlLmNsaWNrKGNsaWNrT3B0aW9uKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhwYW5kUmVjdXJzaXZlUGFyZW50KHBhcmVudE5vZGUucGFyZW50cywgY2xpY2tPcHRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFeHBhbmRDb2xsYXBzZShvcGVuLCBmcm9tLCAkZXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBvcGVuID09PSB0aGlzLm5vZGUub3BlbiB8fFxuICAgICAgKHRoaXMubm9kZS5wYXRoICYmICFvcGVuICYmIGZyb20gIT09IENsaWNrRXZlbnRTb3VyY2UuRVhQQU5ERVIpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kQ29sbGFwc2Uob3BlbiwgeyBbZnJvbV06IHRydWUsICRldmVudCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSWNvbigpIHtcbiAgICBpZiAodGhpcy5ub2RlLmljb25UZW1wbGF0ZSkge1xuICAgICAgdGhpcy51cGRhdGVJY29uVGVtcGxhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVJY29uQ29tcG9uZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJY29uQ29tcG9uZW50KCkge1xuICAgIGxldCBjb21wb25lbnRUeXBlID0gTmF2aWdhdG9ySWNvbkNvbXBvbmVudDtcbiAgICBpZiAodGhpcy5ub2RlICYmIHRoaXMubm9kZS5pY29uQ29tcG9uZW50KSB7XG4gICAgICBjb21wb25lbnRUeXBlID0gdGhpcy5ub2RlLmljb25Db21wb25lbnQ7XG4gICAgfVxuICAgIHRoaXMuaWNvblNsb3QuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmljb25TbG90LmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlLCB7XG4gICAgICBpbmplY3RvcjogdGhpcy5ub2RlLmluamVjdG9yXG4gICAgfSk7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm5vZGUgPSB0aGlzLm5vZGU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUljb25UZW1wbGF0ZSgpIHtcbiAgICB0aGlzLmljb25TbG90LmNsZWFyKCk7XG4gICAgdGhpcy5pY29uU2xvdC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5ub2RlLmljb25UZW1wbGF0ZSwgdW5kZWZpbmVkLCB7XG4gICAgICBpbmplY3RvcjogdGhpcy5ub2RlLmluamVjdG9yXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNvbXBvbmVudFwiPlxuICA8bmctY29udGFpbmVyICpjOHlDb21wb25lbnRPdXRsZXQ9XCJub2RlLmNvbXBvbmVudDsgZW52aXJvbm1lbnRJbmplY3Rvcjogbm9kZS5pbmplY3RvclwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXZcbiAgY2xhc3M9XCJzbG90XCJcbiAgKm5nSWY9XCIhbm9kZS5jb21wb25lbnRcIlxuICBbaGlkZGVuXT1cIm5vZGUuaGlkZGVuXCJcbiAgKGRyYWdzdGFydCk9XCJub2RlLmRyYWdTdGFydCgkZXZlbnQpXCJcbiAgKGRyYWdlbmQpPVwibm9kZS5kcmFnRW5kKCRldmVudClcIlxuICAoZHJvcCk9XCJub2RlLmRyb3AoJGV2ZW50KVwiXG4gIFtkcmFnZ2FibGVdPVwibm9kZS5kcmFnZ2FibGVcIlxuICBbbmdDbGFzc109XCJ7IGRyYWdnZWQ6IG5vZGUuZHJhZ2dlZCwgZGlzYWJsZWQ6IG5vZGUubG9hZGluZyB9XCJcbj5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxpbmtcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBbcm91dGVyTGlua109XCJub2RlLmNhbk5hdmlnYXRlID8gbm9kZS5wYXRoIDogdW5kZWZpbmVkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgYWN0aXZlOiBpc0FjdGl2ZSQgfCBhc3luYyxcbiAgICAgICAgJ2RyYWdnZWQtaG92ZXInOiBub2RlLmRyYWdnZWRIb3ZlciAmJiAhbm9kZS5kcmFnZ2VkXG4gICAgICB9XCJcbiAgICAgIChkcmFnb3Zlcik9XCJub2RlLmNhbkRyb3AgJiYgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgKGRyYWdlbnRlcik9XCJub2RlLmNhbkRyb3AgJiYgbm9kZS5kcmFnRW50ZXIoJGV2ZW50KVwiXG4gICAgICAoZHJhZ2xlYXZlKT1cIm5vZGUuY2FuRHJvcCAmJiBub2RlLmRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibmF2aWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0bi1jbGVhblwiXG4gICAgICAgIHRpdGxlPVwie3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX1cIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm5vZGUuaGFzQ2hpbGRyZW4gPyBub2RlLm9wZW4gOiBudWxsXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJub2RlLmxhYmVsXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiaXNSb290ID8gbm9kZS5pZCA6IHVuZGVmaW5lZFwiXG4gICAgICAgIChjbGljayk9XCJjbGljayhub2RlLmNhbk5hdmlnYXRlID8gJ2xpbmsnIDogJ2V4cGFuZGVyJywgJGV2ZW50KVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAncm9vdC1saW5rJzogaXNSb290LFxuICAgICAgICAgIG9wZW46IG5vZGUub3BlbiAmJiBub2RlLmhhc0NoaWxkcmVuLFxuICAgICAgICAgIHBhcmVudDogbm9kZS5oYXNDaGlsZHJlblxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY2hpbGRyZW4gcGFuZWwtZXhwYW5kIGV4cGFuZFwiXG4gICAgKm5nSWY9XCJub2RlLmNoaWxkcmVuLmxlbmd0aFwiXG4gICAgW2NvbGxhcHNlXT1cIiFub2RlLm9wZW5cIlxuICAgIFtpc0FuaW1hdGVkXT1cInRydWVcIlxuICA+XG4gICAgPGM4eS1uYXZpZ2F0b3Itbm9kZVxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuXCJcbiAgICAgIFtub2RlXT1cImNoaWxkTm9kZVwiXG4gICAgICAobm9kZUNsaWNrKT1cIm5vZGVDbGljay5lbWl0KCRldmVudClcIlxuICAgID48L2M4eS1uYXZpZ2F0b3Itbm9kZT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBpY29uIC0tPlxuPG5nLXRlbXBsYXRlICNuYXZpY29uPlxuICA8IS0tIGxvYWRlciAtLT5cbiAgPGlcbiAgICBjbGFzcz1cImljb24tc3BpbiBsb2FkaW5nSW5kaWNhdG9yXCJcbiAgICBbYzh5SWNvbl09XCInY2lyY2xlLW8tbm90Y2gnXCJcbiAgICBzdHlsZT1cInt7IGlzUm9vdCA/ICdwYWRkaW5nLWxlZnQ6IDE2cHg7JyA6IG51bGwgfX1cIlxuICAgICpuZ0lmPVwibm9kZS5sb2FkaW5nICYmICFpc1Jvb3RcIlxuICA+PC9pPlxuICA8bmctY29udGFpbmVyICNpY29uPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbm5lcj5cbiAgPCEtLXRpdGxlICAtLT5cbiAgPHNwYW4+e3sgbm9kZS50cmFuc2xhdGVMYWJlbCA/IChub2RlLmxhYmVsIHwgdHJhbnNsYXRlKSA6IG5vZGUubGFiZWwgfX08L3NwYW4+XG5cbiAgPCEtLWV4cGFuZGVyICAtLT5cbiAgPGlcbiAgICBjbGFzcz1cImV4cGFuZGVyXCJcbiAgICBbYzh5SWNvbl09XCInY2hldnJvbi1kb3duJ1wiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJleHBhbmRUaXRsZVwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgKm5nSWY9XCJub2RlLmhhc0NoaWxkcmVuXCJcbiAgICAoY2xpY2spPVwiY2xpY2soJ2V4cGFuZGVyJywgJGV2ZW50KVwiXG4gICAgZGF0YS1jeT1cImM4eS1uYXZpZ2F0b3Itbm9kZS0tZXhwYW5kZXJcIlxuICA+PC9pPlxuXG4gIDwhLS0gIFBvcG92ZXIgY29uZmlybSAgLS0+XG4gIDxjOHktcG9wb3Zlci1jb25maXJtXG4gICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgY29udGFpbmVyQ2xhc3M9XCJuYXZpZ2F0b3ItcG9wb3ZlclwiXG4gID48L2M4eS1wb3BvdmVyLWNvbmZpcm0+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,5 +1,5 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CoreModule, hookRoute } from '@c8y/ngx-components';
2
+ import { CoreModule } from '@c8y/ngx-components';
3
3
  import { DeviceGridModule } from '@c8y/ngx-components/device-grid';
4
4
  import { AddGroupComponent } from './add-group.component';
5
5
  import { AddGroupService } from './add-group.service';
@@ -9,13 +9,7 @@ export class AddGroupModule {
9
9
  }
10
10
  AddGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
11
  AddGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: AddGroupModule, declarations: [AddGroupComponent], imports: [CoreModule, DeviceGridModule, FormsModule, ReactiveFormsModule], exports: [AddGroupComponent] });
12
- AddGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddGroupModule, providers: [
13
- hookRoute({
14
- path: 'add-group',
15
- component: AddGroupComponent
16
- }),
17
- AddGroupService
18
- ], imports: [CoreModule, DeviceGridModule, FormsModule, ReactiveFormsModule] });
12
+ AddGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddGroupModule, providers: [AddGroupService], imports: [CoreModule, DeviceGridModule, FormsModule, ReactiveFormsModule] });
19
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddGroupModule, decorators: [{
20
14
  type: NgModule,
21
15
  args: [{
@@ -23,13 +17,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
23
17
  imports: [CoreModule, DeviceGridModule, FormsModule, ReactiveFormsModule],
24
18
  entryComponents: [AddGroupComponent],
25
19
  exports: [AddGroupComponent],
26
- providers: [
27
- hookRoute({
28
- path: 'add-group',
29
- component: AddGroupComponent
30
- }),
31
- AddGroupService
32
- ]
20
+ providers: [AddGroupService]
33
21
  }]
34
22
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWdyb3VwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3N1Yi1hc3NldHMvYWRkLWdyb3VwL2FkZC1ncm91cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZWxFLE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBWlYsaUJBQWlCLGFBQ3RCLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLGFBRTlELGlCQUFpQjs0R0FTaEIsY0FBYyxhQVJkO1FBQ1QsU0FBUyxDQUFDO1lBQ1IsSUFBSSxFQUFFLFdBQVc7WUFDakIsU0FBUyxFQUFFLGlCQUFpQjtTQUM3QixDQUFDO1FBQ0YsZUFBZTtLQUNoQixZQVRTLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1COzJGQVc3RCxjQUFjO2tCQWIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDO29CQUN6RSxlQUFlLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQzVCLFNBQVMsRUFBRTt3QkFDVCxTQUFTLENBQUM7NEJBQ1IsSUFBSSxFQUFFLFdBQVc7NEJBQ2pCLFNBQVMsRUFBRSxpQkFBaUI7eUJBQzdCLENBQUM7d0JBQ0YsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSwgaG9va1JvdXRlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZXZpY2VHcmlkTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kZXZpY2UtZ3JpZCc7XG5pbXBvcnQgeyBBZGRHcm91cENvbXBvbmVudCB9IGZyb20gJy4vYWRkLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRHcm91cFNlcnZpY2UgfSBmcm9tICcuL2FkZC1ncm91cC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBZGRHcm91cENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEZXZpY2VHcmlkTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIGVudHJ5Q29tcG9uZW50czogW0FkZEdyb3VwQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0FkZEdyb3VwQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgaG9va1JvdXRlKHtcbiAgICAgIHBhdGg6ICdhZGQtZ3JvdXAnLFxuICAgICAgY29tcG9uZW50OiBBZGRHcm91cENvbXBvbmVudFxuICAgIH0pLFxuICAgIEFkZEdyb3VwU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFkZEdyb3VwTW9kdWxlIHt9XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWdyb3VwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3N1Yi1hc3NldHMvYWRkLWdyb3VwL2FkZC1ncm91cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTbEUsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxpQkFOVixpQkFBaUIsYUFDdEIsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsYUFFOUQsaUJBQWlCOzRHQUdoQixjQUFjLGFBRmQsQ0FBQyxlQUFlLENBQUMsWUFIbEIsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxtQkFBbUI7MkZBSzdELGNBQWM7a0JBUDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3pFLGVBQWUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZXZpY2VHcmlkTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kZXZpY2UtZ3JpZCc7XG5pbXBvcnQgeyBBZGRHcm91cENvbXBvbmVudCB9IGZyb20gJy4vYWRkLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRHcm91cFNlcnZpY2UgfSBmcm9tICcuL2FkZC1ncm91cC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBZGRHcm91cENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEZXZpY2VHcmlkTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIGVudHJ5Q29tcG9uZW50czogW0FkZEdyb3VwQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0FkZEdyb3VwQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbQWRkR3JvdXBTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBBZGRHcm91cE1vZHVsZSB7fVxuIl19
@@ -2,23 +2,31 @@ import { Component, EventEmitter, Inject } from '@angular/core';
2
2
  import { Permissions } from '@c8y/ngx-components';
3
3
  import { SUB_ASSETS_CONFIG } from './sub-assets.model';
4
4
  import { SubAssetsService } from './sub-assets.service';
5
+ import { Subject } from 'rxjs';
6
+ import { ActivatedRoute, Router } from '@angular/router';
7
+ import { delay, takeUntil, tap } from 'rxjs/operators';
5
8
  import * as i0 from "@angular/core";
6
9
  import * as i1 from "@c8y/ngx-components";
7
10
  import * as i2 from "./sub-assets.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "./add-group/add-group.component";
10
- import * as i5 from "./sub-assets-grid.component";
11
+ import * as i3 from "@angular/router";
12
+ import * as i4 from "@angular/common";
13
+ import * as i5 from "./add-group/add-group.component";
14
+ import * as i6 from "./sub-assets-grid.component";
11
15
  export class GroupsComponent {
12
- constructor(permissions, subAssetsService, moduleConfig) {
16
+ constructor(permissions, subAssetsService, moduleConfig, activeRoute, router) {
13
17
  this.permissions = permissions;
14
18
  this.subAssetsService = subAssetsService;
15
19
  this.moduleConfig = moduleConfig;
20
+ this.activeRoute = activeRoute;
21
+ this.router = router;
22
+ this.SHOW_ADD_GROUP = 'showAddGroup';
16
23
  this.refresh = new EventEmitter();
17
24
  this.showAddGroup = false;
18
25
  this.filterable = true;
19
26
  this.sortable = true;
20
27
  this.shouldDisableAddGroup = false;
21
28
  this.columns = [];
29
+ this.destroyed = new Subject();
22
30
  }
23
31
  ngOnInit() {
24
32
  if (!this.permissions.hasAnyRole([
@@ -31,15 +39,45 @@ export class GroupsComponent {
31
39
  this.columns = this.subAssetsService
32
40
  .getDefaultColumns()
33
41
  .filter(column => column.name !== 'alarms');
42
+ this.activeRoute.queryParamMap
43
+ .pipe(delay(50), // It allows seeing drawer animation.
44
+ takeUntil(this.destroyed), tap(params => (this.showAddGroup = params.has(this.SHOW_ADD_GROUP))))
45
+ .subscribe();
46
+ }
47
+ onAddGroupClick() {
48
+ this.showAddGroup = !this.showAddGroup;
49
+ this.handleShowAddGroupQueryParam();
50
+ }
51
+ ngOnDestroy() {
52
+ this.destroyed.next();
53
+ this.destroyed.complete();
54
+ }
55
+ /**
56
+ * Updates the query parameter `showAddGroup` based on the value of `showAddGroup` property.
57
+ * - If `showAddGroup` is `true`, adds `showAddGroup=true` to the query parameters.
58
+ * - If `showAddGroup` is `false`, removes `showAddGroup` from the query parameters.
59
+ */
60
+ handleShowAddGroupQueryParam() {
61
+ const currentParams = { ...this.activeRoute.snapshot.queryParams };
62
+ if (this.showAddGroup) {
63
+ currentParams[this.SHOW_ADD_GROUP] = true;
64
+ }
65
+ else {
66
+ delete currentParams[this.SHOW_ADD_GROUP];
67
+ }
68
+ this.router.navigate([], {
69
+ relativeTo: this.activeRoute,
70
+ queryParams: currentParams
71
+ });
34
72
  }
35
73
  }
36
- GroupsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: GroupsComponent, deps: [{ token: i1.Permissions }, { token: i2.SubAssetsService }, { token: SUB_ASSETS_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
37
- GroupsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: GroupsComponent, selector: "c8y-groups-name", ngImport: i0, template: "<c8y-title>\n {{ moduleConfig.name | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-group-open\"\n label=\"{{ moduleConfig.name | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"moduleConfig.showAddGroupBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"showAddGroup = !showAddGroup\"\n [disabled]=\"shouldDisableAddGroup\"\n [attr.data-cy]=\"'groups-add-group-button'\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n {{ 'Add group' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/grouping-devices/#grouping-devices\"\n *ngIf=\"moduleConfig.showGroupsContextHelp\"\n></c8y-help>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [refresh]=\"refresh\"\n (onCancel)=\"showAddGroup = false\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n<c8y-sub-assets-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [refresh]=\"refresh\"\n [filterable]=\"filterable\"\n [sortable]=\"sortable\"\n [columns]=\"columns\"\n [columnsConfigKey]=\"'sub-assets-grid'\"\n [baseQuery]=\"moduleConfig.baseQuery\"\n></c8y-sub-assets-grid>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "component", type: i4.AddGroupComponent, selector: "c8y-add-group", inputs: ["currentGroupId", "refresh"], outputs: ["onDeviceQueryStringChange", "onCancel"] }, { kind: "component", type: i5.SubAssetsGridComponent, selector: "c8y-sub-assets-grid", inputs: ["parent-group", "refresh", "title", "emptyStateText", "loadingItemsLabel", "columnsConfigKey", "columns", "pagination", "actionControls", "selectable", "baseQuery", "bulkActionControls", "filterable", "sortable", "displayOptions"], outputs: ["onColumnsChange", "itemsSelect"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
74
+ GroupsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: GroupsComponent, deps: [{ token: i1.Permissions }, { token: i2.SubAssetsService }, { token: SUB_ASSETS_CONFIG }, { token: i3.ActivatedRoute }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
75
+ GroupsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: GroupsComponent, selector: "c8y-groups-name", ngImport: i0, template: "<c8y-title>\n {{ moduleConfig.name | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-group-open\"\n label=\"{{ moduleConfig.name | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"moduleConfig.showAddGroupBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"onAddGroupClick()\"\n [disabled]=\"shouldDisableAddGroup\"\n [attr.data-cy]=\"'groups-add-group-button'\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n {{ 'Add group' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/grouping-devices/#grouping-devices\"\n *ngIf=\"moduleConfig.showGroupsContextHelp\"\n></c8y-help>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [refresh]=\"refresh\"\n (onCancel)=\"onAddGroupClick()\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n<c8y-sub-assets-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [refresh]=\"refresh\"\n [filterable]=\"filterable\"\n [sortable]=\"sortable\"\n [columns]=\"columns\"\n [columnsConfigKey]=\"'sub-assets-grid'\"\n [baseQuery]=\"moduleConfig.baseQuery\"\n></c8y-sub-assets-grid>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "component", type: i5.AddGroupComponent, selector: "c8y-add-group", inputs: ["currentGroupId", "refresh"], outputs: ["onDeviceQueryStringChange", "onCancel"] }, { kind: "component", type: i6.SubAssetsGridComponent, selector: "c8y-sub-assets-grid", inputs: ["parent-group", "refresh", "title", "emptyStateText", "loadingItemsLabel", "columnsConfigKey", "columns", "pagination", "actionControls", "selectable", "baseQuery", "bulkActionControls", "filterable", "sortable", "displayOptions"], outputs: ["onColumnsChange", "itemsSelect"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
38
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: GroupsComponent, decorators: [{
39
77
  type: Component,
40
- args: [{ selector: 'c8y-groups-name', template: "<c8y-title>\n {{ moduleConfig.name | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-group-open\"\n label=\"{{ moduleConfig.name | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"moduleConfig.showAddGroupBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"showAddGroup = !showAddGroup\"\n [disabled]=\"shouldDisableAddGroup\"\n [attr.data-cy]=\"'groups-add-group-button'\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n {{ 'Add group' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/grouping-devices/#grouping-devices\"\n *ngIf=\"moduleConfig.showGroupsContextHelp\"\n></c8y-help>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [refresh]=\"refresh\"\n (onCancel)=\"showAddGroup = false\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n<c8y-sub-assets-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [refresh]=\"refresh\"\n [filterable]=\"filterable\"\n [sortable]=\"sortable\"\n [columns]=\"columns\"\n [columnsConfigKey]=\"'sub-assets-grid'\"\n [baseQuery]=\"moduleConfig.baseQuery\"\n></c8y-sub-assets-grid>\n" }]
78
+ args: [{ selector: 'c8y-groups-name', template: "<c8y-title>\n {{ moduleConfig.name | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-group-open\"\n label=\"{{ moduleConfig.name | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"moduleConfig.showAddGroupBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"onAddGroupClick()\"\n [disabled]=\"shouldDisableAddGroup\"\n [attr.data-cy]=\"'groups-add-group-button'\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n {{ 'Add group' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/grouping-devices/#grouping-devices\"\n *ngIf=\"moduleConfig.showGroupsContextHelp\"\n></c8y-help>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [refresh]=\"refresh\"\n (onCancel)=\"onAddGroupClick()\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n<c8y-sub-assets-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [refresh]=\"refresh\"\n [filterable]=\"filterable\"\n [sortable]=\"sortable\"\n [columns]=\"columns\"\n [columnsConfigKey]=\"'sub-assets-grid'\"\n [baseQuery]=\"moduleConfig.baseQuery\"\n></c8y-sub-assets-grid>\n" }]
41
79
  }], ctorParameters: function () { return [{ type: i1.Permissions }, { type: i2.SubAssetsService }, { type: undefined, decorators: [{
42
80
  type: Inject,
43
81
  args: [SUB_ASSETS_CONFIG]
44
- }] }]; } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3N1Yi1hc3NldHMvZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3N1Yi1hc3NldHMvZ3JvdXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQVUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBTXhELE1BQU0sT0FBTyxlQUFlO0lBUTFCLFlBQ1UsV0FBd0IsRUFDeEIsZ0JBQWtDLEVBQ1IsWUFBNkI7UUFGdkQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNSLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQVZqRSxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixZQUFPLEdBQWEsRUFBRSxDQUFDO0lBTXBCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFDRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQzNCLFdBQVcsQ0FBQyxtQkFBbUI7WUFDL0IsV0FBVyxDQUFDLHdCQUF3QjtTQUNyQyxDQUFDLEVBQ0Y7WUFDQSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUVyRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0I7YUFDakMsaUJBQWlCLEVBQUU7YUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs0R0E1QlUsZUFBZSw2RUFXaEIsaUJBQWlCO2dHQVhoQixlQUFlLHVEQ1Q1Qiw0NENBcURBOzJGRDVDYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLGlCQUFpQjs7MEJBY3hCLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2x1bW4sIFBlcm1pc3Npb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTdWJBc3NldHNDb25maWcsIFNVQl9BU1NFVFNfQ09ORklHIH0gZnJvbSAnLi9zdWItYXNzZXRzLm1vZGVsJztcbmltcG9ydCB7IFN1YkFzc2V0c1NlcnZpY2UgfSBmcm9tICcuL3N1Yi1hc3NldHMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1ncm91cHMtbmFtZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdyb3Vwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBzaG93QWRkR3JvdXAgPSBmYWxzZTtcbiAgZmlsdGVyYWJsZSA9IHRydWU7XG4gIHNvcnRhYmxlID0gdHJ1ZTtcbiAgc2hvdWxkRGlzYWJsZUFkZEdyb3VwID0gZmFsc2U7XG4gIGNvbHVtbnM6IENvbHVtbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnMsXG4gICAgcHJpdmF0ZSBzdWJBc3NldHNTZXJ2aWNlOiBTdWJBc3NldHNTZXJ2aWNlLFxuICAgIEBJbmplY3QoU1VCX0FTU0VUU19DT05GSUcpIHB1YmxpYyBtb2R1bGVDb25maWc6IFN1YkFzc2V0c0NvbmZpZ1xuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMucGVybWlzc2lvbnMuaGFzQW55Um9sZShbXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfSU5WRU5UT1JZX1JFQUQsXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfTUFOQUdFRF9PQkpFQ1RfUkVBRFxuICAgICAgXSlcbiAgICApIHtcbiAgICAgIHRoaXMuc29ydGFibGUgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5zaG91bGREaXNhYmxlQWRkR3JvdXAgPSAhdGhpcy5zdWJBc3NldHNTZXJ2aWNlLmNhbkNyZWF0ZUdyb3VwKCk7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLnN1YkFzc2V0c1NlcnZpY2VcbiAgICAgIC5nZXREZWZhdWx0Q29sdW1ucygpXG4gICAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4ubmFtZSAhPT0gJ2FsYXJtcycpO1xuICB9XG59XG4iLCI8Yzh5LXRpdGxlPlxuICB7eyBtb2R1bGVDb25maWcubmFtZSB8IHRyYW5zbGF0ZSB9fVxuPC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBpY29uPVwiYzh5LWdyb3VwLW9wZW5cIlxuICAgIGxhYmVsPVwie3sgbW9kdWxlQ29uZmlnLm5hbWUgfCB0cmFuc2xhdGUgfX1cIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgKm5nSWY9XCJtb2R1bGVDb25maWcuc2hvd0FkZEdyb3VwQnRuXCJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdBZGQgZ3JvdXAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAoY2xpY2spPVwic2hvd0FkZEdyb3VwID0gIXNob3dBZGRHcm91cFwiXG4gICAgW2Rpc2FibGVkXT1cInNob3VsZERpc2FibGVBZGRHcm91cFwiXG4gICAgW2F0dHIuZGF0YS1jeV09XCInZ3JvdXBzLWFkZC1ncm91cC1idXR0b24nXCJcbiAgPlxuICAgIDxpXG4gICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgIGM4eUljb249XCJwbHVzLWNpcmNsZVwiXG4gICAgPjwvaT5cbiAgICB7eyAnQWRkIGdyb3VwJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1oZWxwXG4gIHNyYz1cIi9kb2NzL2RldmljZS1tYW5hZ2VtZW50LWFwcGxpY2F0aW9uL2dyb3VwaW5nLWRldmljZXMvI2dyb3VwaW5nLWRldmljZXNcIlxuICAqbmdJZj1cIm1vZHVsZUNvbmZpZy5zaG93R3JvdXBzQ29udGV4dEhlbHBcIlxuPjwvYzh5LWhlbHA+XG5cbjxkaXYgW25nQ2xhc3NdPVwieyBkcmF3ZXJPcGVuOiBzaG93QWRkR3JvdXAgfVwiPlxuICA8ZGl2IGNsYXNzPVwiYm90dG9tLWRyYXdlclwiPlxuICAgIDxjOHktYWRkLWdyb3VwXG4gICAgICBbcmVmcmVzaF09XCJyZWZyZXNoXCJcbiAgICAgIChvbkNhbmNlbCk9XCJzaG93QWRkR3JvdXAgPSBmYWxzZVwiXG4gICAgICAqbmdJZj1cInNob3dBZGRHcm91cFwiXG4gICAgPjwvYzh5LWFkZC1ncm91cD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxjOHktc3ViLWFzc2V0cy1ncmlkXG4gIGNsYXNzPVwiY29udGVudC1mdWxscGFnZSBkLWZsZXggZC1jb2wgYm9yZGVyLXRvcCBib3JkZXItYm90dG9tXCJcbiAgW3JlZnJlc2hdPVwicmVmcmVzaFwiXG4gIFtmaWx0ZXJhYmxlXT1cImZpbHRlcmFibGVcIlxuICBbc29ydGFibGVdPVwic29ydGFibGVcIlxuICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgW2NvbHVtbnNDb25maWdLZXldPVwiJ3N1Yi1hc3NldHMtZ3JpZCdcIlxuICBbYmFzZVF1ZXJ5XT1cIm1vZHVsZUNvbmZpZy5iYXNlUXVlcnlcIlxuPjwvYzh5LXN1Yi1hc3NldHMtZ3JpZD5cbiJdfQ==
82
+ }] }, { type: i3.ActivatedRoute }, { type: i3.Router }]; } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3N1Yi1hc3NldHMvZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3N1Yi1hc3NldHMvZ3JvdXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQVUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFNdkQsTUFBTSxPQUFPLGVBQWU7SUFVMUIsWUFDVSxXQUF3QixFQUN4QixnQkFBa0MsRUFDUixZQUE2QixFQUN2RCxXQUEyQixFQUMzQixNQUFjO1FBSmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNSLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUN2RCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWRoQixtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUN4QyxZQUFPLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVF0QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQ0UsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUMzQixXQUFXLENBQUMsbUJBQW1CO1lBQy9CLFdBQVcsQ0FBQyx3QkFBd0I7U0FDckMsQ0FBQyxFQUNGO1lBQ0EsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFckUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2FBQ2pDLGlCQUFpQixFQUFFO2FBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhO2FBQzNCLElBQUksQ0FDSCxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUscUNBQXFDO1FBQ2hELFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQ3JFO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLDRCQUE0QjtRQUNsQyxNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzNDO2FBQU07WUFDTCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLFdBQVcsRUFBRSxhQUFhO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7OzRHQXJFVSxlQUFlLDZFQWFoQixpQkFBaUI7Z0dBYmhCLGVBQWUsdURDWjVCLDgzQ0FxREE7MkZEekNhLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0UsaUJBQWlCOzswQkFnQnhCLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2x1bW4sIFBlcm1pc3Npb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTdWJBc3NldHNDb25maWcsIFNVQl9BU1NFVFNfQ09ORklHIH0gZnJvbSAnLi9zdWItYXNzZXRzLm1vZGVsJztcbmltcG9ydCB7IFN1YkFzc2V0c1NlcnZpY2UgfSBmcm9tICcuL3N1Yi1hc3NldHMuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWdyb3Vwcy1uYW1lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3Vwcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBTSE9XX0FERF9HUk9VUCA9ICdzaG93QWRkR3JvdXAnO1xuICByZWZyZXNoOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHNob3dBZGRHcm91cCA9IGZhbHNlO1xuICBmaWx0ZXJhYmxlID0gdHJ1ZTtcbiAgc29ydGFibGUgPSB0cnVlO1xuICBzaG91bGREaXNhYmxlQWRkR3JvdXAgPSBmYWxzZTtcbiAgY29sdW1uczogQ29sdW1uW10gPSBbXTtcbiAgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9ucyxcbiAgICBwcml2YXRlIHN1YkFzc2V0c1NlcnZpY2U6IFN1YkFzc2V0c1NlcnZpY2UsXG4gICAgQEluamVjdChTVUJfQVNTRVRTX0NPTkZJRykgcHVibGljIG1vZHVsZUNvbmZpZzogU3ViQXNzZXRzQ29uZmlnLFxuICAgIHByaXZhdGUgYWN0aXZlUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChcbiAgICAgICF0aGlzLnBlcm1pc3Npb25zLmhhc0FueVJvbGUoW1xuICAgICAgICBQZXJtaXNzaW9ucy5ST0xFX0lOVkVOVE9SWV9SRUFELFxuICAgICAgICBQZXJtaXNzaW9ucy5ST0xFX01BTkFHRURfT0JKRUNUX1JFQURcbiAgICAgIF0pXG4gICAgKSB7XG4gICAgICB0aGlzLnNvcnRhYmxlID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuc2hvdWxkRGlzYWJsZUFkZEdyb3VwID0gIXRoaXMuc3ViQXNzZXRzU2VydmljZS5jYW5DcmVhdGVHcm91cCgpO1xuXG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5zdWJBc3NldHNTZXJ2aWNlXG4gICAgICAuZ2V0RGVmYXVsdENvbHVtbnMoKVxuICAgICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLm5hbWUgIT09ICdhbGFybXMnKTtcblxuICAgIHRoaXMuYWN0aXZlUm91dGUucXVlcnlQYXJhbU1hcFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlbGF5KDUwKSwgLy8gSXQgYWxsb3dzIHNlZWluZyBkcmF3ZXIgYW5pbWF0aW9uLlxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLFxuICAgICAgICB0YXAocGFyYW1zID0+ICh0aGlzLnNob3dBZGRHcm91cCA9IHBhcmFtcy5oYXModGhpcy5TSE9XX0FERF9HUk9VUCkpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25BZGRHcm91cENsaWNrKCkge1xuICAgIHRoaXMuc2hvd0FkZEdyb3VwID0gIXRoaXMuc2hvd0FkZEdyb3VwO1xuICAgIHRoaXMuaGFuZGxlU2hvd0FkZEdyb3VwUXVlcnlQYXJhbSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcXVlcnkgcGFyYW1ldGVyIGBzaG93QWRkR3JvdXBgIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBgc2hvd0FkZEdyb3VwYCBwcm9wZXJ0eS5cbiAgICogLSBJZiBgc2hvd0FkZEdyb3VwYCBpcyBgdHJ1ZWAsIGFkZHMgYHNob3dBZGRHcm91cD10cnVlYCB0byB0aGUgcXVlcnkgcGFyYW1ldGVycy5cbiAgICogLSBJZiBgc2hvd0FkZEdyb3VwYCBpcyBgZmFsc2VgLCByZW1vdmVzIGBzaG93QWRkR3JvdXBgIGZyb20gdGhlIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVNob3dBZGRHcm91cFF1ZXJ5UGFyYW0oKSB7XG4gICAgY29uc3QgY3VycmVudFBhcmFtcyA9IHsgLi4udGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyB9O1xuXG4gICAgaWYgKHRoaXMuc2hvd0FkZEdyb3VwKSB7XG4gICAgICBjdXJyZW50UGFyYW1zW3RoaXMuU0hPV19BRERfR1JPVVBdID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIGN1cnJlbnRQYXJhbXNbdGhpcy5TSE9XX0FERF9HUk9VUF07XG4gICAgfVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2ZVJvdXRlLFxuICAgICAgcXVlcnlQYXJhbXM6IGN1cnJlbnRQYXJhbXNcbiAgICB9KTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT5cbiAge3sgbW9kdWxlQ29uZmlnLm5hbWUgfCB0cmFuc2xhdGUgfX1cbjwvYzh5LXRpdGxlPlxuXG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgaWNvbj1cImM4eS1ncm91cC1vcGVuXCJcbiAgICBsYWJlbD1cInt7IG1vZHVsZUNvbmZpZy5uYW1lIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gICpuZ0lmPVwibW9kdWxlQ29uZmlnLnNob3dBZGRHcm91cEJ0blwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnQWRkIGdyb3VwJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgKGNsaWNrKT1cIm9uQWRkR3JvdXBDbGljaygpXCJcbiAgICBbZGlzYWJsZWRdPVwic2hvdWxkRGlzYWJsZUFkZEdyb3VwXCJcbiAgICBbYXR0ci5kYXRhLWN5XT1cIidncm91cHMtYWRkLWdyb3VwLWJ1dHRvbidcIlxuICA+XG4gICAgPGlcbiAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCJcbiAgICA+PC9pPlxuICAgIHt7ICdBZGQgZ3JvdXAnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWhlbHBcbiAgc3JjPVwiL2RvY3MvZGV2aWNlLW1hbmFnZW1lbnQtYXBwbGljYXRpb24vZ3JvdXBpbmctZGV2aWNlcy8jZ3JvdXBpbmctZGV2aWNlc1wiXG4gICpuZ0lmPVwibW9kdWxlQ29uZmlnLnNob3dHcm91cHNDb250ZXh0SGVscFwiXG4+PC9jOHktaGVscD5cblxuPGRpdiBbbmdDbGFzc109XCJ7IGRyYXdlck9wZW46IHNob3dBZGRHcm91cCB9XCI+XG4gIDxkaXYgY2xhc3M9XCJib3R0b20tZHJhd2VyXCI+XG4gICAgPGM4eS1hZGQtZ3JvdXBcbiAgICAgIFtyZWZyZXNoXT1cInJlZnJlc2hcIlxuICAgICAgKG9uQ2FuY2VsKT1cIm9uQWRkR3JvdXBDbGljaygpXCJcbiAgICAgICpuZ0lmPVwic2hvd0FkZEdyb3VwXCJcbiAgICA+PC9jOHktYWRkLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGM4eS1zdWItYXNzZXRzLWdyaWRcbiAgY2xhc3M9XCJjb250ZW50LWZ1bGxwYWdlIGQtZmxleCBkLWNvbCBib3JkZXItdG9wIGJvcmRlci1ib3R0b21cIlxuICBbcmVmcmVzaF09XCJyZWZyZXNoXCJcbiAgW2ZpbHRlcmFibGVdPVwiZmlsdGVyYWJsZVwiXG4gIFtzb3J0YWJsZV09XCJzb3J0YWJsZVwiXG4gIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICBbY29sdW1uc0NvbmZpZ0tleV09XCInc3ViLWFzc2V0cy1ncmlkJ1wiXG4gIFtiYXNlUXVlcnldPVwibW9kdWxlQ29uZmlnLmJhc2VRdWVyeVwiXG4+PC9jOHktc3ViLWFzc2V0cy1ncmlkPlxuIl19
@@ -1,8 +1,10 @@
1
1
  import { Component, EventEmitter, Inject } from '@angular/core';
2
- import { ActivatedRoute } from '@angular/router';
2
+ import { ActivatedRoute, Router } from '@angular/router';
3
3
  import { ContextRouteService, Permissions } from '@c8y/ngx-components';
4
+ import { Subject } from 'rxjs';
4
5
  import { SUB_ASSETS_CONFIG } from './sub-assets.model';
5
6
  import { SubAssetsService } from './sub-assets.service';
7
+ import { delay, takeUntil, tap } from 'rxjs/operators';
6
8
  import * as i0 from "@angular/core";
7
9
  import * as i1 from "@angular/router";
8
10
  import * as i2 from "./sub-assets.service";
@@ -15,12 +17,14 @@ import * as i8 from "./assign-devices/assign-devices.component";
15
17
  import * as i9 from "./assign-devices/assign-child-devices.component";
16
18
  import * as i10 from "./asset-properties.component";
17
19
  export class SubAssetsComponent {
18
- constructor(route, subAssetsService, contextRouteService, permissionsService, moduleConfig) {
19
- this.route = route;
20
+ constructor(activeRoute, subAssetsService, contextRouteService, permissionsService, moduleConfig, router) {
21
+ this.activeRoute = activeRoute;
20
22
  this.subAssetsService = subAssetsService;
21
23
  this.contextRouteService = contextRouteService;
22
24
  this.permissionsService = permissionsService;
23
25
  this.moduleConfig = moduleConfig;
26
+ this.router = router;
27
+ this.SHOW_ADD_GROUP = 'showAddGroup';
24
28
  this.toggle = false;
25
29
  this.showAddGroup = false;
26
30
  this.showAssignDevices = false;
@@ -31,7 +35,8 @@ export class SubAssetsComponent {
31
35
  this.shouldDisableAssignDevices = false;
32
36
  this.shouldShowAssetsProperties = false;
33
37
  this.customProperties = [];
34
- this.dataSub = this.route.parent.data.subscribe(({ contextData }) => {
38
+ this.destroyed = new Subject();
39
+ this.activeRoute.parent.data.pipe(takeUntil(this.destroyed)).subscribe(({ contextData }) => {
35
40
  this.init(contextData);
36
41
  });
37
42
  }
@@ -42,6 +47,10 @@ export class SubAssetsComponent {
42
47
  gridHeader: true,
43
48
  filter: true
44
49
  };
50
+ this.activeRoute.queryParamMap
51
+ .pipe(delay(50), // It allows seeing drawer animation.
52
+ takeUntil(this.destroyed), tap(params => (this.showAddGroup = params.has(this.SHOW_ADD_GROUP))))
53
+ .subscribe();
45
54
  }
46
55
  async init(contextData) {
47
56
  this.group = { ...contextData };
@@ -61,26 +70,47 @@ export class SubAssetsComponent {
61
70
  groupChange(group) {
62
71
  this.group = group;
63
72
  this.title = group.name;
64
- this.contextRouteService.setContext(this.route, group);
73
+ this.contextRouteService.setContext(this.activeRoute, group);
65
74
  this.contextRouteService.refreshContext();
66
75
  this.refresh.emit();
67
76
  }
68
77
  isSmartGroup() {
69
78
  return this.subAssetsService.isSmartGroup(this.group);
70
79
  }
80
+ onAddGroupClick() {
81
+ this.showAddGroup = !this.showAddGroup;
82
+ this.handleShowAddGroupQueryParam();
83
+ }
71
84
  ngOnDestroy() {
72
- if (this.dataSub) {
73
- this.dataSub.unsubscribe();
85
+ this.destroyed.next();
86
+ this.destroyed.complete();
87
+ }
88
+ /**
89
+ * Updates the query parameter `showAddGroup` based on the value of `showAddGroup` property.
90
+ * - If `showAddGroup` is `true`, adds `showAddGroup=true` to the query parameters.
91
+ * - If `showAddGroup` is `false`, removes `showAddGroup` from the query parameters.
92
+ */
93
+ handleShowAddGroupQueryParam() {
94
+ const currentParams = { ...this.activeRoute.snapshot.queryParams };
95
+ if (this.showAddGroup) {
96
+ currentParams[this.SHOW_ADD_GROUP] = true;
74
97
  }
98
+ else {
99
+ delete currentParams[this.SHOW_ADD_GROUP];
100
+ }
101
+ this.router.navigate([], {
102
+ relativeTo: this.activeRoute,
103
+ queryParams: currentParams
104
+ });
75
105
  }
76
106
  }
77
- SubAssetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SubAssetsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SubAssetsService }, { token: i3.ContextRouteService }, { token: i3.Permissions }, { token: SUB_ASSETS_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
78
- SubAssetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SubAssetsComponent, selector: "c8y-sub-assets", ngImport: i0, template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"!isSmartGroup() && moduleConfig.showAddGroupBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"showAddGroup = !showAddGroup\"\n [disabled]=\"shouldDisableAddGroup\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span translate>Add group</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"!isSmartGroup() && moduleConfig.showAssignDeviceBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Assign devices' | translate }}\"\n (click)=\"showAssignDevices = !showAssignDevices\"\n [disabled]=\"shouldDisableAssignDevices\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span translate>Assign devices</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/cockpit/managing-assets/#managing-assets\"></c8y-help>\n\n<div\n class=\"card content-fullpage\"\n [ngClass]=\"{\n 'card--grid grid__col--8-4--md grid__row--fit-auto': shouldShowAssetsProperties,\n 'd-flex d-col': !shouldShowAssetsProperties\n }\"\n>\n <c8y-group-info\n class=\"grid__col--fullspan\"\n *ngIf=\"moduleConfig.showDetails\"\n [group]=\"group\"\n (groupChange)=\"groupChange($event)\"\n ></c8y-group-info>\n <c8y-sub-assets-grid\n class=\"d-contents\"\n [refresh]=\"refresh\"\n [parent-group]=\"group\"\n [filterable]=\"filterable\"\n [displayOptions]=\"displayOptions\"\n [columnsConfigKey]=\"'sub-assets-grid'\"\n [baseQuery]=\"moduleConfig.baseQuery\"\n ></c8y-sub-assets-grid>\n <div\n class=\"inner-scroll bg-level-1\"\n *ngIf=\"shouldShowAssetsProperties\"\n >\n <c8y-asset-properties\n class=\"d-contents\"\n [properties]=\"customProperties\"\n [asset]=\"group\"\n (assetChange)=\"groupChange($event)\"\n ></c8y-asset-properties>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [currentGroupId]=\"currentGroupId\"\n [refresh]=\"refresh\"\n (onCancel)=\"showAddGroup = false\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignDevices }\">\n <div class=\"bottom-drawer\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-devices\n class=\"d-contents\"\n (onCancel)=\"showAssignDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n (onShowChildDevices)=\"showAssignChildDevices = $event\"\n (selectedDevice)=\"showChildrenForDevice = $event\"\n *ngIf=\"showAssignDevices\"\n ></c8y-assign-devices>\n </div>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignChildDevices }\">\n <div class=\"bottom-drawer m-t-40\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-child-devices\n class=\"d-contents\"\n *ngIf=\"showAssignChildDevices\"\n (onCancel)=\"showAssignChildDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n [parentDevice]=\"showChildrenForDevice\"\n ></c8y-assign-child-devices>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { 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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "component", type: i5.AddGroupComponent, selector: "c8y-add-group", inputs: ["currentGroupId", "refresh"], outputs: ["onDeviceQueryStringChange", "onCancel"] }, { kind: "component", type: i6.SubAssetsGridComponent, selector: "c8y-sub-assets-grid", inputs: ["parent-group", "refresh", "title", "emptyStateText", "loadingItemsLabel", "columnsConfigKey", "columns", "pagination", "actionControls", "selectable", "baseQuery", "bulkActionControls", "filterable", "sortable", "displayOptions"], outputs: ["onColumnsChange", "itemsSelect"] }, { kind: "component", type: i7.GroupInfoComponent, selector: "c8y-group-info", inputs: ["group"], outputs: ["groupChange"] }, { kind: "component", type: i8.AssignDevicesComponent, selector: "c8y-assign-devices", inputs: ["currentGroupId", "refresh"], outputs: ["onCancel", "onShowChildDevices", "selectedDevice"] }, { kind: "component", type: i9.AssignChildDevicesComponent, selector: "c8y-assign-child-devices", inputs: ["currentGroupId", "parentDevice", "refresh"], outputs: ["onCancel"] }, { kind: "component", type: i10.AssetPropertiesComponent, selector: "c8y-asset-properties", inputs: ["asset", "properties"], outputs: ["assetChange"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] });
107
+ SubAssetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SubAssetsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SubAssetsService }, { token: i3.ContextRouteService }, { token: i3.Permissions }, { token: SUB_ASSETS_CONFIG }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
108
+ SubAssetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SubAssetsComponent, selector: "c8y-sub-assets", ngImport: i0, template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"!isSmartGroup() && moduleConfig.showAddGroupBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"onAddGroupClick()\"\n [disabled]=\"shouldDisableAddGroup\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span translate>Add group</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"!isSmartGroup() && moduleConfig.showAssignDeviceBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Assign devices' | translate }}\"\n (click)=\"showAssignDevices = !showAssignDevices\"\n [disabled]=\"shouldDisableAssignDevices\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span translate>Assign devices</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/cockpit/managing-assets/#managing-assets\"></c8y-help>\n\n<div\n class=\"card content-fullpage\"\n [ngClass]=\"{\n 'card--grid grid__col--8-4--md grid__row--fit-auto': shouldShowAssetsProperties,\n 'd-flex d-col': !shouldShowAssetsProperties\n }\"\n>\n <c8y-group-info\n class=\"grid__col--fullspan\"\n *ngIf=\"moduleConfig.showDetails\"\n [group]=\"group\"\n (groupChange)=\"groupChange($event)\"\n ></c8y-group-info>\n <c8y-sub-assets-grid\n class=\"d-contents\"\n [refresh]=\"refresh\"\n [parent-group]=\"group\"\n [filterable]=\"filterable\"\n [displayOptions]=\"displayOptions\"\n [columnsConfigKey]=\"'sub-assets-grid'\"\n [baseQuery]=\"moduleConfig.baseQuery\"\n ></c8y-sub-assets-grid>\n <div\n class=\"inner-scroll bg-level-1\"\n *ngIf=\"shouldShowAssetsProperties\"\n >\n <c8y-asset-properties\n class=\"d-contents\"\n [properties]=\"customProperties\"\n [asset]=\"group\"\n (assetChange)=\"groupChange($event)\"\n ></c8y-asset-properties>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [currentGroupId]=\"currentGroupId\"\n [refresh]=\"refresh\"\n (onCancel)=\"onAddGroupClick()\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignDevices }\">\n <div class=\"bottom-drawer\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-devices\n class=\"d-contents\"\n (onCancel)=\"showAssignDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n (onShowChildDevices)=\"showAssignChildDevices = $event\"\n (selectedDevice)=\"showChildrenForDevice = $event\"\n *ngIf=\"showAssignDevices\"\n ></c8y-assign-devices>\n </div>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignChildDevices }\">\n <div class=\"bottom-drawer m-t-40\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-child-devices\n class=\"d-contents\"\n *ngIf=\"showAssignChildDevices\"\n (onCancel)=\"showAssignChildDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n [parentDevice]=\"showChildrenForDevice\"\n ></c8y-assign-child-devices>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { 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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "component", type: i5.AddGroupComponent, selector: "c8y-add-group", inputs: ["currentGroupId", "refresh"], outputs: ["onDeviceQueryStringChange", "onCancel"] }, { kind: "component", type: i6.SubAssetsGridComponent, selector: "c8y-sub-assets-grid", inputs: ["parent-group", "refresh", "title", "emptyStateText", "loadingItemsLabel", "columnsConfigKey", "columns", "pagination", "actionControls", "selectable", "baseQuery", "bulkActionControls", "filterable", "sortable", "displayOptions"], outputs: ["onColumnsChange", "itemsSelect"] }, { kind: "component", type: i7.GroupInfoComponent, selector: "c8y-group-info", inputs: ["group"], outputs: ["groupChange"] }, { kind: "component", type: i8.AssignDevicesComponent, selector: "c8y-assign-devices", inputs: ["currentGroupId", "refresh"], outputs: ["onCancel", "onShowChildDevices", "selectedDevice"] }, { kind: "component", type: i9.AssignChildDevicesComponent, selector: "c8y-assign-child-devices", inputs: ["currentGroupId", "parentDevice", "refresh"], outputs: ["onCancel"] }, { kind: "component", type: i10.AssetPropertiesComponent, selector: "c8y-asset-properties", inputs: ["asset", "properties"], outputs: ["assetChange"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] });
79
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SubAssetsComponent, decorators: [{
80
110
  type: Component,
81
- args: [{ selector: 'c8y-sub-assets', template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"!isSmartGroup() && moduleConfig.showAddGroupBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"showAddGroup = !showAddGroup\"\n [disabled]=\"shouldDisableAddGroup\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span translate>Add group</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"!isSmartGroup() && moduleConfig.showAssignDeviceBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Assign devices' | translate }}\"\n (click)=\"showAssignDevices = !showAssignDevices\"\n [disabled]=\"shouldDisableAssignDevices\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span translate>Assign devices</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/cockpit/managing-assets/#managing-assets\"></c8y-help>\n\n<div\n class=\"card content-fullpage\"\n [ngClass]=\"{\n 'card--grid grid__col--8-4--md grid__row--fit-auto': shouldShowAssetsProperties,\n 'd-flex d-col': !shouldShowAssetsProperties\n }\"\n>\n <c8y-group-info\n class=\"grid__col--fullspan\"\n *ngIf=\"moduleConfig.showDetails\"\n [group]=\"group\"\n (groupChange)=\"groupChange($event)\"\n ></c8y-group-info>\n <c8y-sub-assets-grid\n class=\"d-contents\"\n [refresh]=\"refresh\"\n [parent-group]=\"group\"\n [filterable]=\"filterable\"\n [displayOptions]=\"displayOptions\"\n [columnsConfigKey]=\"'sub-assets-grid'\"\n [baseQuery]=\"moduleConfig.baseQuery\"\n ></c8y-sub-assets-grid>\n <div\n class=\"inner-scroll bg-level-1\"\n *ngIf=\"shouldShowAssetsProperties\"\n >\n <c8y-asset-properties\n class=\"d-contents\"\n [properties]=\"customProperties\"\n [asset]=\"group\"\n (assetChange)=\"groupChange($event)\"\n ></c8y-asset-properties>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [currentGroupId]=\"currentGroupId\"\n [refresh]=\"refresh\"\n (onCancel)=\"showAddGroup = false\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignDevices }\">\n <div class=\"bottom-drawer\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-devices\n class=\"d-contents\"\n (onCancel)=\"showAssignDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n (onShowChildDevices)=\"showAssignChildDevices = $event\"\n (selectedDevice)=\"showChildrenForDevice = $event\"\n *ngIf=\"showAssignDevices\"\n ></c8y-assign-devices>\n </div>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignChildDevices }\">\n <div class=\"bottom-drawer m-t-40\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-child-devices\n class=\"d-contents\"\n *ngIf=\"showAssignChildDevices\"\n (onCancel)=\"showAssignChildDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n [parentDevice]=\"showChildrenForDevice\"\n ></c8y-assign-child-devices>\n </div>\n </div>\n</div>\n" }]
111
+ args: [{ selector: 'c8y-sub-assets', template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"!isSmartGroup() && moduleConfig.showAddGroupBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add group' | translate }}\"\n (click)=\"onAddGroupClick()\"\n [disabled]=\"shouldDisableAddGroup\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span translate>Add group</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n *ngIf=\"!isSmartGroup() && moduleConfig.showAssignDeviceBtn\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Assign devices' | translate }}\"\n (click)=\"showAssignDevices = !showAssignDevices\"\n [disabled]=\"shouldDisableAssignDevices\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span translate>Assign devices</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/cockpit/managing-assets/#managing-assets\"></c8y-help>\n\n<div\n class=\"card content-fullpage\"\n [ngClass]=\"{\n 'card--grid grid__col--8-4--md grid__row--fit-auto': shouldShowAssetsProperties,\n 'd-flex d-col': !shouldShowAssetsProperties\n }\"\n>\n <c8y-group-info\n class=\"grid__col--fullspan\"\n *ngIf=\"moduleConfig.showDetails\"\n [group]=\"group\"\n (groupChange)=\"groupChange($event)\"\n ></c8y-group-info>\n <c8y-sub-assets-grid\n class=\"d-contents\"\n [refresh]=\"refresh\"\n [parent-group]=\"group\"\n [filterable]=\"filterable\"\n [displayOptions]=\"displayOptions\"\n [columnsConfigKey]=\"'sub-assets-grid'\"\n [baseQuery]=\"moduleConfig.baseQuery\"\n ></c8y-sub-assets-grid>\n <div\n class=\"inner-scroll bg-level-1\"\n *ngIf=\"shouldShowAssetsProperties\"\n >\n <c8y-asset-properties\n class=\"d-contents\"\n [properties]=\"customProperties\"\n [asset]=\"group\"\n (assetChange)=\"groupChange($event)\"\n ></c8y-asset-properties>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAddGroup }\">\n <div class=\"bottom-drawer\">\n <c8y-add-group\n [currentGroupId]=\"currentGroupId\"\n [refresh]=\"refresh\"\n (onCancel)=\"onAddGroupClick()\"\n *ngIf=\"showAddGroup\"\n ></c8y-add-group>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignDevices }\">\n <div class=\"bottom-drawer\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-devices\n class=\"d-contents\"\n (onCancel)=\"showAssignDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n (onShowChildDevices)=\"showAssignChildDevices = $event\"\n (selectedDevice)=\"showChildrenForDevice = $event\"\n *ngIf=\"showAssignDevices\"\n ></c8y-assign-devices>\n </div>\n </div>\n</div>\n\n<div [ngClass]=\"{ drawerOpen: showAssignChildDevices }\">\n <div class=\"bottom-drawer m-t-40\">\n <div class=\"d-flex d-col no-align-items fit-h\">\n <c8y-assign-child-devices\n class=\"d-contents\"\n *ngIf=\"showAssignChildDevices\"\n (onCancel)=\"showAssignChildDevices = false\"\n [refresh]=\"refresh\"\n [currentGroupId]=\"currentGroupId\"\n [parentDevice]=\"showChildrenForDevice\"\n ></c8y-assign-child-devices>\n </div>\n </div>\n</div>\n" }]
82
112
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SubAssetsService }, { type: i3.ContextRouteService }, { type: i3.Permissions }, { type: undefined, decorators: [{
83
113
  type: Inject,
84
114
  args: [SUB_ASSETS_CONFIG]
85
- }] }]; } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWFzc2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zdWItYXNzZXRzL3N1Yi1hc3NldHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3ViLWFzc2V0cy9zdWItYXNzZXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7QUFNeEQsTUFBTSxPQUFPLGtCQUFrQjtJQW9CN0IsWUFDVSxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsbUJBQXdDLEVBQ3hDLGtCQUErQixFQUNMLFlBQTZCO1FBSnZELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWE7UUFDTCxpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFwQmpFLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QiwrQkFBMEIsR0FBRyxLQUFLLENBQUM7UUFDbkMsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFXdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ3BCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLEtBQUs7WUFDZixVQUFVLEVBQUUsSUFBSTtZQUNoQixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FDbEU7WUFDRSxXQUFXLENBQUMsb0JBQW9CO1lBQ2hDLFdBQVcsQ0FBQyxxQkFBcUI7WUFDakMsV0FBVyxDQUFDLHlCQUF5QjtZQUNyQyxXQUFXLENBQUMsMEJBQTBCO1NBQ3ZDLEVBQ0QsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQywwQkFBMEI7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFxQjtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7K0dBNUVVLGtCQUFrQiw4SUF5Qm5CLGlCQUFpQjttR0F6QmhCLGtCQUFrQixzRENaL0Isa3pHQXNIQTsyRkQxR2Esa0JBQWtCO2tCQUo5QixTQUFTOytCQUNFLGdCQUFnQjs7MEJBNEJ2QixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IENvbnRleHRSb3V0ZVNlcnZpY2UsIERpc3BsYXlPcHRpb25zLCBQZXJtaXNzaW9ucyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTVUJfQVNTRVRTX0NPTkZJRywgU3ViQXNzZXRzQ29uZmlnIH0gZnJvbSAnLi9zdWItYXNzZXRzLm1vZGVsJztcbmltcG9ydCB7IFN1YkFzc2V0c1NlcnZpY2UgfSBmcm9tICcuL3N1Yi1hc3NldHMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zdWItYXNzZXRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Yi1hc3NldHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFN1YkFzc2V0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgZ3JvdXA6IElNYW5hZ2VkT2JqZWN0O1xuICBjdXJyZW50R3JvdXBJZDogc3RyaW5nO1xuICBzaG93Q2hpbGRyZW5Gb3JEZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuICB0aXRsZTogc3RyaW5nO1xuICB0b2dnbGUgPSBmYWxzZTtcbiAgc2hvd0FkZEdyb3VwID0gZmFsc2U7XG4gIHNob3dBc3NpZ25EZXZpY2VzID0gZmFsc2U7XG4gIHJlcXVlc3RJblByb2dyZXNzOiBib29sZWFuO1xuICBzaG93QXNzaWduQ2hpbGREZXZpY2VzID0gZmFsc2U7XG4gIHJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBmaWx0ZXJhYmxlID0gdHJ1ZTtcbiAgc2hvdWxkRGlzYWJsZUFkZEdyb3VwID0gZmFsc2U7XG4gIHNob3VsZERpc2FibGVBc3NpZ25EZXZpY2VzID0gZmFsc2U7XG4gIHNob3VsZFNob3dBc3NldHNQcm9wZXJ0aWVzID0gZmFsc2U7XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucztcbiAgY3VzdG9tUHJvcGVydGllczogSU1hbmFnZWRPYmplY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZGF0YVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgc3ViQXNzZXRzU2VydmljZTogU3ViQXNzZXRzU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRSb3V0ZVNlcnZpY2U6IENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uc1NlcnZpY2U6IFBlcm1pc3Npb25zLFxuICAgIEBJbmplY3QoU1VCX0FTU0VUU19DT05GSUcpIHB1YmxpYyBtb2R1bGVDb25maWc6IFN1YkFzc2V0c0NvbmZpZ1xuICApIHtcbiAgICB0aGlzLmRhdGFTdWIgPSB0aGlzLnJvdXRlLnBhcmVudC5kYXRhLnN1YnNjcmliZSgoeyBjb250ZXh0RGF0YSB9KSA9PiB7XG4gICAgICB0aGlzLmluaXQoY29udGV4dERhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kaXNwbGF5T3B0aW9ucyA9IHtcbiAgICAgIHN0cmlwZWQ6IHRydWUsXG4gICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICBncmlkSGVhZGVyOiB0cnVlLFxuICAgICAgZmlsdGVyOiB0cnVlXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGluaXQoY29udGV4dERhdGEpIHtcbiAgICB0aGlzLmdyb3VwID0geyAuLi5jb250ZXh0RGF0YSB9O1xuICAgIHRoaXMudGl0bGUgPSB0aGlzLmdyb3VwLm5hbWU7XG4gICAgdGhpcy5jdXJyZW50R3JvdXBJZCA9IHRoaXMuZ3JvdXAuaWQ7XG4gICAgdGhpcy5zaG91bGREaXNhYmxlQWRkR3JvdXAgPSAhKGF3YWl0IHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmNhbkVkaXQoXG4gICAgICBbXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfSU5WRU5UT1JZX0FETUlOLFxuICAgICAgICBQZXJtaXNzaW9ucy5ST0xFX0lOVkVOVE9SWV9DUkVBVEUsXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfTUFOQUdFRF9PQkpFQ1RfQURNSU4sXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfTUFOQUdFRF9PQkpFQ1RfQ1JFQVRFXG4gICAgICBdLFxuICAgICAgdGhpcy5ncm91cFxuICAgICkpO1xuICAgIHRoaXMuc2hvdWxkRGlzYWJsZUFzc2lnbkRldmljZXMgPSAhKGF3YWl0IHRoaXMuc3ViQXNzZXRzU2VydmljZS5jYW5Bc3NpZ25EZXZpY2UodGhpcy5ncm91cCkpO1xuICAgIHRoaXMuY3VzdG9tUHJvcGVydGllcyA9IGF3YWl0IHRoaXMuc3ViQXNzZXRzU2VydmljZS5nZXRDdXN0b21Qcm9wZXJ0aWVzKHRoaXMuZ3JvdXApO1xuICAgIHRoaXMuc2hvdWxkU2hvd0Fzc2V0c1Byb3BlcnRpZXMgPVxuICAgICAgdGhpcy5tb2R1bGVDb25maWcuc2hvd1Byb3BlcnRpZXMgJiYgdGhpcy5jdXN0b21Qcm9wZXJ0aWVzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBncm91cENoYW5nZShncm91cDogSU1hbmFnZWRPYmplY3QpOiB2b2lkIHtcbiAgICB0aGlzLmdyb3VwID0gZ3JvdXA7XG4gICAgdGhpcy50aXRsZSA9IGdyb3VwLm5hbWU7XG4gICAgdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLnNldENvbnRleHQodGhpcy5yb3V0ZSwgZ3JvdXApO1xuICAgIHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5yZWZyZXNoQ29udGV4dCgpO1xuICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XG4gIH1cblxuICBpc1NtYXJ0R3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViQXNzZXRzU2VydmljZS5pc1NtYXJ0R3JvdXAodGhpcy5ncm91cCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3ViKSB7XG4gICAgICB0aGlzLmRhdGFTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+XG4gIHt7IHRpdGxlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgKm5nSWY9XCIhaXNTbWFydEdyb3VwKCkgJiYgbW9kdWxlQ29uZmlnLnNob3dBZGRHcm91cEJ0blwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnQWRkIGdyb3VwJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgKGNsaWNrKT1cInNob3dBZGRHcm91cCA9ICFzaG93QWRkR3JvdXBcIlxuICAgIFtkaXNhYmxlZF09XCJzaG91bGREaXNhYmxlQWRkR3JvdXBcIlxuICA+XG4gICAgPGlcbiAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCJcbiAgICA+PC9pPlxuICAgIDxzcGFuIHRyYW5zbGF0ZT5BZGQgZ3JvdXA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAqbmdJZj1cIiFpc1NtYXJ0R3JvdXAoKSAmJiBtb2R1bGVDb25maWcuc2hvd0Fzc2lnbkRldmljZUJ0blwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnQXNzaWduIGRldmljZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAoY2xpY2spPVwic2hvd0Fzc2lnbkRldmljZXMgPSAhc2hvd0Fzc2lnbkRldmljZXNcIlxuICAgIFtkaXNhYmxlZF09XCJzaG91bGREaXNhYmxlQXNzaWduRGV2aWNlc1wiXG4gID5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICBjOHlJY29uPVwicGx1cy1jaXJjbGVcIlxuICAgID48L2k+XG4gICAgPHNwYW4gdHJhbnNsYXRlPkFzc2lnbiBkZXZpY2VzPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1oZWxwIHNyYz1cIi9kb2NzL2NvY2twaXQvbWFuYWdpbmctYXNzZXRzLyNtYW5hZ2luZy1hc3NldHNcIj48L2M4eS1oZWxwPlxuXG48ZGl2XG4gIGNsYXNzPVwiY2FyZCBjb250ZW50LWZ1bGxwYWdlXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjYXJkLS1ncmlkIGdyaWRfX2NvbC0tOC00LS1tZCBncmlkX19yb3ctLWZpdC1hdXRvJzogc2hvdWxkU2hvd0Fzc2V0c1Byb3BlcnRpZXMsXG4gICAgJ2QtZmxleCBkLWNvbCc6ICFzaG91bGRTaG93QXNzZXRzUHJvcGVydGllc1xuICB9XCJcbj5cbiAgPGM4eS1ncm91cC1pbmZvXG4gICAgY2xhc3M9XCJncmlkX19jb2wtLWZ1bGxzcGFuXCJcbiAgICAqbmdJZj1cIm1vZHVsZUNvbmZpZy5zaG93RGV0YWlsc1wiXG4gICAgW2dyb3VwXT1cImdyb3VwXCJcbiAgICAoZ3JvdXBDaGFuZ2UpPVwiZ3JvdXBDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2M4eS1ncm91cC1pbmZvPlxuICA8Yzh5LXN1Yi1hc3NldHMtZ3JpZFxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgW3JlZnJlc2hdPVwicmVmcmVzaFwiXG4gICAgW3BhcmVudC1ncm91cF09XCJncm91cFwiXG4gICAgW2ZpbHRlcmFibGVdPVwiZmlsdGVyYWJsZVwiXG4gICAgW2Rpc3BsYXlPcHRpb25zXT1cImRpc3BsYXlPcHRpb25zXCJcbiAgICBbY29sdW1uc0NvbmZpZ0tleV09XCInc3ViLWFzc2V0cy1ncmlkJ1wiXG4gICAgW2Jhc2VRdWVyeV09XCJtb2R1bGVDb25maWcuYmFzZVF1ZXJ5XCJcbiAgPjwvYzh5LXN1Yi1hc3NldHMtZ3JpZD5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaW5uZXItc2Nyb2xsIGJnLWxldmVsLTFcIlxuICAgICpuZ0lmPVwic2hvdWxkU2hvd0Fzc2V0c1Byb3BlcnRpZXNcIlxuICA+XG4gICAgPGM4eS1hc3NldC1wcm9wZXJ0aWVzXG4gICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgW3Byb3BlcnRpZXNdPVwiY3VzdG9tUHJvcGVydGllc1wiXG4gICAgICBbYXNzZXRdPVwiZ3JvdXBcIlxuICAgICAgKGFzc2V0Q2hhbmdlKT1cImdyb3VwQ2hhbmdlKCRldmVudClcIlxuICAgID48L2M4eS1hc3NldC1wcm9wZXJ0aWVzPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IFtuZ0NsYXNzXT1cInsgZHJhd2VyT3Blbjogc2hvd0FkZEdyb3VwIH1cIj5cbiAgPGRpdiBjbGFzcz1cImJvdHRvbS1kcmF3ZXJcIj5cbiAgICA8Yzh5LWFkZC1ncm91cFxuICAgICAgW2N1cnJlbnRHcm91cElkXT1cImN1cnJlbnRHcm91cElkXCJcbiAgICAgIFtyZWZyZXNoXT1cInJlZnJlc2hcIlxuICAgICAgKG9uQ2FuY2VsKT1cInNob3dBZGRHcm91cCA9IGZhbHNlXCJcbiAgICAgICpuZ0lmPVwic2hvd0FkZEdyb3VwXCJcbiAgICA+PC9jOHktYWRkLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IFtuZ0NsYXNzXT1cInsgZHJhd2VyT3Blbjogc2hvd0Fzc2lnbkRldmljZXMgfVwiPlxuICA8ZGl2IGNsYXNzPVwiYm90dG9tLWRyYXdlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZC1jb2wgbm8tYWxpZ24taXRlbXMgZml0LWhcIj5cbiAgICAgIDxjOHktYXNzaWduLWRldmljZXNcbiAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgICAgKG9uQ2FuY2VsKT1cInNob3dBc3NpZ25EZXZpY2VzID0gZmFsc2VcIlxuICAgICAgICBbcmVmcmVzaF09XCJyZWZyZXNoXCJcbiAgICAgICAgW2N1cnJlbnRHcm91cElkXT1cImN1cnJlbnRHcm91cElkXCJcbiAgICAgICAgKG9uU2hvd0NoaWxkRGV2aWNlcyk9XCJzaG93QXNzaWduQ2hpbGREZXZpY2VzID0gJGV2ZW50XCJcbiAgICAgICAgKHNlbGVjdGVkRGV2aWNlKT1cInNob3dDaGlsZHJlbkZvckRldmljZSA9ICRldmVudFwiXG4gICAgICAgICpuZ0lmPVwic2hvd0Fzc2lnbkRldmljZXNcIlxuICAgICAgPjwvYzh5LWFzc2lnbi1kZXZpY2VzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IFtuZ0NsYXNzXT1cInsgZHJhd2VyT3Blbjogc2hvd0Fzc2lnbkNoaWxkRGV2aWNlcyB9XCI+XG4gIDxkaXYgY2xhc3M9XCJib3R0b20tZHJhd2VyIG0tdC00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZC1jb2wgbm8tYWxpZ24taXRlbXMgZml0LWhcIj5cbiAgICAgIDxjOHktYXNzaWduLWNoaWxkLWRldmljZXNcbiAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgICAgKm5nSWY9XCJzaG93QXNzaWduQ2hpbGREZXZpY2VzXCJcbiAgICAgICAgKG9uQ2FuY2VsKT1cInNob3dBc3NpZ25DaGlsZERldmljZXMgPSBmYWxzZVwiXG4gICAgICAgIFtyZWZyZXNoXT1cInJlZnJlc2hcIlxuICAgICAgICBbY3VycmVudEdyb3VwSWRdPVwiY3VycmVudEdyb3VwSWRcIlxuICAgICAgICBbcGFyZW50RGV2aWNlXT1cInNob3dDaGlsZHJlbkZvckRldmljZVwiXG4gICAgICA+PC9jOHktYXNzaWduLWNoaWxkLWRldmljZXM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
115
+ }] }, { type: i1.Router }]; } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWFzc2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zdWItYXNzZXRzL3N1Yi1hc3NldHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3ViLWFzc2V0cy9zdWItYXNzZXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTXZELE1BQU0sT0FBTyxrQkFBa0I7SUFzQjdCLFlBQ1UsV0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxrQkFBK0IsRUFDTCxZQUE2QixFQUN2RCxNQUFjO1FBTGQsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWE7UUFDTCxpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDdkQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTNCaEIsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFLeEMsV0FBTSxHQUFHLEtBQUssQ0FBQztR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bXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29udGV4dFJvdXRlU2VydmljZSwgRGlzcGxheU9wdGlvbnMsIFBlcm1pc3Npb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNVQl9BU1NFVFNfQ09ORklHLCBTdWJBc3NldHNDb25maWcgfSBmcm9tICcuL3N1Yi1hc3NldHMubW9kZWwnO1xuaW1wb3J0IHsgU3ViQXNzZXRzU2VydmljZSB9IGZyb20gJy4vc3ViLWFzc2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXN1Yi1hc3NldHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3ViLWFzc2V0cy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3ViQXNzZXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIFNIT1dfQUREX0dST1VQID0gJ3Nob3dBZGRHcm91cCc7XG4gIGdyb3VwOiBJTWFuYWdlZE9iamVjdDtcbiAgY3VycmVudEdyb3VwSWQ6IHN0cmluZztcbiAgc2hvd0NoaWxkcmVuRm9yRGV2aWNlOiBJTWFuYWdlZE9iamVjdDtcbiAgdGl0bGU6IHN0cmluZztcbiAgdG9nZ2xlID0gZmFsc2U7XG4gIHNob3dBZGRHcm91cCA9IGZhbHNlO1xuICBzaG93QXNzaWduRGV2aWNlcyA9IGZhbHNlO1xuICByZXF1ZXN0SW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgc2hvd0Fzc2lnbkNoaWxkRGV2aWNlcyA9IGZhbHNlO1xuICByZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgZmlsdGVyYWJsZSA9IHRydWU7XG4gIHNob3VsZERpc2FibGVBZGRHcm91cCA9IGZhbHNlO1xuICBzaG91bGREaXNhYmxlQXNzaWduRGV2aWNlcyA9IGZhbHNlO1xuICBzaG91bGRTaG93QXNzZXRzUHJvcGVydGllcyA9IGZhbHNlO1xuICBkaXNwbGF5T3B0aW9uczogRGlzcGxheU9wdGlvbnM7XG4gIGN1c3RvbVByb3BlcnRpZXM6IElNYW5hZ2VkT2JqZWN0W10gPSBbXTtcbiAgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIGRhdGFTdWI6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGl2ZVJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHN1YkFzc2V0c1NlcnZpY2U6IFN1YkFzc2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0Um91dGVTZXJ2aWNlOiBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVybWlzc2lvbnNTZXJ2aWNlOiBQZXJtaXNzaW9ucyxcbiAgICBASW5qZWN0KFNVQl9BU1NFVFNfQ09ORklHKSBwdWJsaWMgbW9kdWxlQ29uZmlnOiBTdWJBc3NldHNDb25maWcsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICB0aGlzLmFjdGl2ZVJvdXRlLnBhcmVudC5kYXRhLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKCh7IGNvbnRleHREYXRhIH0pID0+IHtcbiAgICAgIHRoaXMuaW5pdChjb250ZXh0RGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRpc3BsYXlPcHRpb25zID0ge1xuICAgICAgc3RyaXBlZDogdHJ1ZSxcbiAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgIGdyaWRIZWFkZXI6IHRydWUsXG4gICAgICBmaWx0ZXI6IHRydWVcbiAgICB9O1xuXG4gICAgdGhpcy5hY3RpdmVSb3V0ZS5xdWVyeVBhcmFtTWFwXG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoNTApLCAvLyBJdCBhbGxvd3Mgc2VlaW5nIGRyYXdlciBhbmltYXRpb24uXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXG4gICAgICAgIHRhcChwYXJhbXMgPT4gKHRoaXMuc2hvd0FkZEdyb3VwID0gcGFyYW1zLmhhcyh0aGlzLlNIT1dfQUREX0dST1VQKSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBhc3luYyBpbml0KGNvbnRleHREYXRhKSB7XG4gICAgdGhpcy5ncm91cCA9IHsgLi4uY29udGV4dERhdGEgfTtcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5ncm91cC5uYW1lO1xuICAgIHRoaXMuY3VycmVudEdyb3VwSWQgPSB0aGlzLmdyb3VwLmlkO1xuICAgIHRoaXMuc2hvdWxkRGlzYWJsZUFkZEdyb3VwID0gIShhd2FpdCB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5jYW5FZGl0KFxuICAgICAgW1xuICAgICAgICBQZXJtaXNzaW9ucy5ST0xFX0lOVkVOVE9SWV9BRE1JTixcbiAgICAgICAgUGVybWlzc2lvbnMuUk9MRV9JTlZFTlRPUllfQ1JFQVRFLFxuICAgICAgICBQZXJtaXNzaW9ucy5ST0xFX01BTkFHRURfT0JKRUNUX0FETUlOLFxuICAgICAgICBQZXJtaXNzaW9ucy5ST0xFX01BTkFHRURfT0JKRUNUX0NSRUFURVxuICAgICAgXSxcbiAgICAgIHRoaXMuZ3JvdXBcbiAgICApKTtcbiAgICB0aGlzLnNob3VsZERpc2FibGVBc3NpZ25EZXZpY2VzID0gIShhd2FpdCB0aGlzLnN1YkFzc2V0c1NlcnZpY2UuY2FuQXNzaWduRGV2aWNlKHRoaXMuZ3JvdXApKTtcbiAgICB0aGlzLmN1c3RvbVByb3BlcnRpZXMgPSBhd2FpdCB0aGlzLnN1YkFzc2V0c1NlcnZpY2UuZ2V0Q3VzdG9tUHJvcGVydGllcyh0aGlzLmdyb3VwKTtcbiAgICB0aGlzLnNob3VsZFNob3dBc3NldHNQcm9wZXJ0aWVzID1cbiAgICAgIHRoaXMubW9kdWxlQ29uZmlnLnNob3dQcm9wZXJ0aWVzICYmIHRoaXMuY3VzdG9tUHJvcGVydGllcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ3JvdXBDaGFuZ2UoZ3JvdXA6IElNYW5hZ2VkT2JqZWN0KTogdm9pZCB7XG4gICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICAgIHRoaXMudGl0bGUgPSBncm91cC5uYW1lO1xuICAgIHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5zZXRDb250ZXh0KHRoaXMuYWN0aXZlUm91dGUsIGdyb3VwKTtcbiAgICB0aGlzLmNvbnRleHRSb3V0ZVNlcnZpY2UucmVmcmVzaENvbnRleHQoKTtcbiAgICB0aGlzLnJlZnJlc2guZW1pdCgpO1xuICB9XG5cbiAgaXNTbWFydEdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLnN1YkFzc2V0c1NlcnZpY2UuaXNTbWFydEdyb3VwKHRoaXMuZ3JvdXApO1xuICB9XG5cbiAgb25BZGRHcm91cENsaWNrKCkge1xuICAgIHRoaXMuc2hvd0FkZEdyb3VwID0gIXRoaXMuc2hvd0FkZEdyb3VwO1xuICAgIHRoaXMuaGFuZGxlU2hvd0FkZEdyb3VwUXVlcnlQYXJhbSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcXVlcnkgcGFyYW1ldGVyIGBzaG93QWRkR3JvdXBgIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBgc2hvd0FkZEdyb3VwYCBwcm9wZXJ0eS5cbiAgICogLSBJZiBgc2hvd0FkZEdyb3VwYCBpcyBgdHJ1ZWAsIGFkZHMgYHNob3dBZGRHcm91cD10cnVlYCB0byB0aGUgcXVlcnkgcGFyYW1ldGVycy5cbiAgICogLSBJZiBgc2hvd0FkZEdyb3VwYCBpcyBgZmFsc2VgLCByZW1vdmVzIGBzaG93QWRkR3JvdXBgIGZyb20gdGhlIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVNob3dBZGRHcm91cFF1ZXJ5UGFyYW0oKSB7XG4gICAgY29uc3QgY3VycmVudFBhcmFtcyA9IHsgLi4udGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyB9O1xuXG4gICAgaWYgKHRoaXMuc2hvd0FkZEdyb3VwKSB7XG4gICAgICBjdXJyZW50UGFyYW1zW3RoaXMuU0hPV19BRERfR1JPVVBdID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIGN1cnJlbnRQYXJhbXNbdGhpcy5TSE9XX0FERF9HUk9VUF07XG4gICAgfVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2ZVJvdXRlLFxuICAgICAgcXVlcnlQYXJhbXM6IGN1cnJlbnRQYXJhbXNcbiAgICB9KTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT5cbiAge3sgdGl0bGUgfX1cbjwvYzh5LXRpdGxlPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAqbmdJZj1cIiFpc1NtYXJ0R3JvdXAoKSAmJiBtb2R1bGVDb25maWcuc2hvd0FkZEdyb3VwQnRuXCJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdBZGQgZ3JvdXAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAoY2xpY2spPVwib25BZGRHcm91cENsaWNrKClcIlxuICAgIFtkaXNhYmxlZF09XCJzaG91bGREaXNhYmxlQWRkR3JvdXBcIlxuICA+XG4gICAgPGlcbiAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCJcbiAgICA+PC9pPlxuICAgIDxzcGFuIHRyYW5zbGF0ZT5BZGQgZ3JvdXA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICAqbmdJZj1cIiFpc1NtYXJ0R3JvdXAoKSAmJiBtb2R1bGVDb25maWcuc2hvd0Fzc2lnbkRldmljZUJ0blwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnQXNzaWduIGRldmljZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAoY2xpY2spPVwic2hvd0Fzc2lnbkRldmljZXMgPSAhc2hvd0Fzc2lnbkRldmljZXNcIlxuICAgIFtkaXNhYmxlZF09XCJzaG91bGREaXNhYmxlQXNzaWduRGV2aWNlc1wiXG4gID5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICBjOHlJY29uPVwicGx1cy1jaXJjbGVcIlxuICAgID48L2k+XG4gICAgPHNwYW4gdHJhbnNsYXRlPkFzc2lnbiBkZXZpY2VzPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1oZWxwIHNyYz1cIi9kb2NzL2NvY2twaXQvbWFuYWdpbmctYXNzZXRzLyNtYW5hZ2luZy1hc3NldHNcIj48L2M4eS1oZWxwPlxuXG48ZGl2XG4gIGNsYXNzPVwiY2FyZCBjb250ZW50LWZ1bGxwYWdlXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjYXJkLS1ncmlkIGdyaWRfX2NvbC0tOC00LS1tZCBncmlkX19yb3ctLWZpdC1hdXRvJzogc2hvdWxkU2hvd0Fzc2V0c1Byb3BlcnRpZXMsXG4gICAgJ2QtZmxleCBkLWNvbCc6ICFzaG91bGRTaG93QXNzZXRzUHJvcGVydGllc1xuICB9XCJcbj5cbiAgPGM4eS1ncm91cC1pbmZvXG4gICAgY2xhc3M9XCJncmlkX19jb2wtLWZ1bGxzcGFuXCJcbiAgICAqbmdJZj1cIm1vZHVsZUNvbmZpZy5zaG93RGV0YWlsc1wiXG4gICAgW2dyb3VwXT1cImdyb3VwXCJcbiAgICAoZ3JvdXBDaGFuZ2UpPVwiZ3JvdXBDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2M4eS1ncm91cC1pbmZvPlxuICA8Yzh5LXN1Yi1hc3NldHMtZ3JpZFxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgW3JlZnJlc2hdPVwicmVmcmVzaFwiXG4gICAgW3BhcmVudC1ncm91cF09XCJncm91cFwiXG4gICAgW2ZpbHRlcmFibGVdPVwiZmlsdGVyYWJsZVwiXG4gICAgW2Rpc3BsYXlPcHRpb25zXT1cImRpc3BsYXlPcHRpb25zXCJcbiAgICBbY29sdW1uc0NvbmZpZ0tleV09XCInc3ViLWFzc2V0cy1ncmlkJ1wiXG4gICAgW2Jhc2VRdWVyeV09XCJtb2R1bGVDb25maWcuYmFzZVF1ZXJ5XCJcbiAgPjwvYzh5LXN1Yi1hc3NldHMtZ3JpZD5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaW5uZXItc2Nyb2xsIGJnLWxldmVsLTFcIlxuICAgICpuZ0lmPVwic2hvdWxkU2hvd0Fzc2V0c1Byb3BlcnRpZXNcIlxuICA+XG4gICAgPGM4eS1hc3NldC1wcm9wZXJ0aWVzXG4gICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgW3Byb3BlcnRpZXNdPVwiY3VzdG9tUHJvcGVydGllc1wiXG4gICAgICBbYXNzZXRdPVwiZ3JvdXBcIlxuICAgICAgKGFzc2V0Q2hhbmdlKT1cImdyb3VwQ2hhbmdlKCRldmVudClcIlxuICAgID48L2M4eS1hc3NldC1wcm9wZXJ0aWVzPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IFtuZ0NsYXNzXT1cInsgZHJhd2VyT3Blbjogc2hvd0FkZEdyb3VwIH1cIj5cbiAgPGRpdiBjbGFzcz1cImJvdHRvbS1kcmF3ZXJcIj5cbiAgICA8Yzh5LWFkZC1ncm91cFxuICAgICAgW2N1cnJlbnRHcm91cElkXT1cImN1cnJlbnRHcm91cElkXCJcbiAgICAgIFtyZWZyZXNoXT1cInJlZnJlc2hcIlxuICAgICAgKG9uQ2FuY2VsKT1cIm9uQWRkR3JvdXBDbGljaygpXCJcbiAgICAgICpuZ0lmPVwic2hvd0FkZEdyb3VwXCJcbiAgICA+PC9jOHktYWRkLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IFtuZ0NsYXNzXT1cInsgZHJhd2VyT3Blbjogc2hvd0Fzc2lnbkRldmljZXMgfVwiPlxuICA8ZGl2IGNsYXNzPVwiYm90dG9tLWRyYXdlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZC1jb2wgbm8tYWxpZ24taXRlbXMgZml0LWhcIj5cbiAgICAgIDxjOHktYXNzaWduLWRldmljZXNcbiAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgICAgKG9uQ2FuY2VsKT1cInNob3dBc3NpZ25EZXZpY2VzID0gZmFsc2VcIlxuICAgICAgICBbcmVmcmVzaF09XCJyZWZyZXNoXCJcbiAgICAgICAgW2N1cnJlbnRHcm91cElkXT1cImN1cnJlbnRHcm91cElkXCJcbiAgICAgICAgKG9uU2hvd0NoaWxkRGV2aWNlcyk9XCJzaG93QXNzaWduQ2hpbGREZXZpY2VzID0gJGV2ZW50XCJcbiAgICAgICAgKHNlbGVjdGVkRGV2aWNlKT1cInNob3dDaGlsZHJlbkZvckRldmljZSA9ICRldmVudFwiXG4gICAgICAgICpuZ0lmPVwic2hvd0Fzc2lnbkRldmljZXNcIlxuICAgICAgPjwvYzh5LWFzc2lnbi1kZXZpY2VzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IFtuZ0NsYXNzXT1cInsgZHJhd2VyT3Blbjogc2hvd0Fzc2lnbkNoaWxkRGV2aWNlcyB9XCI+XG4gIDxkaXYgY2xhc3M9XCJib3R0b20tZHJhd2VyIG0tdC00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZC1jb2wgbm8tYWxpZ24taXRlbXMgZml0LWhcIj5cbiAgICAgIDxjOHktYXNzaWduLWNoaWxkLWRldmljZXNcbiAgICAgICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICAgICAgKm5nSWY9XCJzaG93QXNzaWduQ2hpbGREZXZpY2VzXCJcbiAgICAgICAgKG9uQ2FuY2VsKT1cInNob3dBc3NpZ25DaGlsZERldmljZXMgPSBmYWxzZVwiXG4gICAgICAgIFtyZWZyZXNoXT1cInJlZnJlc2hcIlxuICAgICAgICBbY3VycmVudEdyb3VwSWRdPVwiY3VycmVudEdyb3VwSWRcIlxuICAgICAgICBbcGFyZW50RGV2aWNlXT1cInNob3dDaGlsZHJlbkZvckRldmljZVwiXG4gICAgICA+PC9jOHktYXNzaWduLWNoaWxkLWRldmljZXM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=