@provoly/dashboard 1.1.7 → 1.1.9

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 (101) hide show
  1. package/admin/admin.module.d.ts +1 -1
  2. package/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.d.ts +3 -2
  3. package/admin/components/admin-dataset/store/admin-dataset.actions.d.ts +76 -0
  4. package/admin/components/admin-dataset/store/admin-dataset.effects.d.ts +71 -0
  5. package/admin/components/admin-dataset/store/admin-dataset.reducer.d.ts +10 -0
  6. package/admin/components/admin-dataset/store/admin-dataset.selectors.d.ts +10 -0
  7. package/admin/components/admin-dataset/store/admin-dataset.service.d.ts +20 -0
  8. package/admin/store/admin.effects.d.ts +1 -14
  9. package/components/metadata-editor/store/metadata.effects.d.ts +1 -23
  10. package/components/stepper/stepper.component.d.ts +2 -1
  11. package/esm2022/admin/admin.module.mjs +8 -2
  12. package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +8 -6
  13. package/esm2022/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.mjs +5 -4
  14. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +11 -9
  15. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +4 -3
  16. package/esm2022/admin/components/admin-dataset/store/admin-dataset.actions.mjs +17 -0
  17. package/esm2022/admin/components/admin-dataset/store/admin-dataset.effects.mjs +104 -0
  18. package/esm2022/admin/components/admin-dataset/store/admin-dataset.reducer.mjs +29 -0
  19. package/esm2022/admin/components/admin-dataset/store/admin-dataset.selectors.mjs +19 -0
  20. package/esm2022/admin/components/admin-dataset/store/admin-dataset.service.mjs +56 -0
  21. package/esm2022/admin/store/admin.effects.mjs +9 -36
  22. package/esm2022/components/metadata-editor/store/metadata.effects.mjs +4 -23
  23. package/esm2022/components/stepper/stepper.component.mjs +11 -8
  24. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +1 -1
  25. package/esm2022/import/components/import.component.mjs +101 -61
  26. package/esm2022/import/i18n/en.translations.mjs +3 -2
  27. package/esm2022/import/i18n/fr.translations.mjs +3 -2
  28. package/esm2022/import/style/css.component.mjs +2 -2
  29. package/esm2022/lib/core/access/access.service.mjs +4 -1
  30. package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +23 -10
  31. package/esm2022/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.mjs +92 -0
  32. package/esm2022/lib/core/components/share/share.module.mjs +39 -6
  33. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -2
  34. package/esm2022/lib/core/model/filter.interface.mjs +1 -1
  35. package/esm2022/lib/core/public-api.mjs +2 -1
  36. package/esm2022/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.mjs +52 -47
  37. package/esm2022/lib/core/store/data-source/data-source.actions.mjs +1 -15
  38. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +1 -39
  39. package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +8 -29
  40. package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +1 -9
  41. package/esm2022/lib/core/store/data-source/data-source.service.mjs +1 -36
  42. package/esm2022/presentation/components/presentation.component.mjs +14 -92
  43. package/esm2022/restitution/components/restitution/restitution.component.mjs +4 -3
  44. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +10 -23
  45. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +4 -16
  46. package/esm2022/restitution/i18n/en.translations.mjs +2 -1
  47. package/esm2022/restitution/i18n/fr.translations.mjs +2 -1
  48. package/esm2022/restitution/style/css.component.mjs +2 -2
  49. package/esm2022/toolbox/components/edit-mode-action/edit-mode-action.component.mjs +1 -1
  50. package/esm2022/toolbox/components/save-view/save-view.component.mjs +1 -1
  51. package/esm2022/toolbox/components/share/share.component.mjs +18 -75
  52. package/esm2022/toolbox/components/toolbox-action/toolbox-action.component.mjs +7 -4
  53. package/esm2022/toolbox/toolbox.model.mjs +2 -2
  54. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +2 -2
  55. package/fesm2022/provoly-dashboard-admin.mjs +216 -37
  56. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  57. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -21
  58. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  59. package/fesm2022/provoly-dashboard-components-stepper.mjs +10 -7
  60. package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -1
  61. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  62. package/fesm2022/provoly-dashboard-import.mjs +106 -65
  63. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  64. package/fesm2022/provoly-dashboard-presentation.mjs +13 -91
  65. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  66. package/fesm2022/provoly-dashboard-restitution.mjs +13 -34
  67. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  68. package/fesm2022/provoly-dashboard-toolbox.mjs +33 -82
  69. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  70. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +1 -1
  71. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  72. package/fesm2022/provoly-dashboard.mjs +206 -194
  73. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  74. package/import/components/import.component.d.ts +31 -18
  75. package/import/i18n/en.translations.d.ts +2 -1
  76. package/import/i18n/fr.translations.d.ts +2 -1
  77. package/import/style/_o-import.scss +16 -29
  78. package/lib/core/access/access.service.d.ts +2 -0
  79. package/lib/core/components/share/access-rights-share/access-rights-share.component.d.ts +5 -2
  80. package/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.d.ts +34 -0
  81. package/lib/core/components/share/share.module.d.ts +9 -8
  82. package/lib/core/model/filter.interface.d.ts +1 -1
  83. package/lib/core/public-api.d.ts +1 -0
  84. package/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.d.ts +1 -1
  85. package/lib/core/store/data-source/data-source.actions.d.ts +1 -91
  86. package/lib/core/store/data-source/data-source.effects.d.ts +2 -30
  87. package/lib/core/store/data-source/data-source.reducer.d.ts +0 -3
  88. package/lib/core/store/data-source/data-source.selectors.d.ts +0 -4
  89. package/lib/core/store/data-source/data-source.service.d.ts +0 -9
  90. package/package.json +19 -19
  91. package/presentation/components/presentation.component.d.ts +4 -18
  92. package/restitution/components/restitution/restitution.component.d.ts +1 -0
  93. package/restitution/components/restitution-list/restitution-list.component.d.ts +3 -9
  94. package/restitution/components/restitution-list-item/restitution-list-item.component.d.ts +1 -4
  95. package/restitution/i18n/en.translations.d.ts +1 -0
  96. package/restitution/i18n/fr.translations.d.ts +1 -0
  97. package/restitution/style/_o-restitution-list.scss +0 -11
  98. package/styles/components/_o-modal.scss +1 -1
  99. package/styles-theme/components-theme/_o-restitution-list.theme.scss +0 -9
  100. package/toolbox/components/share/share.component.d.ts +4 -22
  101. package/toolbox/components/toolbox-action/toolbox-action.component.d.ts +3 -1
@@ -22,11 +22,11 @@ import { v4 } from 'uuid';
22
22
 
23
23
  class PryCatalogCssComponent {
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryCatalogCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryCatalogCssComponent, selector: "pry-restitution-css", ngImport: i0, template: '', isInline: true, styles: [".o-catalog__filters__by-type__list,.o-catalog__list{margin:0;padding:0}.o-catalog__filters__by-type__list li,.o-catalog__list li{list-style:none}.o-catalog{display:flex;flex-direction:column;overflow:scroll;width:28.125rem;height:100%;padding:.9375rem;border-right-width:.0625rem;border-right-style:solid}.o-catalog .a-h2{padding-top:.625rem}.o-catalog pry-restitution{flex:1}.o-catalog__filters{padding-top:.3125rem}.o-catalog__filters__by-name{position:relative;margin-bottom:1.25rem}.o-catalog__filters__by-name .a-icon{position:absolute;left:.6875rem;bottom:.5625rem;pointer-events:none}.o-catalog__filters__by-name .a-form-field{width:60%;padding-left:2.1875rem}.o-catalog__filters__by-type{display:flex;flex-wrap:wrap;column-gap:1.25rem}.o-catalog__filters__by-type__list{display:flex;gap:.3125rem}.o-catalog__filters__by-type__list li{width:2.1875rem;height:2.1875rem}.o-catalog__filters__by-type__list li .a-label{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;margin:0;border-width:.0625rem;border-style:solid;border-radius:.3125rem}.o-catalog__filters__by-type .a-btn.a-btn--icon-text.-link-like{margin-top:5px;font-weight:300;font-size:.8125rem}.o-catalog__filters__by-type .a-btn.a-btn--icon-text.-link-like[disabled]{opacity:0}.o-catalog .is-point{cursor:default}.o-catalog__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.9375rem;justify-content:space-around;padding:1.875rem 0}.o-catalog__list__icon{cursor:pointer}.o-catalog__list pry-catalog-item{max-height:13.125rem}.o-catalog__list__item{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;max-width:8.125rem;height:100%;text-align:center;cursor:move}.o-catalog__list__item .is-private{position:absolute;top:.3125rem;left:.3125rem}.o-catalog__list__item img{margin-top:.625rem}.o-catalog__list__item img.is-full-width{width:100%;height:30%;object-fit:cover}.o-catalog__list__item .a-btn--icon-only{margin-bottom:.6875rem;padding:.8125rem}.o-catalog__list__item__libelle{width:100%;margin-bottom:0;padding:.9375rem .625rem;word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o-catalog__list__item__action{width:100%;padding:.375rem .625rem;text-align:center}.o-catalog__list__item__action .a-btn--secondary{height:auto;padding:0 .3125rem}.o-catalog__create{align-self:center;width:fit-content;margin-bottom:1rem}.o-catalog .o-accordion pry-accordion-item:first-child .o-accordion__title{border-top-style:solid;border-top-width:.0625rem;margin-top:.625rem}\n", ".o-restitution{display:flex;flex-direction:column;flex:1;max-height:100%;width:100%}.o-restitution pry-stepper{display:flex;flex:1;max-height:100%}.o-restitution .widget-instanciator{position:relative;height:100%;margin-bottom:.9375rem}.o-restitution .m-btn-group.actions{margin-top:auto}\n", ".o-presentation{margin:0;padding:0}.o-presentation li{list-style:none}.o-manifest-layout__toolbox div:first-child{margin-left:auto}.o-manifest-layout__toolbox.-u-hidden{display:none}.o-manifest-layout__content{height:100%;overflow:auto}.o-manifest-layout__content .pointer{cursor:pointer}.pry-viewingpresentation{display:flex;overflow-y:scroll}.pry-viewingpresentation .o-manifest-layout__content,.pry-viewingpresentation .o-dashboard-widget{grid-area:middle;flex:100% 1 1}.o-presentation{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1.875rem;padding:.25rem .25rem 1.25rem;overflow-y:visible}.o-presentation .a-h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-presentation__item{display:flex;flex-direction:column;align-items:stretch}.o-presentation__item:hover{cursor:pointer}.o-presentation__item:hover .o-presentation__item__footer pry-icon{visibility:visible;opacity:1}.o-presentation__item__image{cursor:pointer;overflow:hidden;height:6.875rem;display:flex;align-items:center;justify-content:center}.o-presentation__item__image img{width:100px}.o-presentation__item__image .is-full-width{width:100%;height:100%;object-fit:cover}.o-presentation__item__header{position:relative;display:flex;align-items:flex-start;justify-content:center;height:6.875rem}.o-presentation__item__header pry-icon.is-private{position:absolute;top:.625rem;left:.625rem;z-index:1}.o-presentation__item__header .a-tooltip{width:100%}.o-presentation__item__txt{flex-grow:1;padding:.625rem .9375rem;display:flex;flex-direction:column;justify-content:space-between}.o-presentation__item__txt .a-h3{padding-bottom:.3125rem}.o-presentation__item__txt .a-p.-date{padding-top:.625rem;margin-bottom:0}.o-presentation__item__title-container.a-tooltip[data-tooltip]:after{top:calc(100% - 15px)}.o-presentation__item__description-container{position:relative;width:100%;display:flex;align-content:center;min-height:1.25rem}.o-presentation__item__description-container.a-tooltip[data-tooltip]:after{width:100%}.o-presentation__item__description{width:100%;max-height:2.5rem}.o-presentation__item__footer{display:flex;align-content:center;justify-content:center;font-size:.875rem;line-height:1.125rem;padding:.1875rem 0;max-height:2.3125rem}.o-presentation__item__footer .a-btn{margin-left:1.25rem}.o-presentation__item__footer pry-icon{visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear;margin-left:.1875rem}.o-presentation-consult{width:100%;padding:.9375rem}.more-button{position:absolute;top:.375rem;right:.625rem}.more-button .a-btn{padding:.125rem 0;border-radius:50%}.m-context-menu{position:absolute}.o-restitution-catalog .o-manifest-layout__toolbox{justify-content:space-between;align-items:center}.o-restitution-catalog .o-manifest-layout__content{display:flex;flex-direction:column}.o-restitution-catalog .o-manifest-layout__content .restitution{display:flex;flex:1;max-height:100%}.m-context-menu__list__item .a-btn{white-space:nowrap}\n"], encapsulation: i0.ViewEncapsulation.None }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryCatalogCssComponent, selector: "pry-restitution-css", ngImport: i0, template: '', isInline: true, styles: [".o-catalog__filters__by-type__list,.o-catalog__list{margin:0;padding:0}.o-catalog__filters__by-type__list li,.o-catalog__list li{list-style:none}.o-catalog{display:flex;flex-direction:column;overflow:scroll;width:28.125rem;height:100%;padding:.9375rem;border-right-width:.0625rem;border-right-style:solid}.o-catalog .a-h2{padding-top:.625rem}.o-catalog pry-restitution{flex:1}.o-catalog__filters{padding-top:.3125rem}.o-catalog__filters__by-name{position:relative;margin-bottom:1.25rem}.o-catalog__filters__by-name .a-icon{position:absolute;left:.6875rem;bottom:.5625rem;pointer-events:none}.o-catalog__filters__by-name .a-form-field{width:60%;padding-left:2.1875rem}.o-catalog__filters__by-type{display:flex;flex-wrap:wrap;column-gap:1.25rem}.o-catalog__filters__by-type__list{display:flex;gap:.3125rem}.o-catalog__filters__by-type__list li{width:2.1875rem;height:2.1875rem}.o-catalog__filters__by-type__list li .a-label{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;margin:0;border-width:.0625rem;border-style:solid;border-radius:.3125rem}.o-catalog__filters__by-type .a-btn.a-btn--icon-text.-link-like{margin-top:5px;font-weight:300;font-size:.8125rem}.o-catalog__filters__by-type .a-btn.a-btn--icon-text.-link-like[disabled]{opacity:0}.o-catalog .is-point{cursor:default}.o-catalog__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.9375rem;justify-content:space-around;padding:1.875rem 0}.o-catalog__list__icon{cursor:pointer}.o-catalog__list pry-catalog-item{max-height:13.125rem}.o-catalog__list__item{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;max-width:8.125rem;height:100%;text-align:center;cursor:move}.o-catalog__list__item .is-private{position:absolute;top:.3125rem;left:.3125rem}.o-catalog__list__item img{margin-top:.625rem}.o-catalog__list__item img.is-full-width{width:100%;height:30%;object-fit:cover}.o-catalog__list__item .a-btn--icon-only{margin-bottom:.6875rem;padding:.8125rem}.o-catalog__list__item__libelle{width:100%;margin-bottom:0;padding:.9375rem .625rem;word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o-catalog__create{align-self:center;width:fit-content;margin-bottom:1rem}.o-catalog .o-accordion pry-accordion-item:first-child .o-accordion__title{border-top-style:solid;border-top-width:.0625rem;margin-top:.625rem}\n", ".o-restitution{display:flex;flex-direction:column;flex:1;max-height:100%;width:100%}.o-restitution pry-stepper{display:flex;flex:1;max-height:100%}.o-restitution .widget-instanciator{position:relative;height:100%;margin-bottom:.9375rem}.o-restitution .m-btn-group.actions{margin-top:auto}\n", ".o-presentation{margin:0;padding:0}.o-presentation li{list-style:none}.o-manifest-layout__toolbox div:first-child{margin-left:auto}.o-manifest-layout__toolbox.-u-hidden{display:none}.o-manifest-layout__content{height:100%;overflow:auto}.o-manifest-layout__content .pointer{cursor:pointer}.pry-viewingpresentation{display:flex;overflow-y:scroll}.pry-viewingpresentation .o-manifest-layout__content,.pry-viewingpresentation .o-dashboard-widget{grid-area:middle;flex:100% 1 1}.o-presentation{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1.875rem;padding:.25rem .25rem 1.25rem;overflow-y:visible}.o-presentation .a-h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-presentation__item{display:flex;flex-direction:column;align-items:stretch}.o-presentation__item:hover{cursor:pointer}.o-presentation__item:hover .o-presentation__item__footer pry-icon{visibility:visible;opacity:1}.o-presentation__item__image{cursor:pointer;overflow:hidden;height:6.875rem;display:flex;align-items:center;justify-content:center}.o-presentation__item__image img{width:100px}.o-presentation__item__image .is-full-width{width:100%;height:100%;object-fit:cover}.o-presentation__item__header{position:relative;display:flex;align-items:flex-start;justify-content:center;height:6.875rem}.o-presentation__item__header pry-icon.is-private{position:absolute;top:.625rem;left:.625rem;z-index:1}.o-presentation__item__header .a-tooltip{width:100%}.o-presentation__item__txt{flex-grow:1;padding:.625rem .9375rem;display:flex;flex-direction:column;justify-content:space-between}.o-presentation__item__txt .a-h3{padding-bottom:.3125rem}.o-presentation__item__txt .a-p.-date{padding-top:.625rem;margin-bottom:0}.o-presentation__item__title-container.a-tooltip[data-tooltip]:after{top:calc(100% - 15px)}.o-presentation__item__description-container{position:relative;width:100%;display:flex;align-content:center;min-height:1.25rem}.o-presentation__item__description-container.a-tooltip[data-tooltip]:after{width:100%}.o-presentation__item__description{width:100%;max-height:2.5rem}.o-presentation__item__footer{display:flex;align-content:center;justify-content:center;font-size:.875rem;line-height:1.125rem;padding:.1875rem 0;max-height:2.3125rem}.o-presentation__item__footer .a-btn{margin-left:1.25rem}.o-presentation__item__footer pry-icon{visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear;margin-left:.1875rem}.o-presentation-consult{width:100%;padding:.9375rem}.more-button{position:absolute;top:.375rem;right:.625rem}.more-button .a-btn{padding:.125rem 0;border-radius:50%}.m-context-menu{position:absolute}.o-restitution-catalog .o-manifest-layout__toolbox{justify-content:space-between;align-items:center}.o-restitution-catalog .o-manifest-layout__content{display:flex;flex-direction:column}.o-restitution-catalog .o-manifest-layout__content .restitution{display:flex;flex:1;max-height:100%}.m-context-menu__list__item .a-btn{white-space:nowrap}\n"], encapsulation: i0.ViewEncapsulation.None }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryCatalogCssComponent, decorators: [{
28
28
  type: Component,
29
- args: [{ selector: 'pry-restitution-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-catalog__filters__by-type__list,.o-catalog__list{margin:0;padding:0}.o-catalog__filters__by-type__list li,.o-catalog__list li{list-style:none}.o-catalog{display:flex;flex-direction:column;overflow:scroll;width:28.125rem;height:100%;padding:.9375rem;border-right-width:.0625rem;border-right-style:solid}.o-catalog .a-h2{padding-top:.625rem}.o-catalog pry-restitution{flex:1}.o-catalog__filters{padding-top:.3125rem}.o-catalog__filters__by-name{position:relative;margin-bottom:1.25rem}.o-catalog__filters__by-name .a-icon{position:absolute;left:.6875rem;bottom:.5625rem;pointer-events:none}.o-catalog__filters__by-name .a-form-field{width:60%;padding-left:2.1875rem}.o-catalog__filters__by-type{display:flex;flex-wrap:wrap;column-gap:1.25rem}.o-catalog__filters__by-type__list{display:flex;gap:.3125rem}.o-catalog__filters__by-type__list li{width:2.1875rem;height:2.1875rem}.o-catalog__filters__by-type__list li .a-label{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;margin:0;border-width:.0625rem;border-style:solid;border-radius:.3125rem}.o-catalog__filters__by-type .a-btn.a-btn--icon-text.-link-like{margin-top:5px;font-weight:300;font-size:.8125rem}.o-catalog__filters__by-type .a-btn.a-btn--icon-text.-link-like[disabled]{opacity:0}.o-catalog .is-point{cursor:default}.o-catalog__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.9375rem;justify-content:space-around;padding:1.875rem 0}.o-catalog__list__icon{cursor:pointer}.o-catalog__list pry-catalog-item{max-height:13.125rem}.o-catalog__list__item{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;max-width:8.125rem;height:100%;text-align:center;cursor:move}.o-catalog__list__item .is-private{position:absolute;top:.3125rem;left:.3125rem}.o-catalog__list__item img{margin-top:.625rem}.o-catalog__list__item img.is-full-width{width:100%;height:30%;object-fit:cover}.o-catalog__list__item .a-btn--icon-only{margin-bottom:.6875rem;padding:.8125rem}.o-catalog__list__item__libelle{width:100%;margin-bottom:0;padding:.9375rem .625rem;word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o-catalog__list__item__action{width:100%;padding:.375rem .625rem;text-align:center}.o-catalog__list__item__action .a-btn--secondary{height:auto;padding:0 .3125rem}.o-catalog__create{align-self:center;width:fit-content;margin-bottom:1rem}.o-catalog .o-accordion pry-accordion-item:first-child .o-accordion__title{border-top-style:solid;border-top-width:.0625rem;margin-top:.625rem}\n", ".o-restitution{display:flex;flex-direction:column;flex:1;max-height:100%;width:100%}.o-restitution pry-stepper{display:flex;flex:1;max-height:100%}.o-restitution .widget-instanciator{position:relative;height:100%;margin-bottom:.9375rem}.o-restitution .m-btn-group.actions{margin-top:auto}\n", ".o-presentation{margin:0;padding:0}.o-presentation li{list-style:none}.o-manifest-layout__toolbox div:first-child{margin-left:auto}.o-manifest-layout__toolbox.-u-hidden{display:none}.o-manifest-layout__content{height:100%;overflow:auto}.o-manifest-layout__content .pointer{cursor:pointer}.pry-viewingpresentation{display:flex;overflow-y:scroll}.pry-viewingpresentation .o-manifest-layout__content,.pry-viewingpresentation .o-dashboard-widget{grid-area:middle;flex:100% 1 1}.o-presentation{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1.875rem;padding:.25rem .25rem 1.25rem;overflow-y:visible}.o-presentation .a-h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-presentation__item{display:flex;flex-direction:column;align-items:stretch}.o-presentation__item:hover{cursor:pointer}.o-presentation__item:hover .o-presentation__item__footer pry-icon{visibility:visible;opacity:1}.o-presentation__item__image{cursor:pointer;overflow:hidden;height:6.875rem;display:flex;align-items:center;justify-content:center}.o-presentation__item__image img{width:100px}.o-presentation__item__image .is-full-width{width:100%;height:100%;object-fit:cover}.o-presentation__item__header{position:relative;display:flex;align-items:flex-start;justify-content:center;height:6.875rem}.o-presentation__item__header pry-icon.is-private{position:absolute;top:.625rem;left:.625rem;z-index:1}.o-presentation__item__header .a-tooltip{width:100%}.o-presentation__item__txt{flex-grow:1;padding:.625rem .9375rem;display:flex;flex-direction:column;justify-content:space-between}.o-presentation__item__txt .a-h3{padding-bottom:.3125rem}.o-presentation__item__txt .a-p.-date{padding-top:.625rem;margin-bottom:0}.o-presentation__item__title-container.a-tooltip[data-tooltip]:after{top:calc(100% - 15px)}.o-presentation__item__description-container{position:relative;width:100%;display:flex;align-content:center;min-height:1.25rem}.o-presentation__item__description-container.a-tooltip[data-tooltip]:after{width:100%}.o-presentation__item__description{width:100%;max-height:2.5rem}.o-presentation__item__footer{display:flex;align-content:center;justify-content:center;font-size:.875rem;line-height:1.125rem;padding:.1875rem 0;max-height:2.3125rem}.o-presentation__item__footer .a-btn{margin-left:1.25rem}.o-presentation__item__footer pry-icon{visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear;margin-left:.1875rem}.o-presentation-consult{width:100%;padding:.9375rem}.more-button{position:absolute;top:.375rem;right:.625rem}.more-button .a-btn{padding:.125rem 0;border-radius:50%}.m-context-menu{position:absolute}.o-restitution-catalog .o-manifest-layout__toolbox{justify-content:space-between;align-items:center}.o-restitution-catalog .o-manifest-layout__content{display:flex;flex-direction:column}.o-restitution-catalog .o-manifest-layout__content .restitution{display:flex;flex:1;max-height:100%}.m-context-menu__list__item .a-btn{white-space:nowrap}\n"] }]
29
+ args: [{ selector: 'pry-restitution-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-catalog__filters__by-type__list,.o-catalog__list{margin:0;padding:0}.o-catalog__filters__by-type__list li,.o-catalog__list li{list-style:none}.o-catalog{display:flex;flex-direction:column;overflow:scroll;width:28.125rem;height:100%;padding:.9375rem;border-right-width:.0625rem;border-right-style:solid}.o-catalog .a-h2{padding-top:.625rem}.o-catalog pry-restitution{flex:1}.o-catalog__filters{padding-top:.3125rem}.o-catalog__filters__by-name{position:relative;margin-bottom:1.25rem}.o-catalog__filters__by-name .a-icon{position:absolute;left:.6875rem;bottom:.5625rem;pointer-events:none}.o-catalog__filters__by-name .a-form-field{width:60%;padding-left:2.1875rem}.o-catalog__filters__by-type{display:flex;flex-wrap:wrap;column-gap:1.25rem}.o-catalog__filters__by-type__list{display:flex;gap:.3125rem}.o-catalog__filters__by-type__list li{width:2.1875rem;height:2.1875rem}.o-catalog__filters__by-type__list li .a-label{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;margin:0;border-width:.0625rem;border-style:solid;border-radius:.3125rem}.o-catalog__filters__by-type .a-btn.a-btn--icon-text.-link-like{margin-top:5px;font-weight:300;font-size:.8125rem}.o-catalog__filters__by-type .a-btn.a-btn--icon-text.-link-like[disabled]{opacity:0}.o-catalog .is-point{cursor:default}.o-catalog__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.9375rem;justify-content:space-around;padding:1.875rem 0}.o-catalog__list__icon{cursor:pointer}.o-catalog__list pry-catalog-item{max-height:13.125rem}.o-catalog__list__item{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;max-width:8.125rem;height:100%;text-align:center;cursor:move}.o-catalog__list__item .is-private{position:absolute;top:.3125rem;left:.3125rem}.o-catalog__list__item img{margin-top:.625rem}.o-catalog__list__item img.is-full-width{width:100%;height:30%;object-fit:cover}.o-catalog__list__item .a-btn--icon-only{margin-bottom:.6875rem;padding:.8125rem}.o-catalog__list__item__libelle{width:100%;margin-bottom:0;padding:.9375rem .625rem;word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o-catalog__create{align-self:center;width:fit-content;margin-bottom:1rem}.o-catalog .o-accordion pry-accordion-item:first-child .o-accordion__title{border-top-style:solid;border-top-width:.0625rem;margin-top:.625rem}\n", ".o-restitution{display:flex;flex-direction:column;flex:1;max-height:100%;width:100%}.o-restitution pry-stepper{display:flex;flex:1;max-height:100%}.o-restitution .widget-instanciator{position:relative;height:100%;margin-bottom:.9375rem}.o-restitution .m-btn-group.actions{margin-top:auto}\n", ".o-presentation{margin:0;padding:0}.o-presentation li{list-style:none}.o-manifest-layout__toolbox div:first-child{margin-left:auto}.o-manifest-layout__toolbox.-u-hidden{display:none}.o-manifest-layout__content{height:100%;overflow:auto}.o-manifest-layout__content .pointer{cursor:pointer}.pry-viewingpresentation{display:flex;overflow-y:scroll}.pry-viewingpresentation .o-manifest-layout__content,.pry-viewingpresentation .o-dashboard-widget{grid-area:middle;flex:100% 1 1}.o-presentation{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1.875rem;padding:.25rem .25rem 1.25rem;overflow-y:visible}.o-presentation .a-h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-presentation__item{display:flex;flex-direction:column;align-items:stretch}.o-presentation__item:hover{cursor:pointer}.o-presentation__item:hover .o-presentation__item__footer pry-icon{visibility:visible;opacity:1}.o-presentation__item__image{cursor:pointer;overflow:hidden;height:6.875rem;display:flex;align-items:center;justify-content:center}.o-presentation__item__image img{width:100px}.o-presentation__item__image .is-full-width{width:100%;height:100%;object-fit:cover}.o-presentation__item__header{position:relative;display:flex;align-items:flex-start;justify-content:center;height:6.875rem}.o-presentation__item__header pry-icon.is-private{position:absolute;top:.625rem;left:.625rem;z-index:1}.o-presentation__item__header .a-tooltip{width:100%}.o-presentation__item__txt{flex-grow:1;padding:.625rem .9375rem;display:flex;flex-direction:column;justify-content:space-between}.o-presentation__item__txt .a-h3{padding-bottom:.3125rem}.o-presentation__item__txt .a-p.-date{padding-top:.625rem;margin-bottom:0}.o-presentation__item__title-container.a-tooltip[data-tooltip]:after{top:calc(100% - 15px)}.o-presentation__item__description-container{position:relative;width:100%;display:flex;align-content:center;min-height:1.25rem}.o-presentation__item__description-container.a-tooltip[data-tooltip]:after{width:100%}.o-presentation__item__description{width:100%;max-height:2.5rem}.o-presentation__item__footer{display:flex;align-content:center;justify-content:center;font-size:.875rem;line-height:1.125rem;padding:.1875rem 0;max-height:2.3125rem}.o-presentation__item__footer .a-btn{margin-left:1.25rem}.o-presentation__item__footer pry-icon{visibility:hidden;opacity:0;transition:visibility .1s linear,opacity .1s linear;margin-left:.1875rem}.o-presentation-consult{width:100%;padding:.9375rem}.more-button{position:absolute;top:.375rem;right:.625rem}.more-button .a-btn{padding:.125rem 0;border-radius:50%}.m-context-menu{position:absolute}.o-restitution-catalog .o-manifest-layout__toolbox{justify-content:space-between;align-items:center}.o-restitution-catalog .o-manifest-layout__content{display:flex;flex-direction:column}.o-restitution-catalog .o-manifest-layout__content .restitution{display:flex;flex:1;max-height:100%}.m-context-menu__list__item .a-btn{white-space:nowrap}\n"] }]
30
30
  }] });
31
31
 
32
32
  class PryRestitutionComponent extends SubscriptionnerDirective {
@@ -61,6 +61,7 @@ class PryRestitutionComponent extends SubscriptionnerDirective {
61
61
  this.isDataSourceSelected = false;
62
62
  this.image = DEFAULT_RESTITUTION_ICON_URL;
63
63
  this.widgetTypes = [];
64
+ this.activeStepIndex = 0;
64
65
  this.store.dispatch(DataSourceActions.load());
65
66
  this.store.dispatch(ClassActions.load());
66
67
  this.store.dispatch(ConfigActions.loadCustomization());
@@ -208,11 +209,11 @@ class PryRestitutionComponent extends SubscriptionnerDirective {
208
209
  this.restitutionCreated.emit();
209
210
  }
210
211
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryRestitutionComponent, deps: [{ token: i1.ToolboxManifestService }, { token: i1$1.Store }, { token: i1.ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryRestitutionComponent, selector: "pry-restitution", inputs: { selectedRestitution: "selectedRestitution", edit: "edit", isDataSourceSelected: "isDataSourceSelected", bindId: "bindId" }, outputs: { restitutionCreated: "restitutionCreated" }, usesInheritance: true, ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode\" (lastStepCompleted)=\"lastStepCompleted()\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n [showActionButtons]=\"false\"\n ></pry-datasource-selector>\n <ng-container [ngTemplateOutlet]=\"buttons\" [ngTemplateOutletContext]=\"{ submit: true }\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #buttons let-submit=\"submit\">\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper, submit)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ (consultMode ? '@pry.restitution.share' : '@pry.restitution.next') | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted"] }, { kind: "component", type: i5.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i5.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i1.WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: i1.DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["usedItems", "manifest"] }, { kind: "component", type: i1.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "component", type: PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryRestitutionComponent, selector: "pry-restitution", inputs: { selectedRestitution: "selectedRestitution", edit: "edit", isDataSourceSelected: "isDataSourceSelected", bindId: "bindId" }, outputs: { restitutionCreated: "restitutionCreated" }, usesInheritance: true, ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode\" (lastStepCompleted)=\"lastStepCompleted()\" (activeIndexChange)=\"activeStepIndex = $event\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n [showActionButtons]=\"false\"\n ></pry-datasource-selector>\n <ng-container [ngTemplateOutlet]=\"buttons\" [ngTemplateOutletContext]=\"{ submit: true }\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #buttons let-submit=\"submit\">\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ (consultMode ? '@pry.restitution.goBack' : '@pry.restitution.close') | i18n }}\n </button>\n <button (click)=\"goNext(stepper, submit)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ (activeStepIndex === 3 ? '@pry.restitution.share' : '@pry.restitution.next') | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted", "activeIndexChange"] }, { kind: "component", type: i5.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i5.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i1.WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: i1.DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["usedItems", "manifest"] }, { kind: "component", type: i1.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "component", type: PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
212
213
  }
213
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryRestitutionComponent, decorators: [{
214
215
  type: Component,
215
- args: [{ selector: 'pry-restitution', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode\" (lastStepCompleted)=\"lastStepCompleted()\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n [showActionButtons]=\"false\"\n ></pry-datasource-selector>\n <ng-container [ngTemplateOutlet]=\"buttons\" [ngTemplateOutletContext]=\"{ submit: true }\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #buttons let-submit=\"submit\">\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper, submit)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ (consultMode ? '@pry.restitution.share' : '@pry.restitution.next') | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
216
+ args: [{ selector: 'pry-restitution', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode\" (lastStepCompleted)=\"lastStepCompleted()\" (activeIndexChange)=\"activeStepIndex = $event\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n [showActionButtons]=\"false\"\n ></pry-datasource-selector>\n <ng-container [ngTemplateOutlet]=\"buttons\" [ngTemplateOutletContext]=\"{ submit: true }\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #buttons let-submit=\"submit\">\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ (consultMode ? '@pry.restitution.goBack' : '@pry.restitution.close') | i18n }}\n </button>\n <button (click)=\"goNext(stepper, submit)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ (activeStepIndex === 3 ? '@pry.restitution.share' : '@pry.restitution.next') | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
216
217
  }], ctorParameters: () => [{ type: i1.ToolboxManifestService }, { type: i1$1.Store }, { type: i1.ToolboxMenuService }], propDecorators: { selectedRestitution: [{
217
218
  type: Input
218
219
  }], edit: [{
@@ -305,7 +306,6 @@ class PryRestitutionListItemComponent extends SubscriptionnerDirective {
305
306
  this.store = store;
306
307
  this.toolboxManifestService = toolboxManifestService;
307
308
  this.translate = true;
308
- this.selectRestitution = new EventEmitter();
309
309
  this.automaticGridMode = false;
310
310
  this.PryVisibilityType = PryVisibilityType;
311
311
  this.store.select(ConfigSelectors.catalog).subscribe((catalog) => (this.catalog = catalog));
@@ -319,30 +319,19 @@ class PryRestitutionListItemComponent extends SubscriptionnerDirective {
319
319
  this.toolboxManifestService.dataTransfer($event, type);
320
320
  }
321
321
  }
322
- emitSelectedRestitution(catalogEntry) {
323
- if (catalogEntry.isCustom) {
324
- this.catalog?.forEach((widget) => {
325
- if (widget.id === catalogEntry.type) {
326
- this.selectRestitution.emit(widget);
327
- }
328
- });
329
- }
330
- }
331
322
  viewInDashboard(widget) {
332
323
  this.store.dispatch(DashboardActions.addWidgetToPresentation({ widgetType: widget.type }));
333
324
  }
334
325
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryRestitutionListItemComponent, deps: [{ token: i1$1.Store }, { token: i1.ToolboxManifestService }], target: i0.ɵɵFactoryTarget.Component }); }
335
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryRestitutionListItemComponent, selector: "pry-catalog-item", inputs: { widget: "widget", translate: "translate" }, outputs: { selectRestitution: "selectRestitution" }, usesInheritance: true, ngImport: i0, template: "<li\n class=\"o-catalog__list__item\"\n [class.is-point]=\"automaticGridMode$ | async\"\n [draggable]=\"!(automaticGridMode$ | async)\"\n role=\"listitem\"\n aria-grabbed=\"false\"\n aria-haspopup=\"true\"\n tabindex=\"-1\"\n [title]=\"widget.description ?? widget.label | i18n : { warn: false }\"\n (dragstart)=\"dragStart($event, widget.type)\"\n>\n <ng-container *ngIf=\"automaticGridMode$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"viewInDashboard(widget)\"\n [title]=\"'@pry.restitution.add_icon' | i18n\"\n >\n <pry-icon [width]=\"25\" [height]=\"25\" iconSvg=\"add_column\" class=\"o-catalog__list__icon\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.restitution.add_icon' | i18n }}</span>\n </button>\n </ng-container>\n <img\n [alt]=\"widget.label | i18n : { warn: false }\"\n [src]=\"widget.icon | getSecuredImage : [53, 53] | async\"\n [height]=\"53\"\n [width]=\"53\"\n />\n <p class=\"o-catalog__list__item__libelle\" *ngIf=\"widget.isCustom; else translate\">{{ widget.label }}</p>\n <ng-template #translate>\n <p class=\"o-catalog__list__item__libelle\">{{ widget.label | i18n : { warn: false } }}</p>\n </ng-template>\n <ng-container *ngIf=\"widget.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div class=\"o-catalog__list__item__action\" *ngIf=\"widget.isCustom\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"emitSelectedRestitution(widget)\">\n {{ '@pry.restitution.view' | i18n }}\n </button>\n </div>\n</li>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
326
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryRestitutionListItemComponent, selector: "pry-catalog-item", inputs: { widget: "widget", translate: "translate" }, usesInheritance: true, ngImport: i0, template: "<li\n class=\"o-catalog__list__item\"\n [class.is-point]=\"automaticGridMode$ | async\"\n [draggable]=\"!(automaticGridMode$ | async)\"\n role=\"listitem\"\n aria-grabbed=\"false\"\n aria-haspopup=\"true\"\n tabindex=\"-1\"\n [title]=\"widget.description ?? widget.label | i18n : { warn: false }\"\n (dragstart)=\"dragStart($event, widget.type)\"\n>\n <ng-container *ngIf=\"automaticGridMode$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"viewInDashboard(widget)\"\n [title]=\"'@pry.restitution.add_icon' | i18n\"\n >\n <pry-icon [width]=\"25\" [height]=\"25\" iconSvg=\"add_column\" class=\"o-catalog__list__icon\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.restitution.add_icon' | i18n }}</span>\n </button>\n </ng-container>\n <img\n [alt]=\"widget.label | i18n : { warn: false }\"\n [src]=\"widget.icon | getSecuredImage : [53, 53] | async\"\n [height]=\"53\"\n [width]=\"53\"\n />\n <p class=\"o-catalog__list__item__libelle\" *ngIf=\"widget.isCustom; else translate\">{{ widget.label }}</p>\n <ng-template #translate>\n <p class=\"o-catalog__list__item__libelle\">{{ widget.label | i18n : { warn: false } }}</p>\n </ng-template>\n <ng-container *ngIf=\"widget.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n</li>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
336
327
  }
337
328
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryRestitutionListItemComponent, decorators: [{
338
329
  type: Component,
339
- args: [{ selector: 'pry-catalog-item', template: "<li\n class=\"o-catalog__list__item\"\n [class.is-point]=\"automaticGridMode$ | async\"\n [draggable]=\"!(automaticGridMode$ | async)\"\n role=\"listitem\"\n aria-grabbed=\"false\"\n aria-haspopup=\"true\"\n tabindex=\"-1\"\n [title]=\"widget.description ?? widget.label | i18n : { warn: false }\"\n (dragstart)=\"dragStart($event, widget.type)\"\n>\n <ng-container *ngIf=\"automaticGridMode$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"viewInDashboard(widget)\"\n [title]=\"'@pry.restitution.add_icon' | i18n\"\n >\n <pry-icon [width]=\"25\" [height]=\"25\" iconSvg=\"add_column\" class=\"o-catalog__list__icon\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.restitution.add_icon' | i18n }}</span>\n </button>\n </ng-container>\n <img\n [alt]=\"widget.label | i18n : { warn: false }\"\n [src]=\"widget.icon | getSecuredImage : [53, 53] | async\"\n [height]=\"53\"\n [width]=\"53\"\n />\n <p class=\"o-catalog__list__item__libelle\" *ngIf=\"widget.isCustom; else translate\">{{ widget.label }}</p>\n <ng-template #translate>\n <p class=\"o-catalog__list__item__libelle\">{{ widget.label | i18n : { warn: false } }}</p>\n </ng-template>\n <ng-container *ngIf=\"widget.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div class=\"o-catalog__list__item__action\" *ngIf=\"widget.isCustom\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"emitSelectedRestitution(widget)\">\n {{ '@pry.restitution.view' | i18n }}\n </button>\n </div>\n</li>\n" }]
330
+ args: [{ selector: 'pry-catalog-item', template: "<li\n class=\"o-catalog__list__item\"\n [class.is-point]=\"automaticGridMode$ | async\"\n [draggable]=\"!(automaticGridMode$ | async)\"\n role=\"listitem\"\n aria-grabbed=\"false\"\n aria-haspopup=\"true\"\n tabindex=\"-1\"\n [title]=\"widget.description ?? widget.label | i18n : { warn: false }\"\n (dragstart)=\"dragStart($event, widget.type)\"\n>\n <ng-container *ngIf=\"automaticGridMode$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"viewInDashboard(widget)\"\n [title]=\"'@pry.restitution.add_icon' | i18n\"\n >\n <pry-icon [width]=\"25\" [height]=\"25\" iconSvg=\"add_column\" class=\"o-catalog__list__icon\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.restitution.add_icon' | i18n }}</span>\n </button>\n </ng-container>\n <img\n [alt]=\"widget.label | i18n : { warn: false }\"\n [src]=\"widget.icon | getSecuredImage : [53, 53] | async\"\n [height]=\"53\"\n [width]=\"53\"\n />\n <p class=\"o-catalog__list__item__libelle\" *ngIf=\"widget.isCustom; else translate\">{{ widget.label }}</p>\n <ng-template #translate>\n <p class=\"o-catalog__list__item__libelle\">{{ widget.label | i18n : { warn: false } }}</p>\n </ng-template>\n <ng-container *ngIf=\"widget.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n</li>\n" }]
340
331
  }], ctorParameters: () => [{ type: i1$1.Store }, { type: i1.ToolboxManifestService }], propDecorators: { widget: [{
341
332
  type: Input
342
333
  }], translate: [{
343
334
  type: Input
344
- }], selectRestitution: [{
345
- type: Output
346
335
  }] } });
347
336
 
348
337
  class PryRestitutionListComponent extends SubscriptionnerDirective {
@@ -362,11 +351,7 @@ class PryRestitutionListComponent extends SubscriptionnerDirective {
362
351
  this._customModels = ['detail', 'iframe'];
363
352
  this.search$ = new BehaviorSubject('');
364
353
  this.type$ = new BehaviorSubject(undefined);
365
- this.selectedRestitution = null;
366
- this.mode = ViewMode;
367
- this.selectedMode = ViewMode.CATALOG;
368
354
  this.categories = ['model', 'noModel'];
369
- this.PryVisibilityType = PryVisibilityType;
370
355
  this.store.dispatch(ConfigActions.loadWidgets());
371
356
  this.types$ = this.toolboxMenuService.types$;
372
357
  this.filteredWidgets$ = combineLatest([this.toolboxMenuService.menuList$, this.search$, this.type$]).pipe(map(([widgets, search, type]) => widgets.filter((widget) => (search.length === 0 ||
@@ -375,23 +360,15 @@ class PryRestitutionListComponent extends SubscriptionnerDirective {
375
360
  this.nonCustomWidgets$ = this.filteredWidgets$.pipe(map((widgets) => widgets.filter((widget) => this.toolboxManifestService.isModel(widget.type) || this.customModels.includes(widget.type))));
376
361
  this.customWidgets$ = this.filteredWidgets$.pipe(map((widgets) => widgets.filter((widget) => !this.toolboxManifestService.isModel(widget.type) && !this.customModels.includes(widget.type))));
377
362
  }
378
- selectMode(newMode) {
379
- this.selectedMode = newMode;
380
- }
381
- selectRestitution($event) {
382
- this.selectedRestitution = $event;
383
- this.selectMode(ViewMode.CONSULT);
384
- }
385
- closeRestitution() {
386
- this.selectedRestitution = null;
387
- this.selectMode(this.mode.CATALOG);
363
+ selectType(type) {
364
+ this.type$.next(type);
388
365
  }
389
366
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryRestitutionListComponent, deps: [{ token: i1.ToolboxMenuService }, { token: i1.PryI18nService }, { token: i1.ToolboxManifestService }, { token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
390
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryRestitutionListComponent, selector: "pry-catalog", inputs: { showTabs: "showTabs", customModels: "customModels" }, usesInheritance: true, ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-catalog\">\n <ng-template [ngIf]=\"selectedMode === mode.CATALOG\">\n <h2 class=\"a-h2\">{{ '@pry.restitution.catalog' | i18n }}</h2>\n <div class=\"o-catalog__filters\">\n <div class=\"o-catalog__filters__by-name\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"a-label u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.action.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n </div>\n <label class=\"a-label\">{{ '@pry.action.filterByType' | i18n }}</label>\n <div class=\"o-catalog__filters__by-type\">\n <ul class=\"o-catalog__filters__by-type__list\">\n <li *ngFor=\"let typeOpt of types$ | async\">\n <input\n type=\"radio\"\n class=\"a-form-field u-sr-only\"\n name=\"catalog-filter\"\n id=\"catalog-button-{{ typeOpt.type }}\"\n [checked]=\"typeOpt.type === (type$ | async)\"\n (change)=\"type$.next(typeOpt.type)\"\n />\n <label\n class=\"a-label\"\n id=\"catalog-button-label-{{ typeOpt.type }}\"\n for=\"catalog-button-{{ typeOpt.type }}\"\n [title]=\"typeOpt.label | i18n : { warn: false }\"\n >\n <span class=\"u-sr-only\">{{ typeOpt.label | i18n : { warn: false } }} </span>\n <pry-icon [width]=\"18\" [height]=\"18\" [iconSvg]=\"typeOpt.icon\"></pry-icon>\n </label>\n </li>\n </ul>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n (click)=\"type$.next(undefined)\"\n [disabled]=\"!type$.getValue()\"\n [class.u-visually-hidden]=\"!type$.getValue()\"\n >\n <pry-icon [width]=\"15\" [height]=\"15\" iconSvg=\"delete\"></pry-icon>\n {{ '@pry.toolbox.catalog.filter.delete' | i18n }}\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"showTabs; else list\">\n <div class=\"o-accordion\" role=\"tablist\" aria-multiselectable=\"false\">\n <pry-accordion>\n <pry-accordion-item\n *ngFor=\"let category of categories; let index = index\"\n [item]=\"category\"\n [index]=\"index\"\n translationStringBase=\"@pry.restitution.catalogTabs.\"\n [length]=\"\n (category === 'model' ? (nonCustomWidgets$ | async)?.length : (customWidgets$ | async)?.length) ?? 0\n \"\n >\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n <ng-container *ngIf=\"category === 'model'\">\n <pry-catalog-item\n *ngFor=\"let widget of nonCustomWidgets$ | async\"\n [widget]=\"widget\"\n (selectRestitution)=\"selectRestitution($event)\"\n ></pry-catalog-item>\n </ng-container>\n <ng-container *ngIf=\"category === 'noModel'\">\n <pry-catalog-item\n *ngFor=\"let widget of customWidgets$ | async\"\n [translate]=\"false\"\n [widget]=\"widget\"\n (selectRestitution)=\"selectRestitution($event)\"\n ></pry-catalog-item>\n </ng-container>\n </ul>\n </pry-accordion-item>\n </pry-accordion>\n </div>\n </ng-container>\n\n <ng-template #list>\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n <pry-catalog-item\n *ngFor=\"let widget of filteredWidgets$ | async\"\n [widget]=\"widget\"\n (selectRestitution)=\"selectRestitution($event)\"\n ></pry-catalog-item>\n </ul>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"selectedMode === mode.CONSULT\">\n <div class=\"o-catalog__create\">\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeRestitution()\">\n {{ '@pry.restitution.cancel' | i18n }}\n </button>\n </div>\n\n <pry-restitution\n [selectedRestitution]=\"selectedRestitution\"\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution()\"\n ></pry-restitution>\n </ng-template>\n\n <ng-template [ngIf]=\"selectedMode === mode.CREATION\">\n <div class=\"o-catalog__create\">\n <button class=\"a-btn a-btn--secondary\" (click)=\"selectMode(mode.CATALOG)\">\n {{ '@pry.restitution.cancel' | i18n }}\n </button>\n </div>\n\n <pry-restitution (restitutionCreated)=\"closeRestitution()\"></pry-restitution>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.AccordionComponent, selector: "pry-accordion" }, { kind: "component", type: i1.AccordionItemComponent, selector: "pry-accordion-item", inputs: ["item", "borderColor", "index", "translationStringBase", "length", "showSearchBar", "search$"], outputs: ["search"] }, { kind: "component", type: i1.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: "component", type: PryRestitutionComponent, selector: "pry-restitution", inputs: ["selectedRestitution", "edit", "isDataSourceSelected", "bindId"], outputs: ["restitutionCreated"] }, { kind: "component", type: PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "component", type: PryRestitutionListItemComponent, selector: "pry-catalog-item", inputs: ["widget", "translate"], outputs: ["selectRestitution"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
367
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryRestitutionListComponent, selector: "pry-catalog", inputs: { showTabs: "showTabs", customModels: "customModels" }, usesInheritance: true, ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-catalog\">\n <h2 class=\"a-h2\">{{ '@pry.restitution.catalog' | i18n }}</h2>\n <div class=\"o-catalog__filters\">\n <div class=\"o-catalog__filters__by-name\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"a-label u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.action.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n </div>\n <label class=\"a-label\">{{ '@pry.action.filterByType' | i18n }}</label>\n <div class=\"o-catalog__filters__by-type\">\n <ul class=\"o-catalog__filters__by-type__list\">\n @for (typeOpt of types$ | async; track typeOpt.label) {\n <li>\n <input\n type=\"radio\"\n class=\"a-form-field u-sr-only\"\n name=\"catalog-filter\"\n id=\"catalog-button-{{ typeOpt.type }}\"\n [checked]=\"typeOpt.type === (type$ | async)\"\n (change)=\"selectType(typeOpt.type)\"\n />\n <label\n class=\"a-label\"\n id=\"catalog-button-label-{{ typeOpt.type }}\"\n for=\"catalog-button-{{ typeOpt.type }}\"\n [title]=\"typeOpt.label | i18n: { warn: false }\"\n >\n <span class=\"u-sr-only\">{{ typeOpt.label | i18n: { warn: false } }} </span>\n <pry-icon [width]=\"18\" [height]=\"18\" [iconSvg]=\"typeOpt.icon\"></pry-icon>\n </label>\n </li>\n }\n </ul>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n (click)=\"type$.next(undefined)\"\n [disabled]=\"!type$.getValue()\"\n [class.u-visually-hidden]=\"!type$.getValue()\"\n >\n <pry-icon [width]=\"15\" [height]=\"15\" iconSvg=\"delete\"></pry-icon>\n {{ '@pry.toolbox.catalog.filter.delete' | i18n }}\n </button>\n </div>\n </div>\n @if (showTabs) {\n <div class=\"o-accordion\" role=\"tablist\" aria-multiselectable=\"false\">\n <pry-accordion>\n @for (category of categories; track category; let index = $index) {\n <pry-accordion-item\n [item]=\"category\"\n [index]=\"index\"\n translationStringBase=\"@pry.restitution.catalogTabs.\"\n [length]=\"\n (category === 'model' ? (nonCustomWidgets$ | async)?.length : (customWidgets$ | async)?.length) ?? 0\n \"\n >\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n @if (category === 'model') {\n @for (widget of nonCustomWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\"></pry-catalog-item>\n }\n } @else if (category === 'noModel') {\n @for (widget of customWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\" [translate]=\"false\"></pry-catalog-item>\n }\n }\n </ul>\n </pry-accordion-item>\n }\n </pry-accordion>\n </div>\n } @else {\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n @for (widget of filteredWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\"></pry-catalog-item>\n }\n </ul>\n }\n</div>\n", dependencies: [{ kind: "component", type: i1.AccordionComponent, selector: "pry-accordion" }, { kind: "component", type: i1.AccordionItemComponent, selector: "pry-accordion-item", inputs: ["item", "borderColor", "index", "translationStringBase", "length", "showSearchBar", "search$"], outputs: ["search"] }, { kind: "component", type: i1.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: "component", type: PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "component", type: PryRestitutionListItemComponent, selector: "pry-catalog-item", inputs: ["widget", "translate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
391
368
  }
392
369
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryRestitutionListComponent, decorators: [{
393
370
  type: Component,
394
- args: [{ selector: 'pry-catalog', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-catalog\">\n <ng-template [ngIf]=\"selectedMode === mode.CATALOG\">\n <h2 class=\"a-h2\">{{ '@pry.restitution.catalog' | i18n }}</h2>\n <div class=\"o-catalog__filters\">\n <div class=\"o-catalog__filters__by-name\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"a-label u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.action.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n </div>\n <label class=\"a-label\">{{ '@pry.action.filterByType' | i18n }}</label>\n <div class=\"o-catalog__filters__by-type\">\n <ul class=\"o-catalog__filters__by-type__list\">\n <li *ngFor=\"let typeOpt of types$ | async\">\n <input\n type=\"radio\"\n class=\"a-form-field u-sr-only\"\n name=\"catalog-filter\"\n id=\"catalog-button-{{ typeOpt.type }}\"\n [checked]=\"typeOpt.type === (type$ | async)\"\n (change)=\"type$.next(typeOpt.type)\"\n />\n <label\n class=\"a-label\"\n id=\"catalog-button-label-{{ typeOpt.type }}\"\n for=\"catalog-button-{{ typeOpt.type }}\"\n [title]=\"typeOpt.label | i18n : { warn: false }\"\n >\n <span class=\"u-sr-only\">{{ typeOpt.label | i18n : { warn: false } }} </span>\n <pry-icon [width]=\"18\" [height]=\"18\" [iconSvg]=\"typeOpt.icon\"></pry-icon>\n </label>\n </li>\n </ul>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n (click)=\"type$.next(undefined)\"\n [disabled]=\"!type$.getValue()\"\n [class.u-visually-hidden]=\"!type$.getValue()\"\n >\n <pry-icon [width]=\"15\" [height]=\"15\" iconSvg=\"delete\"></pry-icon>\n {{ '@pry.toolbox.catalog.filter.delete' | i18n }}\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"showTabs; else list\">\n <div class=\"o-accordion\" role=\"tablist\" aria-multiselectable=\"false\">\n <pry-accordion>\n <pry-accordion-item\n *ngFor=\"let category of categories; let index = index\"\n [item]=\"category\"\n [index]=\"index\"\n translationStringBase=\"@pry.restitution.catalogTabs.\"\n [length]=\"\n (category === 'model' ? (nonCustomWidgets$ | async)?.length : (customWidgets$ | async)?.length) ?? 0\n \"\n >\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n <ng-container *ngIf=\"category === 'model'\">\n <pry-catalog-item\n *ngFor=\"let widget of nonCustomWidgets$ | async\"\n [widget]=\"widget\"\n (selectRestitution)=\"selectRestitution($event)\"\n ></pry-catalog-item>\n </ng-container>\n <ng-container *ngIf=\"category === 'noModel'\">\n <pry-catalog-item\n *ngFor=\"let widget of customWidgets$ | async\"\n [translate]=\"false\"\n [widget]=\"widget\"\n (selectRestitution)=\"selectRestitution($event)\"\n ></pry-catalog-item>\n </ng-container>\n </ul>\n </pry-accordion-item>\n </pry-accordion>\n </div>\n </ng-container>\n\n <ng-template #list>\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n <pry-catalog-item\n *ngFor=\"let widget of filteredWidgets$ | async\"\n [widget]=\"widget\"\n (selectRestitution)=\"selectRestitution($event)\"\n ></pry-catalog-item>\n </ul>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"selectedMode === mode.CONSULT\">\n <div class=\"o-catalog__create\">\n <button class=\"a-btn a-btn--secondary\" (click)=\"closeRestitution()\">\n {{ '@pry.restitution.cancel' | i18n }}\n </button>\n </div>\n\n <pry-restitution\n [selectedRestitution]=\"selectedRestitution\"\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution()\"\n ></pry-restitution>\n </ng-template>\n\n <ng-template [ngIf]=\"selectedMode === mode.CREATION\">\n <div class=\"o-catalog__create\">\n <button class=\"a-btn a-btn--secondary\" (click)=\"selectMode(mode.CATALOG)\">\n {{ '@pry.restitution.cancel' | i18n }}\n </button>\n </div>\n\n <pry-restitution (restitutionCreated)=\"closeRestitution()\"></pry-restitution>\n </ng-template>\n</div>\n" }]
371
+ args: [{ selector: 'pry-catalog', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-catalog\">\n <h2 class=\"a-h2\">{{ '@pry.restitution.catalog' | i18n }}</h2>\n <div class=\"o-catalog__filters\">\n <div class=\"o-catalog__filters__by-name\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"a-label u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.action.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n </div>\n <label class=\"a-label\">{{ '@pry.action.filterByType' | i18n }}</label>\n <div class=\"o-catalog__filters__by-type\">\n <ul class=\"o-catalog__filters__by-type__list\">\n @for (typeOpt of types$ | async; track typeOpt.label) {\n <li>\n <input\n type=\"radio\"\n class=\"a-form-field u-sr-only\"\n name=\"catalog-filter\"\n id=\"catalog-button-{{ typeOpt.type }}\"\n [checked]=\"typeOpt.type === (type$ | async)\"\n (change)=\"selectType(typeOpt.type)\"\n />\n <label\n class=\"a-label\"\n id=\"catalog-button-label-{{ typeOpt.type }}\"\n for=\"catalog-button-{{ typeOpt.type }}\"\n [title]=\"typeOpt.label | i18n: { warn: false }\"\n >\n <span class=\"u-sr-only\">{{ typeOpt.label | i18n: { warn: false } }} </span>\n <pry-icon [width]=\"18\" [height]=\"18\" [iconSvg]=\"typeOpt.icon\"></pry-icon>\n </label>\n </li>\n }\n </ul>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n (click)=\"type$.next(undefined)\"\n [disabled]=\"!type$.getValue()\"\n [class.u-visually-hidden]=\"!type$.getValue()\"\n >\n <pry-icon [width]=\"15\" [height]=\"15\" iconSvg=\"delete\"></pry-icon>\n {{ '@pry.toolbox.catalog.filter.delete' | i18n }}\n </button>\n </div>\n </div>\n @if (showTabs) {\n <div class=\"o-accordion\" role=\"tablist\" aria-multiselectable=\"false\">\n <pry-accordion>\n @for (category of categories; track category; let index = $index) {\n <pry-accordion-item\n [item]=\"category\"\n [index]=\"index\"\n translationStringBase=\"@pry.restitution.catalogTabs.\"\n [length]=\"\n (category === 'model' ? (nonCustomWidgets$ | async)?.length : (customWidgets$ | async)?.length) ?? 0\n \"\n >\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n @if (category === 'model') {\n @for (widget of nonCustomWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\"></pry-catalog-item>\n }\n } @else if (category === 'noModel') {\n @for (widget of customWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\" [translate]=\"false\"></pry-catalog-item>\n }\n }\n </ul>\n </pry-accordion-item>\n }\n </pry-accordion>\n </div>\n } @else {\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n @for (widget of filteredWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\"></pry-catalog-item>\n }\n </ul>\n }\n</div>\n" }]
395
372
  }], ctorParameters: () => [{ type: i1.ToolboxMenuService }, { type: i1.PryI18nService }, { type: i1.ToolboxManifestService }, { type: i1$1.Store }], propDecorators: { showTabs: [{
396
373
  type: Input
397
374
  }], customModels: [{
@@ -412,6 +389,7 @@ const enTranslations = {
412
389
  view: 'View',
413
390
  create: 'Create restitution',
414
391
  cancel: 'Cancel',
392
+ goBack: 'Go back',
415
393
  configure: 'Configure',
416
394
  visualize: 'Visualize',
417
395
  access: 'Do you want to give access / invite users?',
@@ -459,6 +437,7 @@ const frTranslations = {
459
437
  create: 'Créer une restitution',
460
438
  edit: 'Modifier la restitution',
461
439
  cancel: 'Annuler',
440
+ goBack: 'Retour',
462
441
  configure: 'Configurer',
463
442
  visualize: 'Visualiser',
464
443
  access: 'Vous souhaitez donner accès / inviter des utilisateurs ?',