@provoly/dashboard 0.22.5 → 0.22.7

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 (560) hide show
  1. package/README.md +0 -2
  2. package/admin/components/admin-abac-rules/store/abac-rules.effects.d.ts +2 -2
  3. package/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.d.ts +8 -4
  4. package/admin/components/admin-classes/store/admin-class.effects.d.ts +2 -2
  5. package/admin/components/admin-fields/store/fields.effects.d.ts +2 -2
  6. package/admin/store/admin.effects.d.ts +3 -3
  7. package/components/metadata-editor/store/metadata.effects.d.ts +6 -6
  8. package/esm2022/admin/admin-routing.module.mjs +5 -5
  9. package/esm2022/admin/admin.module.mjs +6 -6
  10. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +5 -5
  11. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +5 -5
  12. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +5 -5
  13. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-view/admin-abac-rules-view.component.mjs +5 -5
  14. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules.component.mjs +5 -5
  15. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +5 -5
  16. package/esm2022/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.mjs +5 -5
  17. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +5 -5
  18. package/esm2022/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.mjs +5 -5
  19. package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +5 -5
  20. package/esm2022/admin/components/admin-abac-rules/store/abac-rules.effects.mjs +5 -5
  21. package/esm2022/admin/components/admin-abac-rules/store/abac-rules.service.mjs +4 -4
  22. package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +11 -10
  23. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +5 -5
  24. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +47 -33
  25. package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +5 -5
  26. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +5 -5
  27. package/esm2022/admin/components/admin-classes/admin-classes-new/admin-classes-new.component.mjs +4 -4
  28. package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +5 -5
  29. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +5 -5
  30. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +5 -5
  31. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +5 -5
  32. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +5 -5
  33. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +5 -5
  34. package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +5 -5
  35. package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +5 -5
  36. package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +5 -5
  37. package/esm2022/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.mjs +5 -5
  38. package/esm2022/admin/components/admin-dataset/admin-new-dataset/admin-new-dataset.component.mjs +4 -4
  39. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -5
  40. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +5 -5
  41. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +5 -5
  42. package/esm2022/admin/components/admin-environment/admin-environment-new/admin-environment-new.component.mjs +4 -4
  43. package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +5 -5
  44. package/esm2022/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.mjs +5 -5
  45. package/esm2022/admin/components/admin-environment/admin-environment.component.mjs +5 -5
  46. package/esm2022/admin/components/admin-environment/store/environment.effects.mjs +5 -5
  47. package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +5 -5
  48. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +5 -5
  49. package/esm2022/admin/components/admin-fields/admin-fields-new/admin-fields-new.component.mjs +4 -4
  50. package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +5 -5
  51. package/esm2022/admin/components/admin-fields/admin-fields.component.mjs +5 -5
  52. package/esm2022/admin/components/admin-fields/store/fields.effects.mjs +5 -5
  53. package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +5 -5
  54. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +5 -5
  55. package/esm2022/admin/components/admin-links/admin-links.component.mjs +5 -5
  56. package/esm2022/admin/components/admin-links/store/links.effects.mjs +5 -5
  57. package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +6 -6
  58. package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +5 -5
  59. package/esm2022/admin/components/admin-metadata/admin-metadata.component.mjs +5 -5
  60. package/esm2022/admin/components/admin-metadata/admin-new-metadata/admin-new-metadata.component.mjs +5 -5
  61. package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +5 -5
  62. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +5 -5
  63. package/esm2022/admin/components/admin-metadata/shared/list-metadata/list-metadata.module.mjs +5 -5
  64. package/esm2022/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.mjs +5 -5
  65. package/esm2022/admin/components/admin-metadata-rules/admin-edit-metadata-rules/admin-edit-metadata-rules.component.mjs +5 -5
  66. package/esm2022/admin/components/admin-metadata-rules/admin-metadata-rules.component.mjs +5 -5
  67. package/esm2022/admin/components/admin-metadata-rules/admin-new-metadata-rules/admin-new-metadata-rules.component.mjs +4 -4
  68. package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +5 -5
  69. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +5 -5
  70. package/esm2022/admin/components/admin-metadata-rules/store/metadata-rules.effects.mjs +5 -5
  71. package/esm2022/admin/components/admin-metadata-user/admin-metadata-user.component.mjs +5 -5
  72. package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +5 -5
  73. package/esm2022/admin/components/admin-metadata-user/admin-user-new-metadata/admin-user-new-metadata.component.mjs +5 -5
  74. package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +5 -5
  75. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +5 -5
  76. package/esm2022/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.mjs +5 -5
  77. package/esm2022/admin/components/admin-predicates/admin-predicates-new/admin-predicates-new.component.mjs +4 -4
  78. package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +5 -5
  79. package/esm2022/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.mjs +5 -5
  80. package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +5 -5
  81. package/esm2022/admin/components/admin-predicates/store/predicates.effects.mjs +5 -5
  82. package/esm2022/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.mjs +5 -5
  83. package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +5 -5
  84. package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +5 -5
  85. package/esm2022/admin/components/admin-title/admin-title.component.mjs +5 -5
  86. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +5 -5
  87. package/esm2022/admin/components/admin-user/admin-user.component.mjs +5 -5
  88. package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +5 -5
  89. package/esm2022/admin/components/admin.component.mjs +5 -5
  90. package/esm2022/admin/components/association/association.component.mjs +4 -4
  91. package/esm2022/admin/store/admin.effects.mjs +5 -5
  92. package/esm2022/admin/store/admin.reducer.mjs +1 -1
  93. package/esm2022/admin/store/admin.selectors.mjs +1 -1
  94. package/esm2022/admin/store/admin.service.mjs +5 -5
  95. package/esm2022/components/card/card.component.mjs +20 -20
  96. package/esm2022/components/card/card.module.mjs +5 -5
  97. package/esm2022/components/checkbox/checkbox.component.mjs +5 -5
  98. package/esm2022/components/checkbox/checkbox.module.mjs +5 -5
  99. package/esm2022/components/color-picker/color-picker.component.mjs +5 -5
  100. package/esm2022/components/color-picker/color-picker.module.mjs +5 -5
  101. package/esm2022/components/expand-panel/expand-panel.component.mjs +7 -7
  102. package/esm2022/components/expand-panel/expand-panel.module.mjs +5 -5
  103. package/esm2022/components/filter/filter.module.mjs +5 -5
  104. package/esm2022/components/filter/filter.pipe.mjs +4 -4
  105. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +5 -5
  106. package/esm2022/components/metadata-editor/metadata-editor.module.mjs +5 -5
  107. package/esm2022/components/metadata-editor/store/metadata.effects.mjs +5 -5
  108. package/esm2022/components/metadata-editor/store/metadata.service.mjs +5 -5
  109. package/esm2022/components/metadata-editor/style/css.component.mjs +4 -4
  110. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +5 -5
  111. package/esm2022/components/scheme-picker/scheme-picker.module.mjs +5 -5
  112. package/esm2022/components/scheme-picker/scheme.service.mjs +5 -5
  113. package/esm2022/components/sinceDate/sinceDate.module.mjs +5 -5
  114. package/esm2022/components/sinceDate/sinceDate.pipe.mjs +5 -5
  115. package/esm2022/components/stepper/step/step.component.mjs +4 -4
  116. package/esm2022/components/stepper/step-title.directive.mjs +5 -5
  117. package/esm2022/components/stepper/stepper.component.mjs +4 -4
  118. package/esm2022/components/stepper/stepper.module.mjs +5 -5
  119. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +5 -5
  120. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +5 -5
  121. package/esm2022/dataset/components/dataset.component.mjs +5 -5
  122. package/esm2022/dataset/dataset.module.mjs +6 -6
  123. package/esm2022/dataset/style/css.component.mjs +4 -4
  124. package/esm2022/filters/autocomplete/autocomplete.component.mjs +5 -5
  125. package/esm2022/filters/autocomplete/autocomplete.module.mjs +5 -5
  126. package/esm2022/filters/autocomplete/style/css.component.mjs +4 -4
  127. package/esm2022/filters/date/date-filter.component.mjs +5 -5
  128. package/esm2022/filters/date/date-filter.module.mjs +5 -5
  129. package/esm2022/filters/list/list-filter.component.mjs +5 -5
  130. package/esm2022/filters/list/list-filter.module.mjs +5 -5
  131. package/esm2022/filters/list/style/css.component.mjs +4 -4
  132. package/esm2022/filters/number/number-filter.component.mjs +5 -5
  133. package/esm2022/filters/number/number-filter.module.mjs +5 -5
  134. package/esm2022/filters/text/text-filter.component.mjs +5 -5
  135. package/esm2022/filters/text/text-filter.module.mjs +5 -5
  136. package/esm2022/import/components/import.component.mjs +5 -5
  137. package/esm2022/import/import-routing.module.mjs +5 -5
  138. package/esm2022/import/import.module.mjs +6 -6
  139. package/esm2022/import/store/import.effects.mjs +5 -5
  140. package/esm2022/import/store/import.service.mjs +5 -5
  141. package/esm2022/import/style/css.component.mjs +4 -4
  142. package/esm2022/lib/core/access/access.directive.mjs +6 -6
  143. package/esm2022/lib/core/access/access.guard.mjs +4 -4
  144. package/esm2022/lib/core/access/access.service.mjs +5 -5
  145. package/esm2022/lib/core/access/access.utils.mjs +1 -1
  146. package/esm2022/lib/core/auth/geoAuth.service.mjs +5 -5
  147. package/esm2022/lib/core/components/about/about.component.mjs +6 -6
  148. package/esm2022/lib/core/components/about/pry-about.module.mjs +5 -5
  149. package/esm2022/lib/core/components/accordion/accordion-item/accordion-item.component.mjs +5 -5
  150. package/esm2022/lib/core/components/accordion/accordion.component.mjs +5 -5
  151. package/esm2022/lib/core/components/base-layout/base-layout.component.mjs +5 -5
  152. package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +6 -6
  153. package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +4 -4
  154. package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +5 -5
  155. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +5 -5
  156. package/esm2022/lib/core/components/date-picker/date-picker.component.mjs +4 -4
  157. package/esm2022/lib/core/components/date-picker/date-picker.module.mjs +5 -5
  158. package/esm2022/lib/core/components/date-picker/date-range-highlight.pipe.mjs +4 -4
  159. package/esm2022/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.mjs +5 -5
  160. package/esm2022/lib/core/components/date-picker/time-picker/time-picker.component.mjs +4 -4
  161. package/esm2022/lib/core/components/edit-input/edit-input.component.mjs +5 -5
  162. package/esm2022/lib/core/components/edit-input/edit-input.module.mjs +5 -5
  163. package/esm2022/lib/core/components/ellipsis.directive.mjs +5 -5
  164. package/esm2022/lib/core/components/get-secured-image/get-secured-image.pipe.mjs +5 -5
  165. package/esm2022/lib/core/components/hidden-when-overlay/hidden-when-overlay.directive.mjs +5 -5
  166. package/esm2022/lib/core/components/hidden-when-overlay/hidden-when-overlay.module.mjs +5 -5
  167. package/esm2022/lib/core/components/icon/icon.component.mjs +5 -5
  168. package/esm2022/lib/core/components/icon/icon.module.mjs +5 -5
  169. package/esm2022/lib/core/components/modal/modal.component.mjs +4 -4
  170. package/esm2022/lib/core/components/modal/pry-modal.module.mjs +5 -5
  171. package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +5 -5
  172. package/esm2022/lib/core/components/modal-status/modal-status.module.mjs +6 -6
  173. package/esm2022/lib/core/components/nq-color-selector/nq-color-selector.component.mjs +5 -5
  174. package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +6 -6
  175. package/esm2022/lib/core/components/overlay/dialog-ref.mjs +1 -1
  176. package/esm2022/lib/core/components/overlay/dialog.service.mjs +5 -5
  177. package/esm2022/lib/core/components/overlay/overlay.directive.mjs +5 -5
  178. package/esm2022/lib/core/components/overlay/overlay.module.mjs +5 -5
  179. package/esm2022/lib/core/components/range/range.component.mjs +5 -5
  180. package/esm2022/lib/core/components/range/range.module.mjs +5 -5
  181. package/esm2022/lib/core/components/select/select-a11y.service.mjs +1 -1
  182. package/esm2022/lib/core/components/select/select.component.mjs +9 -8
  183. package/esm2022/lib/core/components/select/select.module.mjs +7 -6
  184. package/esm2022/lib/core/components/select-image/select-image.component.mjs +6 -6
  185. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +5 -5
  186. package/esm2022/lib/core/components/share/share.component.mjs +5 -5
  187. package/esm2022/lib/core/components/share/share.module.mjs +5 -5
  188. package/esm2022/lib/core/components/snackbar/snackbar/snackbar.component.mjs +5 -5
  189. package/esm2022/lib/core/components/snackbar/snackbar.module.mjs +5 -5
  190. package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +5 -5
  191. package/esm2022/lib/core/components/sort/sort-data.pipe.mjs +4 -4
  192. package/esm2022/lib/core/components/sort/sort-header/sort-header.component.mjs +5 -5
  193. package/esm2022/lib/core/components/sort/sort-header.directive.mjs +4 -4
  194. package/esm2022/lib/core/components/sort/sort-table.directive.mjs +4 -4
  195. package/esm2022/lib/core/components/sort/sort.module.mjs +5 -5
  196. package/esm2022/lib/core/components/tabs/tab-group.component.mjs +5 -5
  197. package/esm2022/lib/core/components/tabs/tab.component.mjs +5 -5
  198. package/esm2022/lib/core/components/toggle/toggle.component.mjs +5 -5
  199. package/esm2022/lib/core/components/toggle/toggle.module.mjs +5 -5
  200. package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +5 -5
  201. package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +5 -5
  202. package/esm2022/lib/core/components/upload/upload.component.mjs +5 -5
  203. package/esm2022/lib/core/core.module.mjs +6 -6
  204. package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +5 -5
  205. package/esm2022/lib/core/i18n/deep-merge.function.mjs +1 -1
  206. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -2
  207. package/esm2022/lib/core/i18n/i18n.module.mjs +5 -5
  208. package/esm2022/lib/core/i18n/i18n.pipe.mjs +5 -5
  209. package/esm2022/lib/core/i18n/i18n.service.mjs +5 -5
  210. package/esm2022/lib/core/model/display-options.interface.mjs +1 -1
  211. package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +5 -5
  212. package/esm2022/lib/core/store/aggregation/base-aggregation.service.mjs +4 -4
  213. package/esm2022/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.mjs +1 -2
  214. package/esm2022/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.mjs +5 -5
  215. package/esm2022/lib/core/store/category/category.effects.mjs +5 -5
  216. package/esm2022/lib/core/store/category/category.service.mjs +5 -5
  217. package/esm2022/lib/core/store/class/class.effects.mjs +5 -5
  218. package/esm2022/lib/core/store/class/class.selectors.mjs +1 -1
  219. package/esm2022/lib/core/store/class/class.service.mjs +5 -5
  220. package/esm2022/lib/core/store/config/config.effects.mjs +5 -5
  221. package/esm2022/lib/core/store/config/config.selectors.mjs +1 -1
  222. package/esm2022/lib/core/store/config/config.service.mjs +5 -5
  223. package/esm2022/lib/core/store/config/open-map-tiles.service.mjs +5 -5
  224. package/esm2022/lib/core/store/context-menu/context-menu.effects.mjs +5 -5
  225. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +5 -5
  226. package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +1 -1
  227. package/esm2022/lib/core/store/data-source/data-source.service.mjs +5 -5
  228. package/esm2022/lib/core/store/field/field.effects.mjs +5 -5
  229. package/esm2022/lib/core/store/field/field.selectors.mjs +1 -1
  230. package/esm2022/lib/core/store/field/field.service.mjs +5 -5
  231. package/esm2022/lib/core/store/image/image.effects.mjs +5 -5
  232. package/esm2022/lib/core/store/image/image.selectors.mjs +1 -1
  233. package/esm2022/lib/core/store/image/image.service.mjs +5 -5
  234. package/esm2022/lib/core/store/item/item.effects.mjs +5 -5
  235. package/esm2022/lib/core/store/item/item.service.mjs +5 -5
  236. package/esm2022/lib/core/store/raw/raw.service.mjs +5 -5
  237. package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +5 -5
  238. package/esm2022/lib/core/store/relation-types/relation-types.service.mjs +5 -5
  239. package/esm2022/lib/core/store/search/lat-lon-to-geographic-field-transformation.function.mjs +1 -1
  240. package/esm2022/lib/core/store/search/search.effects.mjs +5 -5
  241. package/esm2022/lib/core/store/search/search.service.mjs +5 -5
  242. package/esm2022/lib/core/symbol/symbol.service.mjs +5 -5
  243. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +5 -5
  244. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +5 -5
  245. package/esm2022/lib/core/ws/websocket.service.mjs +5 -5
  246. package/esm2022/lib/dashboard/action-bus/effect/action-bus.effects.mjs +5 -5
  247. package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +5 -5
  248. package/esm2022/lib/dashboard/base-widget.module.mjs +5 -5
  249. package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +5 -5
  250. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +5 -5
  251. package/esm2022/lib/dashboard/components/dashboard.component.mjs +5 -5
  252. package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +5 -5
  253. package/esm2022/lib/dashboard/components/metadata/metadata.component.mjs +5 -5
  254. package/esm2022/lib/dashboard/components/solve-collisions.function.mjs +1 -1
  255. package/esm2022/lib/dashboard/components/subscriptionner.directive.mjs +4 -4
  256. package/esm2022/lib/dashboard/components/vizualize-raw/vizualize-raw.component.mjs +5 -5
  257. package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +5 -5
  258. package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +5 -5
  259. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +5 -5
  260. package/esm2022/lib/dashboard/components/widgets/header/resultset-size.pipe.mjs +5 -5
  261. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +6 -6
  262. package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +5 -5
  263. package/esm2022/lib/dashboard/components/widgets/widget-filler/widget-filler.component.mjs +5 -5
  264. package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +21 -6
  265. package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.mjs +5 -5
  266. package/esm2022/lib/dashboard/components/widgets/widget-placeholder/widget-placeholder.component.mjs +5 -5
  267. package/esm2022/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.mjs +1 -1
  268. package/esm2022/lib/dashboard/dashboard.module.mjs +6 -6
  269. package/esm2022/lib/dashboard/filter/base-filter.component.mjs +5 -5
  270. package/esm2022/lib/dashboard/filter/base-filter.module.mjs +5 -5
  271. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +6 -6
  272. package/esm2022/lib/dashboard/filter/components/filter-instanciator/filter-instanciator.component.mjs +5 -5
  273. package/esm2022/lib/dashboard/filter/filter-factory.service.mjs +6 -6
  274. package/esm2022/lib/dashboard/filter/filter-loader.function.mjs +1 -1
  275. package/esm2022/lib/dashboard/filter/style/css.component.mjs +4 -4
  276. package/esm2022/lib/dashboard/item-utils.mjs +2 -2
  277. package/esm2022/lib/dashboard/resultset-utils.mjs +1 -1
  278. package/esm2022/lib/dashboard/store/dashboard-init.service.mjs +6 -6
  279. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +6 -6
  280. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +1 -1
  281. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +1 -4
  282. package/esm2022/lib/dashboard/store/manifest.service.mjs +5 -5
  283. package/esm2022/lib/dashboard/store/refresh.service.mjs +16 -11
  284. package/esm2022/lib/dashboard/store/title.service.mjs +5 -5
  285. package/esm2022/lib/dashboard/store/wms.service.mjs +5 -5
  286. package/esm2022/lib/dashboard/tooltip/base-tooltip.component.mjs +4 -4
  287. package/esm2022/lib/dashboard/tooltip/base-tooltip.module.mjs +5 -5
  288. package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +4 -4
  289. package/esm2022/lib/dashboard/tooltip/tooltip-factory.service.mjs +6 -6
  290. package/esm2022/lib/dashboard/tooltip/tooltip-loader.function.mjs +1 -1
  291. package/esm2022/lib/dashboard/widget-loader.function.mjs +1 -1
  292. package/esm2022/notification/components/notification/content/notification-content.component.mjs +5 -5
  293. package/esm2022/notification/components/notification/notification.component.mjs +5 -5
  294. package/esm2022/notification/notification.module.mjs +6 -6
  295. package/esm2022/notification/store/notification.effects.mjs +5 -5
  296. package/esm2022/notification/store/notification.service.mjs +5 -5
  297. package/esm2022/notification/style/css.component.mjs +4 -4
  298. package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +5 -5
  299. package/esm2022/pipeline/components/pipeline-editor/graph-serializer.utils.mjs +1 -1
  300. package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +5 -5
  301. package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +5 -5
  302. package/esm2022/pipeline/components/pipeline-properties-panel.component.mjs +4 -4
  303. package/esm2022/pipeline/factory/pipeline-component-factory.service.mjs +5 -5
  304. package/esm2022/pipeline/node-class/base-node.class.mjs +1 -1
  305. package/esm2022/pipeline/pipeline.module.mjs +6 -6
  306. package/esm2022/pipeline/store/pipeline.effects.mjs +5 -5
  307. package/esm2022/pipeline/store/pipeline.service.mjs +5 -5
  308. package/esm2022/pipeline/style/css.component.mjs +4 -4
  309. package/esm2022/pipeline-components/filter/component/filter.component.mjs +5 -5
  310. package/esm2022/pipeline-components/filter/filter.module.mjs +6 -6
  311. package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +5 -5
  312. package/esm2022/pipeline-components/input-datasource/input-datasource.module.mjs +6 -6
  313. package/esm2022/pipeline-components/noop/component/noop.component.mjs +5 -5
  314. package/esm2022/pipeline-components/noop/noop.module.mjs +6 -6
  315. package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +5 -5
  316. package/esm2022/pipeline-components/output-dataset/output-dataset.module.mjs +6 -6
  317. package/esm2022/pipeline-components/subgraph/component/empty.component.mjs +5 -5
  318. package/esm2022/pipeline-components/subgraph/node-class/sub-graph-node.class.mjs +1 -1
  319. package/esm2022/pipeline-components/subgraph/subgraph.module.mjs +6 -6
  320. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +6 -6
  321. package/esm2022/presentation/components/presentation.component.mjs +6 -6
  322. package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +5 -5
  323. package/esm2022/presentation/presentation.module.mjs +6 -6
  324. package/esm2022/presentation/style/css.component.mjs +5 -5
  325. package/esm2022/restitution/components/restitution/restitution.component.mjs +5 -5
  326. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +6 -6
  327. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +5 -5
  328. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +5 -5
  329. package/esm2022/restitution/restitution.module.mjs +6 -6
  330. package/esm2022/restitution/style/css.component.mjs +5 -5
  331. package/esm2022/search/components/choose-widget/choose-widget.component.mjs +5 -5
  332. package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +5 -5
  333. package/esm2022/search/components/edit-named-query-modal/edit-named-query-modal.component.mjs +5 -5
  334. package/esm2022/search/components/save-query/save-query.component.mjs +6 -6
  335. package/esm2022/search/components/save-query-button/save-query-button.component.mjs +5 -5
  336. package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +5 -5
  337. package/esm2022/search/search-fulltext/store/search-fulltext.effects.mjs +5 -5
  338. package/esm2022/search/search-fulltext/store/search-fulltext.service.mjs +4 -4
  339. package/esm2022/search/search-home/search-home.component.mjs +5 -5
  340. package/esm2022/search/search-mono-class/components/search-composed/search-composed.component.mjs +5 -5
  341. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +5 -5
  342. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +5 -5
  343. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +5 -5
  344. package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +5 -5
  345. package/esm2022/search/search-mono-class/store/search-mono-class.effects.mjs +5 -5
  346. package/esm2022/search/search-mono-class/store/search-mono-class.selectors.mjs +1 -1
  347. package/esm2022/search/search-mono-class/store/search-mono-class.service.mjs +4 -4
  348. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +5 -5
  349. package/esm2022/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.mjs +5 -5
  350. package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +5 -5
  351. package/esm2022/search/search-multi-class/store/search-multi-class.effects.mjs +5 -5
  352. package/esm2022/search/search-multi-class/store/search-multi-class.reducer.mjs +1 -1
  353. package/esm2022/search/search-multi-class/store/search-multi-class.selectors.mjs +1 -1
  354. package/esm2022/search/search-multi-class/store/search-multi-class.service.mjs +4 -4
  355. package/esm2022/search/search-tools/search-tools.component.mjs +5 -5
  356. package/esm2022/search/search.module.mjs +6 -6
  357. package/esm2022/search/style/css.component.mjs +5 -5
  358. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +13 -10
  359. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +5 -5
  360. package/esm2022/toolbox/components/delete/delete.component.mjs +5 -5
  361. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +5 -5
  362. package/esm2022/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.mjs +5 -5
  363. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +5 -5
  364. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +5 -5
  365. package/esm2022/toolbox/components/named-query/named-query.component.mjs +5 -5
  366. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +20 -18
  367. package/esm2022/toolbox/components/save-view/save-view.component.mjs +5 -5
  368. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +5 -5
  369. package/esm2022/toolbox/components/share/share.component.mjs +5 -5
  370. package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +5 -5
  371. package/esm2022/toolbox/components/toolbox-action/toolbox-action.component.mjs +5 -5
  372. package/esm2022/toolbox/components/toolbox-action-instanciator/toolbox-action-instanciator.component.mjs +5 -5
  373. package/esm2022/toolbox/components/toolbox.component.mjs +12 -9
  374. package/esm2022/toolbox/style/css.component.mjs +5 -5
  375. package/esm2022/toolbox/toolbox.module.mjs +5 -5
  376. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +5 -5
  377. package/esm2022/tooltips/attribute/attribute-tooltip.module.mjs +5 -5
  378. package/esm2022/tooltips/cluster/cluster-tooltip.component.mjs +4 -4
  379. package/esm2022/tooltips/cluster/cluster-tooltip.module.mjs +5 -5
  380. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +6 -6
  381. package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +5 -5
  382. package/esm2022/widgets/widget-aggregated-chart/widget-aggregated-chart.module.mjs +6 -6
  383. package/esm2022/widgets/widget-chart/component/vega-error.handler.mjs +1 -1
  384. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +6 -6
  385. package/esm2022/widgets/widget-chart/style/css.component.mjs +4 -4
  386. package/esm2022/widgets/widget-chart/widget-chart.module.mjs +6 -6
  387. package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +5 -5
  388. package/esm2022/widgets/widget-detail/style/css.component.mjs +4 -4
  389. package/esm2022/widgets/widget-detail/widget-detail.module.mjs +6 -6
  390. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +7 -8
  391. package/esm2022/widgets/widget-graph/layout/simple.function.mjs +1 -1
  392. package/esm2022/widgets/widget-graph/style/css.component.mjs +5 -5
  393. package/esm2022/widgets/widget-graph/widget-graph.module.mjs +6 -6
  394. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +5 -5
  395. package/esm2022/widgets/widget-iframe/messaging/iframe-messaging.service.mjs +4 -4
  396. package/esm2022/widgets/widget-iframe/style/css.component.mjs +4 -4
  397. package/esm2022/widgets/widget-iframe/widget-iframe.module.mjs +6 -6
  398. package/esm2022/widgets/widget-image/component/widget-image.component.mjs +5 -5
  399. package/esm2022/widgets/widget-image/style/css.component.mjs +4 -4
  400. package/esm2022/widgets/widget-image/widget-image.module.mjs +5 -5
  401. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +4 -4
  402. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -7
  403. package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +1 -1
  404. package/esm2022/widgets/widget-map/interaction/layer-slider.class.mjs +1 -1
  405. package/esm2022/widgets/widget-map/interaction/selection-interaction.class.mjs +1 -1
  406. package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +5 -5
  407. package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +5 -5
  408. package/esm2022/widgets/widget-map/style/css.component.mjs +5 -5
  409. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +1 -1
  410. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +1 -1
  411. package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +1 -1
  412. package/esm2022/widgets/widget-map/widget-map.module.mjs +6 -6
  413. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +5 -5
  414. package/esm2022/widgets/widget-table/expand-value/detach-row.directive.mjs +5 -5
  415. package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +4 -4
  416. package/esm2022/widgets/widget-table/expand-value/format-number.pipe.mjs +5 -5
  417. package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +5 -5
  418. package/esm2022/widgets/widget-table/resizable/resizable.component.mjs +4 -4
  419. package/esm2022/widgets/widget-table/resizable/resizable.directive.mjs +6 -6
  420. package/esm2022/widgets/widget-table/style/css.component.mjs +4 -4
  421. package/esm2022/widgets/widget-table/widget-table.module.mjs +6 -6
  422. package/esm2022/widgets/widget-template/component/widget-template.component.mjs +5 -5
  423. package/esm2022/widgets/widget-template/style/css.component.mjs +4 -4
  424. package/esm2022/widgets/widget-template/widget-template.module.mjs +6 -6
  425. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +5 -5
  426. package/esm2022/widgets/widget-tile/style/css.component.mjs +4 -4
  427. package/esm2022/widgets/widget-tile/widget-tile.module.mjs +6 -6
  428. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +6 -6
  429. package/esm2022/widgets/widget-vega/style/css.component.mjs +4 -4
  430. package/esm2022/widgets/widget-vega/widget-vega.module.mjs +6 -6
  431. package/fesm2022/provoly-dashboard-admin.mjs +380 -365
  432. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  433. package/fesm2022/provoly-dashboard-components-card.mjs +23 -23
  434. package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
  435. package/fesm2022/provoly-dashboard-components-checkbox.mjs +8 -8
  436. package/fesm2022/provoly-dashboard-components-checkbox.mjs.map +1 -1
  437. package/fesm2022/provoly-dashboard-components-color-picker.mjs +8 -8
  438. package/fesm2022/provoly-dashboard-components-color-picker.mjs.map +1 -1
  439. package/fesm2022/provoly-dashboard-components-expand-panel.mjs +10 -10
  440. package/fesm2022/provoly-dashboard-components-expand-panel.mjs.map +1 -1
  441. package/fesm2022/provoly-dashboard-components-filter.mjs +7 -7
  442. package/fesm2022/provoly-dashboard-components-filter.mjs.map +1 -1
  443. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +19 -19
  444. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  445. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +12 -12
  446. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  447. package/fesm2022/provoly-dashboard-components-sinceDate.mjs +8 -8
  448. package/fesm2022/provoly-dashboard-components-sinceDate.mjs.map +1 -1
  449. package/fesm2022/provoly-dashboard-components-stepper.mjs +14 -14
  450. package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -1
  451. package/fesm2022/provoly-dashboard-dataset.mjs +20 -20
  452. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  453. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +11 -11
  454. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  455. package/fesm2022/provoly-dashboard-filters-date.mjs +8 -8
  456. package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
  457. package/fesm2022/provoly-dashboard-filters-list.mjs +11 -11
  458. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  459. package/fesm2022/provoly-dashboard-filters-number.mjs +8 -8
  460. package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
  461. package/fesm2022/provoly-dashboard-filters-text.mjs +8 -8
  462. package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
  463. package/fesm2022/provoly-dashboard-import.mjs +24 -24
  464. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  465. package/fesm2022/provoly-dashboard-notification.mjs +24 -24
  466. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  467. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +9 -9
  468. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  469. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +9 -9
  470. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
  471. package/fesm2022/provoly-dashboard-pipeline-components-noop.mjs +9 -9
  472. package/fesm2022/provoly-dashboard-pipeline-components-noop.mjs.map +1 -1
  473. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +9 -9
  474. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
  475. package/fesm2022/provoly-dashboard-pipeline-components-subgraph.mjs +9 -9
  476. package/fesm2022/provoly-dashboard-pipeline-components-subgraph.mjs.map +1 -1
  477. package/fesm2022/provoly-dashboard-pipeline.mjs +35 -35
  478. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  479. package/fesm2022/provoly-dashboard-presentation.mjs +23 -23
  480. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  481. package/fesm2022/provoly-dashboard-restitution.mjs +26 -26
  482. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  483. package/fesm2022/provoly-dashboard-search.mjs +95 -95
  484. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  485. package/fesm2022/provoly-dashboard-toolbox.mjs +98 -90
  486. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  487. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +8 -8
  488. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  489. package/fesm2022/provoly-dashboard-tooltips-cluster.mjs +7 -7
  490. package/fesm2022/provoly-dashboard-tooltips-cluster.mjs.map +1 -1
  491. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +14 -14
  492. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  493. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +13 -13
  494. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  495. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +12 -12
  496. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
  497. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +15 -16
  498. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  499. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +15 -15
  500. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  501. package/fesm2022/provoly-dashboard-widgets-widget-image.mjs +11 -11
  502. package/fesm2022/provoly-dashboard-widgets-widget-image.mjs.map +1 -1
  503. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +26 -26
  504. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  505. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +35 -35
  506. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  507. package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +12 -12
  508. package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -1
  509. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +12 -12
  510. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  511. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +13 -13
  512. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  513. package/fesm2022/provoly-dashboard.mjs +558 -542
  514. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  515. package/lib/core/components/select/select.module.d.ts +2 -1
  516. package/lib/core/store/image/image.effects.d.ts +3 -3
  517. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +1 -1
  518. package/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.d.ts +8 -1
  519. package/lib/dashboard/store/dashboard.effects.d.ts +7 -7
  520. package/lib/dashboard/store/dashboard.selectors.d.ts +0 -13
  521. package/lib/dashboard/store/refresh.service.d.ts +3 -1
  522. package/package.json +40 -40
  523. package/presentation/style/_o-pry-presentation.scss +0 -3
  524. package/schematics/ng-add/index.js.map +1 -1
  525. package/search/search-mono-class/store/search-mono-class.effects.d.ts +3 -3
  526. package/styles/components/_a-chip.scss +6 -0
  527. package/styles/components/_a-pry-select.scss +13 -0
  528. package/styles/components/_a-range-slider.scss +4 -5
  529. package/styles/components/_m-nav-links.scss +2 -7
  530. package/styles/components/_o-widget.scss +6 -0
  531. package/styles-theme/abstracts-theme/variables/_variables-colors.scss +4 -3
  532. package/styles-theme/base-theme/_typography.theme.scss +5 -2
  533. package/styles-theme/components-theme/_a-btn.theme.scss +3 -7
  534. package/styles-theme/components-theme/_a-label.theme.scss +1 -0
  535. package/styles-theme/components-theme/_a-pry-select.theme.scss +4 -6
  536. package/styles-theme/components-theme/_a-range-slider.theme.scss +16 -16
  537. package/styles-theme/components-theme/_a-table.theme.scss +2 -2
  538. package/styles-theme/components-theme/_m-btn-sorttable.theme.scss +3 -3
  539. package/styles-theme/components-theme/_m-nav-links.theme.scss +18 -0
  540. package/styles-theme/components-theme/_o-pry-presentation.theme.scss +9 -0
  541. package/styles-theme/components-theme/_o-tabs.theme.scss +1 -1
  542. package/styles-theme/layout-theme/_o-base-layout.theme.scss +1 -0
  543. package/styles-theme/main-theme.scss +1 -0
  544. package/toolbox/components/automate-refresh/automate-refresh.component.d.ts +3 -1
  545. package/toolbox/components/refresh-datasets/refresh-datasets.component.d.ts +3 -2
  546. package/widgets/widget-aggregated-chart/style/_o-widget-chart.scss +3 -0
  547. package/widgets/widget-graph/component/widget-graph.component.d.ts +0 -1
  548. package/widgets/widget-graph/style/_o-widget-graph.scss +14 -0
  549. package/schematics/ng-add/index.spec.d.ts +0 -1
  550. package/schematics/ng-add/index.spec.js +0 -87
  551. package/schematics/ng-add/index.spec.js.map +0 -1
  552. package/schematics/ng-update/version-0-13/index.spec.d.ts +0 -1
  553. package/schematics/ng-update/version-0-13/index.spec.js +0 -184
  554. package/schematics/ng-update/version-0-13/index.spec.js.map +0 -1
  555. package/schematics/ng-update/version-0-14/index.spec.d.ts +0 -1
  556. package/schematics/ng-update/version-0-14/index.spec.js +0 -51
  557. package/schematics/ng-update/version-0-14/index.spec.js.map +0 -1
  558. package/schematics/ng-update/version-0-15/index.spec.d.ts +0 -1
  559. package/schematics/ng-update/version-0-15/index.spec.js +0 -51
  560. package/schematics/ng-update/version-0-15/index.spec.js.map +0 -1
@@ -20,7 +20,7 @@ import * as i5$3 from '@provoly/dashboard/components/metadata-editor';
20
20
  import { MetadataSelectors, MetadataActions, PryExpandPanelModule } from '@provoly/dashboard/components/metadata-editor';
21
21
  import * as i2 from '@angular/router';
22
22
  import { RouterModule } from '@angular/router';
23
- import { switchMap, mergeMap, combineLatest, of, map, filter, combineLatestWith, Subscription, BehaviorSubject, distinctUntilChanged as distinctUntilChanged$1, debounceTime, startWith, Subject, zip, takeUntil, catchError, withLatestFrom, tap } from 'rxjs';
23
+ import { switchMap, mergeMap, combineLatest, of, map, filter, BehaviorSubject, combineLatestWith, Subscription, distinctUntilChanged as distinctUntilChanged$1, debounceTime, startWith, Subject, zip, takeUntil, catchError, withLatestFrom, tap } from 'rxjs';
24
24
  import { v4 } from 'uuid';
25
25
  import equal from 'fast-deep-equal/es6';
26
26
  import { distinctUntilChanged, map as map$1, filter as filter$1, mergeMap as mergeMap$1, catchError as catchError$1 } from 'rxjs/operators';
@@ -280,13 +280,13 @@ class SelectMetadataComponent {
280
280
  onSelectMetadata(id) {
281
281
  this.metadataSelected.emit(id);
282
282
  }
283
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectMetadataComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
284
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectMetadataComponent, selector: "pry-abac-select-metadata", outputs: { metadataSelected: "metadataSelected" }, ngImport: i0, template: "<ng-container *ngFor=\"let metadata of metadata$ | async\">\n <button class=\"m-pry-overlay-item\" (click)=\"onSelectMetadata(metadata.id)\">\n {{ metadata.name }}\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
283
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SelectMetadataComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
284
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SelectMetadataComponent, selector: "pry-abac-select-metadata", outputs: { metadataSelected: "metadataSelected" }, ngImport: i0, template: "<ng-container *ngFor=\"let metadata of metadata$ | async\">\n <button class=\"m-pry-overlay-item\" (click)=\"onSelectMetadata(metadata.id)\">\n {{ metadata.name }}\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
285
285
  }
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectMetadataComponent, decorators: [{
286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SelectMetadataComponent, decorators: [{
287
287
  type: Component,
288
288
  args: [{ selector: 'pry-abac-select-metadata', template: "<ng-container *ngFor=\"let metadata of metadata$ | async\">\n <button class=\"m-pry-overlay-item\" (click)=\"onSelectMetadata(metadata.id)\">\n {{ metadata.name }}\n </button>\n</ng-container>\n" }]
289
- }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { metadataSelected: [{
289
+ }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { metadataSelected: [{
290
290
  type: Output
291
291
  }] } });
292
292
 
@@ -302,13 +302,13 @@ class SelectAttributeComponent {
302
302
  onSelectAttribute(classId, attributeId) {
303
303
  this.attributeSelected.emit({ attribute: attributeId, class: classId });
304
304
  }
305
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectAttributeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
306
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectAttributeComponent, selector: "pry-abac-select-attribute", outputs: { attributeSelected: "attributeSelected" }, ngImport: i0, template: "<ng-container *ngFor=\"let class of classes$ | async\">\n <button\n class=\"m-pry-overlay-item\"\n *ngFor=\"let attribute of class.attributes\"\n (click)=\"onSelectAttribute(class.id, attribute.id)\"\n >\n {{ class.name }} - {{ attribute.name }}\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SelectAttributeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
306
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SelectAttributeComponent, selector: "pry-abac-select-attribute", outputs: { attributeSelected: "attributeSelected" }, ngImport: i0, template: "<ng-container *ngFor=\"let class of classes$ | async\">\n <button\n class=\"m-pry-overlay-item\"\n *ngFor=\"let attribute of class.attributes\"\n (click)=\"onSelectAttribute(class.id, attribute.id)\"\n >\n {{ class.name }} - {{ attribute.name }}\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
307
307
  }
308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectAttributeComponent, decorators: [{
308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SelectAttributeComponent, decorators: [{
309
309
  type: Component,
310
310
  args: [{ selector: 'pry-abac-select-attribute', template: "<ng-container *ngFor=\"let class of classes$ | async\">\n <button\n class=\"m-pry-overlay-item\"\n *ngFor=\"let attribute of class.attributes\"\n (click)=\"onSelectAttribute(class.id, attribute.id)\"\n >\n {{ class.name }} - {{ attribute.name }}\n </button>\n</ng-container>\n" }]
311
- }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { attributeSelected: [{
311
+ }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { attributeSelected: [{
312
312
  type: Output
313
313
  }] } });
314
314
 
@@ -389,13 +389,13 @@ class AttributeConditionComponent {
389
389
  onDeleteAttributeCondition(conditionId, parentId) {
390
390
  this.store.dispatch(AbacRulesActions.removeEditAbacRuleConditionFromComposed({ conditionId: parentId, childrenId: conditionId }));
391
391
  }
392
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AttributeConditionComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
393
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AttributeConditionComponent, selector: "pry-attribute-condition", inputs: { readonly: "readonly", id: "id" }, ngImport: i0, template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"attribute$ | async as attr; else noAttribute\">\n <ng-container *ngIf=\"field$ | async as field; else noField\">\n <div class=\"o-pry-attribute-condition\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-pressed=\"false\"\n *ngIf=\"!readonly\"\n (click)=\"onOpenPanel()\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.admin.abac-rules.delete' | i18n }}</span>\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <button\n class=\"pry-condition-delete\"\n (click)=\"onDeleteAttributeCondition(condition.id, condition.parentId)\"\n >\n {{ '@pry.admin.abac-rules.delete' | i18n }}\n </button>\n </div>\n </div>\n </ng-template>\n </button>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"attr_name\">Name</label>\n <input id=\"attr_name\" class=\"a-form-field\" type=\"text\" [value]=\"attr.name\" readonly />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_operator\">???</label>\n <pry-select\n id=\"condition_operator\"\n [style.width.px]=\"160\"\n [items]=\"operatorOptions$ | async\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n [ngModel]=\"condition.operator\"\n (ngModelChange)=\"onChangeOperator($event, condition.id)\"\n [readonly]=\"readonly\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_value\">Name</label>\n <input\n id=\"condition_value\"\n [readonly]=\"readonly\"\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"condition.value\"\n (focusout)=\"onChangeValue($event, condition.id)\"\n />\n </div>\n </div>\n </ng-container>\n <ng-template #noField> Loading field ...</ng-template>\n </ng-container>\n <ng-template #noAttribute> Loading attribute ...</ng-template>\n</ng-container>\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: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "directive", type: i5.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i5.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
392
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttributeConditionComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
393
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AttributeConditionComponent, selector: "pry-attribute-condition", inputs: { readonly: "readonly", id: "id" }, ngImport: i0, template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"attribute$ | async as attr; else noAttribute\">\n <ng-container *ngIf=\"field$ | async as field; else noField\">\n <div class=\"o-pry-attribute-condition\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-pressed=\"false\"\n *ngIf=\"!readonly\"\n (click)=\"onOpenPanel()\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.admin.abac-rules.delete' | i18n }}</span>\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <button\n class=\"pry-condition-delete\"\n (click)=\"onDeleteAttributeCondition(condition.id, condition.parentId)\"\n >\n {{ '@pry.admin.abac-rules.delete' | i18n }}\n </button>\n </div>\n </div>\n </ng-template>\n </button>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"attr_name\">Name</label>\n <input id=\"attr_name\" class=\"a-form-field\" type=\"text\" [value]=\"attr.name\" readonly />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_operator\">???</label>\n <pry-select\n id=\"condition_operator\"\n [style.width.px]=\"160\"\n [items]=\"operatorOptions$ | async\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n [ngModel]=\"condition.operator\"\n (ngModelChange)=\"onChangeOperator($event, condition.id)\"\n [readonly]=\"readonly\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_value\">Name</label>\n <input\n id=\"condition_value\"\n [readonly]=\"readonly\"\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"condition.value\"\n (focusout)=\"onChangeValue($event, condition.id)\"\n />\n </div>\n </div>\n </ng-container>\n <ng-template #noField> Loading field ...</ng-template>\n </ng-container>\n <ng-template #noAttribute> Loading attribute ...</ng-template>\n</ng-container>\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: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "directive", type: i5.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i5.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
394
394
  }
395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AttributeConditionComponent, decorators: [{
395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttributeConditionComponent, decorators: [{
396
396
  type: Component,
397
397
  args: [{ selector: 'pry-attribute-condition', template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"attribute$ | async as attr; else noAttribute\">\n <ng-container *ngIf=\"field$ | async as field; else noField\">\n <div class=\"o-pry-attribute-condition\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-pressed=\"false\"\n *ngIf=\"!readonly\"\n (click)=\"onOpenPanel()\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.admin.abac-rules.delete' | i18n }}</span>\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <button\n class=\"pry-condition-delete\"\n (click)=\"onDeleteAttributeCondition(condition.id, condition.parentId)\"\n >\n {{ '@pry.admin.abac-rules.delete' | i18n }}\n </button>\n </div>\n </div>\n </ng-template>\n </button>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"attr_name\">Name</label>\n <input id=\"attr_name\" class=\"a-form-field\" type=\"text\" [value]=\"attr.name\" readonly />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_operator\">???</label>\n <pry-select\n id=\"condition_operator\"\n [style.width.px]=\"160\"\n [items]=\"operatorOptions$ | async\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n [ngModel]=\"condition.operator\"\n (ngModelChange)=\"onChangeOperator($event, condition.id)\"\n [readonly]=\"readonly\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_value\">Name</label>\n <input\n id=\"condition_value\"\n [readonly]=\"readonly\"\n type=\"text\"\n class=\"a-form-field\"\n [value]=\"condition.value\"\n (focusout)=\"onChangeValue($event, condition.id)\"\n />\n </div>\n </div>\n </ng-container>\n <ng-template #noField> Loading field ...</ng-template>\n </ng-container>\n <ng-template #noAttribute> Loading attribute ...</ng-template>\n</ng-container>\n" }]
398
- }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { readonly: [{
398
+ }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { readonly: [{
399
399
  type: Input
400
400
  }], id: [{
401
401
  type: Input
@@ -447,13 +447,13 @@ class MetadataConditionComponent {
447
447
  this.deleteConditionOpen = false;
448
448
  this.store.dispatch(AbacRulesActions.removeEditAbacRuleConditionFromComposed({ conditionId: parentId, childrenId: conditionId }));
449
449
  }
450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataConditionComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
451
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataConditionComponent, selector: "pry-metadata-condition", inputs: { readonly: "readonly", id: "id" }, ngImport: i0, template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"metadata$ | async as metadata; else noMetadata\">\n <div class=\"o-pry-metadata-condition\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-pressed=\"false\"\n (click)=\"deleteConditionOpen = true\"\n [pryOverlay]=\"deleteConditionTpl\"\n [(overlayOpen)]=\"deleteConditionOpen\"\n >\n <pry-icon *ngIf=\"!readonly\" iconSvg=\"drag_indicator\"></pry-icon>\n <span class=\"u-visually-hidden\">???</span>\n </button>\n\n <ng-template #deleteConditionTpl>\n <button class=\"m-pry-overlay-item\" (click)=\"onDeleteMetadataCondition(condition.id, condition.parentId)\">\n {{ '@pry.admin.abac-rules.delete' | i18n }}\n </button>\n </ng-template>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"metadata_name\">Name</label>\n <input id=\"metadata_name\" class=\"a-form-field\" type=\"text\" [value]=\"metadata.name\" readonly />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"metadata_operator\">???</label>\n <pry-select\n id=\"metadata_operator\"\n [readonly]=\"readonly\"\n [style.width.px]=\"160\"\n [items]=\"operators$ | async\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n [ngModel]=\"condition.operator\"\n (ngModelChange)=\"onChangeOperator($event, condition.id)\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_value\">???</label>\n <input\n id=\"condition_value\"\n class=\"a-form-field\"\n [readonly]=\"readonly\"\n type=\"text\"\n [style.width.px]=\"200\"\n [value]=\"condition.value\"\n (focusout)=\"onChangeValue($event, condition.id)\"\n />\n </div>\n\n <button\n type=\"button\"\n aria-pressed=\"false\"\n *ngIf=\"!readonly\"\n class=\"a-btn a-btn--select -size-sm\"\n [pryOverlay]=\"metadataUserTpl\"\n [(overlayOpen)]=\"metadataUserOpen\"\n (click)=\"metadataUserOpen = true\"\n >\n {{ '@pry.admin.abac-rules.metadataUser' | i18n }}\n </button>\n\n <ng-template #metadataUserTpl>\n <div class=\"m-pry-overlay-wrapper\">\n <ng-container *ngFor=\"let metadataUser of metadataUsers$ | async\">\n <button class=\"m-pry-overlay-item\" (click)=\"onSelectMetadataUser(condition.id, metadataUser)\">\n {{ metadataUser.name }}\n </button>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #noMetadata> Loading ...</ng-template>\n</ng-container>\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: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "directive", type: i4.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
450
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: MetadataConditionComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
451
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: MetadataConditionComponent, selector: "pry-metadata-condition", inputs: { readonly: "readonly", id: "id" }, ngImport: i0, template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"metadata$ | async as metadata; else noMetadata\">\n <div class=\"o-pry-metadata-condition\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-pressed=\"false\"\n (click)=\"deleteConditionOpen = true\"\n [pryOverlay]=\"deleteConditionTpl\"\n [(overlayOpen)]=\"deleteConditionOpen\"\n >\n <pry-icon *ngIf=\"!readonly\" iconSvg=\"drag_indicator\"></pry-icon>\n <span class=\"u-visually-hidden\">???</span>\n </button>\n\n <ng-template #deleteConditionTpl>\n <button class=\"m-pry-overlay-item\" (click)=\"onDeleteMetadataCondition(condition.id, condition.parentId)\">\n {{ '@pry.admin.abac-rules.delete' | i18n }}\n </button>\n </ng-template>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"metadata_name\">Name</label>\n <input id=\"metadata_name\" class=\"a-form-field\" type=\"text\" [value]=\"metadata.name\" readonly />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"metadata_operator\">???</label>\n <pry-select\n id=\"metadata_operator\"\n [readonly]=\"readonly\"\n [style.width.px]=\"160\"\n [items]=\"operators$ | async\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n [ngModel]=\"condition.operator\"\n (ngModelChange)=\"onChangeOperator($event, condition.id)\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_value\">???</label>\n <input\n id=\"condition_value\"\n class=\"a-form-field\"\n [readonly]=\"readonly\"\n type=\"text\"\n [style.width.px]=\"200\"\n [value]=\"condition.value\"\n (focusout)=\"onChangeValue($event, condition.id)\"\n />\n </div>\n\n <button\n type=\"button\"\n aria-pressed=\"false\"\n *ngIf=\"!readonly\"\n class=\"a-btn a-btn--select -size-sm\"\n [pryOverlay]=\"metadataUserTpl\"\n [(overlayOpen)]=\"metadataUserOpen\"\n (click)=\"metadataUserOpen = true\"\n >\n {{ '@pry.admin.abac-rules.metadataUser' | i18n }}\n </button>\n\n <ng-template #metadataUserTpl>\n <div class=\"m-pry-overlay-wrapper\">\n <ng-container *ngFor=\"let metadataUser of metadataUsers$ | async\">\n <button class=\"m-pry-overlay-item\" (click)=\"onSelectMetadataUser(condition.id, metadataUser)\">\n {{ metadataUser.name }}\n </button>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #noMetadata> Loading ...</ng-template>\n</ng-container>\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: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "directive", type: i4.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
452
452
  }
453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataConditionComponent, decorators: [{
453
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: MetadataConditionComponent, decorators: [{
454
454
  type: Component,
455
455
  args: [{ selector: 'pry-metadata-condition', template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"metadata$ | async as metadata; else noMetadata\">\n <div class=\"o-pry-metadata-condition\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-pressed=\"false\"\n (click)=\"deleteConditionOpen = true\"\n [pryOverlay]=\"deleteConditionTpl\"\n [(overlayOpen)]=\"deleteConditionOpen\"\n >\n <pry-icon *ngIf=\"!readonly\" iconSvg=\"drag_indicator\"></pry-icon>\n <span class=\"u-visually-hidden\">???</span>\n </button>\n\n <ng-template #deleteConditionTpl>\n <button class=\"m-pry-overlay-item\" (click)=\"onDeleteMetadataCondition(condition.id, condition.parentId)\">\n {{ '@pry.admin.abac-rules.delete' | i18n }}\n </button>\n </ng-template>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"metadata_name\">Name</label>\n <input id=\"metadata_name\" class=\"a-form-field\" type=\"text\" [value]=\"metadata.name\" readonly />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"metadata_operator\">???</label>\n <pry-select\n id=\"metadata_operator\"\n [readonly]=\"readonly\"\n [style.width.px]=\"160\"\n [items]=\"operators$ | async\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n [ngModel]=\"condition.operator\"\n (ngModelChange)=\"onChangeOperator($event, condition.id)\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label u-visually-hidden\" for=\"condition_value\">???</label>\n <input\n id=\"condition_value\"\n class=\"a-form-field\"\n [readonly]=\"readonly\"\n type=\"text\"\n [style.width.px]=\"200\"\n [value]=\"condition.value\"\n (focusout)=\"onChangeValue($event, condition.id)\"\n />\n </div>\n\n <button\n type=\"button\"\n aria-pressed=\"false\"\n *ngIf=\"!readonly\"\n class=\"a-btn a-btn--select -size-sm\"\n [pryOverlay]=\"metadataUserTpl\"\n [(overlayOpen)]=\"metadataUserOpen\"\n (click)=\"metadataUserOpen = true\"\n >\n {{ '@pry.admin.abac-rules.metadataUser' | i18n }}\n </button>\n\n <ng-template #metadataUserTpl>\n <div class=\"m-pry-overlay-wrapper\">\n <ng-container *ngFor=\"let metadataUser of metadataUsers$ | async\">\n <button class=\"m-pry-overlay-item\" (click)=\"onSelectMetadataUser(condition.id, metadataUser)\">\n {{ metadataUser.name }}\n </button>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #noMetadata> Loading ...</ng-template>\n</ng-container>\n" }]
456
- }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { readonly: [{
456
+ }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { readonly: [{
457
457
  type: Input
458
458
  }], id: [{
459
459
  type: Input
@@ -498,13 +498,13 @@ class ComposedConditionComponent {
498
498
  property: { type: 'type', value: conditionType }
499
499
  }));
500
500
  }
501
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComposedConditionComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
502
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ComposedConditionComponent, selector: "pry-composed-condition", inputs: { id: "id", readonly: "readonly", rootElement: "rootElement" }, ngImport: i0, template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"condition.type === OR || condition.type === AND; else metaOrAttributeCondition\">\n <div class=\"o-pry-composed-condition-wrapper\" [class.root-element]=\"rootElement\">\n <div class=\"o-pry-composed-condition\">\n <div class=\"o-pry-composed-condition__type -vertical-bar\">\n <div class=\"o-pry-composed-condition__type__content\">\n <pry-toggle\n leftword=\"ET\"\n rightword=\"OU\"\n [ngModel]=\"condition.type === AND\"\n (ngModelChange)=\"onChangeConditionType($event ? AND : OR, condition.id)\"\n [alwaysActive]=\"true\"\n [disabled]=\"readonly\"\n ></pry-toggle>\n </div>\n </div>\n\n <div class=\"o-pry-composed-condition__content\">\n <ng-container *ngFor=\"let id of condition.composed\">\n <pry-composed-condition [readonly]=\"readonly\" [id]=\"id\"></pry-composed-condition>\n </ng-container>\n\n <ng-container *ngIf=\"!readonly\">\n <ng-container *ngIf=\"editAbacRuleType$ | async as ruleType\">\n <div>\n <button\n type=\"button\"\n aria-pressed=\"false\"\n class=\"a-btn a-btn--iconcircle-text\"\n (click)=\"panelOpen = true\"\n [pryOverlay]=\"selectOverlay\"\n [(overlayOpen)]=\"panelOpen\"\n pryOverlayPosition=\"start-bottom\"\n >\n <span class=\"a-btn--iconcircle-text__icon-wrapper\">\n <pry-icon iconSvg=\"add\" [height]=\"14\" [width]=\"14\"></pry-icon>\n </span>\n <span>\n {{\n '@pry.admin.abac-rules.form.' + (ruleType === ATTRIBUTE ? 'addAttribute' : 'addMetadata') | i18n\n }}\n </span>\n </button>\n </div>\n\n <ng-template #selectOverlay>\n <ng-container *ngIf=\"ruleType === ATTRIBUTE; else metadataType\">\n <pry-abac-select-attribute\n (attributeSelected)=\"onAddNewAttribute($event, condition.id)\"\n ></pry-abac-select-attribute>\n </ng-container>\n <ng-template #metadataType>\n <pry-abac-select-metadata\n (metadataSelected)=\"onAddNewMetadata($event, condition.id)\"\n ></pry-abac-select-metadata>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"!readonly\">\n <div class=\"o-pry-composed-condition__add-item\">\n <button\n type=\"button\"\n aria-pressed=\"false\"\n class=\"a-btn a-btn--iconcircle-text\"\n (click)=\"onAddNewNestedCondition(condition.id)\"\n >\n <span class=\"a-btn--iconcircle-text__icon-wrapper\">\n <pry-icon iconSvg=\"add\" [height]=\"14\" [width]=\"14\"></pry-icon>\n </span>\n <span>\n {{ '@pry.admin.abac-rules.form.addGroup' | i18n }}\n </span>\n </button>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #metaOrAttributeCondition>\n <ng-container *ngIf=\"condition.type === METADATA\">\n <pry-metadata-condition [readonly]=\"readonly\" [id]=\"condition.id\"></pry-metadata-condition>\n </ng-container>\n <ng-container *ngIf=\"condition.type === ATTRIBUTE\">\n <pry-attribute-condition [readonly]=\"readonly\" [id]=\"condition.id\"></pry-attribute-condition>\n </ng-container>\n </ng-template>\n</ng-container>\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: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "directive", type: i4.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "component", type: SelectMetadataComponent, selector: "pry-abac-select-metadata", outputs: ["metadataSelected"] }, { kind: "component", type: SelectAttributeComponent, selector: "pry-abac-select-attribute", outputs: ["attributeSelected"] }, { kind: "component", type: AttributeConditionComponent, selector: "pry-attribute-condition", inputs: ["readonly", "id"] }, { kind: "component", type: MetadataConditionComponent, selector: "pry-metadata-condition", inputs: ["readonly", "id"] }, { kind: "component", type: ComposedConditionComponent, selector: "pry-composed-condition", inputs: ["id", "readonly", "rootElement"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
501
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ComposedConditionComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
502
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ComposedConditionComponent, selector: "pry-composed-condition", inputs: { id: "id", readonly: "readonly", rootElement: "rootElement" }, ngImport: i0, template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"condition.type === OR || condition.type === AND; else metaOrAttributeCondition\">\n <div class=\"o-pry-composed-condition-wrapper\" [class.root-element]=\"rootElement\">\n <div class=\"o-pry-composed-condition\">\n <div class=\"o-pry-composed-condition__type -vertical-bar\">\n <div class=\"o-pry-composed-condition__type__content\">\n <pry-toggle\n leftword=\"ET\"\n rightword=\"OU\"\n [ngModel]=\"condition.type === AND\"\n (ngModelChange)=\"onChangeConditionType($event ? AND : OR, condition.id)\"\n [alwaysActive]=\"true\"\n [disabled]=\"readonly\"\n ></pry-toggle>\n </div>\n </div>\n\n <div class=\"o-pry-composed-condition__content\">\n <ng-container *ngFor=\"let id of condition.composed\">\n <pry-composed-condition [readonly]=\"readonly\" [id]=\"id\"></pry-composed-condition>\n </ng-container>\n\n <ng-container *ngIf=\"!readonly\">\n <ng-container *ngIf=\"editAbacRuleType$ | async as ruleType\">\n <div>\n <button\n type=\"button\"\n aria-pressed=\"false\"\n class=\"a-btn a-btn--iconcircle-text\"\n (click)=\"panelOpen = true\"\n [pryOverlay]=\"selectOverlay\"\n [(overlayOpen)]=\"panelOpen\"\n pryOverlayPosition=\"start-bottom\"\n >\n <span class=\"a-btn--iconcircle-text__icon-wrapper\">\n <pry-icon iconSvg=\"add\" [height]=\"14\" [width]=\"14\"></pry-icon>\n </span>\n <span>\n {{\n '@pry.admin.abac-rules.form.' + (ruleType === ATTRIBUTE ? 'addAttribute' : 'addMetadata') | i18n\n }}\n </span>\n </button>\n </div>\n\n <ng-template #selectOverlay>\n <ng-container *ngIf=\"ruleType === ATTRIBUTE; else metadataType\">\n <pry-abac-select-attribute\n (attributeSelected)=\"onAddNewAttribute($event, condition.id)\"\n ></pry-abac-select-attribute>\n </ng-container>\n <ng-template #metadataType>\n <pry-abac-select-metadata\n (metadataSelected)=\"onAddNewMetadata($event, condition.id)\"\n ></pry-abac-select-metadata>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"!readonly\">\n <div class=\"o-pry-composed-condition__add-item\">\n <button\n type=\"button\"\n aria-pressed=\"false\"\n class=\"a-btn a-btn--iconcircle-text\"\n (click)=\"onAddNewNestedCondition(condition.id)\"\n >\n <span class=\"a-btn--iconcircle-text__icon-wrapper\">\n <pry-icon iconSvg=\"add\" [height]=\"14\" [width]=\"14\"></pry-icon>\n </span>\n <span>\n {{ '@pry.admin.abac-rules.form.addGroup' | i18n }}\n </span>\n </button>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #metaOrAttributeCondition>\n <ng-container *ngIf=\"condition.type === METADATA\">\n <pry-metadata-condition [readonly]=\"readonly\" [id]=\"condition.id\"></pry-metadata-condition>\n </ng-container>\n <ng-container *ngIf=\"condition.type === ATTRIBUTE\">\n <pry-attribute-condition [readonly]=\"readonly\" [id]=\"condition.id\"></pry-attribute-condition>\n </ng-container>\n </ng-template>\n</ng-container>\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: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "directive", type: i4.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "component", type: SelectMetadataComponent, selector: "pry-abac-select-metadata", outputs: ["metadataSelected"] }, { kind: "component", type: SelectAttributeComponent, selector: "pry-abac-select-attribute", outputs: ["attributeSelected"] }, { kind: "component", type: AttributeConditionComponent, selector: "pry-attribute-condition", inputs: ["readonly", "id"] }, { kind: "component", type: MetadataConditionComponent, selector: "pry-metadata-condition", inputs: ["readonly", "id"] }, { kind: "component", type: ComposedConditionComponent, selector: "pry-composed-condition", inputs: ["id", "readonly", "rootElement"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
503
503
  }
504
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComposedConditionComponent, decorators: [{
504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ComposedConditionComponent, decorators: [{
505
505
  type: Component,
506
506
  args: [{ selector: 'pry-composed-condition', template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <ng-container *ngIf=\"condition.type === OR || condition.type === AND; else metaOrAttributeCondition\">\n <div class=\"o-pry-composed-condition-wrapper\" [class.root-element]=\"rootElement\">\n <div class=\"o-pry-composed-condition\">\n <div class=\"o-pry-composed-condition__type -vertical-bar\">\n <div class=\"o-pry-composed-condition__type__content\">\n <pry-toggle\n leftword=\"ET\"\n rightword=\"OU\"\n [ngModel]=\"condition.type === AND\"\n (ngModelChange)=\"onChangeConditionType($event ? AND : OR, condition.id)\"\n [alwaysActive]=\"true\"\n [disabled]=\"readonly\"\n ></pry-toggle>\n </div>\n </div>\n\n <div class=\"o-pry-composed-condition__content\">\n <ng-container *ngFor=\"let id of condition.composed\">\n <pry-composed-condition [readonly]=\"readonly\" [id]=\"id\"></pry-composed-condition>\n </ng-container>\n\n <ng-container *ngIf=\"!readonly\">\n <ng-container *ngIf=\"editAbacRuleType$ | async as ruleType\">\n <div>\n <button\n type=\"button\"\n aria-pressed=\"false\"\n class=\"a-btn a-btn--iconcircle-text\"\n (click)=\"panelOpen = true\"\n [pryOverlay]=\"selectOverlay\"\n [(overlayOpen)]=\"panelOpen\"\n pryOverlayPosition=\"start-bottom\"\n >\n <span class=\"a-btn--iconcircle-text__icon-wrapper\">\n <pry-icon iconSvg=\"add\" [height]=\"14\" [width]=\"14\"></pry-icon>\n </span>\n <span>\n {{\n '@pry.admin.abac-rules.form.' + (ruleType === ATTRIBUTE ? 'addAttribute' : 'addMetadata') | i18n\n }}\n </span>\n </button>\n </div>\n\n <ng-template #selectOverlay>\n <ng-container *ngIf=\"ruleType === ATTRIBUTE; else metadataType\">\n <pry-abac-select-attribute\n (attributeSelected)=\"onAddNewAttribute($event, condition.id)\"\n ></pry-abac-select-attribute>\n </ng-container>\n <ng-template #metadataType>\n <pry-abac-select-metadata\n (metadataSelected)=\"onAddNewMetadata($event, condition.id)\"\n ></pry-abac-select-metadata>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"!readonly\">\n <div class=\"o-pry-composed-condition__add-item\">\n <button\n type=\"button\"\n aria-pressed=\"false\"\n class=\"a-btn a-btn--iconcircle-text\"\n (click)=\"onAddNewNestedCondition(condition.id)\"\n >\n <span class=\"a-btn--iconcircle-text__icon-wrapper\">\n <pry-icon iconSvg=\"add\" [height]=\"14\" [width]=\"14\"></pry-icon>\n </span>\n <span>\n {{ '@pry.admin.abac-rules.form.addGroup' | i18n }}\n </span>\n </button>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #metaOrAttributeCondition>\n <ng-container *ngIf=\"condition.type === METADATA\">\n <pry-metadata-condition [readonly]=\"readonly\" [id]=\"condition.id\"></pry-metadata-condition>\n </ng-container>\n <ng-container *ngIf=\"condition.type === ATTRIBUTE\">\n <pry-attribute-condition [readonly]=\"readonly\" [id]=\"condition.id\"></pry-attribute-condition>\n </ng-container>\n </ng-template>\n</ng-container>\n" }]
507
- }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { id: [{
507
+ }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { id: [{
508
508
  type: Input
509
509
  }], readonly: [{
510
510
  type: Input
@@ -546,13 +546,13 @@ class AdminAbacRulesFormComponent {
546
546
  const backPath = this.router.createUrlTree(['..'], { relativeTo: this.route });
547
547
  this.store.dispatch(AbacRulesActions.cancelAbacRuleEdition({ redirect: backPath.toString() }));
548
548
  }
549
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
550
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminAbacRulesFormComponent, selector: "pry-admin-abac-rules-form", inputs: { readonly: "readonly", edit: "edit" }, ngImport: i0, template: "<ng-container *ngIf=\"editAbacRule$ | async as rule\">\n <form class=\"o-form\" #abacRuleForm=\"ngForm\">\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"name-label\" for=\"inputName\">\n {{ '@pry.admin.abac-rules.form.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"inputName\"\n type=\"text\"\n [ngModel]=\"rule.name\"\n (ngModelChange)=\"onChangeAbacRuleProperty('name', $event)\"\n class=\"a-form-field\"\n name=\"name\"\n #name=\"ngModel\"\n maxlength=\"50\"\n required\n [readonly]=\"readonly\"\n [attr.aria-labelledby]=\"isSubmitted && name?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && name?.invalid\"\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"inputName\"\n *ngIf=\"isSubmitted && name.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <fieldset class=\"m-form-radio-group-wrapper\" [disabled]=\"readonly\">\n <legend class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.status' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </legend>\n <div class=\"m-form-radio-group\">\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"newRuleTrue\"\n name=\"active\"\n [ngModel]=\"rule.active\"\n (ngModelChange)=\"!readonly && onChangeAbacRuleProperty('active', $event)\"\n [value]=\"true\"\n />\n <label for=\"newRuleTrue\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.statusActive' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"newRuleFalse\"\n name=\"active\"\n [ngModel]=\"rule.active\"\n (ngModelChange)=\"!readonly && onChangeAbacRuleProperty('active', $event)\"\n [value]=\"false\"\n />\n <label for=\"newRuleFalse\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.statusInactive' | i18n }}\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n\n <div class=\"col\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"abac-rules-description\">{{\n '@pry.admin.abac-rules.form.description' | i18n\n }}</label>\n <textarea\n name=\"description\"\n id=\"abac-rules-description\"\n [ngModel]=\"rule.description\"\n (ngModelChange)=\"onChangeAbacRuleProperty('description', $event)\"\n class=\"a-form-field\"\n maxlength=\"90\"\n [readonly]=\"readonly\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field\">\n <label id=\"predicate-label\" for=\"predicate\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.predicate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"predicate\"\n [attr.aria-labelledby]=\"\n isSubmitted && abacRuleForm.form.get('predicate')?.invalid\n ? 'predicate-label predicate-error'\n : 'predicate-label'\n \"\n [readonly]=\"readonly\"\n [items]=\"predicates$ | async\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [template]=\"templateOption\"\n name=\"predicate\"\n [ngModel]=\"rule.predicate\"\n (ngModelChange)=\"onChangeAbacRuleProperty('predicate', $event)\"\n [isForm]=\"!readonly\"\n [attr.aria-invalid]=\"isSubmitted && abacRuleForm.form.get('predicate')?.invalid\"\n required\n ></pry-select>\n\n <ng-template #templateOption let-item=\"item\">\n <ng-container *ngIf=\"toPredicate(item); let item\">\n <div class=\"u-display-flex -column\">\n <span>#{{ item.id }}</span>\n <span>{{ item.name }}</span>\n <span>{{ item.value }}</span>\n </div>\n </ng-container>\n </ng-template>\n <label\n class=\"a-label a-label--help -error\"\n id=\"predicate-error\"\n for=\"predicate\"\n *ngIf=\"isSubmitted && abacRuleForm.form.get('predicate')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <fieldset class=\"m-form-radio-group-wrapper\" [disabled]=\"readonly\">\n <legend class=\"a-label\">\n <label>{{ '@pry.admin.abac-rules.form.type' | i18n }}</label> *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </legend>\n\n <div class=\"m-form-radio-group\">\n <ng-container *ngIf=\"typeSelected$ | async; else typeNotSelected\">\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n disabled\n id=\"metadataId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n value=\"METADATA\"\n />\n <label class=\"a-label\" for=\"metadataId\">\n {{ '@pry.admin.abac-rules.form.typeMetadata' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n disabled\n id=\"attributeId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n value=\"ATTRIBUTE\"\n />\n <label class=\"a-label\" for=\"attributeId\">\n {{ '@pry.admin.abac-rules.form.typeAttribute' | i18n }}\n </label>\n </div>\n <span *ngIf=\"!readonly\" style=\"font-size: 12px; font-style: italic\">{{\n '@pry.admin.abac-rules.form.typeSelected' | i18n\n }}</span>\n </ng-container>\n\n <ng-template #typeNotSelected>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"metadataId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n (ngModelChange)=\"onChangeAbacRuleProperty('type', METADATA)\"\n value=\"METADATA\"\n [disabled]=\"readonly\"\n />\n <label class=\"a-label\" for=\"metadataId\">\n {{ '@pry.admin.abac-rules.form.typeMetadata' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"attributeId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n (ngModelChange)=\"onChangeAbacRuleProperty('type', ATTRIBUTE)\"\n value=\"ATTRIBUTE\"\n [disabled]=\"readonly\"\n />\n <label class=\"a-label\" for=\"attributeId\">\n {{ '@pry.admin.abac-rules.form.typeAttribute' | i18n }}\n </label>\n </div>\n </ng-template>\n </div>\n </fieldset>\n </div>\n </div>\n\n <ng-container *ngIf=\"editAbacRuleConditionsMasterId$ | async as masterId\">\n <div class=\"row\">\n <div class=\"col\">\n <pry-composed-condition\n class=\"o-component-pry-composed-condition\"\n style=\"margin: 1rem\"\n [rootElement]=\"true\"\n [id]=\"masterId\"\n [readonly]=\"readonly\"\n ></pry-composed-condition>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf=\"!readonly\" class=\"m-btn-group -align-center -width-sm\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"goBack()\">\n {{ '@pry.admin.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"onCreateAbacRule(abacRuleForm)\">\n {{ '@pry.admin.' + (edit ? 'edit' : 'create') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: ComposedConditionComponent, selector: "pry-composed-condition", inputs: ["id", "readonly", "rootElement"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
549
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
550
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAbacRulesFormComponent, selector: "pry-admin-abac-rules-form", inputs: { readonly: "readonly", edit: "edit" }, ngImport: i0, template: "<ng-container *ngIf=\"editAbacRule$ | async as rule\">\n <form class=\"o-form\" #abacRuleForm=\"ngForm\">\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"name-label\" for=\"inputName\">\n {{ '@pry.admin.abac-rules.form.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"inputName\"\n type=\"text\"\n [ngModel]=\"rule.name\"\n (ngModelChange)=\"onChangeAbacRuleProperty('name', $event)\"\n class=\"a-form-field\"\n name=\"name\"\n #name=\"ngModel\"\n maxlength=\"50\"\n required\n [readonly]=\"readonly\"\n [attr.aria-labelledby]=\"isSubmitted && name?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && name?.invalid\"\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"inputName\"\n *ngIf=\"isSubmitted && name.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <fieldset class=\"m-form-radio-group-wrapper\" [disabled]=\"readonly\">\n <legend class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.status' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </legend>\n <div class=\"m-form-radio-group\">\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"newRuleTrue\"\n name=\"active\"\n [ngModel]=\"rule.active\"\n (ngModelChange)=\"!readonly && onChangeAbacRuleProperty('active', $event)\"\n [value]=\"true\"\n />\n <label for=\"newRuleTrue\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.statusActive' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"newRuleFalse\"\n name=\"active\"\n [ngModel]=\"rule.active\"\n (ngModelChange)=\"!readonly && onChangeAbacRuleProperty('active', $event)\"\n [value]=\"false\"\n />\n <label for=\"newRuleFalse\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.statusInactive' | i18n }}\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n\n <div class=\"col\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"abac-rules-description\">{{\n '@pry.admin.abac-rules.form.description' | i18n\n }}</label>\n <textarea\n name=\"description\"\n id=\"abac-rules-description\"\n [ngModel]=\"rule.description\"\n (ngModelChange)=\"onChangeAbacRuleProperty('description', $event)\"\n class=\"a-form-field\"\n maxlength=\"90\"\n [readonly]=\"readonly\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field\">\n <label id=\"predicate-label\" for=\"predicate\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.predicate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"predicate\"\n [attr.aria-labelledby]=\"\n isSubmitted && abacRuleForm.form.get('predicate')?.invalid\n ? 'predicate-label predicate-error'\n : 'predicate-label'\n \"\n [readonly]=\"readonly\"\n [items]=\"predicates$ | async\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [template]=\"templateOption\"\n name=\"predicate\"\n [ngModel]=\"rule.predicate\"\n (ngModelChange)=\"onChangeAbacRuleProperty('predicate', $event)\"\n [isForm]=\"!readonly\"\n [attr.aria-invalid]=\"isSubmitted && abacRuleForm.form.get('predicate')?.invalid\"\n required\n ></pry-select>\n\n <ng-template #templateOption let-item=\"item\">\n <ng-container *ngIf=\"toPredicate(item); let item\">\n <div class=\"u-display-flex -column\">\n <span>#{{ item.id }}</span>\n <span>{{ item.name }}</span>\n <span>{{ item.value }}</span>\n </div>\n </ng-container>\n </ng-template>\n <label\n class=\"a-label a-label--help -error\"\n id=\"predicate-error\"\n for=\"predicate\"\n *ngIf=\"isSubmitted && abacRuleForm.form.get('predicate')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <fieldset class=\"m-form-radio-group-wrapper\" [disabled]=\"readonly\">\n <legend class=\"a-label\">\n <label>{{ '@pry.admin.abac-rules.form.type' | i18n }}</label> *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </legend>\n\n <div class=\"m-form-radio-group\">\n <ng-container *ngIf=\"typeSelected$ | async; else typeNotSelected\">\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n disabled\n id=\"metadataId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n value=\"METADATA\"\n />\n <label class=\"a-label\" for=\"metadataId\">\n {{ '@pry.admin.abac-rules.form.typeMetadata' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n disabled\n id=\"attributeId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n value=\"ATTRIBUTE\"\n />\n <label class=\"a-label\" for=\"attributeId\">\n {{ '@pry.admin.abac-rules.form.typeAttribute' | i18n }}\n </label>\n </div>\n <span *ngIf=\"!readonly\" style=\"font-size: 12px; font-style: italic\">{{\n '@pry.admin.abac-rules.form.typeSelected' | i18n\n }}</span>\n </ng-container>\n\n <ng-template #typeNotSelected>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"metadataId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n (ngModelChange)=\"onChangeAbacRuleProperty('type', METADATA)\"\n value=\"METADATA\"\n [disabled]=\"readonly\"\n />\n <label class=\"a-label\" for=\"metadataId\">\n {{ '@pry.admin.abac-rules.form.typeMetadata' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"attributeId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n (ngModelChange)=\"onChangeAbacRuleProperty('type', ATTRIBUTE)\"\n value=\"ATTRIBUTE\"\n [disabled]=\"readonly\"\n />\n <label class=\"a-label\" for=\"attributeId\">\n {{ '@pry.admin.abac-rules.form.typeAttribute' | i18n }}\n </label>\n </div>\n </ng-template>\n </div>\n </fieldset>\n </div>\n </div>\n\n <ng-container *ngIf=\"editAbacRuleConditionsMasterId$ | async as masterId\">\n <div class=\"row\">\n <div class=\"col\">\n <pry-composed-condition\n class=\"o-component-pry-composed-condition\"\n style=\"margin: 1rem\"\n [rootElement]=\"true\"\n [id]=\"masterId\"\n [readonly]=\"readonly\"\n ></pry-composed-condition>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf=\"!readonly\" class=\"m-btn-group -align-center -width-sm\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"goBack()\">\n {{ '@pry.admin.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"onCreateAbacRule(abacRuleForm)\">\n {{ '@pry.admin.' + (edit ? 'edit' : 'create') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: ComposedConditionComponent, selector: "pry-composed-condition", inputs: ["id", "readonly", "rootElement"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
551
551
  }
552
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesFormComponent, decorators: [{
552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesFormComponent, decorators: [{
553
553
  type: Component,
554
554
  args: [{ selector: 'pry-admin-abac-rules-form', template: "<ng-container *ngIf=\"editAbacRule$ | async as rule\">\n <form class=\"o-form\" #abacRuleForm=\"ngForm\">\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"name-label\" for=\"inputName\">\n {{ '@pry.admin.abac-rules.form.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"inputName\"\n type=\"text\"\n [ngModel]=\"rule.name\"\n (ngModelChange)=\"onChangeAbacRuleProperty('name', $event)\"\n class=\"a-form-field\"\n name=\"name\"\n #name=\"ngModel\"\n maxlength=\"50\"\n required\n [readonly]=\"readonly\"\n [attr.aria-labelledby]=\"isSubmitted && name?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && name?.invalid\"\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"inputName\"\n *ngIf=\"isSubmitted && name.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <fieldset class=\"m-form-radio-group-wrapper\" [disabled]=\"readonly\">\n <legend class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.status' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </legend>\n <div class=\"m-form-radio-group\">\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"newRuleTrue\"\n name=\"active\"\n [ngModel]=\"rule.active\"\n (ngModelChange)=\"!readonly && onChangeAbacRuleProperty('active', $event)\"\n [value]=\"true\"\n />\n <label for=\"newRuleTrue\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.statusActive' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"newRuleFalse\"\n name=\"active\"\n [ngModel]=\"rule.active\"\n (ngModelChange)=\"!readonly && onChangeAbacRuleProperty('active', $event)\"\n [value]=\"false\"\n />\n <label for=\"newRuleFalse\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.statusInactive' | i18n }}\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n\n <div class=\"col\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"abac-rules-description\">{{\n '@pry.admin.abac-rules.form.description' | i18n\n }}</label>\n <textarea\n name=\"description\"\n id=\"abac-rules-description\"\n [ngModel]=\"rule.description\"\n (ngModelChange)=\"onChangeAbacRuleProperty('description', $event)\"\n class=\"a-form-field\"\n maxlength=\"90\"\n [readonly]=\"readonly\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field\">\n <label id=\"predicate-label\" for=\"predicate\" class=\"a-label\">\n {{ '@pry.admin.abac-rules.form.predicate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"predicate\"\n [attr.aria-labelledby]=\"\n isSubmitted && abacRuleForm.form.get('predicate')?.invalid\n ? 'predicate-label predicate-error'\n : 'predicate-label'\n \"\n [readonly]=\"readonly\"\n [items]=\"predicates$ | async\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [template]=\"templateOption\"\n name=\"predicate\"\n [ngModel]=\"rule.predicate\"\n (ngModelChange)=\"onChangeAbacRuleProperty('predicate', $event)\"\n [isForm]=\"!readonly\"\n [attr.aria-invalid]=\"isSubmitted && abacRuleForm.form.get('predicate')?.invalid\"\n required\n ></pry-select>\n\n <ng-template #templateOption let-item=\"item\">\n <ng-container *ngIf=\"toPredicate(item); let item\">\n <div class=\"u-display-flex -column\">\n <span>#{{ item.id }}</span>\n <span>{{ item.name }}</span>\n <span>{{ item.value }}</span>\n </div>\n </ng-container>\n </ng-template>\n <label\n class=\"a-label a-label--help -error\"\n id=\"predicate-error\"\n for=\"predicate\"\n *ngIf=\"isSubmitted && abacRuleForm.form.get('predicate')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <fieldset class=\"m-form-radio-group-wrapper\" [disabled]=\"readonly\">\n <legend class=\"a-label\">\n <label>{{ '@pry.admin.abac-rules.form.type' | i18n }}</label> *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </legend>\n\n <div class=\"m-form-radio-group\">\n <ng-container *ngIf=\"typeSelected$ | async; else typeNotSelected\">\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n disabled\n id=\"metadataId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n value=\"METADATA\"\n />\n <label class=\"a-label\" for=\"metadataId\">\n {{ '@pry.admin.abac-rules.form.typeMetadata' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n disabled\n id=\"attributeId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n value=\"ATTRIBUTE\"\n />\n <label class=\"a-label\" for=\"attributeId\">\n {{ '@pry.admin.abac-rules.form.typeAttribute' | i18n }}\n </label>\n </div>\n <span *ngIf=\"!readonly\" style=\"font-size: 12px; font-style: italic\">{{\n '@pry.admin.abac-rules.form.typeSelected' | i18n\n }}</span>\n </ng-container>\n\n <ng-template #typeNotSelected>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"metadataId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n (ngModelChange)=\"onChangeAbacRuleProperty('type', METADATA)\"\n value=\"METADATA\"\n [disabled]=\"readonly\"\n />\n <label class=\"a-label\" for=\"metadataId\">\n {{ '@pry.admin.abac-rules.form.typeMetadata' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"attributeId\"\n name=\"type\"\n [ngModel]=\"rule.type\"\n (ngModelChange)=\"onChangeAbacRuleProperty('type', ATTRIBUTE)\"\n value=\"ATTRIBUTE\"\n [disabled]=\"readonly\"\n />\n <label class=\"a-label\" for=\"attributeId\">\n {{ '@pry.admin.abac-rules.form.typeAttribute' | i18n }}\n </label>\n </div>\n </ng-template>\n </div>\n </fieldset>\n </div>\n </div>\n\n <ng-container *ngIf=\"editAbacRuleConditionsMasterId$ | async as masterId\">\n <div class=\"row\">\n <div class=\"col\">\n <pry-composed-condition\n class=\"o-component-pry-composed-condition\"\n style=\"margin: 1rem\"\n [rootElement]=\"true\"\n [id]=\"masterId\"\n [readonly]=\"readonly\"\n ></pry-composed-condition>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf=\"!readonly\" class=\"m-btn-group -align-center -width-sm\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"goBack()\">\n {{ '@pry.admin.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"onCreateAbacRule(abacRuleForm)\">\n {{ '@pry.admin.' + (edit ? 'edit' : 'create') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\n" }]
555
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; }, propDecorators: { readonly: [{
555
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { readonly: [{
556
556
  type: Input
557
557
  }], edit: [{
558
558
  type: Input
@@ -588,13 +588,13 @@ class AdminAbacRulesEditComponent {
588
588
  ngOnDestroy() {
589
589
  this.store.dispatch(AbacRulesActions.resetEditAbacRule());
590
590
  }
591
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesEditComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
592
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminAbacRulesEditComponent, selector: "pry-admin-abac-rules-edit", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.edit' | i18n }}</h1>\n <pry-admin-abac-rules-form [edit]=\"true\"></pry-admin-abac-rules-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminAbacRulesFormComponent, selector: "pry-admin-abac-rules-form", inputs: ["readonly", "edit"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
591
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesEditComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
592
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAbacRulesEditComponent, selector: "pry-admin-abac-rules-edit", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.edit' | i18n }}</h1>\n <pry-admin-abac-rules-form [edit]=\"true\"></pry-admin-abac-rules-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminAbacRulesFormComponent, selector: "pry-admin-abac-rules-form", inputs: ["readonly", "edit"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
593
593
  }
594
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesEditComponent, decorators: [{
594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesEditComponent, decorators: [{
595
595
  type: Component,
596
596
  args: [{ selector: 'pry-admin-abac-rules-edit', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.edit' | i18n }}</h1>\n <pry-admin-abac-rules-form [edit]=\"true\"></pry-admin-abac-rules-form>\n</div>\n" }]
597
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
597
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
598
598
 
599
599
  class AbacRulesService {
600
600
  initializeNewAbacRule() {
@@ -744,10 +744,10 @@ class AbacRulesService {
744
744
  };
745
745
  }
746
746
  }
747
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbacRulesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
748
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbacRulesService, providedIn: 'root' }); }
747
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AbacRulesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
748
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AbacRulesService, providedIn: 'root' }); }
749
749
  }
750
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbacRulesService, decorators: [{
750
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AbacRulesService, decorators: [{
751
751
  type: Injectable,
752
752
  args: [{
753
753
  providedIn: 'root'
@@ -769,13 +769,13 @@ class AdminAbacRulesNewComponent {
769
769
  ngOnDestroy() {
770
770
  this.store.dispatch(AbacRulesActions.resetEditAbacRule());
771
771
  }
772
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesNewComponent, deps: [{ token: i1.Store }, { token: AbacRulesService }], target: i0.ɵɵFactoryTarget.Component }); }
773
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminAbacRulesNewComponent, selector: "pry-admin-abac-rules-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.add' | i18n }}</h1>\n <pry-admin-abac-rules-form [readonly]=\"false\" [edit]=\"false\"></pry-admin-abac-rules-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminAbacRulesFormComponent, selector: "pry-admin-abac-rules-form", inputs: ["readonly", "edit"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
772
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesNewComponent, deps: [{ token: i1.Store }, { token: AbacRulesService }], target: i0.ɵɵFactoryTarget.Component }); }
773
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAbacRulesNewComponent, selector: "pry-admin-abac-rules-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.add' | i18n }}</h1>\n <pry-admin-abac-rules-form [readonly]=\"false\" [edit]=\"false\"></pry-admin-abac-rules-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminAbacRulesFormComponent, selector: "pry-admin-abac-rules-form", inputs: ["readonly", "edit"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
774
774
  }
775
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesNewComponent, decorators: [{
775
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesNewComponent, decorators: [{
776
776
  type: Component,
777
777
  args: [{ selector: 'pry-admin-abac-rules-new', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.add' | i18n }}</h1>\n <pry-admin-abac-rules-form [readonly]=\"false\" [edit]=\"false\"></pry-admin-abac-rules-form>\n</div>\n" }]
778
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: AbacRulesService }]; } });
778
+ }], ctorParameters: () => [{ type: i1.Store }, { type: AbacRulesService }] });
779
779
 
780
780
  class AdminAbacRulesViewComponent {
781
781
  constructor(store, router, route) {
@@ -812,13 +812,13 @@ class AdminAbacRulesViewComponent {
812
812
  this.store.dispatch(AbacRulesActions.fetchAbacRule({ id: ruleId }));
813
813
  });
814
814
  }
815
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesViewComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
816
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminAbacRulesViewComponent, selector: "pry-admin-abac-rules-view", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-1\">{{ '@pry.admin.abac-rules.title.view' | i18n }}</h1>\n <pry-admin-abac-rules-form [readonly]=\"true\"></pry-admin-abac-rules-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminAbacRulesFormComponent, selector: "pry-admin-abac-rules-form", inputs: ["readonly", "edit"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
815
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesViewComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
816
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAbacRulesViewComponent, selector: "pry-admin-abac-rules-view", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-1\">{{ '@pry.admin.abac-rules.title.view' | i18n }}</h1>\n <pry-admin-abac-rules-form [readonly]=\"true\"></pry-admin-abac-rules-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminAbacRulesFormComponent, selector: "pry-admin-abac-rules-form", inputs: ["readonly", "edit"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
817
817
  }
818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesViewComponent, decorators: [{
818
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesViewComponent, decorators: [{
819
819
  type: Component,
820
820
  args: [{ selector: 'pry-admin-abac-rules-view', template: "<div class=\"o-base-container\">\n <h1 class=\"a-1\">{{ '@pry.admin.abac-rules.title.view' | i18n }}</h1>\n <pry-admin-abac-rules-form [readonly]=\"true\"></pry-admin-abac-rules-form>\n</div>\n" }]
821
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
821
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
822
822
 
823
823
  class AdminAbacRulesComponent {
824
824
  constructor(store, router, route) {
@@ -849,13 +849,13 @@ class AdminAbacRulesComponent {
849
849
  const path = this.router.createUrlTree(['.', `${rule.id}`], { relativeTo: this.route });
850
850
  this.store.dispatch(AdminActions.routeTo({ path: path.toString() }));
851
851
  }
852
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
853
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminAbacRulesComponent, selector: "pry-admin-abac-rules", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.abac-rules.title.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.abac-rules.form.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.abac-rules.form.type' | i18n }}</th>\n <th prySortHeader=\"active\">{{ '@pry.admin.abac-rules.form.status' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rule of rules$ | async | prySortData: sortActive : sortDirection\" (click)=\"goToSelectRule(rule)\">\n <td class=\"view-details\">\n <button\n [id]=\"'button-arule-' + rule.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n >\n <span class=\"u-visually-hidden\">{{ rule.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ rule.name }}</td>\n <td>\n {{ '@pry.admin.abac-rules.form.' + (rule.type === 'METADATA' ? 'typeMetadata' : 'typeAttribute') | i18n }}\n </td>\n <td>\n <span class=\"a-badge\" [ngClass]=\"{ '-status-ok': rule.active, '-status-inactive': !rule.active }\">\n {{\n (rule.active ? '@pry.admin.abac-rules.form.statusActive' : '@pry.admin.abac-rules.form.statusInactive')\n | i18n\n }}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
852
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
853
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAbacRulesComponent, selector: "pry-admin-abac-rules", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.abac-rules.title.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.abac-rules.form.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.abac-rules.form.type' | i18n }}</th>\n <th prySortHeader=\"active\">{{ '@pry.admin.abac-rules.form.status' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rule of rules$ | async | prySortData: sortActive : sortDirection\" (click)=\"goToSelectRule(rule)\">\n <td class=\"view-details\">\n <button\n [id]=\"'button-arule-' + rule.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n >\n <span class=\"u-visually-hidden\">{{ rule.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ rule.name }}</td>\n <td>\n {{ '@pry.admin.abac-rules.form.' + (rule.type === 'METADATA' ? 'typeMetadata' : 'typeAttribute') | i18n }}\n </td>\n <td>\n <span class=\"a-badge\" [ngClass]=\"{ '-status-ok': rule.active, '-status-inactive': !rule.active }\">\n {{\n (rule.active ? '@pry.admin.abac-rules.form.statusActive' : '@pry.admin.abac-rules.form.statusInactive')\n | i18n\n }}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
854
854
  }
855
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAbacRulesComponent, decorators: [{
855
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAbacRulesComponent, decorators: [{
856
856
  type: Component,
857
857
  args: [{ selector: 'pry-admin-abac-rules', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.abac-rules.title.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.abac-rules.title.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.abac-rules.form.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.abac-rules.form.type' | i18n }}</th>\n <th prySortHeader=\"active\">{{ '@pry.admin.abac-rules.form.status' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rule of rules$ | async | prySortData: sortActive : sortDirection\" (click)=\"goToSelectRule(rule)\">\n <td class=\"view-details\">\n <button\n [id]=\"'button-arule-' + rule.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n >\n <span class=\"u-visually-hidden\">{{ rule.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ rule.name }}</td>\n <td>\n {{ '@pry.admin.abac-rules.form.' + (rule.type === 'METADATA' ? 'typeMetadata' : 'typeAttribute') | i18n }}\n </td>\n <td>\n <span class=\"a-badge\" [ngClass]=\"{ '-status-ok': rule.active, '-status-inactive': !rule.active }\">\n {{\n (rule.active ? '@pry.admin.abac-rules.form.statusActive' : '@pry.admin.abac-rules.form.statusInactive')\n | i18n\n }}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
858
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
858
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
859
859
 
860
860
  const AdminClassActions = {
861
861
  updateToolbox: createAction('[Admin/Classes] Update Toolbox Class'),
@@ -961,15 +961,11 @@ const AdminClassSelectors = {
961
961
 
962
962
  class AdminClassesCustomizeTooltipComponent extends SubscriptionnerDirective {
963
963
  set currentClass(clazz) {
964
- this._currentClass = clazz ?? {};
965
- this.fields = (clazz ?? { attributes: [] }).attributes ?? [];
966
- this.possibleAttributes = this.possibleNonAttributesFields
967
- .concat(this.fields)
968
- .sort((f1, f2) => f1.name.localeCompare(f2.name));
969
- this.currentClassConfig = JSON.parse(JSON.stringify(this.defs[this.currentClass.id] ?? { type: 'default' }));
964
+ this._currentClass$.next(clazz ?? {});
965
+ this.currentClassConfig = this.removeUnknown(JSON.parse(JSON.stringify(this.defs[this.currentClass.id] ?? { type: 'default' })));
970
966
  }
971
967
  get currentClass() {
972
- return this._currentClass;
968
+ return this._currentClass$.value;
973
969
  }
974
970
  constructor(tooltipFactoryService, injector, translateService, store) {
975
971
  super();
@@ -979,7 +975,6 @@ class AdminClassesCustomizeTooltipComponent extends SubscriptionnerDirective {
979
975
  this.store = store;
980
976
  this.currentClassConfig = { type: 'default' };
981
977
  this.advancedTooltip = false;
982
- this.possibleAttributes = [];
983
978
  this.possibleNonAttributesFields = [
984
979
  {
985
980
  name: 'id',
@@ -991,11 +986,11 @@ class AdminClassesCustomizeTooltipComponent extends SubscriptionnerDirective {
991
986
  }
992
987
  ];
993
988
  this.backPressed = new EventEmitter();
994
- this._currentClass = {};
995
- this.fields = [];
989
+ this._currentClass$ = new BehaviorSubject({});
996
990
  this.strOptions = '';
997
991
  this.defs = {};
998
992
  this.noTooltip = false;
993
+ this.attributes = [];
999
994
  this.possibleTooltipTypes$ = this.tooltipFactoryService.types$.pipe(map((types) => types.map((type) => ({
1000
995
  value: type,
1001
996
  label: this.translateService.instant('@pry.tooltip.' + type)
@@ -1004,11 +999,31 @@ class AdminClassesCustomizeTooltipComponent extends SubscriptionnerDirective {
1004
999
  this.defs = defs;
1005
1000
  this.currentClassConfig = JSON.parse(JSON.stringify(defs[this.currentClass.id] ?? { type: 'default' }));
1006
1001
  }));
1002
+ this.classes$ = this.store.select(ClassSelectors.classes);
1003
+ this.fields$ = this.store.select(FieldSelectors.fields);
1004
+ this.attributesOfClass$ = combineLatest([this._currentClass$, this.classes$]).pipe(map(([clazz, classes]) => classes.find((cl) => cl.id === clazz.id)?.attributes ?? []), map((attrs) => [...attrs, ...this.possibleNonAttributesFields].sort((f1, f2) => f1.name.localeCompare(f2.name))));
1005
+ this.subscriptions.add(this.attributesOfClass$.subscribe((attrs) => {
1006
+ this.attributes = attrs;
1007
+ this.mockData = attrs
1008
+ .map((attr) => ({
1009
+ [attr.technicalName]: {
1010
+ type: 'VALUE',
1011
+ value: '«' + this.translateService.instant('@pry.admin.customize.exemple', { expr: attr.technicalName }) + '»',
1012
+ visible: true
1013
+ }
1014
+ }))
1015
+ .reduce((p, c) => ({ ...p, attributes: { ...p.attributes, ...c } }), {
1016
+ oClass: this.currentClass.id,
1017
+ id: v4(),
1018
+ label: '«' + this.translateService.instant('@pry.admin.customize.exemple', { expr: 'label' }) + '»',
1019
+ attributes: {}
1020
+ });
1021
+ }));
1007
1022
  }
1008
1023
  tooltipTypeChanged($event) {
1009
1024
  this.currentClassConfig.type = $event;
1010
1025
  if (this.currentClassConfig.type === 'attribute') {
1011
- this.currentClassConfig.options = { attributes: this.possibleAttributes.map((attr) => attr.id) };
1026
+ this.currentClassConfig.options = { attributes: this.attributes.map((attr) => attr.id) };
1012
1027
  }
1013
1028
  else {
1014
1029
  this.currentClassConfig.options = {};
@@ -1029,20 +1044,7 @@ class AdminClassesCustomizeTooltipComponent extends SubscriptionnerDirective {
1029
1044
  component$.subscribe((component) => {
1030
1045
  this.noTooltip = !component;
1031
1046
  if (component) {
1032
- component.instance.data.item = this.fields
1033
- .map((attr) => ({
1034
- [attr.technicalName]: {
1035
- type: 'VALUE',
1036
- value: '«' + this.translateService.instant('@pry.admin.customize.exemple', { expr: attr.technicalName }) + '»',
1037
- visible: true
1038
- }
1039
- }))
1040
- .reduce((p, c) => ({ ...p, attributes: { ...p.attributes, ...c } }), {
1041
- oClass: this.currentClass.id,
1042
- id: v4(),
1043
- label: '«' + this.translateService.instant('@pry.admin.customize.exemple', { expr: 'label' }) + '»',
1044
- attributes: {}
1045
- });
1047
+ component.instance.data.item = this.mockData;
1046
1048
  this.tmpComponent = component;
1047
1049
  component.instance.context = this.currentClassConfig.options;
1048
1050
  }
@@ -1061,13 +1063,25 @@ class AdminClassesCustomizeTooltipComponent extends SubscriptionnerDirective {
1061
1063
  this.currentClassConfig.options.attributes = $event;
1062
1064
  setTimeout(() => this.updateExample(), 100);
1063
1065
  }
1064
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesCustomizeTooltipComponent, deps: [{ token: i4.TooltipFactoryService }, { token: i0.Injector }, { token: i4.PryI18nService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1065
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminClassesCustomizeTooltipComponent, selector: "pry-admin-classes-customize-tooltip", inputs: { currentClass: "currentClass" }, outputs: { backPressed: "backPressed" }, viewQueries: [{ propertyName: "example", first: true, predicate: ["example"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<div>\n <div class=\"m-form-label-field -width-xl\">\n <label class=\"a-label\" for=\"tooltip_type\">{{ '@pry.admin.customize.type' | i18n }}</label>\n <pry-select\n id=\"tooltip_type\"\n (ngModelChange)=\"tooltipTypeChanged($event)\"\n [ngModel]=\"currentClassConfig.type\"\n [items]=\"possibleTooltipTypes$ | async\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n\n <div>\n <pry-checkbox [(ngModel)]=\"advancedTooltip\">{{ '@pry.admin.customize.advanced' | i18n }}</pry-checkbox>\n </div>\n\n <div class=\"m-form-label-field -width-xl\" *ngIf=\"!advancedTooltip && currentClassConfig.type === 'attribute'\">\n <label class=\"a-label\" for=\"customize_simplified\">{{ '@pry.admin.customize.simplified' | i18n }}</label>\n <pry-select\n id=\"customize_simplified\"\n (ngModelChange)=\"changeAttributes($event)\"\n [ngModel]=\"currentClassConfig.options.attributes\"\n [items]=\"possibleAttributes\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n bindLabel=\"name\"\n bindValue=\"id\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"advancedTooltip\">\n <textarea\n cols=\"100\"\n rows=\"15\"\n class=\"a-form-field\"\n [(ngModel)]=\"strOptions\"\n (focusout)=\"optionsChanged()\"\n ></textarea>\n </ng-container>\n</div>\n\n<div class=\"m-tooltip m-tooltip--example\" [class.-hidden]=\"noTooltip\">\n <div #example></div>\n</div>\n\n<div class=\"m-btn-group -width-md\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTemplate()\">\n {{ '@pry.admin.customize.update' | i18n }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1066
+ removeUnknown(config) {
1067
+ if (config.type === 'attribute') {
1068
+ const toRemove = [];
1069
+ config.options.attributes.forEach((attr) => {
1070
+ if (!this.attributes.map((attr) => attr.id).includes(attr)) {
1071
+ toRemove.push(attr);
1072
+ }
1073
+ });
1074
+ config.options.attributes = config.options.attributes.filter((attr) => !toRemove.includes(attr));
1075
+ }
1076
+ return config;
1077
+ }
1078
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesCustomizeTooltipComponent, deps: [{ token: i4.TooltipFactoryService }, { token: i0.Injector }, { token: i4.PryI18nService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1079
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminClassesCustomizeTooltipComponent, selector: "pry-admin-classes-customize-tooltip", inputs: { currentClass: "currentClass" }, outputs: { backPressed: "backPressed" }, viewQueries: [{ propertyName: "example", first: true, predicate: ["example"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<div>\n <div class=\"m-form-label-field -width-xl\">\n <label class=\"a-label\" for=\"tooltip_type\">{{ '@pry.admin.customize.type' | i18n }}</label>\n <pry-select\n id=\"tooltip_type\"\n (ngModelChange)=\"tooltipTypeChanged($event)\"\n [ngModel]=\"currentClassConfig.type\"\n [items]=\"possibleTooltipTypes$ | async\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n\n <div>\n <pry-checkbox [(ngModel)]=\"advancedTooltip\">{{ '@pry.admin.customize.advanced' | i18n }}</pry-checkbox>\n </div>\n\n <div class=\"m-form-label-field -width-xl\" *ngIf=\"!advancedTooltip && currentClassConfig.type === 'attribute'\">\n <label class=\"a-label\" for=\"customize_simplified\">{{ '@pry.admin.customize.simplified' | i18n }}</label>\n <pry-select\n id=\"customize_simplified\"\n (ngModelChange)=\"changeAttributes($event)\"\n [ngModel]=\"currentClassConfig.options.attributes\"\n [items]=\"attributesOfClass$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n bindLabel=\"name\"\n bindValue=\"id\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"advancedTooltip\">\n <textarea\n cols=\"100\"\n rows=\"15\"\n class=\"a-form-field\"\n [(ngModel)]=\"strOptions\"\n (focusout)=\"optionsChanged()\"\n ></textarea>\n </ng-container>\n</div>\n\n<div class=\"m-tooltip m-tooltip--example\" [class.-hidden]=\"noTooltip\">\n <div #example></div>\n</div>\n\n<div class=\"m-btn-group -width-md\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTemplate()\">\n {{ '@pry.admin.customize.update' | i18n }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1066
1080
  }
1067
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesCustomizeTooltipComponent, decorators: [{
1081
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesCustomizeTooltipComponent, decorators: [{
1068
1082
  type: Component,
1069
- args: [{ selector: 'pry-admin-classes-customize-tooltip', template: "<div>\n <div class=\"m-form-label-field -width-xl\">\n <label class=\"a-label\" for=\"tooltip_type\">{{ '@pry.admin.customize.type' | i18n }}</label>\n <pry-select\n id=\"tooltip_type\"\n (ngModelChange)=\"tooltipTypeChanged($event)\"\n [ngModel]=\"currentClassConfig.type\"\n [items]=\"possibleTooltipTypes$ | async\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n\n <div>\n <pry-checkbox [(ngModel)]=\"advancedTooltip\">{{ '@pry.admin.customize.advanced' | i18n }}</pry-checkbox>\n </div>\n\n <div class=\"m-form-label-field -width-xl\" *ngIf=\"!advancedTooltip && currentClassConfig.type === 'attribute'\">\n <label class=\"a-label\" for=\"customize_simplified\">{{ '@pry.admin.customize.simplified' | i18n }}</label>\n <pry-select\n id=\"customize_simplified\"\n (ngModelChange)=\"changeAttributes($event)\"\n [ngModel]=\"currentClassConfig.options.attributes\"\n [items]=\"possibleAttributes\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n bindLabel=\"name\"\n bindValue=\"id\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"advancedTooltip\">\n <textarea\n cols=\"100\"\n rows=\"15\"\n class=\"a-form-field\"\n [(ngModel)]=\"strOptions\"\n (focusout)=\"optionsChanged()\"\n ></textarea>\n </ng-container>\n</div>\n\n<div class=\"m-tooltip m-tooltip--example\" [class.-hidden]=\"noTooltip\">\n <div #example></div>\n</div>\n\n<div class=\"m-btn-group -width-md\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTemplate()\">\n {{ '@pry.admin.customize.update' | i18n }}\n </button>\n</div>\n" }]
1070
- }], ctorParameters: function () { return [{ type: i4.TooltipFactoryService }, { type: i0.Injector }, { type: i4.PryI18nService }, { type: i1.Store }]; }, propDecorators: { example: [{
1083
+ args: [{ selector: 'pry-admin-classes-customize-tooltip', template: "<div>\n <div class=\"m-form-label-field -width-xl\">\n <label class=\"a-label\" for=\"tooltip_type\">{{ '@pry.admin.customize.type' | i18n }}</label>\n <pry-select\n id=\"tooltip_type\"\n (ngModelChange)=\"tooltipTypeChanged($event)\"\n [ngModel]=\"currentClassConfig.type\"\n [items]=\"possibleTooltipTypes$ | async\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n\n <div>\n <pry-checkbox [(ngModel)]=\"advancedTooltip\">{{ '@pry.admin.customize.advanced' | i18n }}</pry-checkbox>\n </div>\n\n <div class=\"m-form-label-field -width-xl\" *ngIf=\"!advancedTooltip && currentClassConfig.type === 'attribute'\">\n <label class=\"a-label\" for=\"customize_simplified\">{{ '@pry.admin.customize.simplified' | i18n }}</label>\n <pry-select\n id=\"customize_simplified\"\n (ngModelChange)=\"changeAttributes($event)\"\n [ngModel]=\"currentClassConfig.options.attributes\"\n [items]=\"attributesOfClass$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n bindLabel=\"name\"\n bindValue=\"id\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"advancedTooltip\">\n <textarea\n cols=\"100\"\n rows=\"15\"\n class=\"a-form-field\"\n [(ngModel)]=\"strOptions\"\n (focusout)=\"optionsChanged()\"\n ></textarea>\n </ng-container>\n</div>\n\n<div class=\"m-tooltip m-tooltip--example\" [class.-hidden]=\"noTooltip\">\n <div #example></div>\n</div>\n\n<div class=\"m-btn-group -width-md\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTemplate()\">\n {{ '@pry.admin.customize.update' | i18n }}\n </button>\n</div>\n" }]
1084
+ }], ctorParameters: () => [{ type: i4.TooltipFactoryService }, { type: i0.Injector }, { type: i4.PryI18nService }, { type: i1.Store }], propDecorators: { example: [{
1071
1085
  type: ViewChild,
1072
1086
  args: ['example', { read: ViewContainerRef }]
1073
1087
  }], backPressed: [{
@@ -1200,13 +1214,13 @@ class AdminClassesCustomizeSymbolComponent extends SubscriptionnerDirective {
1200
1214
  this.definitions[nextIndex] = tmp;
1201
1215
  this.store.dispatch(ConfigActions.updateIcons({ definitions: { [this.currentClass?.id ?? '']: this.definitions } }));
1202
1216
  }
1203
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesCustomizeSymbolComponent, deps: [{ token: i4.PryI18nService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminClassesCustomizeSymbolComponent, selector: "pry-admin-classes-customize-symbol", inputs: { currentClass: "currentClass" }, outputs: { backPressed: "backPressed" }, usesInheritance: true, ngImport: i0, template: "<ul class=\"m-rule-wrapper\">\n <li\n *ngFor=\"let definition of definitions; let i = index\"\n [class.m-rule--default]=\"definition.isDefault\"\n class=\"m-rule\"\n >\n <div class=\"m-rule__header\">\n <h3 class=\"a-h3\">\n {{ '@pry.admin.rule' | i18n : { id: i + 1 } }}\n <span>{{ definition.isDefault ? ('@pry.admin.defaultRule' | i18n) : '' }}</span>\n </h3>\n\n <div *ngIf=\"!definition.isDefault\" class=\"m-rule__actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [class.-disabled]=\"i <= 1\"\n [disabled]=\"i <= 1\"\n (click)=\"move(i, i - 1)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"fleche_haut\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveUp' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [class.-disabled]=\"i >= definitions.length - 1\"\n [disabled]=\"i >= definitions.length - 1\"\n (click)=\"move(i, i + 1)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"fleche_bas\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveDown' | i18n }}</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"removeRule(i)\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <div>\n <pry-select-image [iconUrl]=\"definition.iconUrl\" (changed)=\"changeForImage($event, i)\"></pry-select-image>\n\n <ng-container *ngIf=\"definition.isDefault\">\n <div class=\"m-form-label-field m-rule__display-mode\">\n <label class=\"a-label\" for=\"size\">{{ '@pry.admin.size' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeSize($event)\"\n [items]=\"sizes\"\n [ngModel]=\"definition.iconSize[0]\"\n bindLabel=\"label\"\n bindValue=\"value\"\n id=\"size\"\n ></pry-select>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!definition.isDefault\">\n <div class=\"m-form-label-field m-rule__display-mode\">\n <label class=\"a-label\" for=\"display_mode\">{{ '@pry.admin.displayModeImage' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changePosition($event, i)\"\n [items]=\"positions\"\n [ngModel]=\"definition.position\"\n bindLabel=\"label\"\n bindValue=\"value\"\n id=\"display_mode\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox [ngModel]=\"!!definition.rule\" (click)=\"toggleRule(i)\">{{\n '@pry.admin.classes.condition' | i18n\n }}</pry-checkbox>\n </div>\n </ng-container>\n\n <div *ngIf=\"!!definition.rule && !definition.isDefault\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_attrname\">{{ '@pry.admin.classes.attrName' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeAttrName($event, i)\"\n [items]=\"fieldsForClass\"\n [ngModel]=\"definition.rule.attributeName\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"classes_attrname\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_operation\">{{ '@pry.admin.classes.operation' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeOperation($event, i)\"\n [items]=\"operations\"\n [ngModel]=\"definition.rule.operation\"\n bindLabel=\"label\"\n bindValue=\"name\"\n id=\"classes_operation\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_value\">{{ '@pry.admin.classes.value' | i18n }}</label>\n <input\n id=\"classes_value\"\n type=\"text\"\n class=\"a-form-field\"\n (ngModelChange)=\"changeValue($event, i)\"\n [ngModel]=\"definition.rule.value\"\n />\n </div>\n </div>\n </div>\n </li>\n</ul>\n\n<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"addRule()\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n Ajouter une r\u00E8gle\n</button>\n\n<div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"restoreSymbols(); goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.customize.updateIcons' | i18n\"\n (click)=\"valid()\"\n ></button>\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.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1217
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesCustomizeSymbolComponent, deps: [{ token: i4.PryI18nService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1218
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminClassesCustomizeSymbolComponent, selector: "pry-admin-classes-customize-symbol", inputs: { currentClass: "currentClass" }, outputs: { backPressed: "backPressed" }, usesInheritance: true, ngImport: i0, template: "<ul class=\"m-rule-wrapper\">\n <li\n *ngFor=\"let definition of definitions; let i = index\"\n [class.m-rule--default]=\"definition.isDefault\"\n class=\"m-rule\"\n >\n <div class=\"m-rule__header\">\n <h3 class=\"a-h3\">\n {{ '@pry.admin.rule' | i18n : { id: i + 1 } }}\n <span>{{ definition.isDefault ? ('@pry.admin.defaultRule' | i18n) : '' }}</span>\n </h3>\n\n <div *ngIf=\"!definition.isDefault\" class=\"m-rule__actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [class.-disabled]=\"i <= 1\"\n [disabled]=\"i <= 1\"\n (click)=\"move(i, i - 1)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"fleche_haut\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveUp' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [class.-disabled]=\"i >= definitions.length - 1\"\n [disabled]=\"i >= definitions.length - 1\"\n (click)=\"move(i, i + 1)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"fleche_bas\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveDown' | i18n }}</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"removeRule(i)\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <div>\n <pry-select-image [iconUrl]=\"definition.iconUrl\" (changed)=\"changeForImage($event, i)\"></pry-select-image>\n\n <ng-container *ngIf=\"definition.isDefault\">\n <div class=\"m-form-label-field m-rule__display-mode\">\n <label class=\"a-label\" for=\"size\">{{ '@pry.admin.size' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeSize($event)\"\n [items]=\"sizes\"\n [ngModel]=\"definition.iconSize[0]\"\n bindLabel=\"label\"\n bindValue=\"value\"\n id=\"size\"\n ></pry-select>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!definition.isDefault\">\n <div class=\"m-form-label-field m-rule__display-mode\">\n <label class=\"a-label\" for=\"display_mode\">{{ '@pry.admin.displayModeImage' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changePosition($event, i)\"\n [items]=\"positions\"\n [ngModel]=\"definition.position\"\n bindLabel=\"label\"\n bindValue=\"value\"\n id=\"display_mode\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox [ngModel]=\"!!definition.rule\" (click)=\"toggleRule(i)\">{{\n '@pry.admin.classes.condition' | i18n\n }}</pry-checkbox>\n </div>\n </ng-container>\n\n <div *ngIf=\"!!definition.rule && !definition.isDefault\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_attrname\">{{ '@pry.admin.classes.attrName' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeAttrName($event, i)\"\n [items]=\"fieldsForClass\"\n [ngModel]=\"definition.rule.attributeName\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"classes_attrname\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_operation\">{{ '@pry.admin.classes.operation' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeOperation($event, i)\"\n [items]=\"operations\"\n [ngModel]=\"definition.rule.operation\"\n bindLabel=\"label\"\n bindValue=\"name\"\n id=\"classes_operation\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_value\">{{ '@pry.admin.classes.value' | i18n }}</label>\n <input\n id=\"classes_value\"\n type=\"text\"\n class=\"a-form-field\"\n (ngModelChange)=\"changeValue($event, i)\"\n [ngModel]=\"definition.rule.value\"\n />\n </div>\n </div>\n </div>\n </li>\n</ul>\n\n<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"addRule()\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n Ajouter une r\u00E8gle\n</button>\n\n<div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"restoreSymbols(); goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.customize.updateIcons' | i18n\"\n (click)=\"valid()\"\n ></button>\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.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1205
1219
  }
1206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesCustomizeSymbolComponent, decorators: [{
1220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesCustomizeSymbolComponent, decorators: [{
1207
1221
  type: Component,
1208
1222
  args: [{ selector: 'pry-admin-classes-customize-symbol', template: "<ul class=\"m-rule-wrapper\">\n <li\n *ngFor=\"let definition of definitions; let i = index\"\n [class.m-rule--default]=\"definition.isDefault\"\n class=\"m-rule\"\n >\n <div class=\"m-rule__header\">\n <h3 class=\"a-h3\">\n {{ '@pry.admin.rule' | i18n : { id: i + 1 } }}\n <span>{{ definition.isDefault ? ('@pry.admin.defaultRule' | i18n) : '' }}</span>\n </h3>\n\n <div *ngIf=\"!definition.isDefault\" class=\"m-rule__actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [class.-disabled]=\"i <= 1\"\n [disabled]=\"i <= 1\"\n (click)=\"move(i, i - 1)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"fleche_haut\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveUp' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [class.-disabled]=\"i >= definitions.length - 1\"\n [disabled]=\"i >= definitions.length - 1\"\n (click)=\"move(i, i + 1)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"fleche_bas\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveDown' | i18n }}</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"removeRule(i)\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <div>\n <pry-select-image [iconUrl]=\"definition.iconUrl\" (changed)=\"changeForImage($event, i)\"></pry-select-image>\n\n <ng-container *ngIf=\"definition.isDefault\">\n <div class=\"m-form-label-field m-rule__display-mode\">\n <label class=\"a-label\" for=\"size\">{{ '@pry.admin.size' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeSize($event)\"\n [items]=\"sizes\"\n [ngModel]=\"definition.iconSize[0]\"\n bindLabel=\"label\"\n bindValue=\"value\"\n id=\"size\"\n ></pry-select>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!definition.isDefault\">\n <div class=\"m-form-label-field m-rule__display-mode\">\n <label class=\"a-label\" for=\"display_mode\">{{ '@pry.admin.displayModeImage' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changePosition($event, i)\"\n [items]=\"positions\"\n [ngModel]=\"definition.position\"\n bindLabel=\"label\"\n bindValue=\"value\"\n id=\"display_mode\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox [ngModel]=\"!!definition.rule\" (click)=\"toggleRule(i)\">{{\n '@pry.admin.classes.condition' | i18n\n }}</pry-checkbox>\n </div>\n </ng-container>\n\n <div *ngIf=\"!!definition.rule && !definition.isDefault\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_attrname\">{{ '@pry.admin.classes.attrName' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeAttrName($event, i)\"\n [items]=\"fieldsForClass\"\n [ngModel]=\"definition.rule.attributeName\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"classes_attrname\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_operation\">{{ '@pry.admin.classes.operation' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeOperation($event, i)\"\n [items]=\"operations\"\n [ngModel]=\"definition.rule.operation\"\n bindLabel=\"label\"\n bindValue=\"name\"\n id=\"classes_operation\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"classes_value\">{{ '@pry.admin.classes.value' | i18n }}</label>\n <input\n id=\"classes_value\"\n type=\"text\"\n class=\"a-form-field\"\n (ngModelChange)=\"changeValue($event, i)\"\n [ngModel]=\"definition.rule.value\"\n />\n </div>\n </div>\n </div>\n </li>\n</ul>\n\n<button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"addRule()\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n Ajouter une r\u00E8gle\n</button>\n\n<div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"restoreSymbols(); goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.customize.updateIcons' | i18n\"\n (click)=\"valid()\"\n ></button>\n</div>\n" }]
1209
- }], ctorParameters: function () { return [{ type: i4.PryI18nService }, { type: i1.Store }]; }, propDecorators: { backPressed: [{
1223
+ }], ctorParameters: () => [{ type: i4.PryI18nService }, { type: i1.Store }], propDecorators: { backPressed: [{
1210
1224
  type: Output
1211
1225
  }], currentClass: [{
1212
1226
  type: Input
@@ -1227,6 +1241,7 @@ class AdminClassesCustomizeComponent extends SubscriptionnerDirective {
1227
1241
  this.maxTilesAttributes = 5;
1228
1242
  this.subscriptions.add(this.route.params.subscribe((params) => this.store.dispatch(AdminClassActions.selectClass({ clazz: { id: params['id'] } }))));
1229
1243
  this.store.dispatch(ClassActions.load());
1244
+ this.store.dispatch(FieldActions.load());
1230
1245
  this.store.dispatch(ConfigActions.loadCustomization());
1231
1246
  this.fields$ = this.store.select(FieldSelectors.fields);
1232
1247
  this.currentClass$ = combineLatest([
@@ -1238,15 +1253,15 @@ class AdminClassesCustomizeComponent extends SubscriptionnerDirective {
1238
1253
  this.subscriptions.add(this.currentPropertiesConfig$.pipe(combineLatestWith(this.currentClass$)).subscribe(([attrs, clazz]) => {
1239
1254
  this.defaultAttributes = JSON.parse(JSON.stringify(attrs));
1240
1255
  this.otherAttributes = (clazz ?? { attributes: [] }).attributes
1241
- .filter((attr) => !attrs.includes(attr.technicalName))
1242
- .map((attr) => attr.technicalName);
1256
+ .filter((attr) => !attrs.includes(attr.name))
1257
+ .map((attr) => attr.name);
1243
1258
  }));
1244
1259
  this.currentTilePropertiesConfig$ = this.store.select(ConfigSelectors.tileAttributesDefinitions).pipe(combineLatestWith(this.currentClass$, this.fields$), map(([defs, clazz, fields]) => ItemUtils.getAttributesDefinitionForClass((clazz ?? { attributes: [] }), defs, fields)), map((attrs) => attrs.filter((_, i) => i < this.maxTilesAttributes)));
1245
1260
  this.subscriptions.add(this.currentTilePropertiesConfig$.pipe(combineLatestWith(this.currentClass$)).subscribe(([attrs, clazz]) => {
1246
1261
  this.defaultTileAttributes = JSON.parse(JSON.stringify(attrs));
1247
1262
  this.otherTileAttributes = (clazz ?? { attributes: [] }).attributes
1248
- .filter((attr) => !attrs.includes(attr.technicalName))
1249
- .map((attr) => attr.technicalName);
1263
+ .filter((attr) => !attrs.includes(attr.name))
1264
+ .map((attr) => attr.name);
1250
1265
  }));
1251
1266
  this.subscriptions.add(this.store.select(ConfigSelectors.maxAttributesInTiles).subscribe((max) => {
1252
1267
  this.maxTilesAttributes = max;
@@ -1281,13 +1296,13 @@ class AdminClassesCustomizeComponent extends SubscriptionnerDirective {
1281
1296
  isTileConfValid() {
1282
1297
  return this.defaultTileAttributes.length > 0 && this.defaultTileAttributes.length <= this.maxTilesAttributes;
1283
1298
  }
1284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesCustomizeComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1285
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminClassesCustomizeComponent, selector: "pry-admin-classes-customize", usesInheritance: true, ngImport: i0, template: "<div class=\"o-pry-admin-classes-customize\">\n <h1 class=\"a-h1\" id=\"tab-custom\">{{ '@pry.admin.customize.title' | i18n }}</h1>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"customizeTemplate\" name=\"customize.template\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTable\" name=\"customize.table\"></pry-tab>\n <pry-tab [templateRef]=\"customizeSymbol\" name=\"classes.rules\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTile\" name=\"customize.tile\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #customizeTemplate>\n <pry-admin-classes-customize-tooltip\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-tooltip>\n </ng-template>\n <ng-template #customizeTable>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #defaultList=\"cdkDropList\"\n [cdkDropListData]=\"defaultAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultList=\"cdkDropList\"\n [cdkDropListData]=\"otherAttributes\"\n [cdkDropListConnectedTo]=\"[defaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTableAttrs()\">\n {{ '@pry.admin.customize.updateTable' | i18n }}\n </button>\n </div>\n </ng-template>\n <ng-template #customizeSymbol>\n <pry-admin-classes-customize-symbol\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-symbol>\n </ng-template>\n <ng-template #customizeTile>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tile' | i18n }}</h2>\n <div\n cdkDropList\n #defaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"defaultTileAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTileAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"otherTileAttributes\"\n [cdkDropListConnectedTo]=\"[defaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div>\n <ng-container *ngIf=\"!isTileConfValid()\">\n <p>{{ '@pry.admin.customize.tileHint' | i18n : { max: maxTilesAttributes } }}</p>\n </ng-container>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTileAttrs()\" [disabled]=\"!isTileConfValid()\">\n {{ '@pry.admin.customize.updateTile' | i18n }}\n </button>\n </div>\n </ng-template>\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.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "directive", type: i5$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: AdminClassesCustomizeTooltipComponent, selector: "pry-admin-classes-customize-tooltip", inputs: ["currentClass"], outputs: ["backPressed"] }, { kind: "component", type: AdminClassesCustomizeSymbolComponent, selector: "pry-admin-classes-customize-symbol", inputs: ["currentClass"], outputs: ["backPressed"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesCustomizeComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1300
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminClassesCustomizeComponent, selector: "pry-admin-classes-customize", usesInheritance: true, ngImport: i0, template: "<div class=\"o-pry-admin-classes-customize\">\n <h1 class=\"a-h1\" id=\"tab-custom\">{{ '@pry.admin.customize.title' | i18n }}</h1>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"customizeTemplate\" name=\"customize.template\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTable\" name=\"customize.table\"></pry-tab>\n <pry-tab [templateRef]=\"customizeSymbol\" name=\"classes.rules\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTile\" name=\"customize.tile\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #customizeTemplate>\n <pry-admin-classes-customize-tooltip\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-tooltip>\n </ng-template>\n <ng-template #customizeTable>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #defaultList=\"cdkDropList\"\n [cdkDropListData]=\"defaultAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultList=\"cdkDropList\"\n [cdkDropListData]=\"otherAttributes\"\n [cdkDropListConnectedTo]=\"[defaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTableAttrs()\">\n {{ '@pry.admin.customize.updateTable' | i18n }}\n </button>\n </div>\n </ng-template>\n <ng-template #customizeSymbol>\n <pry-admin-classes-customize-symbol\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-symbol>\n </ng-template>\n <ng-template #customizeTile>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tile' | i18n }}</h2>\n <div\n cdkDropList\n #defaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"defaultTileAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTileAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"otherTileAttributes\"\n [cdkDropListConnectedTo]=\"[defaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div>\n <ng-container *ngIf=\"!isTileConfValid()\">\n <p>{{ '@pry.admin.customize.tileHint' | i18n : { max: maxTilesAttributes } }}</p>\n </ng-container>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTileAttrs()\" [disabled]=\"!isTileConfValid()\">\n {{ '@pry.admin.customize.updateTile' | i18n }}\n </button>\n </div>\n </ng-template>\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.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "directive", type: i5$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: AdminClassesCustomizeTooltipComponent, selector: "pry-admin-classes-customize-tooltip", inputs: ["currentClass"], outputs: ["backPressed"] }, { kind: "component", type: AdminClassesCustomizeSymbolComponent, selector: "pry-admin-classes-customize-symbol", inputs: ["currentClass"], outputs: ["backPressed"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1286
1301
  }
1287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesCustomizeComponent, decorators: [{
1302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesCustomizeComponent, decorators: [{
1288
1303
  type: Component,
1289
1304
  args: [{ selector: 'pry-admin-classes-customize', template: "<div class=\"o-pry-admin-classes-customize\">\n <h1 class=\"a-h1\" id=\"tab-custom\">{{ '@pry.admin.customize.title' | i18n }}</h1>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"customizeTemplate\" name=\"customize.template\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTable\" name=\"customize.table\"></pry-tab>\n <pry-tab [templateRef]=\"customizeSymbol\" name=\"classes.rules\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTile\" name=\"customize.tile\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #customizeTemplate>\n <pry-admin-classes-customize-tooltip\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-tooltip>\n </ng-template>\n <ng-template #customizeTable>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #defaultList=\"cdkDropList\"\n [cdkDropListData]=\"defaultAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultList=\"cdkDropList\"\n [cdkDropListData]=\"otherAttributes\"\n [cdkDropListConnectedTo]=\"[defaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTableAttrs()\">\n {{ '@pry.admin.customize.updateTable' | i18n }}\n </button>\n </div>\n </ng-template>\n <ng-template #customizeSymbol>\n <pry-admin-classes-customize-symbol\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-symbol>\n </ng-template>\n <ng-template #customizeTile>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tile' | i18n }}</h2>\n <div\n cdkDropList\n #defaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"defaultTileAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTileAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"otherTileAttributes\"\n [cdkDropListConnectedTo]=\"[defaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div>\n <ng-container *ngIf=\"!isTileConfValid()\">\n <p>{{ '@pry.admin.customize.tileHint' | i18n : { max: maxTilesAttributes } }}</p>\n </ng-container>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTileAttrs()\" [disabled]=\"!isTileConfValid()\">\n {{ '@pry.admin.customize.updateTile' | i18n }}\n </button>\n </div>\n </ng-template>\n</div>\n" }]
1290
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
1305
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
1291
1306
 
1292
1307
  class PryAdminComponent extends SubscriptionnerDirective {
1293
1308
  constructor(store, route) {
@@ -1298,13 +1313,13 @@ class PryAdminComponent extends SubscriptionnerDirective {
1298
1313
  this.store.dispatch(AdminActions.togglePanel({ panelOpen: false }));
1299
1314
  this.subscriptions.add(this.route.data.subscribe((data) => (this.limit = data['limitMenu'])));
1300
1315
  }
1301
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAdminComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1302
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryAdminComponent, selector: "pry-admin", usesInheritance: true, ngImport: i0, template: "<h2 class=\"admin__title\">{{ (!limit ? '@pry.admin.title' : '@pry.admin.menus.' + limit) | i18n }}</h2>\n", dependencies: [{ kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1316
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1317
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryAdminComponent, selector: "pry-admin", usesInheritance: true, ngImport: i0, template: "<h2 class=\"admin__title\">{{ (!limit ? '@pry.admin.title' : '@pry.admin.menus.' + limit) | i18n }}</h2>\n", dependencies: [{ kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1303
1318
  }
1304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAdminComponent, decorators: [{
1319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminComponent, decorators: [{
1305
1320
  type: Component,
1306
1321
  args: [{ selector: 'pry-admin', template: "<h2 class=\"admin__title\">{{ (!limit ? '@pry.admin.title' : '@pry.admin.menus.' + limit) | i18n }}</h2>\n" }]
1307
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ActivatedRoute }]; } });
1322
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }] });
1308
1323
  function noWhitespaceValidator(control) {
1309
1324
  const isWhitespace = (control.value || '').trim().length < 3 && /\s/.test(control.value);
1310
1325
  const isValid = !isWhitespace;
@@ -1383,13 +1398,13 @@ class AdminClassesFormComponent extends SubscriptionnerDirective {
1383
1398
  }
1384
1399
  }
1385
1400
  }
1386
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
1387
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminClassesFormComponent, selector: "pry-admin-classes-form", inputs: { currentClass: "currentClass" }, usesInheritance: true, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"classForm\" (ngSubmit)=\"addClass()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.classes.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n [attr.aria-labelledby]=\"isSubmitted && classForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n class=\"a-form-field\"\n formControlName=\"name\"\n id=\"name\"\n required\n type=\"text\"\n [attr.aria-invalid]=\"isSubmitted && classForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && classForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"classForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('minlength')\">{{ '@pry.admin.minLength' | i18n : { len: 3 } }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('maxlength')\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('whitespace')\">{{ '@pry.admin.noWhitespace' | i18n }}</span>\n </label>\n </div>\n <div class=\"u-display-flex -row -align-center\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"storage_options\">\n {{ '@pry.admin.storage.label' | i18n }}\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n [items]=\"storageOptions$ | async\"\n i18nPrefix=\"@pry.admin.storage.options.\"\n formControlName=\"storage\"\n id=\"storage_options\"\n [readonly]=\"!!_currentClass\"\n ></pry-select>\n </div>\n <div class=\"m-info-icon a-tooltip -tooltip-width-md\" [attr.data-tooltip]=\"'@pry.admin.storage.description.' + classForm.get('storage')?.value | i18n\" data-tooltip-position=\"right\">\n <span>i</span>\n </div>\n </div>\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentClass ? '@pry.admin.edit' : '@pry.admin.next') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1401
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
1402
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminClassesFormComponent, selector: "pry-admin-classes-form", inputs: { currentClass: "currentClass" }, usesInheritance: true, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"classForm\" (ngSubmit)=\"addClass()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.classes.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n [attr.aria-labelledby]=\"isSubmitted && classForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n class=\"a-form-field\"\n formControlName=\"name\"\n id=\"name\"\n required\n type=\"text\"\n [attr.aria-invalid]=\"isSubmitted && classForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && classForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"classForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('minlength')\">{{ '@pry.admin.minLength' | i18n : { len: 3 } }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('maxlength')\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('whitespace')\">{{ '@pry.admin.noWhitespace' | i18n }}</span>\n </label>\n </div>\n <div class=\"u-display-flex -row -align-center\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"storage_options\">\n {{ '@pry.admin.storage.label' | i18n }}\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n [items]=\"storageOptions$ | async\"\n i18nPrefix=\"@pry.admin.storage.options.\"\n formControlName=\"storage\"\n id=\"storage_options\"\n [readonly]=\"!!_currentClass\"\n ></pry-select>\n </div>\n <div class=\"m-info-icon a-tooltip -tooltip-width-md\" [attr.data-tooltip]=\"'@pry.admin.storage.description.' + classForm.get('storage')?.value | i18n\" data-tooltip-position=\"right\">\n <span>i</span>\n </div>\n </div>\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentClass ? '@pry.admin.edit' : '@pry.admin.next') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1388
1403
  }
1389
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesFormComponent, decorators: [{
1404
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesFormComponent, decorators: [{
1390
1405
  type: Component,
1391
1406
  args: [{ selector: 'pry-admin-classes-form', template: "<form class=\"o-form\" [formGroup]=\"classForm\" (ngSubmit)=\"addClass()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.classes.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n [attr.aria-labelledby]=\"isSubmitted && classForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n class=\"a-form-field\"\n formControlName=\"name\"\n id=\"name\"\n required\n type=\"text\"\n [attr.aria-invalid]=\"isSubmitted && classForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && classForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"classForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('minlength')\">{{ '@pry.admin.minLength' | i18n : { len: 3 } }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('maxlength')\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</span>\n <span *ngIf=\"classForm.get('name')?.hasError('whitespace')\">{{ '@pry.admin.noWhitespace' | i18n }}</span>\n </label>\n </div>\n <div class=\"u-display-flex -row -align-center\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"storage_options\">\n {{ '@pry.admin.storage.label' | i18n }}\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n [items]=\"storageOptions$ | async\"\n i18nPrefix=\"@pry.admin.storage.options.\"\n formControlName=\"storage\"\n id=\"storage_options\"\n [readonly]=\"!!_currentClass\"\n ></pry-select>\n </div>\n <div class=\"m-info-icon a-tooltip -tooltip-width-md\" [attr.data-tooltip]=\"'@pry.admin.storage.description.' + classForm.get('storage')?.value | i18n\" data-tooltip-position=\"right\">\n <span>i</span>\n </div>\n </div>\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentClass ? '@pry.admin.edit' : '@pry.admin.next') | i18n\"\n ></button>\n </div>\n</form>\n" }]
1392
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }]; }, propDecorators: { currentClass: [{
1407
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }], propDecorators: { currentClass: [{
1393
1408
  type: Input
1394
1409
  }] } });
1395
1410
 
@@ -1403,19 +1418,19 @@ class AdminClassesEditComponent {
1403
1418
  ngOnInit() {
1404
1419
  this.route.params.subscribe((params) => (this.currentClass$ = this.store.select(ClassSelectors.classById(params['id']))));
1405
1420
  }
1406
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesEditComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1407
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminClassesEditComponent, selector: "pry-admin-classes-edit", ngImport: i0, template: "<div *ngIf=\"currentClass$ | async as currentClass\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.rename' | i18n }}</h1>\n <pry-admin-classes-form [currentClass]=\"currentClass\"></pry-admin-classes-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminClassesFormComponent, selector: "pry-admin-classes-form", inputs: ["currentClass"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1421
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesEditComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1422
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminClassesEditComponent, selector: "pry-admin-classes-edit", ngImport: i0, template: "<div *ngIf=\"currentClass$ | async as currentClass\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.rename' | i18n }}</h1>\n <pry-admin-classes-form [currentClass]=\"currentClass\"></pry-admin-classes-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminClassesFormComponent, selector: "pry-admin-classes-form", inputs: ["currentClass"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1408
1423
  }
1409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesEditComponent, decorators: [{
1424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesEditComponent, decorators: [{
1410
1425
  type: Component,
1411
1426
  args: [{ selector: 'pry-admin-classes-edit', template: "<div *ngIf=\"currentClass$ | async as currentClass\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.rename' | i18n }}</h1>\n <pry-admin-classes-form [currentClass]=\"currentClass\"></pry-admin-classes-form>\n</div>\n" }]
1412
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
1427
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
1413
1428
 
1414
1429
  class AdminClassesNewComponent {
1415
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1416
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminClassesNewComponent, selector: "pry-admin-classes-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.add' | i18n }}</h1>\n <pry-admin-classes-form></pry-admin-classes-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminClassesFormComponent, selector: "pry-admin-classes-form", inputs: ["currentClass"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1430
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1431
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminClassesNewComponent, selector: "pry-admin-classes-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.add' | i18n }}</h1>\n <pry-admin-classes-form></pry-admin-classes-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminClassesFormComponent, selector: "pry-admin-classes-form", inputs: ["currentClass"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1417
1432
  }
1418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesNewComponent, decorators: [{
1433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesNewComponent, decorators: [{
1419
1434
  type: Component,
1420
1435
  args: [{ selector: 'pry-admin-classes-new', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.add' | i18n }}</h1>\n <pry-admin-classes-form></pry-admin-classes-form>\n</div>\n" }]
1421
1436
  }] });
@@ -1567,13 +1582,13 @@ class AdminAttributesFormComponent extends SubscriptionnerDirective {
1567
1582
  });
1568
1583
  this.closeCategory();
1569
1584
  }
1570
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAttributesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }, { token: i5.Overlay }, { token: i0.ViewContainerRef }, { token: i4.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
1571
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: { selectedClass: "selectedClass", interClass: "interClass", selectedAttribute: "selectedAttribute" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</label>\n <input id=\"attr_technicalName\" type=\"text\" class=\"a-form-field\" formControlName=\"technicalName\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"technicalNameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('technicalName')?.invalid\">\n <div *ngIf=\"attrForm.get('technicalName')?.dirty && attrForm.get('technicalName')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div\n *ngIf=\"\n attrForm.get('technicalName')?.hasError('whitespace') && !attrForm.get('technicalName')?.hasError('minlength')\n \"\n >\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 50 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"type\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chip\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.dirty && attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists || technicalNameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scope=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--secondary select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1585
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }, { token: i5.Overlay }, { token: i0.ViewContainerRef }, { token: i4.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
1586
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: { selectedClass: "selectedClass", interClass: "interClass", selectedAttribute: "selectedAttribute" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</label>\n <input id=\"attr_technicalName\" type=\"text\" class=\"a-form-field\" formControlName=\"technicalName\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"technicalNameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('technicalName')?.invalid\">\n <div *ngIf=\"attrForm.get('technicalName')?.dirty && attrForm.get('technicalName')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div\n *ngIf=\"\n attrForm.get('technicalName')?.hasError('whitespace') && !attrForm.get('technicalName')?.hasError('minlength')\n \"\n >\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 50 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"type\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chip\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.dirty && attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists || technicalNameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scope=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--secondary select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1572
1587
  }
1573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAttributesFormComponent, decorators: [{
1588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesFormComponent, decorators: [{
1574
1589
  type: Component,
1575
1590
  args: [{ selector: 'pry-admin-attributes-form', template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</label>\n <input id=\"attr_technicalName\" type=\"text\" class=\"a-form-field\" formControlName=\"technicalName\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"technicalNameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('technicalName')?.invalid\">\n <div *ngIf=\"attrForm.get('technicalName')?.dirty && attrForm.get('technicalName')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('technicalName')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div\n *ngIf=\"\n attrForm.get('technicalName')?.hasError('whitespace') && !attrForm.get('technicalName')?.hasError('minlength')\n \"\n >\n <label class=\"a-label a-label--help -error\" for=\"attr_technicalName\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 50 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"type\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [template]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chip\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.dirty && attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists || technicalNameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scope=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--secondary select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n" }]
1576
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }, { type: i5.Overlay }, { type: i0.ViewContainerRef }, { type: i4.PryI18nService }]; }, propDecorators: { selectedClass: [{
1591
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }, { type: i5.Overlay }, { type: i0.ViewContainerRef }, { type: i4.PryI18nService }], propDecorators: { selectedClass: [{
1577
1592
  type: Input
1578
1593
  }], interClass: [{
1579
1594
  type: Input
@@ -1597,13 +1612,13 @@ class AdminAttributesEditComponent {
1597
1612
  this.selectedAttribute$ = this.selectedClass$.pipe(map((selectedClass) => selectedClass.attributes.find((attr) => attr.id == params['attrId'])));
1598
1613
  });
1599
1614
  }
1600
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAttributesEditComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1601
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminAttributesEditComponent, selector: "pry-admin-attributes-edit", ngImport: i0, template: "<div class=\"classes-container\" *ngIf=\"selectedClass$ | async as selectedClass\">\n <div *ngIf=\"selectedAttribute$ | async as selectedAttribute\">\n <h2 class=\"classes__title\" [innerHTML]=\"'@pry.admin.classes.attributes.edit' | i18n\"></h2>\n <pry-admin-attributes-form\n [selectedClass]=\"selectedClass\"\n [selectedAttribute]=\"selectedAttribute\"\n ></pry-admin-attributes-form>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: ["selectedClass", "interClass", "selectedAttribute"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1615
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesEditComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1616
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAttributesEditComponent, selector: "pry-admin-attributes-edit", ngImport: i0, template: "<div class=\"classes-container\" *ngIf=\"selectedClass$ | async as selectedClass\">\n <div *ngIf=\"selectedAttribute$ | async as selectedAttribute\">\n <h2 class=\"classes__title\" [innerHTML]=\"'@pry.admin.classes.attributes.edit' | i18n\"></h2>\n <pry-admin-attributes-form\n [selectedClass]=\"selectedClass\"\n [selectedAttribute]=\"selectedAttribute\"\n ></pry-admin-attributes-form>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: ["selectedClass", "interClass", "selectedAttribute"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1602
1617
  }
1603
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAttributesEditComponent, decorators: [{
1618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesEditComponent, decorators: [{
1604
1619
  type: Component,
1605
1620
  args: [{ selector: 'pry-admin-attributes-edit', template: "<div class=\"classes-container\" *ngIf=\"selectedClass$ | async as selectedClass\">\n <div *ngIf=\"selectedAttribute$ | async as selectedAttribute\">\n <h2 class=\"classes__title\" [innerHTML]=\"'@pry.admin.classes.attributes.edit' | i18n\"></h2>\n <pry-admin-attributes-form\n [selectedClass]=\"selectedClass\"\n [selectedAttribute]=\"selectedAttribute\"\n ></pry-admin-attributes-form>\n </div>\n</div>\n" }]
1606
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
1621
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
1607
1622
 
1608
1623
  class AdminAttributesNewComponent {
1609
1624
  constructor(store, router, route) {
@@ -1618,13 +1633,13 @@ class AdminAttributesNewComponent {
1618
1633
  this.interClass$ = this.store.select(AdminClassSelectors.interClass);
1619
1634
  });
1620
1635
  }
1621
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAttributesNewComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1622
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminAttributesNewComponent, selector: "pry-admin-attributes-new", ngImport: i0, template: "<div class=\"o-base-container\" *ngIf=\"selectedClass$ | async as selectedClass\">\n <h1 class=\"a-h1\">\n {{ '@pry.admin.classes.title' | i18n: { class: selectedClass.name } }}\n </h1>\n <h2>\n {{ '@pry.admin.classes.attributes.add' | i18n }}\n </h2>\n <pry-admin-attributes-form [selectedClass]=\"selectedClass\"></pry-admin-attributes-form>\n</div>\n\n<div class=\"o-base-container\" *ngIf=\"interClass$ | async as selectedClass\">\n <h1 class=\"a-h1\" [innerHTML]=\"'@pry.admin.classes.attributes.add' | i18n: { class: selectedClass.name }\"></h1>\n <pry-admin-attributes-form [interClass]=\"selectedClass\"></pry-admin-attributes-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: ["selectedClass", "interClass", "selectedAttribute"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1636
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesNewComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1637
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminAttributesNewComponent, selector: "pry-admin-attributes-new", ngImport: i0, template: "<div class=\"o-base-container\" *ngIf=\"selectedClass$ | async as selectedClass\">\n <h1 class=\"a-h1\">\n {{ '@pry.admin.classes.title' | i18n: { class: selectedClass.name } }}\n </h1>\n <h2>\n {{ '@pry.admin.classes.attributes.add' | i18n }}\n </h2>\n <pry-admin-attributes-form [selectedClass]=\"selectedClass\"></pry-admin-attributes-form>\n</div>\n\n<div class=\"o-base-container\" *ngIf=\"interClass$ | async as selectedClass\">\n <h1 class=\"a-h1\" [innerHTML]=\"'@pry.admin.classes.attributes.add' | i18n: { class: selectedClass.name }\"></h1>\n <pry-admin-attributes-form [interClass]=\"selectedClass\"></pry-admin-attributes-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: ["selectedClass", "interClass", "selectedAttribute"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1623
1638
  }
1624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAttributesNewComponent, decorators: [{
1639
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesNewComponent, decorators: [{
1625
1640
  type: Component,
1626
1641
  args: [{ selector: 'pry-admin-attributes-new', template: "<div class=\"o-base-container\" *ngIf=\"selectedClass$ | async as selectedClass\">\n <h1 class=\"a-h1\">\n {{ '@pry.admin.classes.title' | i18n: { class: selectedClass.name } }}\n </h1>\n <h2>\n {{ '@pry.admin.classes.attributes.add' | i18n }}\n </h2>\n <pry-admin-attributes-form [selectedClass]=\"selectedClass\"></pry-admin-attributes-form>\n</div>\n\n<div class=\"o-base-container\" *ngIf=\"interClass$ | async as selectedClass\">\n <h1 class=\"a-h1\" [innerHTML]=\"'@pry.admin.classes.attributes.add' | i18n: { class: selectedClass.name }\"></h1>\n <pry-admin-attributes-form [interClass]=\"selectedClass\"></pry-admin-attributes-form>\n</div>\n" }]
1627
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
1642
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
1628
1643
 
1629
1644
  class AdminClassesViewComponent {
1630
1645
  constructor(store, router, route, overlay, viewContainerRef) {
@@ -1785,13 +1800,13 @@ class AdminClassesViewComponent {
1785
1800
  }
1786
1801
  this.dispatchCloseModal();
1787
1802
  }
1788
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesViewComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i5.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
1789
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminClassesViewComponent, selector: "pry-admin-classes-view", viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"(selectedclass$ | async) || (interClass$ | async) as selectedClass\">\n <div class=\"o-base-container\">\n <h1 class=\"a-h1\">\n {{ '@pry.admin.classes.title' | i18n : { class: selectedClass.name } }}\n </h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.classes.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</th>\n <th prySortHeader=\"field\">{{ '@pry.admin.classes.attributes.field' | i18n }}</th>\n <th prySortHeader=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let attr of attributesExtended$ | async | prySortData : sortActive : sortDirection\"\n (click)=\"selectAttr(attr)\"\n [class.is-selected]=\"(selectedAttributeId$ | async) === attr.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-attr-' + attr.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedAttributeId$ | async) === attr.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-attr-' + attr.id\"\n >\n <span class=\"u-visually-hidden\">{{ attr.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ attr.technicalName }}</td>\n <td>{{ attr.name }}</td>\n <td>{{ attr.fieldName }}</td>\n <td>{{ attr.categoryName }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-container>\n\n<ng-template #confirmationModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.createClassConfirmMessage' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"dispatchCloseModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"saveClass()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"dispatchCloseModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\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: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1803
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesViewComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i5.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
1804
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminClassesViewComponent, selector: "pry-admin-classes-view", viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"(selectedclass$ | async) || (interClass$ | async) as selectedClass\">\n <div class=\"o-base-container\">\n <h1 class=\"a-h1\">\n {{ '@pry.admin.classes.title' | i18n : { class: selectedClass.name } }}\n </h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.classes.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</th>\n <th prySortHeader=\"field\">{{ '@pry.admin.classes.attributes.field' | i18n }}</th>\n <th prySortHeader=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let attr of attributesExtended$ | async | prySortData : sortActive : sortDirection\"\n (click)=\"selectAttr(attr)\"\n [class.is-selected]=\"(selectedAttributeId$ | async) === attr.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-attr-' + attr.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedAttributeId$ | async) === attr.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-attr-' + attr.id\"\n >\n <span class=\"u-visually-hidden\">{{ attr.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ attr.technicalName }}</td>\n <td>{{ attr.name }}</td>\n <td>{{ attr.fieldName }}</td>\n <td>{{ attr.categoryName }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-container>\n\n<ng-template #confirmationModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.createClassConfirmMessage' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"dispatchCloseModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"saveClass()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"dispatchCloseModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\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: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1790
1805
  }
1791
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesViewComponent, decorators: [{
1806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesViewComponent, decorators: [{
1792
1807
  type: Component,
1793
1808
  args: [{ selector: 'pry-admin-classes-view', template: "<ng-container *ngIf=\"(selectedclass$ | async) || (interClass$ | async) as selectedClass\">\n <div class=\"o-base-container\">\n <h1 class=\"a-h1\">\n {{ '@pry.admin.classes.title' | i18n : { class: selectedClass.name } }}\n </h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.classes.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"technicalName\">{{ '@pry.admin.classes.attributes.technicalName' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</th>\n <th prySortHeader=\"field\">{{ '@pry.admin.classes.attributes.field' | i18n }}</th>\n <th prySortHeader=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let attr of attributesExtended$ | async | prySortData : sortActive : sortDirection\"\n (click)=\"selectAttr(attr)\"\n [class.is-selected]=\"(selectedAttributeId$ | async) === attr.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-attr-' + attr.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedAttributeId$ | async) === attr.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-attr-' + attr.id\"\n >\n <span class=\"u-visually-hidden\">{{ attr.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ attr.technicalName }}</td>\n <td>{{ attr.name }}</td>\n <td>{{ attr.fieldName }}</td>\n <td>{{ attr.categoryName }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-container>\n\n<ng-template #confirmationModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.createClassConfirmMessage' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"dispatchCloseModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"saveClass()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"dispatchCloseModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
1794
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i5.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { confirmationModal: [{
1809
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i5.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { confirmationModal: [{
1795
1810
  type: ViewChild,
1796
1811
  args: ['confirmationModal', { read: TemplateRef }]
1797
1812
  }] } });
@@ -1848,13 +1863,13 @@ class AdminClassesComponent {
1848
1863
  this.store.dispatch(AdminClassActions.selectClass({ clazz: clazz }));
1849
1864
  this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminClassesSelectComponent' }));
1850
1865
  }
1851
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1852
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminClassesComponent, selector: "pry-admin-classes", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.classes.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"image\">{{ '@pry.admin.classes.image' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.classes.name' | i18n }}</th>\n <th prySortHeader=\"lines\">{{ '@pry.admin.menus.dataset' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let clazz of classesInputFlows$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectClass(clazz)\"\n [class.is-selected]=\"(selectedClassId$ | async) === clazz.id\"\n >\n <td class=\"view-details\">\n <button\n id=\"button-class-{{ clazz.id }}\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedClassId$ | async) === clazz.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-class-' + clazz.id\"\n >\n <span class=\"u-visually-hidden\">{{ clazz.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </td>\n <td>{{ clazz.name }}</td>\n <td>{{ clazz.count }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1866
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1867
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminClassesComponent, selector: "pry-admin-classes", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.classes.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"image\">{{ '@pry.admin.classes.image' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.classes.name' | i18n }}</th>\n <th prySortHeader=\"lines\">{{ '@pry.admin.menus.dataset' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let clazz of classesInputFlows$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectClass(clazz)\"\n [class.is-selected]=\"(selectedClassId$ | async) === clazz.id\"\n >\n <td class=\"view-details\">\n <button\n id=\"button-class-{{ clazz.id }}\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedClassId$ | async) === clazz.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-class-' + clazz.id\"\n >\n <span class=\"u-visually-hidden\">{{ clazz.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </td>\n <td>{{ clazz.name }}</td>\n <td>{{ clazz.count }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1853
1868
  }
1854
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesComponent, decorators: [{
1869
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesComponent, decorators: [{
1855
1870
  type: Component,
1856
1871
  args: [{ selector: 'pry-admin-classes', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.classes.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"image\">{{ '@pry.admin.classes.image' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.classes.name' | i18n }}</th>\n <th prySortHeader=\"lines\">{{ '@pry.admin.menus.dataset' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let clazz of classesInputFlows$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectClass(clazz)\"\n [class.is-selected]=\"(selectedClassId$ | async) === clazz.id\"\n >\n <td class=\"view-details\">\n <button\n id=\"button-class-{{ clazz.id }}\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedClassId$ | async) === clazz.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-class-' + clazz.id\"\n >\n <span class=\"u-visually-hidden\">{{ clazz.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </td>\n <td>{{ clazz.name }}</td>\n <td>{{ clazz.count }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
1857
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
1872
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
1858
1873
 
1859
1874
  class AdminDatasetComponent {
1860
1875
  constructor(store, translateService, router, route) {
@@ -1916,13 +1931,13 @@ class AdminDatasetComponent {
1916
1931
  this.store.dispatch(DataSourceActions.dataset.selectDataset({ dataset }));
1917
1932
  this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminSelectDatasetComponent' }));
1918
1933
  }
1919
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminDatasetComponent, deps: [{ token: i1.Store }, { token: i4.PryI18nService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1920
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminDatasetComponent, selector: "pry-admin-dataset", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.dataset.title' | i18n }}</h1>\n <ng-container *ngIf=\"datasetList$ | async as datasetList\">\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let dataset of datasetList | prySortData: sortActive : sortDirection\"\n (click)=\"selectDataset(dataset)\"\n [class.is-selected]=\"(selectedDataset$ | async) === dataset.id\"\n >\n <td class=\"view-details\">\n <button\n id=\"button-dataset- + {{ dataset.id }}\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedDataset$ | async) === dataset.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-dataset-' + dataset.id\"\n >\n <span class=\"u-visually-hidden\">{{ dataset.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ dataset.name }}</td>\n <td>{{ dataset.oClass | translateId: { type: 'class', output: 'name' } | async }}</td>\n <td>{{ '@pry.admin.dataset.' + dataset.type | i18n }}</td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n</div>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelDatasetSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\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: "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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i4.PryModalComponent, selector: "pry-modal", inputs: ["titleModal", "opened", "validateLabel", "validateAction", "cancelLabel", "cancelAction"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1934
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminDatasetComponent, deps: [{ token: i1.Store }, { token: i4.PryI18nService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1935
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminDatasetComponent, selector: "pry-admin-dataset", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.dataset.title' | i18n }}</h1>\n <ng-container *ngIf=\"datasetList$ | async as datasetList\">\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let dataset of datasetList | prySortData: sortActive : sortDirection\"\n (click)=\"selectDataset(dataset)\"\n [class.is-selected]=\"(selectedDataset$ | async) === dataset.id\"\n >\n <td class=\"view-details\">\n <button\n id=\"button-dataset- + {{ dataset.id }}\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedDataset$ | async) === dataset.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-dataset-' + dataset.id\"\n >\n <span class=\"u-visually-hidden\">{{ dataset.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ dataset.name }}</td>\n <td>{{ dataset.oClass | translateId: { type: 'class', output: 'name' } | async }}</td>\n <td>{{ '@pry.admin.dataset.' + dataset.type | i18n }}</td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n</div>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelDatasetSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\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: "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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i4.PryModalComponent, selector: "pry-modal", inputs: ["titleModal", "opened", "validateLabel", "validateAction", "cancelLabel", "cancelAction"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
1921
1936
  }
1922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminDatasetComponent, decorators: [{
1937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminDatasetComponent, decorators: [{
1923
1938
  type: Component,
1924
1939
  args: [{ selector: 'pry-admin-dataset', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.dataset.title' | i18n }}</h1>\n <ng-container *ngIf=\"datasetList$ | async as datasetList\">\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let dataset of datasetList | prySortData: sortActive : sortDirection\"\n (click)=\"selectDataset(dataset)\"\n [class.is-selected]=\"(selectedDataset$ | async) === dataset.id\"\n >\n <td class=\"view-details\">\n <button\n id=\"button-dataset- + {{ dataset.id }}\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedDataset$ | async) === dataset.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-dataset-' + dataset.id\"\n >\n <span class=\"u-visually-hidden\">{{ dataset.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ dataset.name }}</td>\n <td>{{ dataset.oClass | translateId: { type: 'class', output: 'name' } | async }}</td>\n <td>{{ '@pry.admin.dataset.' + dataset.type | i18n }}</td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n</div>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelDatasetSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\n" }]
1925
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i4.PryI18nService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; }, propDecorators: { input: [{
1940
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i4.PryI18nService }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { input: [{
1926
1941
  type: ViewChild,
1927
1942
  args: ['input']
1928
1943
  }] } });
@@ -2003,13 +2018,13 @@ class AdminFormDatasetComponent {
2003
2018
  }
2004
2019
  }
2005
2020
  }
2006
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFormDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
2007
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminFormDatasetComponent, selector: "pry-admin-form-dataset", inputs: { dataset$: "dataset$" }, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.dataset.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"description-label\" for=\"description\">{{ '@pry.admin.fields.description' | i18n }}</label>\n <textarea\n class=\"-resizable-both\"\n formControlName=\"description\"\n name=\"description\"\n id=\"description\"\n maxlength=\"500\"\n ></textarea>\n <label\n for=\"description\"\n *ngIf=\"form.get('description')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n : { len: '500' } }}\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"class\">{{ '@pry.admin.dataset.oClass' | i18n }}</label>\n <pry-select\n id=\"class\"\n formControlName=\"oClass\"\n [items]=\"classes | async\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n aria-labelledby=\"item-label\"\n [readonly]=\"!!dataset$\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"type\">{{ '@pry.admin.dataset.type' | i18n }}</label>\n <pry-select\n id=\"type\"\n formControlName=\"type\"\n [items]=\"datasetTypes\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n aria-labelledby=\"user-label\"\n [readonly]=\"!!dataset$\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{ '@pry.admin.dataset.is-same-name' | i18n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(dataset$ ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2021
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFormDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
2022
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminFormDatasetComponent, selector: "pry-admin-form-dataset", inputs: { dataset$: "dataset$" }, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.dataset.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"description-label\" for=\"description\">{{ '@pry.admin.fields.description' | i18n }}</label>\n <textarea\n class=\"-resizable-both\"\n formControlName=\"description\"\n name=\"description\"\n id=\"description\"\n maxlength=\"500\"\n ></textarea>\n <label\n for=\"description\"\n *ngIf=\"form.get('description')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n : { len: '500' } }}\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"class\">{{ '@pry.admin.dataset.oClass' | i18n }}</label>\n <pry-select\n id=\"class\"\n formControlName=\"oClass\"\n [items]=\"classes | async\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n aria-labelledby=\"item-label\"\n [readonly]=\"!!dataset$\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"type\">{{ '@pry.admin.dataset.type' | i18n }}</label>\n <pry-select\n id=\"type\"\n formControlName=\"type\"\n [items]=\"datasetTypes\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n aria-labelledby=\"user-label\"\n [readonly]=\"!!dataset$\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{ '@pry.admin.dataset.is-same-name' | i18n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(dataset$ ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2008
2023
  }
2009
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFormDatasetComponent, decorators: [{
2024
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFormDatasetComponent, decorators: [{
2010
2025
  type: Component,
2011
2026
  args: [{ selector: 'pry-admin-form-dataset', template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.dataset.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"description-label\" for=\"description\">{{ '@pry.admin.fields.description' | i18n }}</label>\n <textarea\n class=\"-resizable-both\"\n formControlName=\"description\"\n name=\"description\"\n id=\"description\"\n maxlength=\"500\"\n ></textarea>\n <label\n for=\"description\"\n *ngIf=\"form.get('description')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n : { len: '500' } }}\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"class\">{{ '@pry.admin.dataset.oClass' | i18n }}</label>\n <pry-select\n id=\"class\"\n formControlName=\"oClass\"\n [items]=\"classes | async\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n aria-labelledby=\"item-label\"\n [readonly]=\"!!dataset$\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"type\">{{ '@pry.admin.dataset.type' | i18n }}</label>\n <pry-select\n id=\"type\"\n formControlName=\"type\"\n [items]=\"datasetTypes\"\n bindValue=\"value\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n aria-labelledby=\"user-label\"\n [readonly]=\"!!dataset$\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{ '@pry.admin.dataset.is-same-name' | i18n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(dataset$ ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n" }]
2012
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }]; }, propDecorators: { dataset$: [{
2027
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }], propDecorators: { dataset$: [{
2013
2028
  type: Input
2014
2029
  }] } });
2015
2030
 
@@ -2024,19 +2039,19 @@ class AdminEditDatasetComponent {
2024
2039
  this.store.dispatch(DataSourceActions.dataset.getDatasetById({ id: params['uuid'] }));
2025
2040
  });
2026
2041
  }
2027
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEditDatasetComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2028
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminEditDatasetComponent, selector: "pry-admin-edit-dataset", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.dataset.edit.title' | i18n }}</h1>\n <pry-admin-form-dataset [dataset$]=\"datasetSelected$\"></pry-admin-form-dataset>\n</div>\n", dependencies: [{ kind: "component", type: AdminFormDatasetComponent, selector: "pry-admin-form-dataset", inputs: ["dataset$"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2042
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEditDatasetComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2043
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminEditDatasetComponent, selector: "pry-admin-edit-dataset", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.dataset.edit.title' | i18n }}</h1>\n <pry-admin-form-dataset [dataset$]=\"datasetSelected$\"></pry-admin-form-dataset>\n</div>\n", dependencies: [{ kind: "component", type: AdminFormDatasetComponent, selector: "pry-admin-form-dataset", inputs: ["dataset$"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2029
2044
  }
2030
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEditDatasetComponent, decorators: [{
2045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEditDatasetComponent, decorators: [{
2031
2046
  type: Component,
2032
2047
  args: [{ selector: 'pry-admin-edit-dataset', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.dataset.edit.title' | i18n }}</h1>\n <pry-admin-form-dataset [dataset$]=\"datasetSelected$\"></pry-admin-form-dataset>\n</div>\n" }]
2033
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ActivatedRoute }]; } });
2048
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }] });
2034
2049
 
2035
2050
  class AdminNewDatasetComponent {
2036
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminNewDatasetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2037
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminNewDatasetComponent, selector: "pry-admin-new-dataset", ngImport: i0, template: "<div class=\"o-base-container\">\n <h4 class=\"admin__title\">{{ '@pry.admin.dataset.add.title' | i18n }}</h4>\n <pry-admin-form-dataset></pry-admin-form-dataset>\n</div>\n", dependencies: [{ kind: "component", type: AdminFormDatasetComponent, selector: "pry-admin-form-dataset", inputs: ["dataset$"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2051
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminNewDatasetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2052
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminNewDatasetComponent, selector: "pry-admin-new-dataset", ngImport: i0, template: "<div class=\"o-base-container\">\n <h4 class=\"admin__title\">{{ '@pry.admin.dataset.add.title' | i18n }}</h4>\n <pry-admin-form-dataset></pry-admin-form-dataset>\n</div>\n", dependencies: [{ kind: "component", type: AdminFormDatasetComponent, selector: "pry-admin-form-dataset", inputs: ["dataset$"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2038
2053
  }
2039
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminNewDatasetComponent, decorators: [{
2054
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminNewDatasetComponent, decorators: [{
2040
2055
  type: Component,
2041
2056
  args: [{ selector: 'pry-admin-new-dataset', template: "<div class=\"o-base-container\">\n <h4 class=\"admin__title\">{{ '@pry.admin.dataset.add.title' | i18n }}</h4>\n <pry-admin-form-dataset></pry-admin-form-dataset>\n</div>\n" }]
2042
2057
  }] });
@@ -2211,21 +2226,21 @@ class AdminEnvironmentFormComponent {
2211
2226
  }
2212
2227
  return path.toString();
2213
2228
  }
2214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
2215
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminEnvironmentFormComponent, selector: "pry-admin-environment-form", inputs: { currentEnv: "currentEnv" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"o-base-container\">\n <form class=\"o-form\" [formGroup]=\"envForm\" (ngSubmit)=\"addEnvironment()\">\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"environment_name\" id=\"name-label\" class=\"a-label\">\n {{ '@pry.admin.environment.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"environment_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [required]=\"!_currentEnv\"\n [attr.aria-labelledby]=\"isSubmitted && envForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && envForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && envForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"environment_name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"envForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"envForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"envForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.environment.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"environment-type\">{{ '@pry.admin.environment.type' | i18n }}</label>\n <pry-select\n id=\"environment-type\"\n formControlName=\"type\"\n [items]=\"envOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n (ngModelChange)=\"onTypeChange($event)\"\n [readonly]=\"!!_currentEnv\"\n [isForm]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <ng-container *ngIf=\"envForm.value.type === 'DATE'; else inputText\">\n <label class=\"a-label\" for=\"value_date\">\n {{ '@pry.admin.environment.value' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input type=\"date\" id=\"value_date\" class=\"a-form-field\" formControlName=\"value\" required />\n <label\n *ngIf=\"isSubmitted && envForm.get('value')?.invalid && envForm.get('value')?.hasError('required')\"\n id=\"value_date_error\"\n for=\"value_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </ng-container>\n\n <ng-template #inputText>\n <label id=\"value-label\" class=\"a-label\">{{ '@pry.admin.environment.value' | i18n }}</label>\n <input\n id=\"environment_value\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && envForm.get('value')?.invalid ? 'value-label value-error' : 'value-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && envForm.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && envForm.get('value')?.invalid\"\n id=\"value-error\"\n for=\"environment_value\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"envForm.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"envForm.get('value')?.hasError('pattern')\">\n <span *ngIf=\"envForm.value.type === 'DOUBLE'\">{{ '@pry.admin.environment.formatDouble' | i18n }}</span>\n <span *ngIf=\"envForm.value.type === 'INTEGER'\">{{ '@pry.admin.environment.formatInt' | i18n }}</span>\n </ng-container>\n </label>\n </ng-template>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"predicate-create a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentEnv ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
2230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminEnvironmentFormComponent, selector: "pry-admin-environment-form", inputs: { currentEnv: "currentEnv" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"o-base-container\">\n <form class=\"o-form\" [formGroup]=\"envForm\" (ngSubmit)=\"addEnvironment()\">\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"environment_name\" id=\"name-label\" class=\"a-label\">\n {{ '@pry.admin.environment.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"environment_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [required]=\"!_currentEnv\"\n [attr.aria-labelledby]=\"isSubmitted && envForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && envForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && envForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"environment_name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"envForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"envForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"envForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.environment.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"environment-type\">{{ '@pry.admin.environment.type' | i18n }}</label>\n <pry-select\n id=\"environment-type\"\n formControlName=\"type\"\n [items]=\"envOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n (ngModelChange)=\"onTypeChange($event)\"\n [readonly]=\"!!_currentEnv\"\n [isForm]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <ng-container *ngIf=\"envForm.value.type === 'DATE'; else inputText\">\n <label class=\"a-label\" for=\"value_date\">\n {{ '@pry.admin.environment.value' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input type=\"date\" id=\"value_date\" class=\"a-form-field\" formControlName=\"value\" required />\n <label\n *ngIf=\"isSubmitted && envForm.get('value')?.invalid && envForm.get('value')?.hasError('required')\"\n id=\"value_date_error\"\n for=\"value_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </ng-container>\n\n <ng-template #inputText>\n <label id=\"value-label\" class=\"a-label\">{{ '@pry.admin.environment.value' | i18n }}</label>\n <input\n id=\"environment_value\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && envForm.get('value')?.invalid ? 'value-label value-error' : 'value-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && envForm.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && envForm.get('value')?.invalid\"\n id=\"value-error\"\n for=\"environment_value\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"envForm.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"envForm.get('value')?.hasError('pattern')\">\n <span *ngIf=\"envForm.value.type === 'DOUBLE'\">{{ '@pry.admin.environment.formatDouble' | i18n }}</span>\n <span *ngIf=\"envForm.value.type === 'INTEGER'\">{{ '@pry.admin.environment.formatInt' | i18n }}</span>\n </ng-container>\n </label>\n </ng-template>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"predicate-create a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentEnv ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2216
2231
  }
2217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentFormComponent, decorators: [{
2232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentFormComponent, decorators: [{
2218
2233
  type: Component,
2219
2234
  args: [{ selector: 'pry-admin-environment-form', template: "<div class=\"o-base-container\">\n <form class=\"o-form\" [formGroup]=\"envForm\" (ngSubmit)=\"addEnvironment()\">\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"environment_name\" id=\"name-label\" class=\"a-label\">\n {{ '@pry.admin.environment.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"environment_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [required]=\"!_currentEnv\"\n [attr.aria-labelledby]=\"isSubmitted && envForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && envForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && envForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"environment_name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"envForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"envForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"envForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.environment.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"environment-type\">{{ '@pry.admin.environment.type' | i18n }}</label>\n <pry-select\n id=\"environment-type\"\n formControlName=\"type\"\n [items]=\"envOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n (ngModelChange)=\"onTypeChange($event)\"\n [readonly]=\"!!_currentEnv\"\n [isForm]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <ng-container *ngIf=\"envForm.value.type === 'DATE'; else inputText\">\n <label class=\"a-label\" for=\"value_date\">\n {{ '@pry.admin.environment.value' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input type=\"date\" id=\"value_date\" class=\"a-form-field\" formControlName=\"value\" required />\n <label\n *ngIf=\"isSubmitted && envForm.get('value')?.invalid && envForm.get('value')?.hasError('required')\"\n id=\"value_date_error\"\n for=\"value_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </ng-container>\n\n <ng-template #inputText>\n <label id=\"value-label\" class=\"a-label\">{{ '@pry.admin.environment.value' | i18n }}</label>\n <input\n id=\"environment_value\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && envForm.get('value')?.invalid ? 'value-label value-error' : 'value-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && envForm.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && envForm.get('value')?.invalid\"\n id=\"value-error\"\n for=\"environment_value\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"envForm.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"envForm.get('value')?.hasError('pattern')\">\n <span *ngIf=\"envForm.value.type === 'DOUBLE'\">{{ '@pry.admin.environment.formatDouble' | i18n }}</span>\n <span *ngIf=\"envForm.value.type === 'INTEGER'\">{{ '@pry.admin.environment.formatInt' | i18n }}</span>\n </ng-container>\n </label>\n </ng-template>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"predicate-create a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentEnv ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n" }]
2220
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }, { type: i3.DatePipe }]; }, propDecorators: { currentEnv: [{
2235
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }, { type: i3.DatePipe }], propDecorators: { currentEnv: [{
2221
2236
  type: Input
2222
2237
  }] } });
2223
2238
 
2224
2239
  class AdminEnvironmentNewComponent {
2225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2226
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminEnvironmentNewComponent, selector: "pry-admin-environment-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.add' | i18n }}</h1>\n <pry-admin-environment-form></pry-admin-environment-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminEnvironmentFormComponent, selector: "pry-admin-environment-form", inputs: ["currentEnv"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2241
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminEnvironmentNewComponent, selector: "pry-admin-environment-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.add' | i18n }}</h1>\n <pry-admin-environment-form></pry-admin-environment-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminEnvironmentFormComponent, selector: "pry-admin-environment-form", inputs: ["currentEnv"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2227
2242
  }
2228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentNewComponent, decorators: [{
2243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentNewComponent, decorators: [{
2229
2244
  type: Component,
2230
2245
  args: [{ selector: 'pry-admin-environment-new', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.add' | i18n }}</h1>\n <pry-admin-environment-form></pry-admin-environment-form>\n</div>\n" }]
2231
2246
  }] });
@@ -2239,13 +2254,13 @@ class AdminEnvironmentUpdateComponent {
2239
2254
  ngOnInit() {
2240
2255
  this.route.params.subscribe((params) => this.store.dispatch(EnvironmentActions.selectEnvironment({ name: params['name'] })));
2241
2256
  }
2242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentUpdateComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminEnvironmentUpdateComponent, selector: "pry-admin-environment-update", ngImport: i0, template: "<div *ngIf=\"currentEnv$ | async as currentEnv\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.edit' | i18n }}</h1>\n <pry-admin-environment-form [currentEnv]=\"currentEnv\"></pry-admin-environment-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminEnvironmentFormComponent, selector: "pry-admin-environment-form", inputs: ["currentEnv"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentUpdateComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminEnvironmentUpdateComponent, selector: "pry-admin-environment-update", ngImport: i0, template: "<div *ngIf=\"currentEnv$ | async as currentEnv\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.edit' | i18n }}</h1>\n <pry-admin-environment-form [currentEnv]=\"currentEnv\"></pry-admin-environment-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminEnvironmentFormComponent, selector: "pry-admin-environment-form", inputs: ["currentEnv"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2244
2259
  }
2245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentUpdateComponent, decorators: [{
2260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentUpdateComponent, decorators: [{
2246
2261
  type: Component,
2247
2262
  args: [{ selector: 'pry-admin-environment-update', template: "<div *ngIf=\"currentEnv$ | async as currentEnv\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.edit' | i18n }}</h1>\n <pry-admin-environment-form [currentEnv]=\"currentEnv\"></pry-admin-environment-form>\n</div>\n" }]
2248
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ActivatedRoute }]; } });
2263
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }] });
2249
2264
 
2250
2265
  class AdminEnvironmentComponent {
2251
2266
  constructor(store, router, route) {
@@ -2280,13 +2295,13 @@ class AdminEnvironmentComponent {
2280
2295
  getTranslationType(type) {
2281
2296
  return ENV_OPTIONS.find((el) => el.varType === type)?.translation || 'undefined';
2282
2297
  }
2283
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2284
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminEnvironmentComponent, selector: "pry-admin-environment", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.list' | i18n }}</h1>\n\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.environment.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.environment.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.environment.type' | i18n }}</th>\n <th prySortHeader=\"value\">{{ '@pry.admin.environment.value' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let env of environments$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"goToSelectEnv(env)\"\n [class.is-selected]=\"(currentEnvName$ | async) === env.name\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-env-' + env.name\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(currentEnvName$ | async) === env.name\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-env-' + env.name\"\n >\n <span class=\"u-visually-hidden\">{{ env.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ env.name }}</td>\n <td>{{ getTranslationType(env.type) | i18n }}</td>\n <td>{{ env.value }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2298
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2299
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminEnvironmentComponent, selector: "pry-admin-environment", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.list' | i18n }}</h1>\n\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.environment.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.environment.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.environment.type' | i18n }}</th>\n <th prySortHeader=\"value\">{{ '@pry.admin.environment.value' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let env of environments$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"goToSelectEnv(env)\"\n [class.is-selected]=\"(currentEnvName$ | async) === env.name\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-env-' + env.name\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(currentEnvName$ | async) === env.name\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-env-' + env.name\"\n >\n <span class=\"u-visually-hidden\">{{ env.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ env.name }}</td>\n <td>{{ getTranslationType(env.type) | i18n }}</td>\n <td>{{ env.value }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2285
2300
  }
2286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentComponent, decorators: [{
2301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentComponent, decorators: [{
2287
2302
  type: Component,
2288
2303
  args: [{ selector: 'pry-admin-environment', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.environment.list' | i18n }}</h1>\n\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.environment.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.environment.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.environment.type' | i18n }}</th>\n <th prySortHeader=\"value\">{{ '@pry.admin.environment.value' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let env of environments$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"goToSelectEnv(env)\"\n [class.is-selected]=\"(currentEnvName$ | async) === env.name\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-env-' + env.name\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(currentEnvName$ | async) === env.name\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-env-' + env.name\"\n >\n <span class=\"u-visually-hidden\">{{ env.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ env.name }}</td>\n <td>{{ getTranslationType(env.type) | i18n }}</td>\n <td>{{ env.value }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
2289
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2304
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
2290
2305
 
2291
2306
  const FieldsActions = {
2292
2307
  updateToolbox: createAction('[Admin/Fields] Update Toolbox Class'),
@@ -2391,13 +2406,13 @@ class AdminFieldsFormComponent {
2391
2406
  getPath() {
2392
2407
  return this.currentField ? this.goBackPathEdit : this.goBackPath;
2393
2408
  }
2394
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }, { token: i4.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
2395
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminFieldsFormComponent, selector: "pry-admin-fields-form", inputs: { currentField: "currentField" }, ngImport: i0, template: "<div>\n <form class=\"o-form\" [formGroup]=\"fieldForm\" (ngSubmit)=\"addField()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"field_name\" class=\"a-label\">\n {{ '@pry.admin.fields.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"field_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"isSubmitted && fieldForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && fieldForm.get('name')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && fieldForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"field_name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"fieldForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('minlength')\">{{\n '@pry.admin.minLength' | i18n : { len: 3 }\n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('maxlength')\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('whitespace') && !fieldForm.get('name')?.hasError('minlength')\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\">\n {{ '@pry.admin.fields.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"type\"\n [items]=\"fieldTypeTranslations\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [isForm]=\"true\"\n ></pry-select>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\" *ngIf=\"isGeographicType\">\n <label class=\"a-label\">\n {{ '@pry.admin.fields.crs' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"crs\"\n [items]=\"CRS_OPTIONS\"\n bindValue=\"code\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n id=\"crs\"\n ></pry-select>\n </div>\n <label\n *ngIf=\"isSubmitted && fieldForm.get('crs') && fieldForm.get('crs')?.invalid\"\n id=\"crs-error\"\n for=\"crs\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"fieldForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(currentField ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2409
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }, { token: i4.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
2410
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminFieldsFormComponent, selector: "pry-admin-fields-form", inputs: { currentField: "currentField" }, ngImport: i0, template: "<div>\n <form class=\"o-form\" [formGroup]=\"fieldForm\" (ngSubmit)=\"addField()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"field_name\" class=\"a-label\">\n {{ '@pry.admin.fields.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"field_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"isSubmitted && fieldForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && fieldForm.get('name')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && fieldForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"field_name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"fieldForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('minlength')\">{{\n '@pry.admin.minLength' | i18n : { len: 3 }\n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('maxlength')\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('whitespace') && !fieldForm.get('name')?.hasError('minlength')\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\">\n {{ '@pry.admin.fields.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"type\"\n [items]=\"fieldTypeTranslations\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [isForm]=\"true\"\n ></pry-select>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\" *ngIf=\"isGeographicType\">\n <label class=\"a-label\">\n {{ '@pry.admin.fields.crs' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"crs\"\n [items]=\"CRS_OPTIONS\"\n bindValue=\"code\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n id=\"crs\"\n ></pry-select>\n </div>\n <label\n *ngIf=\"isSubmitted && fieldForm.get('crs') && fieldForm.get('crs')?.invalid\"\n id=\"crs-error\"\n for=\"crs\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"fieldForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(currentField ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2396
2411
  }
2397
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsFormComponent, decorators: [{
2412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsFormComponent, decorators: [{
2398
2413
  type: Component,
2399
2414
  args: [{ selector: 'pry-admin-fields-form', template: "<div>\n <form class=\"o-form\" [formGroup]=\"fieldForm\" (ngSubmit)=\"addField()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"field_name\" class=\"a-label\">\n {{ '@pry.admin.fields.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"field_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"isSubmitted && fieldForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && fieldForm.get('name')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && fieldForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"field_name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"fieldForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('minlength')\">{{\n '@pry.admin.minLength' | i18n : { len: 3 }\n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('maxlength')\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</span>\n <span *ngIf=\"fieldForm.get('name')?.hasError('whitespace') && !fieldForm.get('name')?.hasError('minlength')\">{{\n '@pry.admin.noWhitespace' | i18n\n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\">\n {{ '@pry.admin.fields.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"type\"\n [items]=\"fieldTypeTranslations\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [isForm]=\"true\"\n ></pry-select>\n <div\n *ngIf=\"selectedFieldTypeDescription$ | async as description\"\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center -flex-shrink-0\"\n [attr.data-tooltip]=\"description\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\" *ngIf=\"isGeographicType\">\n <label class=\"a-label\">\n {{ '@pry.admin.fields.crs' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"crs\"\n [items]=\"CRS_OPTIONS\"\n bindValue=\"code\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n id=\"crs\"\n ></pry-select>\n </div>\n <label\n *ngIf=\"isSubmitted && fieldForm.get('crs') && fieldForm.get('crs')?.invalid\"\n id=\"crs-error\"\n for=\"crs\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"fieldForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(currentField ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n" }]
2400
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }, { type: i4.PryI18nService }]; }, propDecorators: { currentField: [{
2415
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }, { type: i4.PryI18nService }], propDecorators: { currentField: [{
2401
2416
  type: Input
2402
2417
  }] } });
2403
2418
 
@@ -2410,19 +2425,19 @@ class AdminFieldsEditComponent {
2410
2425
  ngOnInit() {
2411
2426
  this.route.params.subscribe((params) => (this.currentField$ = this.store.select(FieldSelectors.fieldById(params['id']))));
2412
2427
  }
2413
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsEditComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2414
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminFieldsEditComponent, selector: "pry-admin-fields-edit", ngImport: i0, template: "<div *ngIf=\"currentField$ | async as currentField\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.edit' | i18n }}</h1>\n <pry-admin-fields-form [currentField]=\"currentField\"></pry-admin-fields-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminFieldsFormComponent, selector: "pry-admin-fields-form", inputs: ["currentField"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsEditComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2429
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminFieldsEditComponent, selector: "pry-admin-fields-edit", ngImport: i0, template: "<div *ngIf=\"currentField$ | async as currentField\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.edit' | i18n }}</h1>\n <pry-admin-fields-form [currentField]=\"currentField\"></pry-admin-fields-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminFieldsFormComponent, selector: "pry-admin-fields-form", inputs: ["currentField"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2415
2430
  }
2416
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsEditComponent, decorators: [{
2431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsEditComponent, decorators: [{
2417
2432
  type: Component,
2418
2433
  args: [{ selector: 'pry-admin-fields-edit', template: "<div *ngIf=\"currentField$ | async as currentField\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.edit' | i18n }}</h1>\n <pry-admin-fields-form [currentField]=\"currentField\"></pry-admin-fields-form>\n</div>\n" }]
2419
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ActivatedRoute }]; } });
2434
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }] });
2420
2435
 
2421
2436
  class AdminFieldsNewComponent {
2422
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2423
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminFieldsNewComponent, selector: "pry-admin-fields-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.add' | i18n }}</h1>\n <pry-admin-fields-form></pry-admin-fields-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminFieldsFormComponent, selector: "pry-admin-fields-form", inputs: ["currentField"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2437
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2438
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminFieldsNewComponent, selector: "pry-admin-fields-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.add' | i18n }}</h1>\n <pry-admin-fields-form></pry-admin-fields-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminFieldsFormComponent, selector: "pry-admin-fields-form", inputs: ["currentField"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2424
2439
  }
2425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsNewComponent, decorators: [{
2440
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsNewComponent, decorators: [{
2426
2441
  type: Component,
2427
2442
  args: [{ selector: 'pry-admin-fields-new', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.add' | i18n }}</h1>\n <pry-admin-fields-form></pry-admin-fields-form>\n</div>\n" }]
2428
2443
  }] });
@@ -2484,13 +2499,13 @@ class AdminFieldsComponent {
2484
2499
  getTranslationType(type) {
2485
2500
  return FIELD_OPTIONS.find((el) => el.varType === type)?.translation || 'undefined';
2486
2501
  }
2487
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2488
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminFieldsComponent, selector: "pry-admin-fields", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.fields.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.fields.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.fields.type' | i18n }}</th>\n <th prySortHeader=\"attributes\">{{ '@pry.admin.fields.attributes' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let field of fields$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectField(field)\"\n [class.is-selected]=\"(currentFieldId$ | async) === field.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-field-' + field.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(currentFieldId$ | async) === field.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-field-' + field.id\"\n >\n <span class=\"u-visually-hidden\">{{ field.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ field.name }}</td>\n <td>{{ getTranslationType(field.type) | i18n }}</td>\n <td>{{ field.attributes }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2502
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2503
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminFieldsComponent, selector: "pry-admin-fields", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.fields.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.fields.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.fields.type' | i18n }}</th>\n <th prySortHeader=\"attributes\">{{ '@pry.admin.fields.attributes' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let field of fields$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectField(field)\"\n [class.is-selected]=\"(currentFieldId$ | async) === field.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-field-' + field.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(currentFieldId$ | async) === field.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-field-' + field.id\"\n >\n <span class=\"u-visually-hidden\">{{ field.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ field.name }}</td>\n <td>{{ getTranslationType(field.type) | i18n }}</td>\n <td>{{ field.attributes }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2489
2504
  }
2490
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsComponent, decorators: [{
2505
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsComponent, decorators: [{
2491
2506
  type: Component,
2492
2507
  args: [{ selector: 'pry-admin-fields', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.fields.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.fields.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.fields.name' | i18n }}</th>\n <th prySortHeader=\"type\">{{ '@pry.admin.fields.type' | i18n }}</th>\n <th prySortHeader=\"attributes\">{{ '@pry.admin.fields.attributes' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let field of fields$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectField(field)\"\n [class.is-selected]=\"(currentFieldId$ | async) === field.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-field-' + field.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(currentFieldId$ | async) === field.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-field-' + field.id\"\n >\n <span class=\"u-visually-hidden\">{{ field.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ field.name }}</td>\n <td>{{ getTranslationType(field.type) | i18n }}</td>\n <td>{{ field.attributes }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
2493
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2508
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
2494
2509
 
2495
2510
  const adminFeatureKey = '@pry/admin';
2496
2511
  const initialAdminState = {
@@ -2579,10 +2594,10 @@ const AdminSelectors = {
2579
2594
  };
2580
2595
 
2581
2596
  class PryAssociationComponent {
2582
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAssociationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2583
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 }); }
2597
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAssociationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2598
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", 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 }); }
2584
2599
  }
2585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAssociationComponent, decorators: [{
2600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAssociationComponent, decorators: [{
2586
2601
  type: Component,
2587
2602
  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" }]
2588
2603
  }], propDecorators: { associations: [{
@@ -2671,13 +2686,13 @@ class AdminClassesSelectComponent {
2671
2686
  ]
2672
2687
  }));
2673
2688
  }
2674
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2675
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 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 class=\"a-h3\">\n {{ '@pry.admin.classes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"classDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"classAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #classDetails>\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 </ng-template>\n\n <ng-template #classAssociations>\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 </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
2689
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2690
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", 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 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 class=\"a-h3\">\n {{ '@pry.admin.classes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"classDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"classAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #classDetails>\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 </ng-template>\n\n <ng-template #classAssociations>\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 </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
2676
2691
  }
2677
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassesSelectComponent, decorators: [{
2692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassesSelectComponent, decorators: [{
2678
2693
  type: Component,
2679
2694
  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 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 class=\"a-h3\">\n {{ '@pry.admin.classes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"classDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"classAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #classDetails>\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 </ng-template>\n\n <ng-template #classAssociations>\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 </ng-template>\n</div>\n" }]
2680
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2695
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
2681
2696
 
2682
2697
  class AdminAttributesSelectComponent {
2683
2698
  static { this.id = 'AdminAttributesSelectComponent'; }
@@ -2741,13 +2756,13 @@ class AdminAttributesSelectComponent {
2741
2756
  }));
2742
2757
  }
2743
2758
  }
2744
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAttributesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2745
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 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 class=\"a-h3\">\n {{ '@pry.admin.classes.attributes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"attributeDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"attributeAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #attributeDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.attributes.technicalName' | i18n }} :\n <strong>{{ attribute.technicalName }}</strong>\n </p>\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 </ng-template>\n\n <ng-template #attributeAssociations>\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 </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
2759
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2760
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", 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 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 class=\"a-h3\">\n {{ '@pry.admin.classes.attributes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"attributeDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"attributeAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #attributeDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.attributes.technicalName' | i18n }} :\n <strong>{{ attribute.technicalName }}</strong>\n </p>\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 </ng-template>\n\n <ng-template #attributeAssociations>\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 </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
2746
2761
  }
2747
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminAttributesSelectComponent, decorators: [{
2762
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminAttributesSelectComponent, decorators: [{
2748
2763
  type: Component,
2749
2764
  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 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 class=\"a-h3\">\n {{ '@pry.admin.classes.attributes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"attributeDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"attributeAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #attributeDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.attributes.technicalName' | i18n }} :\n <strong>{{ attribute.technicalName }}</strong>\n </p>\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 </ng-template>\n\n <ng-template #attributeAssociations>\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 </ng-template>\n</div>\n" }]
2750
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2765
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
2751
2766
 
2752
2767
  class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2753
2768
  static { this.id = 'AdminSelectDatasetComponent'; }
@@ -2824,13 +2839,13 @@ class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2824
2839
  value: metadata.value
2825
2840
  }));
2826
2841
  }
2827
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminSelectDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2828
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\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 </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5$3.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2842
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2843
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", 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 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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\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 </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5$3.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2829
2844
  }
2830
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminSelectDatasetComponent, decorators: [{
2845
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectDatasetComponent, decorators: [{
2831
2846
  type: Component,
2832
2847
  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 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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\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 </ng-template>\n</div>\n" }]
2833
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2848
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
2834
2849
 
2835
2850
  class AdminEnvironmentSelectComponent {
2836
2851
  static { this.id = 'AdminEnvironmentSelectComponent'; }
@@ -2901,13 +2916,13 @@ class AdminEnvironmentSelectComponent {
2901
2916
  ]
2902
2917
  }));
2903
2918
  }
2904
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2905
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminEnvironmentSelectComponent, selector: "pry-admin-environment-select", ngImport: i0, template: "<div\n *ngIf=\"currentEnv$ | async as env\"\n [id]=\"'panel-env-' + env.name\"\n [attr.aria-labelledby]=\"'button-env-' + env.name\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.environment.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"environmentDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #environmentDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.name' | i18n }} :\n <strong>{{ env.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.value' | i18n }} :\n <strong>{{ env.value }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
2919
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2920
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminEnvironmentSelectComponent, selector: "pry-admin-environment-select", ngImport: i0, template: "<div\n *ngIf=\"currentEnv$ | async as env\"\n [id]=\"'panel-env-' + env.name\"\n [attr.aria-labelledby]=\"'button-env-' + env.name\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.environment.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"environmentDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #environmentDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.name' | i18n }} :\n <strong>{{ env.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.value' | i18n }} :\n <strong>{{ env.value }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
2906
2921
  }
2907
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEnvironmentSelectComponent, decorators: [{
2922
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEnvironmentSelectComponent, decorators: [{
2908
2923
  type: Component,
2909
2924
  args: [{ selector: 'pry-admin-environment-select', template: "<div\n *ngIf=\"currentEnv$ | async as env\"\n [id]=\"'panel-env-' + env.name\"\n [attr.aria-labelledby]=\"'button-env-' + env.name\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.environment.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"environmentDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #environmentDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.name' | i18n }} :\n <strong>{{ env.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.environment.value' | i18n }} :\n <strong>{{ env.value }}</strong>\n </p>\n </ng-template>\n</div>\n" }]
2910
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
2925
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
2911
2926
 
2912
2927
  class AdminFieldsSelectComponent {
2913
2928
  static { this.id = 'AdminFieldsSelectComponent'; }
@@ -2980,13 +2995,13 @@ class AdminFieldsSelectComponent {
2980
2995
  ngOnDestroy() {
2981
2996
  this.sub.unsubscribe();
2982
2997
  }
2983
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2984
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 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 class=\"a-h3\">\n {{ '@pry.admin.fields.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"fieldDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"fieldAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #fieldDetails>\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 </ng-template>\n\n <ng-template #fieldAssociations>\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations$ | async\"></pry-association>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
2998
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2999
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", 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 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 class=\"a-h3\">\n {{ '@pry.admin.fields.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"fieldDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"fieldAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #fieldDetails>\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 </ng-template>\n\n <ng-template #fieldAssociations>\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations$ | async\"></pry-association>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
2985
3000
  }
2986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFieldsSelectComponent, decorators: [{
3001
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsSelectComponent, decorators: [{
2987
3002
  type: Component,
2988
3003
  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 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 class=\"a-h3\">\n {{ '@pry.admin.fields.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"fieldDetails\" name=\"details\"></pry-tab>\n <pry-tab [templateRef]=\"fieldAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #fieldDetails>\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 </ng-template>\n\n <ng-template #fieldAssociations>\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations$ | async\"></pry-association>\n </ng-template>\n</div>\n" }]
2989
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3004
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
2990
3005
 
2991
3006
  var MetadataRulesActionTypes;
2992
3007
  (function (MetadataRulesActionTypes) {
@@ -3112,13 +3127,13 @@ class AdminSelectMetadataRulesComponent {
3112
3127
  ]
3113
3128
  }));
3114
3129
  }
3115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminSelectMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminSelectMetadataRulesComponent, selector: "pry-admin-select-metadata-rules", ngImport: i0, template: "<div\n *ngIf=\"metadataRulesSelected$ | async as metadataRules\"\n [id]=\"'panel-meta-rule-' + metadataRules.id\"\n [attr.aria-labelledby]=\"'button-meta-rule-' + metadataRules.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"metadataRuleDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #metadataRuleDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} :\n <strong>{{ metadataRules.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-item.name' | i18n }} :\n <strong>{{ metadataRules.metadata.name }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadataRules.metadata.description\">\n {{ '@pry.admin.metadata-rules.metadata-item.description' | i18n }} :\n <strong>{{ metadataRules.metadata.description }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-item.type' | i18n }} :\n <strong>{{ metadataRules.metadata.type }}</strong>\n </p>\n <ng-container *ngIf=\"metadataRules.metadata.allowedValues\">\n <p class=\"a-p\" *ngFor=\"let item of metadataRules.metadata.allowedValues\">{{ item }}</p>\n </ng-container>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-user.name' | i18n }} :\n <strong>{{ metadataRules.userProfile.name }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadataRules.userProfile.description\">\n {{ '@pry.admin.metadata-rules.metadata-user.description' | i18n }} :\n <strong>{{ metadataRules.userProfile.description }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-user.type' | i18n }} :\n <strong>{{ metadataRules.userProfile.type }}</strong>\n </p>\n <ng-container *ngIf=\"metadataRules.userProfile.allowedValues\">\n <p class=\"a-p\" *ngFor=\"let item of metadataRules.userProfile.allowedValues\">{{ item }}</p>\n </ng-container>\n </ng-template>\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.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
3130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminSelectMetadataRulesComponent, selector: "pry-admin-select-metadata-rules", ngImport: i0, template: "<div\n *ngIf=\"metadataRulesSelected$ | async as metadataRules\"\n [id]=\"'panel-meta-rule-' + metadataRules.id\"\n [attr.aria-labelledby]=\"'button-meta-rule-' + metadataRules.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"metadataRuleDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #metadataRuleDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} :\n <strong>{{ metadataRules.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-item.name' | i18n }} :\n <strong>{{ metadataRules.metadata.name }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadataRules.metadata.description\">\n {{ '@pry.admin.metadata-rules.metadata-item.description' | i18n }} :\n <strong>{{ metadataRules.metadata.description }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-item.type' | i18n }} :\n <strong>{{ metadataRules.metadata.type }}</strong>\n </p>\n <ng-container *ngIf=\"metadataRules.metadata.allowedValues\">\n <p class=\"a-p\" *ngFor=\"let item of metadataRules.metadata.allowedValues\">{{ item }}</p>\n </ng-container>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-user.name' | i18n }} :\n <strong>{{ metadataRules.userProfile.name }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadataRules.userProfile.description\">\n {{ '@pry.admin.metadata-rules.metadata-user.description' | i18n }} :\n <strong>{{ metadataRules.userProfile.description }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-user.type' | i18n }} :\n <strong>{{ metadataRules.userProfile.type }}</strong>\n </p>\n <ng-container *ngIf=\"metadataRules.userProfile.allowedValues\">\n <p class=\"a-p\" *ngFor=\"let item of metadataRules.userProfile.allowedValues\">{{ item }}</p>\n </ng-container>\n </ng-template>\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.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
3117
3132
  }
3118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminSelectMetadataRulesComponent, decorators: [{
3133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectMetadataRulesComponent, decorators: [{
3119
3134
  type: Component,
3120
3135
  args: [{ selector: 'pry-admin-select-metadata-rules', template: "<div\n *ngIf=\"metadataRulesSelected$ | async as metadataRules\"\n [id]=\"'panel-meta-rule-' + metadataRules.id\"\n [attr.aria-labelledby]=\"'button-meta-rule-' + metadataRules.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"metadataRuleDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #metadataRuleDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} :\n <strong>{{ metadataRules.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-item.name' | i18n }} :\n <strong>{{ metadataRules.metadata.name }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadataRules.metadata.description\">\n {{ '@pry.admin.metadata-rules.metadata-item.description' | i18n }} :\n <strong>{{ metadataRules.metadata.description }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-item.type' | i18n }} :\n <strong>{{ metadataRules.metadata.type }}</strong>\n </p>\n <ng-container *ngIf=\"metadataRules.metadata.allowedValues\">\n <p class=\"a-p\" *ngFor=\"let item of metadataRules.metadata.allowedValues\">{{ item }}</p>\n </ng-container>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-user.name' | i18n }} :\n <strong>{{ metadataRules.userProfile.name }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadataRules.userProfile.description\">\n {{ '@pry.admin.metadata-rules.metadata-user.description' | i18n }} :\n <strong>{{ metadataRules.userProfile.description }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata-rules.metadata-user.type' | i18n }} :\n <strong>{{ metadataRules.userProfile.type }}</strong>\n </p>\n <ng-container *ngIf=\"metadataRules.userProfile.allowedValues\">\n <p class=\"a-p\" *ngFor=\"let item of metadataRules.userProfile.allowedValues\">{{ item }}</p>\n </ng-container>\n </ng-template>\n</div>\n" }]
3121
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3136
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
3122
3137
 
3123
3138
  const BASE$1 = '[Admin/User]';
3124
3139
  const BASEAPI$1 = '[Admin/User Api]';
@@ -3231,13 +3246,13 @@ class AdminUserSelectMetadataComponent {
3231
3246
  ]
3232
3247
  }));
3233
3248
  }
3234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserSelectMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3235
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminUserSelectMetadataComponent, selector: "pry-admin-user-select-metadata", ngImport: i0, template: "<div\n *ngIf=\"metadata$ | async as metadata\"\n [id]=\"'panel-meta-' + metadata.id\"\n [attr.aria-labelledby]=\"'button-meta-' + metadata.id\"\n class=\"o-panel\"\n>\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 <h3 class=\"a-h3\">{{ '@pry.admin.metadata.detailsUser' | i18n }}</h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userMetadataDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userMetadataDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.label' | i18n }} :\n <strong>{{ metadata.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.description' | i18n }} :\n <strong>{{ metadata.description ? metadata.description : '' }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n\n <ng-container *ngIf=\"metadata.allowedValues\">\n <ng-container *ngFor=\"let item of metadata.allowedValues\">\n <p class=\"a-p\">{{ item }}</p>\n </ng-container>\n </ng-container>\n </ng-template>\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.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
3249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserSelectMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminUserSelectMetadataComponent, selector: "pry-admin-user-select-metadata", ngImport: i0, template: "<div\n *ngIf=\"metadata$ | async as metadata\"\n [id]=\"'panel-meta-' + metadata.id\"\n [attr.aria-labelledby]=\"'button-meta-' + metadata.id\"\n class=\"o-panel\"\n>\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 <h3 class=\"a-h3\">{{ '@pry.admin.metadata.detailsUser' | i18n }}</h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userMetadataDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userMetadataDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.label' | i18n }} :\n <strong>{{ metadata.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.description' | i18n }} :\n <strong>{{ metadata.description ? metadata.description : '' }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n\n <ng-container *ngIf=\"metadata.allowedValues\">\n <ng-container *ngFor=\"let item of metadata.allowedValues\">\n <p class=\"a-p\">{{ item }}</p>\n </ng-container>\n </ng-container>\n </ng-template>\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.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
3236
3251
  }
3237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserSelectMetadataComponent, decorators: [{
3252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserSelectMetadataComponent, decorators: [{
3238
3253
  type: Component,
3239
3254
  args: [{ selector: 'pry-admin-user-select-metadata', template: "<div\n *ngIf=\"metadata$ | async as metadata\"\n [id]=\"'panel-meta-' + metadata.id\"\n [attr.aria-labelledby]=\"'button-meta-' + metadata.id\"\n class=\"o-panel\"\n>\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 <h3 class=\"a-h3\">{{ '@pry.admin.metadata.detailsUser' | i18n }}</h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userMetadataDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userMetadataDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.label' | i18n }} :\n <strong>{{ metadata.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.description' | i18n }} :\n <strong>{{ metadata.description ? metadata.description : '' }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n\n <ng-container *ngIf=\"metadata.allowedValues\">\n <ng-container *ngFor=\"let item of metadata.allowedValues\">\n <p class=\"a-p\">{{ item }}</p>\n </ng-container>\n </ng-container>\n </ng-template>\n</div>\n" }]
3240
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3255
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
3241
3256
 
3242
3257
  class AdminSelectMetadataComponent {
3243
3258
  static { this.id = 'AdminSelectMetadataComponent'; }
@@ -3296,13 +3311,13 @@ class AdminSelectMetadataComponent {
3296
3311
  ]
3297
3312
  }));
3298
3313
  }
3299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminSelectMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3300
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminSelectMetadataComponent, selector: "pry-select-metadata", ngImport: i0, template: "<div\n *ngIf=\"metadata$ | async as metadata\"\n [id]=\"'panel-meta-' + metadata.id\"\n [attr.aria-labelledby]=\"'button-meta-' + metadata.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"metadataDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #metadataDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.label' | i18n }} :\n <strong>{{ metadata.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.description' | i18n }} :\n <strong>{{ metadata.description ? metadata.description : '' }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadata.system !== undefined\">\n {{ '@pry.admin.metadata.system' | i18n }} :\n <strong>{{ metadata.system ? '\u2714' : '\u2718' }}</strong>\n </p>\n\n <ng-container *ngIf=\"metadata.allowedValues\">\n <ng-container *ngFor=\"let item of metadata.allowedValues\">\n <p>{{ item }}</p>\n </ng-container>\n </ng-container>\n </ng-template>\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.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
3314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminSelectMetadataComponent, selector: "pry-select-metadata", ngImport: i0, template: "<div\n *ngIf=\"metadata$ | async as metadata\"\n [id]=\"'panel-meta-' + metadata.id\"\n [attr.aria-labelledby]=\"'button-meta-' + metadata.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"metadataDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #metadataDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.label' | i18n }} :\n <strong>{{ metadata.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.description' | i18n }} :\n <strong>{{ metadata.description ? metadata.description : '' }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadata.system !== undefined\">\n {{ '@pry.admin.metadata.system' | i18n }} :\n <strong>{{ metadata.system ? '\u2714' : '\u2718' }}</strong>\n </p>\n\n <ng-container *ngIf=\"metadata.allowedValues\">\n <ng-container *ngFor=\"let item of metadata.allowedValues\">\n <p>{{ item }}</p>\n </ng-container>\n </ng-container>\n </ng-template>\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.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
3301
3316
  }
3302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminSelectMetadataComponent, decorators: [{
3317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectMetadataComponent, decorators: [{
3303
3318
  type: Component,
3304
3319
  args: [{ selector: 'pry-select-metadata', template: "<div\n *ngIf=\"metadata$ | async as metadata\"\n [id]=\"'panel-meta-' + metadata.id\"\n [attr.aria-labelledby]=\"'button-meta-' + metadata.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"metadataDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #metadataDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.label' | i18n }} :\n <strong>{{ metadata.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.description' | i18n }} :\n <strong>{{ metadata.description ? metadata.description : '' }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.metadata.type' | i18n }} :\n <strong>{{ currentTypeTranslation | i18n }}</strong>\n </p>\n <p class=\"a-p\" *ngIf=\"metadata.system !== undefined\">\n {{ '@pry.admin.metadata.system' | i18n }} :\n <strong>{{ metadata.system ? '\u2714' : '\u2718' }}</strong>\n </p>\n\n <ng-container *ngIf=\"metadata.allowedValues\">\n <ng-container *ngFor=\"let item of metadata.allowedValues\">\n <p>{{ item }}</p>\n </ng-container>\n </ng-container>\n </ng-template>\n</div>\n" }]
3305
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3320
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
3306
3321
 
3307
3322
  class AdminPredicatesSelectComponent {
3308
3323
  static { this.id = 'AdminPredicatesSelectComponent'; }
@@ -3352,13 +3367,13 @@ class AdminPredicatesSelectComponent {
3352
3367
  ]
3353
3368
  }));
3354
3369
  }
3355
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3356
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminPredicatesSelectComponent, selector: "pry-admin-predicates-select", ngImport: i0, template: "<div\n *ngIf=\"currentPredicate$ | async as pred\"\n [id]=\"'panel-pred-' + pred.id\"\n [attr.aria-labelledby]=\"'button-pred-' + pred.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.predicates.info' | i18n }}\n </h3>\n </div>\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"predicateDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n <ng-template #predicateDetails>\n <div>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.predicates.name' | i18n }} :\n <strong>{{ pred.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.predicates.value' | i18n }} :\n <strong>{{ pred.value }}</strong>\n </p>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
3370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3371
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminPredicatesSelectComponent, selector: "pry-admin-predicates-select", ngImport: i0, template: "<div\n *ngIf=\"currentPredicate$ | async as pred\"\n [id]=\"'panel-pred-' + pred.id\"\n [attr.aria-labelledby]=\"'button-pred-' + pred.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.predicates.info' | i18n }}\n </h3>\n </div>\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"predicateDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n <ng-template #predicateDetails>\n <div>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.predicates.name' | i18n }} :\n <strong>{{ pred.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.predicates.value' | i18n }} :\n <strong>{{ pred.value }}</strong>\n </p>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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" }] }); }
3357
3372
  }
3358
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesSelectComponent, decorators: [{
3373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesSelectComponent, decorators: [{
3359
3374
  type: Component,
3360
3375
  args: [{ selector: 'pry-admin-predicates-select', template: "<div\n *ngIf=\"currentPredicate$ | async as pred\"\n [id]=\"'panel-pred-' + pred.id\"\n [attr.aria-labelledby]=\"'button-pred-' + pred.id\"\n class=\"o-panel\"\n>\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 class=\"a-h3\">\n {{ '@pry.admin.predicates.info' | i18n }}\n </h3>\n </div>\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"predicateDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n <ng-template #predicateDetails>\n <div>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.predicates.name' | i18n }} :\n <strong>{{ pred.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.predicates.value' | i18n }} :\n <strong>{{ pred.value }}</strong>\n </p>\n </div>\n </ng-template>\n</div>\n" }]
3361
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3376
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
3362
3377
 
3363
3378
  class AdminRelationTypesSelectComponent {
3364
3379
  static { this.id = 'AdminRelationTypesSelectComponent'; }
@@ -3404,13 +3419,13 @@ class AdminRelationTypesSelectComponent {
3404
3419
  ]
3405
3420
  }));
3406
3421
  }
3407
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRelationTypesSelectComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3408
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminRelationTypesSelectComponent, selector: "pry-admin-relation-types-select", ngImport: i0, template: "<div\n *ngIf=\"currentRelationType$ | async as relationType\"\n [id]=\"'panel-rt-' + relationType.id\"\n [attr.aria-labelledby]=\"'button-rt-' + relationType.id\"\n class=\"o-panel\"\n>\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 <h3 class=\"a-h3\">\n {{ '@pry.admin.relationTypes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"relationTypeDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #relationTypeDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.name' | i18n }} :\n <strong>{{ relationType.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.nbLink' | i18n }} :\n <strong>{{ relationType.nbLink }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.dateModification' | i18n }} :\n <strong>{{ relationType.modificationDate | date : 'dd-MM-yyyy, HH:mm:ss' }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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: i3.DatePipe, name: "date" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3422
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRelationTypesSelectComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3423
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminRelationTypesSelectComponent, selector: "pry-admin-relation-types-select", ngImport: i0, template: "<div\n *ngIf=\"currentRelationType$ | async as relationType\"\n [id]=\"'panel-rt-' + relationType.id\"\n [attr.aria-labelledby]=\"'button-rt-' + relationType.id\"\n class=\"o-panel\"\n>\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 <h3 class=\"a-h3\">\n {{ '@pry.admin.relationTypes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"relationTypeDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #relationTypeDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.name' | i18n }} :\n <strong>{{ relationType.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.nbLink' | i18n }} :\n <strong>{{ relationType.nbLink }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.dateModification' | i18n }} :\n <strong>{{ relationType.modificationDate | date : 'dd-MM-yyyy, HH:mm:ss' }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { 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: i3.DatePipe, name: "date" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3409
3424
  }
3410
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRelationTypesSelectComponent, decorators: [{
3425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRelationTypesSelectComponent, decorators: [{
3411
3426
  type: Component,
3412
3427
  args: [{ selector: 'pry-admin-relation-types-select', template: "<div\n *ngIf=\"currentRelationType$ | async as relationType\"\n [id]=\"'panel-rt-' + relationType.id\"\n [attr.aria-labelledby]=\"'button-rt-' + relationType.id\"\n class=\"o-panel\"\n>\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 <h3 class=\"a-h3\">\n {{ '@pry.admin.relationTypes.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"relationTypeDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #relationTypeDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.name' | i18n }} :\n <strong>{{ relationType.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.nbLink' | i18n }} :\n <strong>{{ relationType.nbLink }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.relationTypes.dateModification' | i18n }} :\n <strong>{{ relationType.modificationDate | date : 'dd-MM-yyyy, HH:mm:ss' }}</strong>\n </p>\n </ng-template>\n</div>\n" }]
3413
- }], ctorParameters: function () { return [{ type: i1.Store }]; } });
3428
+ }], ctorParameters: () => [{ type: i1.Store }] });
3414
3429
 
3415
3430
  const BASE = '[Admin/User]';
3416
3431
  const BASEAPI = '[Admin/User Api]';
@@ -3500,13 +3515,13 @@ class AdminUserSelectComponent {
3500
3515
  switch(number) {
3501
3516
  this.tab = number;
3502
3517
  }
3503
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserSelectComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3504
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminUserSelectComponent, selector: "pry-admin-user-select", inputs: { profil: "profil" }, ngImport: i0, template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userProfile\" name=\"userInfo.profile\"></pry-tab>\n <pry-tab [templateRef]=\"userDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userProfile>\n <pry-metadata-editor\n [targetId]=\"(selectedUser$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(userMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadataUser($event)\"\n [type]=\"'user'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #userDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5$3.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserSelectComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3519
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminUserSelectComponent, selector: "pry-admin-user-select", inputs: { profil: "profil" }, ngImport: i0, template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userProfile\" name=\"userInfo.profile\"></pry-tab>\n <pry-tab [templateRef]=\"userDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userProfile>\n <pry-metadata-editor\n [targetId]=\"(selectedUser$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(userMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadataUser($event)\"\n [type]=\"'user'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #userDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5$3.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3505
3520
  }
3506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserSelectComponent, decorators: [{
3521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserSelectComponent, decorators: [{
3507
3522
  type: Component,
3508
3523
  args: [{ selector: 'pry-admin-user-select', template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userProfile\" name=\"userInfo.profile\"></pry-tab>\n <pry-tab [templateRef]=\"userDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userProfile>\n <pry-metadata-editor\n [targetId]=\"(selectedUser$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(userMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadataUser($event)\"\n [type]=\"'user'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #userDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </ng-template>\n</div>\n" }]
3509
- }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { profil: [{
3524
+ }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { profil: [{
3510
3525
  type: Input
3511
3526
  }] } });
3512
3527
 
@@ -3529,13 +3544,13 @@ class AdminMenuComponent extends BaseMenuComponent {
3529
3544
  this.store.dispatch(AdminActions.routeTo({ path: path.toString(), params: undefined }));
3530
3545
  this.store.dispatch(AdminActions.highlightMenu({ menu }));
3531
3546
  }
3532
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMenuComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3533
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminMenuComponent, selector: "pry-admin-menu", usesInheritance: true, ngImport: i0, template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3547
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMenuComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3548
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminMenuComponent, selector: "pry-admin-menu", usesInheritance: true, ngImport: i0, template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3534
3549
  }
3535
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMenuComponent, decorators: [{
3550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMenuComponent, decorators: [{
3536
3551
  type: Component,
3537
- args: [{ selector: 'pry-admin-menu', template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n" }]
3538
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3552
+ args: [{ selector: 'pry-admin-menu', template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n" }]
3553
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
3539
3554
 
3540
3555
  class AdminTitleComponent extends SubscriptionnerDirective {
3541
3556
  constructor(store, route) {
@@ -3550,13 +3565,13 @@ class AdminTitleComponent extends SubscriptionnerDirective {
3550
3565
  // Toggle button aria-pressed
3551
3566
  $event.target.setAttribute('aria-pressed', $event.target.getAttribute('aria-pressed') === 'true' ? 'false' : 'true');
3552
3567
  }
3553
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminTitleComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3554
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminTitleComponent, selector: "pry-admin-title", usesInheritance: true, ngImport: i0, template: "<h2 class=\"a-h3\">{{ (!limit ? '@pry.admin.title' : '@pry.admin.menus.' + limit) | i18n }}</h2>\n<button type=\"button\" class=\"a-btn a-btn--toggle\" (click)=\"onToggleMenu($event)\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.titleIndication' | i18n }}</span>\n</button>\n", dependencies: [{ kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminTitleComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3569
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminTitleComponent, selector: "pry-admin-title", usesInheritance: true, ngImport: i0, template: "<h2 class=\"a-h3\">{{ (!limit ? '@pry.admin.title' : '@pry.admin.menus.' + limit) | i18n }}</h2>\n<button type=\"button\" class=\"a-btn a-btn--toggle\" (click)=\"onToggleMenu($event)\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.titleIndication' | i18n }}</span>\n</button>\n", dependencies: [{ kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3555
3570
  }
3556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminTitleComponent, decorators: [{
3571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminTitleComponent, decorators: [{
3557
3572
  type: Component,
3558
3573
  args: [{ selector: 'pry-admin-title', template: "<h2 class=\"a-h3\">{{ (!limit ? '@pry.admin.title' : '@pry.admin.menus.' + limit) | i18n }}</h2>\n<button type=\"button\" class=\"a-btn a-btn--toggle\" (click)=\"onToggleMenu($event)\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.titleIndication' | i18n }}</span>\n</button>\n" }]
3559
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ActivatedRoute }]; } });
3574
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }] });
3560
3575
 
3561
3576
  const TEMPLATE_COMPONENTS = [
3562
3577
  AdminEnvironmentSelectComponent,
@@ -3608,13 +3623,13 @@ class AdminLayoutComponent extends BaseLayoutComponent {
3608
3623
  ngOnDestroy() {
3609
3624
  this.sub.unsubscribe();
3610
3625
  }
3611
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminLayoutComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3612
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminLayoutComponent, selector: "pry-admin-layout", viewQueries: [{ propertyName: "adminPanel", first: true, predicate: ["adminPanel"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-base-layout\" [ngClass]=\"{ 'is-menu-open': menuOpen$ | async }\">\n <pry-admin-title class=\"o-base-layout__title\"></pry-admin-title>\n <pry-admin-menu *ngIf=\"menuOpen$ | async\" class=\"o-base-layout__menu\"></pry-admin-menu>\n <pry-base-toolbox\n class=\"o-base-layout__toolbox\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [actions$]=\"actions$\"\n [subActions$]=\"subActions$\"\n ></pry-base-toolbox>\n\n <div class=\"o-base-layout__contentwrapper\">\n <div class=\"o-base-layout__content\">\n <router-outlet></router-outlet>\n </div>\n\n <div\n class=\"o-base-layout__panel\"\n [class.is-open]=\"panelOpen$ | async\"\n [class.-model]=\"(limit$ | async) === 'model'\"\n >\n <div class=\"o-base-layout__panel__content\">\n <ng-template #adminPanel></ng-template>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.BaseToolboxComponent, selector: "pry-base-toolbox", inputs: ["baseToolboxTranslation", "actions$", "subActions$"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AdminMenuComponent, selector: "pry-admin-menu" }, { kind: "component", type: AdminTitleComponent, selector: "pry-admin-title" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
3626
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminLayoutComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3627
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminLayoutComponent, selector: "pry-admin-layout", viewQueries: [{ propertyName: "adminPanel", first: true, predicate: ["adminPanel"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-base-layout\" [ngClass]=\"{ 'is-menu-open': menuOpen$ | async }\">\n <pry-admin-title class=\"o-base-layout__title\"></pry-admin-title>\n <pry-admin-menu *ngIf=\"menuOpen$ | async\" class=\"o-base-layout__menu\"></pry-admin-menu>\n <pry-base-toolbox\n class=\"o-base-layout__toolbox\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [actions$]=\"actions$\"\n [subActions$]=\"subActions$\"\n ></pry-base-toolbox>\n\n <div class=\"o-base-layout__contentwrapper\">\n <div class=\"o-base-layout__content\">\n <router-outlet></router-outlet>\n </div>\n\n <div\n class=\"o-base-layout__panel\"\n [class.is-open]=\"panelOpen$ | async\"\n [class.-model]=\"(limit$ | async) === 'model'\"\n >\n <div class=\"o-base-layout__panel__content\">\n <ng-template #adminPanel></ng-template>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.BaseToolboxComponent, selector: "pry-base-toolbox", inputs: ["baseToolboxTranslation", "actions$", "subActions$"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AdminMenuComponent, selector: "pry-admin-menu" }, { kind: "component", type: AdminTitleComponent, selector: "pry-admin-title" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
3613
3628
  }
3614
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminLayoutComponent, decorators: [{
3629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminLayoutComponent, decorators: [{
3615
3630
  type: Component,
3616
3631
  args: [{ selector: 'pry-admin-layout', template: "<div class=\"o-base-layout\" [ngClass]=\"{ 'is-menu-open': menuOpen$ | async }\">\n <pry-admin-title class=\"o-base-layout__title\"></pry-admin-title>\n <pry-admin-menu *ngIf=\"menuOpen$ | async\" class=\"o-base-layout__menu\"></pry-admin-menu>\n <pry-base-toolbox\n class=\"o-base-layout__toolbox\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [actions$]=\"actions$\"\n [subActions$]=\"subActions$\"\n ></pry-base-toolbox>\n\n <div class=\"o-base-layout__contentwrapper\">\n <div class=\"o-base-layout__content\">\n <router-outlet></router-outlet>\n </div>\n\n <div\n class=\"o-base-layout__panel\"\n [class.is-open]=\"panelOpen$ | async\"\n [class.-model]=\"(limit$ | async) === 'model'\"\n >\n <div class=\"o-base-layout__panel__content\">\n <ng-template #adminPanel></ng-template>\n </div>\n </div>\n </div>\n</div>\n" }]
3617
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; }, propDecorators: { adminPanel: [{
3632
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { adminPanel: [{
3618
3633
  type: ViewChild,
3619
3634
  args: ['adminPanel', { static: true, read: ViewContainerRef }]
3620
3635
  }] } });
@@ -3722,13 +3737,13 @@ class AdminLinksNewComponent {
3722
3737
  this.store.dispatch(LinksActions.saveLink({ link: linkToAdd, route: path.toString() }));
3723
3738
  }
3724
3739
  }
3725
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminLinksNewComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
3726
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminLinksNewComponent, selector: "pry-admin-links-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.links.add' | i18n }}</h1>\n <form class=\"o-form\" [formGroup]=\"linkForm\" (ngSubmit)=\"addLink()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"link_name\" class=\"a-label\">\n {{ '@pry.admin.links.relationType' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_name\"\n formControlName=\"relationType\"\n [items]=\"relationTypes$ | async | prySortData : sortActive : sortDirection\"\n (ngModelChange)=\"onTypeSourceChange()\"\n [isForm]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [placeholder]=\"'@pry.admin.links.selectRelationType' | i18n\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('relationType')?.invalid ? 'name-label name-error' : 'name-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('relationType')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('relationType')?.invalid\"\n id=\"name-error\"\n for=\"link_name\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\" *ngIf=\"isSelectClass\">\n <label id=\"class-source-label\" form=\"link_class-source\" class=\"a-label\">\n {{ '@pry.admin.links.classSource' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_class-source\"\n formControlName=\"classSource\"\n [items]=\"classes$ | async | prySortData : sortActive : sortDirection\"\n (ngModelChange)=\"onClassSourceChange($event)\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('classSource')?.invalid\n ? 'class-source-label class-source-error'\n : 'class-source-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('classSource')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('classSource')?.invalid\"\n id=\"class-source-error\"\n for=\"link_class-source\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div\n *ngIf=\"attributesSource$ | async | prySortData : sortActive : sortDirection as attr\"\n class=\"m-form-label-field -width-sm\"\n >\n <label id=\"attribute-source-label\" for=\"link_attribute-source\" class=\"a-label\">\n {{ '@pry.admin.links.attributeSource' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_attribute-source\"\n formControlName=\"attributeSource\"\n [items]=\"attr\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('attributeSource')?.invalid\n ? 'attribute-source-label attribute-source-error'\n : 'attribute-source-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('attributeSource')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('attributeSource')?.invalid\"\n id=\"attribute-source-error\"\n for=\"link_attribute-source\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div *ngIf=\"classes$ | async | prySortData : sortActive : sortDirection as cd\" class=\"m-form-label-field -width-sm\">\n <label id=\"class-destination-label\" for=\"link_class-destination\" class=\"a-label\">\n {{ '@pry.admin.links.classDestination' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_class-destination\"\n formControlName=\"classDestination\"\n [items]=\"cd\"\n (ngModelChange)=\"onClassDestinationChange($event)\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('classDestination')?.invalid\n ? 'class-destination-label class-destination-error'\n : 'class-destination-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('classDestination')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('classDestination')?.invalid\"\n id=\"class-destination-error\"\n for=\"link_class-destination\"\n class=\"text-error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div\n *ngIf=\"attributesDestination$ | async | prySortData : sortActive : sortDirection as attr\"\n class=\"m-form-label-field -width-sm\"\n >\n <label id=\"attribute-destination-label\" for=\"link_attribute-destination\" class=\"a-label\">\n {{ '@pry.admin.links.attributeDestination' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_attribute-destination\"\n formControlName=\"attributeDestination\"\n [items]=\"attr\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('attributeDestination')?.invalid\n ? 'attribute-destination-label attribute-destination-error'\n : 'attribute-destination-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('attributeDestination')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('attributeDestination')?.invalid\"\n id=\"attribute-destination-error\"\n for=\"link_attribute-destination\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n class=\"a-btn a-btn--secondary\"\n type=\"button\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" [innerHTML]=\"'@pry.admin.create' | i18n\"></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3740
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminLinksNewComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
3741
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminLinksNewComponent, selector: "pry-admin-links-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.links.add' | i18n }}</h1>\n <form class=\"o-form\" [formGroup]=\"linkForm\" (ngSubmit)=\"addLink()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"link_name\" class=\"a-label\">\n {{ '@pry.admin.links.relationType' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_name\"\n formControlName=\"relationType\"\n [items]=\"relationTypes$ | async | prySortData : sortActive : sortDirection\"\n (ngModelChange)=\"onTypeSourceChange()\"\n [isForm]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [placeholder]=\"'@pry.admin.links.selectRelationType' | i18n\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('relationType')?.invalid ? 'name-label name-error' : 'name-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('relationType')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('relationType')?.invalid\"\n id=\"name-error\"\n for=\"link_name\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\" *ngIf=\"isSelectClass\">\n <label id=\"class-source-label\" form=\"link_class-source\" class=\"a-label\">\n {{ '@pry.admin.links.classSource' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_class-source\"\n formControlName=\"classSource\"\n [items]=\"classes$ | async | prySortData : sortActive : sortDirection\"\n (ngModelChange)=\"onClassSourceChange($event)\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('classSource')?.invalid\n ? 'class-source-label class-source-error'\n : 'class-source-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('classSource')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('classSource')?.invalid\"\n id=\"class-source-error\"\n for=\"link_class-source\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div\n *ngIf=\"attributesSource$ | async | prySortData : sortActive : sortDirection as attr\"\n class=\"m-form-label-field -width-sm\"\n >\n <label id=\"attribute-source-label\" for=\"link_attribute-source\" class=\"a-label\">\n {{ '@pry.admin.links.attributeSource' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_attribute-source\"\n formControlName=\"attributeSource\"\n [items]=\"attr\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('attributeSource')?.invalid\n ? 'attribute-source-label attribute-source-error'\n : 'attribute-source-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('attributeSource')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('attributeSource')?.invalid\"\n id=\"attribute-source-error\"\n for=\"link_attribute-source\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div *ngIf=\"classes$ | async | prySortData : sortActive : sortDirection as cd\" class=\"m-form-label-field -width-sm\">\n <label id=\"class-destination-label\" for=\"link_class-destination\" class=\"a-label\">\n {{ '@pry.admin.links.classDestination' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_class-destination\"\n formControlName=\"classDestination\"\n [items]=\"cd\"\n (ngModelChange)=\"onClassDestinationChange($event)\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('classDestination')?.invalid\n ? 'class-destination-label class-destination-error'\n : 'class-destination-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('classDestination')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('classDestination')?.invalid\"\n id=\"class-destination-error\"\n for=\"link_class-destination\"\n class=\"text-error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div\n *ngIf=\"attributesDestination$ | async | prySortData : sortActive : sortDirection as attr\"\n class=\"m-form-label-field -width-sm\"\n >\n <label id=\"attribute-destination-label\" for=\"link_attribute-destination\" class=\"a-label\">\n {{ '@pry.admin.links.attributeDestination' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_attribute-destination\"\n formControlName=\"attributeDestination\"\n [items]=\"attr\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('attributeDestination')?.invalid\n ? 'attribute-destination-label attribute-destination-error'\n : 'attribute-destination-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('attributeDestination')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('attributeDestination')?.invalid\"\n id=\"attribute-destination-error\"\n for=\"link_attribute-destination\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n class=\"a-btn a-btn--secondary\"\n type=\"button\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" [innerHTML]=\"'@pry.admin.create' | i18n\"></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3727
3742
  }
3728
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminLinksNewComponent, decorators: [{
3743
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminLinksNewComponent, decorators: [{
3729
3744
  type: Component,
3730
3745
  args: [{ selector: 'pry-admin-links-new', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.links.add' | i18n }}</h1>\n <form class=\"o-form\" [formGroup]=\"linkForm\" (ngSubmit)=\"addLink()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"link_name\" class=\"a-label\">\n {{ '@pry.admin.links.relationType' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_name\"\n formControlName=\"relationType\"\n [items]=\"relationTypes$ | async | prySortData : sortActive : sortDirection\"\n (ngModelChange)=\"onTypeSourceChange()\"\n [isForm]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [placeholder]=\"'@pry.admin.links.selectRelationType' | i18n\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('relationType')?.invalid ? 'name-label name-error' : 'name-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('relationType')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('relationType')?.invalid\"\n id=\"name-error\"\n for=\"link_name\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-sm\" *ngIf=\"isSelectClass\">\n <label id=\"class-source-label\" form=\"link_class-source\" class=\"a-label\">\n {{ '@pry.admin.links.classSource' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_class-source\"\n formControlName=\"classSource\"\n [items]=\"classes$ | async | prySortData : sortActive : sortDirection\"\n (ngModelChange)=\"onClassSourceChange($event)\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('classSource')?.invalid\n ? 'class-source-label class-source-error'\n : 'class-source-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('classSource')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('classSource')?.invalid\"\n id=\"class-source-error\"\n for=\"link_class-source\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div\n *ngIf=\"attributesSource$ | async | prySortData : sortActive : sortDirection as attr\"\n class=\"m-form-label-field -width-sm\"\n >\n <label id=\"attribute-source-label\" for=\"link_attribute-source\" class=\"a-label\">\n {{ '@pry.admin.links.attributeSource' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_attribute-source\"\n formControlName=\"attributeSource\"\n [items]=\"attr\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('attributeSource')?.invalid\n ? 'attribute-source-label attribute-source-error'\n : 'attribute-source-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('attributeSource')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('attributeSource')?.invalid\"\n id=\"attribute-source-error\"\n for=\"link_attribute-source\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div *ngIf=\"classes$ | async | prySortData : sortActive : sortDirection as cd\" class=\"m-form-label-field -width-sm\">\n <label id=\"class-destination-label\" for=\"link_class-destination\" class=\"a-label\">\n {{ '@pry.admin.links.classDestination' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_class-destination\"\n formControlName=\"classDestination\"\n [items]=\"cd\"\n (ngModelChange)=\"onClassDestinationChange($event)\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('classDestination')?.invalid\n ? 'class-destination-label class-destination-error'\n : 'class-destination-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('classDestination')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('classDestination')?.invalid\"\n id=\"class-destination-error\"\n for=\"link_class-destination\"\n class=\"text-error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div\n *ngIf=\"attributesDestination$ | async | prySortData : sortActive : sortDirection as attr\"\n class=\"m-form-label-field -width-sm\"\n >\n <label id=\"attribute-destination-label\" for=\"link_attribute-destination\" class=\"a-label\">\n {{ '@pry.admin.links.attributeDestination' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"link_attribute-destination\"\n formControlName=\"attributeDestination\"\n [items]=\"attr\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && linkForm.get('attributeDestination')?.invalid\n ? 'attribute-destination-label attribute-destination-error'\n : 'attribute-destination-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && linkForm.get('attributeDestination')?.invalid\"\n required\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && linkForm.get('attributeDestination')?.invalid\"\n id=\"attribute-destination-error\"\n for=\"link_attribute-destination\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n class=\"a-btn a-btn--secondary\"\n type=\"button\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" [innerHTML]=\"'@pry.admin.create' | i18n\"></button>\n </div>\n </form>\n</div>\n" }]
3731
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }]; } });
3746
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }] });
3732
3747
 
3733
3748
  class AdminLinksComponent {
3734
3749
  constructor(store, router, route) {
@@ -3771,13 +3786,13 @@ class AdminLinksComponent {
3771
3786
  });
3772
3787
  }));
3773
3788
  }
3774
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminLinksComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3775
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminLinksComponent, selector: "pry-admin-links", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.links.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.links.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.classSource' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.attributeSource' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.classDestination' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.attributeDestination' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.relationType' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let link of linksExtended$ | async | prySortData: sortActive : sortDirection\">\n <td>{{ link.classSource }}</td>\n <td>{{ link.attributeSource }}</td>\n <td>{{ link.classDestination }}</td>\n <td>{{ link.attributeDestination }}</td>\n <td>{{ link.relationType }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3789
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminLinksComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3790
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminLinksComponent, selector: "pry-admin-links", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.links.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.links.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.classSource' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.attributeSource' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.classDestination' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.attributeDestination' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.relationType' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let link of linksExtended$ | async | prySortData: sortActive : sortDirection\">\n <td>{{ link.classSource }}</td>\n <td>{{ link.attributeSource }}</td>\n <td>{{ link.classDestination }}</td>\n <td>{{ link.attributeDestination }}</td>\n <td>{{ link.relationType }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3776
3791
  }
3777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminLinksComponent, decorators: [{
3792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminLinksComponent, decorators: [{
3778
3793
  type: Component,
3779
3794
  args: [{ selector: 'pry-admin-links', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.links.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.links.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.classSource' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.attributeSource' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.classDestination' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.attributeDestination' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.links.relationType' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let link of linksExtended$ | async | prySortData: sortActive : sortDirection\">\n <td>{{ link.classSource }}</td>\n <td>{{ link.attributeSource }}</td>\n <td>{{ link.classDestination }}</td>\n <td>{{ link.attributeDestination }}</td>\n <td>{{ link.relationType }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
3780
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
3795
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
3781
3796
 
3782
3797
  class AdminFormMetadataRulesComponent {
3783
3798
  constructor(store, router, route, formBuilder) {
@@ -3885,13 +3900,13 @@ class AdminFormMetadataRulesComponent {
3885
3900
  }
3886
3901
  }
3887
3902
  }
3888
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFormMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
3889
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: { metadataRules: "metadataRules" }, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n id=\"item\"\n formControlName=\"metadataItem\"\n [items]=\"metadataList\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n id=\"user\"\n formControlName=\"metadataUser\"\n [items]=\"metadataUserListFilter\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3903
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFormMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
3904
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: { metadataRules: "metadataRules" }, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n id=\"item\"\n formControlName=\"metadataItem\"\n [items]=\"metadataList\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n id=\"user\"\n formControlName=\"metadataUser\"\n [items]=\"metadataUserListFilter\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3890
3905
  }
3891
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFormMetadataRulesComponent, decorators: [{
3906
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFormMetadataRulesComponent, decorators: [{
3892
3907
  type: Component,
3893
3908
  args: [{ selector: 'pry-admin-form-metadata-rules', template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n id=\"item\"\n formControlName=\"metadataItem\"\n [items]=\"metadataList\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n id=\"user\"\n formControlName=\"metadataUser\"\n [items]=\"metadataUserListFilter\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n" }]
3894
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }]; }, propDecorators: { metadataRules: [{
3909
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }], propDecorators: { metadataRules: [{
3895
3910
  type: Input
3896
3911
  }] } });
3897
3912
 
@@ -3901,13 +3916,13 @@ class AdminEditMetadataRulesComponent {
3901
3916
  this.store.dispatch(AdminMetadataRulesActions.load());
3902
3917
  this.metadataRulesSelected$ = this.store.select(MetadataRulesSelectors.metadataRulesSelected);
3903
3918
  }
3904
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEditMetadataRulesComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3905
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminEditMetadataRulesComponent, selector: "pry-admin-edit-metadata-rules", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata-rules.edit.title' | i18n }}</h1>\n <pry-admin-form-metadata-rules [metadataRules]=\"metadataRulesSelected$ | async\"></pry-admin-form-metadata-rules>\n</div>\n", dependencies: [{ kind: "component", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: ["metadataRules"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3919
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEditMetadataRulesComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3920
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminEditMetadataRulesComponent, selector: "pry-admin-edit-metadata-rules", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata-rules.edit.title' | i18n }}</h1>\n <pry-admin-form-metadata-rules [metadataRules]=\"metadataRulesSelected$ | async\"></pry-admin-form-metadata-rules>\n</div>\n", dependencies: [{ kind: "component", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: ["metadataRules"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3906
3921
  }
3907
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEditMetadataRulesComponent, decorators: [{
3922
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEditMetadataRulesComponent, decorators: [{
3908
3923
  type: Component,
3909
3924
  args: [{ selector: 'pry-admin-edit-metadata-rules', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata-rules.edit.title' | i18n }}</h1>\n <pry-admin-form-metadata-rules [metadataRules]=\"metadataRulesSelected$ | async\"></pry-admin-form-metadata-rules>\n</div>\n" }]
3910
- }], ctorParameters: function () { return [{ type: i1.Store }]; } });
3925
+ }], ctorParameters: () => [{ type: i1.Store }] });
3911
3926
 
3912
3927
  class AdminMetadataRulesComponent {
3913
3928
  constructor(store, translateService, router, route) {
@@ -3973,22 +3988,22 @@ class AdminMetadataRulesComponent {
3973
3988
  getTranslationType(type) {
3974
3989
  return META_OPTIONS.find((el) => el.varType === type)?.translation || 'undefined';
3975
3990
  }
3976
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i4.PryI18nService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3977
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminMetadataRulesComponent, selector: "pry-admin-metadata-rules", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata-rules.title' | i18n }}</h1>\n <ng-container *ngIf=\"metadataRulesList$ | async as metadataRulesList\">\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.metadata-rules.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let metadataRules of metadataRulesList | prySortData: sortActive : sortDirection\"\n (click)=\"selectMetadata(metadataRules)\"\n [class.is-selected]=\"(selectedMetadataRules$ | async) === metadataRules.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-meta-rule-' + metadataRules.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedMetadataRules$ | async) === metadataRules.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-meta-rule-' + metadataRules.id\"\n >\n <span class=\"u-visually-hidden\">{{ metadataRules.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ metadataRules.name }}</td>\n <td>{{ metadataRules.metadataItem?.name }}</td>\n <td>{{ metadataRules.metadataUser?.name }}</td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n</div>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelMetadataSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\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: "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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i4.PryModalComponent, selector: "pry-modal", inputs: ["titleModal", "opened", "validateLabel", "validateAction", "cancelLabel", "cancelAction"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3991
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i4.PryI18nService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
3992
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminMetadataRulesComponent, selector: "pry-admin-metadata-rules", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata-rules.title' | i18n }}</h1>\n <ng-container *ngIf=\"metadataRulesList$ | async as metadataRulesList\">\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.metadata-rules.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let metadataRules of metadataRulesList | prySortData: sortActive : sortDirection\"\n (click)=\"selectMetadata(metadataRules)\"\n [class.is-selected]=\"(selectedMetadataRules$ | async) === metadataRules.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-meta-rule-' + metadataRules.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedMetadataRules$ | async) === metadataRules.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-meta-rule-' + metadataRules.id\"\n >\n <span class=\"u-visually-hidden\">{{ metadataRules.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ metadataRules.name }}</td>\n <td>{{ metadataRules.metadataItem?.name }}</td>\n <td>{{ metadataRules.metadataUser?.name }}</td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n</div>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelMetadataSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\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: "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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i4.PryModalComponent, selector: "pry-modal", inputs: ["titleModal", "opened", "validateLabel", "validateAction", "cancelLabel", "cancelAction"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3978
3993
  }
3979
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataRulesComponent, decorators: [{
3994
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataRulesComponent, decorators: [{
3980
3995
  type: Component,
3981
3996
  args: [{ selector: 'pry-admin-metadata-rules', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata-rules.title' | i18n }}</h1>\n <ng-container *ngIf=\"metadataRulesList$ | async as metadataRulesList\">\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.metadata-rules.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let metadataRules of metadataRulesList | prySortData: sortActive : sortDirection\"\n (click)=\"selectMetadata(metadataRules)\"\n [class.is-selected]=\"(selectedMetadataRules$ | async) === metadataRules.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-meta-rule-' + metadataRules.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedMetadataRules$ | async) === metadataRules.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-meta-rule-' + metadataRules.id\"\n >\n <span class=\"u-visually-hidden\">{{ metadataRules.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ metadataRules.name }}</td>\n <td>{{ metadataRules.metadataItem?.name }}</td>\n <td>{{ metadataRules.metadataUser?.name }}</td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n</div>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelMetadataSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\n" }]
3982
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i4.PryI18nService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; }, propDecorators: { input: [{
3997
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i4.PryI18nService }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { input: [{
3983
3998
  type: ViewChild,
3984
3999
  args: ['input']
3985
4000
  }] } });
3986
4001
 
3987
4002
  class AdminNewMetadataRulesComponent {
3988
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminNewMetadataRulesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3989
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminNewMetadataRulesComponent, selector: "pry-admin-new-metadata-rules", ngImport: i0, template: "<div class=\"o-base-container\">\n <h4 class=\"admin__title\">{{ '@pry.admin.metadata-rules.add.title' | i18n }}</h4>\n <pry-admin-form-metadata-rules></pry-admin-form-metadata-rules>\n</div>\n", dependencies: [{ kind: "component", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: ["metadataRules"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4003
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminNewMetadataRulesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4004
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminNewMetadataRulesComponent, selector: "pry-admin-new-metadata-rules", ngImport: i0, template: "<div class=\"o-base-container\">\n <h4 class=\"admin__title\">{{ '@pry.admin.metadata-rules.add.title' | i18n }}</h4>\n <pry-admin-form-metadata-rules></pry-admin-form-metadata-rules>\n</div>\n", dependencies: [{ kind: "component", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: ["metadataRules"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3990
4005
  }
3991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminNewMetadataRulesComponent, decorators: [{
4006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminNewMetadataRulesComponent, decorators: [{
3992
4007
  type: Component,
3993
4008
  args: [{ selector: 'pry-admin-new-metadata-rules', template: "<div class=\"o-base-container\">\n <h4 class=\"admin__title\">{{ '@pry.admin.metadata-rules.add.title' | i18n }}</h4>\n <pry-admin-form-metadata-rules></pry-admin-form-metadata-rules>\n</div>\n" }]
3994
4009
  }] });
@@ -4044,13 +4059,13 @@ class PryListMetadataComponent {
4044
4059
  getTranslationType(type) {
4045
4060
  return META_OPTIONS.find((el) => el.varType === type)?.translation || 'undefined';
4046
4061
  }
4047
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryListMetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4048
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryListMetadataComponent, selector: "pry-list-metadata", inputs: { sortActive: "sortActive", sortDirection: "sortDirection", configHeader: "configHeader", metadata: "metadata", selectedMetadata: "selectedMetadata", labelMetadataSelected: "labelMetadataSelected", editable: "editable" }, outputs: { editClicked$: "editClicked$", submitModal$: "submitModal$", cancelAction$: "cancelAction$", rowClicked$: "rowClicked$" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n>\n <caption>\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n\n <thead>\n <tr>\n <th style=\"width: 30px\"></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let metadata of metadata | prySortData: sortActive : sortDirection\"\n (click)=\"goToDetails(metadata.id)\"\n [class.is-selected]=\"selectedMetadata === metadata.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-meta' + metadata.name\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"selectedMetadata === metadata.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-meta-' + metadata.id\"\n >\n <span class=\"u-visually-hidden\">{{ metadata.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ metadata.name }}</td>\n <td>{{ getTranslationType(metadata.type) | i18n }}</td>\n </tr>\n </tbody>\n</table>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelMetadataSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PryModalComponent, selector: "pry-modal", inputs: ["titleModal", "opened", "validateLabel", "validateAction", "cancelLabel", "cancelAction"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4062
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryListMetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4063
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryListMetadataComponent, selector: "pry-list-metadata", inputs: { sortActive: "sortActive", sortDirection: "sortDirection", configHeader: "configHeader", metadata: "metadata", selectedMetadata: "selectedMetadata", labelMetadataSelected: "labelMetadataSelected", editable: "editable" }, outputs: { editClicked$: "editClicked$", submitModal$: "submitModal$", cancelAction$: "cancelAction$", rowClicked$: "rowClicked$" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n>\n <caption>\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n\n <thead>\n <tr>\n <th style=\"width: 30px\"></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let metadata of metadata | prySortData: sortActive : sortDirection\"\n (click)=\"goToDetails(metadata.id)\"\n [class.is-selected]=\"selectedMetadata === metadata.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-meta' + metadata.name\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"selectedMetadata === metadata.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-meta-' + metadata.id\"\n >\n <span class=\"u-visually-hidden\">{{ metadata.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ metadata.name }}</td>\n <td>{{ getTranslationType(metadata.type) | i18n }}</td>\n </tr>\n </tbody>\n</table>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelMetadataSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PryModalComponent, selector: "pry-modal", inputs: ["titleModal", "opened", "validateLabel", "validateAction", "cancelLabel", "cancelAction"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4049
4064
  }
4050
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryListMetadataComponent, decorators: [{
4065
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryListMetadataComponent, decorators: [{
4051
4066
  type: Component,
4052
4067
  args: [{ selector: 'pry-list-metadata', template: "<table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n>\n <caption>\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n\n <thead>\n <tr>\n <th style=\"width: 30px\"></th>\n <th *ngFor=\"let conf of configHeader\" [prySortHeader]=\"conf.label\">{{ conf.label }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let metadata of metadata | prySortData: sortActive : sortDirection\"\n (click)=\"goToDetails(metadata.id)\"\n [class.is-selected]=\"selectedMetadata === metadata.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-meta' + metadata.name\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"selectedMetadata === metadata.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-meta-' + metadata.id\"\n >\n <span class=\"u-visually-hidden\">{{ metadata.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ metadata.name }}</td>\n <td>{{ getTranslationType(metadata.type) | i18n }}</td>\n </tr>\n </tbody>\n</table>\n\n<pry-modal\n [titleModal]=\"'@pry.toolbox.rename' | i18n\"\n [validateLabel]=\"'@pry.toolbox.manifest.check' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.toolbox.manifest.close' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"this.editOpened\"\n>\n <div class=\"field__input\">\n <span>{{ '@pry.toolbox.manifest.name' | i18n }}</span>\n <input\n type=\"text\"\n (keyup.enter)=\"validateName(input.value)\"\n [ngModel]=\"labelMetadataSelected\"\n (ngModelChange)=\"changeValue($event)\"\n #input\n />\n </div>\n</pry-modal>\n" }]
4053
- }], ctorParameters: function () { return []; }, propDecorators: { input: [{
4068
+ }], ctorParameters: () => [], propDecorators: { input: [{
4054
4069
  type: ViewChild,
4055
4070
  args: ['input']
4056
4071
  }], sortActive: [{
@@ -4118,13 +4133,13 @@ class AdminMetadataUserComponent {
4118
4133
  this.store.dispatch(AdminMetadataUserActions.goToDetailsViewMetadata({ id }));
4119
4134
  this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminUserSelectMetadataComponent' }));
4120
4135
  }
4121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataUserComponent, deps: [{ token: i1.Store }, { token: i4.PryI18nService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4122
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminMetadataUserComponent, selector: "pry-admin-user", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.user.title' | i18n }}</h1>\n <pry-list-metadata\n [metadata]=\"metadata$ | async\"\n [selectedMetadata]=\"selectedMetadataId$ | async\"\n [configHeader]=\"configHeader\"\n [sortActive]=\"sortActive\"\n [labelMetadataSelected]=\"value\"\n [sortDirection]=\"sortDirection\"\n (rowClicked$)=\"rowClicked($event)\"\n >\n </pry-list-metadata>\n</div>\n", dependencies: [{ kind: "component", type: PryListMetadataComponent, selector: "pry-list-metadata", inputs: ["sortActive", "sortDirection", "configHeader", "metadata", "selectedMetadata", "labelMetadataSelected", "editable"], outputs: ["editClicked$", "submitModal$", "cancelAction$", "rowClicked$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataUserComponent, deps: [{ token: i1.Store }, { token: i4.PryI18nService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminMetadataUserComponent, selector: "pry-admin-user", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.user.title' | i18n }}</h1>\n <pry-list-metadata\n [metadata]=\"metadata$ | async\"\n [selectedMetadata]=\"selectedMetadataId$ | async\"\n [configHeader]=\"configHeader\"\n [sortActive]=\"sortActive\"\n [labelMetadataSelected]=\"value\"\n [sortDirection]=\"sortDirection\"\n (rowClicked$)=\"rowClicked($event)\"\n >\n </pry-list-metadata>\n</div>\n", dependencies: [{ kind: "component", type: PryListMetadataComponent, selector: "pry-list-metadata", inputs: ["sortActive", "sortDirection", "configHeader", "metadata", "selectedMetadata", "labelMetadataSelected", "editable"], outputs: ["editClicked$", "submitModal$", "cancelAction$", "rowClicked$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4123
4138
  }
4124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataUserComponent, decorators: [{
4139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataUserComponent, decorators: [{
4125
4140
  type: Component,
4126
4141
  args: [{ selector: 'pry-admin-user', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.user.title' | i18n }}</h1>\n <pry-list-metadata\n [metadata]=\"metadata$ | async\"\n [selectedMetadata]=\"selectedMetadataId$ | async\"\n [configHeader]=\"configHeader\"\n [sortActive]=\"sortActive\"\n [labelMetadataSelected]=\"value\"\n [sortDirection]=\"sortDirection\"\n (rowClicked$)=\"rowClicked($event)\"\n >\n </pry-list-metadata>\n</div>\n" }]
4127
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i4.PryI18nService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; }, propDecorators: { input: [{
4142
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i4.PryI18nService }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { input: [{
4128
4143
  type: ViewChild,
4129
4144
  args: ['input']
4130
4145
  }] } });
@@ -4227,13 +4242,13 @@ class FormMetadataComponent {
4227
4242
  }
4228
4243
  return path.toString();
4229
4244
  }
4230
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
4231
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: { titleForm: "titleForm", isMetaSimpleEdit: "isMetaSimpleEdit", isMetaUser: "isMetaUser", metadata: "metadata" }, outputs: { submitMetadata$: "submitMetadata$" }, ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"metadata-type\"\n formControlName=\"type\"\n [items]=\"metaOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\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: "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: "directive", type: i3$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4245
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
4246
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: { titleForm: "titleForm", isMetaSimpleEdit: "isMetaSimpleEdit", isMetaUser: "isMetaUser", metadata: "metadata" }, outputs: { submitMetadata$: "submitMetadata$" }, ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"metadata-type\"\n formControlName=\"type\"\n [items]=\"metaOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\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: "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: "directive", type: i3$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4232
4247
  }
4233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormMetadataComponent, decorators: [{
4248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormMetadataComponent, decorators: [{
4234
4249
  type: Component,
4235
4250
  args: [{ selector: 'pry-form-metadata', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"metadata-type\"\n formControlName=\"type\"\n [items]=\"metaOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n" }]
4236
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }]; }, propDecorators: { titleForm: [{
4251
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }], propDecorators: { titleForm: [{
4237
4252
  type: Input
4238
4253
  }], isMetaSimpleEdit: [{
4239
4254
  type: Input
@@ -4261,13 +4276,13 @@ class AdminUserEditMetadataComponent {
4261
4276
  submit(metadata) {
4262
4277
  this.store.dispatch(AdminMetadataUserActions.updateMetadata({ metadata }));
4263
4278
  }
4264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserEditMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminUserEditMetadataComponent, selector: "pry-admin-edit-metadata", ngImport: i0, template: "<pry-form-metadata\n *ngIf=\"metadata$ | async as metadata\"\n [metadata]=\"metadata\"\n (submitMetadata$)=\"submit($event)\"\n [titleForm]=\"'@pry.admin.user.edit' | i18n\"\n [isMetaUser]=\"true\"\n>\n</pry-form-metadata>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: ["titleForm", "isMetaSimpleEdit", "isMetaUser", "metadata"], outputs: ["submitMetadata$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4279
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserEditMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4280
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminUserEditMetadataComponent, selector: "pry-admin-edit-metadata", ngImport: i0, template: "<pry-form-metadata\n *ngIf=\"metadata$ | async as metadata\"\n [metadata]=\"metadata\"\n (submitMetadata$)=\"submit($event)\"\n [titleForm]=\"'@pry.admin.user.edit' | i18n\"\n [isMetaUser]=\"true\"\n>\n</pry-form-metadata>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: ["titleForm", "isMetaSimpleEdit", "isMetaUser", "metadata"], outputs: ["submitMetadata$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4266
4281
  }
4267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserEditMetadataComponent, decorators: [{
4282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserEditMetadataComponent, decorators: [{
4268
4283
  type: Component,
4269
4284
  args: [{ selector: 'pry-admin-edit-metadata', template: "<pry-form-metadata\n *ngIf=\"metadata$ | async as metadata\"\n [metadata]=\"metadata\"\n (submitMetadata$)=\"submit($event)\"\n [titleForm]=\"'@pry.admin.user.edit' | i18n\"\n [isMetaUser]=\"true\"\n>\n</pry-form-metadata>\n" }]
4270
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
4285
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
4271
4286
 
4272
4287
  class AdminUserNewMetadataComponent {
4273
4288
  constructor(store) {
@@ -4276,13 +4291,13 @@ class AdminUserNewMetadataComponent {
4276
4291
  submit(metadata) {
4277
4292
  this.store.dispatch(AdminMetadataUserActions.createMetadata({ metadata: metadata }));
4278
4293
  }
4279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserNewMetadataComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
4280
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminUserNewMetadataComponent, selector: "pry-admin-user-new-metadata", ngImport: i0, template: "<pry-form-metadata (submitMetadata$)=\"submit($event)\" [titleForm]=\"'@pry.admin.user.add' | i18n\" [isMetaUser]=\"true\">\n</pry-form-metadata>\n", dependencies: [{ kind: "component", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: ["titleForm", "isMetaSimpleEdit", "isMetaUser", "metadata"], outputs: ["submitMetadata$"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserNewMetadataComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
4295
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminUserNewMetadataComponent, selector: "pry-admin-user-new-metadata", ngImport: i0, template: "<pry-form-metadata (submitMetadata$)=\"submit($event)\" [titleForm]=\"'@pry.admin.user.add' | i18n\" [isMetaUser]=\"true\">\n</pry-form-metadata>\n", dependencies: [{ kind: "component", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: ["titleForm", "isMetaSimpleEdit", "isMetaUser", "metadata"], outputs: ["submitMetadata$"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4281
4296
  }
4282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserNewMetadataComponent, decorators: [{
4297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserNewMetadataComponent, decorators: [{
4283
4298
  type: Component,
4284
4299
  args: [{ selector: 'pry-admin-user-new-metadata', template: "<pry-form-metadata (submitMetadata$)=\"submit($event)\" [titleForm]=\"'@pry.admin.user.add' | i18n\" [isMetaUser]=\"true\">\n</pry-form-metadata>\n" }]
4285
- }], ctorParameters: function () { return [{ type: i1.Store }]; } });
4300
+ }], ctorParameters: () => [{ type: i1.Store }] });
4286
4301
 
4287
4302
  class AdminEditMetadataComponent {
4288
4303
  constructor(store, route) {
@@ -4299,13 +4314,13 @@ class AdminEditMetadataComponent {
4299
4314
  submit(metadata) {
4300
4315
  this.store.dispatch(MetadataActions.createMetadata({ metadata: metadata }));
4301
4316
  }
4302
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEditMetadataComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4303
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminEditMetadataComponent, selector: "pry-admin-edit-metadata", ngImport: i0, template: "<pry-form-metadata\n *ngIf=\"metadata$ | async as metadata\"\n [metadata]=\"metadata\"\n (submitMetadata$)=\"submit($event)\"\n [titleForm]=\"'@pry.admin.metadata.edit' | i18n\"\n [isMetaSimpleEdit]=\"true\"\n>\n</pry-form-metadata>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: ["titleForm", "isMetaSimpleEdit", "isMetaUser", "metadata"], outputs: ["submitMetadata$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4317
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEditMetadataComponent, deps: [{ token: i1.Store }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4318
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminEditMetadataComponent, selector: "pry-admin-edit-metadata", ngImport: i0, template: "<pry-form-metadata\n *ngIf=\"metadata$ | async as metadata\"\n [metadata]=\"metadata\"\n (submitMetadata$)=\"submit($event)\"\n [titleForm]=\"'@pry.admin.metadata.edit' | i18n\"\n [isMetaSimpleEdit]=\"true\"\n>\n</pry-form-metadata>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: ["titleForm", "isMetaSimpleEdit", "isMetaUser", "metadata"], outputs: ["submitMetadata$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4304
4319
  }
4305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEditMetadataComponent, decorators: [{
4320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEditMetadataComponent, decorators: [{
4306
4321
  type: Component,
4307
4322
  args: [{ selector: 'pry-admin-edit-metadata', template: "<pry-form-metadata\n *ngIf=\"metadata$ | async as metadata\"\n [metadata]=\"metadata\"\n (submitMetadata$)=\"submit($event)\"\n [titleForm]=\"'@pry.admin.metadata.edit' | i18n\"\n [isMetaSimpleEdit]=\"true\"\n>\n</pry-form-metadata>\n" }]
4308
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ActivatedRoute }]; } });
4323
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.ActivatedRoute }] });
4309
4324
 
4310
4325
  class AdminMetadataComponent {
4311
4326
  constructor(store, translateService, router, route) {
@@ -4352,13 +4367,13 @@ class AdminMetadataComponent {
4352
4367
  this.store.dispatch(MetadataActions.goToDetailsView({ id }));
4353
4368
  this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminSelectMetadataComponent' }));
4354
4369
  }
4355
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataComponent, deps: [{ token: i1.Store }, { token: i4.PryI18nService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4356
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminMetadataComponent, selector: "pry-admin-metadata", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata.title' | i18n }}</h1>\n <pry-list-metadata\n [metadata]=\"metadata$ | async\"\n [selectedMetadata]=\"selectedMetadataId$ | async\"\n [configHeader]=\"configHeader\"\n [sortActive]=\"sortActive\"\n [labelMetadataSelected]=\"value\"\n [sortDirection]=\"sortDirection\"\n (cancelAction$)=\"cancelEdition()\"\n (rowClicked$)=\"rowClicked($event)\"\n [editable]=\"false\"\n >\n </pry-list-metadata>\n</div>\n", dependencies: [{ kind: "component", type: PryListMetadataComponent, selector: "pry-list-metadata", inputs: ["sortActive", "sortDirection", "configHeader", "metadata", "selectedMetadata", "labelMetadataSelected", "editable"], outputs: ["editClicked$", "submitModal$", "cancelAction$", "rowClicked$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataComponent, deps: [{ token: i1.Store }, { token: i4.PryI18nService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4371
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminMetadataComponent, selector: "pry-admin-metadata", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata.title' | i18n }}</h1>\n <pry-list-metadata\n [metadata]=\"metadata$ | async\"\n [selectedMetadata]=\"selectedMetadataId$ | async\"\n [configHeader]=\"configHeader\"\n [sortActive]=\"sortActive\"\n [labelMetadataSelected]=\"value\"\n [sortDirection]=\"sortDirection\"\n (cancelAction$)=\"cancelEdition()\"\n (rowClicked$)=\"rowClicked($event)\"\n [editable]=\"false\"\n >\n </pry-list-metadata>\n</div>\n", dependencies: [{ kind: "component", type: PryListMetadataComponent, selector: "pry-list-metadata", inputs: ["sortActive", "sortDirection", "configHeader", "metadata", "selectedMetadata", "labelMetadataSelected", "editable"], outputs: ["editClicked$", "submitModal$", "cancelAction$", "rowClicked$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4357
4372
  }
4358
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataComponent, decorators: [{
4373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataComponent, decorators: [{
4359
4374
  type: Component,
4360
4375
  args: [{ selector: 'pry-admin-metadata', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.metadata.title' | i18n }}</h1>\n <pry-list-metadata\n [metadata]=\"metadata$ | async\"\n [selectedMetadata]=\"selectedMetadataId$ | async\"\n [configHeader]=\"configHeader\"\n [sortActive]=\"sortActive\"\n [labelMetadataSelected]=\"value\"\n [sortDirection]=\"sortDirection\"\n (cancelAction$)=\"cancelEdition()\"\n (rowClicked$)=\"rowClicked($event)\"\n [editable]=\"false\"\n >\n </pry-list-metadata>\n</div>\n" }]
4361
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i4.PryI18nService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
4376
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i4.PryI18nService }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
4362
4377
 
4363
4378
  class AdminNewMetadataComponent {
4364
4379
  constructor(store) {
@@ -4367,13 +4382,13 @@ class AdminNewMetadataComponent {
4367
4382
  submit(metadata) {
4368
4383
  this.store.dispatch(MetadataActions.createMetadata({ metadata: metadata }));
4369
4384
  }
4370
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminNewMetadataComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
4371
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminNewMetadataComponent, selector: "pry-admin-new-metadata", ngImport: i0, template: "<pry-form-metadata (submitMetadata$)=\"submit($event)\" [titleForm]=\"'@pry.admin.metadata.add' | i18n\">\n</pry-form-metadata>\n", dependencies: [{ kind: "component", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: ["titleForm", "isMetaSimpleEdit", "isMetaUser", "metadata"], outputs: ["submitMetadata$"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4385
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminNewMetadataComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
4386
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminNewMetadataComponent, selector: "pry-admin-new-metadata", ngImport: i0, template: "<pry-form-metadata (submitMetadata$)=\"submit($event)\" [titleForm]=\"'@pry.admin.metadata.add' | i18n\">\n</pry-form-metadata>\n", dependencies: [{ kind: "component", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: ["titleForm", "isMetaSimpleEdit", "isMetaUser", "metadata"], outputs: ["submitMetadata$"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4372
4387
  }
4373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminNewMetadataComponent, decorators: [{
4388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminNewMetadataComponent, decorators: [{
4374
4389
  type: Component,
4375
4390
  args: [{ selector: 'pry-admin-new-metadata', template: "<pry-form-metadata (submitMetadata$)=\"submit($event)\" [titleForm]=\"'@pry.admin.metadata.add' | i18n\">\n</pry-form-metadata>\n" }]
4376
- }], ctorParameters: function () { return [{ type: i1.Store }]; } });
4391
+ }], ctorParameters: () => [{ type: i1.Store }] });
4377
4392
 
4378
4393
  class AdminPredicatesFormComponent {
4379
4394
  set currentPred(val) {
@@ -4452,21 +4467,21 @@ class AdminPredicatesFormComponent {
4452
4467
  }
4453
4468
  return path.toString();
4454
4469
  }
4455
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
4456
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminPredicatesFormComponent, selector: "pry-admin-predicates-form", inputs: { currentPred: "currentPred" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <form class=\"o-form\" [formGroup]=\"predForm\" (ngSubmit)=\"checkModal()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"name\" class=\"a-label\">\n {{ '@pry.admin.predicates.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"isSubmitted && predForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && predForm.get('name')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && predForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"predForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"predForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-xl\">\n <label id=\"value-label\" for=\"value\" class=\"a-label\">\n {{ '@pry.admin.predicates.value' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <textarea\n id=\"value\"\n rows=\"10\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n name=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && predForm.get('value')?.invalid ? 'value-label value-error' : 'value-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && predForm.get('value')?.invalid\"\n required\n ></textarea>\n <label\n *ngIf=\"isSubmitted && predForm.get('value')?.invalid\"\n id=\"value-error\"\n for=\"value\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentPred ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n\n<div *ngIf=\"predicatesUsed$ | async as used\">\n <pry-modal\n [titleModal]=\"'@pry.admin.predicates.validEdit' | i18n\"\n [validateLabel]=\"'@pry.admin.edit' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.admin.cancel' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"openedModal\"\n >\n <p [innerHTML]=\"'@pry.admin.predicates.validEditMessage' | i18n: { used: used }\"></p>\n </pry-modal>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.PryModalComponent, selector: "pry-modal", inputs: ["titleModal", "opened", "validateLabel", "validateAction", "cancelLabel", "cancelAction"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4470
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
4471
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminPredicatesFormComponent, selector: "pry-admin-predicates-form", inputs: { currentPred: "currentPred" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <form class=\"o-form\" [formGroup]=\"predForm\" (ngSubmit)=\"checkModal()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"name\" class=\"a-label\">\n {{ '@pry.admin.predicates.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"isSubmitted && predForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && predForm.get('name')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && predForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"predForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"predForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-xl\">\n <label id=\"value-label\" for=\"value\" class=\"a-label\">\n {{ '@pry.admin.predicates.value' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <textarea\n id=\"value\"\n rows=\"10\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n name=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && predForm.get('value')?.invalid ? 'value-label value-error' : 'value-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && predForm.get('value')?.invalid\"\n required\n ></textarea>\n <label\n *ngIf=\"isSubmitted && predForm.get('value')?.invalid\"\n id=\"value-error\"\n for=\"value\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentPred ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n\n<div *ngIf=\"predicatesUsed$ | async as used\">\n <pry-modal\n [titleModal]=\"'@pry.admin.predicates.validEdit' | i18n\"\n [validateLabel]=\"'@pry.admin.edit' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.admin.cancel' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"openedModal\"\n >\n <p [innerHTML]=\"'@pry.admin.predicates.validEditMessage' | i18n: { used: used }\"></p>\n </pry-modal>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.PryModalComponent, selector: "pry-modal", inputs: ["titleModal", "opened", "validateLabel", "validateAction", "cancelLabel", "cancelAction"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4457
4472
  }
4458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesFormComponent, decorators: [{
4473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesFormComponent, decorators: [{
4459
4474
  type: Component,
4460
4475
  args: [{ selector: 'pry-admin-predicates-form', template: "<div>\n <form class=\"o-form\" [formGroup]=\"predForm\" (ngSubmit)=\"checkModal()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"name\" class=\"a-label\">\n {{ '@pry.admin.predicates.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"isSubmitted && predForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && predForm.get('name')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && predForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"predForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"predForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-xl\">\n <label id=\"value-label\" for=\"value\" class=\"a-label\">\n {{ '@pry.admin.predicates.value' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <textarea\n id=\"value\"\n rows=\"10\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n name=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && predForm.get('value')?.invalid ? 'value-label value-error' : 'value-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && predForm.get('value')?.invalid\"\n required\n ></textarea>\n <label\n *ngIf=\"isSubmitted && predForm.get('value')?.invalid\"\n id=\"value-error\"\n for=\"value\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(_currentPred ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n\n<div *ngIf=\"predicatesUsed$ | async as used\">\n <pry-modal\n [titleModal]=\"'@pry.admin.predicates.validEdit' | i18n\"\n [validateLabel]=\"'@pry.admin.edit' | i18n\"\n [validateAction]=\"validateAction\"\n [cancelLabel]=\"'@pry.admin.cancel' | i18n\"\n [cancelAction]=\"cancelAction\"\n [opened]=\"openedModal\"\n >\n <p [innerHTML]=\"'@pry.admin.predicates.validEditMessage' | i18n: { used: used }\"></p>\n </pry-modal>\n</div>\n" }]
4461
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }]; }, propDecorators: { currentPred: [{
4476
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3$1.UntypedFormBuilder }], propDecorators: { currentPred: [{
4462
4477
  type: Input
4463
4478
  }] } });
4464
4479
 
4465
4480
  class AdminPredicatesNewComponent {
4466
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4467
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminPredicatesNewComponent, selector: "pry-admin-predicates-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.add' | i18n }}</h1>\n <pry-admin-predicates-form></pry-admin-predicates-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminPredicatesFormComponent, selector: "pry-admin-predicates-form", inputs: ["currentPred"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4481
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4482
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminPredicatesNewComponent, selector: "pry-admin-predicates-new", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.add' | i18n }}</h1>\n <pry-admin-predicates-form></pry-admin-predicates-form>\n</div>\n", dependencies: [{ kind: "component", type: AdminPredicatesFormComponent, selector: "pry-admin-predicates-form", inputs: ["currentPred"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4468
4483
  }
4469
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesNewComponent, decorators: [{
4484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesNewComponent, decorators: [{
4470
4485
  type: Component,
4471
4486
  args: [{ selector: 'pry-admin-predicates-new', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.add' | i18n }}</h1>\n <pry-admin-predicates-form></pry-admin-predicates-form>\n</div>\n" }]
4472
4487
  }] });
@@ -4481,13 +4496,13 @@ class AdminPredicatesUpdateComponent {
4481
4496
  ngOnInit() {
4482
4497
  this.route.params.subscribe((params) => this.store.dispatch(PredicatesActions.selectPredicate({ id: params['id'] })));
4483
4498
  }
4484
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesUpdateComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4485
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminPredicatesUpdateComponent, selector: "pry-admin-predicates-update", ngImport: i0, template: "<div *ngIf=\"currentPredicate$ | async as currentPred\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.edit' | i18n }}</h1>\n <pry-admin-predicates-form [currentPred]=\"currentPred\"></pry-admin-predicates-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminPredicatesFormComponent, selector: "pry-admin-predicates-form", inputs: ["currentPred"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4499
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesUpdateComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4500
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminPredicatesUpdateComponent, selector: "pry-admin-predicates-update", ngImport: i0, template: "<div *ngIf=\"currentPredicate$ | async as currentPred\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.edit' | i18n }}</h1>\n <pry-admin-predicates-form [currentPred]=\"currentPred\"></pry-admin-predicates-form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AdminPredicatesFormComponent, selector: "pry-admin-predicates-form", inputs: ["currentPred"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4486
4501
  }
4487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesUpdateComponent, decorators: [{
4502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesUpdateComponent, decorators: [{
4488
4503
  type: Component,
4489
4504
  args: [{ selector: 'pry-admin-predicates-update', template: "<div *ngIf=\"currentPredicate$ | async as currentPred\" class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.edit' | i18n }}</h1>\n <pry-admin-predicates-form [currentPred]=\"currentPred\"></pry-admin-predicates-form>\n</div>\n" }]
4490
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
4505
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
4491
4506
 
4492
4507
  class AdminPredicatesComponent {
4493
4508
  constructor(store, router, route) {
@@ -4518,13 +4533,13 @@ class AdminPredicatesComponent {
4518
4533
  this.store.dispatch(PredicatesActions.selectPredicate({ id: num }));
4519
4534
  this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminPredicatesSelectComponent' }));
4520
4535
  }
4521
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4522
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminPredicatesComponent, selector: "pry-admin-predicates", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.predicates.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.predicates.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let predicate of predicates$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"goToSelectPredicate(predicate.id)\"\n [class.is-selected]=\"(currentPredicateId$ | async) === predicate.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-pred-' + predicate.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"false\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-pred-' + predicate.id\"\n >\n <span class=\"u-visually-hidden\">{{ predicate.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ predicate.name }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4536
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4537
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminPredicatesComponent, selector: "pry-admin-predicates", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.predicates.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.predicates.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let predicate of predicates$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"goToSelectPredicate(predicate.id)\"\n [class.is-selected]=\"(currentPredicateId$ | async) === predicate.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-pred-' + predicate.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"false\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-pred-' + predicate.id\"\n >\n <span class=\"u-visually-hidden\">{{ predicate.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ predicate.name }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4523
4538
  }
4524
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminPredicatesComponent, decorators: [{
4539
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminPredicatesComponent, decorators: [{
4525
4540
  type: Component,
4526
4541
  args: [{ selector: 'pry-admin-predicates', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.predicates.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.predicates.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.predicates.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let predicate of predicates$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"goToSelectPredicate(predicate.id)\"\n [class.is-selected]=\"(currentPredicateId$ | async) === predicate.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-pred-' + predicate.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"false\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-pred-' + predicate.id\"\n >\n <span class=\"u-visually-hidden\">{{ predicate.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ predicate.name }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
4527
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
4542
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
4528
4543
 
4529
4544
  class AdminRelationTypesModalComponent {
4530
4545
  constructor(store, overlay, viewContainerRef, formBuilder) {
@@ -4603,13 +4618,13 @@ class AdminRelationTypesModalComponent {
4603
4618
  this.closeModal();
4604
4619
  }
4605
4620
  }
4606
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRelationTypesModalComponent, deps: [{ token: i1.Store }, { token: i5.Overlay }, { token: i0.ViewContainerRef }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
4607
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminRelationTypesModalComponent, selector: "pry-admin-relation-types-modal", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-template #template>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2\n class=\"a-h2\"\n id=\"dialog_title\"\n [innerHTML]=\"(selectedRelationType ? '@pry.admin.relationTypes.edit' : '@pry.admin.relationTypes.add') | i18n\"\n >\n {{ '@pry.toolbox.rename' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <form [formGroup]=\"relationTypeForm\" (ngSubmit)=\"addRelationType()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\"></label>\n <input type=\"text\" class=\"a-form-field\" id=\"name\" formControlName=\"name\" required />\n <label\n *ngIf=\"isSubmitted && (relationTypeForm.get('name')?.invalid || nameAlreadyExists)\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"nameAlreadyExists\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"relationTypeForm.get('name')?.hasError('required')\">\n {{ '@pry.admin.required' | i18n }}\n </span>\n <span *ngIf=\"relationTypeForm.get('name')?.hasError('maxlength')\">\n {{ '@pry.admin.maxLength' | i18n: { len: '30' } }}\n </span>\n </label>\n </div>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"(selectedRelationType ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n </div>\n</ng-template>\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: "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: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4621
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRelationTypesModalComponent, deps: [{ token: i1.Store }, { token: i5.Overlay }, { token: i0.ViewContainerRef }, { token: i3$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
4622
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminRelationTypesModalComponent, selector: "pry-admin-relation-types-modal", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-template #template>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2\n class=\"a-h2\"\n id=\"dialog_title\"\n [innerHTML]=\"(selectedRelationType ? '@pry.admin.relationTypes.edit' : '@pry.admin.relationTypes.add') | i18n\"\n >\n {{ '@pry.toolbox.rename' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <form [formGroup]=\"relationTypeForm\" (ngSubmit)=\"addRelationType()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\"></label>\n <input type=\"text\" class=\"a-form-field\" id=\"name\" formControlName=\"name\" required />\n <label\n *ngIf=\"isSubmitted && (relationTypeForm.get('name')?.invalid || nameAlreadyExists)\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"nameAlreadyExists\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"relationTypeForm.get('name')?.hasError('required')\">\n {{ '@pry.admin.required' | i18n }}\n </span>\n <span *ngIf=\"relationTypeForm.get('name')?.hasError('maxlength')\">\n {{ '@pry.admin.maxLength' | i18n: { len: '30' } }}\n </span>\n </label>\n </div>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"(selectedRelationType ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n </div>\n</ng-template>\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: "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: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4608
4623
  }
4609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRelationTypesModalComponent, decorators: [{
4624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRelationTypesModalComponent, decorators: [{
4610
4625
  type: Component,
4611
4626
  args: [{ selector: 'pry-admin-relation-types-modal', template: "<ng-template #template>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2\n class=\"a-h2\"\n id=\"dialog_title\"\n [innerHTML]=\"(selectedRelationType ? '@pry.admin.relationTypes.edit' : '@pry.admin.relationTypes.add') | i18n\"\n >\n {{ '@pry.toolbox.rename' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <form [formGroup]=\"relationTypeForm\" (ngSubmit)=\"addRelationType()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\"></label>\n <input type=\"text\" class=\"a-form-field\" id=\"name\" formControlName=\"name\" required />\n <label\n *ngIf=\"isSubmitted && (relationTypeForm.get('name')?.invalid || nameAlreadyExists)\"\n id=\"name-error\"\n for=\"name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"nameAlreadyExists\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"relationTypeForm.get('name')?.hasError('required')\">\n {{ '@pry.admin.required' | i18n }}\n </span>\n <span *ngIf=\"relationTypeForm.get('name')?.hasError('maxlength')\">\n {{ '@pry.admin.maxLength' | i18n: { len: '30' } }}\n </span>\n </label>\n </div>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"closeModal()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"(selectedRelationType ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n </div>\n</ng-template>\n" }]
4612
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i5.Overlay }, { type: i0.ViewContainerRef }, { type: i3$1.UntypedFormBuilder }]; }, propDecorators: { template: [{
4627
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i5.Overlay }, { type: i0.ViewContainerRef }, { type: i3$1.UntypedFormBuilder }], propDecorators: { template: [{
4613
4628
  type: ViewChild,
4614
4629
  args: ['template', { read: TemplateRef }]
4615
4630
  }] } });
@@ -4640,13 +4655,13 @@ class AdminRelationTypesComponent {
4640
4655
  this.store.dispatch(RelationTypesActions.selectRelationType({ id: link.id }));
4641
4656
  this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminRelationTypesSelectComponent' }));
4642
4657
  }
4643
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRelationTypesComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
4644
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminRelationTypesComponent, selector: "pry-admin-relation-types", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.relationTypes.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.relationTypes.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.relationTypes.name' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.relationTypes.nbLink' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let relationType of relationTypes | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectlink(relationType)\"\n [class.is-selected]=\"(selectedRelationType$ | async)?.id === relationType.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-rt-' + relationType.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedRelationType$ | async)?.id === relationType.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-rt-' + relationType.id\"\n >\n <span class=\"u-visually-hidden\">{{ relationType.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ relationType.name }}</td>\n <td>{{ relationType.nbLink }}</td>\n </tr>\n </tbody>\n </table>\n\n <pry-admin-relation-types-modal></pry-admin-relation-types-modal>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: AdminRelationTypesModalComponent, selector: "pry-admin-relation-types-modal" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4658
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRelationTypesComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
4659
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminRelationTypesComponent, selector: "pry-admin-relation-types", ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.relationTypes.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.relationTypes.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.relationTypes.name' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.relationTypes.nbLink' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let relationType of relationTypes | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectlink(relationType)\"\n [class.is-selected]=\"(selectedRelationType$ | async)?.id === relationType.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-rt-' + relationType.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedRelationType$ | async)?.id === relationType.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-rt-' + relationType.id\"\n >\n <span class=\"u-visually-hidden\">{{ relationType.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ relationType.name }}</td>\n <td>{{ relationType.nbLink }}</td>\n </tr>\n </tbody>\n </table>\n\n <pry-admin-relation-types-modal></pry-admin-relation-types-modal>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: AdminRelationTypesModalComponent, selector: "pry-admin-relation-types-modal" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4645
4660
  }
4646
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRelationTypesComponent, decorators: [{
4661
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRelationTypesComponent, decorators: [{
4647
4662
  type: Component,
4648
4663
  args: [{ selector: 'pry-admin-relation-types', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.relationTypes.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.relationTypes.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.relationTypes.name' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.relationTypes.nbLink' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let relationType of relationTypes | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectlink(relationType)\"\n [class.is-selected]=\"(selectedRelationType$ | async)?.id === relationType.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-rt-' + relationType.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedRelationType$ | async)?.id === relationType.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-rt-' + relationType.id\"\n >\n <span class=\"u-visually-hidden\">{{ relationType.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ relationType.name }}</td>\n <td>{{ relationType.nbLink }}</td>\n </tr>\n </tbody>\n </table>\n\n <pry-admin-relation-types-modal></pry-admin-relation-types-modal>\n</div>\n" }]
4649
- }], ctorParameters: function () { return [{ type: i1.Store }]; } });
4664
+ }], ctorParameters: () => [{ type: i1.Store }] });
4650
4665
 
4651
4666
  class AdminUserComponent {
4652
4667
  constructor(store, router, route) {
@@ -4665,13 +4680,13 @@ class AdminUserComponent {
4665
4680
  this.store.dispatch(AdminUserActions.selectUser({ userId: user.id }));
4666
4681
  this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminUserSelectComponent' }));
4667
4682
  }
4668
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4669
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminUserComponent, selector: "pry-admin-user", ngImport: i0, template: "<h1 class=\"a-h1\">{{ '@pry.admin.userInfo.list' | i18n }}</h1>\n<table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n>\n <caption>\n {{\n '@pry.admin.userInfo.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.name' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.familyName' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.email' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let user of users$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectUser(user)\"\n [class.is-selected]=\"(selectedUser$ | async)?.id === user.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-user-' + user.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedUser$ | async)?.id === user.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-user-' + user.id\"\n >\n <span class=\"u-visually-hidden\">{{ user.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ user.name }}</td>\n <td>{{ user.familyName }}</td>\n <td>{{ user.email }}</td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4683
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
4684
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminUserComponent, selector: "pry-admin-user", ngImport: i0, template: "<h1 class=\"a-h1\">{{ '@pry.admin.userInfo.list' | i18n }}</h1>\n<table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n>\n <caption>\n {{\n '@pry.admin.userInfo.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.name' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.familyName' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.email' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let user of users$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectUser(user)\"\n [class.is-selected]=\"(selectedUser$ | async)?.id === user.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-user-' + user.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedUser$ | async)?.id === user.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-user-' + user.id\"\n >\n <span class=\"u-visually-hidden\">{{ user.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ user.name }}</td>\n <td>{{ user.familyName }}</td>\n <td>{{ user.email }}</td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
4670
4685
  }
4671
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserComponent, decorators: [{
4686
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserComponent, decorators: [{
4672
4687
  type: Component,
4673
4688
  args: [{ selector: 'pry-admin-user', template: "<h1 class=\"a-h1\">{{ '@pry.admin.userInfo.list' | i18n }}</h1>\n<table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n>\n <caption>\n {{\n '@pry.admin.userInfo.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.name' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.familyName' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.userInfo.email' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let user of users$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectUser(user)\"\n [class.is-selected]=\"(selectedUser$ | async)?.id === user.id\"\n >\n <td class=\"view-details\">\n <button\n [id]=\"'button-user-' + user.id\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedUser$ | async)?.id === user.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-user-' + user.id\"\n >\n <span class=\"u-visually-hidden\">{{ user.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>{{ user.name }}</td>\n <td>{{ user.familyName }}</td>\n <td>{{ user.email }}</td>\n </tr>\n </tbody>\n</table>\n" }]
4674
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
4689
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
4675
4690
 
4676
4691
  const routes = [
4677
4692
  {
@@ -5185,11 +5200,11 @@ const routes = [
5185
5200
  }
5186
5201
  ];
5187
5202
  class AdminRoutingModule {
5188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5189
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AdminRoutingModule, imports: [i2.RouterModule], exports: [RouterModule] }); }
5190
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
5203
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5204
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: AdminRoutingModule, imports: [i2.RouterModule], exports: [RouterModule] }); }
5205
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
5191
5206
  }
5192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminRoutingModule, decorators: [{
5207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminRoutingModule, decorators: [{
5193
5208
  type: NgModule,
5194
5209
  args: [{
5195
5210
  imports: [RouterModule.forChild(routes)],
@@ -5357,15 +5372,15 @@ class AdminService {
5357
5372
  .select(ConfigSelectors.refUrl)
5358
5373
  .pipe(mergeMap((url) => this.httpClient.get(`${url}/model/storages`)));
5359
5374
  }
5360
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
5361
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminService, providedIn: 'root' }); }
5375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
5376
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminService, providedIn: 'root' }); }
5362
5377
  }
5363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminService, decorators: [{
5378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminService, decorators: [{
5364
5379
  type: Injectable,
5365
5380
  args: [{
5366
5381
  providedIn: 'root'
5367
5382
  }]
5368
- }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
5383
+ }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i1.Store }] });
5369
5384
 
5370
5385
  class AbacRulesEffects {
5371
5386
  constructor(actions$, service, store, abacRulesService) {
@@ -5427,12 +5442,12 @@ class AbacRulesEffects {
5427
5442
  return [abacRuleAction$, abacRuleConditionsAction$];
5428
5443
  })));
5429
5444
  }
5430
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbacRulesEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i1.Store }, { token: AbacRulesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5431
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbacRulesEffects }); }
5445
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AbacRulesEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i1.Store }, { token: AbacRulesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5446
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AbacRulesEffects }); }
5432
5447
  }
5433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbacRulesEffects, decorators: [{
5448
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AbacRulesEffects, decorators: [{
5434
5449
  type: Injectable
5435
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i1.Store }, { type: AbacRulesService }]; } });
5450
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }, { type: i1.Store }, { type: AbacRulesService }] });
5436
5451
 
5437
5452
  class AdminClassEffects {
5438
5453
  constructor(actions$, adminService, pryDialog, service) {
@@ -5559,12 +5574,12 @@ class AdminClassEffects {
5559
5574
  return this.adminService.getStorageOptions().pipe(map$1((storageOptions) => AdminClassActions.getStorageOptionsSuccess({ storageOptions })), catchError$1((error) => [AdminClassActions.getStorageOptionsFailure({ error: error })]));
5560
5575
  })));
5561
5576
  }
5562
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i4.PryDialogService }, { token: AdminService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5563
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassEffects }); }
5577
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i4.PryDialogService }, { token: AdminService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5578
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassEffects }); }
5564
5579
  }
5565
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminClassEffects, decorators: [{
5580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminClassEffects, decorators: [{
5566
5581
  type: Injectable
5567
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i4.PryDialogService }, { type: AdminService }]; } });
5582
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }, { type: i4.PryDialogService }, { type: AdminService }] });
5568
5583
 
5569
5584
  class EnvironmentEffects {
5570
5585
  constructor(actions$, service, router) {
@@ -5597,12 +5612,12 @@ class EnvironmentEffects {
5597
5612
  ];
5598
5613
  })));
5599
5614
  }
5600
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnvironmentEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5601
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnvironmentEffects }); }
5615
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EnvironmentEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5616
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EnvironmentEffects }); }
5602
5617
  }
5603
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnvironmentEffects, decorators: [{
5618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EnvironmentEffects, decorators: [{
5604
5619
  type: Injectable
5605
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }]; } });
5620
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }] });
5606
5621
 
5607
5622
  class FieldsEffects {
5608
5623
  constructor(actions$, fieldService, pryDialog) {
@@ -5642,12 +5657,12 @@ class FieldsEffects {
5642
5657
  return AdminActions.togglePanel({ panelOpen: false });
5643
5658
  })));
5644
5659
  }
5645
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldsEffects, deps: [{ token: i1$2.Actions }, { token: i4.FieldService }, { token: i4.PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5646
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldsEffects }); }
5660
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FieldsEffects, deps: [{ token: i1$2.Actions }, { token: i4.FieldService }, { token: i4.PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5661
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FieldsEffects }); }
5647
5662
  }
5648
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldsEffects, decorators: [{
5663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FieldsEffects, decorators: [{
5649
5664
  type: Injectable
5650
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: i4.FieldService }, { type: i4.PryDialogService }]; } });
5665
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i4.FieldService }, { type: i4.PryDialogService }] });
5651
5666
 
5652
5667
  class LinksEffects {
5653
5668
  constructor(actions$, service, router) {
@@ -5660,12 +5675,12 @@ class LinksEffects {
5660
5675
  return AdminActions.routeTo({ path: action.route });
5661
5676
  })));
5662
5677
  }
5663
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LinksEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5664
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LinksEffects }); }
5678
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LinksEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5679
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LinksEffects }); }
5665
5680
  }
5666
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LinksEffects, decorators: [{
5681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LinksEffects, decorators: [{
5667
5682
  type: Injectable
5668
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }]; } });
5683
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }] });
5669
5684
 
5670
5685
  class AdminMetadataRulesEffects {
5671
5686
  constructor(actions$, service, router) {
@@ -5701,12 +5716,12 @@ class AdminMetadataRulesEffects {
5701
5716
  return AdminActions.routeTo({ path: action.route });
5702
5717
  })));
5703
5718
  }
5704
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataRulesEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5705
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataRulesEffects }); }
5719
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataRulesEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5720
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataRulesEffects }); }
5706
5721
  }
5707
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataRulesEffects, decorators: [{
5722
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataRulesEffects, decorators: [{
5708
5723
  type: Injectable
5709
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }]; } });
5724
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }] });
5710
5725
 
5711
5726
  class AdminMetadataUserEffects {
5712
5727
  constructor(actions$, adminService, store, router) {
@@ -5728,19 +5743,19 @@ class AdminMetadataUserEffects {
5728
5743
  return MetadataActions.loadUserProfile();
5729
5744
  })));
5730
5745
  }
5731
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataUserEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i1.Store }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5732
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataUserEffects }); }
5746
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataUserEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i1.Store }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5747
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataUserEffects }); }
5733
5748
  }
5734
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMetadataUserEffects, decorators: [{
5749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminMetadataUserEffects, decorators: [{
5735
5750
  type: Injectable
5736
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i1.Store }, { type: i2.Router }]; } });
5751
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }, { type: i1.Store }, { type: i2.Router }] });
5737
5752
 
5738
5753
  class PryListMetadataModule {
5739
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryListMetadataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5740
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PryListMetadataModule, declarations: [PryListMetadataComponent], imports: [CommonModule, PrySortModule, PryIconModule, PryModalModule, FormsModule, PryCheckboxModule, PryI18nModule], exports: [PryListMetadataComponent] }); }
5741
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryListMetadataModule, imports: [CommonModule, PrySortModule, PryIconModule, PryModalModule, FormsModule, PryCheckboxModule, PryI18nModule] }); }
5754
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryListMetadataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5755
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: PryListMetadataModule, declarations: [PryListMetadataComponent], imports: [CommonModule, PrySortModule, PryIconModule, PryModalModule, FormsModule, PryCheckboxModule, PryI18nModule], exports: [PryListMetadataComponent] }); }
5756
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryListMetadataModule, imports: [CommonModule, PrySortModule, PryIconModule, PryModalModule, FormsModule, PryCheckboxModule, PryI18nModule] }); }
5742
5757
  }
5743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryListMetadataModule, decorators: [{
5758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryListMetadataModule, decorators: [{
5744
5759
  type: NgModule,
5745
5760
  args: [{
5746
5761
  declarations: [PryListMetadataComponent],
@@ -5761,12 +5776,12 @@ class PredicatesEffects {
5761
5776
  })));
5762
5777
  this.selectPredicate$ = createEffect(() => this.actions$.pipe(ofType(PredicatesActions.selectPredicate), mergeMap$1((action) => this.service.getPredicate(action.id).pipe(map$1((data) => PredicatesActions.selectPredicateSuccess({ data })), catchError$1((error) => [PredicatesActions.selectPredicateFailure({ error })])))));
5763
5778
  }
5764
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PredicatesEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5765
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PredicatesEffects }); }
5779
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PredicatesEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5780
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PredicatesEffects }); }
5766
5781
  }
5767
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PredicatesEffects, decorators: [{
5782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PredicatesEffects, decorators: [{
5768
5783
  type: Injectable
5769
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }]; } });
5784
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }] });
5770
5785
 
5771
5786
  class AdminUserEffects {
5772
5787
  constructor(actions$, adminService) {
@@ -5774,12 +5789,12 @@ class AdminUserEffects {
5774
5789
  this.adminService = adminService;
5775
5790
  this.loadUsers$ = createEffect(() => this.actions$.pipe(ofType(AdminUserActions.loadUsers), mergeMap$1((_) => this.adminService.getUsers().pipe(map$1((users) => AdminUserActions.loadUsersSuccess({ users })), catchError$1((error) => [AdminUserActions.loadUsersFailure({ error })])))));
5776
5791
  }
5777
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5778
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserEffects }); }
5792
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5793
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserEffects }); }
5779
5794
  }
5780
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminUserEffects, decorators: [{
5795
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserEffects, decorators: [{
5781
5796
  type: Injectable
5782
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }]; } });
5797
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }] });
5783
5798
 
5784
5799
  const enTranslations = {
5785
5800
  '@pry': {
@@ -6576,12 +6591,12 @@ class AdminEffects {
6576
6591
  this.fetchDatasetAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchDatasetAssociations), mergeMap((action) => this.service.getDatasetAssociations(action.id).pipe(map((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6577
6592
  this.fetchAttributeAssociations$ = createEffect(() => this.actions$.pipe(ofType(AdminActions.fetchAttributeAssociations), mergeMap((action) => this.service.getAttributeAssociations(action.id).pipe(map((association) => AdminActions.fetchAssociationsSuccess({ association })), catchError((error) => [AdminActions.fetchAssociationsFailure({ error: error })])))));
6578
6593
  }
6579
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
6580
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEffects }); }
6594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEffects, deps: [{ token: i1$2.Actions }, { token: AdminService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
6595
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEffects }); }
6581
6596
  }
6582
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminEffects, decorators: [{
6597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminEffects, decorators: [{
6583
6598
  type: Injectable
6584
- }], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }]; } });
6599
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: AdminService }, { type: i2.Router }] });
6585
6600
 
6586
6601
  class PryAdminModule {
6587
6602
  constructor(pryTranslateService) {
@@ -6589,8 +6604,8 @@ class PryAdminModule {
6589
6604
  this.pryTranslateService.addLangObject('fr', 'admin', frTranslations);
6590
6605
  this.pryTranslateService.addLangObject('en', 'admin', enTranslations);
6591
6606
  }
6592
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAdminModule, deps: [{ token: i4.PryI18nService }], target: i0.ɵɵFactoryTarget.NgModule }); }
6593
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PryAdminModule, declarations: [PryAdminComponent,
6607
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, deps: [{ token: i4.PryI18nService }], target: i0.ɵɵFactoryTarget.NgModule }); }
6608
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, declarations: [PryAdminComponent,
6594
6609
  AdminEnvironmentComponent,
6595
6610
  AdminMetadataUserComponent,
6596
6611
  AdminClassesComponent,
@@ -6680,7 +6695,7 @@ class PryAdminModule {
6680
6695
  PryExpandPanelModule,
6681
6696
  PrySinceDateModule,
6682
6697
  PryDatasetModule] }); }
6683
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAdminModule, providers: [DatePipe], imports: [CommonModule,
6698
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, providers: [DatePipe], imports: [CommonModule,
6684
6699
  PryCoreModule,
6685
6700
  AdminRoutingModule,
6686
6701
  StoreModule.forFeature(adminFeatureKey, adminReducer),
@@ -6720,7 +6735,7 @@ class PryAdminModule {
6720
6735
  PrySinceDateModule,
6721
6736
  PryDatasetModule] }); }
6722
6737
  }
6723
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAdminModule, decorators: [{
6738
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, decorators: [{
6724
6739
  type: NgModule,
6725
6740
  args: [{
6726
6741
  providers: [DatePipe],
@@ -6841,7 +6856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6841
6856
  PryDatasetModule
6842
6857
  ]
6843
6858
  }]
6844
- }], ctorParameters: function () { return [{ type: i4.PryI18nService }]; } });
6859
+ }], ctorParameters: () => [{ type: i4.PryI18nService }] });
6845
6860
 
6846
6861
  /**
6847
6862
  * Generated bundle index. Do not edit.