@pobuca/email-builder 1.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.
- package/README.md +1 -0
- package/assets/icons/dribbble.png +0 -0
- package/assets/icons/facebook.png +0 -0
- package/assets/icons/github.png +0 -0
- package/assets/icons/instagram.png +0 -0
- package/assets/icons/linkedin.png +0 -0
- package/assets/icons/medium.png +0 -0
- package/assets/icons/pinterest.png +0 -0
- package/assets/icons/snapchat.png +0 -0
- package/assets/icons/soundcloud.png +0 -0
- package/assets/icons/tumblr.png +0 -0
- package/assets/icons/twitter.png +0 -0
- package/assets/icons/vimeo.png +0 -0
- package/assets/icons/web.png +0 -0
- package/assets/icons/xing.png +0 -0
- package/assets/icons/youtube.png +0 -0
- package/bundles/pobuca-email-builder.umd.js +4664 -0
- package/bundles/pobuca-email-builder.umd.js.map +1 -0
- package/bundles/pobuca-email-builder.umd.min.js +2 -0
- package/bundles/pobuca-email-builder.umd.min.js.map +1 -0
- package/esm2015/lib/classes/DefaultEmail.js +53 -0
- package/esm2015/lib/classes/Elements.js +229 -0
- package/esm2015/lib/classes/Structure.js +89 -0
- package/esm2015/lib/components/block/block.component.js +89 -0
- package/esm2015/lib/components/block-settings/block-settings.component.js +53 -0
- package/esm2015/lib/components/builder-container/builder-container.component.js +114 -0
- package/esm2015/lib/components/dialog.component.js +30 -0
- package/esm2015/lib/components/general-settings/general-settings.component.js +25 -0
- package/esm2015/lib/components/import-dialog/import-dialog.component.js +62 -0
- package/esm2015/lib/components/preview.component.js +89 -0
- package/esm2015/lib/components/structure/structure.component.js +163 -0
- package/esm2015/lib/components/structure-settings/structure-settings.component.js +31 -0
- package/esm2015/lib/components/template-list-dialog/template-list-dialog.component.js +45 -0
- package/esm2015/lib/directives/dynamic-component.directive.js +46 -0
- package/esm2015/lib/elements/abstract-block.js +23 -0
- package/esm2015/lib/elements/button/button.component.js +29 -0
- package/esm2015/lib/elements/divider/divider.component.js +30 -0
- package/esm2015/lib/elements/image/image.component.js +54 -0
- package/esm2015/lib/elements/social/social.component.js +42 -0
- package/esm2015/lib/elements/spacer/spacer.component.js +30 -0
- package/esm2015/lib/elements/text-element/text-element.component.js +80 -0
- package/esm2015/lib/groups/align.js +79 -0
- package/esm2015/lib/groups/back-repeat.js +55 -0
- package/esm2015/lib/groups/border.js +102 -0
- package/esm2015/lib/groups/color.js +139 -0
- package/esm2015/lib/groups/direction.js +63 -0
- package/esm2015/lib/groups/font-styles.js +112 -0
- package/esm2015/lib/groups/gaps.js +45 -0
- package/esm2015/lib/groups/line-height.js +68 -0
- package/esm2015/lib/groups/link.js +67 -0
- package/esm2015/lib/groups/margin.js +45 -0
- package/esm2015/lib/groups/padding.js +53 -0
- package/esm2015/lib/groups/upload-image.js +112 -0
- package/esm2015/lib/groups/width-height.js +94 -0
- package/esm2015/lib/interceptors/pb-interceptor.interceptor.js +51 -0
- package/esm2015/lib/interfaces/interfaces.js +13 -0
- package/esm2015/lib/pb-email-builder.component.js +246 -0
- package/esm2015/lib/pb-email-builder.module.js +291 -0
- package/esm2015/lib/pb-email-builder.service.js +134 -0
- package/esm2015/lib/pipes/slugify.pipe.js +39 -0
- package/esm2015/lib/services/internals/pb-email-object-store/pb-email-object-store.service.js +165 -0
- package/esm2015/lib/services/internals/user-interfaces/user-interface.service.js +122 -0
- package/esm2015/lib/services/pb-storage/FreeUsersStorage.class.js +11 -0
- package/esm2015/lib/services/pb-storage/index.js +7 -0
- package/esm2015/lib/services/pb-storage/pb-storage.service.js +79 -0
- package/esm2015/lib/services/user-image-uploader-service/free-users-image-uploader.service.js +26 -0
- package/esm2015/lib/services/user-image-uploader-service/index.js +8 -0
- package/esm2015/lib/services/user-image-uploader-service/paid-users-image-uploader.service.js +30 -0
- package/esm2015/lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component.js +112 -0
- package/esm2015/lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component.js +91 -0
- package/esm2015/lib/services/user-image-uploader-service/user-image-uploader.service.js +26 -0
- package/esm2015/lib/services/user-middleware-service/FreeUsersMiddleware.js +31 -0
- package/esm2015/lib/services/user-middleware-service/PaidUsersMiddleware.js +12 -0
- package/esm2015/lib/services/user-middleware-service/index.js +8 -0
- package/esm2015/lib/services/user-middleware-service/pb-middlewares.service.js +195 -0
- package/esm2015/lib/services/user-rest-api-service/free-users-rest-api.service.js +16 -0
- package/esm2015/lib/services/user-rest-api-service/index.js +7 -0
- package/esm2015/lib/services/user-rest-api-service/user-rest-api.service.js +116 -0
- package/esm2015/lib/tokens/private-tokens.js +17 -0
- package/esm2015/lib/tokens/tokens.js +159 -0
- package/esm2015/lib/utils.js +147 -0
- package/esm2015/pobuca-email-builder.js +43 -0
- package/esm2015/public_api.js +26 -0
- package/fesm2015/pobuca-email-builder.js +4335 -0
- package/fesm2015/pobuca-email-builder.js.map +1 -0
- package/lib/classes/DefaultEmail.d.ts +9 -0
- package/lib/classes/Elements.d.ts +62 -0
- package/lib/classes/Structure.d.ts +11 -0
- package/lib/components/block/block.component.d.ts +25 -0
- package/lib/components/block-settings/block-settings.component.d.ts +18 -0
- package/lib/components/builder-container/builder-container.component.d.ts +36 -0
- package/lib/components/dialog.component.d.ts +10 -0
- package/lib/components/general-settings/general-settings.component.d.ts +6 -0
- package/lib/components/import-dialog/import-dialog.component.d.ts +16 -0
- package/lib/components/preview.component.d.ts +18 -0
- package/lib/components/structure/structure.component.d.ts +43 -0
- package/lib/components/structure-settings/structure-settings.component.d.ts +9 -0
- package/lib/components/template-list-dialog/template-list-dialog.component.d.ts +15 -0
- package/lib/directives/dynamic-component.directive.d.ts +13 -0
- package/lib/elements/abstract-block.d.ts +8 -0
- package/lib/elements/button/button.component.d.ts +18 -0
- package/lib/elements/divider/divider.component.d.ts +10 -0
- package/lib/elements/image/image.component.d.ts +19 -0
- package/lib/elements/social/social.component.d.ts +21 -0
- package/lib/elements/spacer/spacer.component.d.ts +5 -0
- package/lib/elements/text-element/text-element.component.d.ts +52 -0
- package/lib/groups/align.d.ts +17 -0
- package/lib/groups/back-repeat.d.ts +8 -0
- package/lib/groups/border.d.ts +13 -0
- package/lib/groups/color.d.ts +26 -0
- package/lib/groups/direction.d.ts +13 -0
- package/lib/groups/font-styles.d.ts +17 -0
- package/lib/groups/gaps.d.ts +7 -0
- package/lib/groups/line-height.d.ts +12 -0
- package/lib/groups/link.d.ts +11 -0
- package/lib/groups/margin.d.ts +8 -0
- package/lib/groups/padding.d.ts +8 -0
- package/lib/groups/upload-image.d.ts +19 -0
- package/lib/groups/width-height.d.ts +19 -0
- package/lib/interceptors/pb-interceptor.interceptor.d.ts +10 -0
- package/lib/interfaces/interfaces.d.ts +422 -0
- package/lib/pb-email-builder.component.d.ts +67 -0
- package/lib/pb-email-builder.module.d.ts +51 -0
- package/lib/pb-email-builder.service.d.ts +83 -0
- package/lib/pipes/slugify.pipe.d.ts +9 -0
- package/lib/services/internals/pb-email-object-store/pb-email-object-store.service.d.ts +50 -0
- package/lib/services/internals/user-interfaces/user-interface.service.d.ts +46 -0
- package/lib/services/pb-storage/FreeUsersStorage.class.d.ts +6 -0
- package/lib/services/pb-storage/index.d.ts +2 -0
- package/lib/services/pb-storage/pb-storage.service.d.ts +54 -0
- package/lib/services/user-image-uploader-service/free-users-image-uploader.service.d.ts +12 -0
- package/lib/services/user-image-uploader-service/index.d.ts +3 -0
- package/lib/services/user-image-uploader-service/paid-users-image-uploader.service.d.ts +14 -0
- package/lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component.d.ts +28 -0
- package/lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component.d.ts +27 -0
- package/lib/services/user-image-uploader-service/user-image-uploader.service.d.ts +26 -0
- package/lib/services/user-middleware-service/FreeUsersMiddleware.d.ts +15 -0
- package/lib/services/user-middleware-service/PaidUsersMiddleware.d.ts +7 -0
- package/lib/services/user-middleware-service/index.d.ts +3 -0
- package/lib/services/user-middleware-service/pb-middlewares.service.d.ts +190 -0
- package/lib/services/user-rest-api-service/free-users-rest-api.service.d.ts +10 -0
- package/lib/services/user-rest-api-service/index.d.ts +2 -0
- package/lib/services/user-rest-api-service/user-rest-api.service.d.ts +82 -0
- package/lib/tokens/private-tokens.d.ts +5 -0
- package/lib/tokens/tokens.d.ts +70 -0
- package/lib/utils.d.ts +88 -0
- package/package.json +37 -0
- package/pobuca-email-builder.d.ts +42 -0
- package/pobuca-email-builder.metadata.json +1 -0
- package/public_api.d.ts +16 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { Component, ViewChild, ElementRef } from '@angular/core';
|
|
6
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
7
|
+
import { Subject, EMPTY } from 'rxjs';
|
|
8
|
+
import { HttpEventType, HttpResponse } from '@angular/common/http';
|
|
9
|
+
import { MatBottomSheetRef } from '@angular/material/bottom-sheet';
|
|
10
|
+
import { catchError, finalize, switchMap } from 'rxjs/operators';
|
|
11
|
+
import { bytesToSize } from '../../../utils';
|
|
12
|
+
import { PbEmailBuilderService } from '../../../pb-email-builder.service';
|
|
13
|
+
import { PbUserMiddlewaresService } from '../../user-middleware-service/pb-middlewares.service';
|
|
14
|
+
import { PbUserInterfaceService } from '../../internals/user-interfaces/user-interface.service';
|
|
15
|
+
import { PbUserRestApiService } from '../../user-rest-api-service/user-rest-api.service';
|
|
16
|
+
export class UploadBottomSheetDialogComponent {
|
|
17
|
+
constructor(sanitizer, ngb, userRestApi, userInterface, middlewares, bottomSheetRef) {
|
|
18
|
+
this.sanitizer = sanitizer;
|
|
19
|
+
this.ngb = ngb;
|
|
20
|
+
this.userRestApi = userRestApi;
|
|
21
|
+
this.userInterface = userInterface;
|
|
22
|
+
this.middlewares = middlewares;
|
|
23
|
+
this.bottomSheetRef = bottomSheetRef;
|
|
24
|
+
this.uploading = false;
|
|
25
|
+
this.progress = new Subject();
|
|
26
|
+
}
|
|
27
|
+
get imageInfo() {
|
|
28
|
+
if (this.choosedImage) {
|
|
29
|
+
const { lastModified, size } = this.choosedImage;
|
|
30
|
+
const modTime = new Date(lastModified);
|
|
31
|
+
return `${modTime.toLocaleString()}, ${bytesToSize(size)}.`;
|
|
32
|
+
}
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
previewLink() {
|
|
36
|
+
return this.sanitizer.bypassSecurityTrustResourceUrl(this.objectUrl);
|
|
37
|
+
}
|
|
38
|
+
openBrowserModal(event) {
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
const { uploadImagePath } = this.ngb.config;
|
|
41
|
+
if (!this.uploading && uploadImagePath) {
|
|
42
|
+
this.uploadInput.nativeElement.click();
|
|
43
|
+
}
|
|
44
|
+
else if (!uploadImagePath) {
|
|
45
|
+
this.userInterface.notify(`Hm ... this isn't a bug, it seems 'uploadImagePath' is empty!`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
uploadInputChanged() {
|
|
49
|
+
const { nativeElement } = this.uploadInput;
|
|
50
|
+
if (nativeElement.files.length) {
|
|
51
|
+
this._startUploading(nativeElement.files.item(0));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
_startUploading(image) {
|
|
55
|
+
if (this.objectUrl) {
|
|
56
|
+
URL.revokeObjectURL(this.objectUrl);
|
|
57
|
+
}
|
|
58
|
+
this.objectUrl = URL.createObjectURL(image);
|
|
59
|
+
this.uploading = true;
|
|
60
|
+
const { uploadImagePath, csrf } = this.ngb.config;
|
|
61
|
+
const formData = new FormData();
|
|
62
|
+
if (csrf) {
|
|
63
|
+
formData.append(csrf.name, csrf.token);
|
|
64
|
+
}
|
|
65
|
+
formData.append('image', image);
|
|
66
|
+
return this.userRestApi
|
|
67
|
+
.userImageUpload$(formData, uploadImagePath)
|
|
68
|
+
.pipe(catchError((error) => this.middlewares.catchError(error).pipe(switchMap(() => {
|
|
69
|
+
this.userInterface.notify(error.message);
|
|
70
|
+
return EMPTY;
|
|
71
|
+
}))), finalize(() => this.progress.complete()))
|
|
72
|
+
.subscribe((event) => {
|
|
73
|
+
if (event.type === HttpEventType.UploadProgress) {
|
|
74
|
+
const percentDone = Math.round((100 * event.loaded) / event.total);
|
|
75
|
+
this.progress.next(percentDone);
|
|
76
|
+
}
|
|
77
|
+
else if (event instanceof HttpResponse) {
|
|
78
|
+
if (!event.body.success) {
|
|
79
|
+
this.userInterface.notify(event.body.message, 'Dismiss', null);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.bottomSheetRef.dismiss(event.body.path);
|
|
83
|
+
this.userInterface.notify('Successfully uploaded.', null, 1000);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
ngOnDestroy() {
|
|
89
|
+
if (this.objectUrl) {
|
|
90
|
+
URL.revokeObjectURL(this.objectUrl);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
UploadBottomSheetDialogComponent.decorators = [
|
|
95
|
+
{ type: Component, args: [{
|
|
96
|
+
selector: 'pb-upload-bottom-sheet-dialog',
|
|
97
|
+
template: "<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<mat-nav-list>\n <mat-list-item (click)=\"openBrowserModal($event)\">\n <div *ngIf=\"!uploading\">\n <span mat-line i18n=\"upload|Browse images from computer\">Browse images from computer</span>\n </div>\n <ng-container *ngIf=\"uploading\">\n <img matListAvatar [src]=\"previewLink()\" />\n <span mat-line i18n=\"upload|Uploading Message\">Uploading ...</span>\n <span mat-line>{{ imageInfo }}</span>\n </ng-container>\n </mat-list-item>\n <mat-progress-bar *ngIf=\"uploading\" mode=\"buffer\" [value]=\"progress | async\"></mat-progress-bar>\n</mat-nav-list>\n<input type=\"file\" accept=\"image/*\" fxHide #uploadInput (change)=\"uploadInputChanged()\" />\n",
|
|
98
|
+
styles: [""]
|
|
99
|
+
},] }
|
|
100
|
+
];
|
|
101
|
+
UploadBottomSheetDialogComponent.ctorParameters = () => [
|
|
102
|
+
{ type: DomSanitizer },
|
|
103
|
+
{ type: PbEmailBuilderService },
|
|
104
|
+
{ type: PbUserRestApiService },
|
|
105
|
+
{ type: PbUserInterfaceService },
|
|
106
|
+
{ type: PbUserMiddlewaresService },
|
|
107
|
+
{ type: MatBottomSheetRef }
|
|
108
|
+
];
|
|
109
|
+
UploadBottomSheetDialogComponent.propDecorators = {
|
|
110
|
+
uploadInput: [{ type: ViewChild, args: ['uploadInput', { static: true },] }]
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWJvdHRvbS1zaGVldC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3VzZXItaW1hZ2UtdXBsb2FkZXItc2VydmljZS91cGxvYWQtYm90dG9tLXNoZWV0LWRpYWxvZy91cGxvYWQtYm90dG9tLXNoZWV0LWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFPekYsTUFBTSxPQUFPLGdDQUFnQztJQU8zQyxZQUNVLFNBQXVCLEVBQ3ZCLEdBQTBCLEVBQzFCLFdBQWlDLEVBQ2pDLGFBQXFD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QUM7Z0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtnQkFDekMsMndCQUEwRDs7YUFFM0Q7OztZQWhCUSxZQUFZO1lBT1oscUJBQXFCO1lBR3JCLG9CQUFvQjtZQURwQixzQkFBc0I7WUFEdEIsd0JBQXdCO1lBTHhCLGlCQUFpQjs7OzBCQWV2QixTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgUG9idWNhLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFN1YmplY3QsIEVNUFRZIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldFJlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBieXRlc1RvU2l6ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFBiRW1haWxCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3BiLWVtYWlsLWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFBiVXNlckludGVyZmFjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvdXNlci1pbnRlcmZhY2VzL3VzZXItaW50ZXJmYWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGJVc2VyUmVzdEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLXJlc3QtYXBpLXNlcnZpY2UvdXNlci1yZXN0LWFwaS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGItdXBsb2FkLWJvdHRvbS1zaGVldC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWJvdHRvbS1zaGVldC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQtYm90dG9tLXNoZWV0LWRpYWxvZy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkQm90dG9tU2hlZXREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCd1cGxvYWRJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIHVwbG9hZElucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBjaG9vc2VkSW1hZ2U6IEZpbGU7XG4gIHVwbG9hZGluZyA9IGZhbHNlO1xuICBwcm9ncmVzcyA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSBvYmplY3RVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgbmdiOiBQYkVtYWlsQnVpbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyUmVzdEFwaTogUGJVc2VyUmVzdEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VySW50ZXJmYWNlOiBQYlVzZXJJbnRlcmZhY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWlkZGxld2FyZXM6IFBiVXNlck1pZGRsZXdhcmVzU2VydmljZSxcbiAgICBwcml2YXRlIGJvdHRvbVNoZWV0UmVmOiBNYXRCb3R0b21TaGVldFJlZjxVcGxvYWRCb3R0b21TaGVldERpYWxvZ0NvbXBvbmVudD5cbiAgKSB7fVxuXG4gIGdldCBpbWFnZUluZm8oKSB7XG4gICAgaWYgKHRoaXMuY2hvb3NlZEltYWdlKSB7XG4gICAgICBjb25zdCB7IGxhc3RNb2RpZmllZCwgc2l6ZSB9ID0gdGhpcy5jaG9vc2VkSW1hZ2U7XG4gICAgICBjb25zdCBtb2RUaW1lID0gbmV3IERhdGUobGFzdE1vZGlmaWVkKTtcbiAgICAgIHJldHVybiBgJHttb2RUaW1lLnRvTG9jYWxlU3RyaW5nKCl9LCAke2J5dGVzVG9TaXplKHNpemUpfS5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcmV2aWV3TGluaygpIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMub2JqZWN0VXJsKTtcbiAgfVxuXG4gIG9wZW5Ccm93c2VyTW9kYWwoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHsgdXBsb2FkSW1hZ2VQYXRoIH0gPSB0aGlzLm5nYi5jb25maWc7XG4gICAgaWYgKCF0aGlzLnVwbG9hZGluZyAmJiB1cGxvYWRJbWFnZVBhdGgpIHtcbiAgICAgIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH0gZWxzZSBpZiAoIXVwbG9hZEltYWdlUGF0aCkge1xuICAgICAgdGhpcy51c2VySW50ZXJmYWNlLm5vdGlmeShgSG0gLi4uIHRoaXMgaXNuJ3QgYSBidWcsIGl0IHNlZW1zICd1cGxvYWRJbWFnZVBhdGgnIGlzIGVtcHR5IWApO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZElucHV0Q2hhbmdlZCgpIHtcbiAgICBjb25zdCB7IG5hdGl2ZUVsZW1lbnQgfSA9IHRoaXMudXBsb2FkSW5wdXQ7XG4gICAgaWYgKG5hdGl2ZUVsZW1lbnQuZmlsZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9zdGFydFVwbG9hZGluZyhuYXRpdmVFbGVtZW50LmZpbGVzLml0ZW0oMCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N0YXJ0VXBsb2FkaW5nKGltYWdlOiBGaWxlKSB7XG4gICAgaWYgKHRoaXMub2JqZWN0VXJsKSB7XG4gICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMub2JqZWN0VXJsKTtcbiAgICB9XG4gICAgdGhpcy5vYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGltYWdlKTtcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG5cbiAgICBjb25zdCB7IHVwbG9hZEltYWdlUGF0aCwgY3NyZiB9ID0gdGhpcy5uZ2IuY29uZmlnO1xuXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBpZiAoY3NyZikge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKGNzcmYubmFtZSwgY3NyZi50b2tlbik7XG4gICAgfVxuICAgIGZvcm1EYXRhLmFwcGVuZCgnaW1hZ2UnLCBpbWFnZSk7XG5cbiAgICByZXR1cm4gdGhpcy51c2VyUmVzdEFwaVxuICAgICAgLnVzZXJJbWFnZVVwbG9hZCQoZm9ybURhdGEsIHVwbG9hZEltYWdlUGF0aClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogRXJyb3IgfCBIdHRwRXJyb3JSZXNwb25zZSkgPT5cbiAgICAgICAgICB0aGlzLm1pZGRsZXdhcmVzLmNhdGNoRXJyb3IoZXJyb3IpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJJbnRlcmZhY2Uubm90aWZ5KGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5wcm9ncmVzcy5jb21wbGV0ZSgpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEh0dHBFdmVudDx7IHN1Y2Nlc3M6IGJvb2xlYW47IHBhdGg6IHN0cmluZzsgbWVzc2FnZT86IHN0cmluZyB9PikgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgIGNvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKTtcbiAgICAgICAgICB0aGlzLnByb2dyZXNzLm5leHQocGVyY2VudERvbmUpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgaWYgKCFldmVudC5ib2R5LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMudXNlckludGVyZmFjZS5ub3RpZnkoZXZlbnQuYm9keS5tZXNzYWdlLCAnRGlzbWlzcycsIG51bGwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJvdHRvbVNoZWV0UmVmLmRpc21pc3MoZXZlbnQuYm9keS5wYXRoKTtcbiAgICAgICAgICAgIHRoaXMudXNlckludGVyZmFjZS5ub3RpZnkoJ1N1Y2Nlc3NmdWxseSB1cGxvYWRlZC4nLCBudWxsLCAxMDAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMub2JqZWN0VXJsKSB7XG4gICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMub2JqZWN0VXJsKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Inject } from '@angular/core';
|
|
6
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
7
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
8
|
+
import { catchError, switchMap } from 'rxjs/operators';
|
|
9
|
+
import { HttpEventType, HttpResponse } from '@angular/common/http';
|
|
10
|
+
import { EMPTY } from 'rxjs';
|
|
11
|
+
import { PbUserRestApiService } from '../../user-rest-api-service/user-rest-api.service';
|
|
12
|
+
import { PB_CONFIG } from '../../../tokens/tokens';
|
|
13
|
+
import { PbUserMiddlewaresService } from '../../user-middleware-service/pb-middlewares.service';
|
|
14
|
+
import { PbUserInterfaceService } from '../../internals/user-interfaces/user-interface.service';
|
|
15
|
+
export class UploadImageGalleryComponent {
|
|
16
|
+
constructor(imageCategoryList, userConfig, matDialogRef, sanitizer, userRestApi, middlewares, userInterface) {
|
|
17
|
+
this.imageCategoryList = imageCategoryList;
|
|
18
|
+
this.userConfig = userConfig;
|
|
19
|
+
this.matDialogRef = matDialogRef;
|
|
20
|
+
this.sanitizer = sanitizer;
|
|
21
|
+
this.userRestApi = userRestApi;
|
|
22
|
+
this.middlewares = middlewares;
|
|
23
|
+
this.userInterface = userInterface;
|
|
24
|
+
this.currentMenuItem = 'gallery';
|
|
25
|
+
}
|
|
26
|
+
changeCurrentMenuItem(item) {
|
|
27
|
+
this.currentMenuItem = item;
|
|
28
|
+
}
|
|
29
|
+
addImageToTemplate(imagePath = this.choseImage) {
|
|
30
|
+
this.matDialogRef.close(imagePath);
|
|
31
|
+
}
|
|
32
|
+
previewImage({ target }) {
|
|
33
|
+
this.uploadImageFile = target.files.item(0);
|
|
34
|
+
if (this.imagePreviewObjectUrl) {
|
|
35
|
+
URL.revokeObjectURL(this.imagePreviewObjectUrl);
|
|
36
|
+
}
|
|
37
|
+
this.imagePreviewObjectUrl = URL.createObjectURL(this.uploadImageFile);
|
|
38
|
+
this.uploadImagePreview = this.sanitizer.bypassSecurityTrustResourceUrl(this.imagePreviewObjectUrl);
|
|
39
|
+
}
|
|
40
|
+
startUploading() {
|
|
41
|
+
const { csrf, uploadImagePath } = this.userConfig;
|
|
42
|
+
const formData = new FormData();
|
|
43
|
+
if (csrf) {
|
|
44
|
+
formData.append(csrf.name, csrf.token);
|
|
45
|
+
}
|
|
46
|
+
formData.append('image', this.uploadImageFile);
|
|
47
|
+
return this.userRestApi
|
|
48
|
+
.userImageUpload$(formData, uploadImagePath)
|
|
49
|
+
.pipe(catchError((error) => this.middlewares.catchError(error).pipe(switchMap(() => {
|
|
50
|
+
this.userInterface.notify(error.message);
|
|
51
|
+
return EMPTY;
|
|
52
|
+
}))))
|
|
53
|
+
.subscribe((event) => {
|
|
54
|
+
if (event.type === HttpEventType.UploadProgress) {
|
|
55
|
+
// const percentDone = Math.round((100 * event.loaded) / event.total);
|
|
56
|
+
// this.progress.next(percentDone);
|
|
57
|
+
}
|
|
58
|
+
else if (event instanceof HttpResponse) {
|
|
59
|
+
if (!event.body.success) {
|
|
60
|
+
this.userInterface.notify(event.body.message, 'Dismiss', null);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.addImageToTemplate(event.body.path);
|
|
64
|
+
this.userInterface.notify('Successfully uploaded.', null, 1000);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
ngOnDestroy() {
|
|
70
|
+
if (this.imagePreviewObjectUrl) {
|
|
71
|
+
URL.revokeObjectURL(this.imagePreviewObjectUrl);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
UploadImageGalleryComponent.decorators = [
|
|
76
|
+
{ type: Component, args: [{
|
|
77
|
+
selector: 'pb-upload-image-gallery',
|
|
78
|
+
template: "<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<div fxLayout=\"column\" style=\"height: 100%;\">\n <h2 mat-dialog-title i18n=\"image-gallery|Modal Image gallery header\">Image Gallery</h2>\n <div class=\"mat-typography gallery-list-wrapper\" fxLayout fxLayoutGap=\"1rem\" fxFlex>\n <mat-list fxFlex=\"200px\">\n <mat-list-item (click)=\"changeCurrentMenuItem('gallery')\" [class.active]=\"currentMenuItem === 'gallery'\"\n i18n=\"image-gallery|Image list\">\n Gallery Image list\n </mat-list-item>\n <mat-list-item (click)=\"changeCurrentMenuItem('upload')\" [class.active]=\"currentMenuItem === 'upload'\"\n i18n=\"image-gallery|Upload an image\">\n Upload an image\n </mat-list-item>\n </mat-list>\n\n <ng-container *ngIf=\"currentMenuItem === 'gallery'\">\n <ng-container *ngIf=\"imageCategoryList.length;else emptyImageList\">\n <cdk-virtual-scroll-viewport itemSize=\"150\" [minBufferPx]=\"150 * 10\" fxFlex\n class=\"gallery-list\">\n <div *cdkVirtualFor=\"let imagePath of imageCategoryList\" class=\"gallery-list-item\"\n (click)=\"choseImage = imagePath\" i18n-matTooltip=\"image-gallery|Click to choose message\"\n matTooltip=\"Click to choose\">\n <img [src]=\"imagePath\" />\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"currentMenuItem === 'upload'\">\n <div class=\"upload-image\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFlex fxLayoutGap=\"1rem\">\n <label class=\"upload-image-item\" [class.empty]=\"!uploadImagePreview\">\n <div class=\"upload-image-item-overview\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-icon>backup</mat-icon>\n </div>\n <img class=\"upload-image-item-preview\" *ngIf=\"uploadImagePreview\" [src]=\"uploadImagePreview\" />\n <input type=\"file\" fxHide pattern=\"image/*\" (change)=\"previewImage($event)\">\n </label>\n <button mat-flat-button color=\"primary\" (click)=\"startUploading()\" i18n=\"image-gallery|Upload and insert into template\">\n Upload and insert into template\n </button>\n </div>\n </ng-container>\n </div>\n <mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close i18n=\"actions|Undo\">Cancel</button>\n <button mat-stroked-button color=\"primary\" [disabled]=\"!choseImage\" (click)=\"addImageToTemplate()\"\n i18n=\"actions|Start\">\n Add to template\n </button>\n </mat-dialog-actions>\n</div>\n\n\n<ng-template #emptyImageList>\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"empty-category-notification\">\n <mat-icon>notifications</mat-icon>\n <h2 i18n=\"image-gallery|Image list is empty message\">Image list is empty!</h2>\n </div>\n</ng-template>\n",
|
|
79
|
+
styles: ["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */mat-list{background-color:#fff}mat-list mat-list-item{cursor:pointer}mat-list mat-list-item.active{background-color:#ccc}.gallery-list ::ng-deep .cdk-virtual-scroll-content-wrapper{display:grid;gap:.3rem;grid-template:auto/repeat(4,1fr)}.gallery-list-item{height:120px;background-color:#ccc;cursor:pointer}.gallery-list-item img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.upload-image-item{width:80%;height:200px;background-color:#ccc;position:relative;border-radius:3px;padding:1em;text-align:center}.upload-image-item.empty .upload-image-item-overview,.upload-image-item:hover .upload-image-item-overview{opacity:1}.upload-image-item-overview{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;cursor:pointer;transition:opacity .5s linear}.upload-image-item-overview mat-icon{height:50px;width:50px;font-size:50px}.upload-image-item-preview{max-height:100%}"]
|
|
80
|
+
},] }
|
|
81
|
+
];
|
|
82
|
+
UploadImageGalleryComponent.ctorParameters = () => [
|
|
83
|
+
{ type: Array, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
|
|
84
|
+
{ type: undefined, decorators: [{ type: Inject, args: [PB_CONFIG,] }] },
|
|
85
|
+
{ type: MatDialogRef },
|
|
86
|
+
{ type: DomSanitizer },
|
|
87
|
+
{ type: PbUserRestApiService },
|
|
88
|
+
{ type: PbUserMiddlewaresService },
|
|
89
|
+
{ type: PbUserInterfaceService }
|
|
90
|
+
];
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWltYWdlLWdhbGxlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3VzZXItaW1hZ2UtdXBsb2FkZXItc2VydmljZS91cGxvYWQtaW1hZ2UtZ2FsbGVyeS91cGxvYWQtaW1hZ2UtZ2FsbGVyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQW1CLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFnQyxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFPaEcsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUNrQyxpQkFBMkIsRUFDaEMsVUFBd0IsRUFDM0MsWUFBK0QsRUFDL0QsU0FBdUIsRUFDdkIsV0FBaUMsRUFDakMsV0FBcUMsRUFDckMsYUFBcUM7UUFOYixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVU7UUFDaEMsZUFBVSxHQUFW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LElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzs7O1lBN0VGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyw2dEdBQW9EOzthQUVyRDs7O3dDQVNJLE1BQU0sU0FBQyxlQUFlOzRDQUN0QixNQUFNLFNBQUMsU0FBUztZQTFCSyxZQUFZO1lBQ1osWUFBWTtZQUs3QixvQkFBb0I7WUFHcEIsd0JBQXdCO1lBQ3hCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgUG9idWNhLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTYWZlUmVzb3VyY2VVcmwsIERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRU1QVFkgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUGJVc2VyUmVzdEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLXJlc3QtYXBpLXNlcnZpY2UvdXNlci1yZXN0LWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFBCX0NPTkZJRyB9IGZyb20gJy4uLy4uLy4uL3Rva2Vucy90b2tlbnMnO1xuaW1wb3J0IHsgSUZvclJvb3RDb25mIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBiVXNlck1pZGRsZXdhcmVzU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWlkZGxld2FyZS1zZXJ2aWNlL3BiLW1pZGRsZXdhcmVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGJVc2VySW50ZXJmYWNlU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVybmFscy91c2VyLWludGVyZmFjZXMvdXNlci1pbnRlcmZhY2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BiLXVwbG9hZC1pbWFnZS1nYWxsZXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1pbWFnZS1nYWxsZXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLWltYWdlLWdhbGxlcnkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRJbWFnZUdhbGxlcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBjdXJyZW50TWVudUl0ZW06ICdnYWxsZXJ5JyB8ICd1cGxvYWQnID0gJ2dhbGxlcnknO1xuICBjaG9zZUltYWdlOiBzdHJpbmc7XG4gIHVwbG9hZEltYWdlUHJldmlldzogU2FmZVJlc291cmNlVXJsO1xuICBwcml2YXRlIGltYWdlUHJldmlld09iamVjdFVybDogc3RyaW5nO1xuICBwcml2YXRlIHVwbG9hZEltYWdlRmlsZTogRmlsZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGltYWdlQ2F0ZWdvcnlMaXN0OiBzdHJpbmdbXSxcbiAgICBASW5qZWN0KFBCX0NPTkZJRykgcHJpdmF0ZSB1c2VyQ29uZmlnOiBJRm9yUm9vdENvbmYsXG4gICAgcHJpdmF0ZSBtYXREaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxVcGxvYWRJbWFnZUdhbGxlcnlDb21wb25lbnQsIHN0cmluZz4sXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIHVzZXJSZXN0QXBpOiBQYlVzZXJSZXN0QXBpU2VydmljZSxcbiAgICBwcml2YXRlIG1pZGRsZXdhcmVzOiBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VySW50ZXJmYWNlOiBQYlVzZXJJbnRlcmZhY2VTZXJ2aWNlXG4gICkge31cblxuICBjaGFuZ2VDdXJyZW50TWVudUl0ZW0oaXRlbTogJ2dhbGxlcnknIHwgJ3VwbG9hZCcpIHtcbiAgICB0aGlzLmN1cnJlbnRNZW51SXRlbSA9IGl0ZW07XG4gIH1cblxuICBhZGRJbWFnZVRvVGVtcGxhdGUoaW1hZ2VQYXRoID0gdGhpcy5jaG9zZUltYWdlKSB7XG4gICAgdGhpcy5tYXREaWFsb2dSZWYuY2xvc2UoaW1hZ2VQYXRoKTtcbiAgfVxuXG4gIHByZXZpZXdJbWFnZSh7IHRhcmdldCB9OiBFdmVudCkge1xuICAgIHRoaXMudXBsb2FkSW1hZ2VGaWxlID0gKHRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcy5pdGVtKDApO1xuICAgIGlmICh0aGlzLmltYWdlUHJldmlld09iamVjdFVybCkge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLmltYWdlUHJldmlld09iamVjdFVybCk7XG4gICAgfVxuICAgIHRoaXMuaW1hZ2VQcmV2aWV3T2JqZWN0VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLnVwbG9hZEltYWdlRmlsZSk7XG4gICAgdGhpcy51cGxvYWRJbWFnZVByZXZpZXcgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodGhpcy5pbWFnZVByZXZpZXdPYmplY3RVcmwpO1xuICB9XG5cbiAgc3RhcnRVcGxvYWRpbmcoKSB7XG4gICAgY29uc3QgeyBjc3JmLCB1cGxvYWRJbWFnZVBhdGggfSA9IHRoaXMudXNlckNvbmZpZztcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGlmIChjc3JmKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoY3NyZi5uYW1lLCBjc3JmLnRva2VuKTtcbiAgICB9XG4gICAgZm9ybURhdGEuYXBwZW5kKCdpbWFnZScsIHRoaXMudXBsb2FkSW1hZ2VGaWxlKTtcbiAgICByZXR1cm4gdGhpcy51c2VyUmVzdEFwaVxuICAgICAgLnVzZXJJbWFnZVVwbG9hZCQoZm9ybURhdGEsIHVwbG9hZEltYWdlUGF0aClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogRXJyb3IgfCBIdHRwRXJyb3JSZXNwb25zZSkgPT5cbiAgICAgICAgICB0aGlzLm1pZGRsZXdhcmVzLmNhdGNoRXJyb3IoZXJyb3IpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJJbnRlcmZhY2Uubm90aWZ5KGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEh0dHBFdmVudDx7IHN1Y2Nlc3M6IGJvb2xlYW47IHBhdGg6IHN0cmluZzsgbWVzc2FnZT86IHN0cmluZyB9PikgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgIC8vIGNvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKTtcbiAgICAgICAgICAvLyB0aGlzLnByb2dyZXNzLm5leHQocGVyY2VudERvbmUpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgaWYgKCFldmVudC5ib2R5LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMudXNlckludGVyZmFjZS5ub3RpZnkoZXZlbnQuYm9keS5tZXNzYWdlLCAnRGlzbWlzcycsIG51bGwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkZEltYWdlVG9UZW1wbGF0ZShldmVudC5ib2R5LnBhdGgpO1xuICAgICAgICAgICAgdGhpcy51c2VySW50ZXJmYWNlLm5vdGlmeSgnU3VjY2Vzc2Z1bGx5IHVwbG9hZGVkLicsIG51bGwsIDEwMDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5pbWFnZVByZXZpZXdPYmplY3RVcmwpIHtcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5pbWFnZVByZXZpZXdPYmplY3RVcmwpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { Injectable } from '@angular/core';
|
|
6
|
+
/**
|
|
7
|
+
* A service that must be extended in case you want to rewrite the default
|
|
8
|
+
* uploading process. In case you have a Regular License, you'll get a simple upload
|
|
9
|
+
* service, for any other paid Licenses - you get an Image Gallery.
|
|
10
|
+
*
|
|
11
|
+
* It won't work if you have a Regular/Free License - you'll get an error on running the project,
|
|
12
|
+
* you need either an [Extended or Commercial License]{@link https://wlocalhost.org} key for this purpose.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Create a custom service
|
|
16
|
+
* class YourOwnUploaderService extends PbUserImageUploaderService {}
|
|
17
|
+
*
|
|
18
|
+
* // Rewrite it into AppModule
|
|
19
|
+
* { provide: PbUserImageUploaderService, useClass: YourOwnUploaderService }
|
|
20
|
+
*/
|
|
21
|
+
export class PbUserImageUploaderService {
|
|
22
|
+
}
|
|
23
|
+
PbUserImageUploaderService.decorators = [
|
|
24
|
+
{ type: Injectable }
|
|
25
|
+
];
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbWFnZS11cGxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3VzZXItaW1hZ2UtdXBsb2FkZXItc2VydmljZS91c2VyLWltYWdlLXVwbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE1BQU0sT0FBZ0IsMEJBQTBCOzs7WUFEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgUG9idWNhLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIHRoYXQgbXVzdCBiZSBleHRlbmRlZCBpbiBjYXNlIHlvdSB3YW50IHRvIHJld3JpdGUgdGhlIGRlZmF1bHRcbiAqIHVwbG9hZGluZyBwcm9jZXNzLiBJbiBjYXNlIHlvdSBoYXZlIGEgUmVndWxhciBMaWNlbnNlLCB5b3UnbGwgZ2V0IGEgc2ltcGxlIHVwbG9hZFxuICogc2VydmljZSwgZm9yIGFueSBvdGhlciBwYWlkIExpY2Vuc2VzIC0geW91IGdldCBhbiBJbWFnZSBHYWxsZXJ5LlxuICpcbiAqIEl0IHdvbid0IHdvcmsgaWYgeW91IGhhdmUgYSBSZWd1bGFyL0ZyZWUgTGljZW5zZSAtIHlvdSdsbCBnZXQgYW4gZXJyb3Igb24gcnVubmluZyB0aGUgcHJvamVjdCxcbiAqIHlvdSBuZWVkIGVpdGhlciBhbiBbRXh0ZW5kZWQgb3IgQ29tbWVyY2lhbCBMaWNlbnNlXXtAbGluayBodHRwczovL3dsb2NhbGhvc3Qub3JnfSBrZXkgZm9yIHRoaXMgcHVycG9zZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGEgY3VzdG9tIHNlcnZpY2VcbiAqIGNsYXNzIFlvdXJPd25VcGxvYWRlclNlcnZpY2UgZXh0ZW5kcyBQYlVzZXJJbWFnZVVwbG9hZGVyU2VydmljZSB7fVxuICpcbiAqIC8vIFJld3JpdGUgaXQgaW50byBBcHBNb2R1bGVcbiAqIHsgcHJvdmlkZTogUGJVc2VySW1hZ2VVcGxvYWRlclNlcnZpY2UsIHVzZUNsYXNzOiBZb3VyT3duVXBsb2FkZXJTZXJ2aWNlIH1cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBiVXNlckltYWdlVXBsb2FkZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEEgbWV0aG9kIGNhbGxlZCBvbmNlIGVuZCB1c2VyIGludGVuZHMgdG8gdXBsb2FkIGFuIGltYWdlLlxuICAgKiBJdCBtdXN0IHJldHVybnMgYWx3YXlzIGFuIGBPYnNlcnZhYmxlPHN0cmluZz5gIC0gd2hlcmUgYHN0cmluZ2AgaXMgdGhlIHVwbG9hZGVkXG4gICAqIGltYWdlIHBhdGguXG4gICAqXG4gICAqIEByZXR1cm4gVXBsb2FkZWQgaW1hZ2UgcGF0aC5cbiAgICovXG4gIGFic3RyYWN0IGJyb3dzZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xufVxuIl19
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { iif, throwError } from 'rxjs';
|
|
6
|
+
import { PbUserMiddlewaresService } from './pb-middlewares.service';
|
|
7
|
+
import { deferOf } from '../../utils';
|
|
8
|
+
/**
|
|
9
|
+
* @ignore
|
|
10
|
+
*/
|
|
11
|
+
const NOT_ALLOWED = 'This feature is disabled in free version.';
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export default class FreeUsersMiddleware extends PbUserMiddlewaresService {
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
// tslint:disable-next-line: no-console
|
|
19
|
+
console.warn('You use the Regular License of Angular Email Builder, some limitations are applied. More info on https://wlocalhost.org');
|
|
20
|
+
}
|
|
21
|
+
chooseTemplate() {
|
|
22
|
+
throw new Error(NOT_ALLOWED);
|
|
23
|
+
}
|
|
24
|
+
exportFile(type) {
|
|
25
|
+
return iif(() => type === 'json', deferOf(type), throwError(new Error(NOT_ALLOWED)));
|
|
26
|
+
}
|
|
27
|
+
importFile(file) {
|
|
28
|
+
return iif(() => file.type === 'application/json', deferOf(file), throwError(new Error(NOT_ALLOWED)));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJlZVVzZXJzTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9GcmVlVXNlcnNNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBYyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx3QkFBd0IsRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLFdBQVcsR0FBRywyQ0FBMkMsQ0FBQztBQUNoRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0lBQ3ZFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUix1Q0FBdUM7UUFDdkMsT0FBTyxDQUFDLElBQUksQ0FBQyx5SEFBeUgsQ0FBQyxDQUFDO0lBQzFJLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWlCO1FBQzFCLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVO1FBQ25CLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIGlpZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2UsIFRFeHBvcnRUeXBlIH0gZnJvbSAnLi9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlJztcbmltcG9ydCB7IElVc2VyVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGVmZXJPZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmNvbnN0IE5PVF9BTExPV0VEID0gJ1RoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBpbiBmcmVlIHZlcnNpb24uJztcbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyZWVVc2Vyc01pZGRsZXdhcmUgZXh0ZW5kcyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybignWW91IHVzZSB0aGUgUmVndWxhciBMaWNlbnNlIG9mIEFuZ3VsYXIgRW1haWwgQnVpbGRlciwgc29tZSBsaW1pdGF0aW9ucyBhcmUgYXBwbGllZC4gTW9yZSBpbmZvIG9uIGh0dHBzOi8vd2xvY2FsaG9zdC5vcmcnKTtcbiAgfVxuXG4gIGNob29zZVRlbXBsYXRlKCk6IE9ic2VydmFibGU8eyBjYXRlZ29yeTogc3RyaW5nOyB0ZW1wbGF0ZTogSVVzZXJUZW1wbGF0ZSB9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKE5PVF9BTExPV0VEKTtcbiAgfVxuXG4gIGV4cG9ydEZpbGUodHlwZTogVEV4cG9ydFR5cGUpOiBPYnNlcnZhYmxlPFRFeHBvcnRUeXBlPiB7XG4gICAgcmV0dXJuIGlpZigoKSA9PiB0eXBlID09PSAnanNvbicsIGRlZmVyT2YodHlwZSksIHRocm93RXJyb3IobmV3IEVycm9yKE5PVF9BTExPV0VEKSkpO1xuICB9XG5cbiAgaW1wb3J0RmlsZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxGaWxlPiB7XG4gICAgcmV0dXJuIGlpZigoKSA9PiBmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi9qc29uJywgZGVmZXJPZihmaWxlKSwgdGhyb3dFcnJvcihuZXcgRXJyb3IoTk9UX0FMTE9XRUQpKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { PbUserMiddlewaresService } from './pb-middlewares.service';
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
* No limitations are applied for Paid users
|
|
9
|
+
*/
|
|
10
|
+
export default class PaidUsersMiddleware extends PbUserMiddlewaresService {
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFpZFVzZXJzTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9QYWlkVXNlcnNNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0NBQUciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IHsgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIH0gZnJvbSAnLi9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIE5vIGxpbWl0YXRpb25zIGFyZSBhcHBsaWVkIGZvciBQYWlkIHVzZXJzXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhaWRVc2Vyc01pZGRsZXdhcmUgZXh0ZW5kcyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2Uge31cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import FreeUsersMiddleware from './FreeUsersMiddleware';
|
|
6
|
+
import PaidUsersMiddleware from './PaidUsersMiddleware';
|
|
7
|
+
export { FreeUsersMiddleware, PaidUsersMiddleware };
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYi1lbWFpbC1idWlsZGVyL3NyYy9saWIvc2VydmljZXMvdXNlci1taWRkbGV3YXJlLXNlcnZpY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxtQkFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLG1CQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCBGcmVlVXNlcnNNaWRkbGV3YXJlIGZyb20gJy4vRnJlZVVzZXJzTWlkZGxld2FyZSc7XG5pbXBvcnQgUGFpZFVzZXJzTWlkZGxld2FyZSBmcm9tICcuL1BhaWRVc2Vyc01pZGRsZXdhcmUnO1xuXG5leHBvcnQgeyBGcmVlVXNlcnNNaWRkbGV3YXJlLCBQYWlkVXNlcnNNaWRkbGV3YXJlIH07XG4iXX0=
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { Injectable } from '@angular/core';
|
|
6
|
+
import { deferOf } from '../../utils';
|
|
7
|
+
/**
|
|
8
|
+
* This service allows you to control all your users' abilities within this builder. Lets say you want to implement user Roles or just
|
|
9
|
+
* need to disable some functionality for certain users based on purchase plan or on something else. You can allow or disallow almost
|
|
10
|
+
* everything.
|
|
11
|
+
*
|
|
12
|
+
* All the methods must return an Observable, so, in my opinion, that's the best part of this service, you can either return an
|
|
13
|
+
* [EMPTY Observable]{@link https://rxjs.dev/api/index/const/EMPTY}, a modified object or an (Info Modal).pipe(mapTo(EMPTY)) - I think you
|
|
14
|
+
* got the idea.
|
|
15
|
+
*
|
|
16
|
+
* I recommend always using a Modal or a Toast for forbidden actions.
|
|
17
|
+
*
|
|
18
|
+
* It won't work if you have a Regular/Free License - you'll get an error on running the project,
|
|
19
|
+
* you need either an [Extended or Commercial License]{@link https://wlocalhost.org} key for this purpose.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* // Create a custom service
|
|
23
|
+
* class YourOwnMiddlewareService extends PbUserMiddlewaresService {}
|
|
24
|
+
*
|
|
25
|
+
* // Rewrite it into AppModule
|
|
26
|
+
* { provide: PbUserMiddlewaresService, useClass: YourOwnMiddlewareService }
|
|
27
|
+
*/
|
|
28
|
+
export class PbUserMiddlewaresService {
|
|
29
|
+
/**
|
|
30
|
+
* This method is called before sending the request to MJML Convertor. Use it to add some additional blocks or anything else to
|
|
31
|
+
* the PBEmail object.
|
|
32
|
+
* @param email PBEmail object that's being sent to MJML Convertor.
|
|
33
|
+
*/
|
|
34
|
+
createHTMLTemplate(email) {
|
|
35
|
+
return deferOf(email);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Allow or Disallow preview window.
|
|
39
|
+
* @param state Coming Preview state
|
|
40
|
+
*/
|
|
41
|
+
togglePreview(state) {
|
|
42
|
+
return deferOf(state);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Allow or Disallow preview devices.
|
|
46
|
+
* @param button Device's button that has been clicked
|
|
47
|
+
*/
|
|
48
|
+
togglePreviewDevice(button) {
|
|
49
|
+
return deferOf(button.value);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Allow or disallow users to select certain templates based either on category or template object.
|
|
53
|
+
* @param category Template's category user has selected
|
|
54
|
+
* @param template Template user has selected
|
|
55
|
+
*/
|
|
56
|
+
chooseTemplate(category, template) {
|
|
57
|
+
return deferOf({ category, template });
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Allow, disallow or return the same path for all user's uploaded images.
|
|
61
|
+
* @param path Path of uploaded image
|
|
62
|
+
*
|
|
63
|
+
* @TODO Check if this middleware is being called before image has been uploaded
|
|
64
|
+
*/
|
|
65
|
+
uploadImage(path) {
|
|
66
|
+
return deferOf(path);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Allow or disallow users to add blocks within email structures.
|
|
70
|
+
* @param event Event of dropped block
|
|
71
|
+
* @param column Column that block has been dropped
|
|
72
|
+
*
|
|
73
|
+
* @TODO add parent structure as a parameter
|
|
74
|
+
*/
|
|
75
|
+
addBlock(event, column) {
|
|
76
|
+
return deferOf({ event, column });
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Prevent user to edit blocks within email body.
|
|
80
|
+
* @param block Block that user intends to edit
|
|
81
|
+
*/
|
|
82
|
+
editBlock(block) {
|
|
83
|
+
return deferOf(block);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Prevent user to remove blocks within email body.
|
|
87
|
+
* @param index Block's Index
|
|
88
|
+
* @param column Block's parent column
|
|
89
|
+
* @param block Block that user intends to remove
|
|
90
|
+
*/
|
|
91
|
+
removeBlock(index, column, block) {
|
|
92
|
+
return deferOf({ index, column });
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Prevent user to duplicate blocks within email body.
|
|
96
|
+
* @param index Block's Index
|
|
97
|
+
* @param column Block's parent column
|
|
98
|
+
* @param block Block that user intends to duplicate
|
|
99
|
+
*/
|
|
100
|
+
duplicateBlock(index, column, block) {
|
|
101
|
+
return deferOf({ index, column, block });
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Disable Drag and Drop certain blocks from Blocks list to Email body.
|
|
105
|
+
* Return TRUE to disable all blocks - no matter on block's data.
|
|
106
|
+
* @param block Block to allow or disallow from being dragged
|
|
107
|
+
*/
|
|
108
|
+
disableBlockDragFromList(block) {
|
|
109
|
+
return deferOf(false);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Prevent users to sort blocks within email body.
|
|
113
|
+
* @param block Block that user intends to change the order
|
|
114
|
+
*/
|
|
115
|
+
disableBlockDragWithinEmailBody(block) {
|
|
116
|
+
return deferOf(false);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Prevent user to add new structure.
|
|
120
|
+
* @param event Event of dropped structure
|
|
121
|
+
*/
|
|
122
|
+
addStructure(event) {
|
|
123
|
+
return deferOf(event);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Prevent user to edit the structure.
|
|
127
|
+
* @param structure Structure that user intends to edit
|
|
128
|
+
*/
|
|
129
|
+
editStructure(structure) {
|
|
130
|
+
return deferOf(structure);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Prevent user to remove the structure.
|
|
134
|
+
* @param index Index of the structure
|
|
135
|
+
* @param structure Structure that user intends to remove
|
|
136
|
+
*/
|
|
137
|
+
removeStructure(index, structure) {
|
|
138
|
+
return deferOf(index);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Prevent user to duplicate the structure within email body.
|
|
142
|
+
* @param index Index of structure
|
|
143
|
+
* @param structure Structure that user intends to duplicate
|
|
144
|
+
*/
|
|
145
|
+
duplicateStructure(index, structure) {
|
|
146
|
+
return deferOf(index);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Disable Drag and Drop certain structures from Structures list to Email body.
|
|
150
|
+
* Return TRUE to disable all structures.
|
|
151
|
+
* @param structure Structure to prevent from being dragged
|
|
152
|
+
*/
|
|
153
|
+
disableStructureDragFromList(structure) {
|
|
154
|
+
return deferOf(false);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Allow or disallow users to sort structures within email body.
|
|
158
|
+
* @param structure Structure that user intends to change the order
|
|
159
|
+
*/
|
|
160
|
+
disableStructureDragWithinEmailBody(structure) {
|
|
161
|
+
return deferOf(false);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* I don't know why would you do that, but you can disable OnExit confirm modal.
|
|
165
|
+
* @param event Window [BeforeUnloadEvent]{@link https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent}
|
|
166
|
+
*/
|
|
167
|
+
preventWindowExit(event) {
|
|
168
|
+
return deferOf(event);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Allow or disallow user to export certain types of file
|
|
172
|
+
* @param type Type that user intends to download
|
|
173
|
+
*/
|
|
174
|
+
exportFile(type) {
|
|
175
|
+
return deferOf(type);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Allow or disallow user to import certain types of file
|
|
179
|
+
* @param file Web APIs [FILE]{@link https://developer.mozilla.org/en-US/docs/Web/API/File}
|
|
180
|
+
*/
|
|
181
|
+
importFile(file) {
|
|
182
|
+
return deferOf(file);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Catch all errors within email editor, it might not work 100%, it's still on working process.
|
|
186
|
+
* @param error Throwable Error
|
|
187
|
+
*/
|
|
188
|
+
catchError(error) {
|
|
189
|
+
return deferOf(error);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
PbUserMiddlewaresService.decorators = [
|
|
193
|
+
{ type: Injectable }
|
|
194
|
+
];
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItbWlkZGxld2FyZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWlDdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsTUFBTSxPQUFnQix3QkFBd0I7SUFDNUM7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLEtBQWM7UUFDL0IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxLQUFjO1FBQzFCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxNQUE0QjtRQUM5QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsUUFBZ0IsRUFBRSxRQUF1QjtRQUN0RCxPQUFPLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQUMsS0FBcUIsRUFBRSxNQUFpQjtRQUMvQyxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBYztRQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsS0FBYSxFQUFFLE1BQWlCLEVBQUUsS0FBYztRQUMxRCxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBQyxLQUFhLEVBQUUsTUFBaUIsRUFBRSxLQUFjO1FBQzdELE9BQU8sT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsS0FBYztRQUNyQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsK0JBQStCLENBQUMsS0FBYztRQUM1QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQXlCO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsU0FBcUI7UUFDakMsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ2xELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsa0JBQWtCLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ3JELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNEJBQTRCLENBQUMsU0FBcUI7UUFDaEQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1DQUFtQyxDQUFDLFNBQXFCO1FBQ3ZELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxLQUF3QjtRQUN4QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQWlCO1FBQzFCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsSUFBVTtRQUNuQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQWdDO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OztZQXZMRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJU3RydWN0dXJlLCBJVXNlclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRCbG9ja3MgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0VsZW1lbnRzJztcbmltcG9ydCB7IFBCRW1haWwgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0RlZmF1bHRFbWFpbCc7XG5pbXBvcnQgeyBUUHJldmlld0RldmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgZGVmZXJPZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLyoqXG4gKiBFbWFpbCBlZGl0b3IgZXhwb3J0IGZpbGUgdHlwZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRFeHBvcnRUeXBlID0gJ2h0bWwnIHwgJ2pzb24nIHwgJ21qbWwnO1xuXG4vKipcbiAqIEVtYWlsIGVkaXRvciBpbXBvcnQgZmlsZSB0eXBlcy4gJ21qbWwnIHR5cGUgaXMgdW5kZXIgZGV2ZWxvcG1lbnQgLSBkb24ndCB1c2UgaXQgeWV0LlxuICovXG5leHBvcnQgdHlwZSBUSW1wb3J0VHlwZSA9ICdqc29uJyB8ICdtam1sJztcblxuLyoqXG4gKiBBZGQgbmV3IFN0cnVjdHVyZSB3aXRoaW4gZW1haWwgYm9keSBldmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBZGRTdHJ1Y3R1cmVFdmVudCBleHRlbmRzIENka0RyYWdEcm9wPFNldDxJU3RydWN0dXJlPiwgU2V0PElTdHJ1Y3R1cmU+PiB7XG4gIGl0ZW06IENka0RyYWc8SVN0cnVjdHVyZT47XG59XG5cbi8qKlxuICogQWRkIG5ldyBCbG9jayB3aXRoaW4gc3RydWN0dXJlcycgY29sdW1ucyBldmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBZGRCbG9ja0V2ZW50IGV4dGVuZHMgQ2RrRHJhZ0Ryb3A8VEJsb2Nrc1tdLCBUQmxvY2tzW10+IHtcbiAgaXRlbTogQ2RrRHJhZzxUQmxvY2tzPjtcbn1cblxuLyoqXG4gKiBQcmV2aWV3IGRldmljZSBidXR0b25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVByZXZpZXdUb2dnbGVCdXR0b24gZXh0ZW5kcyBNYXRCdXR0b25Ub2dnbGVDaGFuZ2Uge1xuICB2YWx1ZTogVFByZXZpZXdEZXZpY2U7XG59XG5cbi8qKlxuICogVGhpcyBzZXJ2aWNlIGFsbG93cyB5b3UgdG8gY29udHJvbCBhbGwgeW91ciB1c2VycycgYWJpbGl0aWVzIHdpdGhpbiB0aGlzIGJ1aWxkZXIuIExldHMgc2F5IHlvdSB3YW50IHRvIGltcGxlbWVudCB1c2VyIFJvbGVzIG9yIGp1c3RcbiAqIG5lZWQgdG8gZGlzYWJsZSBzb21lIGZ1bmN0aW9uYWxpdHkgZm9yIGNlcnRhaW4gdXNlcnMgYmFzZWQgb24gcHVyY2hhc2UgcGxhbiBvciBvbiBzb21ldGhpbmcgZWxzZS4gWW91IGNhbiBhbGxvdyBvciBkaXNhbGxvdyBhbG1vc3RcbiAqIGV2ZXJ5dGhpbmcuXG4gKlxuICogQWxsIHRoZSBtZXRob2RzIG11c3QgcmV0dXJuIGFuIE9ic2VydmFibGUsIHNvLCBpbiBteSBvcGluaW9uLCB0aGF0J3MgdGhlIGJlc3QgcGFydCBvZiB0aGlzIHNlcnZpY2UsIHlvdSBjYW4gZWl0aGVyIHJldHVybiBhblxuICogW0VNUFRZIE9ic2VydmFibGVde0BsaW5rIGh0dHBzOi8vcnhqcy5kZXYvYXBpL2luZGV4L2NvbnN0L0VNUFRZfSwgYSBtb2RpZmllZCBvYmplY3Qgb3IgYW4gKEluZm8gTW9kYWwpLnBpcGUobWFwVG8oRU1QVFkpKSAtIEkgdGhpbmsgeW91XG4gKiBnb3QgdGhlIGlkZWEuXG4gKlxuICogSSByZWNvbW1lbmQgYWx3YXlzIHVzaW5nIGEgTW9kYWwgb3IgYSBUb2FzdCBmb3IgZm9yYmlkZGVuIGFjdGlvbnMuXG4gKlxuICogSXQgd29uJ3Qgd29yayBpZiB5b3UgaGF2ZSBhIFJlZ3VsYXIvRnJlZSBMaWNlbnNlIC0geW91J2xsIGdldCBhbiBlcnJvciBvbiBydW5uaW5nIHRoZSBwcm9qZWN0LFxuICogeW91IG5lZWQgZWl0aGVyIGFuIFtFeHRlbmRlZCBvciBDb21tZXJjaWFsIExpY2Vuc2Vde0BsaW5rIGh0dHBzOi8vd2xvY2FsaG9zdC5vcmd9IGtleSBmb3IgdGhpcyBwdXJwb3NlLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDcmVhdGUgYSBjdXN0b20gc2VydmljZVxuICogY2xhc3MgWW91ck93bk1pZGRsZXdhcmVTZXJ2aWNlIGV4dGVuZHMgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIHt9XG4gKlxuICogLy8gUmV3cml0ZSBpdCBpbnRvIEFwcE1vZHVsZVxuICogeyBwcm92aWRlOiBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2UsIHVzZUNsYXNzOiBZb3VyT3duTWlkZGxld2FyZVNlcnZpY2UgfVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBiZWZvcmUgc2VuZGluZyB0aGUgcmVxdWVzdCB0byBNSk1MIENvbnZlcnRvci4gVXNlIGl0IHRvIGFkZCBzb21lIGFkZGl0aW9uYWwgYmxvY2tzIG9yIGFueXRoaW5nIGVsc2UgdG9cbiAgICogdGhlIFBCRW1haWwgb2JqZWN0LlxuICAgKiBAcGFyYW0gZW1haWwgUEJFbWFpbCBvYmplY3QgdGhhdCdzIGJlaW5nIHNlbnQgdG8gTUpNTCBDb252ZXJ0b3IuXG4gICAqL1xuICBjcmVhdGVIVE1MVGVtcGxhdGUoZW1haWw6IFBCRW1haWwpOiBPYnNlcnZhYmxlPFBCRW1haWw+IHtcbiAgICByZXR1cm4gZGVmZXJPZihlbWFpbCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgRGlzYWxsb3cgcHJldmlldyB3aW5kb3cuXG4gICAqIEBwYXJhbSBzdGF0ZSBDb21pbmcgUHJldmlldyBzdGF0ZVxuICAgKi9cbiAgdG9nZ2xlUHJldmlldyhzdGF0ZTogYm9vbGVhbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBkZWZlck9mKHN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvdyBvciBEaXNhbGxvdyBwcmV2aWV3IGRldmljZXMuXG4gICAqIEBwYXJhbSBidXR0b24gRGV2aWNlJ3MgYnV0dG9uIHRoYXQgaGFzIGJlZW4gY2xpY2tlZFxuICAgKi9cbiAgdG9nZ2xlUHJldmlld0RldmljZShidXR0b246IElQcmV2aWV3VG9nZ2xlQnV0dG9uKTogT2JzZXJ2YWJsZTxUUHJldmlld0RldmljZT4ge1xuICAgIHJldHVybiBkZWZlck9mKGJ1dHRvbi52YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlcnMgdG8gc2VsZWN0IGNlcnRhaW4gdGVtcGxhdGVzIGJhc2VkIGVpdGhlciBvbiBjYXRlZ29yeSBvciB0ZW1wbGF0ZSBvYmplY3QuXG4gICAqIEBwYXJhbSBjYXRlZ29yeSBUZW1wbGF0ZSdzIGNhdGVnb3J5IHVzZXIgaGFzIHNlbGVjdGVkXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSBUZW1wbGF0ZSB1c2VyIGhhcyBzZWxlY3RlZFxuICAgKi9cbiAgY2hvb3NlVGVtcGxhdGUoY2F0ZWdvcnk6IHN0cmluZywgdGVtcGxhdGU6IElVc2VyVGVtcGxhdGUpOiBPYnNlcnZhYmxlPHsgY2F0ZWdvcnk6IHN0cmluZzsgdGVtcGxhdGU6IElVc2VyVGVtcGxhdGUgfT4ge1xuICAgIHJldHVybiBkZWZlck9mKHsgY2F0ZWdvcnksIHRlbXBsYXRlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93LCBkaXNhbGxvdyBvciByZXR1cm4gdGhlIHNhbWUgcGF0aCBmb3IgYWxsIHVzZXIncyB1cGxvYWRlZCBpbWFnZXMuXG4gICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdXBsb2FkZWQgaW1hZ2VcbiAgICpcbiAgICogQFRPRE8gQ2hlY2sgaWYgdGhpcyBtaWRkbGV3YXJlIGlzIGJlaW5nIGNhbGxlZCBiZWZvcmUgaW1hZ2UgaGFzIGJlZW4gdXBsb2FkZWRcbiAgICovXG4gIHVwbG9hZEltYWdlKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGRlZmVyT2YocGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlcnMgdG8gYWRkIGJsb2NrcyB3aXRoaW4gZW1haWwgc3RydWN0dXJlcy5cbiAgICogQHBhcmFtIGV2ZW50IEV2ZW50IG9mIGRyb3BwZWQgYmxvY2tcbiAgICogQHBhcmFtIGNvbHVtbiBDb2x1bW4gdGhhdCBibG9jayBoYXMgYmVlbiBkcm9wcGVkXG4gICAqXG4gICAqIEBUT0RPIGFkZCBwYXJlbnQgc3RydWN0dXJlIGFzIGEgcGFyYW1ldGVyXG4gICAqL1xuICBhZGRCbG9jayhldmVudDogSUFkZEJsb2NrRXZlbnQsIGNvbHVtbjogVEJsb2Nrc1tdKTogT2JzZXJ2YWJsZTx7IGNvbHVtbjogVEJsb2Nrc1tdOyBldmVudDogSUFkZEJsb2NrRXZlbnQgfT4ge1xuICAgIHJldHVybiBkZWZlck9mKHsgZXZlbnQsIGNvbHVtbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXIgdG8gZWRpdCBibG9ja3Mgd2l0aGluIGVtYWlsIGJvZHkuXG4gICAqIEBwYXJhbSBibG9jayBCbG9jayB0aGF0IHVzZXIgaW50ZW5kcyB0byBlZGl0XG4gICAqL1xuICBlZGl0QmxvY2soYmxvY2s6IFRCbG9ja3MpOiBPYnNlcnZhYmxlPFRCbG9ja3M+IHtcbiAgICByZXR1cm4gZGVmZXJPZihibG9jayk7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCB1c2VyIHRvIHJlbW92ZSBibG9ja3Mgd2l0aGluIGVtYWlsIGJvZHkuXG4gICAqIEBwYXJhbSBpbmRleCBCbG9jaydzIEluZGV4XG4gICAqIEBwYXJhbSBjb2x1bW4gQmxvY2sncyBwYXJlbnQgY29sdW1uXG4gICAqIEBwYXJhbSBibG9jayBCbG9jayB0aGF0IHVzZXIgaW50ZW5kcyB0byByZW1vdmVcbiAgICovXG4gIHJlbW92ZUJsb2NrKGluZGV4OiBudW1iZXIsIGNvbHVtbjogVEJsb2Nrc1tdLCBibG9jazogVEJsb2Nrcyk6IE9ic2VydmFibGU8eyBpbmRleDogbnVtYmVyOyBjb2x1bW46IFRCbG9ja3NbXSB9PiB7XG4gICAgcmV0dXJuIGRlZmVyT2YoeyBpbmRleCwgY29sdW1uIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgdXNlciB0byBkdXBsaWNhdGUgYmxvY2tzIHdpdGhpbiBlbWFpbCBib2R5LlxuICAgKiBAcGFyYW0gaW5kZXggQmxvY2sncyBJbmRleFxuICAgKiBAcGFyYW0gY29sdW1uIEJsb2NrJ3MgcGFyZW50IGNvbHVtblxuICAgKiBAcGFyYW0gYmxvY2sgQmxvY2sgdGhhdCB1c2VyIGludGVuZHMgdG8gZHVwbGljYXRlXG4gICAqL1xuICBkdXBsaWNhdGVCbG9jayhpbmRleDogbnVtYmVyLCBjb2x1bW46IFRCbG9ja3NbXSwgYmxvY2s6IFRCbG9ja3MpOiBPYnNlcnZhYmxlPHsgaW5kZXg6IG51bWJlcjsgY29sdW1uOiBUQmxvY2tzW107IGJsb2NrOiBUQmxvY2tzIH0+IHtcbiAgICByZXR1cm4gZGVmZXJPZih7IGluZGV4LCBjb2x1bW4sIGJsb2NrIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgRHJhZyBhbmQgRHJvcCBjZXJ0YWluIGJsb2NrcyBmcm9tIEJsb2NrcyBsaXN0IHRvIEVtYWlsIGJvZHkuXG4gICAqIFJldHVybiBUUlVFIHRvIGRpc2FibGUgYWxsIGJsb2NrcyAtIG5vIG1hdHRlciBvbiBibG9jaydzIGRhdGEuXG4gICAqIEBwYXJhbSBibG9jayBCbG9jayB0byBhbGxvdyBvciBkaXNhbGxvdyBmcm9tIGJlaW5nIGRyYWdnZWRcbiAgICovXG4gIGRpc2FibGVCbG9ja0RyYWdGcm9tTGlzdChibG9jazogVEJsb2Nrcyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBkZWZlck9mKGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXJzIHRvIHNvcnQgYmxvY2tzIHdpdGhpbiBlbWFpbCBib2R5LlxuICAgKiBAcGFyYW0gYmxvY2sgQmxvY2sgdGhhdCB1c2VyIGludGVuZHMgdG8gY2hhbmdlIHRoZSBvcmRlclxuICAgKi9cbiAgZGlzYWJsZUJsb2NrRHJhZ1dpdGhpbkVtYWlsQm9keShibG9jazogVEJsb2Nrcyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBkZWZlck9mKGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXIgdG8gYWRkIG5ldyBzdHJ1Y3R1cmUuXG4gICAqIEBwYXJhbSBldmVudCBFdmVudCBvZiBkcm9wcGVkIHN0cnVjdHVyZVxuICAgKi9cbiAgYWRkU3RydWN0dXJlKGV2ZW50OiBJQWRkU3RydWN0dXJlRXZlbnQpOiBPYnNlcnZhYmxlPElBZGRTdHJ1Y3R1cmVFdmVudD4ge1xuICAgIHJldHVybiBkZWZlck9mKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXIgdG8gZWRpdCB0aGUgc3RydWN0dXJlLlxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0aGF0IHVzZXIgaW50ZW5kcyB0byBlZGl0XG4gICAqL1xuICBlZGl0U3RydWN0dXJlKHN0cnVjdHVyZTogSVN0cnVjdHVyZSk6IE9ic2VydmFibGU8SVN0cnVjdHVyZT4ge1xuICAgIHJldHVybiBkZWZlck9mKHN0cnVjdHVyZSk7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCB1c2VyIHRvIHJlbW92ZSB0aGUgc3RydWN0dXJlLlxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHN0cnVjdHVyZVxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0aGF0IHVzZXIgaW50ZW5kcyB0byByZW1vdmVcbiAgICovXG4gIHJlbW92ZVN0cnVjdHVyZShpbmRleDogbnVtYmVyLCBzdHJ1Y3R1cmU6IElTdHJ1Y3R1cmUpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBkZWZlck9mKGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXIgdG8gZHVwbGljYXRlIHRoZSBzdHJ1Y3R1cmUgd2l0aGluIGVtYWlsIGJvZHkuXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBzdHJ1Y3R1cmVcbiAgICogQHBhcmFtIHN0cnVjdHVyZSBTdHJ1Y3R1cmUgdGhhdCB1c2VyIGludGVuZHMgdG8gZHVwbGljYXRlXG4gICAqL1xuICBkdXBsaWNhdGVTdHJ1Y3R1cmUoaW5kZXg6IG51bWJlciwgc3RydWN0dXJlOiBJU3RydWN0dXJlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gZGVmZXJPZihpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBEcmFnIGFuZCBEcm9wIGNlcnRhaW4gc3RydWN0dXJlcyBmcm9tIFN0cnVjdHVyZXMgbGlzdCB0byBFbWFpbCBib2R5LlxuICAgKiBSZXR1cm4gVFJVRSB0byBkaXNhYmxlIGFsbCBzdHJ1Y3R1cmVzLlxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0byBwcmV2ZW50IGZyb20gYmVpbmcgZHJhZ2dlZFxuICAgKi9cbiAgZGlzYWJsZVN0cnVjdHVyZURyYWdGcm9tTGlzdChzdHJ1Y3R1cmU6IElTdHJ1Y3R1cmUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZGVmZXJPZihmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlcnMgdG8gc29ydCBzdHJ1Y3R1cmVzIHdpdGhpbiBlbWFpbCBib2R5LlxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0aGF0IHVzZXIgaW50ZW5kcyB0byBjaGFuZ2UgdGhlIG9yZGVyXG4gICAqL1xuICBkaXNhYmxlU3RydWN0dXJlRHJhZ1dpdGhpbkVtYWlsQm9keShzdHJ1Y3R1cmU6IElTdHJ1Y3R1cmUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZGVmZXJPZihmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogSSBkb24ndCBrbm93IHdoeSB3b3VsZCB5b3UgZG8gdGhhdCwgYnV0IHlvdSBjYW4gZGlzYWJsZSBPbkV4aXQgY29uZmlybSBtb2RhbC5cbiAgICogQHBhcmFtIGV2ZW50IFdpbmRvdyBbQmVmb3JlVW5sb2FkRXZlbnRde0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9CZWZvcmVVbmxvYWRFdmVudH1cbiAgICovXG4gIHByZXZlbnRXaW5kb3dFeGl0KGV2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCk6IE9ic2VydmFibGU8QmVmb3JlVW5sb2FkRXZlbnQ+IHtcbiAgICByZXR1cm4gZGVmZXJPZihldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlciB0byBleHBvcnQgY2VydGFpbiB0eXBlcyBvZiBmaWxlXG4gICAqIEBwYXJhbSB0eXBlIFR5cGUgdGhhdCB1c2VyIGludGVuZHMgdG8gZG93bmxvYWRcbiAgICovXG4gIGV4cG9ydEZpbGUodHlwZTogVEV4cG9ydFR5cGUpOiBPYnNlcnZhYmxlPFRFeHBvcnRUeXBlPiB7XG4gICAgcmV0dXJuIGRlZmVyT2YodHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlciB0byBpbXBvcnQgY2VydGFpbiB0eXBlcyBvZiBmaWxlXG4gICAqIEBwYXJhbSBmaWxlIFdlYiBBUElzIFtGSUxFXXtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZX1cbiAgICovXG4gIGltcG9ydEZpbGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8RmlsZT4ge1xuICAgIHJldHVybiBkZWZlck9mKGZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhdGNoIGFsbCBlcnJvcnMgd2l0aGluIGVtYWlsIGVkaXRvciwgaXQgbWlnaHQgbm90IHdvcmsgMTAwJSwgaXQncyBzdGlsbCBvbiB3b3JraW5nIHByb2Nlc3MuXG4gICAqIEBwYXJhbSBlcnJvciBUaHJvd2FibGUgRXJyb3JcbiAgICovXG4gIGNhdGNoRXJyb3IoZXJyb3I6IEVycm9yIHwgSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPEVycm9yIHwgSHR0cEVycm9yUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gZGVmZXJPZihlcnJvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { PbUserRestApiService } from './user-rest-api.service';
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
* The free User Rest API service for Regular license.
|
|
9
|
+
* No differences between other licenses for now, but might be in the future.
|
|
10
|
+
*/
|
|
11
|
+
export default class FreeUsersRestApi extends PbUserRestApiService {
|
|
12
|
+
constructor(http) {
|
|
13
|
+
super(http);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlZS11c2Vycy1yZXN0LWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3VzZXItcmVzdC1hcGktc2VydmljZS9mcmVlLXVzZXJzLXJlc3QtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBQ2hFLFlBQVksSUFBZ0I7UUFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBQYlVzZXJSZXN0QXBpU2VydmljZSB9IGZyb20gJy4vdXNlci1yZXN0LWFwaS5zZXJ2aWNlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFRoZSBmcmVlIFVzZXIgUmVzdCBBUEkgc2VydmljZSBmb3IgUmVndWxhciBsaWNlbnNlLlxuICogTm8gZGlmZmVyZW5jZXMgYmV0d2VlbiBvdGhlciBsaWNlbnNlcyBmb3Igbm93LCBidXQgbWlnaHQgYmUgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnJlZVVzZXJzUmVzdEFwaSBleHRlbmRzIFBiVXNlclJlc3RBcGlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoaHR0cDogSHR0cENsaWVudCkge1xuICAgIHN1cGVyKGh0dHApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import FreeUsersRestApi from './free-users-rest-api.service';
|
|
6
|
+
export { FreeUsersRestApi };
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYi1lbWFpbC1idWlsZGVyL3NyYy9saWIvc2VydmljZXMvdXNlci1yZXN0LWFwaS1zZXJ2aWNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sZ0JBQWdCLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IEZyZWVVc2Vyc1Jlc3RBcGkgZnJvbSAnLi9mcmVlLXVzZXJzLXJlc3QtYXBpLnNlcnZpY2UnO1xuZXhwb3J0IHtGcmVlVXNlcnNSZXN0QXBpfTtcbiJdfQ==
|