@rolatech/angular-services 17.2.0 → 18.0.0

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 (31) hide show
  1. package/esm2022/lib/components/dialog/dialog.component.mjs +10 -10
  2. package/esm2022/lib/directive/back-button.directive.mjs +3 -3
  3. package/esm2022/lib/interceptor/loading.interceptor.mjs +3 -3
  4. package/esm2022/lib/services/base.service.mjs +6 -9
  5. package/esm2022/lib/services/breadcrumb.service.mjs +3 -3
  6. package/esm2022/lib/services/cart.service.mjs +76 -0
  7. package/esm2022/lib/services/dialog.service.mjs +3 -3
  8. package/esm2022/lib/services/index.mjs +6 -2
  9. package/esm2022/lib/services/layout.service.mjs +3 -3
  10. package/esm2022/lib/services/loading.service.mjs +3 -3
  11. package/esm2022/lib/services/media.service.mjs +17 -31
  12. package/esm2022/lib/services/navigation.service.mjs +3 -3
  13. package/esm2022/lib/services/order.service.mjs +83 -0
  14. package/esm2022/lib/services/product.service.mjs +178 -0
  15. package/esm2022/lib/services/sidenav.service.mjs +3 -3
  16. package/esm2022/lib/services/snack-bar.service.mjs +3 -3
  17. package/esm2022/lib/services/support.service.mjs +14 -35
  18. package/esm2022/lib/services/theme.service.mjs +48 -0
  19. package/esm2022/provider.mjs +5 -2
  20. package/fesm2022/rolatech-angular-services.mjs +449 -111
  21. package/fesm2022/rolatech-angular-services.mjs.map +1 -1
  22. package/lib/components/dialog/dialog.component.d.ts +1 -2
  23. package/lib/services/cart.service.d.ts +17 -0
  24. package/lib/services/index.d.ts +5 -1
  25. package/lib/services/media.service.d.ts +1 -0
  26. package/lib/services/order.service.d.ts +20 -0
  27. package/lib/services/product.service.d.ts +41 -0
  28. package/lib/services/support.service.d.ts +11 -12
  29. package/lib/services/theme.service.d.ts +11 -0
  30. package/package.json +4 -4
  31. package/themes/_default.scss +1 -1
@@ -1,15 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Injectable, viewChild, ViewContainerRef, OutputEmitterRef, EventEmitter, Component, HostListener, Directive, APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
3
- import { Location } from '@angular/common';
2
+ import { inject, Injectable, viewChild, ViewContainerRef, OutputEmitterRef, EventEmitter, Component, HostListener, PLATFORM_ID, Directive, APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
3
+ import { Location, isPlatformBrowser } from '@angular/common';
4
4
  import { Router, NavigationEnd } from '@angular/router';
5
- import { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';
6
- import { take, map, BehaviorSubject, catchError } from 'rxjs';
5
+ import { MAT_DIALOG_DATA, MatDialogRef, MatDialogActions, MatDialogTitle, MatDialogContent, MatDialogClose, MatDialog } from '@angular/material/dialog';
6
+ import { take, map, BehaviorSubject, switchMap } from 'rxjs';
7
+ import * as i1 from '@angular/material/button';
8
+ import { MatButtonModule } from '@angular/material/button';
7
9
  import { HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';
8
10
  import { APP_CONFIG } from '@rolatech/angular-common';
9
- import * as i1 from '@angular/cdk/layout';
11
+ import * as i1$1 from '@angular/cdk/layout';
10
12
  import { Breakpoints, MediaMatcher } from '@angular/cdk/layout';
11
13
  import { map as map$1, shareReplay, finalize } from 'rxjs/operators';
12
14
  import { MatSnackBar } from '@angular/material/snack-bar';
15
+ import _ from 'lodash';
13
16
 
14
17
  class NavigationService {
15
18
  history = [];
@@ -47,10 +50,10 @@ class NavigationService {
47
50
  }
48
51
  return '';
49
52
  }
50
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
51
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NavigationService, providedIn: 'root' });
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
54
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: NavigationService, providedIn: 'root' });
52
55
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NavigationService, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: NavigationService, decorators: [{
54
57
  type: Injectable,
55
58
  args: [{
56
59
  providedIn: 'root',
@@ -81,6 +84,7 @@ class DialogComponent {
81
84
  // hostedComponent[inputName] = this.data.data[inputName];
82
85
  const signalInput = typeof hostedComponent[inputName] === 'function';
83
86
  if (signalInput) {
87
+ // hostedComponent[inputName] = input(this.data.data[inputName]);
84
88
  hostedComponent[inputName].set(this.data.data[inputName]);
85
89
  }
86
90
  else {
@@ -108,21 +112,18 @@ class DialogComponent {
108
112
  }
109
113
  });
110
114
  }
111
- cancel() {
112
- this.close(false);
113
- }
114
- close(value) {
115
+ close(value = false) {
115
116
  this.dialogRef.close(value);
116
117
  }
117
118
  confirm() {
118
119
  this.close(this.result || true);
119
120
  }
120
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.0", type: DialogComponent, isStandalone: true, selector: "rolatech-dialog", host: { listeners: { "keydown.esc": "onEsc()" } }, viewQueries: [{ propertyName: "componentRef", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div class=\"p-3 flex flex-col min-w-[320px]\" style=\"width: {{ data.width }};height: {{ data.height }}\">\n <div class=\"p-2\">\n <h1 class=\"text-xl\">{{ data.title }}</h1>\n </div>\n <div class=\"p-2\">\n <p class=\"\">{{ data.message }}</p>\n <ng-template #container></ng-template>\n <!-- <ng-container #container></ng-container> -->\n </div>\n <div class=\"flex-1\"></div>\n <div class=\"flex justify-end items-center p-2 mt-3\">\n <a class=\"mr-3 cursor-pointer\" (click)=\"cancel()\">{{ data.cancelText ? data.cancelText : 'Cancel' }}</a>\n <a class=\"w-20 text-center hover:bg-black bg-black cursor-pointer p-2 text-white rounded\" (click)=\"confirm()\">{{\n data.confirmText ? data.confirmText : 'Ok'\n }}</a>\n </div>\n</div>\n", styles: [""] });
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
122
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.1.4", type: DialogComponent, isStandalone: true, selector: "rolatech-dialog", host: { listeners: { "keydown.esc": "onEsc()" } }, viewQueries: [{ propertyName: "componentRef", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div class=\"min-w-[320px]\">\n <h1 class=\"text-xl\" mat-dialog-title>{{ data.title }}</h1>\n <mat-dialog-content>\n <div>\n <p>{{ data.message }}</p>\n <ng-template #container></ng-template>\n <!-- <ng-container #container></ng-container> -->\n </div>\n </mat-dialog-content>\n <div class=\"flex-1\"></div>\n <mat-dialog-actions>\n <button mat-button (click)=\"close()\">{{ data.cancelText ? data.cancelText : 'Cancel' }}</button>\n <button mat-flat-button class=\"w-20\" (click)=\"confirm()\">{{ data.confirmText ? data.confirmText : 'Ok' }}</button>\n </mat-dialog-actions>\n <!-- <div class=\"flex justify-end items-center p-2 gap-3\">\n <a mat-button (click)=\"cancel()\">{{ data.cancelText ? data.cancelText : 'Cancel' }}</a>\n <a mat-flat-button class=\"w-20\" (click)=\"confirm()\">{{ data.confirmText ? data.confirmText : 'Ok' }}</a>\n </div> -->\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
122
123
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DialogComponent, decorators: [{
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DialogComponent, decorators: [{
124
125
  type: Component,
125
- args: [{ selector: 'rolatech-dialog', standalone: true, template: "<div class=\"p-3 flex flex-col min-w-[320px]\" style=\"width: {{ data.width }};height: {{ data.height }}\">\n <div class=\"p-2\">\n <h1 class=\"text-xl\">{{ data.title }}</h1>\n </div>\n <div class=\"p-2\">\n <p class=\"\">{{ data.message }}</p>\n <ng-template #container></ng-template>\n <!-- <ng-container #container></ng-container> -->\n </div>\n <div class=\"flex-1\"></div>\n <div class=\"flex justify-end items-center p-2 mt-3\">\n <a class=\"mr-3 cursor-pointer\" (click)=\"cancel()\">{{ data.cancelText ? data.cancelText : 'Cancel' }}</a>\n <a class=\"w-20 text-center hover:bg-black bg-black cursor-pointer p-2 text-white rounded\" (click)=\"confirm()\">{{\n data.confirmText ? data.confirmText : 'Ok'\n }}</a>\n </div>\n</div>\n" }]
126
+ args: [{ selector: 'rolatech-dialog', standalone: true, imports: [MatButtonModule, MatDialogActions, MatDialogClose, MatDialogTitle, MatDialogContent], template: "<div class=\"min-w-[320px]\">\n <h1 class=\"text-xl\" mat-dialog-title>{{ data.title }}</h1>\n <mat-dialog-content>\n <div>\n <p>{{ data.message }}</p>\n <ng-template #container></ng-template>\n <!-- <ng-container #container></ng-container> -->\n </div>\n </mat-dialog-content>\n <div class=\"flex-1\"></div>\n <mat-dialog-actions>\n <button mat-button (click)=\"close()\">{{ data.cancelText ? data.cancelText : 'Cancel' }}</button>\n <button mat-flat-button class=\"w-20\" (click)=\"confirm()\">{{ data.confirmText ? data.confirmText : 'Ok' }}</button>\n </mat-dialog-actions>\n <!-- <div class=\"flex justify-end items-center p-2 gap-3\">\n <a mat-button (click)=\"cancel()\">{{ data.cancelText ? data.cancelText : 'Cancel' }}</a>\n <a mat-flat-button class=\"w-20\" (click)=\"confirm()\">{{ data.confirmText ? data.confirmText : 'Ok' }}</a>\n </div> -->\n</div>\n" }]
126
127
  }], propDecorators: { onEsc: [{
127
128
  type: HostListener,
128
129
  args: ['keydown.esc']
@@ -144,10 +145,10 @@ class DialogService {
144
145
  confirmed() {
145
146
  return this.dialogRef.afterClosed().pipe(take(1), map((res) => res));
146
147
  }
147
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
148
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DialogService });
148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
149
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DialogService });
149
150
  }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DialogService, decorators: [{
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DialogService, decorators: [{
151
152
  type: Injectable
152
153
  }] });
153
154
 
@@ -195,16 +196,14 @@ class BaseService {
195
196
  });
196
197
  }
197
198
  search(word) {
198
- return this.http
199
- .get(`${this.actionUrl}?search=${word}`, {
199
+ return this.http.get(`${this.actionUrl}?search=${word}`, {
200
200
  withCredentials: true,
201
- })
202
- .pipe(map((result) => result));
201
+ });
203
202
  }
204
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
205
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BaseService, providedIn: 'root' });
203
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
204
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BaseService, providedIn: 'root' });
206
205
  }
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BaseService, decorators: [{
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BaseService, decorators: [{
208
207
  type: Injectable,
209
208
  args: [{
210
209
  providedIn: 'root',
@@ -228,10 +227,10 @@ class LoadingService {
228
227
  async dismiss() {
229
228
  this.isLoading = false;
230
229
  }
231
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
232
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LoadingService, providedIn: 'root' });
230
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
231
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LoadingService, providedIn: 'root' });
233
232
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LoadingService, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LoadingService, decorators: [{
235
234
  type: Injectable,
236
235
  args: [{
237
236
  providedIn: 'root',
@@ -244,58 +243,45 @@ class MediaService extends BaseService {
244
243
  super.init();
245
244
  }
246
245
  upload(data) {
247
- return this.http
248
- .post(`${this.actionUrl}/upload`, data, {
246
+ return this.http.post(`${this.actionUrl}/upload`, data, {
249
247
  reportProgress: false,
250
248
  withCredentials: true,
251
249
  // headers: new HttpHeaders({
252
250
  // 'Content-Type': 'multipart/form-data',
253
251
  // }),
254
- })
255
- .pipe(map((result) => result));
252
+ });
256
253
  }
257
254
  uploadAndSave(data) {
258
- return this.http
259
- .post(`${this.actionUrl}/save`, data, {
255
+ return this.http.post(`${this.actionUrl}/save`, data, {
260
256
  reportProgress: false,
261
257
  withCredentials: true,
262
- })
263
- .pipe(map((result) => result));
258
+ });
264
259
  }
265
260
  deleteBy(filename) {
266
- return this.http
267
- .delete(`${this.actionUrl}/${filename}`, {})
268
- .pipe(map((result) => result));
261
+ return this.http.delete(`${this.actionUrl}/${filename}`, {});
269
262
  }
270
263
  batchDelete(data) {
271
- return this.http
272
- .post(`${this.actionUrl}/batch`, data, { withCredentials: true })
273
- .pipe(map((result) => result));
264
+ return this.http.post(`${this.actionUrl}/batch`, data, { withCredentials: true });
274
265
  }
275
266
  moveToGroup(data) {
276
- return this.http
277
- .post(`${this.actionUrl}/move`, data, { withCredentials: true })
278
- .pipe(map((result) => result));
267
+ return this.http.post(`${this.actionUrl}/move`, data, { withCredentials: true });
279
268
  }
280
269
  addGroup(data) {
281
- return this.http
282
- .post(`${this.actionUrl}/groups`, data, { withCredentials: true })
283
- .pipe(map((result) => result));
270
+ return this.http.post(`${this.actionUrl}/groups`, data, { withCredentials: true });
284
271
  }
285
272
  findGroup(id) {
286
- return this.http
287
- .get(`${this.actionUrl}/groups/${id}`, { withCredentials: true })
288
- .pipe(map((result) => result));
273
+ return this.http.get(`${this.actionUrl}/groups/${id}`, { withCredentials: true });
289
274
  }
290
275
  findGroups(options) {
291
- return this.http
292
- .get(`${this.actionUrl}/groups`, { withCredentials: true })
293
- .pipe(map((result) => result));
276
+ return this.http.get(`${this.actionUrl}/groups`, { withCredentials: true });
294
277
  }
295
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MediaService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
296
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MediaService, providedIn: 'root' });
278
+ getImageInfo(url) {
279
+ return this.http.get(`${url}?imageInfo`);
280
+ }
281
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MediaService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
282
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MediaService, providedIn: 'root' });
297
283
  }
298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MediaService, decorators: [{
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MediaService, decorators: [{
299
285
  type: Injectable,
300
286
  args: [{
301
287
  providedIn: 'root',
@@ -311,12 +297,12 @@ class LayoutService {
311
297
  .observe([Breakpoints.Small, Breakpoints.HandsetPortrait])
312
298
  .pipe(map$1((result) => result.matches), shareReplay());
313
299
  }
314
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LayoutService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
315
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LayoutService });
300
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LayoutService, deps: [{ token: i1$1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
301
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LayoutService });
316
302
  }
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LayoutService, decorators: [{
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LayoutService, decorators: [{
318
304
  type: Injectable
319
- }], ctorParameters: () => [{ type: i1.BreakpointObserver }] });
305
+ }], ctorParameters: () => [{ type: i1$1.BreakpointObserver }] });
320
306
 
321
307
  class SnackBarService {
322
308
  snackBar = inject(MatSnackBar);
@@ -326,10 +312,10 @@ class SnackBarService {
326
312
  dismiss() {
327
313
  this.snackBar.dismiss();
328
314
  }
329
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SnackBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
330
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SnackBarService });
315
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SnackBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
316
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SnackBarService });
331
317
  }
332
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SnackBarService, decorators: [{
318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SnackBarService, decorators: [{
333
319
  type: Injectable
334
320
  }] });
335
321
 
@@ -337,52 +323,32 @@ class SupportService {
337
323
  environment = inject(APP_CONFIG);
338
324
  http = inject(HttpClient);
339
325
  findAllBuckets(options) {
340
- return this.http
341
- .get(`${this.environment.baseUrl}/support/buckets`, {
326
+ return this.http.get(`${this.environment.baseUrl}/support/buckets`, {
342
327
  params: options,
343
328
  withCredentials: false,
344
- })
345
- .pipe(catchError((error) => {
346
- throw error;
347
- }));
329
+ });
348
330
  }
349
331
  findAll(options) {
350
- return this.http
351
- .get(`${this.environment.baseUrl}/support/folders`, {
332
+ return this.http.get(`${this.environment.baseUrl}/support/folders`, {
352
333
  params: options,
353
334
  withCredentials: false,
354
- })
355
- .pipe(catchError((error) => {
356
- throw error;
357
- }));
335
+ });
358
336
  }
359
337
  findFolderBySlug(slug) {
360
- return this.http
361
- .get(`${this.environment.baseUrl}/support/folders/slug/${slug}`, {
338
+ return this.http.get(`${this.environment.baseUrl}/support/folders/slug/${slug}`, {
362
339
  withCredentials: false,
363
- })
364
- .pipe(catchError((error) => {
365
- throw error;
366
- }));
340
+ });
367
341
  }
368
342
  findByPath(path) {
369
- return this.http
370
- .get(`${this.environment.baseUrl}/support/folders/by?path=${path}`, {
343
+ return this.http.get(`${this.environment.baseUrl}/support/folders/by?path=${path}`, {
371
344
  withCredentials: false,
372
- })
373
- .pipe(catchError((error) => {
374
- throw error;
375
- }));
345
+ });
376
346
  }
377
347
  findAllFiles(options) {
378
- return this.http
379
- .get(`${this.environment.baseUrl}/support/files`, {
348
+ return this.http.get(`${this.environment.baseUrl}/support/files`, {
380
349
  params: options,
381
350
  withCredentials: false,
382
- })
383
- .pipe(catchError((error) => {
384
- throw error;
385
- }));
351
+ });
386
352
  }
387
353
  findFileByFolder(folder) {
388
354
  return this.http.get(`${this.environment.baseUrl}/support/files/by?folder=${folder}`, {
@@ -414,10 +380,10 @@ class SupportService {
414
380
  withCredentials: true,
415
381
  });
416
382
  }
417
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SupportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
418
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SupportService, providedIn: 'root' });
383
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SupportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
384
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SupportService, providedIn: 'root' });
419
385
  }
420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SupportService, decorators: [{
386
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SupportService, decorators: [{
421
387
  type: Injectable,
422
388
  args: [{
423
389
  providedIn: 'root',
@@ -445,10 +411,10 @@ class BreadcrumbService {
445
411
  relativeTo: route,
446
412
  });
447
413
  }
448
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
449
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
414
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
415
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
450
416
  }
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BreadcrumbService, decorators: [{
417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BreadcrumbService, decorators: [{
452
418
  type: Injectable,
453
419
  args: [{
454
420
  providedIn: 'root',
@@ -480,13 +446,382 @@ class SidenavService {
480
446
  this.isCollaped = !this.isMobile && !this.sidenav?.opened;
481
447
  }
482
448
  lists() { }
483
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SidenavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
484
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SidenavService });
449
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SidenavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
450
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SidenavService });
485
451
  }
486
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SidenavService, decorators: [{
452
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SidenavService, decorators: [{
487
453
  type: Injectable
488
454
  }], ctorParameters: () => [] });
489
455
 
456
+ class ThemeService {
457
+ platformId = inject(PLATFORM_ID);
458
+ darkTheme = new BehaviorSubject(false);
459
+ isDarkTheme = this.darkTheme.asObservable();
460
+ constructor() {
461
+ if (isPlatformBrowser(this.platformId)) {
462
+ if (window.matchMedia) {
463
+ // Check if the dark-mode Media-Query matches
464
+ if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
465
+ this.setDarkTheme(true);
466
+ // Dark
467
+ }
468
+ else {
469
+ // Light
470
+ this.setDarkTheme(false);
471
+ }
472
+ }
473
+ else {
474
+ // Default (when Media-Queries are not supported)
475
+ }
476
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
477
+ const newColorScheme = e.matches ? 'dark' : 'light';
478
+ if (newColorScheme === 'dark') {
479
+ this.setDarkTheme(true);
480
+ }
481
+ else {
482
+ this.setDarkTheme(false);
483
+ }
484
+ });
485
+ }
486
+ }
487
+ setDarkTheme(isDarkTheme) {
488
+ this.darkTheme.next(isDarkTheme);
489
+ }
490
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
491
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThemeService, providedIn: 'root' });
492
+ }
493
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThemeService, decorators: [{
494
+ type: Injectable,
495
+ args: [{
496
+ providedIn: 'root',
497
+ }]
498
+ }], ctorParameters: () => [] });
499
+
500
+ class ProductService extends BaseService {
501
+ init() {
502
+ this.endpoint = 'products';
503
+ super.init();
504
+ }
505
+ me(options) {
506
+ return this.http.get(`${this.actionUrl}/me`, {
507
+ params: options,
508
+ withCredentials: true,
509
+ });
510
+ }
511
+ findByIds(ids) {
512
+ const params = { ids: ids.join(',') };
513
+ return this.http.get(`${this.actionUrl}/by`, {
514
+ params: params,
515
+ withCredentials: true,
516
+ });
517
+ }
518
+ publish(productId) {
519
+ return this.http.post(`${this.actionUrl}/${productId}/publish`, {}, {
520
+ withCredentials: true,
521
+ });
522
+ }
523
+ archived(productId) {
524
+ return this.http.post(`${this.actionUrl}/${productId}/archived`, {}, {
525
+ withCredentials: true,
526
+ });
527
+ }
528
+ findWishlist(options) {
529
+ return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });
530
+ }
531
+ addToWishlist(productId) {
532
+ return this.http.post(`${this.actionUrl}/${productId}/wishlist`, {}, { withCredentials: true });
533
+ }
534
+ removeFromWishlist(productId) {
535
+ return this.http.delete(`${this.actionUrl}/${productId}/wishlist`, { withCredentials: true });
536
+ }
537
+ findWishlistBy(productId) {
538
+ return this.http.get(`${this.actionUrl}/${productId}/wishlist/by`, { withCredentials: true });
539
+ }
540
+ findPurchasedByProductId(productId) {
541
+ return this.http.get(`${this.actionUrl}/users/me/by?productId=${productId}`, {
542
+ withCredentials: true,
543
+ });
544
+ }
545
+ // Media
546
+ uploadMedia(productId, data) {
547
+ return this.http.post(`${this.actionUrl}/${productId}/media`, data, {
548
+ withCredentials: true,
549
+ });
550
+ }
551
+ deleteMedia(id, mediaId) {
552
+ return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {
553
+ withCredentials: true,
554
+ });
555
+ }
556
+ // Pricing
557
+ addPricing(productId, data) {
558
+ return this.http.post(`${this.actionUrl}/${productId}/pricing`, data, {
559
+ withCredentials: true,
560
+ });
561
+ }
562
+ updatePricing(pricingId, data) {
563
+ return this.http.put(`${this.actionUrl}/pricing/${pricingId}`, data, {
564
+ withCredentials: true,
565
+ });
566
+ }
567
+ deletePricing(pricingId) {
568
+ return this.http.delete(`${this.actionUrl}/pricing/${pricingId}`, {
569
+ withCredentials: true,
570
+ });
571
+ }
572
+ // Section
573
+ addSection(productId, data) {
574
+ return this.http.post(`${this.actionUrl}/${productId}/sections`, data, {
575
+ withCredentials: true,
576
+ });
577
+ }
578
+ addBatchSections(productId, data) {
579
+ return this.http.post(`${this.actionUrl}/${productId}/sections/batch`, data, {
580
+ withCredentials: true,
581
+ });
582
+ }
583
+ findSections(productId) {
584
+ return this.http.get(`${this.actionUrl}/${productId}/sections`, {
585
+ withCredentials: true,
586
+ });
587
+ }
588
+ updateSection(sectionId, data) {
589
+ return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, {
590
+ withCredentials: true,
591
+ });
592
+ }
593
+ deleteSection(sectionId) {
594
+ return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, {
595
+ withCredentials: true,
596
+ });
597
+ }
598
+ uploadSectionMedia(sectionId, data) {
599
+ return this.http.post(`${this.actionUrl}/sections/${sectionId}/media`, data, {
600
+ withCredentials: true,
601
+ });
602
+ }
603
+ deleteSectionMedia(sectionId, mediaId) {
604
+ return this.http.delete(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {
605
+ withCredentials: true,
606
+ });
607
+ }
608
+ addOption(productId, data) {
609
+ return this.http.post(`${this.actionUrl}/${productId}/options`, data, {
610
+ withCredentials: true,
611
+ });
612
+ }
613
+ findOptions(productId) {
614
+ return this.http.get(`${this.actionUrl}/${productId}/options`);
615
+ }
616
+ updateOption(optionId, data) {
617
+ return this.http.put(`${this.actionUrl}/options/${optionId}`, data, {
618
+ withCredentials: true,
619
+ });
620
+ }
621
+ deleteOption(optionId) {
622
+ return this.http.delete(`${this.actionUrl}/options/${optionId}`, {
623
+ withCredentials: true,
624
+ });
625
+ }
626
+ // variants
627
+ updateVariantPrice(productId, status) {
628
+ return this.http.put(`${this.actionUrl}/${productId}/variants/by?status=${status}`, {}, {
629
+ withCredentials: true,
630
+ });
631
+ }
632
+ createVariants(productId, data) {
633
+ return this.http.post(`${this.actionUrl}/${productId}/variants`, data, {
634
+ withCredentials: true,
635
+ });
636
+ }
637
+ getVariant(variantId) {
638
+ return this.http.get(`${this.actionUrl}/variants/${variantId}`);
639
+ }
640
+ findVariants(productId) {
641
+ return this.http.get(`${this.actionUrl}/${productId}/variants`);
642
+ }
643
+ findVariantsByIds(ids) {
644
+ const params = { ids: ids.join(',') };
645
+ return this.http.get(`${this.actionUrl}/variants/by`, {
646
+ params: params,
647
+ withCredentials: true,
648
+ });
649
+ }
650
+ updateVariants(productId, data) {
651
+ return this.http.put(`${this.actionUrl}/${productId}/variants`, data, {
652
+ withCredentials: true,
653
+ });
654
+ }
655
+ uploadVariantMedia(variantId, data) {
656
+ return this.http.post(`${this.actionUrl}/variants/${variantId}/media`, data, {
657
+ withCredentials: true,
658
+ });
659
+ }
660
+ deleteVariantMedia(variantId, mediaId) {
661
+ return this.http.delete(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {
662
+ withCredentials: true,
663
+ });
664
+ }
665
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
666
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductService, providedIn: 'root' });
667
+ }
668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductService, decorators: [{
669
+ type: Injectable,
670
+ args: [{
671
+ providedIn: 'root',
672
+ }]
673
+ }] });
674
+
675
+ class CartService extends BaseService {
676
+ productService = inject(ProductService);
677
+ init() {
678
+ this.endpoint = 'carts';
679
+ super.init();
680
+ }
681
+ findDetails(options) {
682
+ return this.http
683
+ .get(`${this.actionUrl}`, {
684
+ params: options,
685
+ withCredentials: true,
686
+ })
687
+ .pipe(switchMap((res) => {
688
+ const productIds = _.uniq(_.map(res.data, 'productId')); // [12, 14, 16, 18]
689
+ return this.findProductsByIds(productIds).pipe(map((products) => {
690
+ res.data?.forEach((item) => {
691
+ const matchingProduct = _.find(products.data, { id: item.productId });
692
+ item.product = matchingProduct;
693
+ });
694
+ return res;
695
+ }));
696
+ }), switchMap((res) => {
697
+ const variantIds = _.uniq(_.map(res.data, 'variantId')); // [12, 14, 16, 18]
698
+ return this.findVariantsByIds(variantIds).pipe(map((variants) => {
699
+ res.data?.forEach((item) => {
700
+ const matchingVariant = _.find(variants.data, { id: item.variantId });
701
+ item.variant = matchingVariant;
702
+ });
703
+ return res;
704
+ }));
705
+ }));
706
+ }
707
+ findProductsByIds(ids) {
708
+ return this.productService.findByIds(ids);
709
+ }
710
+ findVariantsByIds(ids) {
711
+ return this.productService.findVariantsByIds(ids);
712
+ }
713
+ by(options) {
714
+ return this.http.get(`${this.actionUrl}/items/by`, {
715
+ params: options,
716
+ withCredentials: true,
717
+ });
718
+ }
719
+ me(options) {
720
+ return this.http.get(`${this.actionUrl}/me`, {
721
+ params: options,
722
+ withCredentials: true,
723
+ });
724
+ }
725
+ deleteByIds(ids) {
726
+ return this.http.delete(`${this.actionUrl}/me`, {
727
+ withCredentials: true,
728
+ });
729
+ }
730
+ deleteAll() {
731
+ return this.http.delete(`${this.actionUrl}/me`, {
732
+ withCredentials: true,
733
+ });
734
+ }
735
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
736
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, providedIn: 'root' });
737
+ }
738
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, decorators: [{
739
+ type: Injectable,
740
+ args: [{
741
+ providedIn: 'root',
742
+ }]
743
+ }] });
744
+
745
+ class OrderService extends BaseService {
746
+ init() {
747
+ this.endpoint = 'orders';
748
+ super.init();
749
+ }
750
+ by(options) {
751
+ return this.http.get(`${this.actionUrl}/items/by`, {
752
+ params: options,
753
+ withCredentials: true,
754
+ });
755
+ }
756
+ me(options) {
757
+ return this.http.get(`${this.actionUrl}/me`, {
758
+ params: options,
759
+ withCredentials: true,
760
+ });
761
+ }
762
+ timeline(id) {
763
+ return this.http.get(`${this.actionUrl}/${id}/timeline`, {
764
+ withCredentials: true,
765
+ });
766
+ }
767
+ pay(id) {
768
+ return this.http.post(`${this.actionUrl}/${id}/pay`, {}, {
769
+ withCredentials: true,
770
+ });
771
+ }
772
+ refund(id, data) {
773
+ return this.http.post(`${this.actionUrl}/${id}/refund`, data, {
774
+ withCredentials: true,
775
+ });
776
+ }
777
+ findAllReturns(options) {
778
+ return this.http.get(`${this.actionUrl}/returns`, {
779
+ params: options,
780
+ withCredentials: true,
781
+ });
782
+ }
783
+ findAllReturnsByInstructor(options) {
784
+ return this.http.get(`${this.actionUrl}/returns/instructor`, {
785
+ params: options,
786
+ withCredentials: true,
787
+ });
788
+ }
789
+ getReturn(id) {
790
+ return this.http.get(`${this.actionUrl}/returns/${id}`, {
791
+ withCredentials: true,
792
+ });
793
+ }
794
+ returnApprove(id) {
795
+ return this.http.post(`${this.actionUrl}/returns/${id}/approve`, {}, {
796
+ withCredentials: true,
797
+ });
798
+ }
799
+ returnReject(id, data) {
800
+ return this.http.post(`${this.actionUrl}/returns/${id}/reject`, data, {
801
+ withCredentials: true,
802
+ });
803
+ }
804
+ cancel(id) {
805
+ return this.http.post(`${this.actionUrl}/${id}/cancel`, {}, {
806
+ withCredentials: true,
807
+ });
808
+ }
809
+ countMeByStatus(options) {
810
+ return this.http.get(`${this.actionUrl}/count/me/by`, {
811
+ params: options,
812
+ withCredentials: true,
813
+ });
814
+ }
815
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OrderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
816
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OrderService, providedIn: 'root' });
817
+ }
818
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OrderService, decorators: [{
819
+ type: Injectable,
820
+ args: [{
821
+ providedIn: 'root',
822
+ }]
823
+ }] });
824
+
490
825
  class LoadingInterceptor {
491
826
  loadingService;
492
827
  activeRequests = 0;
@@ -505,10 +840,10 @@ class LoadingInterceptor {
505
840
  }
506
841
  }));
507
842
  }
508
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LoadingInterceptor, deps: [{ token: LoadingService }], target: i0.ɵɵFactoryTarget.Injectable });
509
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LoadingInterceptor, providedIn: 'root' });
843
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LoadingInterceptor, deps: [{ token: LoadingService }], target: i0.ɵɵFactoryTarget.Injectable });
844
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LoadingInterceptor, providedIn: 'root' });
510
845
  }
511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LoadingInterceptor, decorators: [{
846
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: LoadingInterceptor, decorators: [{
512
847
  type: Injectable,
513
848
  args: [{
514
849
  providedIn: 'root',
@@ -521,10 +856,10 @@ class BackButtonDirective {
521
856
  onClick() {
522
857
  this.navigation.back();
523
858
  }
524
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BackButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
525
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: BackButtonDirective, isStandalone: true, selector: "[rolatechBackButton]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
859
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BackButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
860
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: BackButtonDirective, isStandalone: true, selector: "[rolatechBackButton]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
526
861
  }
527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BackButtonDirective, decorators: [{
862
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BackButtonDirective, decorators: [{
528
863
  type: Directive,
529
864
  args: [{
530
865
  selector: '[rolatechBackButton]',
@@ -550,6 +885,9 @@ function provideAngularServices() {
550
885
  BreadcrumbService,
551
886
  SidenavService,
552
887
  BackButtonDirective,
888
+ CartService,
889
+ ProductService,
890
+ OrderService,
553
891
  { provide: HTTP_INTERCEPTORS, useClass: LoadingInterceptor, multi: true },
554
892
  {
555
893
  provide: APP_INITIALIZER,
@@ -565,5 +903,5 @@ function provideAngularServices() {
565
903
  * Generated bundle index. Do not edit.
566
904
  */
567
905
 
568
- export { BackButtonDirective, BaseService, BreadcrumbService, DialogService, LayoutService, LoadingInterceptor, LoadingService, MediaService, NavigationService, SERVICE_DIRECTIVES, SidenavService, SnackBarService, SupportService, provideAngularServices };
906
+ export { BackButtonDirective, BaseService, BreadcrumbService, CartService, DialogService, LayoutService, LoadingInterceptor, LoadingService, MediaService, NavigationService, OrderService, ProductService, SERVICE_DIRECTIVES, SidenavService, SnackBarService, SupportService, ThemeService, provideAngularServices };
569
907
  //# sourceMappingURL=rolatech-angular-services.mjs.map