@provoly/dashboard 0.13.1 → 0.13.2

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 (60) hide show
  1. package/admin/admin.module.d.ts +12 -11
  2. package/admin/components/association/association.component.d.ts +9 -0
  3. package/admin/i18n/en.translations.d.ts +10 -0
  4. package/admin/i18n/fr.translations.d.ts +10 -0
  5. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +1 -0
  6. package/dataset/i18n/en.translations.d.ts +19 -1
  7. package/dataset/i18n/fr.translations.d.ts +19 -2
  8. package/dataset/style/_o-pry-dataset-detail.scss +20 -20
  9. package/dataset/style/_o-pry-dataset.scss +8 -1
  10. package/esm2022/admin/admin.module.mjs +6 -3
  11. package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +4 -3
  12. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +4 -3
  13. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -4
  14. package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +4 -3
  15. package/esm2022/admin/components/association/association.component.mjs +18 -0
  16. package/esm2022/admin/i18n/en.translations.mjs +11 -1
  17. package/esm2022/admin/i18n/fr.translations.mjs +11 -1
  18. package/esm2022/admin/store/admin.service.mjs +5 -5
  19. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +10 -5
  20. package/esm2022/dataset/components/dataset.component.mjs +6 -4
  21. package/esm2022/dataset/i18n/en.translations.mjs +21 -3
  22. package/esm2022/dataset/i18n/fr.translations.mjs +21 -4
  23. package/esm2022/dataset/style/css.component.mjs +2 -2
  24. package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +16 -6
  25. package/esm2022/lib/core/model/dataset.interface.mjs +1 -1
  26. package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
  27. package/esm2022/lib/core/store/field/field.interface.mjs +3 -1
  28. package/esm2022/presentation/components/presentation.component.mjs +3 -3
  29. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +6 -5
  30. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +2 -2
  31. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +2 -2
  32. package/fesm2022/provoly-dashboard-admin.mjs +51 -15
  33. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  34. package/fesm2022/provoly-dashboard-dataset.mjs +56 -14
  35. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  36. package/fesm2022/provoly-dashboard-presentation.mjs +2 -2
  37. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  38. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +7 -6
  39. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  40. package/fesm2022/provoly-dashboard.mjs +57 -10
  41. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  42. package/lib/core/components/modal-status/modal-status.component.d.ts +10 -1
  43. package/lib/core/model/dataset.interface.d.ts +2 -1
  44. package/lib/core/store/data-source/data-source.model.d.ts +1 -0
  45. package/lib/core/store/field/field.interface.d.ts +3 -1
  46. package/package.json +35 -31
  47. package/schematics/migration.json +10 -0
  48. package/schematics/ng-add/index.spec.js +24 -1
  49. package/schematics/ng-add/index.spec.js.map +1 -1
  50. package/schematics/ng-update/utils/complete.function.d.ts +2 -0
  51. package/schematics/ng-update/utils/complete.function.js +10 -0
  52. package/schematics/ng-update/utils/complete.function.js.map +1 -0
  53. package/schematics/ng-update/version-0-13/index.d.ts +2 -0
  54. package/schematics/ng-update/version-0-13/index.js +30 -0
  55. package/schematics/ng-update/version-0-13/index.js.map +1 -0
  56. package/schematics/ng-update/version-0-13/index.spec.d.ts +1 -0
  57. package/schematics/ng-update/version-0-13/index.spec.js +167 -0
  58. package/schematics/ng-update/version-0-13/index.spec.js.map +1 -0
  59. package/styles/components/_o-panel.scss +46 -0
  60. package/widgets/widget-map/component/widget-map.component.d.ts +1 -1
@@ -25,7 +25,7 @@ export const enTranslations = {
25
25
  rastertile: 'Raster tile',
26
26
  point: 'Points',
27
27
  line: 'Lines',
28
- geoserver: 'Geoserver',
28
+ geoserver: 'Geoserver ({{key}})',
29
29
  'multi-line': 'Multi-lines',
30
30
  'multi-polygon': 'Multi-polygons'
31
31
  },
@@ -78,4 +78,4 @@ export const enTranslations = {
78
78
  }
79
79
  }
80
80
  };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2kxOG4vZW4udHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixHQUFHLEVBQUU7Z0JBQ0gsV0FBVyxFQUFFLGVBQWU7Z0JBQzVCLFlBQVksRUFBRSxpQkFBaUI7Z0JBQy9CLEtBQUssRUFBRSxXQUFXO2dCQUNsQixPQUFPLEVBQUUsV0FBVztnQkFDcEIsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLFlBQVksRUFBRSxlQUFlO2dCQUM3QixVQUFVLEVBQUUsYUFBYTtnQkFDekIsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxNQUFNO29CQUNiLE9BQU8sRUFBRSxTQUFTO29CQUNsQixNQUFNLEVBQUUsYUFBYTtvQkFDckIsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLE1BQU0sRUFBRSxhQUFhO29CQUNyQixPQUFPLEVBQUUsWUFBWTtvQkFDckIsR0FBRyxFQUFFLFNBQVM7b0JBQ2QsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFlBQVksRUFBRSxlQUFlO29CQUM3QixVQUFVLEVBQUUsYUFBYTtvQkFDekIsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLEtBQUssRUFBRSxRQUFRO29CQUNmLElBQUksRUFBRSxPQUFPO29CQUNiLFNBQVMsRUFBRSxXQUFXO29CQUN0QixZQUFZLEVBQUUsYUFBYTtvQkFDM0IsZUFBZSxFQUFFLGdCQUFnQjtpQkFDbEM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLEtBQUssRUFBRSxPQUFPO29CQUNkLEtBQUssRUFBRSxPQUFPO29CQUNkLEtBQUssRUFBRSxrQkFBa0I7aUJBQzFCO2dCQUNELElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLFlBQVksRUFBRSxtQkFBbUI7Z0JBQ2pDLFVBQVUsRUFBRSxvQkFBb0I7Z0JBQ2hDLEdBQUcsRUFBRTtvQkFDSCxHQUFHLEVBQUUsYUFBYTtvQkFDbEIsVUFBVSxFQUFFLGlCQUFpQjtvQkFDN0IsVUFBVSxFQUFFLE9BQU87b0JBQ25CLEtBQUssRUFBRSxPQUFPO29CQUNkLFNBQVMsRUFBRSxXQUFXO2lCQUN2QjtnQkFDRCxXQUFXLEVBQUUsY0FBYztnQkFDM0IsYUFBYSxFQUFFLG9DQUFvQztnQkFDbkQsaUJBQWlCLEVBQUU7b0JBQ2pCLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLEdBQUcsRUFBRSxtQkFBbUI7b0JBQ3hCLEdBQUcsRUFBRSxvQkFBb0I7aUJBQzFCO2dCQUNELGtCQUFrQixFQUFFLG9CQUFvQjtnQkFDeEMsT0FBTyxFQUFFLDRCQUE0QjtnQkFDckMsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLFdBQVcsRUFBRSw2QkFBNkI7Z0JBQzFDLFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFdBQVcsRUFBRSw2RkFBNkY7Z0JBQzFHLG1CQUFtQixFQUFFLHlDQUF5QztnQkFDOUQsU0FBUyxFQUFFLFdBQVc7Z0JBQ3RCLGVBQWUsRUFBRSxrQkFBa0I7Z0JBQ25DLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixPQUFPLEVBQUUsU0FBUztnQkFDbEIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixRQUFRLEVBQUUsVUFBVTtnQkFDcEIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLFNBQVMsRUFBRSxxQkFBcUI7Z0JBQ2hDLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUUsY0FBYztnQkFDdEIsTUFBTSxFQUFFLDJCQUEyQjtnQkFDbkMsaUJBQWlCLEVBQUUsK0JBQStCO2FBQ25EO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW5UcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIHdpZGdldDoge1xuICAgICAgbWFwOiB7XG4gICAgICAgIGF0dHJpYnV0aW9uOiAnTGF5ZXIgY3JlZGl0cycsXG4gICAgICAgIGF0dHJpYnV0aW9uczogJ0Rpc3BsYXkgY3JlZGl0cycsXG4gICAgICAgIHN0eWxlOiAnTWFwIHN0eWxlJyxcbiAgICAgICAgbm9TdHlsZTogJ0VtcHR5IG1hcCcsXG4gICAgICAgIGZpdDogJ0ZpdCBkYXRhJyxcbiAgICAgICAgYWRkTGF5ZXI6ICdBZGQgbGF5ZXInLFxuICAgICAgICBsYXllcjogJ0xheWVyIG7CsHt7aW5kZXh9fScsXG4gICAgICAgIGxheWVyT3B0aW9uczogJ0xheWVyIG9wdGlvbnMnLFxuICAgICAgICBsYXllclRpdGxlOiAnTGF5ZXIgTGFiZWwnLFxuICAgICAgICBsYXllclR5cGU6IHtcbiAgICAgICAgICB0aXRsZTogJ1R5cGUnLFxuICAgICAgICAgIGhlYXRtYXA6ICdIZWF0bWFwJyxcbiAgICAgICAgICBidWJibGU6ICdCdWJibGVzIG1hcCcsXG4gICAgICAgICAgcmVsYXRpb246ICdMaW5rcycsXG4gICAgICAgICAgbWFya2VyOiAnTWFya2VycyBtYXAnLFxuICAgICAgICAgIHBvbHlnb246ICdTaGFwZXMgbWFwJyxcbiAgICAgICAgICB3bXM6ICdXTVMgQVBJJyxcbiAgICAgICAgICB3bXRzOiAnV01UUyBBUEknLFxuICAgICAgICAgIGZlYXR1cmVsYXllcjogJ0ZlYXR1cmUgbGF5ZXInLFxuICAgICAgICAgIHZlY3RvcnRpbGU6ICdWZWN0b3IgdGlsZScsXG4gICAgICAgICAgcmFzdGVydGlsZTogJ1Jhc3RlciB0aWxlJyxcbiAgICAgICAgICBwb2ludDogJ1BvaW50cycsXG4gICAgICAgICAgbGluZTogJ0xpbmVzJyxcbiAgICAgICAgICBnZW9zZXJ2ZXI6ICdHZW9zZXJ2ZXInLFxuICAgICAgICAgICdtdWx0aS1saW5lJzogJ011bHRpLWxpbmVzJyxcbiAgICAgICAgICAnbXVsdGktcG9seWdvbic6ICdNdWx0aS1wb2x5Z29ucydcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgIGhvdmVyOiAnSG92ZXInLFxuICAgICAgICAgIGNsaWNrOiAnQ2xpY2snLFxuICAgICAgICAgIHRpdGxlOiAnT3BlbmluZyB0b29sdGlwcydcbiAgICAgICAgfSxcbiAgICAgICAgdGlsZTogJ1RpbGUgbGF5ZXIgb3B0aW9ucycsXG4gICAgICAgIGxvY2F0aW9uQXR0cjogJ1BsYWNlbWVudCBvcHRpb25zJyxcbiAgICAgICAgY2x1c3RlcmluZzogJ0NsdXN0ZXJpbmcgb3B0aW9ucycsXG4gICAgICAgIHdtczoge1xuICAgICAgICAgIHVybDogJ1NlcnZpY2UgVXJsJyxcbiAgICAgICAgICBwYXJhbUxheWVyOiAnRGF0YSBpZGVudGlmaWVyJyxcbiAgICAgICAgICBwYXJhbVRpbGVkOiAnVGlsZWQnLFxuICAgICAgICAgIHN0eWxlOiAnU3R5bGUnLFxuICAgICAgICAgIG1hdHJpeFNldDogJ21hdHJpeFNldCdcbiAgICAgICAgfSxcbiAgICAgICAgZGVsZXRlTGF5ZXI6ICdEZWxldGUgbGF5ZXInLFxuICAgICAgICBsb2NhdGlvbkFycmF5OiAnTGF0IGFuZCBMbmcgaW4gc2VwYXJhdGUgcHJvcGVydGllcycsXG4gICAgICAgIGxvY2F0aW9uQXR0cmlidXRlOiB7XG4gICAgICAgICAgYm90aDogJ0xvY2F0aW9uIHByb3BlcnR5JyxcbiAgICAgICAgICBsYXQ6ICdMYXRpdHVkZSBwcm9wZXJ0eScsXG4gICAgICAgICAgbG5nOiAnTG9uZ2l0dWRlIHByb3BlcnR5J1xuICAgICAgICB9LFxuICAgICAgICBpbnRlbnNpdHlBdHRyaWJ1dGU6ICdJbnRlbnNpdHkgcHJvcGVydHknLFxuICAgICAgICBjbGFzc2VzOiAnQ2xhc3NlcyBkaXNwbGF5ZWQgaW4gbGF5ZXInLFxuICAgICAgICByZWxhdGlvbnM6ICdEaXNwbGF5IGxpbmtzJyxcbiAgICAgICAgaW1wb3J0U3RhcnQ6ICdJbXBvcnQgZmlsZSB7e2ZpbGVuYW1lfX0uLi4nLFxuICAgICAgICBpbXBvcnRPazogJ0ZpbGUge3tmaWxlbmFtZX19IGltcG9ydGVkLicsXG4gICAgICAgIGltcG9ydEVycm9yOiAnQ2Fubm90IHJlYWQgZm9ybWF0IHdpdGggZXh0ZW5zaW9uIHt7ZXh0ZW5zaW9ufX0uIEF1dGhvcml6ZWQgdHlwZXMgYXJlIHt7YXV0aG9yaXplZEZvcm1hdHN9fScsXG4gICAgICAgIGltcG9ydE5vdEZvdW5kSW5aaXA6ICdObyBmaWxlIHt7ZXh0ZW5zaW9ufX0gZm91bmQgaW4gYXJjaGl2ZS4nLFxuICAgICAgICBjbHVzdGVyZWQ6ICdDbHVzdGVyZWQnLFxuICAgICAgICBjbHVzdGVyRGlzdGFuY2U6ICdDbHVzdGVyIGRpc3RhbmNlJyxcbiAgICAgICAgb3BhY2l0eTogJ09wYWNpdHknLFxuICAgICAgICBhZGRyZXNzOiAnQWRkcmVzcycsXG4gICAgICAgIGFkZHJlc3NDb29yZHM6ICdDb29yZGluYXRlcycsXG4gICAgICAgIGFjdGl2ZTogJ0FjdGl2ZScsXG4gICAgICAgIGluYWN0aXZlOiAnSW5hY3RpdmUnLFxuICAgICAgICBtb3ZlOiAnTW92ZSBtb2RlJyxcbiAgICAgICAgbGFzc286ICdMYXNzbyBzZWxlY3Rpb24nLFxuICAgICAgICByZWN0YW5nbGU6ICdSZWN0YW5nbGUgc2VsZWN0aW9uJyxcbiAgICAgICAgY2xpY2s6ICdDbGljayBzZWxlY3Rpb24nLFxuICAgICAgICB6b29tOiAnWm9vbSBzZWxlY3Rpb24nLFxuICAgICAgICBleHBvcnQ6ICdFeHBvcnQgbWFwJyxcbiAgICAgICAgaW1wb3J0OiAnSW1wb3J0IGxheWVyJyxcbiAgICAgICAgbGVnZW5kOiAnTGVnZW5kIG9mIGxheWVyIHt7bGF5ZXJ9fScsXG4gICAgICAgIGxlZ2VuZE5vdFByb3ZpZGVkOiAnTGVnZW5kIG5vdCBwcm92aWRlZCBieSBzZXJ2ZXInXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2kxOG4vZW4udHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixHQUFHLEVBQUU7Z0JBQ0gsV0FBVyxFQUFFLGVBQWU7Z0JBQzVCLFlBQVksRUFBRSxpQkFBaUI7Z0JBQy9CLEtBQUssRUFBRSxXQUFXO2dCQUNsQixPQUFPLEVBQUUsV0FBVztnQkFDcEIsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLFlBQVksRUFBRSxlQUFlO2dCQUM3QixVQUFVLEVBQUUsYUFBYTtnQkFDekIsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxNQUFNO29CQUNiLE9BQU8sRUFBRSxTQUFTO29CQUNsQixNQUFNLEVBQUUsYUFBYTtvQkFDckIsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLE1BQU0sRUFBRSxhQUFhO29CQUNyQixPQUFPLEVBQUUsWUFBWTtvQkFDckIsR0FBRyxFQUFFLFNBQVM7b0JBQ2QsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFlBQVksRUFBRSxlQUFlO29CQUM3QixVQUFVLEVBQUUsYUFBYTtvQkFDekIsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLEtBQUssRUFBRSxRQUFRO29CQUNmLElBQUksRUFBRSxPQUFPO29CQUNiLFNBQVMsRUFBRSxxQkFBcUI7b0JBQ2hDLFlBQVksRUFBRSxhQUFhO29CQUMzQixlQUFlLEVBQUUsZ0JBQWdCO2lCQUNsQztnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsS0FBSyxFQUFFLE9BQU87b0JBQ2QsS0FBSyxFQUFFLE9BQU87b0JBQ2QsS0FBSyxFQUFFLGtCQUFrQjtpQkFDMUI7Z0JBQ0QsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsWUFBWSxFQUFFLG1CQUFtQjtnQkFDakMsVUFBVSxFQUFFLG9CQUFvQjtnQkFDaEMsR0FBRyxFQUFFO29CQUNILEdBQUcsRUFBRSxhQUFhO29CQUNsQixVQUFVLEVBQUUsaUJBQWlCO29CQUM3QixVQUFVLEVBQUUsT0FBTztvQkFDbkIsS0FBSyxFQUFFLE9BQU87b0JBQ2QsU0FBUyxFQUFFLFdBQVc7aUJBQ3ZCO2dCQUNELFdBQVcsRUFBRSxjQUFjO2dCQUMzQixhQUFhLEVBQUUsb0NBQW9DO2dCQUNuRCxpQkFBaUIsRUFBRTtvQkFDakIsSUFBSSxFQUFFLG1CQUFtQjtvQkFDekIsR0FBRyxFQUFFLG1CQUFtQjtvQkFDeEIsR0FBRyxFQUFFLG9CQUFvQjtpQkFDMUI7Z0JBQ0Qsa0JBQWtCLEVBQUUsb0JBQW9CO2dCQUN4QyxPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxTQUFTLEVBQUUsZUFBZTtnQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtnQkFDMUMsUUFBUSxFQUFFLDZCQUE2QjtnQkFDdkMsV0FBVyxFQUFFLDZGQUE2RjtnQkFDMUcsbUJBQW1CLEVBQUUseUNBQXlDO2dCQUM5RCxTQUFTLEVBQUUsV0FBVztnQkFDdEIsZUFBZSxFQUFFLGtCQUFrQjtnQkFDbkMsT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsU0FBUyxFQUFFLHFCQUFxQjtnQkFDaEMsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsTUFBTSxFQUFFLFlBQVk7Z0JBQ3BCLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixNQUFNLEVBQUUsMkJBQTJCO2dCQUNuQyxpQkFBaUIsRUFBRSwrQkFBK0I7YUFDbkQ7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlblRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BwcnknOiB7XG4gICAgd2lkZ2V0OiB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgYXR0cmlidXRpb246ICdMYXllciBjcmVkaXRzJyxcbiAgICAgICAgYXR0cmlidXRpb25zOiAnRGlzcGxheSBjcmVkaXRzJyxcbiAgICAgICAgc3R5bGU6ICdNYXAgc3R5bGUnLFxuICAgICAgICBub1N0eWxlOiAnRW1wdHkgbWFwJyxcbiAgICAgICAgZml0OiAnRml0IGRhdGEnLFxuICAgICAgICBhZGRMYXllcjogJ0FkZCBsYXllcicsXG4gICAgICAgIGxheWVyOiAnTGF5ZXIgbsKwe3tpbmRleH19JyxcbiAgICAgICAgbGF5ZXJPcHRpb25zOiAnTGF5ZXIgb3B0aW9ucycsXG4gICAgICAgIGxheWVyVGl0bGU6ICdMYXllciBMYWJlbCcsXG4gICAgICAgIGxheWVyVHlwZToge1xuICAgICAgICAgIHRpdGxlOiAnVHlwZScsXG4gICAgICAgICAgaGVhdG1hcDogJ0hlYXRtYXAnLFxuICAgICAgICAgIGJ1YmJsZTogJ0J1YmJsZXMgbWFwJyxcbiAgICAgICAgICByZWxhdGlvbjogJ0xpbmtzJyxcbiAgICAgICAgICBtYXJrZXI6ICdNYXJrZXJzIG1hcCcsXG4gICAgICAgICAgcG9seWdvbjogJ1NoYXBlcyBtYXAnLFxuICAgICAgICAgIHdtczogJ1dNUyBBUEknLFxuICAgICAgICAgIHdtdHM6ICdXTVRTIEFQSScsXG4gICAgICAgICAgZmVhdHVyZWxheWVyOiAnRmVhdHVyZSBsYXllcicsXG4gICAgICAgICAgdmVjdG9ydGlsZTogJ1ZlY3RvciB0aWxlJyxcbiAgICAgICAgICByYXN0ZXJ0aWxlOiAnUmFzdGVyIHRpbGUnLFxuICAgICAgICAgIHBvaW50OiAnUG9pbnRzJyxcbiAgICAgICAgICBsaW5lOiAnTGluZXMnLFxuICAgICAgICAgIGdlb3NlcnZlcjogJ0dlb3NlcnZlciAoe3trZXl9fSknLFxuICAgICAgICAgICdtdWx0aS1saW5lJzogJ011bHRpLWxpbmVzJyxcbiAgICAgICAgICAnbXVsdGktcG9seWdvbic6ICdNdWx0aS1wb2x5Z29ucydcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgIGhvdmVyOiAnSG92ZXInLFxuICAgICAgICAgIGNsaWNrOiAnQ2xpY2snLFxuICAgICAgICAgIHRpdGxlOiAnT3BlbmluZyB0b29sdGlwcydcbiAgICAgICAgfSxcbiAgICAgICAgdGlsZTogJ1RpbGUgbGF5ZXIgb3B0aW9ucycsXG4gICAgICAgIGxvY2F0aW9uQXR0cjogJ1BsYWNlbWVudCBvcHRpb25zJyxcbiAgICAgICAgY2x1c3RlcmluZzogJ0NsdXN0ZXJpbmcgb3B0aW9ucycsXG4gICAgICAgIHdtczoge1xuICAgICAgICAgIHVybDogJ1NlcnZpY2UgVXJsJyxcbiAgICAgICAgICBwYXJhbUxheWVyOiAnRGF0YSBpZGVudGlmaWVyJyxcbiAgICAgICAgICBwYXJhbVRpbGVkOiAnVGlsZWQnLFxuICAgICAgICAgIHN0eWxlOiAnU3R5bGUnLFxuICAgICAgICAgIG1hdHJpeFNldDogJ21hdHJpeFNldCdcbiAgICAgICAgfSxcbiAgICAgICAgZGVsZXRlTGF5ZXI6ICdEZWxldGUgbGF5ZXInLFxuICAgICAgICBsb2NhdGlvbkFycmF5OiAnTGF0IGFuZCBMbmcgaW4gc2VwYXJhdGUgcHJvcGVydGllcycsXG4gICAgICAgIGxvY2F0aW9uQXR0cmlidXRlOiB7XG4gICAgICAgICAgYm90aDogJ0xvY2F0aW9uIHByb3BlcnR5JyxcbiAgICAgICAgICBsYXQ6ICdMYXRpdHVkZSBwcm9wZXJ0eScsXG4gICAgICAgICAgbG5nOiAnTG9uZ2l0dWRlIHByb3BlcnR5J1xuICAgICAgICB9LFxuICAgICAgICBpbnRlbnNpdHlBdHRyaWJ1dGU6ICdJbnRlbnNpdHkgcHJvcGVydHknLFxuICAgICAgICBjbGFzc2VzOiAnQ2xhc3NlcyBkaXNwbGF5ZWQgaW4gbGF5ZXInLFxuICAgICAgICByZWxhdGlvbnM6ICdEaXNwbGF5IGxpbmtzJyxcbiAgICAgICAgaW1wb3J0U3RhcnQ6ICdJbXBvcnQgZmlsZSB7e2ZpbGVuYW1lfX0uLi4nLFxuICAgICAgICBpbXBvcnRPazogJ0ZpbGUge3tmaWxlbmFtZX19IGltcG9ydGVkLicsXG4gICAgICAgIGltcG9ydEVycm9yOiAnQ2Fubm90IHJlYWQgZm9ybWF0IHdpdGggZXh0ZW5zaW9uIHt7ZXh0ZW5zaW9ufX0uIEF1dGhvcml6ZWQgdHlwZXMgYXJlIHt7YXV0aG9yaXplZEZvcm1hdHN9fScsXG4gICAgICAgIGltcG9ydE5vdEZvdW5kSW5aaXA6ICdObyBmaWxlIHt7ZXh0ZW5zaW9ufX0gZm91bmQgaW4gYXJjaGl2ZS4nLFxuICAgICAgICBjbHVzdGVyZWQ6ICdDbHVzdGVyZWQnLFxuICAgICAgICBjbHVzdGVyRGlzdGFuY2U6ICdDbHVzdGVyIGRpc3RhbmNlJyxcbiAgICAgICAgb3BhY2l0eTogJ09wYWNpdHknLFxuICAgICAgICBhZGRyZXNzOiAnQWRkcmVzcycsXG4gICAgICAgIGFkZHJlc3NDb29yZHM6ICdDb29yZGluYXRlcycsXG4gICAgICAgIGFjdGl2ZTogJ0FjdGl2ZScsXG4gICAgICAgIGluYWN0aXZlOiAnSW5hY3RpdmUnLFxuICAgICAgICBtb3ZlOiAnTW92ZSBtb2RlJyxcbiAgICAgICAgbGFzc286ICdMYXNzbyBzZWxlY3Rpb24nLFxuICAgICAgICByZWN0YW5nbGU6ICdSZWN0YW5nbGUgc2VsZWN0aW9uJyxcbiAgICAgICAgY2xpY2s6ICdDbGljayBzZWxlY3Rpb24nLFxuICAgICAgICB6b29tOiAnWm9vbSBzZWxlY3Rpb24nLFxuICAgICAgICBleHBvcnQ6ICdFeHBvcnQgbWFwJyxcbiAgICAgICAgaW1wb3J0OiAnSW1wb3J0IGxheWVyJyxcbiAgICAgICAgbGVnZW5kOiAnTGVnZW5kIG9mIGxheWVyIHt7bGF5ZXJ9fScsXG4gICAgICAgIGxlZ2VuZE5vdFByb3ZpZGVkOiAnTGVnZW5kIG5vdCBwcm92aWRlZCBieSBzZXJ2ZXInXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl19
@@ -25,7 +25,7 @@ export const frTranslations = {
25
25
  rastertile: 'Raster tile',
26
26
  point: 'Points',
27
27
  line: 'Lignes',
28
- geoserver: 'Geoserver',
28
+ geoserver: 'Geoserver ({{key}})',
29
29
  'multi-line': 'Multi-lignes',
30
30
  'multi-polygon': 'Multi-polygone'
31
31
  },
@@ -78,4 +78,4 @@ export const frTranslations = {
78
78
  }
79
79
  }
80
80
  };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2kxOG4vZnIudHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixHQUFHLEVBQUU7Z0JBQ0gsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsR0FBRyxFQUFFLCtCQUErQjtnQkFDcEMsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsS0FBSyxFQUFFLG9CQUFvQjtnQkFDM0IsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsVUFBVSxFQUFFLHNCQUFzQjtnQkFDbEMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxNQUFNO29CQUNiLE9BQU8sRUFBRSxTQUFTO29CQUNsQixRQUFRLEVBQUUsV0FBVztvQkFDckIsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLE1BQU0sRUFBRSxXQUFXO29CQUNuQixPQUFPLEVBQUUsUUFBUTtvQkFDakIsR0FBRyxFQUFFLGFBQWE7b0JBQ2xCLElBQUksRUFBRSxjQUFjO29CQUNwQixZQUFZLEVBQUUsZUFBZTtvQkFDN0IsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLFVBQVUsRUFBRSxhQUFhO29CQUN6QixLQUFLLEVBQUUsUUFBUTtvQkFDZixJQUFJLEVBQUUsUUFBUTtvQkFDZCxTQUFTLEVBQUUsV0FBVztvQkFDdEIsWUFBWSxFQUFFLGNBQWM7b0JBQzVCLGVBQWUsRUFBRSxnQkFBZ0I7aUJBQ2xDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxLQUFLLEVBQUUsUUFBUTtvQkFDZixLQUFLLEVBQUUsTUFBTTtvQkFDYixLQUFLLEVBQUUsd0JBQXdCO2lCQUNoQztnQkFDRCxJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixZQUFZLEVBQUUsMkJBQTJCO2dCQUN6QyxVQUFVLEVBQUUseUJBQXlCO2dCQUNyQyxHQUFHLEVBQUU7b0JBQ0gsR0FBRyxFQUFFLGdCQUFnQjtvQkFDckIsVUFBVSxFQUFFLHlCQUF5QjtvQkFDckMsVUFBVSxFQUFFLHNCQUFzQjtvQkFDbEMsS0FBSyxFQUFFLE9BQU87b0JBQ2QsU0FBUyxFQUFFLFdBQVc7aUJBQ3ZCO2dCQUNELFdBQVcsRUFBRSxxQkFBcUI7Z0JBQ2xDLGFBQWEsRUFBRSxnQ0FBZ0M7Z0JBQy9DLGlCQUFpQixFQUFFO29CQUNqQixJQUFJLEVBQUUsMkJBQTJCO29CQUNqQyxHQUFHLEVBQUUsMEJBQTBCO29CQUMvQixHQUFHLEVBQUUsMkJBQTJCO2lCQUNqQztnQkFDRCxrQkFBa0IsRUFBRSwwQkFBMEI7Z0JBQzlDLE9BQU8sRUFBRSxxQ0FBcUM7Z0JBQzlDLFNBQVMsRUFBRSx3QkFBd0I7Z0JBQ25DLFdBQVcsRUFBRSx3Q0FBd0M7Z0JBQ3JELFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLFdBQVcsRUFBRSw0RkFBNEY7Z0JBQ3pHLG1CQUFtQixFQUFFLG9EQUFvRDtnQkFDekUsU0FBUyxFQUFFLGNBQWM7Z0JBQ3pCLGVBQWUsRUFBRSwwQkFBMEI7Z0JBQzNDLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixPQUFPLEVBQUUsU0FBUztnQkFDbEIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixRQUFRLEVBQUUsVUFBVTtnQkFDcEIsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsU0FBUyxFQUFFLHlCQUF5QjtnQkFDcEMsS0FBSyxFQUFFLHVCQUF1QjtnQkFDOUIsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsTUFBTSxFQUFFLG1CQUFtQjtnQkFDM0IsTUFBTSxFQUFFLHFCQUFxQjtnQkFDN0IsTUFBTSxFQUFFLGdDQUFnQztnQkFDeEMsaUJBQWlCLEVBQUUsb0NBQW9DO2FBQ3hEO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIHdpZGdldDoge1xuICAgICAgbWFwOiB7XG4gICAgICAgIGF0dHJpYnV0aW9uOiAnQ3LDqWRpdHMgZGUgY2V0dGUgY291Y2hlJyxcbiAgICAgICAgYXR0cmlidXRpb25zOiAnQWZmaWNoZXIgbGVzIGNyw6lkaXRzJyxcbiAgICAgICAgc3R5bGU6ICdTdHlsZSBkdSBmb25kIGRlIGNhcnRlJyxcbiAgICAgICAgbm9TdHlsZTogJ0F1Y3VuIGZvbmQgZGUgY2FydGUnLFxuICAgICAgICBmaXQ6ICdBZGFwdGVyIGxhIHRhaWxsZSBhdXggZG9ubsOpZXMnLFxuICAgICAgICBhZGRMYXllcjogJ0Fqb3V0ZXIgdW5lIGNvdWNoZScsXG4gICAgICAgIGxheWVyOiAnQ291Y2hlIG7CsHt7aW5kZXh9fScsXG4gICAgICAgIGxheWVyT3B0aW9uczogJ09wdGlvbnMgZGUgbGEgY291Y2hlJyxcbiAgICAgICAgbGF5ZXJUaXRsZTogJ0xpYmVsbMOpIGRlIGxhIGNvdWNoZScsXG4gICAgICAgIGxheWVyVHlwZToge1xuICAgICAgICAgIHRpdGxlOiAnVHlwZScsXG4gICAgICAgICAgaGVhdG1hcDogJ0NoYWxldXInLFxuICAgICAgICAgIHJlbGF0aW9uOiAnUmVsYXRpb25zJyxcbiAgICAgICAgICBidWJibGU6ICdCdWxsZXMnLFxuICAgICAgICAgIG1hcmtlcjogJ01hcnF1ZXVycycsXG4gICAgICAgICAgcG9seWdvbjogJ0Zvcm1lcycsXG4gICAgICAgICAgd21zOiAnU2VydmljZSBXTVMnLFxuICAgICAgICAgIHdtdHM6ICdTZXJ2aWNlIFdNVFMnLFxuICAgICAgICAgIGZlYXR1cmVsYXllcjogJ0ZlYXR1cmUgbGF5ZXInLFxuICAgICAgICAgIHZlY3RvcnRpbGU6ICdWZWN0b3IgdGlsZScsXG4gICAgICAgICAgcmFzdGVydGlsZTogJ1Jhc3RlciB0aWxlJyxcbiAgICAgICAgICBwb2ludDogJ1BvaW50cycsXG4gICAgICAgICAgbGluZTogJ0xpZ25lcycsXG4gICAgICAgICAgZ2Vvc2VydmVyOiAnR2Vvc2VydmVyJyxcbiAgICAgICAgICAnbXVsdGktbGluZSc6ICdNdWx0aS1saWduZXMnLFxuICAgICAgICAgICdtdWx0aS1wb2x5Z29uJzogJ011bHRpLXBvbHlnb25lJ1xuICAgICAgICB9LFxuICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgaG92ZXI6ICdTdXJ2b2wnLFxuICAgICAgICAgIGNsaWNrOiAnQ2xpYycsXG4gICAgICAgICAgdGl0bGU6ICdPdXZlcnR1cmUgZGVzIHRvb2x0aXBzJ1xuICAgICAgICB9LFxuICAgICAgICB0aWxlOiAnT3B0aW9uIGRlIGNvdWNoZSB0dWlsZScsXG4gICAgICAgIGxvY2F0aW9uQXR0cjogJ09wdGlvbnMgZGUgcG9zaXRpb25uZW1lbnQnLFxuICAgICAgICBjbHVzdGVyaW5nOiAnT3B0aW9ucyBkZSByZWdyb3VwZW1lbnQnLFxuICAgICAgICB3bXM6IHtcbiAgICAgICAgICB1cmw6ICdVcmwgZHUgc2VydmljZScsXG4gICAgICAgICAgcGFyYW1MYXllcjogJ0lkZW50aWZpYW50IGRlIGRvbm5uw6llcycsXG4gICAgICAgICAgcGFyYW1UaWxlZDogJ1NvdXMgZm9ybWUgZGUgdHVpbGVzJyxcbiAgICAgICAgICBzdHlsZTogJ1N0eWxlJyxcbiAgICAgICAgICBtYXRyaXhTZXQ6ICdtYXRyaXhTZXQnXG4gICAgICAgIH0sXG4gICAgICAgIGRlbGV0ZUxheWVyOiAnU3VwcHJpbWVyIGxhIGNvdWNoZScsXG4gICAgICAgIGxvY2F0aW9uQXJyYXk6ICdMYXRpdHVkZSBldCBMb25naXR1ZGUgc8OpcGFyw6llcycsXG4gICAgICAgIGxvY2F0aW9uQXR0cmlidXRlOiB7XG4gICAgICAgICAgYm90aDogJ1Byb3ByacOpdMOpIGRlcyBjb29yZG9ubsOpZXMnLFxuICAgICAgICAgIGxhdDogJ1Byb3ByacOpdMOpIGRlIGxhIGxhdGl0dWRlJyxcbiAgICAgICAgICBsbmc6ICdQcm9wcmnDqXTDqSBkZSBsYSBsb25naXR1ZGUnXG4gICAgICAgIH0sXG4gICAgICAgIGludGVuc2l0eUF0dHJpYnV0ZTogXCJQcm9wcmnDqXTDqSBkZSBsJ2ludGVuc2l0w6lcIixcbiAgICAgICAgY2xhc3NlczogJ0NsYXNzZXMgYWZmaWNow6llcyBkYW5zIGNldHRlIGNvdWNoZScsXG4gICAgICAgIHJlbGF0aW9uczogJ0FmZmljaGVyIGxlcyByZWxhdGlvbnMnLFxuICAgICAgICBpbXBvcnRTdGFydDogJ0ltcG9ydGF0aW9uIGR1IGZpY2hpZXIge3tmaWxlbmFtZX19Li4uJyxcbiAgICAgICAgaW1wb3J0T2s6ICdGaWNoaWVyIHt7ZmlsZW5hbWV9fSBpbXBvcnTDqS4nLFxuICAgICAgICBpbXBvcnRFcnJvcjogXCJMJ2V4dGVuc2lvbiB7e2V4dGVuc2lvbn19IG4nZXN0IHBhcyByZWNvbm51ZS4gVm91cyBwb3V2ZXogdXRpbGlzZXI6IHt7YXV0aG9yaXplZEZvcm1hdHN9fS5cIixcbiAgICAgICAgaW1wb3J0Tm90Rm91bmRJblppcDogXCJBdWN1biBmaWNoaWVyIHt7ZXh0ZW5zaW9ufX0gdHJvdXbDqSBkYW5zIGwnYXJjaGl2ZS5cIixcbiAgICAgICAgY2x1c3RlcmVkOiAnUmVncm91cGVtZW50JyxcbiAgICAgICAgY2x1c3RlckRpc3RhbmNlOiAnRGlzdGFuY2UgZGUgcmVncm91cGVtZW50JyxcbiAgICAgICAgb3BhY2l0eTogJ09wYWNpdMOpJyxcbiAgICAgICAgYWRkcmVzczogJ0FkcmVzc2UnLFxuICAgICAgICBhZGRyZXNzQ29vcmRzOiAnQ29vcmRvbm7DqWVzJyxcbiAgICAgICAgYWN0aXZlOiAnQWN0aXZlJyxcbiAgICAgICAgaW5hY3RpdmU6ICdJbmFjdGl2ZScsXG4gICAgICAgIG1vdmU6ICdNb2RlIGTDqXBsYWNlbWVudCcsXG4gICAgICAgIGxhc3NvOiAnU8OpbGVjdGlvbiBwYXIgbGFzc28nLFxuICAgICAgICByZWN0YW5nbGU6ICdTw6lsZWN0aW9uIHBhciByZWN0YW5nbGUnLFxuICAgICAgICBjbGljazogJ1PDqWxlY3Rpb25uZXIgcGFyIGNsaWMnLFxuICAgICAgICB6b29tOiAnWm9vbSBwYXIgcmVjdGFuZ2xlJyxcbiAgICAgICAgZXhwb3J0OiAnRXhwb3J0ZXIgbGEgY2FydGUnLFxuICAgICAgICBpbXBvcnQ6ICdJbXBvcnRlciB1bmUgY291Y2hlJyxcbiAgICAgICAgbGVnZW5kOiAnTMOpZ2VuZGUgZGUgbGEgY291Y2hlIHt7bGF5ZXJ9fScsXG4gICAgICAgIGxlZ2VuZE5vdFByb3ZpZGVkOiAnTMOpZ2VuZGUgbm9uIGZvdXJuaWUgcGFyIGxlIHNlcnZldXInXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2kxOG4vZnIudHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixHQUFHLEVBQUU7Z0JBQ0gsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsR0FBRyxFQUFFLCtCQUErQjtnQkFDcEMsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsS0FBSyxFQUFFLG9CQUFvQjtnQkFDM0IsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsVUFBVSxFQUFFLHNCQUFzQjtnQkFDbEMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxNQUFNO29CQUNiLE9BQU8sRUFBRSxTQUFTO29CQUNsQixRQUFRLEVBQUUsV0FBVztvQkFDckIsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLE1BQU0sRUFBRSxXQUFXO29CQUNuQixPQUFPLEVBQUUsUUFBUTtvQkFDakIsR0FBRyxFQUFFLGFBQWE7b0JBQ2xCLElBQUksRUFBRSxjQUFjO29CQUNwQixZQUFZLEVBQUUsZUFBZTtvQkFDN0IsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLFVBQVUsRUFBRSxhQUFhO29CQUN6QixLQUFLLEVBQUUsUUFBUTtvQkFDZixJQUFJLEVBQUUsUUFBUTtvQkFDZCxTQUFTLEVBQUUscUJBQXFCO29CQUNoQyxZQUFZLEVBQUUsY0FBYztvQkFDNUIsZUFBZSxFQUFFLGdCQUFnQjtpQkFDbEM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLEtBQUssRUFBRSxRQUFRO29CQUNmLEtBQUssRUFBRSxNQUFNO29CQUNiLEtBQUssRUFBRSx3QkFBd0I7aUJBQ2hDO2dCQUNELElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLFlBQVksRUFBRSwyQkFBMkI7Z0JBQ3pDLFVBQVUsRUFBRSx5QkFBeUI7Z0JBQ3JDLEdBQUcsRUFBRTtvQkFDSCxHQUFHLEVBQUUsZ0JBQWdCO29CQUNyQixVQUFVLEVBQUUseUJBQXlCO29CQUNyQyxVQUFVLEVBQUUsc0JBQXNCO29CQUNsQyxLQUFLLEVBQUUsT0FBTztvQkFDZCxTQUFTLEVBQUUsV0FBVztpQkFDdkI7Z0JBQ0QsV0FBVyxFQUFFLHFCQUFxQjtnQkFDbEMsYUFBYSxFQUFFLGdDQUFnQztnQkFDL0MsaUJBQWlCLEVBQUU7b0JBQ2pCLElBQUksRUFBRSwyQkFBMkI7b0JBQ2pDLEdBQUcsRUFBRSwwQkFBMEI7b0JBQy9CLEdBQUcsRUFBRSwyQkFBMkI7aUJBQ2pDO2dCQUNELGtCQUFrQixFQUFFLDBCQUEwQjtnQkFDOUMsT0FBTyxFQUFFLHFDQUFxQztnQkFDOUMsU0FBUyxFQUFFLHdCQUF3QjtnQkFDbkMsV0FBVyxFQUFFLHdDQUF3QztnQkFDckQsUUFBUSxFQUFFLCtCQUErQjtnQkFDekMsV0FBVyxFQUFFLDRGQUE0RjtnQkFDekcsbUJBQW1CLEVBQUUsb0RBQW9EO2dCQUN6RSxTQUFTLEVBQUUsY0FBYztnQkFDekIsZUFBZSxFQUFFLDBCQUEwQjtnQkFDM0MsT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixTQUFTLEVBQUUseUJBQXlCO2dCQUNwQyxLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixNQUFNLEVBQUUscUJBQXFCO2dCQUM3QixNQUFNLEVBQUUsZ0NBQWdDO2dCQUN4QyxpQkFBaUIsRUFBRSxvQ0FBb0M7YUFDeEQ7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmclRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BwcnknOiB7XG4gICAgd2lkZ2V0OiB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgYXR0cmlidXRpb246ICdDcsOpZGl0cyBkZSBjZXR0ZSBjb3VjaGUnLFxuICAgICAgICBhdHRyaWJ1dGlvbnM6ICdBZmZpY2hlciBsZXMgY3LDqWRpdHMnLFxuICAgICAgICBzdHlsZTogJ1N0eWxlIGR1IGZvbmQgZGUgY2FydGUnLFxuICAgICAgICBub1N0eWxlOiAnQXVjdW4gZm9uZCBkZSBjYXJ0ZScsXG4gICAgICAgIGZpdDogJ0FkYXB0ZXIgbGEgdGFpbGxlIGF1eCBkb25uw6llcycsXG4gICAgICAgIGFkZExheWVyOiAnQWpvdXRlciB1bmUgY291Y2hlJyxcbiAgICAgICAgbGF5ZXI6ICdDb3VjaGUgbsKwe3tpbmRleH19JyxcbiAgICAgICAgbGF5ZXJPcHRpb25zOiAnT3B0aW9ucyBkZSBsYSBjb3VjaGUnLFxuICAgICAgICBsYXllclRpdGxlOiAnTGliZWxsw6kgZGUgbGEgY291Y2hlJyxcbiAgICAgICAgbGF5ZXJUeXBlOiB7XG4gICAgICAgICAgdGl0bGU6ICdUeXBlJyxcbiAgICAgICAgICBoZWF0bWFwOiAnQ2hhbGV1cicsXG4gICAgICAgICAgcmVsYXRpb246ICdSZWxhdGlvbnMnLFxuICAgICAgICAgIGJ1YmJsZTogJ0J1bGxlcycsXG4gICAgICAgICAgbWFya2VyOiAnTWFycXVldXJzJyxcbiAgICAgICAgICBwb2x5Z29uOiAnRm9ybWVzJyxcbiAgICAgICAgICB3bXM6ICdTZXJ2aWNlIFdNUycsXG4gICAgICAgICAgd210czogJ1NlcnZpY2UgV01UUycsXG4gICAgICAgICAgZmVhdHVyZWxheWVyOiAnRmVhdHVyZSBsYXllcicsXG4gICAgICAgICAgdmVjdG9ydGlsZTogJ1ZlY3RvciB0aWxlJyxcbiAgICAgICAgICByYXN0ZXJ0aWxlOiAnUmFzdGVyIHRpbGUnLFxuICAgICAgICAgIHBvaW50OiAnUG9pbnRzJyxcbiAgICAgICAgICBsaW5lOiAnTGlnbmVzJyxcbiAgICAgICAgICBnZW9zZXJ2ZXI6ICdHZW9zZXJ2ZXIgKHt7a2V5fX0pJyxcbiAgICAgICAgICAnbXVsdGktbGluZSc6ICdNdWx0aS1saWduZXMnLFxuICAgICAgICAgICdtdWx0aS1wb2x5Z29uJzogJ011bHRpLXBvbHlnb25lJ1xuICAgICAgICB9LFxuICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgaG92ZXI6ICdTdXJ2b2wnLFxuICAgICAgICAgIGNsaWNrOiAnQ2xpYycsXG4gICAgICAgICAgdGl0bGU6ICdPdXZlcnR1cmUgZGVzIHRvb2x0aXBzJ1xuICAgICAgICB9LFxuICAgICAgICB0aWxlOiAnT3B0aW9uIGRlIGNvdWNoZSB0dWlsZScsXG4gICAgICAgIGxvY2F0aW9uQXR0cjogJ09wdGlvbnMgZGUgcG9zaXRpb25uZW1lbnQnLFxuICAgICAgICBjbHVzdGVyaW5nOiAnT3B0aW9ucyBkZSByZWdyb3VwZW1lbnQnLFxuICAgICAgICB3bXM6IHtcbiAgICAgICAgICB1cmw6ICdVcmwgZHUgc2VydmljZScsXG4gICAgICAgICAgcGFyYW1MYXllcjogJ0lkZW50aWZpYW50IGRlIGRvbm5uw6llcycsXG4gICAgICAgICAgcGFyYW1UaWxlZDogJ1NvdXMgZm9ybWUgZGUgdHVpbGVzJyxcbiAgICAgICAgICBzdHlsZTogJ1N0eWxlJyxcbiAgICAgICAgICBtYXRyaXhTZXQ6ICdtYXRyaXhTZXQnXG4gICAgICAgIH0sXG4gICAgICAgIGRlbGV0ZUxheWVyOiAnU3VwcHJpbWVyIGxhIGNvdWNoZScsXG4gICAgICAgIGxvY2F0aW9uQXJyYXk6ICdMYXRpdHVkZSBldCBMb25naXR1ZGUgc8OpcGFyw6llcycsXG4gICAgICAgIGxvY2F0aW9uQXR0cmlidXRlOiB7XG4gICAgICAgICAgYm90aDogJ1Byb3ByacOpdMOpIGRlcyBjb29yZG9ubsOpZXMnLFxuICAgICAgICAgIGxhdDogJ1Byb3ByacOpdMOpIGRlIGxhIGxhdGl0dWRlJyxcbiAgICAgICAgICBsbmc6ICdQcm9wcmnDqXTDqSBkZSBsYSBsb25naXR1ZGUnXG4gICAgICAgIH0sXG4gICAgICAgIGludGVuc2l0eUF0dHJpYnV0ZTogXCJQcm9wcmnDqXTDqSBkZSBsJ2ludGVuc2l0w6lcIixcbiAgICAgICAgY2xhc3NlczogJ0NsYXNzZXMgYWZmaWNow6llcyBkYW5zIGNldHRlIGNvdWNoZScsXG4gICAgICAgIHJlbGF0aW9uczogJ0FmZmljaGVyIGxlcyByZWxhdGlvbnMnLFxuICAgICAgICBpbXBvcnRTdGFydDogJ0ltcG9ydGF0aW9uIGR1IGZpY2hpZXIge3tmaWxlbmFtZX19Li4uJyxcbiAgICAgICAgaW1wb3J0T2s6ICdGaWNoaWVyIHt7ZmlsZW5hbWV9fSBpbXBvcnTDqS4nLFxuICAgICAgICBpbXBvcnRFcnJvcjogXCJMJ2V4dGVuc2lvbiB7e2V4dGVuc2lvbn19IG4nZXN0IHBhcyByZWNvbm51ZS4gVm91cyBwb3V2ZXogdXRpbGlzZXI6IHt7YXV0aG9yaXplZEZvcm1hdHN9fS5cIixcbiAgICAgICAgaW1wb3J0Tm90Rm91bmRJblppcDogXCJBdWN1biBmaWNoaWVyIHt7ZXh0ZW5zaW9ufX0gdHJvdXbDqSBkYW5zIGwnYXJjaGl2ZS5cIixcbiAgICAgICAgY2x1c3RlcmVkOiAnUmVncm91cGVtZW50JyxcbiAgICAgICAgY2x1c3RlckRpc3RhbmNlOiAnRGlzdGFuY2UgZGUgcmVncm91cGVtZW50JyxcbiAgICAgICAgb3BhY2l0eTogJ09wYWNpdMOpJyxcbiAgICAgICAgYWRkcmVzczogJ0FkcmVzc2UnLFxuICAgICAgICBhZGRyZXNzQ29vcmRzOiAnQ29vcmRvbm7DqWVzJyxcbiAgICAgICAgYWN0aXZlOiAnQWN0aXZlJyxcbiAgICAgICAgaW5hY3RpdmU6ICdJbmFjdGl2ZScsXG4gICAgICAgIG1vdmU6ICdNb2RlIGTDqXBsYWNlbWVudCcsXG4gICAgICAgIGxhc3NvOiAnU8OpbGVjdGlvbiBwYXIgbGFzc28nLFxuICAgICAgICByZWN0YW5nbGU6ICdTw6lsZWN0aW9uIHBhciByZWN0YW5nbGUnLFxuICAgICAgICBjbGljazogJ1PDqWxlY3Rpb25uZXIgcGFyIGNsaWMnLFxuICAgICAgICB6b29tOiAnWm9vbSBwYXIgcmVjdGFuZ2xlJyxcbiAgICAgICAgZXhwb3J0OiAnRXhwb3J0ZXIgbGEgY2FydGUnLFxuICAgICAgICBpbXBvcnQ6ICdJbXBvcnRlciB1bmUgY291Y2hlJyxcbiAgICAgICAgbGVnZW5kOiAnTMOpZ2VuZGUgZGUgbGEgY291Y2hlIHt7bGF5ZXJ9fScsXG4gICAgICAgIGxlZ2VuZE5vdFByb3ZpZGVkOiAnTMOpZ2VuZGUgbm9uIGZvdXJuaWUgcGFyIGxlIHNlcnZldXInXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl19
@@ -5,7 +5,7 @@ import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
5
5
  import * as i3 from '@angular/common';
6
6
  import { CommonModule, DatePipe } from '@angular/common';
7
7
  import * as i0 from '@angular/core';
8
- import { EventEmitter, Component, Output, Input, Injectable, ViewContainerRef, ViewChild, TemplateRef, NgModule } from '@angular/core';
8
+ import { EventEmitter, Component, Output, Input, Injectable, ViewContainerRef, ViewChild, TemplateRef, ChangeDetectionStrategy, NgModule } from '@angular/core';
9
9
  import * as i3$1 from '@angular/forms';
10
10
  import { Validators, UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
11
11
  import * as i1$2 from '@ngrx/effects';
@@ -2648,6 +2648,20 @@ const AdminSelectors = {
2648
2648
  selectedAssociation
2649
2649
  };
2650
2650
 
2651
+ class PryAssociationComponent {
2652
+ ngOnInit() {
2653
+ console.log(this.associations);
2654
+ }
2655
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAssociationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2656
+ 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
+ }
2658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAssociationComponent, decorators: [{
2659
+ type: Component,
2660
+ args: [{ selector: 'pry-association', changeDetection: ChangeDetectionStrategy.Default, 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" }]
2661
+ }], propDecorators: { associations: [{
2662
+ type: Input
2663
+ }] } });
2664
+
2651
2665
  let nextCompId$a = 0;
2652
2666
  class AdminClassesSelectComponent {
2653
2667
  static { this.id = 'AdminClassesSelectComponent'; }
@@ -2737,11 +2751,11 @@ class AdminClassesSelectComponent {
2737
2751
  }));
2738
2752
  }
2739
2753
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2740
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminClassesSelectComponent, selector: "pry-admin-classes-select", ngImport: i0, template: "<div\n *ngIf=\"currentClass$ | async as clazz\"\n [id]=\"'panel-class-' + clazz.id\"\n [attr.aria-labelledby]=\"'button-class-' + clazz.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.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.name' | i18n }} :\n <strong>{{ clazz.name }}</strong>\n </p>\n <p class=\"a-p u-display-flex -align-center\">\n {{ '@pry.admin.classes.image' | i18n }} :\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId : { type: 'class', output: 'icon' } | async\"\n />\n </p>\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 <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\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: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2754
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminClassesSelectComponent, selector: "pry-admin-classes-select", ngImport: i0, template: "<div\n *ngIf=\"currentClass$ | async as clazz\"\n [id]=\"'panel-class-' + clazz.id\"\n [attr.aria-labelledby]=\"'button-class-' + clazz.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.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.name' | i18n }} :\n <strong>{{ clazz.name }}</strong>\n </p>\n <p class=\"a-p u-display-flex -align-center\">\n {{ '@pry.admin.classes.image' | i18n }} :\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId : { type: 'class', output: 'icon' } | async\"\n />\n </p>\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</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: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2741
2755
  }
2742
2756
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassesSelectComponent, decorators: [{
2743
2757
  type: Component,
2744
- args: [{ selector: 'pry-admin-classes-select', template: "<div\n *ngIf=\"currentClass$ | async as clazz\"\n [id]=\"'panel-class-' + clazz.id\"\n [attr.aria-labelledby]=\"'button-class-' + clazz.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.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.name' | i18n }} :\n <strong>{{ clazz.name }}</strong>\n </p>\n <p class=\"a-p u-display-flex -align-center\">\n {{ '@pry.admin.classes.image' | i18n }} :\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId : { type: 'class', output: 'icon' } | async\"\n />\n </p>\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 <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
2758
+ args: [{ selector: 'pry-admin-classes-select', template: "<div\n *ngIf=\"currentClass$ | async as clazz\"\n [id]=\"'panel-class-' + clazz.id\"\n [attr.aria-labelledby]=\"'button-class-' + clazz.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.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.name' | i18n }} :\n <strong>{{ clazz.name }}</strong>\n </p>\n <p class=\"a-p u-display-flex -align-center\">\n {{ '@pry.admin.classes.image' | i18n }} :\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId : { type: 'class', output: 'icon' } | async\"\n />\n </p>\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</div>\n" }]
2745
2759
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2746
2760
 
2747
2761
  let nextCompId$9 = 0;
@@ -2812,11 +2826,11 @@ class AdminAttributesSelectComponent {
2812
2826
  this.tab = number;
2813
2827
  }
2814
2828
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminAttributesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2815
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminAttributesSelectComponent, selector: "pry-admin-attribute-select", ngImport: i0, 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 <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\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: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2829
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminAttributesSelectComponent, selector: "pry-admin-attribute-select", ngImport: i0, 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", 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: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2816
2830
  }
2817
2831
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminAttributesSelectComponent, decorators: [{
2818
2832
  type: Component,
2819
- 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 <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
2833
+ 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" }]
2820
2834
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2821
2835
 
2822
2836
  const AdminDatasetActions = {
@@ -2982,11 +2996,11 @@ class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2982
2996
  this.tab = number;
2983
2997
  }
2984
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 }); }
2985
- 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 <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\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", "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" }] }); }
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", "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" }] }); }
2986
3000
  }
2987
3001
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminSelectDatasetComponent, decorators: [{
2988
3002
  type: Component,
2989
- 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 <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
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" }]
2990
3004
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.FormBuilder }]; } });
2991
3005
 
2992
3006
  let nextCompId$7 = 0;
@@ -3150,11 +3164,11 @@ class AdminFieldsSelectComponent {
3150
3164
  this.sub.unsubscribe();
3151
3165
  }
3152
3166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminFieldsSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminFieldsSelectComponent, selector: "pry-admin-fields-select", ngImport: i0, template: "<div\n *ngIf=\"currentField$ | async as field\"\n [id]=\"'panel-field-' + field.id\"\n [attr.aria-labelledby]=\"'button-field-' + field.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.fields.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.fields.name' | i18n }} :\n <strong>{{ field.name }}</strong>\n </p>\n <p class=\"a-p\">{{ '@pry.admin.fields.description' | i18n }} :</p>\n <p class=\"a-p\">\n {{ '@pry.admin.fields.type' | i18n }} :\n <strong>{{ getTranslationType(field.type) | i18n }}</strong>\n </p>\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=\"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 <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\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: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminFieldsSelectComponent, selector: "pry-admin-fields-select", ngImport: i0, template: "<div\n *ngIf=\"currentField$ | async as field\"\n [id]=\"'panel-field-' + field.id\"\n [attr.aria-labelledby]=\"'button-field-' + field.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.fields.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.fields.name' | i18n }} :\n <strong>{{ field.name }}</strong>\n </p>\n <p class=\"a-p\">{{ '@pry.admin.fields.description' | i18n }} :</p>\n <p class=\"a-p\">\n {{ '@pry.admin.fields.type' | i18n }} :\n <strong>{{ getTranslationType(field.type) | i18n }}</strong>\n </p>\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=\"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: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3154
3168
  }
3155
3169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminFieldsSelectComponent, decorators: [{
3156
3170
  type: Component,
3157
- args: [{ selector: 'pry-admin-fields-select', template: "<div\n *ngIf=\"currentField$ | async as field\"\n [id]=\"'panel-field-' + field.id\"\n [attr.aria-labelledby]=\"'button-field-' + field.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.fields.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.fields.name' | i18n }} :\n <strong>{{ field.name }}</strong>\n </p>\n <p class=\"a-p\">{{ '@pry.admin.fields.description' | i18n }} :</p>\n <p class=\"a-p\">\n {{ '@pry.admin.fields.type' | i18n }} :\n <strong>{{ getTranslationType(field.type) | i18n }}</strong>\n </p>\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=\"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 <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
3171
+ args: [{ selector: 'pry-admin-fields-select', template: "<div\n *ngIf=\"currentField$ | async as field\"\n [id]=\"'panel-field-' + field.id\"\n [attr.aria-labelledby]=\"'button-field-' + field.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.fields.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.fields.name' | i18n }} :\n <strong>{{ field.name }}</strong>\n </p>\n <p class=\"a-p\">{{ '@pry.admin.fields.description' | i18n }} :</p>\n <p class=\"a-p\">\n {{ '@pry.admin.fields.type' | i18n }} :\n <strong>{{ getTranslationType(field.type) | i18n }}</strong>\n </p>\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=\"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" }]
3158
3172
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3159
3173
 
3160
3174
  var MetadataRulesActionTypes;
@@ -5552,22 +5566,22 @@ class AdminService {
5552
5566
  addMetadataRules(metadataRules) {
5553
5567
  return this.store
5554
5568
  .select(ConfigSelectors.refUrl)
5555
- .pipe(mergeMap((url) => this.httpClient.post(encodeURI(`${url}/meta-provisionning`), metadataRules)));
5569
+ .pipe(mergeMap((url) => this.httpClient.post(encodeURI(`${url}/meta-provisioning`), metadataRules)));
5556
5570
  }
5557
5571
  getMetadataRulesList() {
5558
5572
  return this.store
5559
5573
  .select(ConfigSelectors.refUrl)
5560
- .pipe(mergeMap((url) => this.httpClient.get(`${url}/meta-provisionning`)));
5574
+ .pipe(mergeMap((url) => this.httpClient.get(`${url}/meta-provisioning`)));
5561
5575
  }
5562
5576
  getMetadataRules(id) {
5563
5577
  return this.store
5564
5578
  .select(ConfigSelectors.refUrl)
5565
- .pipe(mergeMap((url) => this.httpClient.get(`${url}/meta-provisionning/id/${id}`)));
5579
+ .pipe(mergeMap((url) => this.httpClient.get(`${url}/meta-provisioning/id/${id}`)));
5566
5580
  }
5567
5581
  deleteMetadataRules(id) {
5568
5582
  return this.store
5569
5583
  .select(ConfigSelectors.refUrl)
5570
- .pipe(mergeMap((url) => this.httpClient.delete(`${url}/meta-provisionning/id/${id}`)));
5584
+ .pipe(mergeMap((url) => this.httpClient.delete(`${url}/meta-provisioning/id/${id}`)));
5571
5585
  }
5572
5586
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
5573
5587
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminService, providedIn: 'root' }); }
@@ -6376,6 +6390,16 @@ const enTranslations = {
6376
6390
  attributeDestination: 'Destination attribute',
6377
6391
  relationType: 'Relation type',
6378
6392
  selectRelationType: 'Select relation type'
6393
+ },
6394
+ association: {
6395
+ ABAC: 'ABAC Rule',
6396
+ LINK: 'Relation',
6397
+ NAMED_QUERY: 'Named query',
6398
+ WIDGET: 'Widget',
6399
+ DATASET: 'Dataset',
6400
+ OCLASS: 'Data model',
6401
+ DASHBOARD: 'Dashboard',
6402
+ FIELD: 'Data type'
6379
6403
  }
6380
6404
  },
6381
6405
  tooltip: {
@@ -6707,6 +6731,16 @@ const frTranslations = {
6707
6731
  attributeDestination: 'Attribut de destination',
6708
6732
  relationType: 'Type de relation',
6709
6733
  selectRelationType: 'Selectionnez un type de relation'
6734
+ },
6735
+ association: {
6736
+ ABAC: 'Règle ABAC',
6737
+ LINK: 'Relation',
6738
+ NAMED_QUERY: 'Requête nommée',
6739
+ WIDGET: 'Restitution',
6740
+ DATASET: 'Jeu de données',
6741
+ OCLASS: 'Modèle de données',
6742
+ DASHBOARD: 'Présentation',
6743
+ FIELD: 'Type métier'
6710
6744
  }
6711
6745
  },
6712
6746
  tooltip: {
@@ -6858,7 +6892,8 @@ class PryAdminModule {
6858
6892
  AdminFormDatasetComponent,
6859
6893
  AdminClassesCustomizeComponent,
6860
6894
  AdminClassesCustomizeTooltipComponent,
6861
- AdminClassesCustomizeSymbolComponent], imports: [CommonModule,
6895
+ AdminClassesCustomizeSymbolComponent,
6896
+ PryAssociationComponent], imports: [CommonModule,
6862
6897
  PryCoreModule,
6863
6898
  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,
6864
6899
  FormsModule,
@@ -6990,7 +7025,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
6990
7025
  AdminFormDatasetComponent,
6991
7026
  AdminClassesCustomizeComponent,
6992
7027
  AdminClassesCustomizeTooltipComponent,
6993
- AdminClassesCustomizeSymbolComponent
7028
+ AdminClassesCustomizeSymbolComponent,
7029
+ PryAssociationComponent
6994
7030
  ],
6995
7031
  imports: [
6996
7032
  CommonModule,