@sumaris-net/ngx-components 18.12.13 → 18.13.0

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/doc/changelog.md +7 -0
  2. package/esm2022/public_api.mjs +3 -1
  3. package/esm2022/src/app/core/home/home.mjs +39 -19
  4. package/esm2022/src/app/core/home/home.module.mjs +7 -3
  5. package/esm2022/src/app/shared/observables.mjs +2 -2
  6. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +3 -2
  7. package/esm2022/src/app/social/config/social.config.mjs +9 -0
  8. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +21 -21
  9. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +111 -51
  10. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +49 -32
  11. package/esm2022/src/app/social/user-event/notification/user-event-notification.modal.mjs +81 -0
  12. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +27 -11
  13. package/esm2022/src/app/social/user-event/user-event.module.mjs +5 -4
  14. package/esm2022/src/app/social/user-event/user-event.service.mjs +3 -3
  15. package/fesm2022/sumaris-net.ngx-components.mjs +5473 -5282
  16. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  17. package/package.json +1 -1
  18. package/public_api.d.ts +2 -0
  19. package/src/app/core/home/home.d.ts +28 -20
  20. package/src/app/core/home/home.module.d.ts +2 -1
  21. package/src/app/shared/inputs.d.ts +1 -1
  22. package/src/app/shared/observables.d.ts +1 -1
  23. package/src/app/social/config/social.config.d.ts +4 -0
  24. package/src/app/social/job/progression/job-progression.icon.d.ts +14 -14
  25. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +23 -9
  26. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +20 -16
  27. package/src/app/social/user-event/notification/user-event-notification.modal.d.ts +36 -0
  28. package/src/app/social/user-event/testing/user-event.testing.d.ts +11 -2
  29. package/src/app/social/user-event/user-event.module.d.ts +7 -6
  30. package/src/app/social/user-event/user-event.service.d.ts +2 -2
  31. package/src/assets/i18n/fr.json +2 -1
  32. package/src/assets/manifest.json +1 -1
  33. package/src/theme/_ngx-components.scss +4 -1
  34. package/src/theme/_theme.variables.scss +1 -1
@@ -7,6 +7,7 @@ import { RouterModule } from '@angular/router';
7
7
  import { AppInstallUpgradeCardModule } from '../install/install-upgrade-card.module';
8
8
  import { RxStateModule } from '../../shared/rx-state/rx-state.module';
9
9
  import { SharedMarkdownModule } from '../../shared/markdown/markdown.module';
10
+ import { UserEventModule } from '../../social/user-event/user-event.module';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@ngx-translate/core";
12
13
  export class AppHomePageModule {
@@ -16,7 +17,8 @@ export class AppHomePageModule {
16
17
  // App modules
17
18
  AppAuthModule,
18
19
  AppInstallUpgradeCardModule,
19
- SharedMarkdownModule], exports: [RouterModule, TranslateModule, HomePage] });
20
+ SharedMarkdownModule,
21
+ UserEventModule], exports: [RouterModule, TranslateModule, HomePage] });
20
22
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppHomePageModule, imports: [SharedModule,
21
23
  RouterModule,
22
24
  TranslateModule.forChild(),
@@ -24,7 +26,8 @@ export class AppHomePageModule {
24
26
  // App modules
25
27
  AppAuthModule,
26
28
  AppInstallUpgradeCardModule,
27
- SharedMarkdownModule, RouterModule, TranslateModule] });
29
+ SharedMarkdownModule,
30
+ UserEventModule, RouterModule, TranslateModule] });
28
31
  }
29
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppHomePageModule, decorators: [{
30
33
  type: NgModule,
@@ -38,9 +41,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38
41
  AppAuthModule,
39
42
  AppInstallUpgradeCardModule,
40
43
  SharedMarkdownModule,
44
+ UserEventModule,
41
45
  ],
42
46
  declarations: [HomePage],
43
47
  exports: [RouterModule, TranslateModule, HomePage],
44
48
  }]
45
49
  }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvaG9tZS9ob21lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBa0I3RSxNQUFNLE9BQU8saUJBQWlCO3dHQUFqQixpQkFBaUI7eUdBQWpCLGlCQUFpQixpQkFIYixRQUFRLGFBWHJCLFlBQVk7WUFDWixZQUFZLHNCQUVaLGFBQWE7WUFFYixjQUFjO1lBQ2QsYUFBYTtZQUNiLDJCQUEyQjtZQUMzQixvQkFBb0IsYUFJWixZQUFZLEVBQUUsZUFBZSxFQUFFLFFBQVE7eUdBRXRDLGlCQUFpQixZQWQxQixZQUFZO1lBQ1osWUFBWTtZQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsYUFBYTtZQUViLGNBQWM7WUFDZCxhQUFhO1lBQ2IsMkJBQTJCO1lBQzNCLG9CQUFvQixFQUlaLFlBQVksRUFBRSxlQUFlOzs0RkFFNUIsaUJBQWlCO2tCQWhCN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLGFBQWE7d0JBRWIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLDJCQUEyQjt3QkFDM0Isb0JBQW9CO3FCQUNyQjtvQkFFRCxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsUUFBUSxDQUFDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBIb21lUGFnZSB9IGZyb20gJy4vaG9tZSc7XG5pbXBvcnQgeyBBcHBBdXRoTW9kdWxlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLm1vZHVsZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBcHBJbnN0YWxsVXBncmFkZUNhcmRNb2R1bGUgfSBmcm9tICcuLi9pbnN0YWxsL2luc3RhbGwtdXBncmFkZS1jYXJkLm1vZHVsZSc7XG5pbXBvcnQgeyBSeFN0YXRlTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3J4LXN0YXRlL3J4LXN0YXRlLm1vZHVsZSc7XG5pbXBvcnQgeyBTaGFyZWRNYXJrZG93bk1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9tYXJrZG93bi9tYXJrZG93bi5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBSeFN0YXRlTW9kdWxlLFxuXG4gICAgLy8gQXBwIG1vZHVsZXNcbiAgICBBcHBBdXRoTW9kdWxlLFxuICAgIEFwcEluc3RhbGxVcGdyYWRlQ2FyZE1vZHVsZSxcbiAgICBTaGFyZWRNYXJrZG93bk1vZHVsZSxcbiAgXSxcblxuICBkZWNsYXJhdGlvbnM6IFtIb21lUGFnZV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgSG9tZVBhZ2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBIb21lUGFnZU1vZHVsZSB7fVxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvaG9tZS9ob21lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQW1CNUUsTUFBTSxPQUFPLGlCQUFpQjt3R0FBakIsaUJBQWlCO3lHQUFqQixpQkFBaUIsaUJBSGIsUUFBUSxhQVpyQixZQUFZO1lBQ1osWUFBWSxzQkFFWixhQUFhO1lBRWIsY0FBYztZQUNkLGFBQWE7WUFDYiwyQkFBMkI7WUFDM0Isb0JBQW9CO1lBQ3BCLGVBQWUsYUFJUCxZQUFZLEVBQUUsZUFBZSxFQUFFLFFBQVE7eUdBRXRDLGlCQUFpQixZQWYxQixZQUFZO1lBQ1osWUFBWTtZQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsYUFBYTtZQUViLGNBQWM7WUFDZCxhQUFhO1lBQ2IsMkJBQTJCO1lBQzNCLG9CQUFvQjtZQUNwQixlQUFlLEVBSVAsWUFBWSxFQUFFLGVBQWU7OzRGQUU1QixpQkFBaUI7a0JBakI3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsYUFBYTt3QkFFYixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsMkJBQTJCO3dCQUMzQixvQkFBb0I7d0JBQ3BCLGVBQWU7cUJBQ2hCO29CQUVELFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztvQkFDeEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUM7aUJBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IEhvbWVQYWdlIH0gZnJvbSAnLi9ob21lJztcbmltcG9ydCB7IEFwcEF1dGhNb2R1bGUgfSBmcm9tICcuLi9hdXRoL2F1dGgubW9kdWxlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcEluc3RhbGxVcGdyYWRlQ2FyZE1vZHVsZSB9IGZyb20gJy4uL2luc3RhbGwvaW5zdGFsbC11cGdyYWRlLWNhcmQubW9kdWxlJztcbmltcG9ydCB7IFJ4U3RhdGVNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvcngtc3RhdGUvcngtc3RhdGUubW9kdWxlJztcbmltcG9ydCB7IFNoYXJlZE1hcmtkb3duTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21hcmtkb3duL21hcmtkb3duLm1vZHVsZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9zb2NpYWwvdXNlci1ldmVudC91c2VyLWV2ZW50Lm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJ4U3RhdGVNb2R1bGUsXG5cbiAgICAvLyBBcHAgbW9kdWxlc1xuICAgIEFwcEF1dGhNb2R1bGUsXG4gICAgQXBwSW5zdGFsbFVwZ3JhZGVDYXJkTW9kdWxlLFxuICAgIFNoYXJlZE1hcmtkb3duTW9kdWxlLFxuICAgIFVzZXJFdmVudE1vZHVsZSxcbiAgXSxcblxuICBkZWNsYXJhdGlvbnM6IFtIb21lUGFnZV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgSG9tZVBhZ2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBIb21lUGFnZU1vZHVsZSB7fVxuIl19
@@ -7,7 +7,7 @@ export function filterNotNil(obs) {
7
7
  export function filterTrue(obs) {
8
8
  return obs.pipe(filter((v) => v === true));
9
9
  }
10
- export function filterFalse(obs, opts) {
10
+ export function filterFalse(obs) {
11
11
  return obs.pipe(filter((v) => v === false));
12
12
  }
13
13
  function decorateWithTakeUntil(obs, opts) {
@@ -97,4 +97,4 @@ export function waitForFalse(observable, opts) {
97
97
  // Inverse the logic
98
98
  observable.pipe(map((v) => v === false)), opts);
99
99
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9vYnNlcnZhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWN2QyxNQUFNLFVBQVUsWUFBWSxDQUFVLEdBQWtCO0lBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUF3QjtJQUNqRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBQ0QsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUF3QixFQUFFLElBQW1CO0lBQ3ZFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFVLEdBQWtCLEVBQUUsSUFBbUI7SUFDN0UsMEJBQTBCO0lBQzFCLElBQUksVUFBVSxHQUFvQixJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFdkYsSUFBSSxDQUFDLFVBQVU7UUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU87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Q0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsVUFBK0IsRUFBRSxJQUFxQjtJQUNoRixJQUFJLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDcEMsNEJBQTRCO0lBQzVCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsVUFBK0IsRUFBRSxJQUFxQjtJQUNqRixPQUFPLFdBQVc7SUFDaEIsb0JBQW9CO0lBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsRUFDeEMsSUFBSSxDQUNMLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc05vdE5pbCB9IGZyb20gJy4vZnVuY3Rpb25zJztcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRmlyc3RPcHRpb25zIHtcbiAgdGltZW91dD86IG51bWJlcjtcbiAgc3RvcD86IE9ic2VydmFibGU8YW55PjtcbiAgc3RvcEVycm9yPzogYm9vbGVhbiB8IHN0cmluZyB8IEVycm9yO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgV2FpdEZvck9wdGlvbnMgZXh0ZW5kcyBGaXJzdE9wdGlvbnMge1xuICBkdWVUaW1lPzogbnVtYmVyO1xuICBjaGVja1BlcmlvZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlck5vdE5pbDxUID0gYW55PihvYnM6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcihpc05vdE5pbCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVHJ1ZShvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcigodikgPT4gdiA9PT0gdHJ1ZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckZhbHNlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICByZXR1cm4gb2JzLnBpcGUoZmlsdGVyKCh2KSA9PiB2ID09PSBmYWxzZSkpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZVdpdGhUYWtlVW50aWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gIC8vIFNldCB0YWtlIHVudGlsIG5vdGlmaWVyXG4gIGxldCB0YWtlVW50aWwkOiBPYnNlcnZhYmxlPGFueT4gPSBvcHRzPy5zdG9wIHx8IChvcHRzPy50aW1lb3V0ICYmIHRpbWVyKG9wdHMudGltZW91dCkpO1xuXG4gIGlmICghdGFrZVVudGlsJCkgcmV0dXJuIG9iczsgLy8gU2tpcFxuXG4gIC8vIFdoZW4gc3RvcCwgdGhyb3cgYW4gZXJyb3IgKHVzZWZ1bCB3aGVuIHVzZWQgd2l0aCBhIHRvUHJvbWlzZSgpKVxuICBpZiAob3B0cy5zdG9wRXJyb3IpIHtcbiAgICBsZXQgZXJyb3I6IEVycm9yO1xuICAgIGlmIChvcHRzLnN0b3BFcnJvciA9PT0gdHJ1ZSkge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3Iob3B0cy50aW1lb3V0ID8gYFRpbWVvdXQgJHtvcHRzLnRpbWVvdXR9bXNgIDogYHN0b3BgKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRzLnN0b3BFcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVycm9yID0gbmV3IEVycm9yKG9wdHMuc3RvcEVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IgPSBvcHRzLnN0b3BFcnJvcjtcbiAgICB9XG4gICAgdGFrZVVudGlsJCA9IHRha2VVbnRpbCQucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG9icy5waXBlKHRha2VVbnRpbCh0YWtlVW50aWwkKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdE5vdE5pbDxUID0gYW55PihvYnM6IE9ic2VydmFibGU8VD4sIG9wdHM/OiBGaXJzdE9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGRlY29yYXRlV2l0aFRha2VVbnRpbChvYnMucGlwZShmaXJzdChpc05vdE5pbCkpLCBvcHRzKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFRydWU8VCA9IHZvaWQ+KG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucywgcmVzdWx0PzogVCk6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gZGVjb3JhdGVXaXRoVGFrZVVudGlsKFxuICAgIG9icy5waXBlKFxuICAgICAgZmlyc3QoKHYpID0+IHYgPT09IHRydWUpLFxuICAgICAgbWFwKChfKSA9PiByZXN1bHQpIC8vIENvbnZlcnQgdG8gVFxuICAgICksXG4gICAgb3B0c1xuICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0RmFsc2U8VCA9IHZvaWQ+KG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucywgcmVzdWx0PzogVCk6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gZGVjb3JhdGVXaXRoVGFrZVVudGlsKFxuICAgIG9icy5waXBlKFxuICAgICAgZmlyc3QoKHYpID0+IHYgPT09IGZhbHNlKSxcbiAgICAgIG1hcCgoXykgPT4gcmVzdWx0IGFzIFQpIC8vIENvbnZlcnQgdG8gdm9pZFxuICAgICksXG4gICAgb3B0c1xuICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0VHJ1ZVByb21pc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBmaXJzdFRydWUob2JzLCB7IHN0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0cyB9KS50b1Byb21pc2UoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdEZhbHNlUHJvbWlzZShvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBGaXJzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIGZpcnN0RmFsc2Uob2JzLCB7IHN0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0cyB9KS50b1Byb21pc2UoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdE5vdE5pbFByb21pc2U8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogUHJvbWlzZTxUPiB7XG4gIHJldHVybiBmaXJzdE5vdE5pbChvYnMsIHsgc3RvcEVycm9yOiB0cnVlLCAuLi5vcHRzIH0pLnRvUHJvbWlzZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNoYWluUHJvbWlzZXM8VCA9IGFueT4oZGVmZXJzOiAoKCkgPT4gUHJvbWlzZTxhbnk+KVtdKTogUHJvbWlzZTxUW10+IHtcbiAgcmV0dXJuIChkZWZlcnMgfHwgW10pLnJlZHVjZSgocHJldmlvdXM6IFByb21pc2U8YW55PiB8IG51bGwsIGRlZmVyKSA9PiB7XG4gICAgLy8gRmlyc3Qgam9iXG4gICAgaWYgKCFwcmV2aW91cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZGVmZXIoKVxuICAgICAgICAgIC8vIEluaXQgdGhlIGZpbmFsIHJlc3VsdCBhcnJheSwgd2l0aCB0aGUgZmlyc3QgcmVzdWx0XG4gICAgICAgICAgLnRoZW4oKGpvYlJlcykgPT4gW2pvYlJlc10pXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBPdGhlciBqb2JzXG4gICAgcmV0dXJuIHByZXZpb3VzLnRoZW4oKGZpbmFsUmVzdWx0KSA9PlxuICAgICAgZGVmZXIoKVxuICAgICAgICAvLyBBZGQgam9iIHJlc3VsdCB0byBmaW5hbCByZXN1bHQgYXJyYXlcbiAgICAgICAgLnRoZW4oKGpvYlJlcykgPT4gZmluYWxSZXN1bHQuY29uY2F0KGpvYlJlcykpXG4gICAgKTtcbiAgfSwgbnVsbCk7XG59XG5cbi8qKlxuICogV2FpdCBmb3JtIGEgcHJlZGljYXRlIHJldHVybiB0cnVlLiBUaGlzIG5lZWQgdG8gaW1wbGVtZW50IEFwcEZvcm1VdGlscy53YWl0V2hpbGVQZW5kaW5nKCksIEFwcEZvcm1VdGlscy53YWl0SWRsZSgpXG4gKlxuICogQHBhcmFtIHByZWRpY2F0ZVxuICogQHBhcmFtIG9wdHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3IocHJlZGljYXRlOiBQcmVkaWNhdGU8dm9pZD4sIG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAocHJlZGljYXRlKCkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblxuICBjb25zdCBwZXJpb2QgPSAob3B0cyAmJiBvcHRzLmNoZWNrUGVyaW9kKSB8fCAzMDA7XG4gIGNvbnN0IGR1ZVRpbWUgPSAob3B0cyAmJiBvcHRzLmR1ZVRpbWUpIHx8IHBlcmlvZDtcbiAgY29uc3Qgd2FpdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aW1lcihkdWVUaW1lLCBwZXJpb2QpLnBpcGUoXG4gICAgLy8gRm9yIERFQlVHIDpcbiAgICAvL3RhcCgoKSA9PiBjb25zb2xlLmRlYnVnKFwiV2FpdGluZyBmb3JtIGlkbGUuLi5cIiwgZm9ybSkpLFxuICAgIGZpbHRlcigoXykgPT4gcHJlZGljYXRlKCkpLFxuICAgIG1hcCgoXykgPT4gdHJ1ZSlcbiAgKTtcblxuICBhd2FpdCBmaXJzdE5vdE5pbFByb21pc2Uod2FpdCQsIG9wdHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2FpdEZvclRydWUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIG9wdHMgPSB7IHN0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0cyB9O1xuICAvLyBkdWVUaW1lICh3aXRob3V0IHRpbWVvdXQpXG4gIGlmIChvcHRzICYmIG9wdHMuZHVlVGltZSA+IDApIHtcbiAgICBvYnNlcnZhYmxlID0gdGltZXIob3B0cy5kdWVUaW1lKS5waXBlKHN3aXRjaE1hcCgoKSA9PiBvYnNlcnZhYmxlKSk7XG4gIH1cbiAgcmV0dXJuIGZpcnN0VHJ1ZShvYnNlcnZhYmxlLCBvcHRzKS50b1Byb21pc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JGYWxzZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIHdhaXRGb3JUcnVlKFxuICAgIC8vIEludmVyc2UgdGhlIGxvZ2ljXG4gICAgb2JzZXJ2YWJsZS5waXBlKG1hcCgodikgPT4gdiA9PT0gZmFsc2UpKSxcbiAgICBvcHRzXG4gICk7XG59XG4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9vYnNlcnZhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWN2QyxNQUFNLFVBQVUsWUFBWSxDQUFVLEdBQWtCO0lBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUF3QjtJQUNqRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBQ0QsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUF3QjtJQUNsRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBVSxHQUFrQixFQUFFLElBQW1CO0lBQzdFLDBCQUEwQjtJQUMxQixJQUFJLFVBQVUsR0FBb0IsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXZGLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPO0lBRXBDLGtFQUFr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QUFNLFVBQVUsV0FBVyxDQUFDLFVBQStCLEVBQUUsSUFBcUI7SUFDaEYsSUFBSSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ3BDLDRCQUE0QjtJQUM1QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFVBQStCLEVBQUUsSUFBcUI7SUFDakYsT0FBTyxXQUFXO0lBQ2hCLG9CQUFvQjtJQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQ3hDLElBQUksQ0FDTCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNOb3ROaWwgfSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZpcnN0T3B0aW9ucyB7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIHN0b3A/OiBPYnNlcnZhYmxlPGFueT47XG4gIHN0b3BFcnJvcj86IGJvb2xlYW4gfCBzdHJpbmcgfCBFcnJvcjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFdhaXRGb3JPcHRpb25zIGV4dGVuZHMgRmlyc3RPcHRpb25zIHtcbiAgZHVlVGltZT86IG51bWJlcjtcbiAgY2hlY2tQZXJpb2Q/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJOb3ROaWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMucGlwZShmaWx0ZXIoaXNOb3ROaWwpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclRydWUob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gIHJldHVybiBvYnMucGlwZShmaWx0ZXIoKHYpID0+IHYgPT09IHRydWUpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJGYWxzZShvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIG9icy5waXBlKGZpbHRlcigodikgPT4gdiA9PT0gZmFsc2UpKTtcbn1cblxuZnVuY3Rpb24gZGVjb3JhdGVXaXRoVGFrZVVudGlsPFQgPSBhbnk+KG9iczogT2JzZXJ2YWJsZTxUPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IE9ic2VydmFibGU8VD4ge1xuICAvLyBTZXQgdGFrZSB1bnRpbCBub3RpZmllclxuICBsZXQgdGFrZVVudGlsJDogT2JzZXJ2YWJsZTxhbnk+ID0gb3B0cz8uc3RvcCB8fCAob3B0cz8udGltZW91dCAmJiB0aW1lcihvcHRzLnRpbWVvdXQpKTtcblxuICBpZiAoIXRha2VVbnRpbCQpIHJldHVybiBvYnM7IC8vIFNraXBcblxuICAvLyBXaGVuIHN0b3AsIHRocm93IGFuIGVycm9yICh1c2VmdWwgd2hlbiB1c2VkIHdpdGggYSB0b1Byb21pc2UoKSlcbiAgaWYgKG9wdHMuc3RvcEVycm9yKSB7XG4gICAgbGV0IGVycm9yOiBFcnJvcjtcbiAgICBpZiAob3B0cy5zdG9wRXJyb3IgPT09IHRydWUpIHtcbiAgICAgIGVycm9yID0gbmV3IEVycm9yKG9wdHMudGltZW91dCA/IGBUaW1lb3V0ICR7b3B0cy50aW1lb3V0fW1zYCA6IGBzdG9wYCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0cy5zdG9wRXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihvcHRzLnN0b3BFcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gb3B0cy5zdG9wRXJyb3I7XG4gICAgfVxuICAgIHRha2VVbnRpbCQgPSB0YWtlVW50aWwkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBvYnMucGlwZSh0YWtlVW50aWwodGFrZVVudGlsJCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROb3ROaWw8VCA9IGFueT4ob2JzOiBPYnNlcnZhYmxlPFQ+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBkZWNvcmF0ZVdpdGhUYWtlVW50aWwob2JzLnBpcGUoZmlyc3QoaXNOb3ROaWwpKSwgb3B0cyk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RUcnVlPFQgPSB2b2lkPihvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBGaXJzdE9wdGlvbnMsIHJlc3VsdD86IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGRlY29yYXRlV2l0aFRha2VVbnRpbChcbiAgICBvYnMucGlwZShcbiAgICAgIGZpcnN0KCh2KSA9PiB2ID09PSB0cnVlKSxcbiAgICAgIG1hcCgoXykgPT4gcmVzdWx0KSAvLyBDb252ZXJ0IHRvIFRcbiAgICApLFxuICAgIG9wdHNcbiAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdEZhbHNlPFQgPSB2b2lkPihvYnM6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBGaXJzdE9wdGlvbnMsIHJlc3VsdD86IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGRlY29yYXRlV2l0aFRha2VVbnRpbChcbiAgICBvYnMucGlwZShcbiAgICAgIGZpcnN0KCh2KSA9PiB2ID09PSBmYWxzZSksXG4gICAgICBtYXAoKF8pID0+IHJlc3VsdCBhcyBUKSAvLyBDb252ZXJ0IHRvIHZvaWRcbiAgICApLFxuICAgIG9wdHNcbiAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFRydWVQcm9taXNlKG9iczogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gZmlyc3RUcnVlKG9icywgeyBzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHMgfSkudG9Qcm9taXNlKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RGYWxzZVByb21pc2Uob2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRzPzogRmlyc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBmaXJzdEZhbHNlKG9icywgeyBzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHMgfSkudG9Qcm9taXNlKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmlyc3ROb3ROaWxQcm9taXNlPFQgPSBhbnk+KG9iczogT2JzZXJ2YWJsZTxUPiwgb3B0cz86IEZpcnN0T3B0aW9ucyk6IFByb21pc2U8VD4ge1xuICByZXR1cm4gZmlyc3ROb3ROaWwob2JzLCB7IHN0b3BFcnJvcjogdHJ1ZSwgLi4ub3B0cyB9KS50b1Byb21pc2UoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjaGFpblByb21pc2VzPFQgPSBhbnk+KGRlZmVyczogKCgpID0+IFByb21pc2U8YW55PilbXSk6IFByb21pc2U8VFtdPiB7XG4gIHJldHVybiAoZGVmZXJzIHx8IFtdKS5yZWR1Y2UoKHByZXZpb3VzOiBQcm9taXNlPGFueT4gfCBudWxsLCBkZWZlcikgPT4ge1xuICAgIC8vIEZpcnN0IGpvYlxuICAgIGlmICghcHJldmlvdXMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGRlZmVyKClcbiAgICAgICAgICAvLyBJbml0IHRoZSBmaW5hbCByZXN1bHQgYXJyYXksIHdpdGggdGhlIGZpcnN0IHJlc3VsdFxuICAgICAgICAgIC50aGVuKChqb2JSZXMpID0+IFtqb2JSZXNdKVxuICAgICAgKTtcbiAgICB9XG4gICAgLy8gT3RoZXIgam9ic1xuICAgIHJldHVybiBwcmV2aW91cy50aGVuKChmaW5hbFJlc3VsdCkgPT5cbiAgICAgIGRlZmVyKClcbiAgICAgICAgLy8gQWRkIGpvYiByZXN1bHQgdG8gZmluYWwgcmVzdWx0IGFycmF5XG4gICAgICAgIC50aGVuKChqb2JSZXMpID0+IGZpbmFsUmVzdWx0LmNvbmNhdChqb2JSZXMpKVxuICAgICk7XG4gIH0sIG51bGwpO1xufVxuXG4vKipcbiAqIFdhaXQgZm9ybSBhIHByZWRpY2F0ZSByZXR1cm4gdHJ1ZS4gVGhpcyBuZWVkIHRvIGltcGxlbWVudCBBcHBGb3JtVXRpbHMud2FpdFdoaWxlUGVuZGluZygpLCBBcHBGb3JtVXRpbHMud2FpdElkbGUoKVxuICpcbiAqIEBwYXJhbSBwcmVkaWNhdGVcbiAqIEBwYXJhbSBvcHRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yKHByZWRpY2F0ZTogUHJlZGljYXRlPHZvaWQ+LCBvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHByZWRpY2F0ZSgpKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgY29uc3QgcGVyaW9kID0gKG9wdHMgJiYgb3B0cy5jaGVja1BlcmlvZCkgfHwgMzAwO1xuICBjb25zdCBkdWVUaW1lID0gKG9wdHMgJiYgb3B0cy5kdWVUaW1lKSB8fCBwZXJpb2Q7XG4gIGNvbnN0IHdhaXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGltZXIoZHVlVGltZSwgcGVyaW9kKS5waXBlKFxuICAgIC8vIEZvciBERUJVRyA6XG4gICAgLy90YXAoKCkgPT4gY29uc29sZS5kZWJ1ZyhcIldhaXRpbmcgZm9ybSBpZGxlLi4uXCIsIGZvcm0pKSxcbiAgICBmaWx0ZXIoKF8pID0+IHByZWRpY2F0ZSgpKSxcbiAgICBtYXAoKF8pID0+IHRydWUpXG4gICk7XG5cbiAgYXdhaXQgZmlyc3ROb3ROaWxQcm9taXNlKHdhaXQkLCBvcHRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JUcnVlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdHM/OiBXYWl0Rm9yT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBvcHRzID0geyBzdG9wRXJyb3I6IHRydWUsIC4uLm9wdHMgfTtcbiAgLy8gZHVlVGltZSAod2l0aG91dCB0aW1lb3V0KVxuICBpZiAob3B0cyAmJiBvcHRzLmR1ZVRpbWUgPiAwKSB7XG4gICAgb2JzZXJ2YWJsZSA9IHRpbWVyKG9wdHMuZHVlVGltZSkucGlwZShzd2l0Y2hNYXAoKCkgPT4gb2JzZXJ2YWJsZSkpO1xuICB9XG4gIHJldHVybiBmaXJzdFRydWUob2JzZXJ2YWJsZSwgb3B0cykudG9Qcm9taXNlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yRmFsc2Uob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiB3YWl0Rm9yVHJ1ZShcbiAgICAvLyBJbnZlcnNlIHRoZSBsb2dpY1xuICAgIG9ic2VydmFibGUucGlwZShtYXAoKHYpID0+IHYgPT09IGZhbHNlKSksXG4gICAgb3B0c1xuICApO1xufVxuIl19
@@ -1,8 +1,9 @@
1
1
  import { Pipe } from '@angular/core';
2
+ import { isNotNilOrNaN } from '../functions';
2
3
  import * as i0 from "@angular/core";
3
4
  export class BadgeNumberPipe {
4
5
  transform(val, max = 99) {
5
- if (val !== undefined && val !== null) {
6
+ if (isNotNilOrNaN(val)) {
6
7
  if (val > max) {
7
8
  return max.toFixed(0) + '+';
8
9
  }
@@ -21,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
21
22
  name: 'badgeNumber',
22
23
  }]
23
24
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UucGlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9iYWRnZS5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLGVBQWU7SUFDMUIsU0FBUyxDQUFDLEdBQVcsRUFBRSxHQUFHLEdBQUcsRUFBRTtRQUM3QixJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3RDLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNkLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDOUIsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7d0dBVlUsZUFBZTtzR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUgzQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxhQUFhO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYmFkZ2VOdW1iZXInLFxufSlcbmV4cG9ydCBjbGFzcyBCYWRnZU51bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbDogbnVtYmVyLCBtYXggPSA5OSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCkge1xuICAgICAgaWYgKHZhbCA+IG1heCkge1xuICAgICAgICByZXR1cm4gbWF4LnRvRml4ZWQoMCkgKyAnKyc7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsLnRvRml4ZWQoMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UucGlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9iYWRnZS5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUs3QyxNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQUMsR0FBVyxFQUFFLEdBQUcsR0FBRyxFQUFFO1FBQzdCLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUM5QixDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQzt3R0FWVSxlQUFlO3NHQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNOb3ROaWxPck5hTiB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2JhZGdlTnVtYmVyJyxcbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2VOdW1iZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWw6IG51bWJlciwgbWF4ID0gOTkpOiBzdHJpbmcge1xuICAgIGlmIChpc05vdE5pbE9yTmFOKHZhbCkpIHtcbiAgICAgIGlmICh2YWwgPiBtYXgpIHtcbiAgICAgICAgcmV0dXJuIG1heC50b0ZpeGVkKDApICsgJysnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbC50b0ZpeGVkKDApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export const SOCIAL_CONFIG_OPTIONS = Object.freeze({
2
+ ENABLE_NOTIFICATION_ICONS: {
3
+ key: 'sumaris.social.notification.icons.enable',
4
+ label: 'CONFIGURATION.OPTIONS.SOCIAL.ENABLE_NOTIFICATION_ICONS',
5
+ type: 'boolean',
6
+ defaultValue: false,
7
+ },
8
+ });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2NvbmZpZy9zb2NpYWwuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDakQseUJBQXlCLEVBQXVCO1FBQzlDLEdBQUcsRUFBRSwwQ0FBMEM7UUFDL0MsS0FBSyxFQUFFLHdEQUF3RDtRQUMvRCxJQUFJLEVBQUUsU0FBUztRQUNmLFlBQVksRUFBRSxLQUFLO0tBQ3BCO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtL2ZpZWxkLm1vZGVsJztcblxuZXhwb3J0IGNvbnN0IFNPQ0lBTF9DT05GSUdfT1BUSU9OUyA9IE9iamVjdC5mcmVlemUoe1xuICBFTkFCTEVfTk9USUZJQ0FUSU9OX0lDT05TOiA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XG4gICAga2V5OiAnc3VtYXJpcy5zb2NpYWwubm90aWZpY2F0aW9uLmljb25zLmVuYWJsZScsXG4gICAgbGFiZWw6ICdDT05GSUdVUkFUSU9OLk9QVElPTlMuU09DSUFMLkVOQUJMRV9OT1RJRklDQVRJT05fSUNPTlMnLFxuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICB9LFxufSk7XG4iXX0=
@@ -8,24 +8,22 @@ import { JobProgressionList } from './job-progression.list';
8
8
  import { RxState } from '@rx-angular/state';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@ionic/angular";
11
- import * as i2 from "@rx-angular/template/if";
12
- import * as i3 from "@rx-angular/template/let";
13
- import * as i4 from "@angular/material/icon";
14
- import * as i5 from "@angular/material/button";
15
- import * as i6 from "@angular/material/progress-spinner";
16
- import * as i7 from "@angular/material/badge";
17
- import * as i8 from "@ngx-translate/core";
18
- import * as i9 from "@rx-angular/template/push";
11
+ import * as i2 from "@angular/material/icon";
12
+ import * as i3 from "@angular/material/button";
13
+ import * as i4 from "@angular/material/progress-spinner";
14
+ import * as i5 from "@angular/material/badge";
15
+ import * as i6 from "@angular/common";
16
+ import * as i7 from "@ngx-translate/core";
17
+ import * as i8 from "@rx-angular/template/push";
18
+ import * as i9 from "../../../shared/pipes/badge.pipes";
19
19
  export class JobProgressionIcon extends RxState {
20
20
  jobProgressionService;
21
21
  popoverController;
22
22
  cd;
23
- debug = false;
24
- titleI18n = 'SOCIAL.JOB.PROGRESSION.TITLE';
25
- options;
26
- autoHide;
27
- headerActions;
28
- jobFinished = new EventEmitter();
23
+ _listPopover;
24
+ _subscriptions = new Subscription();
25
+ _subscriptionsById = {};
26
+ _logPrefix = '[job-progression] ';
29
27
  disabled = true;
30
28
  color = 'accent';
31
29
  jobProgressions$ = this.select('jobProgressions');
@@ -36,10 +34,12 @@ export class JobProgressionIcon extends RxState {
36
34
  autoHideDelay;
37
35
  autoRemove;
38
36
  autoRemoveDelay;
39
- _listPopover;
40
- _subscriptions = new Subscription();
41
- _subscriptionsById = {};
42
- _logPrefix = '[job-progression] ';
37
+ debug = false;
38
+ titleI18n = 'SOCIAL.JOB.PROGRESSION.TITLE';
39
+ options;
40
+ autoHide;
41
+ headerActions;
42
+ jobFinished = new EventEmitter();
43
43
  constructor(jobProgressionService, popoverController, cd) {
44
44
  super();
45
45
  this.jobProgressionService = jobProgressionService;
@@ -209,11 +209,11 @@ export class JobProgressionIcon extends RxState {
209
209
  this._subscriptions.unsubscribe();
210
210
  }
211
211
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: JobProgressionIcon, deps: [{ token: APP_JOB_PROGRESSION_SERVICE, optional: true }, { token: i1.PopoverController }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
212
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: JobProgressionIcon, selector: "app-job-progression-icon", inputs: { debug: "debug", titleI18n: "titleI18n", options: "options", autoHide: "autoHide", headerActions: "headerActions" }, outputs: { jobFinished: "jobFinished" }, usesInheritance: true, ngImport: i0, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *rxIf=\"visible$\"\n (click)=\"showList($event)\"\n>\n <mat-icon\n *rxLet=\"jobCount$; let jobCount\"\n [matBadge]=\"jobCount\"\n [matBadgeHidden]=\"!jobCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >\n {{ disabled || jobCount ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *rxIf=\"jobCount$\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode$ | push\"\n [value]=\"value$ | push\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n", styles: [".floating-spinner{position:absolute;height:24px!important;width:24px!important;top:12px;left:12px}\n"], dependencies: [{ kind: "directive", type: i2.RxIf, selector: "[rxIf]", inputs: ["rxIf", "rxIfStrategy", "rxIfElse", "rxIfThen", "rxIfSuspense", "rxIfComplete", "rxIfError", "rxIfContextTrigger", "rxIfNextTrigger", "rxIfSuspenseTrigger", "rxIfErrorTrigger", "rxIfCompleteTrigger", "rxIfParent", "rxIfPatchZone", "rxIfRenderCallback"] }, { kind: "directive", type: i3.RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.RxPush, name: "push" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
212
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: JobProgressionIcon, selector: "app-job-progression-icon", inputs: { debug: "debug", titleI18n: "titleI18n", options: "options", autoHide: "autoHide", headerActions: "headerActions" }, outputs: { jobFinished: "jobFinished" }, usesInheritance: true, ngImport: i0, template: "@let count = (jobCount$ | async);\n@if (visible$ | async) {\n <button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n (click)=\"showList($event)\"\n >\n <mat-icon\n [matBadge]=\"count | badgeNumber\"\n [matBadgeHidden]=\"!count\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >\n {{ disabled || count ? 'schedule' : 'task_alt' }}\n </mat-icon>\n @if (count) {\n <mat-spinner\n #spinner\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode$ | push\"\n [value]=\"value$ | push\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n }\n </button>\n}\n", styles: [".floating-spinner{position:absolute;height:24px!important;width:24px!important;top:12px;left:12px}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.RxPush, name: "push" }, { kind: "pipe", type: i9.BadgeNumberPipe, name: "badgeNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
213
213
  }
214
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: JobProgressionIcon, decorators: [{
215
215
  type: Component,
216
- args: [{ selector: 'app-job-progression-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *rxIf=\"visible$\"\n (click)=\"showList($event)\"\n>\n <mat-icon\n *rxLet=\"jobCount$; let jobCount\"\n [matBadge]=\"jobCount\"\n [matBadgeHidden]=\"!jobCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >\n {{ disabled || jobCount ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *rxIf=\"jobCount$\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode$ | push\"\n [value]=\"value$ | push\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n", styles: [".floating-spinner{position:absolute;height:24px!important;width:24px!important;top:12px;left:12px}\n"] }]
216
+ args: [{ selector: 'app-job-progression-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "@let count = (jobCount$ | async);\n@if (visible$ | async) {\n <button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n (click)=\"showList($event)\"\n >\n <mat-icon\n [matBadge]=\"count | badgeNumber\"\n [matBadgeHidden]=\"!count\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >\n {{ disabled || count ? 'schedule' : 'task_alt' }}\n </mat-icon>\n @if (count) {\n <mat-spinner\n #spinner\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode$ | push\"\n [value]=\"value$ | push\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n }\n </button>\n}\n", styles: [".floating-spinner{position:absolute;height:24px!important;width:24px!important;top:12px;left:12px}\n"] }]
217
217
  }], ctorParameters: () => [{ type: undefined, decorators: [{
218
218
  type: Optional
219
219
  }, {
@@ -232,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
232
232
  }], jobFinished: [{
233
233
  type: Output
234
234
  }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSwyQkFBMkIsRUFBMEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQTZCLE1BQU0sd0JBQXdCLENBQUM7QUFHdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7OztBQXlCNUMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLE9BQWdDO0lBMEJUO0lBQ2pEO0lBQ0E7SUEzQkgsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNkLFNBQVMsR0FBRyw4QkFBOEIsQ0FBQztJQUMzQyxPQUFPLENBQXdCO0lBQy9C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LGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSwwQkFBMEIsbUJBSW5CLHVCQUF1QixDQUFDLE1BQU07OzBCQTRCNUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywyQkFBMkI7eUdBekJ4QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IEFQUF9KT0JfUFJPR1JFU1NJT05fU0VSVklDRSwgSUpvYlByb2dyZXNzaW9uU2VydmljZSB9IGZyb20gJy4vam9iLXByb2dyZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSm9iUHJvZ3Jlc3Npb24gfSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5tb2RlbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlbGF5LCBvZiwgU3Vic2NyaXB0aW9uLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFycmF5U2l6ZSwgaXNOaWwsIHJlbW92ZSwgdG9Cb29sZWFuLCB0b051bWJlciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSm9iUHJvZ3Jlc3Npb25MaXN0LCBKb2JQcm9ncmVzc2lvbkxpc3RPcHRpb25zIH0gZnJvbSAnLi9qb2ItcHJvZ3Jlc3Npb24ubGlzdCc7XG5pbXBvcnQgeyBJVXNlckV2ZW50QWN0aW9uIH0gZnJvbSAnLi4vLi4vdXNlci1ldmVudC91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lck1vZGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFJ4U3RhdGUgfSBmcm9tICdAcngtYW5ndWxhci9zdGF0ZSc7XG5pbXBvcnQgeyBPYmplY3RNYXAgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEpvYlByb2dyZXNzaW9uT3B0aW9ucyB7XG4gIGF1dG9IaWRlOiBib29sZWFuO1xuICBhdXRvSGlkZURlbGF5OiBudW1iZXI7XG4gIGF1dG9SZW1vdmU6IGJvb2xlYW47XG4gIGF1dG9SZW1vdmVEZWxheTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpvYlByb2dyZXNzaW9uSWNvblN0YXRlIHtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgbW9kZTogUHJvZ3Jlc3NTcGlubmVyTW9kZTtcbiAgdmFsdWU6IG51bWJlcjtcbiAgam9iUHJvZ3Jlc3Npb25zOiBCZWhhdmlvclN1YmplY3Q8Sm9iUHJvZ3Jlc3Npb24+W107XG4gIGpvYkNvdW50OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1qb2ItcHJvZ3Jlc3Npb24taWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9qb2ItcHJvZ3Jlc3Npb24uaWNvbi5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vam9iLXByb2dyZXNzaW9uLmljb24uc2NzcyddLFxuICAvLyBwcm92aWRlcnM6IFtSeFN0YXRlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEpvYlByb2dyZXNzaW9uSWNvbiBleHRlbmRzIFJ4U3RhdGU8Sm9iUHJvZ3Jlc3Npb25JY29uU3RhdGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSB0aXRsZUkxOG4gPSAnU09DSUFMLkpPQi5QUk9HUkVTU0lPTi5USVRMRSc7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IEpvYlByb2dyZXNzaW9uT3B0aW9ucztcbiAgQElucHV0KCkgYXV0b0hpZGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhlYWRlckFjdGlvbnM6IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgQE91dHB1dCgpIGpvYkZpbmlzaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgZGlzYWJsZWQgPSB0cnVlO1xuICBjb2xvcjogVGhlbWVQYWxldHRlID0gJ2FjY2VudCc7XG4gIGpvYlByb2dyZXNzaW9ucyQgPSB0aGlzLnNlbGVjdCgnam9iUHJvZ3Jlc3Npb25zJyk7XG4gIGpvYkNvdW50JCA9IHRoaXMuc2VsZWN0KCdqb2JDb3VudCcpO1xuICB2aXNpYmxlJCA9IHRoaXMuc2VsZWN0KCd2aXNpYmxlJyk7XG4gIG1vZGUkID0gdGhpcy5zZWxlY3QoJ21vZGUnKTtcbiAgdmFsdWUkID0gdGhpcy5zZWxlY3QoJ3ZhbHVlJyk7XG5cbiAgcHJvdGVjdGVkIGF1dG9IaWRlRGVsYXk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGF1dG9SZW1vdmU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcblxuICBwcml2YXRlIF9saXN0UG9wb3ZlcjogSFRNTElvblBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zQnlJZDogT2JqZWN0TWFwPFN1YnNjcmlwdGlvbj4gPSB7fTtcbiAgcHJpdmF0ZSBfbG9nUHJlZml4ID0gJ1tqb2ItcHJvZ3Jlc3Npb25dICc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfSk9CX1BST0dSRVNTSU9OX1NFUlZJQ0UpIHByb3RlY3RlZCBqb2JQcm9ncmVzc2lvblNlcnZpY2U6IElKb2JQcm9ncmVzc2lvblNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgam9iUHJvZ3Jlc3Npb25zKCk6IEJlaGF2aW9yU3ViamVjdDxKb2JQcm9ncmVzc2lvbj5bXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdqb2JQcm9ncmVzc2lvbnMnKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChpc05pbCh0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgJHt0aGlzLl9sb2dQcmVmaXh9Tm8gc2VydmljZSBpbmplY3RlZGApO1xuICAgIH1cbiAgICAvLyBwYXJzZSBvcHRpb25zXG4gICAgdGhpcy5hdXRvSGlkZSA9IHRvQm9vbGVhbih0aGlzLmF1dG9IaWRlLCB0aGlzLm9wdGlvbnM/LmF1dG9IaWRlIHx8IGZhbHNlKTtcbiAgICB0aGlzLnNldCh7IHZpc2libGU6ICF0aGlzLmF1dG9IaWRlLCBtb2RlOiAnZGV0ZXJtaW5hdGUnLCB2YWx1ZTogMCB9KTtcbiAgICB0aGlzLmF1dG9IaWRlRGVsYXkgPSB0b051bWJlcih0aGlzLm9wdGlvbnM/LmF1dG9IaWRlRGVsYXksIDEwMDApO1xuICAgIHRoaXMuYXV0b1JlbW92ZSA9IHRvQm9vbGVhbih0aGlzLm9wdGlvbnM/LmF1dG9SZW1vdmUsIHRydWUpO1xuICAgIHRoaXMuYXV0b1JlbW92ZURlbGF5ID0gdG9OdW1iZXIodGhpcy5vcHRpb25zPy5hdXRvUmVtb3ZlRGVsYXksIDEwMDApO1xuXG4gICAgaWYgKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSB7XG4gICAgICB0aGlzLmNvbm5lY3QoJ2pvYlByb2dyZXNzaW9ucycsIHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlLndhdGNoQWxsKCksIChzdGF0ZSwgaXRlbXMpID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdKb2JJZHMgPSBzdGF0ZS5qb2JQcm9ncmVzc2lvbnM/Lm1hcCgoam9iKSA9PiBqb2IudmFsdWUuaWQpIHx8IFtdO1xuICAgICAgICBjb25zdCByZXN1bHQgPSAoaXRlbXMgfHwgW10pLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHJlbW92ZShleGlzdGluZ0pvYklkcywgKGlkKSA9PiBpZCA9PT0gaXRlbS5pZCk7XG4gICAgICAgICAgLy8gQWRkIGpvYiB0byBsaXN0ZW5cbiAgICAgICAgICByZXR1cm4gdGhpcy5zdGFydExpc3RlbkpvYihpdGVtLmlkLCBpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFJlbW92ZSBvbGQgam9ic1xuICAgICAgICBpZiAoZXhpc3RpbmdKb2JJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGV4aXN0aW5nSm9iSWRzLmZvckVhY2goKGlkKSA9PiB0aGlzLnN0b3BMaXN0ZW5Kb2IoaWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdCgnam9iQ291bnQnLCB0aGlzLmpvYlByb2dyZXNzaW9ucyQucGlwZShtYXAoKGpvYnMpID0+IGpvYnM/Lmxlbmd0aCB8fCAwKSkpO1xuXG4gICAgdGhpcy5jb25uZWN0KFxuICAgICAgJ3Zpc2libGUnLFxuICAgICAgdGhpcy5qb2JDb3VudCQucGlwZShcbiAgICAgICAgbWFwKChqb2JDb3VudCkgPT4gam9iQ291bnQgPiAwKSxcbiAgICAgICAgc3dpdGNoTWFwKChoYXNKb2IpID0+XG4gICAgICAgICAgaGFzSm9iXG4gICAgICAgICAgICA/IG9mKHRydWUpXG4gICAgICAgICAgICA6IG9mKGZhbHNlKS5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmF1dG9IaWRlKSxcbiAgICAgICAgICAgICAgICBkZWxheSh0aGlzLmF1dG9IaWRlRGVsYXkpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5fbGlzdFBvcG92ZXIpIHRoaXMuX2xpc3RQb3BvdmVyLmRpc21pc3MoKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0TGlzdGVuSm9iKGlkOiBudW1iZXIsIGpvYj86IEpvYlByb2dyZXNzaW9uKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1ObyBzZXJ2aWNlIGluamVjdGVkLiBDYW4ndCBhZGQgYSBqb2JgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlzTmlsKGlkKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLl9sb2dQcmVmaXh9TWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCAnaWQnLiBDYW5ub3QgbGlzdGVuIGNoYW5nZXMgIWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5nZXRQcm9ncmVzc2lvbihpZCk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgLy9jb25zb2xlLndhcm4oYCR7dGhpcy5fbG9nUHJlZml4fUpvYiAoaWQ9JHtpZH0pIGFscmVhZHkgcHJlc2VudGApO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUFkZCBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgLy8gQWRkaW5nIGVtcHR5IGpvYiBwcm9ncmVzc2lvblxuICAgIHJlc3VsdCA9IG5ldyBCZWhhdmlvclN1YmplY3Qoam9iIHx8IG5ldyBKb2JQcm9ncmVzc2lvbihpZCkpO1xuXG4gICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3ViID0gdGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2VcbiAgICAgIC5saXN0ZW5DaGFuZ2VzKGlkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigocHJvZ3Jlc3Npb24pID0+IHtcbiAgICAgICAgICBpZiAoaWQgIT09IHByb2dyZXNzaW9uLmlkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgcHJvZ3Jlc3Npb24gKGlkPSR7cHJvZ3Jlc3Npb24uaWR9KSBkb2Vzbid0IG1hdGNoIGV4cGVjdGVkIGpvYiAoaWQ9JHtpZH0pYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChwcm9ncmVzc2lvbikgPT4ge1xuICAgICAgICAgIC8vIHVwZGF0ZSBjdXJyZW50XG4gICAgICAgICAgcmVzdWx0Lm5leHQocHJvZ3Jlc3Npb24pO1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1Qcm9ncmVzc2lvbiB1cGRhdGVkIGlkPSR7aWR9YCwgcHJvZ3Jlc3Npb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcHJvZ3Jlc3Npb247XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChwcm9ncmVzc2lvbikgPT4ge1xuICAgICAgICAvLyB1cGRhdGUgdmFsdWVcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuXG4gICAgICAgIC8vIGpvYiBmaW5pc2hlZFxuICAgICAgICBpZiAocHJvZ3Jlc3Npb24udG90YWwgPiAwICYmIHByb2dyZXNzaW9uLmN1cnJlbnQgPT09IHByb2dyZXNzaW9uLnRvdGFsKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUZpbmlzaGVkIGpvYiBpZD0ke3Byb2dyZXNzaW9uLmlkfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBlbWl0IGV2ZW50XG4gICAgICAgICAgdGhpcy5qb2JGaW5pc2hlZC5lbWl0KHByb2dyZXNzaW9uLmlkKTtcbiAgICAgICAgICBpZiAodGhpcy5hdXRvUmVtb3ZlKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zdG9wTGlzdGVuSm9iKHByb2dyZXNzaW9uLmlkKTtcbiAgICAgICAgICAgIH0sIHRoaXMuYXV0b1JlbW92ZURlbGF5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uc0J5SWRbaWRdID0gc3ViO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHN1Yik7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0b3BMaXN0ZW5Kb2IoaWQ6IG51bWJlciwgb3B0cz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVJlbW92ZSBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgY29uc3Qgc3ViID0gdGhpcy5fc3Vic2NyaXB0aW9uc0J5SWRbaWRdO1xuICAgIGlmIChzdWIpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucmVtb3ZlKHN1Yik7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgLy8gUmVtb3ZlIGpvYiBmcm9tIHNlcnZpY2VcbiAgICB0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZS5yZW1vdmVKb2IoaWQpO1xuICAgIGlmICghb3B0cz8uZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQcm9ncmVzc2lvbihpZDogbnVtYmVyKTogQmVoYXZpb3JTdWJqZWN0PEpvYlByb2dyZXNzaW9uPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuam9iUHJvZ3Jlc3Npb25zPy5maW5kKChwcm9ncmVzc2lvbikgPT4gcHJvZ3Jlc3Npb24udmFsdWUuaWQgPT09IGlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9VXBkYXRpbmcgdmFsdWVgKTtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gMDtcbiAgICBjb25zdCBuYlByb2dyZXNzaW9uID0gYXJyYXlTaXplKHRoaXMuam9iUHJvZ3Jlc3Npb25zKTtcbiAgICBsZXQgYWxsSW5kZXRlcm1pbmF0ZSA9IG5iUHJvZ3Jlc3Npb24gPiAwO1xuXG4gICAgaWYgKG5iUHJvZ3Jlc3Npb24pIHtcbiAgICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25zXG4gICAgICAgIC5tYXAoKHN1YmplY3QpID0+IHN1YmplY3QudmFsdWUpXG4gICAgICAgIC5mb3JFYWNoKChwcm9ncmVzc2lvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV0ZXJtaW5hdGUgPSBwcm9ncmVzc2lvbi50b3RhbCA9PT0gMDtcbiAgICAgICAgICBhbGxJbmRldGVybWluYXRlID0gYWxsSW5kZXRlcm1pbmF0ZSAmJiBpbmRldGVybWluYXRlO1xuICAgICAgICAgIGlmICghaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSArIChwcm9ncmVzc2lvbi5jdXJyZW50ICogMTAwKSAvIHByb2dyZXNzaW9uLnRvdGFsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXQoeyBtb2RlOiBhbGxJbmRldGVybWluYXRlID8gJ2luZGV0ZXJtaW5hdGUnIDogJ2RldGVybWluYXRlJywgdmFsdWU6IG5iUHJvZ3Jlc3Npb24gPiAwID8gdmFsdWUgLyBuYlByb2dyZXNzaW9uIDogMCB9KTtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9U2V0dGluZyB2YWx1ZT0ke3RoaXMuZ2V0KCd2YWx1ZScpfSwgbW9kZT0ke3RoaXMuZ2V0KCdtb2RlJyl9YCk7XG4gICAgfVxuXG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIHNob3dMaXN0KGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuX2xpc3RQb3BvdmVyID0gYXdhaXQgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBKb2JQcm9ncmVzc2lvbkxpc3QsXG4gICAgICBjb21wb25lbnRQcm9wczogPEpvYlByb2dyZXNzaW9uTGlzdE9wdGlvbnM+e1xuICAgICAgICB0aXRsZUkxOG46IHRoaXMudGl0bGVJMThuLFxuICAgICAgICBqb2JQcm9ncmVzc2lvbnM6IHRoaXMuam9iUHJvZ3Jlc3Npb25zJCxcbiAgICAgICAgaGVhZGVyQWN0aW9uczogdGhpcy5oZWFkZXJBY3Rpb25zLFxuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICAgIGtleWJvYXJkQ2xvc2U6IHRydWUsXG4gICAgICBldmVudCxcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgY3NzQ2xhc3M6ICdwb3BvdmVyLWxhcmdlJyxcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLl9saXN0UG9wb3Zlci5wcmVzZW50KCk7XG4gICAgYXdhaXQgdGhpcy5fbGlzdFBvcG92ZXIub25EaWREaXNtaXNzKCk7XG4gICAgdGhpcy5fbGlzdFBvcG92ZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9RGVzdHJveWluZ2ApO1xuICAgIH1cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgI2J1dHRvblxuICBtYXQtaWNvbi1idXR0b25cbiAgW3RpdGxlXT1cInRpdGxlSTE4biB8IHRyYW5zbGF0ZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICpyeElmPVwidmlzaWJsZSRcIlxuICAoY2xpY2spPVwic2hvd0xpc3QoJGV2ZW50KVwiXG4+XG4gIDxtYXQtaWNvblxuICAgICpyeExldD1cImpvYkNvdW50JDsgbGV0IGpvYkNvdW50XCJcbiAgICBbbWF0QmFkZ2VdPVwiam9iQ291bnRcIlxuICAgIFttYXRCYWRnZUhpZGRlbl09XCIham9iQ291bnRcIlxuICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWJvdmUgYWZ0ZXJcIlxuICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICA+XG4gICAge3sgZGlzYWJsZWQgfHwgam9iQ291bnQgPyAnc2NoZWR1bGUnIDogJ3Rhc2tfYWx0JyB9fVxuICA8L21hdC1pY29uPlxuICA8bWF0LXNwaW5uZXJcbiAgICAjc3Bpbm5lclxuICAgICpyeElmPVwiam9iQ291bnQkXCJcbiAgICBjbGFzcz1cImZsb2F0aW5nLXNwaW5uZXJcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgW21vZGVdPVwibW9kZSQgfCBwdXNoXCJcbiAgICBbdmFsdWVdPVwidmFsdWUkIHwgcHVzaFwiXG4gICAgZGlhbWV0ZXI9XCIzMFwiXG4gICAgc3Ryb2tlV2lkdGg9XCIzXCJcbiAgPjwvbWF0LXNwaW5uZXI+XG48L2J1dHRvbj5cbiJdfQ==
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSwyQkFBMkIsRUFBMEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQTZCLE1BQU0sd0JBQXdCLENBQUM7QUFHdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7OztBQXlCNUMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLE9BQWdDO0lBMkJUO0lBQ2pEO0lBQ0E7SUE1QkosWUFBWSxDQUF3QjtJQUNwQyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNwQyxrQkFBa0IsR0FBNEIsRUFB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a0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLDBCQUEwQixtQkFJbkIsdUJBQXVCLENBQUMsTUFBTTs7MEJBNkI1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDJCQUEyQjt5R0FUeEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBBUFBfSk9CX1BST0dSRVNTSU9OX1NFUlZJQ0UsIElKb2JQcm9ncmVzc2lvblNlcnZpY2UgfSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uIH0gZnJvbSAnLi9qb2ItcHJvZ3Jlc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWxheSwgb2YsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhcnJheVNpemUsIGlzTmlsLCByZW1vdmUsIHRvQm9vbGVhbiwgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uTGlzdCwgSm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9ucyB9IGZyb20gJy4vam9iLXByb2dyZXNzaW9uLmxpc3QnO1xuaW1wb3J0IHsgSVVzZXJFdmVudEFjdGlvbiB9IGZyb20gJy4uLy4uL3VzZXItZXZlbnQvdXNlci1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBSeFN0YXRlIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvc3RhdGUnO1xuaW1wb3J0IHsgT2JqZWN0TWFwIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvbk9wdGlvbnMge1xuICBhdXRvSGlkZTogYm9vbGVhbjtcbiAgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBhdXRvUmVtb3ZlOiBib29sZWFuO1xuICBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvbkljb25TdGF0ZSB7XG4gIHZpc2libGU6IGJvb2xlYW47XG4gIG1vZGU6IFByb2dyZXNzU3Bpbm5lck1vZGU7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGpvYlByb2dyZXNzaW9uczogQmVoYXZpb3JTdWJqZWN0PEpvYlByb2dyZXNzaW9uPltdO1xuICBqb2JDb3VudDogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtam9iLXByb2dyZXNzaW9uLWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vam9iLXByb2dyZXNzaW9uLmljb24uaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2pvYi1wcm9ncmVzc2lvbi5pY29uLnNjc3MnXSxcbiAgLy8gcHJvdmlkZXJzOiBbUnhTdGF0ZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvbkljb24gZXh0ZW5kcyBSeFN0YXRlPEpvYlByb2dyZXNzaW9uSWNvblN0YXRlPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfbGlzdFBvcG92ZXI6IEhUTUxJb25Qb3BvdmVyRWxlbWVudDtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uc0J5SWQ6IE9iamVjdE1hcDxTdWJzY3JpcHRpb24+ID0ge307XG4gIHByaXZhdGUgX2xvZ1ByZWZpeCA9ICdbam9iLXByb2dyZXNzaW9uXSAnO1xuXG4gIHByb3RlY3RlZCBkaXNhYmxlZCA9IHRydWU7XG4gIHByb3RlY3RlZCBjb2xvcjogVGhlbWVQYWxldHRlID0gJ2FjY2VudCc7XG4gIHByb3RlY3RlZCBqb2JQcm9ncmVzc2lvbnMkID0gdGhpcy5zZWxlY3QoJ2pvYlByb2dyZXNzaW9ucycpO1xuICBwcm90ZWN0ZWQgam9iQ291bnQkID0gdGhpcy5zZWxlY3QoJ2pvYkNvdW50Jyk7XG4gIHByb3RlY3RlZCB2aXNpYmxlJCA9IHRoaXMuc2VsZWN0KCd2aXNpYmxlJyk7XG4gIHByb3RlY3RlZCBtb2RlJCA9IHRoaXMuc2VsZWN0KCdtb2RlJyk7XG4gIHByb3RlY3RlZCB2YWx1ZSQgPSB0aGlzLnNlbGVjdCgndmFsdWUnKTtcblxuICBwcm90ZWN0ZWQgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgYXV0b1JlbW92ZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGF1dG9SZW1vdmVEZWxheTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlSTE4biA9ICdTT0NJQUwuSk9CLlBST0dSRVNTSU9OLlRJVExFJztcbiAgQElucHV0KCkgb3B0aW9uczogSm9iUHJvZ3Jlc3Npb25PcHRpb25zO1xuICBASW5wdXQoKSBhdXRvSGlkZTogYm9vbGVhbjtcbiAgQElucHV0KCkgaGVhZGVyQWN0aW9uczogSVVzZXJFdmVudEFjdGlvbltdO1xuXG4gIEBPdXRwdXQoKSBqb2JGaW5pc2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX0pPQl9QUk9HUkVTU0lPTl9TRVJWSUNFKSBwcm90ZWN0ZWQgam9iUHJvZ3Jlc3Npb25TZXJ2aWNlOiBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2V0IGpvYlByb2dyZXNzaW9ucygpOiBCZWhhdmlvclN1YmplY3Q8Sm9iUHJvZ3Jlc3Npb24+W10ge1xuICAgIHJldHVybiB0aGlzLmdldCgnam9iUHJvZ3Jlc3Npb25zJyk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoaXNOaWwodGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2UpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5fbG9nUHJlZml4fU5vIHNlcnZpY2UgaW5qZWN0ZWRgKTtcbiAgICB9XG4gICAgLy8gcGFyc2Ugb3B0aW9uc1xuICAgIHRoaXMuYXV0b0hpZGUgPSB0b0Jvb2xlYW4odGhpcy5hdXRvSGlkZSwgdGhpcy5vcHRpb25zPy5hdXRvSGlkZSB8fCBmYWxzZSk7XG4gICAgdGhpcy5zZXQoeyB2aXNpYmxlOiAhdGhpcy5hdXRvSGlkZSwgbW9kZTogJ2RldGVybWluYXRlJywgdmFsdWU6IDAgfSk7XG4gICAgdGhpcy5hdXRvSGlkZURlbGF5ID0gdG9OdW1iZXIodGhpcy5vcHRpb25zPy5hdXRvSGlkZURlbGF5LCAxMDAwKTtcbiAgICB0aGlzLmF1dG9SZW1vdmUgPSB0b0Jvb2xlYW4odGhpcy5vcHRpb25zPy5hdXRvUmVtb3ZlLCB0cnVlKTtcbiAgICB0aGlzLmF1dG9SZW1vdmVEZWxheSA9IHRvTnVtYmVyKHRoaXMub3B0aW9ucz8uYXV0b1JlbW92ZURlbGF5LCAxMDAwKTtcblxuICAgIGlmICh0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZSkge1xuICAgICAgdGhpcy5jb25uZWN0KCdqb2JQcm9ncmVzc2lvbnMnLCB0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZS53YXRjaEFsbCgpLCAoc3RhdGUsIGl0ZW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nSm9iSWRzID0gc3RhdGUuam9iUHJvZ3Jlc3Npb25zPy5tYXAoKGpvYikgPT4gam9iLnZhbHVlLmlkKSB8fCBbXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKGl0ZW1zIHx8IFtdKS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICByZW1vdmUoZXhpc3RpbmdKb2JJZHMsIChpZCkgPT4gaWQgPT09IGl0ZW0uaWQpO1xuICAgICAgICAgIC8vIEFkZCBqb2IgdG8gbGlzdGVuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRMaXN0ZW5Kb2IoaXRlbS5pZCwgaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBSZW1vdmUgb2xkIGpvYnNcbiAgICAgICAgaWYgKGV4aXN0aW5nSm9iSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBleGlzdGluZ0pvYklkcy5mb3JFYWNoKChpZCkgPT4gdGhpcy5zdG9wTGlzdGVuSm9iKGlkLCB7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3QoJ2pvYkNvdW50JywgdGhpcy5qb2JQcm9ncmVzc2lvbnMkLnBpcGUobWFwKChqb2JzKSA9PiBqb2JzPy5sZW5ndGggfHwgMCkpKTtcblxuICAgIHRoaXMuY29ubmVjdChcbiAgICAgICd2aXNpYmxlJyxcbiAgICAgIHRoaXMuam9iQ291bnQkLnBpcGUoXG4gICAgICAgIG1hcCgoam9iQ291bnQpID0+IGpvYkNvdW50ID4gMCksXG4gICAgICAgIHN3aXRjaE1hcCgoaGFzSm9iKSA9PlxuICAgICAgICAgIGhhc0pvYlxuICAgICAgICAgICAgPyBvZih0cnVlKVxuICAgICAgICAgICAgOiBvZihmYWxzZSkucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5hdXRvSGlkZSksXG4gICAgICAgICAgICAgICAgZGVsYXkodGhpcy5hdXRvSGlkZURlbGF5KSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xpc3RQb3BvdmVyKSB0aGlzLl9saXN0UG9wb3Zlci5kaXNtaXNzKCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydExpc3RlbkpvYihpZDogbnVtYmVyLCBqb2I/OiBKb2JQcm9ncmVzc2lvbikge1xuICAgIGlmIChpc05pbCh0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgJHt0aGlzLl9sb2dQcmVmaXh9Tm8gc2VydmljZSBpbmplY3RlZC4gQ2FuJ3QgYWRkIGEgam9iYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpc05pbChpZCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5fbG9nUHJlZml4fU1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQgJ2lkJy4gQ2Fubm90IGxpc3RlbiBjaGFuZ2VzICFgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMuZ2V0UHJvZ3Jlc3Npb24oaWQpO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIC8vY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgKGlkPSR7aWR9KSBhbHJlYWR5IHByZXNlbnRgKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1BZGQgam9iIGlkPSR7aWR9YCk7XG4gICAgfVxuICAgIC8vIEFkZGluZyBlbXB0eSBqb2IgcHJvZ3Jlc3Npb25cbiAgICByZXN1bHQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGpvYiB8fCBuZXcgSm9iUHJvZ3Jlc3Npb24oaWQpKTtcblxuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1YiA9IHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlXG4gICAgICAubGlzdGVuQ2hhbmdlcyhpZClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHByb2dyZXNzaW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGlkICE9PSBwcm9ncmVzc2lvbi5pZCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLl9sb2dQcmVmaXh9Sm9iIHByb2dyZXNzaW9uIChpZD0ke3Byb2dyZXNzaW9uLmlkfSkgZG9lc24ndCBtYXRjaCBleHBlY3RlZCBqb2IgKGlkPSR7aWR9KWApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocHJvZ3Jlc3Npb24pID0+IHtcbiAgICAgICAgICAvLyB1cGRhdGUgY3VycmVudFxuICAgICAgICAgIHJlc3VsdC5uZXh0KHByb2dyZXNzaW9uKTtcbiAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9UHJvZ3Jlc3Npb24gdXBkYXRlZCBpZD0ke2lkfWAsIHByb2dyZXNzaW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb2dyZXNzaW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocHJvZ3Jlc3Npb24pID0+IHtcbiAgICAgICAgLy8gdXBkYXRlIHZhbHVlXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcblxuICAgICAgICAvLyBqb2IgZmluaXNoZWRcbiAgICAgICAgaWYgKHByb2dyZXNzaW9uLnRvdGFsID4gMCAmJiBwcm9ncmVzc2lvbi5jdXJyZW50ID09PSBwcm9ncmVzc2lvbi50b3RhbCkge1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1GaW5pc2hlZCBqb2IgaWQ9JHtwcm9ncmVzc2lvbi5pZH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZW1pdCBldmVudFxuICAgICAgICAgIHRoaXMuam9iRmluaXNoZWQuZW1pdChwcm9ncmVzc2lvbi5pZCk7XG4gICAgICAgICAgaWYgKHRoaXMuYXV0b1JlbW92ZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcExpc3RlbkpvYihwcm9ncmVzc2lvbi5pZCk7XG4gICAgICAgICAgICB9LCB0aGlzLmF1dG9SZW1vdmVEZWxheSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnNCeUlkW2lkXSA9IHN1YjtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChzdWIpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdG9wTGlzdGVuSm9iKGlkOiBudW1iZXIsIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1SZW1vdmUgam9iIGlkPSR7aWR9YCk7XG4gICAgfVxuICAgIGNvbnN0IHN1YiA9IHRoaXMuX3N1YnNjcmlwdGlvbnNCeUlkW2lkXTtcbiAgICBpZiAoc3ViKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnJlbW92ZShzdWIpO1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIC8vIFJlbW92ZSBqb2IgZnJvbSBzZXJ2aWNlXG4gICAgdGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2UucmVtb3ZlSm9iKGlkKTtcbiAgICBpZiAoIW9wdHM/LmVtaXRFdmVudCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UHJvZ3Jlc3Npb24oaWQ6IG51bWJlcik6IEJlaGF2aW9yU3ViamVjdDxKb2JQcm9ncmVzc2lvbj4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmpvYlByb2dyZXNzaW9ucz8uZmluZCgocHJvZ3Jlc3Npb24pID0+IHByb2dyZXNzaW9uLnZhbHVlLmlkID09PSBpZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVVwZGF0aW5nIHZhbHVlYCk7XG4gICAgfVxuICAgIGxldCB2YWx1ZSA9IDA7XG4gICAgY29uc3QgbmJQcm9ncmVzc2lvbiA9IGFycmF5U2l6ZSh0aGlzLmpvYlByb2dyZXNzaW9ucyk7XG4gICAgbGV0IGFsbEluZGV0ZXJtaW5hdGUgPSBuYlByb2dyZXNzaW9uID4gMDtcblxuICAgIGlmIChuYlByb2dyZXNzaW9uKSB7XG4gICAgICB0aGlzLmpvYlByb2dyZXNzaW9uc1xuICAgICAgICAubWFwKChzdWJqZWN0KSA9PiBzdWJqZWN0LnZhbHVlKVxuICAgICAgICAuZm9yRWFjaCgocHJvZ3Jlc3Npb24pID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRldGVybWluYXRlID0gcHJvZ3Jlc3Npb24udG90YWwgPT09IDA7XG4gICAgICAgICAgYWxsSW5kZXRlcm1pbmF0ZSA9IGFsbEluZGV0ZXJtaW5hdGUgJiYgaW5kZXRlcm1pbmF0ZTtcbiAgICAgICAgICBpZiAoIWluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKyAocHJvZ3Jlc3Npb24uY3VycmVudCAqIDEwMCkgLyBwcm9ncmVzc2lvbi50b3RhbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc2V0KHsgbW9kZTogYWxsSW5kZXRlcm1pbmF0ZSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZScsIHZhbHVlOiBuYlByb2dyZXNzaW9uID4gMCA/IHZhbHVlIC8gbmJQcm9ncmVzc2lvbiA6IDAgfSk7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVNldHRpbmcgdmFsdWU9JHt0aGlzLmdldCgndmFsdWUnKX0sIG1vZGU9JHt0aGlzLmdldCgnbW9kZScpfWApO1xuICAgIH1cblxuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBhc3luYyBzaG93TGlzdChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLl9saXN0UG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogSm9iUHJvZ3Jlc3Npb25MaXN0LFxuICAgICAgY29tcG9uZW50UHJvcHM6IDxKb2JQcm9ncmVzc2lvbkxpc3RPcHRpb25zPntcbiAgICAgICAgdGl0bGVJMThuOiB0aGlzLnRpdGxlSTE4bixcbiAgICAgICAgam9iUHJvZ3Jlc3Npb25zOiB0aGlzLmpvYlByb2dyZXNzaW9ucyQsXG4gICAgICAgIGhlYWRlckFjdGlvbnM6IHRoaXMuaGVhZGVyQWN0aW9ucyxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICBrZXlib2FyZENsb3NlOiB0cnVlLFxuICAgICAgZXZlbnQsXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICAgIGNzc0NsYXNzOiAncG9wb3Zlci1sYXJnZScsXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5fbGlzdFBvcG92ZXIucHJlc2VudCgpO1xuICAgIGF3YWl0IHRoaXMuX2xpc3RQb3BvdmVyLm9uRGlkRGlzbWlzcygpO1xuICAgIHRoaXMuX2xpc3RQb3BvdmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fURlc3Ryb3lpbmdgKTtcbiAgICB9XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCJAbGV0IGNvdW50ID0gKGpvYkNvdW50JCB8IGFzeW5jKTtcbkBpZiAodmlzaWJsZSQgfCBhc3luYykge1xuICA8YnV0dG9uXG4gICAgI2J1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIFt0aXRsZV09XCJ0aXRsZUkxOG4gfCB0cmFuc2xhdGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cInNob3dMaXN0KCRldmVudClcIlxuICA+XG4gICAgPG1hdC1pY29uXG4gICAgICBbbWF0QmFkZ2VdPVwiY291bnQgfCBiYWRnZU51bWJlclwiXG4gICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiIWNvdW50XCJcbiAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFib3ZlIGFmdGVyXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgID5cbiAgICAgIHt7IGRpc2FibGVkIHx8IGNvdW50ID8gJ3NjaGVkdWxlJyA6ICd0YXNrX2FsdCcgfX1cbiAgICA8L21hdC1pY29uPlxuICAgIEBpZiAoY291bnQpIHtcbiAgICAgIDxtYXQtc3Bpbm5lclxuICAgICAgICAjc3Bpbm5lclxuICAgICAgICBjbGFzcz1cImZsb2F0aW5nLXNwaW5uZXJcIlxuICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgICBbbW9kZV09XCJtb2RlJCB8IHB1c2hcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWUkIHwgcHVzaFwiXG4gICAgICAgIGRpYW1ldGVyPVwiMzBcIlxuICAgICAgICBzdHJva2VXaWR0aD1cIjNcIlxuICAgICAgPjwvbWF0LXNwaW5uZXI+XG4gICAgfVxuICA8L2J1dHRvbj5cbn1cbiJdfQ==