@provoly/dashboard 0.22.3 → 0.22.5

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 (196) hide show
  1. package/dataset/style/_o-pry-dataset-card.scss +24 -2
  2. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +1 -1
  3. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +1 -1
  4. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +1 -1
  5. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +1 -1
  6. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +1 -1
  7. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +1 -1
  8. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +1 -1
  10. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +1 -1
  11. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +1 -1
  12. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +1 -1
  13. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +1 -1
  14. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +1 -1
  15. package/esm2022/components/checkbox/checkbox.component.mjs +3 -3
  16. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +1 -1
  17. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +1 -1
  18. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +3 -3
  19. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
  20. package/esm2022/dataset/components/dataset.component.mjs +3 -3
  21. package/esm2022/dataset/style/css.component.mjs +2 -2
  22. package/esm2022/filters/autocomplete/autocomplete.component.mjs +1 -1
  23. package/esm2022/filters/list/list-filter.component.mjs +1 -1
  24. package/esm2022/import/components/import.component.mjs +1 -1
  25. package/esm2022/lib/core/components/about/about.component.mjs +3 -3
  26. package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +3 -3
  27. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +8 -4
  28. package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
  29. package/esm2022/lib/core/components/select/select.component.mjs +19 -8
  30. package/esm2022/lib/core/components/share/share.component.mjs +1 -1
  31. package/esm2022/lib/core/i18n/en.translations.mjs +7 -2
  32. package/esm2022/lib/core/i18n/fr.translations.mjs +7 -2
  33. package/esm2022/lib/core/store/image/image.service.mjs +4 -3
  34. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +3 -3
  35. package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
  36. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +3 -3
  37. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +3 -3
  38. package/esm2022/lib/dashboard/filter/style/css.component.mjs +2 -2
  39. package/esm2022/lib/dashboard/resultset-utils.mjs +3 -3
  40. package/esm2022/notification/store/notification.service.mjs +1 -1
  41. package/esm2022/notification/style/css.component.mjs +2 -2
  42. package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +3 -3
  43. package/esm2022/pipeline-components/filter/component/filter.component.mjs +1 -1
  44. package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +1 -1
  45. package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +1 -1
  46. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +1 -1
  47. package/esm2022/presentation/components/presentation.component.mjs +4 -3
  48. package/esm2022/presentation/style/css.component.mjs +2 -2
  49. package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
  50. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
  51. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -3
  52. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
  53. package/esm2022/restitution/style/css.component.mjs +2 -2
  54. package/esm2022/search/search-home/search-home.component.mjs +2 -2
  55. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +1 -1
  56. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +1 -1
  57. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +1 -1
  58. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +1 -1
  59. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
  60. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
  61. package/esm2022/toolbox/components/delete/delete.component.mjs +3 -3
  62. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
  63. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +20 -8
  64. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
  65. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  66. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  67. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
  68. package/esm2022/toolbox/components/share/share.component.mjs +4 -3
  69. package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +3 -3
  70. package/esm2022/toolbox/components/toolbox.component.mjs +13 -3
  71. package/esm2022/toolbox/style/css.component.mjs +2 -2
  72. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +3 -3
  73. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
  74. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +1 -1
  75. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -7
  76. package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +3 -2
  77. package/esm2022/widgets/widget-map/style/css.component.mjs +3 -3
  78. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +5 -1
  79. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
  80. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
  81. package/fesm2022/provoly-dashboard-admin.mjs +14 -14
  82. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  83. package/fesm2022/provoly-dashboard-components-checkbox.mjs +2 -2
  84. package/fesm2022/provoly-dashboard-components-checkbox.mjs.map +1 -1
  85. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +1 -1
  86. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  87. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +1 -1
  88. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  89. package/fesm2022/provoly-dashboard-dataset.mjs +8 -8
  90. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  91. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +1 -1
  92. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  93. package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
  94. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  95. package/fesm2022/provoly-dashboard-import.mjs +1 -1
  96. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  97. package/fesm2022/provoly-dashboard-notification.mjs +2 -2
  98. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  99. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +1 -1
  100. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  101. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +1 -1
  102. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
  103. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +1 -1
  104. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
  105. package/fesm2022/provoly-dashboard-pipeline.mjs +2 -2
  106. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  107. package/fesm2022/provoly-dashboard-presentation.mjs +6 -5
  108. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  109. package/fesm2022/provoly-dashboard-restitution.mjs +10 -10
  110. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  111. package/fesm2022/provoly-dashboard-search.mjs +5 -5
  112. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  113. package/fesm2022/provoly-dashboard-toolbox.mjs +54 -31
  114. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  115. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +2 -2
  116. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  117. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  118. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  119. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +1 -1
  120. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  121. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +13 -8
  122. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  123. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  124. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  125. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
  126. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  127. package/fesm2022/provoly-dashboard.mjs +59 -33
  128. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  129. package/lib/core/components/overlay/dialog-confirm.component.d.ts +1 -1
  130. package/lib/core/components/select/select.component.d.ts +2 -1
  131. package/lib/core/i18n/en.translations.d.ts +5 -0
  132. package/lib/core/i18n/fr.translations.d.ts +5 -0
  133. package/lib/dashboard/filter/style/_o-pry-filter-group.scss +1 -1
  134. package/notification/style/_m-notifications.scss +4 -10
  135. package/package.json +13 -13
  136. package/presentation/style/_o-pry-new-presentation.scss +0 -4
  137. package/presentation/style/_o-pry-presentation.scss +6 -1
  138. package/restitution/style/_o-restitution-list.scss +1 -1
  139. package/styles/abstracts/_mixins.scss +13 -0
  140. package/styles/components/_a-btn.scss +8 -26
  141. package/styles/components/_a-chip.scss +13 -0
  142. package/styles/components/_m-info-icon.scss +2 -3
  143. package/styles/components/{_o-datasources.scss → _o-chips-selector.scss} +3 -4
  144. package/styles/components/_o-dashboard.scss +41 -7
  145. package/styles/components/_o-modal.scss +1 -1
  146. package/styles/components/_o-widget.scss +5 -5
  147. package/styles/layout/_o-manifest-layout.scss +4 -0
  148. package/styles/libs/_reset-lib-ol.scss +9 -5
  149. package/styles/main.scss +7 -7
  150. package/styles-theme/abstracts-theme/_abstracts-overlays.theme.scss +6 -0
  151. package/styles-theme/abstracts-theme/variables/_variables-colors.scss +18 -25
  152. package/styles-theme/abstracts-theme/variables/_variables-decoration.scss +2 -2
  153. package/styles-theme/abstracts-theme/variables/_variables-typo.scss +2 -2
  154. package/styles-theme/components-theme/_a-btn.theme.scss +45 -72
  155. package/styles-theme/components-theme/_a-checkbox.theme.scss +3 -45
  156. package/styles-theme/components-theme/_a-chip.theme.scss +32 -0
  157. package/styles-theme/components-theme/_a-form-field.theme.scss +1 -1
  158. package/styles-theme/components-theme/_a-pry-select.theme.scss +11 -3
  159. package/styles-theme/components-theme/_a-toggle.theme.scss +7 -8
  160. package/styles-theme/components-theme/_m-filter.theme.scss +4 -13
  161. package/styles-theme/components-theme/_m-form-radio-group.theme.scss +17 -0
  162. package/styles-theme/components-theme/_m-info-icon.theme.scss +11 -0
  163. package/styles-theme/components-theme/_m-minus-plus.theme.scss +2 -2
  164. package/styles-theme/components-theme/_m-notifications.theme.scss +8 -4
  165. package/styles-theme/components-theme/_m-time-picker.theme.scss +1 -1
  166. package/styles-theme/components-theme/_o-catalog.theme.scss +1 -1
  167. package/styles-theme/components-theme/_o-date-picker.theme.scss +2 -2
  168. package/styles-theme/components-theme/_o-draggable-menu.theme.scss +2 -2
  169. package/styles-theme/components-theme/_o-multi-class-field-selection.theme.scss +1 -1
  170. package/styles-theme/components-theme/_o-object-panel.theme.scss +1 -1
  171. package/styles-theme/components-theme/_o-pry-admin-classes-customize.theme.scss +0 -9
  172. package/styles-theme/components-theme/_o-pry-dataset-card.theme.scss +8 -0
  173. package/styles-theme/components-theme/_o-pry-presentation.theme.scss +12 -14
  174. package/styles-theme/components-theme/_o-pry-search-tools.theme.scss +2 -13
  175. package/styles-theme/components-theme/_o-pry-stepper.theme.scss +6 -8
  176. package/styles-theme/components-theme/_o-restitution-list.theme.scss +1 -1
  177. package/styles-theme/components-theme/_o-search-fulltext.theme.scss +2 -2
  178. package/styles-theme/components-theme/_o-search-multi-class.theme.scss +0 -5
  179. package/styles-theme/components-theme/_o-settings.theme.scss +1 -1
  180. package/styles-theme/components-theme/_o-tabs.theme.scss +1 -1
  181. package/styles-theme/components-theme/_o-widget-iframe.theme.scss +2 -2
  182. package/styles-theme/components-theme/_o-widget.theme.scss +31 -2
  183. package/styles-theme/components-theme/_overlay.theme.scss +3 -3
  184. package/styles-theme/layout-theme/_o-base-layout.theme.scss +3 -3
  185. package/styles-theme/layout-theme/_o-manifest-layout.theme.scss +8 -2
  186. package/styles-theme/libs-theme/_reset-lib-ol.theme.scss +12 -3
  187. package/styles-theme/main-theme.scss +5 -4
  188. package/toolbox/components/filter-settings/filter-settings.component.d.ts +3 -2
  189. package/toolbox/components/toolbox.component.d.ts +3 -1
  190. package/toolbox/style/_o-filter-settings.scss +0 -4
  191. package/toolbox/style/_o-toolbox.scss +2 -26
  192. package/widgets/widget-map/pipe/widget-map-legend-url.pipe.d.ts +1 -1
  193. package/widgets/widget-map/style/{_o-layer-legend.scss → _m-layer-legend.scss} +7 -8
  194. package/widgets/widget-map/style/_o-widget-map.scss +2 -2
  195. package/styles/components/_a-chips.scss +0 -15
  196. package/styles-theme/components-theme/_o-datasources.theme.scss +0 -41
@@ -341,7 +341,8 @@ const enTranslations$1 = {
341
341
  switchEdit: 'Edit',
342
342
  switchEditContent: 'Edit composition',
343
343
  share: 'Share',
344
- delete: 'Delete'
344
+ delete: 'Delete',
345
+ notInDsAttr: 'Unavailable attribute'
345
346
  },
346
347
  manifest: {
347
348
  name: 'Name',
@@ -561,6 +562,10 @@ const enTranslations$1 = {
561
562
  geoAuth: {
562
563
  failure: 'Geoserver error'
563
564
  }
565
+ },
566
+ grid: {
567
+ rows: 'Rows',
568
+ columns: 'Columns'
564
569
  }
565
570
  };
566
571
 
@@ -727,7 +732,8 @@ const frTranslations$1 = {
727
732
  switchEdit: 'Modifier',
728
733
  switchEditContent: 'Modifier la composition',
729
734
  share: 'Partager',
730
- delete: 'Supprimer'
735
+ delete: 'Supprimer',
736
+ notInDsAttr: 'Attribut indisponible'
731
737
  },
732
738
  manifest: {
733
739
  name: 'Nom',
@@ -946,6 +952,10 @@ const frTranslations$1 = {
946
952
  },
947
953
  geoAuth: {
948
954
  failure: 'Erreur geoserver'
955
+ },
956
+ grid: {
957
+ rows: 'Lignes',
958
+ columns: 'Colonnes'
949
959
  }
950
960
  }
951
961
  };
@@ -1256,11 +1266,11 @@ class BaseToolboxActionComponent {
1256
1266
  this._cd.markForCheck();
1257
1267
  }
1258
1268
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxActionComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1259
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseToolboxActionComponent, selector: "pry-base-toolbox-action", inputs: { baseToolboxTranslation: "baseToolboxTranslation", action: "action", iconAction: "iconAction" }, ngImport: i0, template: "<ng-container *ngIf=\"action\">\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngIf=\"!iconAction; else iconActionTpl\">\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ baseToolboxTranslation + action.label | i18n }}\n <pry-icon *ngIf=\"action.actions\" iconSvg=\"fleche_bas\"></pry-icon>\n </ng-container>\n <ng-template #iconActionTpl>\n <pry-icon\n *ngIf=\"action.icon\"\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n </ng-template>\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <ng-container *ngFor=\"let act of action.actions\">\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2.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: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1269
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseToolboxActionComponent, selector: "pry-base-toolbox-action", inputs: { baseToolboxTranslation: "baseToolboxTranslation", action: "action", iconAction: "iconAction" }, ngImport: i0, template: "<ng-container *ngIf=\"action\">\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngIf=\"!iconAction; else iconActionTpl\">\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\" [height]=\"20\" [width]=\"20\"></pry-icon>\n {{ baseToolboxTranslation + action.label | i18n }}\n <pry-icon *ngIf=\"action.actions\" iconSvg=\"fleche_bas\"></pry-icon>\n </ng-container>\n <ng-template #iconActionTpl>\n <pry-icon\n *ngIf=\"action.icon\"\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n </ng-template>\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <ng-container *ngFor=\"let act of action.actions\">\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2.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: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1260
1270
  }
1261
1271
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxActionComponent, decorators: [{
1262
1272
  type: Component,
1263
- args: [{ selector: 'pry-base-toolbox-action', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"action\">\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngIf=\"!iconAction; else iconActionTpl\">\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ baseToolboxTranslation + action.label | i18n }}\n <pry-icon *ngIf=\"action.actions\" iconSvg=\"fleche_bas\"></pry-icon>\n </ng-container>\n <ng-template #iconActionTpl>\n <pry-icon\n *ngIf=\"action.icon\"\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n </ng-template>\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <ng-container *ngFor=\"let act of action.actions\">\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</ng-container>\n" }]
1273
+ args: [{ selector: 'pry-base-toolbox-action', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"action\">\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngIf=\"!iconAction; else iconActionTpl\">\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\" [height]=\"20\" [width]=\"20\"></pry-icon>\n {{ baseToolboxTranslation + action.label | i18n }}\n <pry-icon *ngIf=\"action.actions\" iconSvg=\"fleche_bas\"></pry-icon>\n </ng-container>\n <ng-template #iconActionTpl>\n <pry-icon\n *ngIf=\"action.icon\"\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n </ng-template>\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <ng-container *ngFor=\"let act of action.actions\">\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</ng-container>\n" }]
1264
1274
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { baseToolboxTranslation: [{
1265
1275
  type: Input
1266
1276
  }], action: [{
@@ -1865,8 +1875,9 @@ class ImageService {
1865
1875
  }
1866
1876
  getImage(path, externalUrl = false) {
1867
1877
  return this.store.select(ConfigSelectors.dataUrl).pipe(mergeMap((url) => {
1878
+ const calculatedPath = externalUrl ? path : `${url}/file/icons/${path}`;
1868
1879
  return this.httpClient
1869
- .get(encodeURI(externalUrl ? path : `${url}/file/icons/${path}`), {
1880
+ .get(encodeURI(calculatedPath), {
1870
1881
  observe: 'response',
1871
1882
  responseType: 'blob'
1872
1883
  })
@@ -1878,7 +1889,7 @@ class ImageService {
1878
1889
  url: this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(response.body))
1879
1890
  };
1880
1891
  }
1881
- throw { type: 'unknown', error: 'unknown doc type' };
1892
+ throw new Error(`Getting ${header} when asked for an image on url ${calculatedPath}`);
1882
1893
  }));
1883
1894
  }));
1884
1895
  }
@@ -2791,11 +2802,11 @@ class PryDialogConfirmComponent {
2791
2802
  this.cross.nativeElement.focus();
2792
2803
  }
2793
2804
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogConfirmComponent, deps: [{ token: PryDialogRef }, { token: PRY_DIALOG_DATA }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
2794
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryDialogConfirmComponent, selector: "pry-dialog-confirm", viewQueries: [{ propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "buttonAction", first: true, predicate: ["buttonAction"], descendants: true }], ngImport: i0, template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n>\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 {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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>\n <p *ngIf=\"data?.message as message\" class=\"a-p\">{{ message | i18n }}</p>\n </div>\n <div class=\"m-btn-group\">\n <ng-container *ngFor=\"let action of data.actions\" #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [class.a-btn--tertiary]=\"action.color === 'tertiary'\"\n [class.a-btn--ghost]=\"action.color === 'ghost'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ action.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
2805
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryDialogConfirmComponent, selector: "pry-dialog-confirm", viewQueries: [{ propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "buttonAction", first: true, predicate: ["buttonAction"], descendants: true }], ngImport: i0, template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n>\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 {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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>\n <p *ngIf=\"data?.message as message\" class=\"a-p\">{{ message | i18n }}</p>\n </div>\n <div class=\"m-btn-group\">\n <ng-container *ngFor=\"let action of data.actions\" #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ action.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
2795
2806
  }
2796
2807
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogConfirmComponent, decorators: [{
2797
2808
  type: Component,
2798
- args: [{ selector: 'pry-dialog-confirm', template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n>\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 {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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>\n <p *ngIf=\"data?.message as message\" class=\"a-p\">{{ message | i18n }}</p>\n </div>\n <div class=\"m-btn-group\">\n <ng-container *ngFor=\"let action of data.actions\" #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [class.a-btn--tertiary]=\"action.color === 'tertiary'\"\n [class.a-btn--ghost]=\"action.color === 'ghost'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ action.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
2809
+ args: [{ selector: 'pry-dialog-confirm', template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n>\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 {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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>\n <p *ngIf=\"data?.message as message\" class=\"a-p\">{{ message | i18n }}</p>\n </div>\n <div class=\"m-btn-group\">\n <ng-container *ngFor=\"let action of data.actions\" #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ action.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
2799
2810
  }], ctorParameters: function () { return [{ type: PryDialogRef }, { type: undefined, decorators: [{
2800
2811
  type: Inject,
2801
2812
  args: [PRY_DIALOG_DATA]
@@ -5147,7 +5158,11 @@ class ChipsSelectorComponent extends SubscriptionnerDirective {
5147
5158
  const labelTranslated = this.itemTranslationStringBase
5148
5159
  ? this.i18n.instant(this.itemTranslationStringBase + label)
5149
5160
  : label;
5150
- return labelTranslated.startsWith(this.itemTranslationStringBase) ? label : labelTranslated;
5161
+ return typeof labelTranslated === 'string'
5162
+ ? labelTranslated.startsWith(this.itemTranslationStringBase)
5163
+ ? label
5164
+ : labelTranslated
5165
+ : '--object--';
5151
5166
  }
5152
5167
  areItemsEqual(item1, item2) {
5153
5168
  return this.getItemValue(item1) === this.getItemValue(item2);
@@ -5158,11 +5173,11 @@ class ChipsSelectorComponent extends SubscriptionnerDirective {
5158
5173
  : this.usedItems$.getValue().find((usedItem) => this.areItemsEqual(usedItem, item));
5159
5174
  }
5160
5175
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsSelectorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
5161
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipsSelectorComponent, selector: "pry-chips-selector", inputs: { bindValue: "bindValue", bindLabel: "bindLabel", translationStringBase: "translationStringBase", itemTranslationStringBase: "itemTranslationStringBase", showActionButtons: "showActionButtons", items: "items", usedItems: "usedItems" }, outputs: { cancel: "cancel", validated: "validated", previousTab: "previousTab", nextTab: "nextTab", itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card -selected\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'unselectItem' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-datasources__main\">\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-datasources__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
5176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipsSelectorComponent, selector: "pry-chips-selector", inputs: { bindValue: "bindValue", bindLabel: "bindLabel", translationStringBase: "translationStringBase", itemTranslationStringBase: "itemTranslationStringBase", showActionButtons: "showActionButtons", items: "items", usedItems: "usedItems" }, outputs: { cancel: "cancel", validated: "validated", previousTab: "previousTab", nextTab: "nextTab", itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-chips-selector__list o-chips-selector__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-chips-selector__main\">\n <ul class=\"o-chips-selector__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-chips-selector__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
5162
5177
  }
5163
5178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsSelectorComponent, decorators: [{
5164
5179
  type: Component,
5165
- args: [{ selector: 'pry-chips-selector', template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card -selected\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'unselectItem' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-datasources__main\">\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-datasources__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n" }]
5180
+ args: [{ selector: 'pry-chips-selector', template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-chips-selector__list o-chips-selector__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-chips-selector__main\">\n <ul class=\"o-chips-selector__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-chips-selector__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n" }]
5166
5181
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: PryI18nService }]; }, propDecorators: { bindValue: [{
5167
5182
  type: Input
5168
5183
  }], bindLabel: [{
@@ -5565,8 +5580,8 @@ class ResultsetUtils {
5565
5580
  });
5566
5581
  const uniqueRelations = [
5567
5582
  ...new Set([
5568
- ...rs1Copy.relations.map((rel) => `${rel.relationType}|${rel.source}|${rel.destination}`),
5569
- ...rs2.relations.map((rel) => `${rel.relationType}|${rel.source}|${rel.destination}`)
5583
+ ...(rs1Copy.relations ?? []).map((rel) => `${rel.relationType}|${rel.source}|${rel.destination}`),
5584
+ ...(rs2.relations ?? []).map((rel) => `${rel.relationType}|${rel.source}|${rel.destination}`)
5570
5585
  ])
5571
5586
  ];
5572
5587
  rs1Copy.relations = uniqueRelations.map((key) => {
@@ -6858,7 +6873,7 @@ class PrySelectComponent extends SubscriptionnerDirective {
6858
6873
  this.isForm = false;
6859
6874
  this.readonly = false;
6860
6875
  this.autocomplete = false;
6861
- this.iconSize = [14, 14];
6876
+ this.iconSize = [10, 16];
6862
6877
  this.i18nPrefix = null;
6863
6878
  this.searched = new EventEmitter();
6864
6879
  this.cleared = new EventEmitter();
@@ -6928,7 +6943,13 @@ class PrySelectComponent extends SubscriptionnerDirective {
6928
6943
  const keyProp = this.bindValue ?? this.bindLabel ?? 'id';
6929
6944
  this.writeValue(this.value$
6930
6945
  .getValue()
6931
- .filter((i) => (typeof itemValue === 'object' ? i[keyProp] !== itemValue[keyProp] : i !== itemValue)));
6946
+ .filter((i) => typeof itemValue === 'object'
6947
+ ? typeof i === 'object'
6948
+ ? i[keyProp] !== itemValue[keyProp]
6949
+ : i !== itemValue[keyProp]
6950
+ : typeof i === 'object'
6951
+ ? i[keyProp] !== itemValue
6952
+ : i !== itemValue));
6932
6953
  }
6933
6954
  clearAll($event) {
6934
6955
  $event.stopPropagation();
@@ -6957,9 +6978,12 @@ class PrySelectComponent extends SubscriptionnerDirective {
6957
6978
  if (typeof itemValue === 'object'
6958
6979
  ? this.value$
6959
6980
  .getValue()
6960
- .map((val) => val[keyProp])
6981
+ .map((val) => (typeof val === 'object' ? val[keyProp] : val))
6961
6982
  .includes(itemValue[keyProp])
6962
- : this.value$.getValue().includes(itemValue)) {
6983
+ : this.value$
6984
+ .getValue()
6985
+ .map((val) => (typeof val === 'object' ? val[keyProp] : val))
6986
+ .includes(itemValue)) {
6963
6987
  this.clear($event, item);
6964
6988
  }
6965
6989
  else {
@@ -7044,14 +7068,14 @@ class PrySelectComponent extends SubscriptionnerDirective {
7044
7068
  return this.elementRef ?? this.selectElement.nativeElement;
7045
7069
  }
7046
7070
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: SelectA11yService }], target: i0.ɵɵFactoryTarget.Component }); }
7047
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySelectComponent, selector: "pry-select", inputs: { items: "items", clearable: "clearable", multiple: "multiple", closeOnSelect: "closeOnSelect", placeholder: "placeholder", isForm: "isForm", required: "required", name: "name", readonly: "readonly", autocomplete: "autocomplete", bindValue: "bindValue", bindLabel: "bindLabel", iconSize: "iconSize", bindIcon: "bindIcon", template: "template", i18nPrefix: "i18nPrefix", loading: "loading", elementRef: "elementRef" }, outputs: { searched: "searched", cleared: "cleared" }, providers: [
7071
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySelectComponent, selector: "pry-select", inputs: { items: "items", clearable: "clearable", multiple: "multiple", closeOnSelect: "closeOnSelect", placeholder: "placeholder", isForm: "isForm", required: "required", name: "name", readonly: "readonly", autocomplete: "autocomplete", bindValue: "bindValue", bindLabel: "bindLabel", iconSize: "iconSize", bindIcon: "bindIcon", template: "template", i18nPrefix: "i18nPrefix", bindClasses: "bindClasses", loading: "loading", elementRef: "elementRef" }, outputs: { searched: "searched", cleared: "cleared" }, providers: [
7048
7072
  {
7049
7073
  provide: NG_VALUE_ACCESSOR,
7050
7074
  useExisting: forwardRef(() => PrySelectComponent),
7051
7075
  multi: true
7052
7076
  },
7053
7077
  SelectA11yService
7054
- ], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
7078
+ ], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
7055
7079
  }
7056
7080
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, decorators: [{
7057
7081
  type: Component,
@@ -7062,7 +7086,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
7062
7086
  multi: true
7063
7087
  },
7064
7088
  SelectA11yService
7065
- ], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
7089
+ ], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
7066
7090
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: SelectA11yService }]; }, propDecorators: { items: [{
7067
7091
  type: Input
7068
7092
  }], clearable: [{
@@ -7099,6 +7123,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
7099
7123
  type: Output
7100
7124
  }], cleared: [{
7101
7125
  type: Output
7126
+ }], bindClasses: [{
7127
+ type: Input
7102
7128
  }], loading: [{
7103
7129
  type: Input
7104
7130
  }], optionsModal: [{
@@ -7303,7 +7329,7 @@ class PryShareComponent {
7303
7329
  useExisting: forwardRef(() => PryShareComponent),
7304
7330
  multi: true
7305
7331
  }
7306
- ], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueType($event)\"\n [items]=\"visibilityTypes\"\n [ngModel]=\"value?.type\"\n [disabled]=\"_disabled\"\n i18nPrefix=\"@pry.share.\"\n bindValue=\"value\"\n bindLabel=\"label\"\n id=\"share_type\"\n bindIcon=\"icon\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n\n<ng-container *ngIf=\"value?.type === PryVisibilityType.RESTRICTED\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"users\">{{ '@pry.share.users' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueUsers($event)\"\n [items]=\"users$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"value?.users\"\n [disabled]=\"_disabled\"\n [bindLabel]=\"labelProperty\"\n [bindValue]=\"valueProperty\"\n [autocomplete]=\"true\"\n id=\"users\"\n ></pry-select>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7332
+ ], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueType($event)\"\n [items]=\"visibilityTypes\"\n [ngModel]=\"value?.type\"\n [disabled]=\"_disabled\"\n i18nPrefix=\"@pry.share.\"\n bindValue=\"value\"\n bindLabel=\"label\"\n id=\"share_type\"\n bindIcon=\"icon\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n\n<ng-container *ngIf=\"value?.type === PryVisibilityType.RESTRICTED\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"users\">{{ '@pry.share.users' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueUsers($event)\"\n [items]=\"users$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"value?.users\"\n [disabled]=\"_disabled\"\n [bindLabel]=\"labelProperty\"\n [bindValue]=\"valueProperty\"\n [autocomplete]=\"true\"\n id=\"users\"\n ></pry-select>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: 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: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7307
7333
  }
7308
7334
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareComponent, decorators: [{
7309
7335
  type: Component,
@@ -8148,11 +8174,11 @@ class PryObjectEditionComponent extends SubscriptionnerDirective {
8148
8174
  this.inversion = !this.inversion;
8149
8175
  }
8150
8176
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
8151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.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: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
8177
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.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: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: 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: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
8152
8178
  }
8153
8179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, decorators: [{
8154
8180
  type: Component,
8155
- args: [{ selector: 'pry-object-creation', template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
8181
+ args: [{ selector: 'pry-object-creation', template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
8156
8182
  }], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i1.Store }]; }, propDecorators: { link: [{
8157
8183
  type: Input
8158
8184
  }], object: [{
@@ -8822,11 +8848,11 @@ class DashboardComponent extends SubscriptionnerDirective {
8822
8848
  }));
8823
8849
  }
8824
8850
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
8825
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", forceModeEdition: "forceModeEdition", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions", noBackground: "noBackground", breakpoint: "breakpoint" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n [style.padding]=\"'0 ' + dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container *ngIf=\"modeEdition$ | async\">\n <div class=\"o-dashboard-add -rows\" [style.height.px]=\"this.params.gridHeight\">\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"changeSize('rows', -1)\">\n <pry-icon iconSvg=\"contract-left\" [width]=\"16\" [height]=\"16\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"changeSize('rows', +1)\">\n <pry-icon iconSvg=\"expand-right\" [width]=\"16\" [height]=\"16\"></pry-icon>\n </button>\n </div>\n <div class=\"o-dashboard-add -cols\" [style.width.px]=\"this.params.gridWidth\">\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"changeSize('columns', -1)\">\n <pry-icon iconSvg=\"contract-left\" [width]=\"16\" [height]=\"16\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"changeSize('columns', +1)\">\n <pry-icon iconSvg=\"expand-right\" [width]=\"16\" [height]=\"16\"></pry-icon>\n </button>\n </div>\n </ng-container>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!noBackground\">\n <ng-container\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div *ngIf=\"data.globalLoading; else notLoading\" class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </ng-container>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\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.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: ContextMenuComponent, selector: "pry-context-menu" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
8851
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", forceModeEdition: "forceModeEdition", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions", noBackground: "noBackground", breakpoint: "breakpoint" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-dashboard-edit\" [class.-edit]=\"modeEdition$ | async\">\n <div class=\"o-dashboard-add -rows\">\n <button (click)=\"changeSize('rows', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('rows', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <p>{{ '@pry.grid.rows' | i18n }}</p>\n </div>\n <div class=\"o-dashboard-add -cols\">\n <p>{{ '@pry.grid.columns' | i18n }}</p>\n <button (click)=\"changeSize('columns', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('columns', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n </div>\n <div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n >\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!noBackground\">\n <ng-container\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div\n *ngIf=\"data.globalLoading; else notLoading\"\n class=\"no-widget\"\n [style.grid-area]=\"backgroundArea$ | async\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\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.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: ContextMenuComponent, selector: "pry-context-menu" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
8826
8852
  }
8827
8853
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, decorators: [{
8828
8854
  type: Component,
8829
- args: [{ selector: 'pry-dashboard', template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n [style.padding]=\"'0 ' + dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container *ngIf=\"modeEdition$ | async\">\n <div class=\"o-dashboard-add -rows\" [style.height.px]=\"this.params.gridHeight\">\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"changeSize('rows', -1)\">\n <pry-icon iconSvg=\"contract-left\" [width]=\"16\" [height]=\"16\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"changeSize('rows', +1)\">\n <pry-icon iconSvg=\"expand-right\" [width]=\"16\" [height]=\"16\"></pry-icon>\n </button>\n </div>\n <div class=\"o-dashboard-add -cols\" [style.width.px]=\"this.params.gridWidth\">\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"changeSize('columns', -1)\">\n <pry-icon iconSvg=\"contract-left\" [width]=\"16\" [height]=\"16\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"changeSize('columns', +1)\">\n <pry-icon iconSvg=\"expand-right\" [width]=\"16\" [height]=\"16\"></pry-icon>\n </button>\n </div>\n </ng-container>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!noBackground\">\n <ng-container\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div *ngIf=\"data.globalLoading; else notLoading\" class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </ng-container>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\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.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
8855
+ args: [{ selector: 'pry-dashboard', template: "<div class=\"o-dashboard-edit\" [class.-edit]=\"modeEdition$ | async\">\n <div class=\"o-dashboard-add -rows\">\n <button (click)=\"changeSize('rows', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('rows', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <p>{{ '@pry.grid.rows' | i18n }}</p>\n </div>\n <div class=\"o-dashboard-add -cols\">\n <p>{{ '@pry.grid.columns' | i18n }}</p>\n <button (click)=\"changeSize('columns', -1)\">\n <pry-icon iconSvg=\"remove\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n <button (click)=\"changeSize('columns', +1)\">\n <pry-icon iconSvg=\"add\" [width]=\"12\" [height]=\"12\"></pry-icon>\n </button>\n </div>\n <div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n >\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!noBackground\">\n <ng-container\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div\n *ngIf=\"data.globalLoading; else notLoading\"\n class=\"no-widget\"\n [style.grid-area]=\"backgroundArea$ | async\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\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.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
8830
8856
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
8831
8857
  type: ViewChild,
8832
8858
  args: ['templateModal', { read: TemplateRef }]
@@ -9539,11 +9565,11 @@ class DatasourceSelectorComponent extends ChipsSelectorComponent {
9539
9565
  }));
9540
9566
  }
9541
9567
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatasourceSelectorComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
9542
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { usedItems: "usedItems", manifest: "manifest" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card -selected\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'unselectItem' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-datasources__main\">\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-datasources__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
9568
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { usedItems: "usedItems", manifest: "manifest" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-chips-selector__list o-chips-selector__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-chips-selector__main\">\n <ul class=\"o-chips-selector__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-chips-selector__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
9543
9569
  }
9544
9570
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatasourceSelectorComponent, decorators: [{
9545
9571
  type: Component,
9546
- args: [{ selector: 'pry-datasource-selector', template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card -selected\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'unselectItem' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-datasources__main\">\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-datasources__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n" }]
9572
+ args: [{ selector: 'pry-datasource-selector', template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-chips-selector__list o-chips-selector__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-chips-selector__main\">\n <ul class=\"o-chips-selector__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-chips-selector__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n" }]
9547
9573
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }, { type: PryI18nService }]; }, propDecorators: { usedItems: [{
9548
9574
  type: Input
9549
9575
  }], manifest: [{
@@ -10425,11 +10451,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
10425
10451
 
10426
10452
  class PryFilterGroupCssComponent {
10427
10453
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryFilterGroupCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10428
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryFilterGroupCssComponent, selector: "pry-filter-group-css", ngImport: i0, template: '', isInline: true, styles: [".o-container{height:100%}.o-container__filters{display:flex;padding:.5rem .625rem;max-height:50px;gap:.625rem}.o-container__filter-container{display:flex;justify-content:flex-start;margin-bottom:-.3125rem;max-height:50px;padding:.25rem 0;overflow-x:auto;overflow-y:hidden}.o-container__filter-actions{display:flex;align-items:center;gap:.625rem;padding:0 .625rem}\n"], encapsulation: i0.ViewEncapsulation.None }); }
10454
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryFilterGroupCssComponent, selector: "pry-filter-group-css", ngImport: i0, template: '', isInline: true, styles: [".o-container{height:100%}.o-container__filters{display:flex;padding:.5rem .625rem;max-height:50px;gap:.625rem}.o-container__filter-container{display:flex;justify-content:flex-start;margin-bottom:-.3125rem;max-height:50px;padding:.25rem 0;overflow-x:auto;overflow-y:hidden}.o-container__filter-actions{display:flex;align-items:center;gap:.9375rem;padding:0 .625rem}\n"], encapsulation: i0.ViewEncapsulation.None }); }
10429
10455
  }
10430
10456
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryFilterGroupCssComponent, decorators: [{
10431
10457
  type: Component,
10432
- args: [{ selector: 'pry-filter-group-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-container{height:100%}.o-container__filters{display:flex;padding:.5rem .625rem;max-height:50px;gap:.625rem}.o-container__filter-container{display:flex;justify-content:flex-start;margin-bottom:-.3125rem;max-height:50px;padding:.25rem 0;overflow-x:auto;overflow-y:hidden}.o-container__filter-actions{display:flex;align-items:center;gap:.625rem;padding:0 .625rem}\n"] }]
10458
+ args: [{ selector: 'pry-filter-group-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-container{height:100%}.o-container__filters{display:flex;padding:.5rem .625rem;max-height:50px;gap:.625rem}.o-container__filter-container{display:flex;justify-content:flex-start;margin-bottom:-.3125rem;max-height:50px;padding:.25rem 0;overflow-x:auto;overflow-y:hidden}.o-container__filter-actions{display:flex;align-items:center;gap:.9375rem;padding:0 .625rem}\n"] }]
10433
10459
  }] });
10434
10460
 
10435
10461
  class FilterGroupComponent {
@@ -10454,11 +10480,11 @@ class FilterGroupComponent {
10454
10480
  ?.contains(document.querySelector('ng-dropdown-panel.ng-dropdown-panel')) || false;
10455
10481
  }
10456
10482
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterGroupComponent, deps: [{ token: i1.Store }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
10457
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterGroupComponent, selector: "pry-filter-group", ngImport: i0, template: "<pry-filter-group-css></pry-filter-group-css>\n<ng-container *ngIf=\"globalManifest$ | async as manifest\">\n <div class=\"o-container__filters\" *ngIf=\"manifest.filters && manifest.filters.length > 0\">\n <div class=\"o-container__filter-container\" (click)=\"openSelect()\">\n <pry-filter-instanciator\n *ngFor=\"let filter of manifest.filters\"\n [filter]=\"filter\"\n [applyFilter$]=\"apply$\"\n ></pry-filter-instanciator>\n </div>\n <div class=\"o-container__filter-actions\">\n <button type=\"button\" class=\"a-btn a-btn--secondary a-btn--icon-only -size-md\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary -size-md\" (click)=\"filter()\">\n {{ '@pry.toolbox.filter' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\"></pry-icon>\n </button>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: FilterInstanciatorComponent, selector: "pry-filter-instanciator", inputs: ["filter", "applyFilter$"] }, { kind: "component", type: PryFilterGroupCssComponent, selector: "pry-filter-group-css" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
10483
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterGroupComponent, selector: "pry-filter-group", ngImport: i0, template: "<pry-filter-group-css></pry-filter-group-css>\n<ng-container *ngIf=\"globalManifest$ | async as manifest\">\n <div class=\"o-container__filters\" *ngIf=\"manifest.filters && manifest.filters.length > 0\">\n <div class=\"o-container__filter-container\" (click)=\"openSelect()\">\n <pry-filter-instanciator\n *ngFor=\"let filter of manifest.filters\"\n [filter]=\"filter\"\n [applyFilter$]=\"apply$\"\n ></pry-filter-instanciator>\n </div>\n <div class=\"o-container__filter-actions\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"filter()\">\n {{ '@pry.toolbox.filter' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: FilterInstanciatorComponent, selector: "pry-filter-instanciator", inputs: ["filter", "applyFilter$"] }, { kind: "component", type: PryFilterGroupCssComponent, selector: "pry-filter-group-css" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
10458
10484
  }
10459
10485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterGroupComponent, decorators: [{
10460
10486
  type: Component,
10461
- args: [{ selector: 'pry-filter-group', template: "<pry-filter-group-css></pry-filter-group-css>\n<ng-container *ngIf=\"globalManifest$ | async as manifest\">\n <div class=\"o-container__filters\" *ngIf=\"manifest.filters && manifest.filters.length > 0\">\n <div class=\"o-container__filter-container\" (click)=\"openSelect()\">\n <pry-filter-instanciator\n *ngFor=\"let filter of manifest.filters\"\n [filter]=\"filter\"\n [applyFilter$]=\"apply$\"\n ></pry-filter-instanciator>\n </div>\n <div class=\"o-container__filter-actions\">\n <button type=\"button\" class=\"a-btn a-btn--secondary a-btn--icon-only -size-md\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary -size-md\" (click)=\"filter()\">\n {{ '@pry.toolbox.filter' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\"></pry-icon>\n </button>\n </div>\n </div>\n</ng-container>\n" }]
10487
+ args: [{ selector: 'pry-filter-group', template: "<pry-filter-group-css></pry-filter-group-css>\n<ng-container *ngIf=\"globalManifest$ | async as manifest\">\n <div class=\"o-container__filters\" *ngIf=\"manifest.filters && manifest.filters.length > 0\">\n <div class=\"o-container__filter-container\" (click)=\"openSelect()\">\n <pry-filter-instanciator\n *ngFor=\"let filter of manifest.filters\"\n [filter]=\"filter\"\n [applyFilter$]=\"apply$\"\n ></pry-filter-instanciator>\n </div>\n <div class=\"o-container__filter-actions\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"filter()\">\n {{ '@pry.toolbox.filter' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n </div>\n</ng-container>\n" }]
10462
10488
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: Document, decorators: [{
10463
10489
  type: Inject,
10464
10490
  args: [DOCUMENT]
@@ -12245,11 +12271,11 @@ class PryAboutComponent {
12245
12271
  return !!value && (!!backVersion.chartVersion || !!frontVersion.libVersion);
12246
12272
  }
12247
12273
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, deps: [{ token: i1.Store }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
12248
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryAboutComponent, selector: "pry-about", inputs: { tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chips -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
12274
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryAboutComponent, selector: "pry-about", inputs: { tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chip -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
12249
12275
  }
12250
12276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, decorators: [{
12251
12277
  type: Component,
12252
- args: [{ selector: 'pry-about', template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chips -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
12278
+ args: [{ selector: 'pry-about', template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chip -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
12253
12279
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: PryI18nService }]; }, propDecorators: { tooltipPosition: [{
12254
12280
  type: Input
12255
12281
  }] } });