@ng-vagabond-lab/ng-dsv 0.2.39 → 0.2.42

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 (96) hide show
  1. package/assets/global.scss +1 -0
  2. package/assets/style.scss +25 -2
  3. package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs +6 -6
  4. package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs +13 -13
  5. package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs.map +1 -1
  6. package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs +24 -24
  7. package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs +3 -3
  8. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs +3 -3
  9. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs +3 -3
  10. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +6 -6
  11. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +12 -12
  12. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs +3 -3
  13. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-color.mjs +6 -6
  14. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs +3 -3
  15. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs +43 -11
  16. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs.map +1 -1
  17. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs +24 -24
  18. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs +27 -27
  19. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs +3 -3
  20. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-img.mjs +3 -3
  21. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs +3 -3
  22. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-linear-progress.mjs +3 -3
  23. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-link-pipe.mjs +6 -6
  24. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs +12 -12
  25. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-markdown.mjs +35 -0
  26. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-markdown.mjs.map +1 -0
  27. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs +12 -12
  28. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs +12 -12
  29. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs +3 -3
  30. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs +9 -9
  31. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-skeleton.mjs +3 -3
  32. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs +6 -6
  33. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs +3 -3
  34. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +10 -10
  35. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -1
  36. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs +6 -6
  37. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs +3 -3
  38. package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs +3 -3
  39. package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs +3 -3
  40. package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs +15 -15
  41. package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs +9 -9
  42. package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs +3 -3
  43. package/fesm2022/{ng-vagabond-lab-ng-dsv-module-news-news-form.container-CGfhZFgr.mjs → ng-vagabond-lab-ng-dsv-module-news-news-form.container-B89sqBxq.mjs} +8 -6
  44. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-form.container-B89sqBxq.mjs.map +1 -0
  45. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-form.container-DYj7fb2V.mjs +105 -0
  46. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-form.container-DYj7fb2V.mjs.map +1 -0
  47. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.container-BOocOeoi.mjs +176 -0
  48. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.container-BOocOeoi.mjs.map +1 -0
  49. package/fesm2022/{ng-vagabond-lab-ng-dsv-module-news-news-list.container-CkUQEI5Q.mjs → ng-vagabond-lab-ng-dsv-module-news-news-list.container-dRUMZot2.mjs} +19 -10
  50. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.container-dRUMZot2.mjs.map +1 -0
  51. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-C4rdx_5c.mjs +38 -0
  52. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-C4rdx_5c.mjs.map +1 -0
  53. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-MB7ocRqE.mjs +38 -0
  54. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-MB7ocRqE.mjs.map +1 -0
  55. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news.container-BBDrX_yB.mjs +182 -0
  56. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news.container-BBDrX_yB.mjs.map +1 -0
  57. package/fesm2022/{ng-vagabond-lab-ng-dsv-module-news-news.container-Ce60PdDH.mjs → ng-vagabond-lab-ng-dsv-module-news-news.container-Dv48TkBy.mjs} +16 -13
  58. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news.container-Dv48TkBy.mjs.map +1 -0
  59. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news.mjs +4 -4
  60. package/fesm2022/ng-vagabond-lab-ng-dsv-module-notification.mjs +15 -15
  61. package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs +3 -3
  62. package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs +9 -9
  63. package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs +7 -4
  64. package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs.map +1 -1
  65. package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +18 -18
  66. package/package.json +5 -1
  67. package/types/ng-vagabond-lab-ng-dsv-base-service.d.ts +1 -1
  68. package/types/ng-vagabond-lab-ng-dsv-base.d.ts +1 -1
  69. package/types/ng-vagabond-lab-ng-dsv-date.d.ts.map +1 -0
  70. package/types/ng-vagabond-lab-ng-dsv-ds-accordion.d.ts.map +1 -0
  71. package/types/ng-vagabond-lab-ng-dsv-ds-avatar.d.ts.map +1 -0
  72. package/types/ng-vagabond-lab-ng-dsv-ds-file.d.ts +12 -1
  73. package/types/ng-vagabond-lab-ng-dsv-ds-file.d.ts.map +1 -0
  74. package/types/ng-vagabond-lab-ng-dsv-ds-form-reactive.d.ts.map +1 -0
  75. package/types/ng-vagabond-lab-ng-dsv-ds-header.d.ts.map +1 -0
  76. package/types/ng-vagabond-lab-ng-dsv-ds-img.d.ts.map +1 -0
  77. package/types/ng-vagabond-lab-ng-dsv-ds-linear-progress.d.ts.map +1 -0
  78. package/types/ng-vagabond-lab-ng-dsv-ds-link-pipe.d.ts.map +1 -0
  79. package/types/ng-vagabond-lab-ng-dsv-ds-list.d.ts.map +1 -0
  80. package/types/ng-vagabond-lab-ng-dsv-ds-markdown.d.ts +12 -0
  81. package/types/ng-vagabond-lab-ng-dsv-ds-markdown.d.ts.map +1 -0
  82. package/types/ng-vagabond-lab-ng-dsv-ds-paginate.d.ts.map +1 -0
  83. package/types/ng-vagabond-lab-ng-dsv-ds-skeleton.d.ts.map +1 -0
  84. package/types/ng-vagabond-lab-ng-dsv-ds-tab.d.ts.map +1 -0
  85. package/types/ng-vagabond-lab-ng-dsv-ds-table.d.ts.map +1 -0
  86. package/types/ng-vagabond-lab-ng-dsv-ds-tooltip.d.ts.map +1 -0
  87. package/types/ng-vagabond-lab-ng-dsv-module-admin.d.ts.map +1 -0
  88. package/types/ng-vagabond-lab-ng-dsv-module-contact.d.ts.map +1 -0
  89. package/types/ng-vagabond-lab-ng-dsv-module-news.d.ts.map +1 -0
  90. package/types/ng-vagabond-lab-ng-dsv-module-notification.d.ts.map +1 -0
  91. package/types/ng-vagabond-lab-ng-dsv-template.d.ts.map +1 -0
  92. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-form.container-CGfhZFgr.mjs.map +0 -1
  93. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.container-CkUQEI5Q.mjs.map +0 -1
  94. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-CVVSV7se.mjs +0 -65
  95. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-CVVSV7se.mjs.map +0 -1
  96. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news.container-Ce60PdDH.mjs.map +0 -1
@@ -0,0 +1,176 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Component, inject, computed } from '@angular/core';
3
+ import { RouterLink } from '@angular/router';
4
+ import { BaseSearchContainer } from '@ng-vagabond-lab/ng-dsv/base';
5
+ import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
6
+ import { DsvCardComponent, DsvCardHeaderComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';
7
+ import { DsvFormReactiveSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';
8
+ import { DsvScrollInfiniteContainer } from '@ng-vagabond-lab/ng-dsv/ds/scroll';
9
+ import { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';
10
+ import { DateFormatPipe } from '@ng-vagabond-lab/ng-dsv/date';
11
+ import { DsvFileShowComponent } from '@ng-vagabond-lab/ng-dsv/ds/file';
12
+ import { DsvMarkdownContainer } from '@ng-vagabond-lab/ng-dsv/ds/markdown';
13
+ import { RouterInternalPipe } from '@ng-vagabond-lab/ng-dsv/router';
14
+ import { N as NewsListService } from './ng-vagabond-lab-ng-dsv-module-news-news-list.service-C4rdx_5c.mjs';
15
+
16
+ function NewsCardResumeComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelement(0, "dsv-file-show", 1);
18
+ } if (rf & 2) {
19
+ const ctx_r0 = i0.ɵɵnextContext();
20
+ i0.ɵɵproperty("src", ctx_r0.news()?.image ?? "");
21
+ } }
22
+ class NewsCardResumeComponent {
23
+ news = input(/* @ts-ignore */
24
+ ...(ngDevMode ? [undefined, { debugName: "news" }] : /* istanbul ignore next */ []));
25
+ static ɵfac = function NewsCardResumeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NewsCardResumeComponent)(); };
26
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NewsCardResumeComponent, selectors: [["app-news-card-resume"]], inputs: { news: [1, "news"] }, decls: 10, vars: 11, consts: [[3, "routerLink"], ["url", "/api/", 3, "src"], [1, "subtitle"], [3, "data"], ["dsvLink", "", 3, "href"]], template: function NewsCardResumeComponent_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelementStart(0, "dsv-card", 0);
28
+ i0.ɵɵconditionalCreate(1, NewsCardResumeComponent_Conditional_1_Template, 1, 1, "dsv-file-show", 1);
29
+ i0.ɵɵelementStart(2, "h2");
30
+ i0.ɵɵtext(3);
31
+ i0.ɵɵelementEnd();
32
+ i0.ɵɵelementStart(4, "span", 2);
33
+ i0.ɵɵtext(5);
34
+ i0.ɵɵpipe(6, "formatDate");
35
+ i0.ɵɵelementEnd();
36
+ i0.ɵɵelement(7, "dsv-markdown-container", 3);
37
+ i0.ɵɵelementStart(8, "a", 4);
38
+ i0.ɵɵtext(9, "Lire la suite...");
39
+ i0.ɵɵelementEnd()();
40
+ } if (rf & 2) {
41
+ i0.ɵɵproperty("routerLink", "/news/" + ctx.news()?.id);
42
+ i0.ɵɵadvance();
43
+ i0.ɵɵconditional(ctx.news()?.image ? 1 : -1);
44
+ i0.ɵɵadvance();
45
+ i0.ɵɵclassProp("error", !ctx.news()?.active);
46
+ i0.ɵɵadvance();
47
+ i0.ɵɵtextInterpolate(ctx.news()?.title);
48
+ i0.ɵɵadvance(2);
49
+ i0.ɵɵtextInterpolate1("Le ", i0.ɵɵpipeBind2(6, 8, ctx.news()?.creationDate, true));
50
+ i0.ɵɵadvance(2);
51
+ i0.ɵɵproperty("data", ctx.news()?.resume);
52
+ i0.ɵɵadvance();
53
+ i0.ɵɵproperty("href", "/news/" + ctx.news()?.id, i0.ɵɵsanitizeUrl);
54
+ } }, dependencies: [DsvCardComponent,
55
+ RouterInternalPipe,
56
+ RouterLink,
57
+ DsvFileShowComponent,
58
+ DsvMarkdownContainer,
59
+ DateFormatPipe], styles: ["[_nghost-%COMP%]{display:flex;width:100%;min-height:300px;margin-right:5px;overflow:hidden}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0 0 5px}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:calc(100% + 20px)}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] .news-image[_ngcontent-%COMP%]{margin:0 0 5px;width:100%}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] dsv-card-header[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:5px;margin:0 0 10px}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] dsv-card-header[_ngcontent-%COMP%] dsv-button.round[_ngcontent-%COMP%]{--%NS%button-border-radius: 50%}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] dsv-card-header[_ngcontent-%COMP%] h1[_ngcontent-%COMP%], [_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] dsv-card-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{flex:1}[_nghost-%COMP%] dsv-markdown-container[_ngcontent-%COMP%]{margin:20px 0}", "[_nghost-%COMP%]{margin:0;width:100%;min-height:200px!important}[_nghost-%COMP%], [_nghost-%COMP%] a[_ngcontent-%COMP%]{display:flex;width:100%}"] });
60
+ }
61
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NewsCardResumeComponent, [{
62
+ type: Component,
63
+ args: [{ selector: 'app-news-card-resume', imports: [
64
+ DsvCardComponent,
65
+ DateFormatPipe,
66
+ RouterInternalPipe,
67
+ RouterLink,
68
+ DsvFileShowComponent,
69
+ DsvMarkdownContainer,
70
+ ], template: "<dsv-card [routerLink]=\"'/news/' + news()?.id\">\n @if (news()?.image) {\n <dsv-file-show url=\"/api/\" [src]=\"news()?.image ?? ''\" />\n }\n <h2 [class.error]=\"!news()?.active\">{{ news()?.title }}</h2>\n <span class=\"subtitle\">Le {{ news()?.creationDate! | formatDate: true }}</span>\n <dsv-markdown-container [data]=\"news()?.resume\" />\n <a [href]=\"'/news/' + news()?.id\" dsvLink>Lire la suite...</a>\n</dsv-card>\n", styles: [":host{display:flex;width:100%;min-height:300px;margin-right:5px;overflow:hidden}:host dsv-card{position:relative}:host dsv-card h1{margin:0}:host dsv-card h2{margin:0 0 5px}:host dsv-card img{width:calc(100% + 20px)}:host dsv-card .news-image{margin:0 0 5px;width:100%}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;gap:5px;margin:0 0 10px}:host dsv-card dsv-card-header dsv-button.round{--button-border-radius: 50%}:host dsv-card dsv-card-header h1,:host dsv-card dsv-card-header h2{flex:1}:host dsv-markdown-container{margin:20px 0}\n", ":host{margin:0;width:100%;min-height:200px!important}:host,:host a{display:flex;width:100%}\n"] }]
71
+ }], null, { news: [{ type: i0.Input, args: [{ isSignal: true, alias: "news", required: false }] }] }); })();
72
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NewsCardResumeComponent, { className: "NewsCardResumeComponent", filePath: "component/card/resume/news-card-resume.component.ts", lineNumber: 23 }); })();
73
+
74
+ const _forTrack0 = ($index, $item) => $item.id;
75
+ function NewsListContainer_Conditional_5_Template(rf, ctx) { if (rf & 1) {
76
+ i0.ɵɵtext(0);
77
+ } if (rf & 2) {
78
+ const ctx_r0 = i0.ɵɵnextContext();
79
+ i0.ɵɵtextInterpolate1(" (", ctx_r0.newsListService.total(), ") ");
80
+ } }
81
+ function NewsListContainer_Conditional_6_Template(rf, ctx) { if (rf & 1) {
82
+ i0.ɵɵelement(0, "dsv-button", 3);
83
+ } }
84
+ function NewsListContainer_Conditional_8_Template(rf, ctx) { if (rf & 1) {
85
+ i0.ɵɵelementStart(0, "dsv-card")(1, "p");
86
+ i0.ɵɵtext(2, "Aucun r\u00E9sultat trouv\u00E9");
87
+ i0.ɵɵelementEnd()();
88
+ } }
89
+ function NewsListContainer_Conditional_9_For_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
90
+ i0.ɵɵelement(0, "dsv-button", 8);
91
+ } if (rf & 2) {
92
+ const news_r3 = i0.ɵɵnextContext().$implicit;
93
+ i0.ɵɵproperty("routerLink", "/news/update/" + news_r3?.id);
94
+ } }
95
+ function NewsListContainer_Conditional_9_For_3_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵelementStart(0, "app-news-card-resume", 7);
97
+ i0.ɵɵconditionalCreate(1, NewsListContainer_Conditional_9_For_3_Conditional_1_Template, 1, 1, "dsv-button", 8);
98
+ i0.ɵɵelementEnd();
99
+ } if (rf & 2) {
100
+ const news_r3 = ctx.$implicit;
101
+ const ctx_r0 = i0.ɵɵnextContext(2);
102
+ i0.ɵɵproperty("news", news_r3);
103
+ i0.ɵɵadvance();
104
+ i0.ɵɵconditional(ctx_r0.isAdmin() ? 1 : -1);
105
+ } }
106
+ function NewsListContainer_Conditional_9_ng_template_4_Template(rf, ctx) { }
107
+ function NewsListContainer_Conditional_9_Template(rf, ctx) { if (rf & 1) {
108
+ const _r2 = i0.ɵɵgetCurrentView();
109
+ i0.ɵɵelementStart(0, "dsv-scroll-infinite", 6, 0);
110
+ i0.ɵɵlistener("callback", function NewsListContainer_Conditional_9_Template_dsv_scroll_infinite_callback_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.doFetch()); });
111
+ i0.ɵɵrepeaterCreate(2, NewsListContainer_Conditional_9_For_3_Template, 2, 2, "app-news-card-resume", 7, _forTrack0);
112
+ i0.ɵɵtemplate(4, NewsListContainer_Conditional_9_ng_template_4_Template, 0, 0, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
113
+ i0.ɵɵelementEnd();
114
+ } if (rf & 2) {
115
+ const ctx_r0 = i0.ɵɵnextContext();
116
+ i0.ɵɵproperty("loading", ctx_r0.newsListService.isLoading());
117
+ i0.ɵɵadvance(2);
118
+ i0.ɵɵrepeater(ctx_r0.newsListService.news());
119
+ } }
120
+ class NewsListContainer extends BaseSearchContainer {
121
+ newsListService;
122
+ auhService = inject(AuthService);
123
+ isAdmin = computed(() => this.auhService.hasRole('ADMIN'), /* @ts-ignore */
124
+ ...(ngDevMode ? [{ debugName: "isAdmin" }] : /* istanbul ignore next */ []));
125
+ constructor(newsListService) {
126
+ super(newsListService);
127
+ this.newsListService = newsListService;
128
+ this.seoService.setMeta('Les dernières news', 'Retrouver les dernières news sur movie-keeper.fr', '/images/logo.png');
129
+ }
130
+ static ɵfac = function NewsListContainer_Factory(__ngFactoryType__) { /* @ts-ignore */
131
+ return new (__ngFactoryType__ || NewsListContainer)(i0.ɵɵdirectiveInject(NewsListService)); };
132
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NewsListContainer, selectors: [["app-news-list"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 4, consts: [["scroll", ""], ["skeleton", ""], [1, "ri-file-list-3-line"], ["icon", "ri-add-line", "color", "secondary", "variant", "outlined", "routerLink", "/news/create"], [3, "callbackSearch", "search"], [1, "card-miniature", 3, "loading"], [1, "card-miniature", 3, "callback", "loading"], [3, "news"], ["icon", "ri-tools-line", 1, "update-button", 3, "routerLink"]], template: function NewsListContainer_Template(rf, ctx) { if (rf & 1) {
133
+ i0.ɵɵelementStart(0, "dsv-card")(1, "dsv-card-header")(2, "h2");
134
+ i0.ɵɵelement(3, "i", 2);
135
+ i0.ɵɵtext(4, "\u00A0\u00A0News ");
136
+ i0.ɵɵconditionalCreate(5, NewsListContainer_Conditional_5_Template, 1, 1);
137
+ i0.ɵɵelementEnd();
138
+ i0.ɵɵconditionalCreate(6, NewsListContainer_Conditional_6_Template, 1, 0, "dsv-button", 3);
139
+ i0.ɵɵelementEnd();
140
+ i0.ɵɵelementStart(7, "dsv-form-reactive-searchbar", 4);
141
+ i0.ɵɵlistener("callbackSearch", function NewsListContainer_Template_dsv_form_reactive_searchbar_callbackSearch_7_listener($event) { return ctx.doSearch($event); });
142
+ i0.ɵɵelementEnd()();
143
+ i0.ɵɵconditionalCreate(8, NewsListContainer_Conditional_8_Template, 3, 0, "dsv-card")(9, NewsListContainer_Conditional_9_Template, 6, 1, "dsv-scroll-infinite", 5);
144
+ } if (rf & 2) {
145
+ i0.ɵɵadvance(5);
146
+ i0.ɵɵconditional(ctx.newsListService.total() ? 5 : -1);
147
+ i0.ɵɵadvance();
148
+ i0.ɵɵconditional(ctx.isAdmin() ? 6 : -1);
149
+ i0.ɵɵadvance();
150
+ i0.ɵɵproperty("search", ctx.newsListService.search());
151
+ i0.ɵɵadvance();
152
+ i0.ɵɵconditional(ctx.newsListService.news().length === 0 && (!ctx.newsListService.isLoading() || ctx.newsListService.stopFetch()) ? 8 : 9);
153
+ } }, dependencies: [DsvCardComponent,
154
+ DsvFormReactiveSearchbarComponent,
155
+ DsvScrollInfiniteContainer,
156
+ NewsCardResumeComponent,
157
+ DsvButtonComponent,
158
+ DsvCardHeaderComponent,
159
+ RouterLink], styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;overflow:hidden}[_nghost-%COMP%] h2[_ngcontent-%COMP%]{text-transform:capitalize}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%]{margin:5px;width:calc(100% - 10px);gap:5px}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] dsv-card-header[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;margin:0 0 5px}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] dsv-card-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;flex:1}[_nghost-%COMP%] dsv-card[_ngcontent-%COMP%] dsv-form-reactive-searchbar[_ngcontent-%COMP%]{margin:0}[_nghost-%COMP%] dsv-scroll-infinite[_ngcontent-%COMP%] app-news-card-resume[_ngcontent-%COMP%]{width:calc(50% - 10px)}@media screen and (max-width:600px){[_nghost-%COMP%] dsv-scroll-infinite[_ngcontent-%COMP%] app-news-card-resume[_ngcontent-%COMP%]{width:100%}}"] });
160
+ }
161
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NewsListContainer, [{
162
+ type: Component,
163
+ args: [{ selector: 'app-news-list', imports: [
164
+ DsvCardComponent,
165
+ DsvFormReactiveSearchbarComponent,
166
+ DsvScrollInfiniteContainer,
167
+ NewsCardResumeComponent,
168
+ DsvButtonComponent,
169
+ DsvCardHeaderComponent,
170
+ RouterLink,
171
+ ], template: "<dsv-card>\n <dsv-card-header>\n <h2>\n <i class=\"ri-file-list-3-line\"></i>&nbsp;&nbsp;News\n @if (newsListService.total()) {\n ({{ newsListService.total() }})\n }\n </h2>\n @if (isAdmin()) {\n <dsv-button icon=\"ri-add-line\" color=\"secondary\" variant=\"outlined\" routerLink=\"/news/create\" />\n }\n </dsv-card-header>\n <dsv-form-reactive-searchbar [search]=\"newsListService.search()\" (callbackSearch)=\"doSearch($event)\" />\n</dsv-card>\n\n@if (newsListService.news().length === 0 && (!newsListService.isLoading() || newsListService.stopFetch())) {\n <dsv-card>\n <p>Aucun r\u00E9sultat trouv\u00E9</p>\n </dsv-card>\n} @else {\n <dsv-scroll-infinite\n #scroll\n class=\"card-miniature\"\n [loading]=\"newsListService.isLoading()\"\n (callback)=\"doFetch()\"\n >\n @for (news of newsListService.news(); track news.id) {\n <app-news-card-resume [news]=\"news\">\n @if (isAdmin()) {\n <dsv-button\n class=\"update-button\"\n icon=\"ri-tools-line\"\n [routerLink]=\"'/news/update/' + news?.id\"\n />\n }\n </app-news-card-resume>\n }\n <ng-template #skeleton> </ng-template>\n </dsv-scroll-infinite>\n}\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}:host h2{text-transform:capitalize}:host dsv-card{margin:5px;width:calc(100% - 10px);gap:5px}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;margin:0 0 5px}:host dsv-card dsv-card-header h2{margin:0;flex:1}:host dsv-card dsv-form-reactive-searchbar{margin:0}:host dsv-scroll-infinite app-news-card-resume{width:calc(50% - 10px)}@media screen and (max-width:600px){:host dsv-scroll-infinite app-news-card-resume{width:100%}}\n"] }]
172
+ }], () => [{ type: NewsListService }], null); })();
173
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NewsListContainer, { className: "NewsListContainer", filePath: "container/list/news-list.container.ts", lineNumber: 27 }); })();
174
+
175
+ export { NewsListContainer };
176
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv-module-news-news-list.container-BOocOeoi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-module-news-news-list.container-BOocOeoi.mjs","sources":["../../../projects/ng-dsv/module/news/component/card/resume/news-card-resume.component.html","../../../projects/ng-dsv/module/news/component/card/resume/news-card-resume.component.ts","../../../projects/ng-dsv/module/news/container/list/news-list.container.html","../../../projects/ng-dsv/module/news/container/list/news-list.container.ts"],"sourcesContent":["<dsv-card [routerLink]=\"'/news/' + news()?.id\">\n @if (news()?.image) {\n <dsv-file-show url=\"/api/\" [src]=\"news()?.image ?? ''\" />\n }\n <h2 [class.error]=\"!news()?.active\">{{ news()?.title }}</h2>\n <span class=\"subtitle\">Le {{ news()?.creationDate! | formatDate: true }}</span>\n <dsv-markdown-container [data]=\"news()?.resume\" />\n <a [href]=\"'/news/' + news()?.id\" dsvLink>Lire la suite...</a>\n</dsv-card>\n","import { Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { DateFormatPipe } from '@ng-vagabond-lab/ng-dsv/date';\nimport { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { DsvFileShowComponent } from '@ng-vagabond-lab/ng-dsv/ds/file';\nimport { DsvMarkdownContainer } from '@ng-vagabond-lab/ng-dsv/ds/markdown';\nimport { RouterInternalPipe } from '@ng-vagabond-lab/ng-dsv/router';\nimport { NewsDto } from '../../../dto/news.dto';\n\n@Component({\n selector: 'app-news-card-resume',\n imports: [\n DsvCardComponent,\n DateFormatPipe,\n RouterInternalPipe,\n RouterLink,\n DsvFileShowComponent,\n DsvMarkdownContainer,\n ],\n templateUrl: './news-card-resume.component.html',\n styleUrls: ['../news-card.component.scss', './news-card-resume.component.scss'],\n})\nexport class NewsCardResumeComponent {\n readonly news = input<NewsDto>();\n}\n","<dsv-card>\n <dsv-card-header>\n <h2>\n <i class=\"ri-file-list-3-line\"></i>&nbsp;&nbsp;News\n @if (newsListService.total()) {\n ({{ newsListService.total() }})\n }\n </h2>\n @if (isAdmin()) {\n <dsv-button icon=\"ri-add-line\" color=\"secondary\" variant=\"outlined\" routerLink=\"/news/create\" />\n }\n </dsv-card-header>\n <dsv-form-reactive-searchbar [search]=\"newsListService.search()\" (callbackSearch)=\"doSearch($event)\" />\n</dsv-card>\n\n@if (newsListService.news().length === 0 && (!newsListService.isLoading() || newsListService.stopFetch())) {\n <dsv-card>\n <p>Aucun résultat trouvé</p>\n </dsv-card>\n} @else {\n <dsv-scroll-infinite\n #scroll\n class=\"card-miniature\"\n [loading]=\"newsListService.isLoading()\"\n (callback)=\"doFetch()\"\n >\n @for (news of newsListService.news(); track news.id) {\n <app-news-card-resume [news]=\"news\">\n @if (isAdmin()) {\n <dsv-button\n class=\"update-button\"\n icon=\"ri-tools-line\"\n [routerLink]=\"'/news/update/' + news?.id\"\n />\n }\n </app-news-card-resume>\n }\n <ng-template #skeleton> </ng-template>\n </dsv-scroll-infinite>\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { BaseSearchContainer } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvCardComponent, DsvCardHeaderComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { DsvFormReactiveSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';\nimport { DsvScrollInfiniteContainer } from '@ng-vagabond-lab/ng-dsv/ds/scroll';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { NewsCardResumeComponent } from '../../component/card/resume/news-card-resume.component';\nimport { NewsDto } from '../../dto/news.dto';\nimport { NewsListService } from '../../service/list/news-list.service';\n\n@Component({\n selector: 'app-news-list',\n imports: [\n DsvCardComponent,\n DsvFormReactiveSearchbarComponent,\n DsvScrollInfiniteContainer,\n NewsCardResumeComponent,\n DsvButtonComponent,\n DsvCardHeaderComponent,\n RouterLink,\n ],\n templateUrl: './news-list.container.html',\n styleUrl: './news-list.container.scss',\n})\nexport class NewsListContainer extends BaseSearchContainer<NewsListService, NewsDto> {\n readonly auhService = inject(AuthService);\n\n readonly isAdmin = computed<boolean>(() => this.auhService.hasRole('ADMIN'));\n\n constructor(public newsListService: NewsListService) {\n super(newsListService);\n this.seoService.setMeta(\n 'Les dernières news',\n 'Retrouver les dernières news sur movie-keeper.fr',\n '/images/logo.png',\n );\n }\n}\n"],"names":["i1.NewsListService"],"mappings":"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"}
@@ -8,18 +8,27 @@ import { DsvFormReactiveSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/fo
8
8
  import { DsvScrollInfiniteContainer } from '@ng-vagabond-lab/ng-dsv/ds/scroll';
9
9
  import { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';
10
10
  import { DateFormatPipe } from '@ng-vagabond-lab/ng-dsv/date';
11
+ import { DsvFileShowComponent } from '@ng-vagabond-lab/ng-dsv/ds/file';
12
+ import { DsvMarkdownContainer } from '@ng-vagabond-lab/ng-dsv/ds/markdown';
11
13
  import { RouterInternalPipe } from '@ng-vagabond-lab/ng-dsv/router';
12
- import { N as NewsMarkdownContainer, a as NewsListService } from './ng-vagabond-lab-ng-dsv-module-news-news-list.service-CVVSV7se.mjs';
14
+ import { N as NewsListService } from './ng-vagabond-lab-ng-dsv-module-news-news-list.service-MB7ocRqE.mjs';
13
15
 
14
16
  class NewsCardResumeComponent {
15
17
  news = input(/* @ts-ignore */
16
18
  ...(ngDevMode ? [undefined, { debugName: "news" }] : /* istanbul ignore next */ []));
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: NewsCardResumeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: NewsCardResumeComponent, isStandalone: true, selector: "app-news-card-resume", inputs: { news: { classPropertyName: "news", publicName: "news", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<dsv-card [routerLink]=\"'/news/' + news()?.id\">\n @if (news()?.image) {\n <img class=\"news-image\" [src]=\"news()?.image\" alt=\"\" />\n }\n <h2 [class.error]=\"!news()?.active\">{{ news()?.title }}</h2>\n <span class=\"subtitle\">Le {{ news()?.creationDate! | formatDate: true }}</span>\n <app-news-markdown-container [data]=\"news()?.resume\" />\n <a [href]=\"'/news/' + news()?.id\" dsvLink>Lire la suite...</a>\n</dsv-card>\n", styles: [":host{display:flex;min-height:300px;margin-right:5px}:host dsv-card{position:relative}:host dsv-card h1{margin:0}:host dsv-card h2{margin:0 0 5px}:host dsv-card img{width:calc(100% + 20px)}:host dsv-card .news-image{margin:0 0 5px;width:100%}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;gap:5px;margin:0 0 10px}:host dsv-card dsv-card-header dsv-button.round{--button-border-radius: 50%}:host dsv-card dsv-card-header h1,:host dsv-card dsv-card-header h2{flex:1}:host app-news-markdown-container{margin:20px 0}\n", ":host{margin:0;width:100%;min-height:200px!important}:host,:host a{display:flex;width:100%}\n"], dependencies: [{ kind: "component", type: DsvCardComponent, selector: "dsv-card", inputs: ["border"] }, { kind: "directive", type: RouterInternalPipe, selector: "a[dsvLink]", outputs: ["dsvLink"] }, { kind: "component", type: NewsMarkdownContainer, selector: "app-news-markdown-container", inputs: ["data"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "pipe", type: DateFormatPipe, name: "formatDate" }] });
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NewsCardResumeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NewsCardResumeComponent, isStandalone: true, selector: "app-news-card-resume", inputs: { news: { classPropertyName: "news", publicName: "news", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<dsv-card [routerLink]=\"'/news/' + news()?.id\">\n @if (news()?.image) {\n <dsv-file-show url=\"/api/\" [src]=\"news()?.image ?? ''\" />\n }\n <h2 [class.error]=\"!news()?.active\">{{ news()?.title }}</h2>\n <span class=\"subtitle\">Le {{ news()?.creationDate! | formatDate: true }}</span>\n <dsv-markdown-container [data]=\"news()?.resume\" />\n <a [href]=\"'/news/' + news()?.id\" dsvLink>Lire la suite...</a>\n</dsv-card>\n", styles: [":host{display:flex;width:100%;min-height:300px;margin-right:5px;overflow:hidden}:host dsv-card{position:relative}:host dsv-card h1{margin:0}:host dsv-card h2{margin:0 0 5px}:host dsv-card img{width:calc(100% + 20px)}:host dsv-card .news-image{margin:0 0 5px;width:100%}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;gap:5px;margin:0 0 10px}:host dsv-card dsv-card-header dsv-button.round{--button-border-radius: 50%}:host dsv-card dsv-card-header h1,:host dsv-card dsv-card-header h2{flex:1}:host dsv-markdown-container{margin:20px 0}\n", ":host{margin:0;width:100%;min-height:200px!important}:host,:host a{display:flex;width:100%}\n"], dependencies: [{ kind: "component", type: DsvCardComponent, selector: "dsv-card", inputs: ["border"] }, { kind: "directive", type: RouterInternalPipe, selector: "a[dsvLink]", outputs: ["dsvLink"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "component", type: DsvFileShowComponent, selector: "dsv-file-show", inputs: ["url", "src", "alt"] }, { kind: "component", type: DsvMarkdownContainer, selector: "dsv-markdown-container", inputs: ["data"] }, { kind: "pipe", type: DateFormatPipe, name: "formatDate" }] });
19
21
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: NewsCardResumeComponent, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NewsCardResumeComponent, decorators: [{
21
23
  type: Component,
22
- args: [{ selector: 'app-news-card-resume', imports: [DsvCardComponent, DateFormatPipe, RouterInternalPipe, NewsMarkdownContainer, RouterLink], template: "<dsv-card [routerLink]=\"'/news/' + news()?.id\">\n @if (news()?.image) {\n <img class=\"news-image\" [src]=\"news()?.image\" alt=\"\" />\n }\n <h2 [class.error]=\"!news()?.active\">{{ news()?.title }}</h2>\n <span class=\"subtitle\">Le {{ news()?.creationDate! | formatDate: true }}</span>\n <app-news-markdown-container [data]=\"news()?.resume\" />\n <a [href]=\"'/news/' + news()?.id\" dsvLink>Lire la suite...</a>\n</dsv-card>\n", styles: [":host{display:flex;min-height:300px;margin-right:5px}:host dsv-card{position:relative}:host dsv-card h1{margin:0}:host dsv-card h2{margin:0 0 5px}:host dsv-card img{width:calc(100% + 20px)}:host dsv-card .news-image{margin:0 0 5px;width:100%}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;gap:5px;margin:0 0 10px}:host dsv-card dsv-card-header dsv-button.round{--button-border-radius: 50%}:host dsv-card dsv-card-header h1,:host dsv-card dsv-card-header h2{flex:1}:host app-news-markdown-container{margin:20px 0}\n", ":host{margin:0;width:100%;min-height:200px!important}:host,:host a{display:flex;width:100%}\n"] }]
24
+ args: [{ selector: 'app-news-card-resume', imports: [
25
+ DsvCardComponent,
26
+ DateFormatPipe,
27
+ RouterInternalPipe,
28
+ RouterLink,
29
+ DsvFileShowComponent,
30
+ DsvMarkdownContainer,
31
+ ], template: "<dsv-card [routerLink]=\"'/news/' + news()?.id\">\n @if (news()?.image) {\n <dsv-file-show url=\"/api/\" [src]=\"news()?.image ?? ''\" />\n }\n <h2 [class.error]=\"!news()?.active\">{{ news()?.title }}</h2>\n <span class=\"subtitle\">Le {{ news()?.creationDate! | formatDate: true }}</span>\n <dsv-markdown-container [data]=\"news()?.resume\" />\n <a [href]=\"'/news/' + news()?.id\" dsvLink>Lire la suite...</a>\n</dsv-card>\n", styles: [":host{display:flex;width:100%;min-height:300px;margin-right:5px;overflow:hidden}:host dsv-card{position:relative}:host dsv-card h1{margin:0}:host dsv-card h2{margin:0 0 5px}:host dsv-card img{width:calc(100% + 20px)}:host dsv-card .news-image{margin:0 0 5px;width:100%}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;gap:5px;margin:0 0 10px}:host dsv-card dsv-card-header dsv-button.round{--button-border-radius: 50%}:host dsv-card dsv-card-header h1,:host dsv-card dsv-card-header h2{flex:1}:host dsv-markdown-container{margin:20px 0}\n", ":host{margin:0;width:100%;min-height:200px!important}:host,:host a{display:flex;width:100%}\n"] }]
23
32
  }], propDecorators: { news: [{ type: i0.Input, args: [{ isSignal: true, alias: "news", required: false }] }] } });
24
33
 
25
34
  class NewsListContainer extends BaseSearchContainer {
@@ -32,10 +41,10 @@ class NewsListContainer extends BaseSearchContainer {
32
41
  this.newsListService = newsListService;
33
42
  this.seoService.setMeta('Les dernières news', 'Retrouver les dernières news sur movie-keeper.fr', '/images/logo.png');
34
43
  }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: NewsListContainer, deps: [{ token: NewsListService }], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: NewsListContainer, isStandalone: true, selector: "app-news-list", usesInheritance: true, ngImport: i0, template: "<dsv-card>\n <dsv-card-header>\n <h2>\n <i class=\"ri-file-list-3-line\"></i>&nbsp;&nbsp;News\n @if (newsListService.total()) {\n ({{ newsListService.total() }})\n }\n </h2>\n @if (isAdmin()) {\n <dsv-button icon=\"ri-add-line\" color=\"secondary\" variant=\"outlined\" routerLink=\"/news/create\" />\n }\n </dsv-card-header>\n <dsv-form-reactive-searchbar [search]=\"newsListService.search()\" (callbackSearch)=\"doSearch($event)\" />\n</dsv-card>\n\n@if (newsListService.news().length === 0 && (!newsListService.isLoading() || newsListService.stopFetch())) {\n <dsv-card>\n <p>Aucun r\u00E9sultat trouv\u00E9</p>\n </dsv-card>\n} @else {\n <dsv-scroll-infinite\n #scroll\n class=\"card-miniature\"\n [loading]=\"newsListService.isLoading()\"\n (callback)=\"doFetch()\"\n >\n @for (news of newsListService.news(); track news.id) {\n <app-news-card-resume [news]=\"news\">\n @if (isAdmin()) {\n <dsv-button\n class=\"update-button\"\n icon=\"ri-tools-line\"\n [routerLink]=\"'/news/update/' + news?.id\"\n />\n }\n </app-news-card-resume>\n }\n <ng-template #skeleton> </ng-template>\n </dsv-scroll-infinite>\n}\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}:host dsv-card{margin:5px;width:calc(100% - 10px);gap:5px}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;margin:0 0 5px}:host dsv-card dsv-card-header h2{margin:0;flex:1}:host dsv-card dsv-form-reactive-searchbar{margin:0}:host dsv-scroll-infinite app-news-card-resume{width:calc(50% - 10px)}@media screen and (max-width:600px){:host dsv-scroll-infinite app-news-card-resume{width:100%}}\n"], dependencies: [{ kind: "component", type: DsvCardComponent, selector: "dsv-card", inputs: ["border"] }, { kind: "component", type: DsvFormReactiveSearchbarComponent, selector: "dsv-form-reactive-searchbar", inputs: ["search"], outputs: ["callbackSearch"] }, { kind: "component", type: DsvScrollInfiniteContainer, selector: "dsv-scroll-infinite", inputs: ["bottomOffset", "loading", "id"], outputs: ["callback"] }, { kind: "component", type: NewsCardResumeComponent, selector: "app-news-card-resume", inputs: ["news"] }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "component", type: DsvCardHeaderComponent, selector: "dsv-card-header" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }] });
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NewsListContainer, deps: [{ token: NewsListService }], target: i0.ɵɵFactoryTarget.Component });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NewsListContainer, isStandalone: true, selector: "app-news-list", usesInheritance: true, ngImport: i0, template: "<dsv-card>\n <dsv-card-header>\n <h2>\n <i class=\"ri-file-list-3-line\"></i>&nbsp;&nbsp;News\n @if (newsListService.total()) {\n ({{ newsListService.total() }})\n }\n </h2>\n @if (isAdmin()) {\n <dsv-button icon=\"ri-add-line\" color=\"secondary\" variant=\"outlined\" routerLink=\"/news/create\" />\n }\n </dsv-card-header>\n <dsv-form-reactive-searchbar [search]=\"newsListService.search()\" (callbackSearch)=\"doSearch($event)\" />\n</dsv-card>\n\n@if (newsListService.news().length === 0 && (!newsListService.isLoading() || newsListService.stopFetch())) {\n <dsv-card>\n <p>Aucun r\u00E9sultat trouv\u00E9</p>\n </dsv-card>\n} @else {\n <dsv-scroll-infinite\n #scroll\n class=\"card-miniature\"\n [loading]=\"newsListService.isLoading()\"\n (callback)=\"doFetch()\"\n >\n @for (news of newsListService.news(); track news.id) {\n <app-news-card-resume [news]=\"news\">\n @if (isAdmin()) {\n <dsv-button\n class=\"update-button\"\n icon=\"ri-tools-line\"\n [routerLink]=\"'/news/update/' + news?.id\"\n />\n }\n </app-news-card-resume>\n }\n <ng-template #skeleton> </ng-template>\n </dsv-scroll-infinite>\n}\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}:host h2{text-transform:capitalize}:host dsv-card{margin:5px;width:calc(100% - 10px);gap:5px}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;margin:0 0 5px}:host dsv-card dsv-card-header h2{margin:0;flex:1}:host dsv-card dsv-form-reactive-searchbar{margin:0}:host dsv-scroll-infinite app-news-card-resume{width:calc(50% - 10px)}@media screen and (max-width:600px){:host dsv-scroll-infinite app-news-card-resume{width:100%}}\n"], dependencies: [{ kind: "component", type: DsvCardComponent, selector: "dsv-card", inputs: ["border"] }, { kind: "component", type: DsvFormReactiveSearchbarComponent, selector: "dsv-form-reactive-searchbar", inputs: ["search"], outputs: ["callbackSearch"] }, { kind: "component", type: DsvScrollInfiniteContainer, selector: "dsv-scroll-infinite", inputs: ["bottomOffset", "loading", "id"], outputs: ["callback"] }, { kind: "component", type: NewsCardResumeComponent, selector: "app-news-card-resume", inputs: ["news"] }, { kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "routerLink", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "component", type: DsvCardHeaderComponent, selector: "dsv-card-header" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }] });
37
46
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: NewsListContainer, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NewsListContainer, decorators: [{
39
48
  type: Component,
40
49
  args: [{ selector: 'app-news-list', imports: [
41
50
  DsvCardComponent,
@@ -45,8 +54,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
45
54
  DsvButtonComponent,
46
55
  DsvCardHeaderComponent,
47
56
  RouterLink,
48
- ], template: "<dsv-card>\n <dsv-card-header>\n <h2>\n <i class=\"ri-file-list-3-line\"></i>&nbsp;&nbsp;News\n @if (newsListService.total()) {\n ({{ newsListService.total() }})\n }\n </h2>\n @if (isAdmin()) {\n <dsv-button icon=\"ri-add-line\" color=\"secondary\" variant=\"outlined\" routerLink=\"/news/create\" />\n }\n </dsv-card-header>\n <dsv-form-reactive-searchbar [search]=\"newsListService.search()\" (callbackSearch)=\"doSearch($event)\" />\n</dsv-card>\n\n@if (newsListService.news().length === 0 && (!newsListService.isLoading() || newsListService.stopFetch())) {\n <dsv-card>\n <p>Aucun r\u00E9sultat trouv\u00E9</p>\n </dsv-card>\n} @else {\n <dsv-scroll-infinite\n #scroll\n class=\"card-miniature\"\n [loading]=\"newsListService.isLoading()\"\n (callback)=\"doFetch()\"\n >\n @for (news of newsListService.news(); track news.id) {\n <app-news-card-resume [news]=\"news\">\n @if (isAdmin()) {\n <dsv-button\n class=\"update-button\"\n icon=\"ri-tools-line\"\n [routerLink]=\"'/news/update/' + news?.id\"\n />\n }\n </app-news-card-resume>\n }\n <ng-template #skeleton> </ng-template>\n </dsv-scroll-infinite>\n}\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}:host dsv-card{margin:5px;width:calc(100% - 10px);gap:5px}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;margin:0 0 5px}:host dsv-card dsv-card-header h2{margin:0;flex:1}:host dsv-card dsv-form-reactive-searchbar{margin:0}:host dsv-scroll-infinite app-news-card-resume{width:calc(50% - 10px)}@media screen and (max-width:600px){:host dsv-scroll-infinite app-news-card-resume{width:100%}}\n"] }]
57
+ ], template: "<dsv-card>\n <dsv-card-header>\n <h2>\n <i class=\"ri-file-list-3-line\"></i>&nbsp;&nbsp;News\n @if (newsListService.total()) {\n ({{ newsListService.total() }})\n }\n </h2>\n @if (isAdmin()) {\n <dsv-button icon=\"ri-add-line\" color=\"secondary\" variant=\"outlined\" routerLink=\"/news/create\" />\n }\n </dsv-card-header>\n <dsv-form-reactive-searchbar [search]=\"newsListService.search()\" (callbackSearch)=\"doSearch($event)\" />\n</dsv-card>\n\n@if (newsListService.news().length === 0 && (!newsListService.isLoading() || newsListService.stopFetch())) {\n <dsv-card>\n <p>Aucun r\u00E9sultat trouv\u00E9</p>\n </dsv-card>\n} @else {\n <dsv-scroll-infinite\n #scroll\n class=\"card-miniature\"\n [loading]=\"newsListService.isLoading()\"\n (callback)=\"doFetch()\"\n >\n @for (news of newsListService.news(); track news.id) {\n <app-news-card-resume [news]=\"news\">\n @if (isAdmin()) {\n <dsv-button\n class=\"update-button\"\n icon=\"ri-tools-line\"\n [routerLink]=\"'/news/update/' + news?.id\"\n />\n }\n </app-news-card-resume>\n }\n <ng-template #skeleton> </ng-template>\n </dsv-scroll-infinite>\n}\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}:host h2{text-transform:capitalize}:host dsv-card{margin:5px;width:calc(100% - 10px);gap:5px}:host dsv-card dsv-card-header{display:flex;flex-direction:row;align-items:center;margin:0 0 5px}:host dsv-card dsv-card-header h2{margin:0;flex:1}:host dsv-card dsv-form-reactive-searchbar{margin:0}:host dsv-scroll-infinite app-news-card-resume{width:calc(50% - 10px)}@media screen and (max-width:600px){:host dsv-scroll-infinite app-news-card-resume{width:100%}}\n"] }]
49
58
  }], ctorParameters: () => [{ type: NewsListService }] });
50
59
 
51
60
  export { NewsListContainer };
52
- //# sourceMappingURL=ng-vagabond-lab-ng-dsv-module-news-news-list.container-CkUQEI5Q.mjs.map
61
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv-module-news-news-list.container-dRUMZot2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-module-news-news-list.container-dRUMZot2.mjs","sources":["../../../projects/ng-dsv/module/news/component/card/resume/news-card-resume.component.ts","../../../projects/ng-dsv/module/news/component/card/resume/news-card-resume.component.html","../../../projects/ng-dsv/module/news/container/list/news-list.container.ts","../../../projects/ng-dsv/module/news/container/list/news-list.container.html"],"sourcesContent":["import { Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { DateFormatPipe } from '@ng-vagabond-lab/ng-dsv/date';\nimport { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { DsvFileShowComponent } from '@ng-vagabond-lab/ng-dsv/ds/file';\nimport { DsvMarkdownContainer } from '@ng-vagabond-lab/ng-dsv/ds/markdown';\nimport { RouterInternalPipe } from '@ng-vagabond-lab/ng-dsv/router';\nimport { NewsDto } from '../../../dto/news.dto';\n\n@Component({\n selector: 'app-news-card-resume',\n imports: [\n DsvCardComponent,\n DateFormatPipe,\n RouterInternalPipe,\n RouterLink,\n DsvFileShowComponent,\n DsvMarkdownContainer,\n ],\n templateUrl: './news-card-resume.component.html',\n styleUrls: ['../news-card.component.scss', './news-card-resume.component.scss'],\n})\nexport class NewsCardResumeComponent {\n readonly news = input<NewsDto>();\n}\n","<dsv-card [routerLink]=\"'/news/' + news()?.id\">\n @if (news()?.image) {\n <dsv-file-show url=\"/api/\" [src]=\"news()?.image ?? ''\" />\n }\n <h2 [class.error]=\"!news()?.active\">{{ news()?.title }}</h2>\n <span class=\"subtitle\">Le {{ news()?.creationDate! | formatDate: true }}</span>\n <dsv-markdown-container [data]=\"news()?.resume\" />\n <a [href]=\"'/news/' + news()?.id\" dsvLink>Lire la suite...</a>\n</dsv-card>\n","import { Component, computed, inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { BaseSearchContainer } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvCardComponent, DsvCardHeaderComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { DsvFormReactiveSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';\nimport { DsvScrollInfiniteContainer } from '@ng-vagabond-lab/ng-dsv/ds/scroll';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { NewsCardResumeComponent } from '../../component/card/resume/news-card-resume.component';\nimport { NewsDto } from '../../dto/news.dto';\nimport { NewsListService } from '../../service/list/news-list.service';\n\n@Component({\n selector: 'app-news-list',\n imports: [\n DsvCardComponent,\n DsvFormReactiveSearchbarComponent,\n DsvScrollInfiniteContainer,\n NewsCardResumeComponent,\n DsvButtonComponent,\n DsvCardHeaderComponent,\n RouterLink,\n ],\n templateUrl: './news-list.container.html',\n styleUrl: './news-list.container.scss',\n})\nexport class NewsListContainer extends BaseSearchContainer<NewsListService, NewsDto> {\n readonly auhService = inject(AuthService);\n\n readonly isAdmin = computed<boolean>(() => this.auhService.hasRole('ADMIN'));\n\n constructor(public newsListService: NewsListService) {\n super(newsListService);\n this.seoService.setMeta(\n 'Les dernières news',\n 'Retrouver les dernières news sur movie-keeper.fr',\n '/images/logo.png',\n );\n }\n}\n","<dsv-card>\n <dsv-card-header>\n <h2>\n <i class=\"ri-file-list-3-line\"></i>&nbsp;&nbsp;News\n @if (newsListService.total()) {\n ({{ newsListService.total() }})\n }\n </h2>\n @if (isAdmin()) {\n <dsv-button icon=\"ri-add-line\" color=\"secondary\" variant=\"outlined\" routerLink=\"/news/create\" />\n }\n </dsv-card-header>\n <dsv-form-reactive-searchbar [search]=\"newsListService.search()\" (callbackSearch)=\"doSearch($event)\" />\n</dsv-card>\n\n@if (newsListService.news().length === 0 && (!newsListService.isLoading() || newsListService.stopFetch())) {\n <dsv-card>\n <p>Aucun résultat trouvé</p>\n </dsv-card>\n} @else {\n <dsv-scroll-infinite\n #scroll\n class=\"card-miniature\"\n [loading]=\"newsListService.isLoading()\"\n (callback)=\"doFetch()\"\n >\n @for (news of newsListService.news(); track news.id) {\n <app-news-card-resume [news]=\"news\">\n @if (isAdmin()) {\n <dsv-button\n class=\"update-button\"\n icon=\"ri-tools-line\"\n [routerLink]=\"'/news/update/' + news?.id\"\n />\n }\n </app-news-card-resume>\n }\n <ng-template #skeleton> </ng-template>\n </dsv-scroll-infinite>\n}\n"],"names":["i1.NewsListService"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { BaseSearchService } from '@ng-vagabond-lab/ng-dsv/base/service';
4
+ import { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';
5
+
6
+ class NewsListService extends BaseSearchService {
7
+ authService = inject(AuthService);
8
+ news = this.datas;
9
+ getEndPoint() {
10
+ return '/news/findBy';
11
+ }
12
+ getParams() {
13
+ let fields = '(title%And|Description%)AndActive>>creationDateDesc';
14
+ let values = this.search() + ',' + this.search() + ',true';
15
+ if (this.authService.isAdmin()) {
16
+ fields = '(title%And|Description%)>>creationDateDesc';
17
+ values = this.search() + ',' + this.search() + '';
18
+ }
19
+ return ('&fields=' +
20
+ encodeURIComponent(fields) +
21
+ '&values=' +
22
+ values +
23
+ '&first=' +
24
+ (this.page() - 1) +
25
+ '&max=20');
26
+ }
27
+ static ɵfac = /*@__PURE__*/ (() => { let ɵNewsListService_BaseFactory; return function NewsListService_Factory(__ngFactoryType__) { return (ɵNewsListService_BaseFactory || (ɵNewsListService_BaseFactory = i0.ɵɵgetInheritedFactory(NewsListService)))(__ngFactoryType__ || NewsListService); }; })();
28
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NewsListService, factory: NewsListService.ɵfac, providedIn: 'root' });
29
+ }
30
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NewsListService, [{
31
+ type: Injectable,
32
+ args: [{
33
+ providedIn: 'root',
34
+ }]
35
+ }], null, null); })();
36
+
37
+ export { NewsListService as N };
38
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv-module-news-news-list.service-C4rdx_5c.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-module-news-news-list.service-C4rdx_5c.mjs","sources":["../../../projects/ng-dsv/module/news/service/list/news-list.service.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { BaseSearchService } from '@ng-vagabond-lab/ng-dsv/base/service';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { NewsDto } from '../../dto/news.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewsListService extends BaseSearchService<NewsDto> {\n readonly authService = inject(AuthService);\n\n readonly news = this.datas;\n\n override getEndPoint(): string {\n return '/news/findBy';\n }\n\n override getParams(): string {\n let fields = '(title%And|Description%)AndActive>>creationDateDesc';\n let values = this.search() + ',' + this.search() + ',true';\n if (this.authService.isAdmin()) {\n fields = '(title%And|Description%)>>creationDateDesc';\n values = this.search() + ',' + this.search() + '';\n }\n return (\n '&fields=' +\n encodeURIComponent(fields) +\n '&values=' +\n values +\n '&first=' +\n (this.page() - 1) +\n '&max=20'\n );\n }\n}\n"],"names":[],"mappings":";;;;;AAQM,MAAO,eAAgB,SAAQ,iBAA0B,CAAA;AAClD,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEjC,IAAA,IAAI,GAAG,IAAI,CAAC,KAAK;IAEjB,WAAW,GAAA;AAChB,QAAA,OAAO,cAAc;IACzB;IAES,SAAS,GAAA;QACd,IAAI,MAAM,GAAG,qDAAqD;AAClE,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO;AAC1D,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE;YAC5B,MAAM,GAAG,4CAA4C;AACrD,YAAA,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACrD;AACA,QAAA,QACI,UAAU;YACV,kBAAkB,CAAC,MAAM,CAAC;YAC1B,UAAU;YACV,MAAM;YACN,SAAS;AACT,aAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjB,YAAA,SAAS;IAEjB;AAzBS,IAAA,OAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,4BAAA,CAAA,CAAA,OAAA,SAAA,uBAAA,CAAA,iBAAA,EAAA,EAAA,OAAA,CAAA,4BAAA,KAAA,4BAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,eAAe,yBAAf,eAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA;gEAAf,eAAe,EAAA,OAAA,EAAf,eAAe,CAAA,IAAA,EAAA,UAAA,EAFZ,MAAM,EAAA,CAAA;;iFAET,eAAe,EAAA,CAAA;cAH3B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,UAAU,EAAE,MAAM;AACrB,aAAA;;;;;"}
@@ -0,0 +1,38 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { BaseSearchService } from '@ng-vagabond-lab/ng-dsv/base/service';
4
+ import { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';
5
+
6
+ class NewsListService extends BaseSearchService {
7
+ authService = inject(AuthService);
8
+ news = this.datas;
9
+ getEndPoint() {
10
+ return '/news/findBy';
11
+ }
12
+ getParams() {
13
+ let fields = '(title%And|Description%)AndActive>>creationDateDesc';
14
+ let values = this.search() + ',' + this.search() + ',true';
15
+ if (this.authService.isAdmin()) {
16
+ fields = '(title%And|Description%)>>creationDateDesc';
17
+ values = this.search() + ',' + this.search() + '';
18
+ }
19
+ return ('&fields=' +
20
+ encodeURIComponent(fields) +
21
+ '&values=' +
22
+ values +
23
+ '&first=' +
24
+ (this.page() - 1) +
25
+ '&max=20');
26
+ }
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NewsListService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
28
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NewsListService, providedIn: 'root' });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NewsListService, decorators: [{
31
+ type: Injectable,
32
+ args: [{
33
+ providedIn: 'root',
34
+ }]
35
+ }] });
36
+
37
+ export { NewsListService as N };
38
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv-module-news-news-list.service-MB7ocRqE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-module-news-news-list.service-MB7ocRqE.mjs","sources":["../../../projects/ng-dsv/module/news/service/list/news-list.service.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { BaseSearchService } from '@ng-vagabond-lab/ng-dsv/base/service';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { NewsDto } from '../../dto/news.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewsListService extends BaseSearchService<NewsDto> {\n readonly authService = inject(AuthService);\n\n readonly news = this.datas;\n\n override getEndPoint(): string {\n return '/news/findBy';\n }\n\n override getParams(): string {\n let fields = '(title%And|Description%)AndActive>>creationDateDesc';\n let values = this.search() + ',' + this.search() + ',true';\n if (this.authService.isAdmin()) {\n fields = '(title%And|Description%)>>creationDateDesc';\n values = this.search() + ',' + this.search() + '';\n }\n return (\n '&fields=' +\n encodeURIComponent(fields) +\n '&values=' +\n values +\n '&first=' +\n (this.page() - 1) +\n '&max=20'\n );\n }\n}\n"],"names":[],"mappings":";;;;;AAQM,MAAO,eAAgB,SAAQ,iBAA0B,CAAA;AAClD,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEjC,IAAA,IAAI,GAAG,IAAI,CAAC,KAAK;IAEjB,WAAW,GAAA;AAChB,QAAA,OAAO,cAAc;IACzB;IAES,SAAS,GAAA;QACd,IAAI,MAAM,GAAG,qDAAqD;AAClE,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO;AAC1D,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE;YAC5B,MAAM,GAAG,4CAA4C;AACrD,YAAA,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACrD;AACA,QAAA,QACI,UAAU;YACV,kBAAkB,CAAC,MAAM,CAAC;YAC1B,UAAU;YACV,MAAM;YACN,SAAS;AACT,aAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjB,YAAA,SAAS;IAEjB;uGAzBS,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA;;2FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;;;"}