@ng-vagabond-lab/ng-dsv 0.2.61 → 0.2.63

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 (149) hide show
  1. package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs +161 -156
  2. package/fesm2022/ng-vagabond-lab-ng-dsv-api.mjs.map +1 -1
  3. package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs +193 -152
  4. package/fesm2022/ng-vagabond-lab-ng-dsv-base-service.mjs.map +1 -1
  5. package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs +318 -200
  6. package/fesm2022/ng-vagabond-lab-ng-dsv-base.mjs.map +1 -1
  7. package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs +58 -51
  8. package/fesm2022/ng-vagabond-lab-ng-dsv-date.mjs.map +1 -1
  9. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs +116 -45
  10. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs.map +1 -1
  11. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs +94 -47
  12. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs.map +1 -1
  13. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +310 -109
  14. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs.map +1 -1
  15. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +209 -54
  16. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs.map +1 -1
  17. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs +104 -40
  18. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs.map +1 -1
  19. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-color.mjs +183 -62
  20. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-color.mjs.map +1 -1
  21. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs +68 -29
  22. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-container.mjs.map +1 -1
  23. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs +434 -147
  24. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs.map +1 -1
  25. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs +1032 -196
  26. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-reactive.mjs.map +1 -1
  27. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs +1016 -266
  28. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-form-signal.mjs.map +1 -1
  29. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs +120 -32
  30. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-header.mjs.map +1 -1
  31. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-img.mjs +138 -40
  32. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-img.mjs.map +1 -1
  33. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs +158 -48
  34. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-item.mjs.map +1 -1
  35. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-linear-progress.mjs +90 -23
  36. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-linear-progress.mjs.map +1 -1
  37. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-link-pipe.mjs +80 -50
  38. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-link-pipe.mjs.map +1 -1
  39. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs +292 -161
  40. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-list.mjs.map +1 -1
  41. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-markdown.mjs +104 -34
  42. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-markdown.mjs.map +1 -1
  43. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs +302 -141
  44. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-menu.mjs.map +1 -1
  45. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs +511 -136
  46. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-modal.mjs.map +1 -1
  47. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs +101 -26
  48. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-paginate.mjs.map +1 -1
  49. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs +395 -192
  50. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-scroll.mjs.map +1 -1
  51. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-skeleton.mjs +39 -17
  52. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-skeleton.mjs.map +1 -1
  53. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs +245 -80
  54. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tab.mjs.map +1 -1
  55. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs +181 -88
  56. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-table.mjs.map +1 -1
  57. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +145 -68
  58. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -1
  59. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs +162 -101
  60. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs.map +1 -1
  61. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs +130 -76
  62. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs.map +1 -1
  63. package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs +56 -46
  64. package/fesm2022/ng-vagabond-lab-ng-dsv-environment.mjs.map +1 -1
  65. package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs +73 -69
  66. package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs.map +1 -1
  67. package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs +857 -411
  68. package/fesm2022/ng-vagabond-lab-ng-dsv-module-admin.mjs.map +1 -1
  69. package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs +298 -233
  70. package/fesm2022/ng-vagabond-lab-ng-dsv-module-auth.mjs.map +1 -1
  71. package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs +109 -24
  72. package/fesm2022/ng-vagabond-lab-ng-dsv-module-contact.mjs.map +1 -1
  73. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-form.container-CIOlZpZl.mjs +168 -0
  74. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-form.container-CIOlZpZl.mjs.map +1 -0
  75. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.container-B_dudCv6.mjs +137 -0
  76. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.container-B_dudCv6.mjs.map +1 -0
  77. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-DGCx3RVt.mjs +48 -0
  78. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-DGCx3RVt.mjs.map +1 -0
  79. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news.container-BoB6VYne.mjs +306 -0
  80. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news.container-BoB6VYne.mjs.map +1 -0
  81. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news.mjs +141 -54
  82. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news.mjs.map +1 -1
  83. package/fesm2022/ng-vagabond-lab-ng-dsv-module-notification.mjs +492 -182
  84. package/fesm2022/ng-vagabond-lab-ng-dsv-module-notification.mjs.map +1 -1
  85. package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs +116 -81
  86. package/fesm2022/ng-vagabond-lab-ng-dsv-platform.mjs.map +1 -1
  87. package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs +188 -117
  88. package/fesm2022/ng-vagabond-lab-ng-dsv-router.mjs.map +1 -1
  89. package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs +122 -123
  90. package/fesm2022/ng-vagabond-lab-ng-dsv-storage.mjs.map +1 -1
  91. package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +613 -127
  92. package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs.map +1 -1
  93. package/fesm2022/ng-vagabond-lab-ng-dsv-type.mjs +33 -27
  94. package/fesm2022/ng-vagabond-lab-ng-dsv-type.mjs.map +1 -1
  95. package/fesm2022/ng-vagabond-lab-ng-dsv.mjs +33 -27
  96. package/fesm2022/ng-vagabond-lab-ng-dsv.mjs.map +1 -1
  97. package/package.json +1 -1
  98. package/types/ng-vagabond-lab-ng-dsv-api.d.ts +94 -101
  99. package/types/ng-vagabond-lab-ng-dsv-base-service.d.ts +44 -51
  100. package/types/ng-vagabond-lab-ng-dsv-base.d.ts +90 -105
  101. package/types/ng-vagabond-lab-ng-dsv-date.d.ts +9 -13
  102. package/types/ng-vagabond-lab-ng-dsv-ds-accordion.d.ts +29 -16
  103. package/types/ng-vagabond-lab-ng-dsv-ds-avatar.d.ts +22 -17
  104. package/types/ng-vagabond-lab-ng-dsv-ds-button.d.ts +60 -20
  105. package/types/ng-vagabond-lab-ng-dsv-ds-card.d.ts +34 -23
  106. package/types/ng-vagabond-lab-ng-dsv-ds-chip.d.ts +19 -14
  107. package/types/ng-vagabond-lab-ng-dsv-ds-color.d.ts +55 -27
  108. package/types/ng-vagabond-lab-ng-dsv-ds-container.d.ts +13 -10
  109. package/types/ng-vagabond-lab-ng-dsv-ds-file.d.ts +102 -48
  110. package/types/ng-vagabond-lab-ng-dsv-ds-form-reactive.d.ts +170 -68
  111. package/types/ng-vagabond-lab-ng-dsv-ds-form-signal.d.ts +219 -102
  112. package/types/ng-vagabond-lab-ng-dsv-ds-header.d.ts +28 -15
  113. package/types/ng-vagabond-lab-ng-dsv-ds-img.d.ts +41 -18
  114. package/types/ng-vagabond-lab-ng-dsv-ds-item.d.ts +44 -19
  115. package/types/ng-vagabond-lab-ng-dsv-ds-linear-progress.d.ts +24 -11
  116. package/types/ng-vagabond-lab-ng-dsv-ds-link-pipe.d.ts +14 -18
  117. package/types/ng-vagabond-lab-ng-dsv-ds-list.d.ts +52 -46
  118. package/types/ng-vagabond-lab-ng-dsv-ds-markdown.d.ts +15 -12
  119. package/types/ng-vagabond-lab-ng-dsv-ds-menu.d.ts +64 -51
  120. package/types/ng-vagabond-lab-ng-dsv-ds-modal.d.ts +128 -57
  121. package/types/ng-vagabond-lab-ng-dsv-ds-paginate.d.ts +22 -12
  122. package/types/ng-vagabond-lab-ng-dsv-ds-scroll.d.ts +75 -57
  123. package/types/ng-vagabond-lab-ng-dsv-ds-skeleton.d.ts +5 -8
  124. package/types/ng-vagabond-lab-ng-dsv-ds-tab.d.ts +53 -33
  125. package/types/ng-vagabond-lab-ng-dsv-ds-table.d.ts +45 -30
  126. package/types/ng-vagabond-lab-ng-dsv-ds-theme.d.ts +25 -31
  127. package/types/ng-vagabond-lab-ng-dsv-ds-toast.d.ts +44 -39
  128. package/types/ng-vagabond-lab-ng-dsv-ds-tooltip.d.ts +37 -32
  129. package/types/ng-vagabond-lab-ng-dsv-environment.d.ts +22 -27
  130. package/types/ng-vagabond-lab-ng-dsv-i18n.d.ts +25 -28
  131. package/types/ng-vagabond-lab-ng-dsv-module-admin.d.ts +164 -148
  132. package/types/ng-vagabond-lab-ng-dsv-module-auth.d.ts +59 -66
  133. package/types/ng-vagabond-lab-ng-dsv-module-contact.d.ts +12 -9
  134. package/types/ng-vagabond-lab-ng-dsv-module-news.d.ts +25 -25
  135. package/types/ng-vagabond-lab-ng-dsv-module-notification.d.ts +75 -73
  136. package/types/ng-vagabond-lab-ng-dsv-platform.d.ts +26 -27
  137. package/types/ng-vagabond-lab-ng-dsv-router.d.ts +44 -39
  138. package/types/ng-vagabond-lab-ng-dsv-storage.d.ts +31 -37
  139. package/types/ng-vagabond-lab-ng-dsv-template.d.ts +91 -55
  140. package/types/ng-vagabond-lab-ng-dsv-type.d.ts +23 -27
  141. package/types/ng-vagabond-lab-ng-dsv.d.ts +23 -27
  142. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-form.container-kXmxZfBB.mjs +0 -64
  143. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-form.container-kXmxZfBB.mjs.map +0 -1
  144. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.container-BLxxUo6e.mjs +0 -38
  145. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.container-BLxxUo6e.mjs.map +0 -1
  146. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-Bf6hMWCh.mjs +0 -38
  147. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news-list.service-Bf6hMWCh.mjs.map +0 -1
  148. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news.container-B24oxywT.mjs +0 -114
  149. package/fesm2022/ng-vagabond-lab-ng-dsv-module-news-news.container-B24oxywT.mjs.map +0 -1
@@ -1,157 +1,162 @@
1
- import { httpResource, HttpClient } from '@angular/common/http';
2
- import * as i0 from '@angular/core';
3
- import { signal, Injectable, inject } from '@angular/core';
4
- import { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';
5
- import { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';
6
- import { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';
7
-
8
- class ApiResourceService {
9
- url = signal(undefined, /* @ts-ignore */
10
- ...(ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []));
11
- resource = httpResource(() => ({
12
- url: `${this.url()}`,
13
- method: 'GET',
14
- headers: {
15
- 'Content-Type': 'application/json',
16
- },
17
- params: {},
18
- reportProgress: true,
19
- transferCache: true,
20
- keepalive: true,
21
- mode: 'same-origin',
22
- redirect: 'error',
23
- priority: 'high',
24
- cache: 'force-cache',
25
- credentials: 'include',
26
- referrer: 'no-referrer',
27
- integrity: 'sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GhEXAMPLEKEY=',
28
- }), /* @ts-ignore */
29
- ...(ngDevMode ? [{ debugName: "resource" }] : /* istanbul ignore next */ []));
30
- constructor() { }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ApiResourceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ApiResourceService, providedIn: 'root' });
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ApiResourceService, decorators: [{
35
- type: Injectable,
36
- args: [{
37
- providedIn: 'root',
38
- }]
39
- }], ctorParameters: () => [] });
40
-
41
- class ApiService {
42
- httpClient = inject(HttpClient);
43
- toastService = inject(ToastService);
44
- platformService = inject(PlatformService);
45
- environmentService = inject(EnvironmentService);
46
- baseUrl = signal('/api', /* @ts-ignore */
47
- ...(ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []));
48
- nbLoaded = signal(0, /* @ts-ignore */
49
- ...(ngDevMode ? [{ debugName: "nbLoaded" }] : /* istanbul ignore next */ []));
50
- blocked = signal(false, /* @ts-ignore */
51
- ...(ngDevMode ? [{ debugName: "blocked" }] : /* istanbul ignore next */ []));
52
- get(url, callback, callbackError = () => { }) {
53
- this.doSubscribe(url, '', this.httpClient.get(this.baseUrl() + url), callback, callbackError);
54
- }
55
- post(url, data, callback = () => { }, withCredentials = false, callbackError = () => { }) {
56
- this.doSubscribe(url, data, this.httpClient.post(this.baseUrl() + url, data, { withCredentials }), callback, callbackError);
57
- }
58
- put(url, data, callback = () => { }, callbackError = () => { }) {
59
- this.doSubscribe(url, data, this.httpClient.put(this.baseUrl() + url, data), callback, callbackError);
60
- }
61
- delete(url, callback, callbackError = () => { }) {
62
- this.doSubscribe(url, '', this.httpClient.delete(this.baseUrl() + url), callback, callbackError);
63
- }
64
- findById(endPoint, id, callback) {
65
- this.get(endPoint + '/' + id, callback);
66
- }
67
- findBy(endPoint, fields, values, first, max, order, callback) {
68
- const orderType = order.orderAsc ? '' : 'Desc';
69
- const orderConst = order.order ? '>>' + order.order + orderType : '';
70
- const fieldsComplete = fields + orderConst;
71
- this.get(endPoint +
72
- '?fields=' +
73
- encodeURI(fieldsComplete) +
74
- '&values=' +
75
- encodeURI(values) +
76
- '&first=' +
77
- first +
78
- '&max=' +
79
- max, (data) => {
80
- callback(data);
81
- });
82
- }
83
- countBy(endPoint, fields, values, callback) {
84
- return this.get(endPoint + '?fields=' + encodeURI(fields) + '&values=' + values, (data) => {
85
- callback(data);
86
- });
87
- }
88
- createOrUpdate(endPoint, data, callback, toast) {
89
- if (this.blocked()) {
90
- return;
91
- }
92
- this.blocked.set(true);
93
- if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {
94
- this.put('/' + endPoint + '/', data, (dateReturn) => {
95
- toast &&
96
- this.toastService.showToast({
97
- text: toast ?? 'UPDATE_OK',
98
- type: 'success',
99
- closeAll: true,
100
- });
101
- callback(dateReturn);
102
- this.blocked.set(false);
103
- }, () => {
104
- this.blocked.set(false);
105
- });
106
- }
107
- else {
108
- this.post('/' + endPoint + '/', data, (dateReturn) => {
109
- toast && this.toastService.showToast({ text: toast ?? 'CREATION_OK', type: 'success' });
110
- callback(dateReturn);
111
- this.blocked.set(false);
112
- }, false, () => {
113
- this.blocked.set(false);
114
- });
115
- }
116
- }
117
- doSubscribe(url, data, observable, callback, callbackError = () => { }) {
118
- this.nbLoaded.update((loaded) => loaded + 1);
119
- observable.subscribe({
120
- next: (res) => {
121
- this.nbLoaded.update((loaded) => loaded - 1);
122
- this.info(url, data, res);
123
- callback(res);
124
- },
125
- error: (error) => {
126
- this.nbLoaded.update((loaded) => loaded - 1);
127
- this.error(url, data, error);
128
- callbackError();
129
- },
130
- });
131
- }
132
- info(url, body, data = null) {
133
- if (this.platformService.isPlatformBrowser()) {
134
- console.log(url, body, data);
135
- }
136
- }
137
- error(url, body, error) {
138
- if (this.platformService.isPlatformBrowser()) {
139
- console.error(url, body, error);
140
- }
141
- }
142
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
143
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ApiService, providedIn: 'root' });
144
- }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ApiService, decorators: [{
146
- type: Injectable,
147
- args: [{
148
- providedIn: 'root',
149
- }]
150
- }] });
151
-
152
- /**
153
- * Generated bundle index. Do not edit.
154
- */
155
-
1
+ import { HttpClient, httpResource } from "@angular/common/http";
2
+ import * as i0 from "@angular/core";
3
+ import { Injectable, inject, signal } from "@angular/core";
4
+ import { ToastService } from "@ng-vagabond-lab/ng-dsv/ds/toast";
5
+ import { EnvironmentService } from "@ng-vagabond-lab/ng-dsv/environment";
6
+ import { PlatformService } from "@ng-vagabond-lab/ng-dsv/platform";
7
+ var ApiResourceService = class ApiResourceService {
8
+ url = signal(void 0, ...ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []);
9
+ resource = httpResource(() => ({
10
+ url: `${this.url()}`,
11
+ method: "GET",
12
+ headers: { "Content-Type": "application/json" },
13
+ params: {},
14
+ reportProgress: true,
15
+ transferCache: true,
16
+ keepalive: true,
17
+ mode: "same-origin",
18
+ redirect: "error",
19
+ priority: "high",
20
+ cache: "force-cache",
21
+ credentials: "include",
22
+ referrer: "no-referrer",
23
+ integrity: "sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GhEXAMPLEKEY="
24
+ }), ...ngDevMode ? [{ debugName: "resource" }] : /* istanbul ignore next */ []);
25
+ constructor() {}
26
+ static ɵfac = i0.ɵɵngDeclareFactory({
27
+ minVersion: "12.0.0",
28
+ version: "22.2.1",
29
+ ngImport: i0,
30
+ type: ApiResourceService,
31
+ deps: [],
32
+ target: i0.ɵɵFactoryTarget.Injectable
33
+ });
34
+ static ɵprov = i0.ɵɵngDeclareInjectable({
35
+ minVersion: "12.0.0",
36
+ version: "22.2.1",
37
+ ngImport: i0,
38
+ type: ApiResourceService,
39
+ providedIn: "root"
40
+ });
41
+ };
42
+ i0.ɵɵngDeclareClassMetadata({
43
+ minVersion: "12.0.0",
44
+ version: "22.2.1",
45
+ ngImport: i0,
46
+ type: ApiResourceService,
47
+ decorators: [{
48
+ type: Injectable,
49
+ args: [{ providedIn: "root" }]
50
+ }],
51
+ ctorParameters: () => []
52
+ });
53
+ var ApiService = class ApiService {
54
+ httpClient = inject(HttpClient);
55
+ toastService = inject(ToastService);
56
+ platformService = inject(PlatformService);
57
+ environmentService = inject(EnvironmentService);
58
+ baseUrl = signal("/api", ...ngDevMode ? [{ debugName: "baseUrl" }] : /* istanbul ignore next */ []);
59
+ nbLoaded = signal(0, ...ngDevMode ? [{ debugName: "nbLoaded" }] : /* istanbul ignore next */ []);
60
+ blocked = signal(false, ...ngDevMode ? [{ debugName: "blocked" }] : /* istanbul ignore next */ []);
61
+ get(url, callback, callbackError = () => {}) {
62
+ this.doSubscribe(url, "", this.httpClient.get(this.baseUrl() + url), callback, callbackError);
63
+ }
64
+ post(url, data, callback = () => {}, withCredentials = false, callbackError = () => {}) {
65
+ this.doSubscribe(url, data, this.httpClient.post(this.baseUrl() + url, data, { withCredentials }), callback, callbackError);
66
+ }
67
+ put(url, data, callback = () => {}, callbackError = () => {}) {
68
+ this.doSubscribe(url, data, this.httpClient.put(this.baseUrl() + url, data), callback, callbackError);
69
+ }
70
+ delete(url, callback, callbackError = () => {}) {
71
+ this.doSubscribe(url, "", this.httpClient.delete(this.baseUrl() + url), callback, callbackError);
72
+ }
73
+ findById(endPoint, id, callback) {
74
+ this.get(endPoint + "/" + id, callback);
75
+ }
76
+ findBy(endPoint, fields, values, first, max, order, callback) {
77
+ const orderType = order.orderAsc ? "" : "Desc";
78
+ const fieldsComplete = fields + (order.order ? ">>" + order.order + orderType : "");
79
+ this.get(endPoint + "?fields=" + encodeURI(fieldsComplete) + "&values=" + encodeURI(values) + "&first=" + first + "&max=" + max, (data) => {
80
+ callback(data);
81
+ });
82
+ }
83
+ countBy(endPoint, fields, values, callback) {
84
+ return this.get(endPoint + "?fields=" + encodeURI(fields) + "&values=" + values, (data) => {
85
+ callback(data);
86
+ });
87
+ }
88
+ createOrUpdate(endPoint, data, callback, toast) {
89
+ if (this.blocked()) return;
90
+ this.blocked.set(true);
91
+ if (data.id !== null && data.id !== void 0 && data.id !== "" && Number(data.id) > 0) this.put("/" + endPoint + "/", data, (dateReturn) => {
92
+ toast && this.toastService.showToast({
93
+ text: toast ?? "UPDATE_OK",
94
+ type: "success",
95
+ closeAll: true
96
+ });
97
+ callback(dateReturn);
98
+ this.blocked.set(false);
99
+ }, () => {
100
+ this.blocked.set(false);
101
+ });
102
+ else this.post("/" + endPoint + "/", data, (dateReturn) => {
103
+ toast && this.toastService.showToast({
104
+ text: toast ?? "CREATION_OK",
105
+ type: "success"
106
+ });
107
+ callback(dateReturn);
108
+ this.blocked.set(false);
109
+ }, false, () => {
110
+ this.blocked.set(false);
111
+ });
112
+ }
113
+ doSubscribe(url, data, observable, callback, callbackError = () => {}) {
114
+ this.nbLoaded.update((loaded) => loaded + 1);
115
+ observable.subscribe({
116
+ next: (res) => {
117
+ this.nbLoaded.update((loaded) => loaded - 1);
118
+ this.info(url, data, res);
119
+ callback(res);
120
+ },
121
+ error: (error) => {
122
+ this.nbLoaded.update((loaded) => loaded - 1);
123
+ this.error(url, data, error);
124
+ callbackError();
125
+ }
126
+ });
127
+ }
128
+ info(url, body, data = null) {
129
+ if (this.platformService.isPlatformBrowser()) console.log(url, body, data);
130
+ }
131
+ error(url, body, error) {
132
+ if (this.platformService.isPlatformBrowser()) console.error(url, body, error);
133
+ }
134
+ static ɵfac = i0.ɵɵngDeclareFactory({
135
+ minVersion: "12.0.0",
136
+ version: "22.2.1",
137
+ ngImport: i0,
138
+ type: ApiService,
139
+ deps: [],
140
+ target: i0.ɵɵFactoryTarget.Injectable
141
+ });
142
+ static ɵprov = i0.ɵɵngDeclareInjectable({
143
+ minVersion: "12.0.0",
144
+ version: "22.2.1",
145
+ ngImport: i0,
146
+ type: ApiService,
147
+ providedIn: "root"
148
+ });
149
+ };
150
+ i0.ɵɵngDeclareClassMetadata({
151
+ minVersion: "12.0.0",
152
+ version: "22.2.1",
153
+ ngImport: i0,
154
+ type: ApiService,
155
+ decorators: [{
156
+ type: Injectable,
157
+ args: [{ providedIn: "root" }]
158
+ }]
159
+ });
156
160
  export { ApiResourceService, ApiService };
157
- //# sourceMappingURL=ng-vagabond-lab-ng-dsv-api.mjs.map
161
+
162
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv-api.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-vagabond-lab-ng-dsv-api.mjs","sources":["../../../projects/ng-dsv/api/service/api-resource.service.ts","../../../projects/ng-dsv/api/service/api.service.ts","../../../projects/ng-dsv/api/ng-vagabond-lab-ng-dsv-api.ts"],"sourcesContent":["import { httpResource } from '@angular/common/http';\nimport { Injectable, ResourceRef, signal } from '@angular/core';\nimport { OrderState } from '../public-api';\n\nexport interface ApiFindBy {\n endPoint?: string;\n fields?: string;\n values?: string;\n first?: number;\n max?: number;\n order?: OrderState;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiResourceService<T> {\n readonly url = signal<string | undefined>(undefined);\n\n readonly resource: ResourceRef<T | undefined> = httpResource(() => ({\n url: `${this.url()}`,\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n params: {},\n reportProgress: true,\n transferCache: true,\n keepalive: true,\n mode: 'same-origin',\n redirect: 'error',\n priority: 'high',\n cache: 'force-cache',\n credentials: 'include',\n referrer: 'no-referrer',\n integrity: 'sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GhEXAMPLEKEY=',\n }));\n\n constructor() {}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { Observable } from 'rxjs';\nimport { ApiDto, ID, JSONObject, OrderState } from '../dto/api.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n readonly httpClient = inject(HttpClient);\n readonly toastService = inject(ToastService);\n readonly platformService = inject(PlatformService);\n readonly environmentService = inject(EnvironmentService);\n\n readonly baseUrl = signal<string>('/api');\n readonly nbLoaded = signal<number>(0);\n readonly blocked = signal<boolean>(false);\n\n get<T>(url: string, callback: (data: T) => void, callbackError: () => void = () => {}) {\n this.doSubscribe(url, '', this.httpClient.get<T>(this.baseUrl() + url), callback, callbackError);\n }\n\n post<TBody, TResponse = TBody>(\n url: string,\n data: TBody,\n callback: (data: TResponse) => void = () => {},\n withCredentials: boolean = false,\n callbackError: () => void = () => {},\n ) {\n this.doSubscribe(\n url,\n data as JSONObject,\n this.httpClient.post<TResponse>(this.baseUrl() + url, data, { withCredentials }),\n callback,\n callbackError,\n );\n }\n\n put<TBody, TResponse = TBody>(\n url: string,\n data: TBody,\n callback: (data: TResponse) => void = () => {},\n callbackError: () => void = () => {},\n ) {\n this.doSubscribe(\n url,\n data as JSONObject,\n this.httpClient.put<TResponse>(this.baseUrl() + url, data),\n callback,\n callbackError,\n );\n }\n\n delete<T>(url: string, callback: (data: T) => void, callbackError: () => void = () => {}) {\n this.doSubscribe(url, '', this.httpClient.delete<T>(this.baseUrl() + url), callback, callbackError);\n }\n\n findById<T>(endPoint: string, id: ID, callback: (data: T) => void) {\n this.get<T>(endPoint + '/' + id, callback);\n }\n\n findBy<T>(\n endPoint: string,\n fields: string,\n values: string,\n first: number,\n max: number,\n order: OrderState,\n callback: (data: T) => void,\n ) {\n const orderType: string = order.orderAsc ? '' : 'Desc';\n const orderConst: string = order.order ? '>>' + order.order + orderType : '';\n const fieldsComplete = fields + orderConst;\n this.get<T>(\n endPoint +\n '?fields=' +\n encodeURI(fieldsComplete) +\n '&values=' +\n encodeURI(values) +\n '&first=' +\n first +\n '&max=' +\n max,\n (data: T) => {\n callback(data);\n },\n );\n }\n\n countBy(endPoint: string, fields: string, values: string, callback: (data: { count: number }) => void) {\n return this.get<{ count: number }>(\n endPoint + '?fields=' + encodeURI(fields) + '&values=' + values,\n (data: { count: number }) => {\n callback(data);\n },\n );\n }\n\n createOrUpdate<T extends ApiDto>(endPoint: string, data: T, callback: (data: T) => void, toast?: string) {\n if (this.blocked()) {\n return;\n }\n this.blocked.set(true);\n if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {\n this.put<T>(\n '/' + endPoint + '/',\n data,\n (dateReturn: T) => {\n toast &&\n this.toastService.showToast({\n text: toast ?? 'UPDATE_OK',\n type: 'success',\n closeAll: true,\n });\n callback(dateReturn);\n this.blocked.set(false);\n },\n () => {\n this.blocked.set(false);\n },\n );\n } else {\n this.post<T>(\n '/' + endPoint + '/',\n data,\n (dateReturn: T) => {\n toast && this.toastService.showToast({ text: toast ?? 'CREATION_OK', type: 'success' });\n callback(dateReturn);\n this.blocked.set(false);\n },\n false,\n () => {\n this.blocked.set(false);\n },\n );\n }\n }\n\n doSubscribe<T>(\n url: string,\n data: JSONObject | '',\n observable: Observable<T>,\n callback: (data: T) => void,\n callbackError: () => void = () => {},\n ) {\n this.nbLoaded.update((loaded) => loaded + 1);\n observable.subscribe({\n next: (res) => {\n this.nbLoaded.update((loaded) => loaded - 1);\n this.info(url, data, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.nbLoaded.update((loaded) => loaded - 1);\n this.error(url, data, error);\n callbackError();\n },\n });\n }\n\n info(url: string, body: JSONObject | '', data: JSONObject | null = null) {\n if (this.platformService.isPlatformBrowser()) {\n console.log(url, body, data);\n }\n }\n\n error(url: string, body: JSONObject | '', error: JSONObject) {\n if (this.platformService.isPlatformBrowser()) {\n console.error(url, body, error);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-api.mjs","names":[],"sources":["../../../projects/ng-dsv/api/service/api-resource.service.ts","../../../projects/ng-dsv/api/service/api.service.ts"],"sourcesContent":["import { httpResource } from '@angular/common/http';\nimport { Injectable, ResourceRef, signal } from '@angular/core';\nimport { OrderState } from '../public-api';\n\nexport interface ApiFindBy {\n endPoint?: string;\n fields?: string;\n values?: string;\n first?: number;\n max?: number;\n order?: OrderState;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiResourceService<T> {\n readonly url = signal<string | undefined>(undefined);\n\n readonly resource: ResourceRef<T | undefined> = httpResource(() => ({\n url: `${this.url()}`,\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n params: {},\n reportProgress: true,\n transferCache: true,\n keepalive: true,\n mode: 'same-origin',\n redirect: 'error',\n priority: 'high',\n cache: 'force-cache',\n credentials: 'include',\n referrer: 'no-referrer',\n integrity: 'sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GhEXAMPLEKEY=',\n }));\n\n constructor() {}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { EnvironmentService } from '@ng-vagabond-lab/ng-dsv/environment';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { Observable } from 'rxjs';\nimport { ApiDto, ID, JSONObject, OrderState } from '../dto/api.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n readonly httpClient = inject(HttpClient);\n readonly toastService = inject(ToastService);\n readonly platformService = inject(PlatformService);\n readonly environmentService = inject(EnvironmentService);\n\n readonly baseUrl = signal<string>('/api');\n readonly nbLoaded = signal<number>(0);\n readonly blocked = signal<boolean>(false);\n\n get<T>(url: string, callback: (data: T) => void, callbackError: () => void = () => {}) {\n this.doSubscribe(url, '', this.httpClient.get<T>(this.baseUrl() + url), callback, callbackError);\n }\n\n post<TBody, TResponse = TBody>(\n url: string,\n data: TBody,\n callback: (data: TResponse) => void = () => {},\n withCredentials: boolean = false,\n callbackError: () => void = () => {},\n ) {\n this.doSubscribe(\n url,\n data as JSONObject,\n this.httpClient.post<TResponse>(this.baseUrl() + url, data, { withCredentials }),\n callback,\n callbackError,\n );\n }\n\n put<TBody, TResponse = TBody>(\n url: string,\n data: TBody,\n callback: (data: TResponse) => void = () => {},\n callbackError: () => void = () => {},\n ) {\n this.doSubscribe(\n url,\n data as JSONObject,\n this.httpClient.put<TResponse>(this.baseUrl() + url, data),\n callback,\n callbackError,\n );\n }\n\n delete<T>(url: string, callback: (data: T) => void, callbackError: () => void = () => {}) {\n this.doSubscribe(url, '', this.httpClient.delete<T>(this.baseUrl() + url), callback, callbackError);\n }\n\n findById<T>(endPoint: string, id: ID, callback: (data: T) => void) {\n this.get<T>(endPoint + '/' + id, callback);\n }\n\n findBy<T>(\n endPoint: string,\n fields: string,\n values: string,\n first: number,\n max: number,\n order: OrderState,\n callback: (data: T) => void,\n ) {\n const orderType: string = order.orderAsc ? '' : 'Desc';\n const orderConst: string = order.order ? '>>' + order.order + orderType : '';\n const fieldsComplete = fields + orderConst;\n this.get<T>(\n endPoint +\n '?fields=' +\n encodeURI(fieldsComplete) +\n '&values=' +\n encodeURI(values) +\n '&first=' +\n first +\n '&max=' +\n max,\n (data: T) => {\n callback(data);\n },\n );\n }\n\n countBy(endPoint: string, fields: string, values: string, callback: (data: { count: number }) => void) {\n return this.get<{ count: number }>(\n endPoint + '?fields=' + encodeURI(fields) + '&values=' + values,\n (data: { count: number }) => {\n callback(data);\n },\n );\n }\n\n createOrUpdate<T extends ApiDto>(endPoint: string, data: T, callback: (data: T) => void, toast?: string) {\n if (this.blocked()) {\n return;\n }\n this.blocked.set(true);\n if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {\n this.put<T>(\n '/' + endPoint + '/',\n data,\n (dateReturn: T) => {\n toast &&\n this.toastService.showToast({\n text: toast ?? 'UPDATE_OK',\n type: 'success',\n closeAll: true,\n });\n callback(dateReturn);\n this.blocked.set(false);\n },\n () => {\n this.blocked.set(false);\n },\n );\n } else {\n this.post<T>(\n '/' + endPoint + '/',\n data,\n (dateReturn: T) => {\n toast && this.toastService.showToast({ text: toast ?? 'CREATION_OK', type: 'success' });\n callback(dateReturn);\n this.blocked.set(false);\n },\n false,\n () => {\n this.blocked.set(false);\n },\n );\n }\n }\n\n doSubscribe<T>(\n url: string,\n data: JSONObject | '',\n observable: Observable<T>,\n callback: (data: T) => void,\n callbackError: () => void = () => {},\n ) {\n this.nbLoaded.update((loaded) => loaded + 1);\n observable.subscribe({\n next: (res) => {\n this.nbLoaded.update((loaded) => loaded - 1);\n this.info(url, data, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.nbLoaded.update((loaded) => loaded - 1);\n this.error(url, data, error);\n callbackError();\n },\n });\n }\n\n info(url: string, body: JSONObject | '', data: JSONObject | null = null) {\n if (this.platformService.isPlatformBrowser()) {\n console.log(url, body, data);\n }\n }\n\n error(url: string, body: JSONObject | '', error: JSONObject) {\n if (this.platformService.isPlatformBrowser()) {\n console.error(url, body, error);\n }\n }\n}\n"],"mappings":"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"}