@provoly/dashboard 0.20.4 → 0.20.6

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 (131) hide show
  1. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +2 -1
  2. package/dataset/i18n/en.translations.d.ts +2 -1
  3. package/dataset/i18n/fr.translations.d.ts +2 -1
  4. package/dataset/style/_o-pry-dataset-card.scss +0 -1
  5. package/dataset/style/_o-pry-dataset-detail.scss +2 -53
  6. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +3 -3
  7. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
  8. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +3 -3
  10. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +20 -4
  11. package/esm2022/dataset/i18n/en.translations.mjs +3 -2
  12. package/esm2022/dataset/i18n/fr.translations.mjs +3 -2
  13. package/esm2022/dataset/style/css.component.mjs +2 -2
  14. package/esm2022/filters/autocomplete/autocomplete.component.mjs +16 -10
  15. package/esm2022/lib/core/components/about/about.component.mjs +3 -3
  16. package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +3 -3
  17. package/esm2022/lib/core/components/select/select.component.mjs +42 -13
  18. package/esm2022/lib/core/i18n/en.translations.mjs +1 -2
  19. package/esm2022/lib/core/i18n/fr.translations.mjs +1 -2
  20. package/esm2022/lib/core/model/display-options.interface.mjs +2 -2
  21. package/esm2022/lib/core/model/item.interface.mjs +1 -1
  22. package/esm2022/lib/core/store/class/class.actions.mjs +1 -4
  23. package/esm2022/lib/core/store/class/class.effects.mjs +1 -4
  24. package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
  25. package/esm2022/lib/core/store/class/class.reducer.mjs +3 -13
  26. package/esm2022/lib/core/store/class/class.selectors.mjs +1 -3
  27. package/esm2022/lib/core/store/class/class.service.mjs +1 -9
  28. package/esm2022/lib/core/store/config/config.selectors.mjs +1 -3
  29. package/esm2022/lib/core/store/config/config.service.mjs +4 -7
  30. package/esm2022/lib/dashboard/item-utils.mjs +4 -4
  31. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +3 -3
  32. package/esm2022/presentation/components/presentation.component.mjs +3 -3
  33. package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +11 -21
  34. package/esm2022/presentation/style/css.component.mjs +2 -2
  35. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
  36. package/esm2022/restitution/i18n/en.translations.mjs +2 -2
  37. package/esm2022/restitution/style/css.component.mjs +2 -2
  38. package/esm2022/search/i18n/en.translations.mjs +2 -1
  39. package/esm2022/search/i18n/fr.translations.mjs +2 -1
  40. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -7
  41. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +2 -2
  42. package/fesm2022/provoly-dashboard-admin.mjs +8 -8
  43. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  44. package/fesm2022/provoly-dashboard-dataset.mjs +25 -7
  45. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  46. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +15 -9
  47. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  48. package/fesm2022/provoly-dashboard-presentation.mjs +14 -24
  49. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  50. package/fesm2022/provoly-dashboard-restitution.mjs +5 -5
  51. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  52. package/fesm2022/provoly-dashboard-search.mjs +2 -0
  53. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  54. package/fesm2022/provoly-dashboard-toolbox.mjs +2 -6
  55. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  56. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +1 -1
  57. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  58. package/fesm2022/provoly-dashboard.mjs +57 -61
  59. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  60. package/filters/autocomplete/autocomplete.component.d.ts +1 -0
  61. package/lib/core/components/select/select.component.d.ts +2 -1
  62. package/lib/core/i18n/en.translations.d.ts +0 -1
  63. package/lib/core/i18n/fr.translations.d.ts +0 -1
  64. package/lib/core/model/item.interface.d.ts +1 -1
  65. package/lib/core/store/class/class.actions.d.ts +1 -12
  66. package/lib/core/store/class/class.effects.d.ts +0 -5
  67. package/lib/core/store/class/class.interface.d.ts +0 -6
  68. package/lib/core/store/class/class.reducer.d.ts +2 -3
  69. package/lib/core/store/class/class.selectors.d.ts +0 -1
  70. package/lib/core/store/class/class.service.d.ts +1 -5
  71. package/lib/core/store/config/config.selectors.d.ts +0 -1
  72. package/package.json +7 -13
  73. package/presentation/components/title-presentation/title-presentation.component.d.ts +3 -5
  74. package/presentation/style/_o-pry-presentation.scss +1 -48
  75. package/restitution/i18n/en.translations.d.ts +1 -1
  76. package/restitution/style/_o-restitution.scss +11 -14
  77. package/search/i18n/en.translations.d.ts +1 -0
  78. package/search/i18n/fr.translations.d.ts +1 -0
  79. package/styles/base/_utils.scss +4 -0
  80. package/styles/components/_a-tooltip.scss +25 -18
  81. package/styles/components/_m-info-icon.scss +16 -0
  82. package/styles/components/_m-presentation-title.scss +14 -0
  83. package/styles/components/_o-about.scss +2 -24
  84. package/styles/main.scss +2 -0
  85. package/styles-theme/components-theme/_o-pry-dataset.theme.scss +0 -8
  86. package/styles-theme/components-theme/_o-pry-presentation.theme.scss +1 -1
  87. package/styles-theme/components-theme/_o-restitution.theme.scss +10 -0
  88. package/esm2022/supervision/components/supervision-business-data/supervision-business-data.component.mjs +0 -34
  89. package/esm2022/supervision/components/supervision-flow/supervision-flow.component.mjs +0 -33
  90. package/esm2022/supervision/components/supervision-infrastructures/supervision-infrastructures.component.mjs +0 -51
  91. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.mjs +0 -27
  92. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +0 -100
  93. package/esm2022/supervision/components/supervision-layout/supervision-layout.component.mjs +0 -47
  94. package/esm2022/supervision/components/supervision-menu/supervision-menu.component.mjs +0 -32
  95. package/esm2022/supervision/components/supervision-title/supervision-title.component.mjs +0 -24
  96. package/esm2022/supervision/components/supervision.component.mjs +0 -19
  97. package/esm2022/supervision/i18n/en.translations.mjs +0 -58
  98. package/esm2022/supervision/i18n/fr.translations.mjs +0 -58
  99. package/esm2022/supervision/provoly-dashboard-supervision.mjs +0 -5
  100. package/esm2022/supervision/public-api.mjs +0 -2
  101. package/esm2022/supervision/store/supervision-api.model.mjs +0 -2
  102. package/esm2022/supervision/store/supervision.actions.mjs +0 -33
  103. package/esm2022/supervision/store/supervision.effects.mjs +0 -60
  104. package/esm2022/supervision/store/supervision.reducer.mjs +0 -111
  105. package/esm2022/supervision/store/supervision.selectors.mjs +0 -35
  106. package/esm2022/supervision/store/supervision.service.mjs +0 -54
  107. package/esm2022/supervision/supervision-routing.module.mjs +0 -96
  108. package/esm2022/supervision/supervision.module.mjs +0 -96
  109. package/fesm2022/provoly-dashboard-supervision.mjs +0 -861
  110. package/fesm2022/provoly-dashboard-supervision.mjs.map +0 -1
  111. package/supervision/components/supervision-business-data/supervision-business-data.component.d.ts +0 -14
  112. package/supervision/components/supervision-flow/supervision-flow.component.d.ts +0 -14
  113. package/supervision/components/supervision-infrastructures/supervision-infrastructures.component.d.ts +0 -18
  114. package/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.d.ts +0 -12
  115. package/supervision/components/supervision-integration-errors/supervision-integration-errors.component.d.ts +0 -29
  116. package/supervision/components/supervision-layout/supervision-layout.component.d.ts +0 -21
  117. package/supervision/components/supervision-menu/supervision-menu.component.d.ts +0 -13
  118. package/supervision/components/supervision-title/supervision-title.component.d.ts +0 -11
  119. package/supervision/components/supervision.component.d.ts +0 -9
  120. package/supervision/i18n/en.translations.d.ts +0 -57
  121. package/supervision/i18n/fr.translations.d.ts +0 -57
  122. package/supervision/index.d.ts +0 -5
  123. package/supervision/public-api.d.ts +0 -1
  124. package/supervision/store/supervision-api.model.d.ts +0 -36
  125. package/supervision/store/supervision.actions.d.ts +0 -121
  126. package/supervision/store/supervision.effects.d.ts +0 -51
  127. package/supervision/store/supervision.reducer.d.ts +0 -22
  128. package/supervision/store/supervision.selectors.d.ts +0 -18
  129. package/supervision/store/supervision.service.d.ts +0 -19
  130. package/supervision/supervision-routing.module.d.ts +0 -7
  131. package/supervision/supervision.module.d.ts +0 -25
@@ -12,6 +12,7 @@ export declare class AutocompleteComponent extends BaseFilterComponent implement
12
12
  ngOnInit(): void;
13
13
  setFilter(value: string): void;
14
14
  updateSearch($event?: Event): void;
15
+ clear(): void;
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
16
17
  static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "pry-autocomplete", never, {}, {}, never, never, false, never>;
17
18
  }
@@ -2,8 +2,9 @@ import { ChangeDetectorRef, ElementRef, EventEmitter, TemplateRef, ViewContainer
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
3
  import { BehaviorSubject, Observable } from 'rxjs';
4
4
  import { Overlay, OverlayRef } from '@angular/cdk/overlay';
5
+ import { SubscriptionnerDirective } from '../../../dashboard/components/subscriptionner.directive';
5
6
  import * as i0 from "@angular/core";
6
- export declare class PrySelectComponent implements ControlValueAccessor {
7
+ export declare class PrySelectComponent extends SubscriptionnerDirective implements ControlValueAccessor {
7
8
  private _cd;
8
9
  private overlay;
9
10
  private viewContainerRef;
@@ -10,7 +10,6 @@ export declare const enTranslations: {
10
10
  replay: string;
11
11
  exec: string;
12
12
  transfo: string;
13
- monitor: string;
14
13
  noVersion: string;
15
14
  };
16
15
  header: {
@@ -10,7 +10,6 @@ export declare const frTranslations: {
10
10
  replay: string;
11
11
  exec: string;
12
12
  transfo: string;
13
- monitor: string;
14
13
  noVersion: string;
15
14
  };
16
15
  header: {
@@ -20,7 +20,7 @@ export interface AttributeSimpleValue {
20
20
  metadata?: {
21
21
  [key: string]: MetadataType;
22
22
  };
23
- visible: boolean;
23
+ visible?: boolean;
24
24
  }
25
25
  export type ValueType = string | number | PointValue | MultipointValue | MultiMultipointValue;
26
26
  export type PointValue = {
@@ -1,4 +1,4 @@
1
- import { BusinessData, Class } from './class.interface';
1
+ import { Class } from './class.interface';
2
2
  import { DatasetCount } from '../../model/dataset.interface';
3
3
  export declare const ClassActions: {
4
4
  load: import("@ngrx/store").ActionCreator<"[Class] Load Classes", () => import("@ngrx/store/src/models").TypedAction<"[Class] Load Classes">>;
@@ -12,17 +12,6 @@ export declare const ClassActions: {
12
12
  }) => {
13
13
  error: string;
14
14
  } & import("@ngrx/store/src/models").TypedAction<"[Class Api] Load Classes Failure">>;
15
- loadBusinessData: import("@ngrx/store").ActionCreator<"[Class Api] Load BusinessData", () => import("@ngrx/store/src/models").TypedAction<"[Class Api] Load BusinessData">>;
16
- loadBusinessDataSuccess: import("@ngrx/store").ActionCreator<"[Class Api] Load BusinessData Success", (props: {
17
- datas: BusinessData[];
18
- }) => {
19
- datas: BusinessData[];
20
- } & import("@ngrx/store/src/models").TypedAction<"[Class Api] Load BusinessData Success">>;
21
- loadBusinessDataFailure: import("@ngrx/store").ActionCreator<"[Class Api] Load BusinessData Failure", (props: {
22
- error: any;
23
- }) => {
24
- error: any;
25
- } & import("@ngrx/store/src/models").TypedAction<"[Class Api] Load BusinessData Failure">>;
26
15
  loadDatasetCount: import("@ngrx/store").ActionCreator<"[Class Api] Load DatasetCount", () => import("@ngrx/store/src/models").TypedAction<"[Class Api] Load DatasetCount">>;
27
16
  loadDatasetCountSuccess: import("@ngrx/store").ActionCreator<"[Class Api] Load DatasetCount Success", (props: {
28
17
  datasetCounts: DatasetCount[];
@@ -9,11 +9,6 @@ export declare class ClassEffects {
9
9
  } & import("@ngrx/store/src/models").TypedAction<"[Class Api] (bus) Load Classes Success">) | ({
10
10
  error: string;
11
11
  } & import("@ngrx/store/src/models").TypedAction<"[Class Api] Load Classes Failure">)> & import("@ngrx/effects").CreateEffectMetadata;
12
- loadBusinessData$: import("rxjs").Observable<({
13
- datas: import("@provoly/dashboard").BusinessData[];
14
- } & import("@ngrx/store/src/models").TypedAction<"[Class Api] Load BusinessData Success">) | ({
15
- error: any;
16
- } & import("@ngrx/store/src/models").TypedAction<"[Class Api] Load BusinessData Failure">)> & import("@ngrx/effects").CreateEffectMetadata;
17
12
  loadDatasetCount$: import("rxjs").Observable<({
18
13
  datasetCounts: import("@provoly/dashboard").DatasetCount[];
19
14
  } & import("@ngrx/store/src/models").TypedAction<"[Class Api] Load DatasetCount Success">) | ({
@@ -13,12 +13,6 @@ export interface Attribute {
13
13
  category?: string;
14
14
  multiValued: boolean;
15
15
  }
16
- export interface BusinessData {
17
- name: string;
18
- count: number;
19
- date: string;
20
- icon?: string;
21
- }
22
16
  export interface Associations {
23
17
  id: string;
24
18
  associations: [
@@ -1,15 +1,14 @@
1
1
  import { EntityAdapter, EntityState } from '@ngrx/entity';
2
2
  import { Action } from '@ngrx/store';
3
3
  import { DatasetCount } from '../../model/dataset.interface';
4
- import { BusinessData, Class } from './class.interface';
4
+ import { Class } from './class.interface';
5
5
  export declare const classesFeatureKey = "@pry/model/classes";
6
6
  export interface ClassState extends EntityState<Class> {
7
7
  loading: boolean;
8
- classDatas: BusinessData[];
9
8
  datasetCounts: DatasetCount[];
10
9
  }
11
10
  export declare function sortByName(a: Class, b: Class): number;
12
11
  export declare const adapter: EntityAdapter<Class>;
13
12
  export declare const initialClassState: ClassState;
14
- export declare const selectIds: (state: EntityState<Class>) => string[] | number[], selectEntities: (state: EntityState<Class>) => import("@ngrx/entity").Dictionary<Class>, selectAll: (state: EntityState<Class>) => Class[], selectTotal: (state: EntityState<Class>) => number;
13
+ export declare const selectEntities: (state: EntityState<Class>) => import("@ngrx/entity").Dictionary<Class>, selectAll: (state: EntityState<Class>) => Class[];
15
14
  export declare function classReducer(state: ClassState, action: Action): ClassState;
@@ -87,7 +87,6 @@ export declare const ClassSelectors: {
87
87
  category?: string | undefined;
88
88
  multiValued: boolean;
89
89
  }[]>;
90
- classDatas: import("@ngrx/store").MemoizedSelector<object, import("./class.interface").BusinessData[], (s1: fromClass.ClassState) => import("./class.interface").BusinessData[]>;
91
90
  datasetCounts: import("@ngrx/store").MemoizedSelector<object, import("@provoly/dashboard").DatasetCount[], (s1: fromClass.ClassState) => import("@provoly/dashboard").DatasetCount[]>;
92
91
  getAttributeById: (id: string) => import("@ngrx/store").MemoizedSelector<object, {
93
92
  technicalName: string;
@@ -1,7 +1,7 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { Store } from '@ngrx/store';
3
3
  import { Observable } from 'rxjs';
4
- import { BusinessData, Class } from './class.interface';
4
+ import { Class } from './class.interface';
5
5
  import { DatasetCount } from '../../model/dataset.interface';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class ClassService {
@@ -12,10 +12,6 @@ export declare class ClassService {
12
12
  * Returns the list of business classes
13
13
  */
14
14
  getClasses(): Observable<Array<Class>>;
15
- /**
16
- * Returns classes usage
17
- */
18
- getBusinessDatas(): Observable<BusinessData[]>;
19
15
  getDatasetCounts(): Observable<DatasetCount[]>;
20
16
  static ɵfac: i0.ɵɵFactoryDeclaration<ClassService, never>;
21
17
  static ɵprov: i0.ɵɵInjectableDeclaration<ClassService>;
@@ -7,7 +7,6 @@ export declare const ConfigSelectors: {
7
7
  refUrl: import("@ngrx/store").MemoizedSelector<object, string, (s1: string) => string>;
8
8
  transfoUrl: import("@ngrx/store").MemoizedSelector<object, string, (s1: string) => string>;
9
9
  wsUrl: import("@ngrx/store").MemoizedSelector<object, string, (s1: fromConfig.ConfigState) => string>;
10
- monitorUrl: import("@ngrx/store").MemoizedSelector<object, string, (s1: string) => string>;
11
10
  replayUrl: import("@ngrx/store").MemoizedSelector<object, string, (s1: string) => string>;
12
11
  mapUrl: import("@ngrx/store").MemoizedSelector<object, string, (s1: fromConfig.ConfigState) => string>;
13
12
  geoServerUrl: import("@ngrx/store").MemoizedSelector<object, string, (s1: fromConfig.ConfigState) => string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@provoly/dashboard",
3
- "version": "0.20.4",
3
+ "version": "0.20.6",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {
6
6
  "@angular/cdk": "14.x || 15.x || 16.x",
@@ -126,12 +126,6 @@
126
126
  "esm": "./esm2022/search/provoly-dashboard-search.mjs",
127
127
  "default": "./fesm2022/provoly-dashboard-search.mjs"
128
128
  },
129
- "./supervision": {
130
- "types": "./supervision/index.d.ts",
131
- "esm2022": "./esm2022/supervision/provoly-dashboard-supervision.mjs",
132
- "esm": "./esm2022/supervision/provoly-dashboard-supervision.mjs",
133
- "default": "./fesm2022/provoly-dashboard-supervision.mjs"
134
- },
135
129
  "./toolbox": {
136
130
  "types": "./toolbox/index.d.ts",
137
131
  "esm2022": "./esm2022/toolbox/provoly-dashboard-toolbox.mjs",
@@ -240,18 +234,18 @@
240
234
  "esm": "./esm2022/pipeline-components/noop/provoly-dashboard-pipeline-components-noop.mjs",
241
235
  "default": "./fesm2022/provoly-dashboard-pipeline-components-noop.mjs"
242
236
  },
243
- "./pipeline-components/output-dataset": {
244
- "types": "./pipeline-components/output-dataset/index.d.ts",
245
- "esm2022": "./esm2022/pipeline-components/output-dataset/provoly-dashboard-pipeline-components-output-dataset.mjs",
246
- "esm": "./esm2022/pipeline-components/output-dataset/provoly-dashboard-pipeline-components-output-dataset.mjs",
247
- "default": "./fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs"
248
- },
249
237
  "./pipeline-components/subgraph": {
250
238
  "types": "./pipeline-components/subgraph/index.d.ts",
251
239
  "esm2022": "./esm2022/pipeline-components/subgraph/provoly-dashboard-pipeline-components-subgraph.mjs",
252
240
  "esm": "./esm2022/pipeline-components/subgraph/provoly-dashboard-pipeline-components-subgraph.mjs",
253
241
  "default": "./fesm2022/provoly-dashboard-pipeline-components-subgraph.mjs"
254
242
  },
243
+ "./pipeline-components/output-dataset": {
244
+ "types": "./pipeline-components/output-dataset/index.d.ts",
245
+ "esm2022": "./esm2022/pipeline-components/output-dataset/provoly-dashboard-pipeline-components-output-dataset.mjs",
246
+ "esm": "./esm2022/pipeline-components/output-dataset/provoly-dashboard-pipeline-components-output-dataset.mjs",
247
+ "default": "./fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs"
248
+ },
255
249
  "./tooltips/attribute": {
256
250
  "types": "./tooltips/attribute/index.d.ts",
257
251
  "esm2022": "./esm2022/tooltips/attribute/provoly-dashboard-tooltips-attribute.mjs",
@@ -1,13 +1,11 @@
1
1
  import { Store } from '@ngrx/store';
2
2
  import { Observable } from 'rxjs';
3
- import { ManifestDescription, PryI18nService } from '@provoly/dashboard';
3
+ import { ManifestDescription } from '@provoly/dashboard';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class PryTitlePresentationComponent {
6
6
  private store;
7
- private i18nService;
8
- presentation$: Observable<ManifestDescription | null>;
9
- presentationTitle$: Observable<string | null>;
10
- constructor(store: Store, i18nService: PryI18nService);
7
+ currentPresentation$: Observable<ManifestDescription | undefined>;
8
+ constructor(store: Store);
11
9
  static ɵfac: i0.ɵɵFactoryDeclaration<PryTitlePresentationComponent, never>;
12
10
  static ɵcmp: i0.ɵɵComponentDeclaration<PryTitlePresentationComponent, "pry-title-presentation", never, {}, {}, never, never, false, never>;
13
11
  }
@@ -139,7 +139,6 @@
139
139
 
140
140
  &.a-tooltip[data-tooltip]:after {
141
141
  width: 100%;
142
- white-space: normal;
143
142
  }
144
143
  }
145
144
 
@@ -176,53 +175,7 @@
176
175
  padding: toRem(15);
177
176
  }
178
177
 
179
- .title-tooltip {
180
- transform: translateY(4rem);
181
- }
182
- .info-tooltip{
183
- transform: translateY(8rem);
184
- }
185
-
186
- h1.a-presentation-title {
187
- font-size: 16px;
188
- padding-right: 20px;
189
- color: #113B6E;
190
- }
191
-
192
- .title-container {
193
- display: flex;
194
-
195
- .h-1 {
196
- padding-top: 0;
197
- padding-bottom: 0;
198
- }
199
- }
200
-
201
- .actions-list {
202
- display: flex;
203
- align-items: center;
204
- gap: 0.9375rem;
205
- flex-direction: row;
206
- flex-wrap: nowrap;
207
- justify-content: space-evenly;
208
- list-style-type: none;
209
- }
210
-
211
- .info-icon {
212
- position: relative;
213
- width: 1.5rem;
214
- height: 1.5rem;
215
- border-radius: 50%;
216
- cursor: pointer;
217
- display: inline-flex;
218
- justify-content: center;
219
- align-items: center;
220
- align-self: center;
221
- margin-right: 1rem;
222
- border: 1px solid #3E546A;
223
- }
224
-
225
- .more-actions {
178
+ .more-button {
226
179
  position: absolute;
227
180
  top: toRem(6);
228
181
  right: toRem(10);
@@ -20,7 +20,7 @@ export declare const enTranslations: {
20
20
  choice: string;
21
21
  or: string;
22
22
  create_title: string;
23
- consult_title: string;
23
+ consultRestitution: string;
24
24
  search: string;
25
25
  backToCatalog: string;
26
26
  options: string;
@@ -25,18 +25,15 @@
25
25
  label {
26
26
  border-radius: 10%;
27
27
  }
28
- }
29
- .actions-list {
30
- display: flex;
31
- align-items: center;
32
- gap: 0.9375rem;
33
- flex-direction: row;
34
- flex-wrap: nowrap;
35
- justify-content: space-evenly;
36
- list-style-type: none;
37
- }
38
- .more-actions {
39
- position: absolute;
40
- top: toRem(6);
41
- right: toRem(10);
28
+
29
+ .more-button {
30
+ position: absolute;
31
+ top: toRem(6);
32
+ right: toRem(10);
33
+
34
+ .a-btn {
35
+ padding: toRem(2) 0;
36
+ border-radius: 50%;
37
+ }
38
+ }
42
39
  }
@@ -46,6 +46,7 @@ export declare const enTranslations: {
46
46
  startWith: string;
47
47
  endWith: string;
48
48
  notEqualsString: string;
49
+ notEqualsNumber: string;
49
50
  equalsString: string;
50
51
  equalsNumber: string;
51
52
  greaterThanNumber: string;
@@ -46,6 +46,7 @@ export declare const frTranslations: {
46
46
  startWith: string;
47
47
  endWith: string;
48
48
  notEqualsString: string;
49
+ notEqualsNumber: string;
49
50
  equalsString: string;
50
51
  equalsNumber: string;
51
52
  greaterThanNumber: string;
@@ -69,3 +69,7 @@
69
69
  .u-self-end {
70
70
  align-self: flex-end;
71
71
  }
72
+
73
+ .-flex-shrink-0 {
74
+ flex-shrink: 0;
75
+ }
@@ -8,26 +8,21 @@
8
8
  cursor: pointer;
9
9
 
10
10
  &:after {
11
- line-height: 1;
12
- pointer-events: none;
13
- position: absolute;
14
- box-sizing: border-box;
15
11
  display: none;
16
12
  opacity: 0;
17
- }
13
+ position: absolute;
14
+ z-index: 1000;
15
+ pointer-events: none;
18
16
 
19
- &:after {
20
17
  content: attr(data-tooltip);
21
18
  text-align: center;
19
+ line-height: 1;
20
+
21
+ border-radius: toRem(5);
22
+ box-sizing: border-box;
23
+ box-shadow: 0 1px 3px 0 #0000001A;
22
24
  min-width: 3em;
23
- max-width: 21em;
24
- white-space: nowrap;
25
- overflow: hidden;
26
- text-overflow: ellipsis;
27
25
  padding: toRem(5) toRem(10);
28
- box-shadow: 0px 1px 3px 0px #0000001A;
29
- border-radius: toRem(5);
30
- z-index: 1000;
31
26
  }
32
27
 
33
28
  &:hover:after {
@@ -38,17 +33,13 @@
38
33
  &:not([data-tooltip-position])::after,
39
34
  &[data-tooltip-position="top"]::after {
40
35
  bottom: calc(100% + 5px);
41
- }
42
-
43
- &:not([data-tooltip-position])::after,
44
- &[data-tooltip-position="top"]::after {
45
36
  left: 50%;
46
37
  -webkit-transform: translate(-50%, -4px);
47
38
  transform: translate(-50%, -4px);
48
39
  }
49
40
 
50
41
  &[data-tooltip-position="bottom"]::after {
51
- top: calc(100%);
42
+ top: calc(100% + 5px);
52
43
  left: 50%;
53
44
  -webkit-transform: translate(-50%, 8px);
54
45
  transform: translate(-50%, 8px);
@@ -72,5 +63,21 @@
72
63
  [data-tooltip=""]::after {
73
64
  display: none;
74
65
  }
66
+
67
+ &.-tooltip-no-wrap:after {
68
+ white-space: nowrap;
69
+ }
70
+
71
+ &.-tooltip-width-sm:after {
72
+ width: toRem(100);
73
+ }
74
+
75
+ &.-tooltip-width-md:after {
76
+ width: toRem(200);
77
+ }
78
+
79
+ &.-tooltip-width-lg:after {
80
+ width: toRem(300);
81
+ }
75
82
  }
76
83
 
@@ -0,0 +1,16 @@
1
+ @use '../abstracts' as *;
2
+
3
+ /* Molecule - info-icon */
4
+
5
+ .m-info-icon {
6
+ display: inline-flex;
7
+ justify-content: center;
8
+ align-items: center;
9
+ position: relative;
10
+ cursor: pointer;
11
+
12
+ width: 1.5rem;
13
+ height: 1.5rem;
14
+ border: 1px solid #3E546A;
15
+ border-radius: 50%;
16
+ }
@@ -0,0 +1,14 @@
1
+ @use '../abstracts' as *;
2
+
3
+ /* Molecule - presentation title */
4
+
5
+ .m-presentation-title {
6
+ display: flex;
7
+
8
+ &__text {
9
+ display: flex;
10
+ padding-top: 0;
11
+ padding-bottom: 0;
12
+ }
13
+ }
14
+
@@ -3,11 +3,7 @@
3
3
  .o-about {
4
4
  position: relative;
5
5
 
6
- .description:hover:after {
7
- cursor: pointer;
8
- }
9
-
10
- .description-tooltip {
6
+ &__tooltip {
11
7
  position: absolute;
12
8
  max-width: 50vw;
13
9
  visibility: hidden;
@@ -62,30 +58,12 @@
62
58
  }
63
59
  }
64
60
 
65
- .description:hover + .description-tooltip {
61
+ .m-info-icon:hover + &__tooltip {
66
62
  visibility: visible;
67
63
  transition: opacity 0.2s ease;
68
64
  opacity: 1;
69
65
  }
70
66
 
71
- .title-container {
72
- display: flex;
73
- }
74
-
75
- .info-icon {
76
- position: relative;
77
- width: 1.5rem;
78
- height: 1.5rem;
79
- border-radius: 50%;
80
- border: 1px solid #3E546A;
81
- cursor: pointer;
82
- display: inline-flex;
83
- justify-content: center;
84
- align-items: center;
85
- align-self: center;
86
- margin: 0 1rem;
87
- }
88
-
89
67
  &__line {
90
68
  display: flex;
91
69
  flex-direction: row;
package/styles/main.scss CHANGED
@@ -35,10 +35,12 @@
35
35
  @use 'components/m-form-label-field' as *;
36
36
  @use 'components/m-form-radio-group' as *;
37
37
  @use 'components/m-image-selector' as *;
38
+ @use 'components/m-info-icon' as *;
38
39
  @use 'components/m-metadata-tag' as *;
39
40
  @use 'components/m-minus-plus' as *;
40
41
  @use 'components/m-minus-plus' as *;
41
42
  @use 'components/m-nav-links' as *;
43
+ @use 'components/m-presentation-title' as *;
42
44
  @use 'components/m-snackbar' as *;
43
45
  @use 'components/m-time-picker' as *;
44
46
  @use 'components/m-toolbox' as *;
@@ -2,11 +2,3 @@
2
2
  @use '../abstracts-theme' as *;
3
3
 
4
4
  /* Theme Organism - pry-dataset */
5
-
6
- .description-tooltip {
7
- background-color: #fff;
8
- }
9
-
10
- .info-icon {
11
- //background-color: #ccc;
12
- }
@@ -31,7 +31,7 @@
31
31
  }
32
32
  }
33
33
 
34
- .more-actions {
34
+ .more-button {
35
35
  background: transparent;
36
36
 
37
37
  .a-btn {
@@ -5,3 +5,13 @@
5
5
  .o-catalog {
6
6
  border-right-color: themed($theme-map, 'color', 'primary', 300);
7
7
  }
8
+
9
+ .o-restitution {
10
+ .more-button {
11
+ background: transparent;
12
+
13
+ .a-btn {
14
+ background-color: themed($theme-map, 'color', 'primary', 50);
15
+ }
16
+ }
17
+ }
@@ -1,34 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { ClassActions, ClassSelectors } from '@provoly/dashboard';
3
- import { SupervisionActions } from '../../store/supervision.actions';
4
- import { SupervisionSelectors } from '../../store/supervision.selectors';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngrx/store";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@provoly/dashboard";
9
- export class SupervisionBusinessDataComponent {
10
- constructor(store) {
11
- this.store = store;
12
- this.sortActive = 'name';
13
- this.sortDirection = 'asc';
14
- this.store.dispatch(ClassActions.loadBusinessData());
15
- this.datas$ = this.store.select(ClassSelectors.classDatas);
16
- this.loading$ = this.store.select(SupervisionSelectors.loading);
17
- this.store.dispatch(SupervisionActions.mainActions({
18
- actions: [
19
- {
20
- action: ClassActions.loadBusinessData(),
21
- label: 'refresh',
22
- icon: 'synchro'
23
- }
24
- ]
25
- }));
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupervisionBusinessDataComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SupervisionBusinessDataComponent, selector: "pry-supervision-business-data", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.supervision.businessData.title' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.supervision.businessData.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>\n <pry-icon iconSvg=\"detail\"></pry-icon>\n </th>\n <th prySortHeader=\"name\">{{ '@pry.supervision.businessData.name' | i18n }}</th>\n <th prySortHeader=\"count\">{{ '@pry.supervision.businessData.count' | i18n }}</th>\n <th prySortHeader=\"date\">{{ '@pry.supervision.businessData.date' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let data of datas$ | async | prySortData: sortActive : sortDirection\">\n <td>\n <ng-container *ngIf=\"data.icon; else noImg\">\n <img [height]=\"25\" [width]=\"25\" [src]=\"data.icon | getSecuredImage | async\" [alt]=\"data.title\" />\n </ng-container>\n <ng-template #noImg>\n <img\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"data.id | translateId: { type: 'class', output: 'icon' } | async\"\n [alt]=\"data.title\"\n />\n </ng-template>\n </td>\n <td>{{ data.name }}</td>\n <td>{{ data.count }}</td>\n <td>\n {{ !data.date ? '' : (data.date | date: ('@pry.format.datetime' | i18n)) }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i3.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i3.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i3.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i3.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupervisionBusinessDataComponent, decorators: [{
31
- type: Component,
32
- args: [{ selector: 'pry-supervision-business-data', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.supervision.businessData.title' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.supervision.businessData.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>\n <pry-icon iconSvg=\"detail\"></pry-icon>\n </th>\n <th prySortHeader=\"name\">{{ '@pry.supervision.businessData.name' | i18n }}</th>\n <th prySortHeader=\"count\">{{ '@pry.supervision.businessData.count' | i18n }}</th>\n <th prySortHeader=\"date\">{{ '@pry.supervision.businessData.date' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let data of datas$ | async | prySortData: sortActive : sortDirection\">\n <td>\n <ng-container *ngIf=\"data.icon; else noImg\">\n <img [height]=\"25\" [width]=\"25\" [src]=\"data.icon | getSecuredImage | async\" [alt]=\"data.title\" />\n </ng-container>\n <ng-template #noImg>\n <img\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"data.id | translateId: { type: 'class', output: 'icon' } | async\"\n [alt]=\"data.title\"\n />\n </ng-template>\n </td>\n <td>{{ data.name }}</td>\n <td>{{ data.count }}</td>\n <td>\n {{ !data.date ? '' : (data.date | date: ('@pry.format.datetime' | i18n)) }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
33
- }], ctorParameters: function () { return [{ type: i1.Store }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwZXJ2aXNpb24tYnVzaW5lc3MtZGF0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9zdXBlcnZpc2lvbi9jb21wb25lbnRzL3N1cGVydmlzaW9uLWJ1c2luZXNzLWRhdGEvc3VwZXJ2aXNpb24tYnVzaW5lc3MtZGF0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9zdXBlcnZpc2lvbi9jb21wb25lbnRzL3N1cGVydmlzaW9uLWJ1c2luZXNzLWRhdGEvc3VwZXJ2aXNpb24tYnVzaW5lc3MtZGF0YS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQU16RSxNQUFNLE9BQU8sZ0NBQWdDO0lBTzNDLFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFIckMsZUFBVSxHQUFJLE1BQU0sQ0FBQztRQUNyQixrQkFBYSxHQUFJLEtBQUssQ0FBQztRQUdyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztZQUM3QixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsTUFBTSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDdkMsS0FBSyxFQUFFLFNBQVM7b0JBQ2hCLElBQUksRUFBRSxTQUFTO2lCQUNoQjthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQXRCVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQyxxRUNYN0Msb3REQW1EQTs7NEZEeENhLGdDQUFnQztrQkFKNUMsU0FBUzsrQkFDRSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQnVzaW5lc3NEYXRhLCBDbGFzc0FjdGlvbnMsIENsYXNzU2VsZWN0b3JzIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1cGVydmlzaW9uQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL3N1cGVydmlzaW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgU3VwZXJ2aXNpb25TZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9zdXBlcnZpc2lvbi5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktc3VwZXJ2aXNpb24tYnVzaW5lc3MtZGF0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXBlcnZpc2lvbi1idXNpbmVzcy1kYXRhLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdXBlcnZpc2lvbkJ1c2luZXNzRGF0YUNvbXBvbmVudCB7XG4gIGRhdGFzJDogT2JzZXJ2YWJsZTxCdXNpbmVzc0RhdGFbXT47XG4gIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHNvcnRBY3RpdmU/ID0gJ25hbWUnO1xuICBzb3J0RGlyZWN0aW9uPyA9ICdhc2MnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENsYXNzQWN0aW9ucy5sb2FkQnVzaW5lc3NEYXRhKCkpO1xuICAgIHRoaXMuZGF0YXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NEYXRhcyk7XG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFN1cGVydmlzaW9uU2VsZWN0b3JzLmxvYWRpbmcpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBTdXBlcnZpc2lvbkFjdGlvbnMubWFpbkFjdGlvbnMoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWN0aW9uOiBDbGFzc0FjdGlvbnMubG9hZEJ1c2luZXNzRGF0YSgpLFxuICAgICAgICAgICAgbGFiZWw6ICdyZWZyZXNoJyxcbiAgICAgICAgICAgIGljb246ICdzeW5jaHJvJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1iYXNlLWNvbnRhaW5lclwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgJ0Bwcnkuc3VwZXJ2aXNpb24uYnVzaW5lc3NEYXRhLnRpdGxlJyB8IGkxOG4gfX08L2gxPlxuICA8dGFibGVcbiAgICBjbGFzcz1cImEtdGFibGVcIlxuICAgIHByeVNvcnRUYWJsZVxuICAgIHByeVNvcnRBY3RpdmU9XCJuYW1lXCJcbiAgICBwcnlTb3J0RGlyZWN0aW9uPVwiYXNjXCJcbiAgICAocHJ5U29ydENoYW5nZSk9XCJzb3J0QWN0aXZlID0gJGV2ZW50LmFjdGl2ZTsgc29ydERpcmVjdGlvbiA9ICRldmVudC5kaXJlY3Rpb25cIlxuICA+XG4gICAgPGNhcHRpb24+XG4gICAgICB7e1xuICAgICAgICAnQHByeS5zdXBlcnZpc2lvbi5idXNpbmVzc0RhdGEudGl0bGUnIHwgaTE4blxuICAgICAgfX0sXG4gICAgICB7e1xuICAgICAgICAnQHByeS5hY3Rpb24uc29ydGFibGVDb2x1bW5IZWFkZXInIHwgaTE4blxuICAgICAgfX1cbiAgICA8L2NhcHRpb24+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGg+XG4gICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkZXRhaWxcIj48L3ByeS1pY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggcHJ5U29ydEhlYWRlcj1cIm5hbWVcIj57eyAnQHByeS5zdXBlcnZpc2lvbi5idXNpbmVzc0RhdGEubmFtZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgPHRoIHByeVNvcnRIZWFkZXI9XCJjb3VudFwiPnt7ICdAcHJ5LnN1cGVydmlzaW9uLmJ1c2luZXNzRGF0YS5jb3VudCcgfCBpMThuIH19PC90aD5cbiAgICAgICAgPHRoIHByeVNvcnRIZWFkZXI9XCJkYXRlXCI+e3sgJ0Bwcnkuc3VwZXJ2aXNpb24uYnVzaW5lc3NEYXRhLmRhdGUnIHwgaTE4biB9fTwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCBkYXRhIG9mIGRhdGFzJCB8IGFzeW5jIHwgcHJ5U29ydERhdGE6IHNvcnRBY3RpdmUgOiBzb3J0RGlyZWN0aW9uXCI+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5pY29uOyBlbHNlIG5vSW1nXCI+XG4gICAgICAgICAgICA8aW1nIFtoZWlnaHRdPVwiMjVcIiBbd2lkdGhdPVwiMjVcIiBbc3JjXT1cImRhdGEuaWNvbiB8IGdldFNlY3VyZWRJbWFnZSB8IGFzeW5jXCIgW2FsdF09XCJkYXRhLnRpdGxlXCIgLz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1nPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjI1XCJcbiAgICAgICAgICAgICAgW3dpZHRoXT1cIjI1XCJcbiAgICAgICAgICAgICAgW3NyY109XCJkYXRhLmlkIHwgdHJhbnNsYXRlSWQ6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnaWNvbicgfSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgW2FsdF09XCJkYXRhLnRpdGxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPnt7IGRhdGEubmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyBkYXRhLmNvdW50IH19PC90ZD5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIHt7ICFkYXRhLmRhdGUgPyAnJyA6IChkYXRhLmRhdGUgfCBkYXRlOiAoJ0BwcnkuZm9ybWF0LmRhdGV0aW1lJyB8IGkxOG4pKSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=