@provoly/dashboard 0.13.9 → 0.13.10

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 (106) hide show
  1. package/admin/admin.module.d.ts +2 -1
  2. package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +5 -13
  3. package/admin/components/admin-metadata-rules/admin-edit-metadata-rules/admin-edit-metadata-rules.component.d.ts +1 -1
  4. package/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.d.ts +1 -1
  5. package/admin/components/admin-user/admin-user-select/admin-user-select.component.d.ts +4 -9
  6. package/admin/components/association/association.component.d.ts +1 -3
  7. package/admin/store/admin.effects.d.ts +19 -15
  8. package/admin/store/admin.service.d.ts +0 -3
  9. package/components/metadata-editor/index.d.ts +5 -0
  10. package/components/metadata-editor/metadata-editor.component.d.ts +36 -0
  11. package/components/metadata-editor/metadata-editor.module.d.ts +12 -0
  12. package/components/metadata-editor/public-api.d.ts +7 -0
  13. package/components/metadata-editor/store/metadata.action.d.ts +112 -0
  14. package/components/metadata-editor/store/metadata.effects.d.ts +48 -0
  15. package/{admin/components/admin-metadata → components/metadata-editor}/store/metadata.reducer.d.ts +2 -1
  16. package/{admin/components/admin-metadata → components/metadata-editor}/store/metadata.selector.d.ts +1 -0
  17. package/components/metadata-editor/store/metadata.service.d.ts +15 -0
  18. package/dataset/i18n/en.translations.d.ts +1 -0
  19. package/dataset/i18n/fr.translations.d.ts +1 -0
  20. package/dataset/style/_o-pry-dataset-card.scss +7 -0
  21. package/esm2022/admin/admin.module.mjs +9 -17
  22. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +2 -2
  23. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +2 -2
  24. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-view/admin-abac-rules-view.component.mjs +2 -2
  25. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +2 -2
  26. package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +2 -2
  27. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +21 -77
  28. package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +2 -3
  29. package/esm2022/admin/components/admin-metadata/admin-metadata.component.mjs +2 -3
  30. package/esm2022/admin/components/admin-metadata/admin-new-metadata/admin-new-metadata.component.mjs +2 -2
  31. package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +2 -3
  32. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +2 -2
  33. package/esm2022/admin/components/admin-metadata-rules/admin-edit-metadata-rules/admin-edit-metadata-rules.component.mjs +1 -1
  34. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +2 -3
  35. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +17 -65
  36. package/esm2022/admin/components/association/association.component.mjs +1 -4
  37. package/esm2022/admin/store/admin.effects.mjs +6 -2
  38. package/esm2022/admin/store/admin.service.mjs +1 -16
  39. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +111 -0
  40. package/esm2022/components/metadata-editor/metadata-editor.module.mjs +47 -0
  41. package/esm2022/components/metadata-editor/provoly-dashboard-components-metadata-editor.mjs +5 -0
  42. package/esm2022/components/metadata-editor/public-api.mjs +8 -0
  43. package/esm2022/components/metadata-editor/store/metadata.action.mjs +27 -0
  44. package/esm2022/components/metadata-editor/store/metadata.effects.mjs +44 -0
  45. package/esm2022/components/metadata-editor/store/metadata.reducer.mjs +39 -0
  46. package/esm2022/components/metadata-editor/store/metadata.selector.mjs +19 -0
  47. package/esm2022/components/metadata-editor/store/metadata.service.mjs +36 -0
  48. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +3 -3
  49. package/esm2022/dataset/i18n/en.translations.mjs +3 -2
  50. package/esm2022/dataset/i18n/fr.translations.mjs +3 -2
  51. package/esm2022/dataset/style/css.component.mjs +2 -2
  52. package/esm2022/import/components/import.component.mjs +8 -4
  53. package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +3 -12
  54. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
  55. package/esm2022/lib/dashboard/store/manifest.service.mjs +2 -2
  56. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  57. package/esm2022/toolbox/components/toolbox-action-instanciator/toolbox-action-instanciator.component.mjs +31 -17
  58. package/esm2022/toolbox/components/toolbox.component.mjs +20 -14
  59. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +45 -13
  60. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +3 -1
  61. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +3 -1
  62. package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +2 -2
  63. package/esm2022/widgets/widget-map/public-api.mjs +3 -1
  64. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +56 -0
  65. package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +32 -0
  66. package/fesm2022/provoly-dashboard-admin.mjs +107 -370
  67. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  68. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +302 -0
  69. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -0
  70. package/fesm2022/provoly-dashboard-dataset.mjs +8 -6
  71. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  72. package/fesm2022/provoly-dashboard-import.mjs +7 -3
  73. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  74. package/fesm2022/provoly-dashboard-toolbox.mjs +49 -29
  75. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  76. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +104 -13
  77. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  78. package/fesm2022/provoly-dashboard.mjs +6 -13
  79. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  80. package/import/components/import.component.d.ts +5 -3
  81. package/lib/core/components/modal-status/modal-status.component.d.ts +0 -8
  82. package/lib/core/model/widget-map-manifest.interface.d.ts +2 -0
  83. package/package.json +19 -13
  84. package/toolbox/components/toolbox-action-instanciator/toolbox-action-instanciator.component.d.ts +7 -5
  85. package/toolbox/components/toolbox.component.d.ts +10 -5
  86. package/widgets/widget-map/component/widget-map.component.d.ts +4 -1
  87. package/widgets/widget-map/i18n/en.translations.d.ts +2 -0
  88. package/widgets/widget-map/i18n/fr.translations.d.ts +2 -0
  89. package/widgets/widget-map/public-api.d.ts +2 -0
  90. package/widgets/widget-map/utils/cql-utils.class.d.ts +6 -0
  91. package/admin/components/admin-dataset/store/admin-dataset.actions.d.ts +0 -59
  92. package/admin/components/admin-dataset/store/admin-dataset.effects.d.ts +0 -30
  93. package/admin/components/admin-dataset/store/admin-dataset.reducer.d.ts +0 -6
  94. package/admin/components/admin-dataset/store/admin-dataset.selector.d.ts +0 -5
  95. package/admin/components/admin-metadata/store/metadata.action.d.ts +0 -56
  96. package/admin/components/admin-metadata/store/metadata.effects.d.ts +0 -36
  97. package/esm2022/admin/components/admin-dataset/store/admin-dataset.actions.mjs +0 -14
  98. package/esm2022/admin/components/admin-dataset/store/admin-dataset.effects.mjs +0 -36
  99. package/esm2022/admin/components/admin-dataset/store/admin-dataset.reducer.mjs +0 -11
  100. package/esm2022/admin/components/admin-dataset/store/admin-dataset.selector.mjs +0 -9
  101. package/esm2022/admin/components/admin-metadata/store/metadata.action.mjs +0 -19
  102. package/esm2022/admin/components/admin-metadata/store/metadata.effects.mjs +0 -33
  103. package/esm2022/admin/components/admin-metadata/store/metadata.reducer.mjs +0 -35
  104. package/esm2022/admin/components/admin-metadata/store/metadata.selector.mjs +0 -17
  105. package/esm2022/widgets/widget-map/pipe/xml-utils.class.mjs +0 -32
  106. /package/widgets/widget-map/{pipe → utils}/xml-utils.class.d.ts +0 -0
@@ -16,6 +16,8 @@ import * as i4 from '@provoly/dashboard';
16
16
  import { ClassSelectors, FieldSelectors, FieldType, ClassActions, FieldActions, SubscriptionnerDirective, ConfigSelectors, ConfigActions, DEFAULT_ICON_URL, IconPosition, compareOperationFunctions, ItemUtils, CategoryActions, CategorySelectors, DEFAULT_CATEGORY_UUID, DataSourceActions, DataSourceSelectors, PryDatasetType, ENV_OPTIONS, FIELD_OPTIONS, META_OPTIONS, RelationTypesSelectors, RelationTypesActions, BaseMenuComponent, BaseLayoutComponent, PRY_ACCESS_GUARD, PryDialogConfirmComponent, PrySortModule, PryIconModule, PryModalModule, PryI18nModule, PryCoreModule, PrySelectModule, PryToggleModule, PryOverlayModule } from '@provoly/dashboard';
17
17
  import * as i5$1 from '@provoly/dashboard/components/checkbox';
18
18
  import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
19
+ import * as i5$2 from '@provoly/dashboard/components/metadata-editor';
20
+ import { MetadataSelectors, MetadataActions, PryExpandPanelModule } from '@provoly/dashboard/components/metadata-editor';
19
21
  import * as i2 from '@angular/router';
20
22
  import { RouterModule } from '@angular/router';
21
23
  import { switchMap, mergeMap, combineLatest, of, map, filter, combineLatestWith, Subscription, BehaviorSubject, Subject, zip, takeUntil, catchError, withLatestFrom, tap } from 'rxjs';
@@ -42,44 +44,26 @@ const AdminActions = {
42
44
  fetchAssociationsFailure: createAction('[Admin] Fetch Associations failure', props())
43
45
  };
44
46
 
45
- const BASE$2 = '[Admin/User]';
46
- const BASEAPI$2 = '[Admin/User Api]';
47
+ const BASE$1 = '[Admin/User]';
48
+ const BASEAPI$1 = '[Admin/User Api]';
47
49
  const AdminMetadataUserActions = {
48
- loadMetadata: createAction(`${BASE$2} Load Metadata`),
49
- loadMetadataSuccess: createAction(`${BASEAPI$2} Load Metadata Success`, props()),
50
- loadMetadataFailure: createAction(`${BASEAPI$2} Load Metadata Failure`, props()),
51
- selectMetadata: createAction(`${BASE$2} Select Metadata`, props()),
52
- unselectMetadata: createAction(`${BASE$2} unSelect Metadata`),
53
- createMetadata: createAction(`${BASE$2} create metadata`, props()),
54
- createMetadataSuccess: createAction(`${BASEAPI$2} create metadata Success`, props()),
55
- createMetadataFailure: createAction(`${BASEAPI$2} create metadata Failure`, props()),
56
- goToDetailsViewMetadata: createAction(`${BASE$2} go to details view metadata`, props()),
57
- goToDetailsViewMetadataSuccess: createAction(`${BASEAPI$2} go to details view metadata success`, props()),
58
- goToDetailsViewMetadataFailure: createAction(`${BASEAPI$2} go to details view metadata failure`, props()),
59
- goToEditMetadata: createAction(`${BASE$2} go to edit view`, props()),
60
- goToEditMetadataSuccess: createAction(`${BASE$2} go to edit view success`, props()),
61
- goToEditMetadataFailure: createAction(`${BASE$2} go to edit view failure`, props()),
62
- updateMetadata: createAction(`${BASE$2} update meta data`, props()),
63
- updateMetadataSuccess: createAction(`${BASEAPI$2} update meta data Success`, props()),
64
- updateMetadataFailure: createAction(`${BASEAPI$2} update meta data Failure`, props())
65
- };
66
-
67
- const BASE$1 = '[Admin/Metadata]';
68
- const BASEAPI$1 = '[Admin/Metadata Api]';
69
- const MetadataActions = {
70
50
  loadMetadata: createAction(`${BASE$1} Load Metadata`),
71
51
  loadMetadataSuccess: createAction(`${BASEAPI$1} Load Metadata Success`, props()),
72
52
  loadMetadataFailure: createAction(`${BASEAPI$1} Load Metadata Failure`, props()),
53
+ selectMetadata: createAction(`${BASE$1} Select Metadata`, props()),
73
54
  unselectMetadata: createAction(`${BASE$1} unSelect Metadata`),
74
- goToNewMetadata: createAction(`${BASE$1} go to new metadata`, props()),
75
- goToNewMetadataSuccess: createAction(`${BASEAPI$1} go to new metadata success`),
76
- goToNewMetadataFailure: createAction(`${BASEAPI$1} go to new metadata failure`, props()),
77
55
  createMetadata: createAction(`${BASE$1} create metadata`, props()),
78
56
  createMetadataSuccess: createAction(`${BASEAPI$1} create metadata Success`, props()),
79
57
  createMetadataFailure: createAction(`${BASEAPI$1} create metadata Failure`, props()),
80
- goToDetailsView: createAction(`${BASE$1} go to details view`, props()),
81
- goToDetailsViewSuccess: createAction(`${BASEAPI$1} go to details view success`, props()),
82
- goToDetailsViewFailure: createAction(`${BASEAPI$1} go to details view failure`, props())
58
+ goToDetailsViewMetadata: createAction(`${BASE$1} go to details view metadata`, props()),
59
+ goToDetailsViewMetadataSuccess: createAction(`${BASEAPI$1} go to details view metadata success`, props()),
60
+ goToDetailsViewMetadataFailure: createAction(`${BASEAPI$1} go to details view metadata failure`, props()),
61
+ goToEditMetadata: createAction(`${BASE$1} go to edit view`, props()),
62
+ goToEditMetadataSuccess: createAction(`${BASE$1} go to edit view success`, props()),
63
+ goToEditMetadataFailure: createAction(`${BASE$1} go to edit view failure`, props()),
64
+ updateMetadata: createAction(`${BASE$1} update meta data`, props()),
65
+ updateMetadataSuccess: createAction(`${BASEAPI$1} update meta data Success`, props()),
66
+ updateMetadataFailure: createAction(`${BASEAPI$1} update meta data Failure`, props())
83
67
  };
84
68
 
85
69
  const PredicatesActions = {
@@ -159,15 +143,15 @@ const predicateReducer = createReducer(initialPredicateState, on(PredicatesActio
159
143
  loading: false
160
144
  })));
161
145
 
162
- const feature$b = createFeatureSelector(predicatesFeatureKey);
163
- const predicates = createSelector(feature$b, (state) => state?.predicates);
164
- const loading$6 = createSelector(feature$b, (state) => state?.loading);
165
- const currentPredicate = createSelector(feature$b, (state) => state?.currentPredicate);
146
+ const feature$9 = createFeatureSelector(predicatesFeatureKey);
147
+ const predicates = createSelector(feature$9, (state) => state?.predicates);
148
+ const loading$5 = createSelector(feature$9, (state) => state?.loading);
149
+ const currentPredicate = createSelector(feature$9, (state) => state?.currentPredicate);
166
150
  const currentPredicateId = createSelector(currentPredicate, (pred) => pred?.id);
167
151
  const PredicatesSelectors = {
168
- feature: feature$b,
152
+ feature: feature$9,
169
153
  predicates,
170
- loading: loading$6,
154
+ loading: loading$5,
171
155
  currentPredicate,
172
156
  currentPredicateId
173
157
  };
@@ -280,11 +264,11 @@ const abacRuleReducer = createReducer(initialAbacRuleState, on(AbacRulesActions.
280
264
  };
281
265
  }));
282
266
 
283
- const feature$a = createFeatureSelector(abacRulesFeatureKey);
284
- const abacRules = createSelector(feature$a, (state) => state?.abacRules);
285
- const loading$5 = createSelector(feature$a, (state) => state?.loading);
286
- const editAbacRule = createSelector(feature$a, (state) => state?.editAbacRule);
287
- const editAbacRuleConditions = createSelector(feature$a, (state) => state?.editAbacRuleConditions);
267
+ const feature$8 = createFeatureSelector(abacRulesFeatureKey);
268
+ const abacRules = createSelector(feature$8, (state) => state?.abacRules);
269
+ const loading$4 = createSelector(feature$8, (state) => state?.loading);
270
+ const editAbacRule = createSelector(feature$8, (state) => state?.editAbacRule);
271
+ const editAbacRuleConditions = createSelector(feature$8, (state) => state?.editAbacRuleConditions);
288
272
  const editAbacRuleType = createSelector(editAbacRule, (rule) => rule?.type);
289
273
  const editAbacRuleConditionsMasterId = createSelector(editAbacRuleConditions, (conditions) => conditions?.masterId);
290
274
  const editAbacRuleConditionsTypeSelected = createSelector(editAbacRuleConditions, (conditions) => (conditions?.ids ?? []).find((id) => ['METADATA', 'ATTRIBUTE'].includes(conditions.entities[id].type)));
@@ -295,9 +279,9 @@ const editAbacRuleConditionsFirstAttribute = createSelector(editAbacRuleConditio
295
279
  });
296
280
  const editAbacRuleConditionsById = (id) => createSelector(editAbacRuleConditions, (conditions) => conditions.entities[id]);
297
281
  const AbacRulesSelectors = {
298
- feature: feature$a,
282
+ feature: feature$8,
299
283
  abacRules,
300
- loading: loading$5,
284
+ loading: loading$4,
301
285
  editAbacRule,
302
286
  editAbacRuleConditions,
303
287
  editAbacRuleType,
@@ -307,54 +291,6 @@ const AbacRulesSelectors = {
307
291
  editAbacRuleConditionsById
308
292
  };
309
293
 
310
- const metadataFeatureKey = '@pry/admin/metadata';
311
- const initialMetadataState = {
312
- metadata: [],
313
- selectedMetadata: null,
314
- loading: false,
315
- errors: null
316
- };
317
- /**
318
- * @TODO merge this store with admin user store ?
319
- */
320
- const metadataReducer = createReducer(initialMetadataState, on(MetadataActions.loadMetadataSuccess, (state, action) => ({
321
- ...state,
322
- metadata: [...action.metadata],
323
- loading: false
324
- })), on(MetadataActions.loadMetadataFailure, MetadataActions.goToNewMetadataFailure, MetadataActions.createMetadataFailure, MetadataActions.goToDetailsViewFailure, (state, action) => ({
325
- ...state,
326
- loading: false,
327
- errors: action.error
328
- })), on(MetadataActions.unselectMetadata, (state) => ({
329
- ...state,
330
- selectedMetadata: null
331
- })), on(MetadataActions.loadMetadata, MetadataActions.goToNewMetadata, (state) => ({
332
- ...state,
333
- loading: true
334
- })), on(MetadataActions.createMetadataSuccess, (state, action) => ({
335
- ...state,
336
- metadata: [...state.metadata, action.metadata],
337
- loading: false
338
- })), on(MetadataActions.goToDetailsView, (state, action) => ({
339
- ...state,
340
- selectedMetadata: action.id
341
- })));
342
-
343
- const feature$9 = createFeatureSelector(metadataFeatureKey);
344
- const metadata$1 = createSelector(feature$9, (state) => state?.metadata);
345
- const loading$4 = createSelector(feature$9, (state) => state?.loading);
346
- const selectedMetadata$1 = createSelector(feature$9, (state) => state?.metadata.find((x) => x.id === state.selectedMetadata) || null);
347
- const selectedMetadataId$1 = createSelector(selectedMetadata$1, (metadata) => metadata?.id);
348
- const selectMetadataById = (id) => createSelector(metadata$1, (metadata) => metadata?.find((m) => m.id === id));
349
- const MetadataSelectors = {
350
- feature: feature$9,
351
- loading: loading$4,
352
- metadata: metadata$1,
353
- selectedMetadata: selectedMetadata$1,
354
- selectedMetadataId: selectedMetadataId$1,
355
- selectMetadataById
356
- };
357
-
358
294
  class SelectMetadataComponent {
359
295
  constructor(store) {
360
296
  this.store = store;
@@ -528,19 +464,19 @@ const adminMetadataUserReducer = createReducer(initialAdminUserState$1, on(Admin
528
464
  loading: false
529
465
  })));
530
466
 
531
- const feature$8 = createFeatureSelector(adminMetadataUserFeatureKey);
532
- const metadata = createSelector(feature$8, (state) => state?.metadata);
533
- const loading$3 = createSelector(feature$8, (state) => state?.loading);
534
- const selectedMetadata = createSelector(feature$8, (state) => state?.metadata.find((x) => x.id === state.selectedMetadata) || null);
467
+ const feature$7 = createFeatureSelector(adminMetadataUserFeatureKey);
468
+ const metadata = createSelector(feature$7, (state) => state?.metadata);
469
+ const loading$3 = createSelector(feature$7, (state) => state?.loading);
470
+ const selectedMetadata = createSelector(feature$7, (state) => state?.metadata.find((x) => x.id === state.selectedMetadata) || null);
535
471
  const selectedMetadataId = createSelector(selectedMetadata, (metadata) => metadata?.id);
536
- const editable$2 = createSelector(feature$8, (state) => ({ value: state?.editable }));
472
+ const editable$1 = createSelector(feature$7, (state) => ({ value: state?.editable }));
537
473
  const AdminMetadataUserSelectors = {
538
- feature: feature$8,
474
+ feature: feature$7,
539
475
  loading: loading$3,
540
476
  metadata,
541
477
  selectedMetadata,
542
478
  selectedMetadataId,
543
- editable: editable$2
479
+ editable: editable$1
544
480
  };
545
481
 
546
482
  class MetadataConditionComponent {
@@ -1071,17 +1007,17 @@ const classReducer = createReducer(initialClassState, on(AdminClassActions.selec
1071
1007
  selectedAttribute: undefined
1072
1008
  })));
1073
1009
 
1074
- const feature$7 = createFeatureSelector(classesFeatureKey);
1075
- const loading$2 = createSelector(feature$7, (state) => state?.loading);
1076
- const selectedClass = createSelector(feature$7, (state) => state?.selectedClass);
1010
+ const feature$6 = createFeatureSelector(classesFeatureKey);
1011
+ const loading$2 = createSelector(feature$6, (state) => state?.loading);
1012
+ const selectedClass = createSelector(feature$6, (state) => state?.selectedClass);
1077
1013
  const selectedClassId = createSelector(selectedClass, (state) => state?.id);
1078
- const selectedAttribute = createSelector(feature$7, (state) => state?.selectedAttribute);
1014
+ const selectedAttribute = createSelector(feature$6, (state) => state?.selectedAttribute);
1079
1015
  const selectedAttributeId = createSelector(selectedAttribute, (state) => state?.id);
1080
- const interClass = createSelector(feature$7, (state) => state?.interClass);
1016
+ const interClass = createSelector(feature$6, (state) => state?.interClass);
1081
1017
  const interClassId = createSelector(interClass, (state) => state?.id);
1082
- const openModal = createSelector(feature$7, (state) => state.openModal);
1018
+ const openModal = createSelector(feature$6, (state) => state.openModal);
1083
1019
  const AdminClassSelectors = {
1084
- feature: feature$7,
1020
+ feature: feature$6,
1085
1021
  loading: loading$2,
1086
1022
  selectedClass,
1087
1023
  selectedClassId,
@@ -2195,13 +2131,13 @@ const environmentReducer = createReducer(initialEnvironmentState, on(Environment
2195
2131
  loading: false
2196
2132
  })));
2197
2133
 
2198
- const feature$6 = createFeatureSelector(environmentFeatureKey);
2199
- const environments = createSelector(feature$6, (state) => state?.environments);
2200
- const loading$1 = createSelector(feature$6, (state) => state?.loading);
2201
- const currentEnv = createSelector(feature$6, (state) => state?.currentEnv);
2134
+ const feature$5 = createFeatureSelector(environmentFeatureKey);
2135
+ const environments = createSelector(feature$5, (state) => state?.environments);
2136
+ const loading$1 = createSelector(feature$5, (state) => state?.loading);
2137
+ const currentEnv = createSelector(feature$5, (state) => state?.currentEnv);
2202
2138
  const currentEnvName = createSelector(currentEnv, (env) => env?.name);
2203
2139
  const EnvironmentSelectors = {
2204
- feature: feature$6,
2140
+ feature: feature$5,
2205
2141
  environments,
2206
2142
  loading: loading$1,
2207
2143
  currentEnv,
@@ -2509,12 +2445,12 @@ const fieldReducer = createReducer(initialFieldState, on(FieldsActions.selectFie
2509
2445
  selectedField: undefined
2510
2446
  })));
2511
2447
 
2512
- const feature$5 = createFeatureSelector(fieldsFeatureKey);
2513
- const loading = createSelector(feature$5, (state) => state?.loading);
2514
- const selectedField = createSelector(feature$5, (state) => state?.selectedField);
2448
+ const feature$4 = createFeatureSelector(fieldsFeatureKey);
2449
+ const loading = createSelector(feature$4, (state) => state?.loading);
2450
+ const selectedField = createSelector(feature$4, (state) => state?.selectedField);
2515
2451
  const selectedFieldId = createSelector(selectedField, (state) => state?.id);
2516
2452
  const FieldsSelectors = {
2517
- feature: feature$5,
2453
+ feature: feature$4,
2518
2454
  loading,
2519
2455
  selectedField,
2520
2456
  selectedFieldId
@@ -2616,15 +2552,15 @@ const adminReducer = createReducer(initialAdminState, on(AdminActions.highlightM
2616
2552
  selectedAssociation: action.association
2617
2553
  })));
2618
2554
 
2619
- const feature$4 = createFeatureSelector(adminFeatureKey);
2620
- const highlightedMenu = createSelector(feature$4, (state) => state?.highlightedMenu);
2621
- const menuOpen = createSelector(feature$4, (state) => state.menuOpen);
2622
- const menus = createSelector(feature$4, (state) => state?.menus);
2623
- const actions = createSelector(feature$4, (state) => state.actions);
2624
- const subActions = createSelector(feature$4, (state) => state.subActions);
2625
- const panelOpen = createSelector(feature$4, (state) => state.panelOpen);
2626
- const componentType = createSelector(feature$4, (state) => state?.componentType);
2627
- const subMenus = createSelector(feature$4, (state) => state?.menus.reduce((p, c) => {
2555
+ const feature$3 = createFeatureSelector(adminFeatureKey);
2556
+ const highlightedMenu = createSelector(feature$3, (state) => state?.highlightedMenu);
2557
+ const menuOpen = createSelector(feature$3, (state) => state.menuOpen);
2558
+ const menus = createSelector(feature$3, (state) => state?.menus);
2559
+ const actions = createSelector(feature$3, (state) => state.actions);
2560
+ const subActions = createSelector(feature$3, (state) => state.subActions);
2561
+ const panelOpen = createSelector(feature$3, (state) => state.panelOpen);
2562
+ const componentType = createSelector(feature$3, (state) => state?.componentType);
2563
+ const subMenus = createSelector(feature$3, (state) => state?.menus.reduce((p, c) => {
2628
2564
  const key = c.subMenu ?? 'none';
2629
2565
  let menu = p.find((menu) => menu.name === key);
2630
2566
  if (!menu) {
@@ -2634,9 +2570,9 @@ const subMenus = createSelector(feature$4, (state) => state?.menus.reduce((p, c)
2634
2570
  menu.subMenus.push(c);
2635
2571
  return p;
2636
2572
  }, []));
2637
- const selectedAssociation = createSelector(feature$4, (state) => state?.selectedAssociation);
2573
+ const selectedAssociation = createSelector(feature$3, (state) => state?.selectedAssociation);
2638
2574
  const AdminSelectors = {
2639
- feature: feature$4,
2575
+ feature: feature$3,
2640
2576
  highlightedMenu,
2641
2577
  menuOpen,
2642
2578
  menus,
@@ -2649,9 +2585,6 @@ const AdminSelectors = {
2649
2585
  };
2650
2586
 
2651
2587
  class PryAssociationComponent {
2652
- ngOnInit() {
2653
- console.log(this.associations);
2654
- }
2655
2588
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAssociationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2656
2589
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryAssociationComponent, selector: "pry-association", inputs: { associations: "associations" }, ngImport: i0, template: "<div *ngFor=\"let association of associations?.associations\" class=\"a-container-type\">\n <p class=\"a-label-type {{ association.type }}\">\n <strong>{{ '@pry.admin.association.' + association.type | i18n }}</strong>\n </p>\n <p>\n {{ association.name }}\n </p>\n</div>\n<p *ngIf=\"associations?.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n</p>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
2657
2590
  }
@@ -2833,65 +2766,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
2833
2766
  args: [{ selector: 'pry-admin-attribute-select', template: "<div\n *ngIf=\"selectedAttribute$ | async as attribute\"\n [id]=\"'panel-attr-' + attribute.id\"\n [attr.aria-labelledby]=\"'button-attr-' + attribute.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.classes.attributes.info' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.attributes.name' | i18n }} :\n <strong>{{ attribute.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.attributes.field' | i18n }} :\n <strong>{{ attribute.fieldName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.attributes.category' | i18n }} :\n <strong>{{ attribute.categoryName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.attributes.multiValued' | i18n }} :\n <strong>{{ attribute.multiValued }}</strong>\n </p>\n </div>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"2\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
2834
2767
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2835
2768
 
2836
- const AdminDatasetActions = {
2837
- isEditable: createAction(`[Admin/Datasource] Is editable`, props()),
2838
- loadDatasetMetadata: createAction(`[Admin/Datasource] Load Metadata of selected Datasets`, props()),
2839
- loadDatasetMetadataSuccess: createAction(`[Admin/Datasource] Load Metadata of selected Datasets Success`, props()),
2840
- loadDatasetMetadataFailure: createAction(`[Admin/Datasource] Load Metadata of selected Datasets Failure`, props()),
2841
- addDatasetMetadata: createAction(`[Admin/Datasource] Add Metadata of selected Datasets`, props()),
2842
- addDatasetMetadataSuccess: createAction(`[Admin/Datasource] Add Metadata of selected Datasets Success`, props()),
2843
- addDatasetMetadataFailure: createAction(`[Admin/Datasource] Add Metadata of selected Datasets Failure`, props()),
2844
- deleteDatasetMetadata: createAction(`[Admin/Datasource] Delete Metadata of selected Datasets`, props()),
2845
- deleteDatasetMetadataSuccess: createAction(`[Admin/Datasource] Delete Metadata of selected Datasets Success`, props()),
2846
- deleteDatasetMetadataFailure: createAction(`[Admin/Datasource] Delete Metadata of selected Datasets Failure`, props())
2847
- };
2848
-
2849
- const adminDatasetFeatureKey = '@pry/admin/dataset';
2850
- const initialAdminDatasetState = {
2851
- editable: false
2852
- };
2853
- const adminDatasetReducer = createReducer(initialAdminDatasetState, on(AdminDatasetActions.isEditable, (state, action) => ({
2854
- ...state,
2855
- editable: action.editable
2856
- })));
2857
-
2858
- const feature$3 = createFeatureSelector(adminDatasetFeatureKey);
2859
- const editable$1 = createSelector(feature$3, (state) => state.editable);
2860
- const AdminDatasetSelectors = {
2861
- feature: feature$3,
2862
- editable: editable$1
2863
- };
2864
-
2865
2769
  let nextCompId$8 = 0;
2866
2770
  class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2867
2771
  static { this.id = 'AdminSelectDatasetComponent'; }
2868
- constructor(store, router, route, formBuilder) {
2772
+ constructor(store, router, route) {
2869
2773
  super();
2870
2774
  this.store = store;
2871
2775
  this.router = router;
2872
2776
  this.route = route;
2873
- this.formBuilder = formBuilder;
2874
2777
  this.sub = new Subscription();
2875
2778
  this.currentTypeTranslation = '';
2876
2779
  this.tab = 0;
2877
- this.isSubmitted = false;
2878
- this.datasetId = '';
2879
2780
  this.store.dispatch(MetadataActions.loadMetadata());
2880
2781
  this.selectedDataset$ = this.store.select(DataSourceSelectors.selectedDataset);
2881
2782
  this.datasetMetadata$ = this.store.select(DataSourceSelectors.selectedDatasetMetadata);
2882
2783
  this.associations$ = this.store.select(AdminSelectors.selectedAssociation);
2883
- this.metadata$ = this.store.select(MetadataSelectors.metadata);
2884
- this.editable$ = this.store.select(AdminDatasetSelectors.editable);
2784
+ this.editable$ = this.store.select(MetadataSelectors.editable);
2885
2785
  this.compId = nextCompId$8++;
2886
- this.form = this.formBuilder.group({
2887
- metadata: [{}, [Validators.required]],
2888
- value: ['', [Validators.required, Validators.pattern('^[+-]?[0-9]*$')]]
2889
- });
2890
2786
  }
2891
2787
  ngOnInit() {
2892
2788
  this.subscriptions.add(this.selectedDataset$.subscribe((dataset) => {
2893
2789
  if (dataset) {
2894
- this.datasetId = dataset.id;
2895
2790
  const editPath = this.router.createUrlTree(['.', 'dataset', 'edit', dataset.id], {
2896
2791
  relativeTo: this.route
2897
2792
  });
@@ -2921,21 +2816,6 @@ class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2921
2816
  }));
2922
2817
  }
2923
2818
  }));
2924
- this.subscriptions.add(this.selectedDataset$.subscribe((dataset) => {
2925
- if (dataset) {
2926
- this.availableMetadata$?.subscribe((meta) => {
2927
- this.form.patchValue({
2928
- metadata: meta[0]
2929
- });
2930
- this.onMetaChange(meta[0]);
2931
- this.form.patchValue({ value: '' });
2932
- });
2933
- }
2934
- }));
2935
- this.availableMetadata$ = combineLatest([this.datasetMetadata$, this.metadata$]).pipe(map(([datasetMetadata, metaDefs]) => {
2936
- let datasetMetadataIds = datasetMetadata?.map((u) => u.metadataDef.id);
2937
- return metaDefs.filter((meta) => !datasetMetadataIds?.includes(meta.id));
2938
- }));
2939
2819
  }
2940
2820
  closePanel() {
2941
2821
  const path = this.router.createUrlTree(['.', 'dataset', 'new'], { relativeTo: this.route });
@@ -2954,54 +2834,26 @@ class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2954
2834
  ]
2955
2835
  }));
2956
2836
  }
2957
- addDatasetMetadata() {
2958
- this.isSubmitted = true;
2959
- if (this.form.valid) {
2960
- this.isSubmitted = false;
2961
- let payload = {
2962
- datasetId: this.datasetId,
2963
- metadataId: this.form.value['metadata']['id'],
2964
- value: this.form.value['value']
2965
- };
2966
- this.store.dispatch(AdminDatasetActions.addDatasetMetadata(payload));
2967
- }
2968
- }
2969
- onMetaChange(metadata) {
2970
- if (metadata) {
2971
- if (metadata.type === 'INTEGER') {
2972
- this.form.controls['value'].setValidators([Validators.required, Validators.pattern('^[+-]?[0-9]*$')]);
2973
- }
2974
- else if (metadata.type === 'DOUBLE') {
2975
- this.form.controls['value'].setValidators([Validators.required, Validators.pattern('[+-]?([0-9]*[.])?[0-9]+')]);
2976
- }
2977
- else {
2978
- this.form.controls['value'].setValidators([Validators.required]);
2979
- }
2980
- }
2837
+ switch(number) {
2838
+ this.tab = number;
2981
2839
  }
2982
2840
  removeMetadata(metadata) {
2983
- this.store.dispatch(AdminDatasetActions.deleteDatasetMetadata({ datasetId: this.datasetId, metadataId: metadata.metadataDef.id }));
2984
- }
2985
- editMetadata(currentMetadata) {
2986
- this.store.dispatch(AdminDatasetActions.isEditable({ editable: true }));
2987
- let value = currentMetadata.value;
2988
- let datasetMetadataDef = currentMetadata.metadataDef;
2989
- this.form.patchValue({
2990
- metadata: datasetMetadataDef,
2991
- value: value
2992
- });
2993
- this.onMetaChange(datasetMetadataDef);
2841
+ this.store.dispatch(MetadataActions.deleteDatasetMetadata({ datasetId: metadata.id, metadataId: metadata.metadataId }));
2994
2842
  }
2995
- switch(number) {
2996
- this.tab = number;
2843
+ addDatasetMetadata(metadata) {
2844
+ this.store.dispatch(MetadataActions.addDatasetMetadata({
2845
+ datasetId: metadata.id,
2846
+ metadataId: metadata.metadataId,
2847
+ value: metadata.value
2848
+ }));
2997
2849
  }
2998
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminSelectDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
2999
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminSelectDatasetComponent, selector: "pry-admin-select-dataset", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.metadata.title' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content o-tabs__panels__item__content--profil\">\n <div *ngFor=\"let metadata of datasetMetadata$ | async\">\n <div class=\"o-tabs__panels__item__content\">\n <div class=\"o-tabs__panels__item__content__actions\">\n <div class=\"o-tabs__panels__item__content__actions__text\">\n <span class=\"o-tabs__panels__item__content__actions__text__label\"\n >{{ metadata.metadataDef.name }} :</span\n >\n <span class=\"o-tabs__panels__item__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panels__item__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.edit' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.delete' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"(editable$ | async) ?? false\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid\n ? 'metadata-label metadata-error'\n : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid\n ? 'form-date-label form-date-error'\n : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{\n '@pry.action.choiceInList' | i18n\n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"\n ((editable$ | async) ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata')\n | i18n\n \"\n ></button>\n </div>\n </form>\n </ng-container>\n </ng-container>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2850
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminSelectDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2851
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminSelectDatasetComponent, selector: "pry-admin-select-dataset", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.metadata.title' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [editable]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n ></pry-metadata-editor>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5$2.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["targetId", "editable", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3000
2852
  }
3001
2853
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminSelectDatasetComponent, decorators: [{
3002
2854
  type: Component,
3003
- args: [{ selector: 'pry-admin-select-dataset', template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.metadata.title' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content o-tabs__panels__item__content--profil\">\n <div *ngFor=\"let metadata of datasetMetadata$ | async\">\n <div class=\"o-tabs__panels__item__content\">\n <div class=\"o-tabs__panels__item__content__actions\">\n <div class=\"o-tabs__panels__item__content__actions__text\">\n <span class=\"o-tabs__panels__item__content__actions__text__label\"\n >{{ metadata.metadataDef.name }} :</span\n >\n <span class=\"o-tabs__panels__item__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panels__item__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.edit' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.delete' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"(editable$ | async) ?? false\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid\n ? 'metadata-label metadata-error'\n : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid\n ? 'form-date-label form-date-error'\n : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{\n '@pry.action.choiceInList' | i18n\n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"\n ((editable$ | async) ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata')\n | i18n\n \"\n ></button>\n </div>\n </form>\n </ng-container>\n </ng-container>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
3004
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.FormBuilder }]; } });
2855
+ args: [{ selector: 'pry-admin-select-dataset', template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.metadata.title' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [editable]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n ></pry-metadata-editor>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
2856
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3005
2857
 
3006
2858
  let nextCompId$7 = 0;
3007
2859
  class AdminEnvironmentSelectComponent {
@@ -3613,9 +3465,8 @@ const AdminUserSelectors = {
3613
3465
  let nextCompId = 0;
3614
3466
  class AdminUserSelectComponent {
3615
3467
  static { this.id = 'AdminUserSelectComponent'; }
3616
- constructor(store, formBuilder) {
3468
+ constructor(store) {
3617
3469
  this.store = store;
3618
- this.formBuilder = formBuilder;
3619
3470
  this.userId = '';
3620
3471
  this.tab = 0;
3621
3472
  this.sub = new Subscription();
@@ -3628,10 +3479,6 @@ class AdminUserSelectComponent {
3628
3479
  this.metadata$ = this.store.select(AdminMetadataUserSelectors.metadata);
3629
3480
  this.editable$ = this.store.select(AdminUserSelectors.editable);
3630
3481
  this.compId = nextCompId++;
3631
- this.metaForm = this.formBuilder.group({
3632
- metadata: [{}, [Validators.required]],
3633
- value: ['', [Validators.required, Validators.pattern('^[+-]?[0-9]*$')]]
3634
- });
3635
3482
  }
3636
3483
  ngOnInit() {
3637
3484
  this.sub.add(this.selectedUser$.subscribe((user) => {
@@ -3640,17 +3487,6 @@ class AdminUserSelectComponent {
3640
3487
  }
3641
3488
  }));
3642
3489
  this.sub.add(this.editable$.subscribe((edit) => (this.editable = edit)));
3643
- this.metadataAvailable$ = combineLatest([this.userMetadata$, this.metadata$]).pipe(map(([userMetas, metaDefs]) => {
3644
- let userMetaIds = userMetas?.map((u) => u.userProfile.id);
3645
- return metaDefs.filter((meta) => !userMetaIds?.includes(meta.id));
3646
- }));
3647
- this.sub.add(this.metadataAvailable$.subscribe((meta) => {
3648
- this.metaForm.patchValue({
3649
- metadata: meta[0]
3650
- });
3651
- this.onMetaChange(meta[0]);
3652
- this.metaForm.patchValue({ value: '' });
3653
- }));
3654
3490
  }
3655
3491
  ngOnDestroy() {
3656
3492
  this.sub.unsubscribe();
@@ -3659,57 +3495,26 @@ class AdminUserSelectComponent {
3659
3495
  this.store.dispatch(AdminActions.togglePanel({ panelOpen: false }));
3660
3496
  this.store.dispatch(AdminUserActions.unselectUser());
3661
3497
  }
3662
- addMetadataUser() {
3663
- this.isSubmitted = true;
3664
- if (this.metaForm.valid) {
3665
- this.isSubmitted = false;
3666
- let payload = {
3667
- userId: this.userId,
3668
- metaId: this.metaForm.value['metadata']['id'],
3669
- value: this.metaForm.value['value']
3670
- };
3671
- this.store.dispatch(AdminUserActions.addMetadataUser(payload));
3672
- }
3673
- }
3674
- onMetaChange(metadata) {
3675
- if (metadata) {
3676
- if (metadata.type === 'INTEGER') {
3677
- this.metaForm.controls['value'].setValidators([Validators.required, Validators.pattern('^[+-]?[0-9]*$')]);
3678
- }
3679
- else if (metadata.type === 'DOUBLE') {
3680
- this.metaForm.controls['value'].setValidators([
3681
- Validators.required,
3682
- Validators.pattern('[+-]?([0-9]*[.])?[0-9]+')
3683
- ]);
3684
- }
3685
- else {
3686
- this.metaForm.controls['value'].setValidators([Validators.required]);
3687
- }
3688
- }
3498
+ addMetadataUser(metadata) {
3499
+ this.store.dispatch(AdminUserActions.addMetadataUser({
3500
+ userId: metadata.id,
3501
+ metaId: metadata.metadataId,
3502
+ value: metadata.value
3503
+ }));
3689
3504
  }
3690
3505
  removeMetadata(metadata) {
3691
- this.store.dispatch(AdminUserActions.deleteMetadataUser({ userId: this.userId, metadataId: metadata.userProfile.id }));
3692
- }
3693
- editMetadata(currentMetadata) {
3694
- this.store.dispatch(AdminUserActions.isEditable({ editable: true }));
3695
- let value = currentMetadata.value;
3696
- let userProfile = currentMetadata.userProfile;
3697
- this.metaForm.patchValue({
3698
- metadata: userProfile,
3699
- value: value
3700
- });
3701
- this.onMetaChange(userProfile);
3506
+ this.store.dispatch(AdminUserActions.deleteMetadataUser({ userId: this.userId, metadataId: metadata.metadataId }));
3702
3507
  }
3703
3508
  switch(number) {
3704
3509
  this.tab = number;
3705
3510
  }
3706
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminUserSelectComponent, deps: [{ token: i1.Store }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
3707
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminUserSelectComponent, selector: "pry-admin-user-select", inputs: { profil: "profil" }, ngImport: i0, template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.userInfo.profile' | i18n }}\n </button>\n\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n [id]=\"'tab-' + compId + '-1'\"\n role=\"tab\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content o-tabs__panels__item__content--profil\">\n <div *ngFor=\"let metadata of userMetadata$ | async\">\n <div class=\"o-tabs__panels__item__content\">\n <div class=\"o-tabs__panels__item__content__actions\">\n <div class=\"o-tabs__panels__item__content__actions__text\">\n <span class=\"o-tabs__panels__item__content__actions__text__label\"\n >{{ metadata.userProfile.name }} :</span\n >\n <span class=\"o-tabs__panels__item__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panels__item__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'user', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.edit' | i18n }} {{ metadata.userProfile.name }}</span\n >\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.delete' | i18n }} {{ metadata.userProfile.name }}</span\n >\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *pryAccess=\"{ module: 'admin', page: 'user', action: 'write' }\">\n <ng-container *ngIf=\"metaForm.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadataUser()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"metadataAvailable$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"editable\"\n [attr.aria-labelledby]=\"\n isSubmitted && metaForm.get('metadata')?.invalid\n ? 'metadata-label metadata-error'\n : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && metaForm.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"metaForm.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && metaForm.get('value')?.invalid\n ? 'form-date-label form-date-error'\n : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"metaForm.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"metaForm.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && metaForm.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('value')?.hasError('required')\">{{\n '@pry.admin.required' | i18n\n }}</span>\n <ng-container *ngIf=\"metaForm.get('value')?.hasError('pattern')\">\n <span *ngIf=\"metaForm.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"metaForm.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"\n ((editable$ | async) ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata')\n | i18n\n \"\n ></button>\n </div>\n </form>\n </ng-container>\n </ng-container>\n </div>\n\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"0\"\n >\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3511
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminUserSelectComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3512
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminUserSelectComponent, selector: "pry-admin-user-select", inputs: { profil: "profil" }, ngImport: i0, template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.userInfo.profile' | i18n }}\n </button>\n\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n [id]=\"'tab-' + compId + '-1'\"\n role=\"tab\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <pry-metadata-editor\n [targetId]=\"(selectedUser$ | async)?.id ?? ''\"\n [editable]=\"(editable$ | async) ?? false\"\n [metadata]=\"(userMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadataUser($event)\"\n ></pry-metadata-editor>\n </div>\n\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"0\"\n >\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5$2.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["targetId", "editable", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3708
3513
  }
3709
3514
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminUserSelectComponent, decorators: [{
3710
3515
  type: Component,
3711
- args: [{ selector: 'pry-admin-user-select', template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.userInfo.profile' | i18n }}\n </button>\n\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n [id]=\"'tab-' + compId + '-1'\"\n role=\"tab\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content o-tabs__panels__item__content--profil\">\n <div *ngFor=\"let metadata of userMetadata$ | async\">\n <div class=\"o-tabs__panels__item__content\">\n <div class=\"o-tabs__panels__item__content__actions\">\n <div class=\"o-tabs__panels__item__content__actions__text\">\n <span class=\"o-tabs__panels__item__content__actions__text__label\"\n >{{ metadata.userProfile.name }} :</span\n >\n <span class=\"o-tabs__panels__item__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panels__item__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'user', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.edit' | i18n }} {{ metadata.userProfile.name }}</span\n >\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.delete' | i18n }} {{ metadata.userProfile.name }}</span\n >\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *pryAccess=\"{ module: 'admin', page: 'user', action: 'write' }\">\n <ng-container *ngIf=\"metaForm.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadataUser()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"metadataAvailable$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"editable\"\n [attr.aria-labelledby]=\"\n isSubmitted && metaForm.get('metadata')?.invalid\n ? 'metadata-label metadata-error'\n : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && metaForm.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"metaForm.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && metaForm.get('value')?.invalid\n ? 'form-date-label form-date-error'\n : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"metaForm.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"metaForm.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && metaForm.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('value')?.hasError('required')\">{{\n '@pry.admin.required' | i18n\n }}</span>\n <ng-container *ngIf=\"metaForm.get('value')?.hasError('pattern')\">\n <span *ngIf=\"metaForm.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"metaForm.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"\n ((editable$ | async) ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata')\n | i18n\n \"\n ></button>\n </div>\n </form>\n </ng-container>\n </ng-container>\n </div>\n\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"0\"\n >\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </div>\n </div>\n </div>\n</div>\n" }]
3712
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i3$1.UntypedFormBuilder }]; }, propDecorators: { profil: [{
3516
+ args: [{ selector: 'pry-admin-user-select', template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.userInfo.profile' | i18n }}\n </button>\n\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n [id]=\"'tab-' + compId + '-1'\"\n role=\"tab\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <pry-metadata-editor\n [targetId]=\"(selectedUser$ | async)?.id ?? ''\"\n [editable]=\"(editable$ | async) ?? false\"\n [metadata]=\"(userMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadataUser($event)\"\n ></pry-metadata-editor>\n </div>\n\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"0\"\n >\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </div>\n </div>\n </div>\n</div>\n" }]
3517
+ }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { profil: [{
3713
3518
  type: Input
3714
3519
  }] } });
3715
3520
 
@@ -5418,21 +5223,6 @@ class AdminService {
5418
5223
  .select(ConfigSelectors.refUrl)
5419
5224
  .pipe(mergeMap((url) => this.httpClient.get(`${url}/predicates/id/${id}`)));
5420
5225
  }
5421
- getMetadataList() {
5422
- return this.store
5423
- .select(ConfigSelectors.refUrl)
5424
- .pipe(mergeMap((url) => this.httpClient.get(`${url}/metadata`)));
5425
- }
5426
- getMetadata(id) {
5427
- return this.store
5428
- .select(ConfigSelectors.refUrl)
5429
- .pipe(mergeMap((url) => this.httpClient.get(`${url}/metadata/id/${id}`)));
5430
- }
5431
- postMetadata(metadata) {
5432
- return this.store
5433
- .select(ConfigSelectors.refUrl)
5434
- .pipe(mergeMap((url) => this.httpClient.post(`${url}/metadata`, metadata)));
5435
- }
5436
5226
  getUserMetadata() {
5437
5227
  return this.store
5438
5228
  .select(ConfigSelectors.refUrl)
@@ -5789,34 +5579,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
5789
5579
  type: Injectable
5790
5580
  }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i4.PryDialogService }, { type: AdminService }]; } });
5791
5581
 
5792
- class AdminDatasetEffects {
5793
- constructor(actions$, dataSourceService) {
5794
- this.actions$ = actions$;
5795
- this.dataSourceService = dataSourceService;
5796
- this.addDatasetMetadata$ = createEffect(() => this.actions$.pipe(ofType(AdminDatasetActions.addDatasetMetadata), mergeMap$1((action) => this.dataSourceService.addDatasetMetadata(action.datasetId, action.metadataId, action.value).pipe(map$1(() => AdminDatasetActions.addDatasetMetadataSuccess({ datasetId: action.datasetId })), catchError$1((error) => [AdminDatasetActions.addDatasetMetadataFailure({ error })])))));
5797
- this.addDatasetMetadataSuccess$ = createEffect(() => this.actions$.pipe(ofType(AdminDatasetActions.addDatasetMetadataSuccess), mergeMap$1((action) => {
5798
- return [
5799
- DataSourceActions.dataset.getDatasetById({ id: action.datasetId }),
5800
- AdminDatasetActions.isEditable({ editable: false }),
5801
- DataSourceActions.dataset.loadDataset()
5802
- ];
5803
- })));
5804
- this.deleteDatasetMetadata$ = createEffect(() => this.actions$.pipe(ofType(AdminDatasetActions.deleteDatasetMetadata), mergeMap$1((action) => this.dataSourceService.deleteDatasetMetadata(action.datasetId, action.metadataId).pipe(map$1(() => AdminDatasetActions.deleteDatasetMetadataSuccess({ datasetId: action.datasetId })), catchError$1((error) => [AdminDatasetActions.deleteDatasetMetadataFailure({ error })])))));
5805
- this.deleteDatasetMetadataSuccess$ = createEffect(() => this.actions$.pipe(ofType(AdminDatasetActions.deleteDatasetMetadataSuccess), mergeMap$1((action) => {
5806
- return [
5807
- DataSourceActions.dataset.getDatasetById({ id: action.datasetId }),
5808
- AdminDatasetActions.isEditable({ editable: false }),
5809
- DataSourceActions.dataset.loadDataset()
5810
- ];
5811
- })));
5812
- }
5813
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminDatasetEffects, deps: [{ token: i1$2.Actions }, { token: i4.DataSourceService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5814
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminDatasetEffects }); }
5815
- }
5816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminDatasetEffects, decorators: [{
5817
- type: Injectable
5818
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: i4.DataSourceService }]; } });
5819
-
5820
5582
  class EnvironmentEffects {
5821
5583
  constructor(actions$, service, router) {
5822
5584
  this.actions$ = actions$;
@@ -6001,29 +5763,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
6001
5763
  }]
6002
5764
  }] });
6003
5765
 
6004
- class MetadataEffects {
6005
- constructor(actions$, service, store, router) {
6006
- this.actions$ = actions$;
6007
- this.service = service;
6008
- this.store = store;
6009
- this.router = router;
6010
- this.loadMetadata$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.loadMetadata), mergeMap$1((_) => this.service.getMetadataList().pipe(map$1((metadata) => MetadataActions.loadMetadataSuccess({ metadata: metadata })), catchError$1((error) => [MetadataActions.loadMetadataFailure({ error: error })])))));
6011
- this.goToNewMetadata$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.goToNewMetadata), map$1((action) => {
6012
- return AdminActions.routeTo({ path: action.route });
6013
- })));
6014
- this.goToDetailsView$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.goToDetailsView), mergeMap$1((action) => this.service.getMetadata(action.id).pipe(map$1((metadata) => MetadataActions.goToDetailsViewSuccess({ metadata })), catchError$1((error) => [MetadataActions.goToDetailsViewFailure({ error: error })])))));
6015
- this.createMetadata$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.createMetadata), mergeMap$1((action) => this.service.postMetadata(action.metadata).pipe(map$1(() => MetadataActions.createMetadataSuccess({ metadata: action.metadata })), catchError$1((error) => [MetadataActions.createMetadataFailure({ error: error })])))));
6016
- this.createMetadataSuccess$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.createMetadataSuccess), map$1((action) => {
6017
- return MetadataActions.loadMetadata();
6018
- })));
6019
- }
6020
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MetadataEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i1.Store }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
6021
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MetadataEffects }); }
6022
- }
6023
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MetadataEffects, decorators: [{
6024
- type: Injectable
6025
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i1.Store }, { type: i2.Router }]; } });
6026
-
6027
5766
  class PredicatesEffects {
6028
5767
  constructor(actions$, service, router) {
6029
5768
  this.actions$ = actions$;
@@ -6760,11 +6499,14 @@ class AdminEffects {
6760
6499
  this.actions$ = actions$;
6761
6500
  this.service = service;
6762
6501
  this.router = router;
6763
- this.routeTo$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.routeTo, DataSourceActions.dataset.created, DataSourceActions.dataset.updated), mergeMap$1((action) => {
6502
+ this.routeTo$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.routeTo, DataSourceActions.dataset.created, DataSourceActions.dataset.updated), mergeMap((action) => {
6764
6503
  this.router.navigate([action.path], { queryParams: action.params });
6765
6504
  return action.path === this.router.url ? [] : [AdminActions.resetActions()];
6766
6505
  })));
6767
- this.deleteRelationTypeSuccess$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.deleteRelationTypeSuccess), mergeMap$1((action) => {
6506
+ this.goToNewMetadata$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.goToNewMetadata), map((action) => {
6507
+ return AdminActions.routeTo({ path: action.route });
6508
+ })));
6509
+ this.deleteRelationTypeSuccess$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.deleteRelationTypeSuccess), mergeMap((action) => {
6768
6510
  return [
6769
6511
  RelationTypesActions.load(),
6770
6512
  AdminActions.selectComponentType({ componentType: null }),
@@ -6782,10 +6524,10 @@ class AdminEffects {
6782
6524
  })
6783
6525
  ];
6784
6526
  })));
6785
- this.closePanel$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.highlightMenu), mergeMap$1((action) => {
6527
+ this.closePanel$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.highlightMenu), mergeMap((action) => {
6786
6528
  return [AdminActions.togglePanel({ panelOpen: false })];
6787
6529
  })));
6788
- this.deleted$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.deleted), mergeMap$1((action) => [
6530
+ this.deleted$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.deleted), mergeMap((action) => [
6789
6531
  AdminActions.togglePanel({ panelOpen: false }),
6790
6532
  AdminActions.selectComponentType({ componentType: null }),
6791
6533
  AdminActions.mainActions({
@@ -6801,13 +6543,13 @@ class AdminEffects {
6801
6543
  ]
6802
6544
  })
6803
6545
  ])));
6804
- this.openNewDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.openNewDataset), map$1((action) => {
6546
+ this.openNewDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.openNewDataset), map((action) => {
6805
6547
  return AdminActions.routeTo({ path: action.route });
6806
6548
  })));
6807
- this.fetchClassAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchClassAssociations), mergeMap$1((action) => this.service.getClassAssociations(action.id).pipe(map$1((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError$1((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6808
- this.fetchFieldAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchFieldAssociations), mergeMap$1((action) => this.service.getFieldAssociations(action.id).pipe(map$1((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError$1((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6809
- this.fetchDatasetAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchDatasetAssociations), mergeMap$1((action) => this.service.getDatasetAssociations(action.id).pipe(map$1((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError$1((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6810
- this.fetchAttributeAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchAttributeAssociations), mergeMap$1((action) => this.service.getAttributeAssociations(action.id).pipe(map$1((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError$1((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6549
+ this.fetchClassAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchClassAssociations), mergeMap((action) => this.service.getClassAssociations(action.id).pipe(map((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6550
+ this.fetchFieldAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchFieldAssociations), mergeMap((action) => this.service.getFieldAssociations(action.id).pipe(map((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6551
+ this.fetchDatasetAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchDatasetAssociations), mergeMap((action) => this.service.getDatasetAssociations(action.id).pipe(map((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6552
+ this.fetchAttributeAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchAttributeAssociations), mergeMap((action) => this.service.getAttributeAssociations(action.id).pipe(map((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6811
6553
  }
6812
6554
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
6813
6555
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminEffects }); }
@@ -6897,7 +6639,7 @@ class PryAdminModule {
6897
6639
  AdminClassesCustomizeSymbolComponent,
6898
6640
  PryAssociationComponent], imports: [CommonModule,
6899
6641
  PryCoreModule,
6900
- AdminRoutingModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, PryIconModule,
6642
+ AdminRoutingModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, PryIconModule,
6901
6643
  FormsModule,
6902
6644
  ReactiveFormsModule,
6903
6645
  PrySortModule,
@@ -6909,13 +6651,13 @@ class PryAdminModule {
6909
6651
  OverlayModule,
6910
6652
  PryOverlayModule,
6911
6653
  DragDropModule,
6912
- PryI18nModule] }); }
6654
+ PryI18nModule,
6655
+ PryExpandPanelModule] }); }
6913
6656
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAdminModule, providers: [DatePipe], imports: [CommonModule,
6914
6657
  PryCoreModule,
6915
6658
  AdminRoutingModule,
6916
6659
  StoreModule.forFeature(adminFeatureKey, adminReducer),
6917
6660
  StoreModule.forFeature(predicatesFeatureKey, predicateReducer),
6918
- StoreModule.forFeature(metadataFeatureKey, metadataReducer),
6919
6661
  StoreModule.forFeature(abacRulesFeatureKey, abacRuleReducer),
6920
6662
  StoreModule.forFeature(environmentFeatureKey, environmentReducer),
6921
6663
  StoreModule.forFeature(adminMetadataUserFeatureKey, adminMetadataUserReducer),
@@ -6924,10 +6666,8 @@ class PryAdminModule {
6924
6666
  StoreModule.forFeature(fieldsFeatureKey, fieldReducer),
6925
6667
  StoreModule.forFeature(adminUserFeatureKey, adminUserReducer),
6926
6668
  StoreModule.forFeature(linksFeatureKey, linkReducer),
6927
- StoreModule.forFeature(adminDatasetFeatureKey, adminDatasetReducer),
6928
6669
  EffectsModule.forFeature([AdminEffects]),
6929
6670
  EffectsModule.forFeature([PredicatesEffects]),
6930
- EffectsModule.forFeature([MetadataEffects]),
6931
6671
  EffectsModule.forFeature([EnvironmentEffects]),
6932
6672
  EffectsModule.forFeature([AbacRulesEffects]),
6933
6673
  EffectsModule.forFeature([AdminMetadataUserEffects]),
@@ -6936,7 +6676,6 @@ class PryAdminModule {
6936
6676
  EffectsModule.forFeature([AdminUserEffects]),
6937
6677
  EffectsModule.forFeature([LinksEffects]),
6938
6678
  EffectsModule.forFeature([AdminMetadataRulesEffects]),
6939
- EffectsModule.forFeature([AdminDatasetEffects]),
6940
6679
  PryIconModule,
6941
6680
  FormsModule,
6942
6681
  ReactiveFormsModule,
@@ -6949,7 +6688,8 @@ class PryAdminModule {
6949
6688
  OverlayModule,
6950
6689
  PryOverlayModule,
6951
6690
  DragDropModule,
6952
- PryI18nModule] }); }
6691
+ PryI18nModule,
6692
+ PryExpandPanelModule] }); }
6953
6693
  }
6954
6694
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAdminModule, decorators: [{
6955
6695
  type: NgModule,
@@ -7036,7 +6776,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
7036
6776
  AdminRoutingModule,
7037
6777
  StoreModule.forFeature(adminFeatureKey, adminReducer),
7038
6778
  StoreModule.forFeature(predicatesFeatureKey, predicateReducer),
7039
- StoreModule.forFeature(metadataFeatureKey, metadataReducer),
7040
6779
  StoreModule.forFeature(abacRulesFeatureKey, abacRuleReducer),
7041
6780
  StoreModule.forFeature(environmentFeatureKey, environmentReducer),
7042
6781
  StoreModule.forFeature(adminMetadataUserFeatureKey, adminMetadataUserReducer),
@@ -7045,10 +6784,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
7045
6784
  StoreModule.forFeature(fieldsFeatureKey, fieldReducer),
7046
6785
  StoreModule.forFeature(adminUserFeatureKey, adminUserReducer),
7047
6786
  StoreModule.forFeature(linksFeatureKey, linkReducer),
7048
- StoreModule.forFeature(adminDatasetFeatureKey, adminDatasetReducer),
7049
6787
  EffectsModule.forFeature([AdminEffects]),
7050
6788
  EffectsModule.forFeature([PredicatesEffects]),
7051
- EffectsModule.forFeature([MetadataEffects]),
7052
6789
  EffectsModule.forFeature([EnvironmentEffects]),
7053
6790
  EffectsModule.forFeature([AbacRulesEffects]),
7054
6791
  EffectsModule.forFeature([AdminMetadataUserEffects]),
@@ -7057,7 +6794,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
7057
6794
  EffectsModule.forFeature([AdminUserEffects]),
7058
6795
  EffectsModule.forFeature([LinksEffects]),
7059
6796
  EffectsModule.forFeature([AdminMetadataRulesEffects]),
7060
- EffectsModule.forFeature([AdminDatasetEffects]),
7061
6797
  PryIconModule,
7062
6798
  FormsModule,
7063
6799
  ReactiveFormsModule,
@@ -7070,7 +6806,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
7070
6806
  OverlayModule,
7071
6807
  PryOverlayModule,
7072
6808
  DragDropModule,
7073
- PryI18nModule
6809
+ PryI18nModule,
6810
+ PryExpandPanelModule
7074
6811
  ]
7075
6812
  }]
7076
6813
  }], ctorParameters: function () { return [{ type: i4.PryI18nService }]; } });