@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,291 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { Inject, NgModule } from '@angular/core';
|
|
6
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
7
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
8
|
+
import { MatBottomSheet, MatBottomSheetModule } from '@angular/material/bottom-sheet';
|
|
9
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
11
|
+
import { MatDialog, MatDialogModule } from '@angular/material/dialog';
|
|
12
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
13
|
+
import { MatExpansionModule } from '@angular/material/expansion';
|
|
14
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
15
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
16
|
+
import { MatInputModule } from '@angular/material/input';
|
|
17
|
+
import { MatListModule } from '@angular/material/list';
|
|
18
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
19
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
20
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
21
|
+
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
22
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
23
|
+
import { MatSliderModule } from '@angular/material/slider';
|
|
24
|
+
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
25
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
|
26
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
27
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
28
|
+
import { ResizableModule } from 'angular-resizable-element';
|
|
29
|
+
import { FormsModule } from '@angular/forms';
|
|
30
|
+
import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';
|
|
31
|
+
import { CommonModule } from '@angular/common';
|
|
32
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
33
|
+
import 'quill';
|
|
34
|
+
import { QUILL_CONFIG_TOKEN, QuillModule } from 'ngx-quill';
|
|
35
|
+
import { ColorChromeModule } from 'ngx-color/chrome';
|
|
36
|
+
import { PB_CONFIG, PB_TEMPLATES_TEMPORARY_STORAGE } from './tokens/tokens';
|
|
37
|
+
import { StructureComponent } from './components/structure/structure.component';
|
|
38
|
+
import { PbEmailBuilderComponent } from './pb-email-builder.component';
|
|
39
|
+
import { DynamicComponentDirective } from './directives/dynamic-component.directive';
|
|
40
|
+
import { ImageComponent } from './elements/image/image.component';
|
|
41
|
+
import { TextElementComponent } from './elements/text-element/text-element.component';
|
|
42
|
+
import { ButtonComponent } from './elements/button/button.component';
|
|
43
|
+
import { DividerComponent } from './elements/divider/divider.component';
|
|
44
|
+
import { SpacerComponent } from './elements/spacer/spacer.component';
|
|
45
|
+
import { SocialComponent } from './elements/social/social.component';
|
|
46
|
+
import { BuilderContainerComponent } from './components/builder-container/builder-container.component';
|
|
47
|
+
import { FontStylesComponent } from './groups/font-styles';
|
|
48
|
+
import { PaddingComponent } from './groups/padding';
|
|
49
|
+
import { LineHeightComponent } from './groups/line-height';
|
|
50
|
+
import { WidthHeightComponent } from './groups/width-height';
|
|
51
|
+
import { BorderComponent } from './groups/border';
|
|
52
|
+
import { ColorComponent } from './groups/color';
|
|
53
|
+
import { LinkComponent } from './groups/link';
|
|
54
|
+
import { AlignComponent } from './groups/align';
|
|
55
|
+
import { DirectionComponent } from './groups/direction';
|
|
56
|
+
import { BackRepatComponent } from './groups/back-repeat';
|
|
57
|
+
import { ConfirmDialogComponent } from './components/dialog.component';
|
|
58
|
+
import { PreviewTemplateComponent } from './components/preview.component';
|
|
59
|
+
import { PbEmailBuilderService } from './pb-email-builder.service';
|
|
60
|
+
import { BlockComponent } from './components/block/block.component';
|
|
61
|
+
import { ImageUploadComponent } from './groups/upload-image';
|
|
62
|
+
import { BlockSettingsComponent } from './components/block-settings/block-settings.component';
|
|
63
|
+
import { StructureSettingsComponent } from './components/structure-settings/structure-settings.component';
|
|
64
|
+
import { GeneralSettingsComponent } from './components/general-settings/general-settings.component';
|
|
65
|
+
import { MarginComponent } from './groups/margin';
|
|
66
|
+
import { TemplateListDialogComponent } from './components/template-list-dialog/template-list-dialog.component';
|
|
67
|
+
import { GapsComponent } from './groups/gaps';
|
|
68
|
+
import { SlugifyPipe } from './pipes/slugify.pipe';
|
|
69
|
+
import { FreeUsersMiddleware, PaidUsersMiddleware } from './services/user-middleware-service';
|
|
70
|
+
import { FreeUsersImageUploader, PaidUsersImageUploader } from './services/user-image-uploader-service';
|
|
71
|
+
import { PbUserMiddlewaresService } from './services/user-middleware-service/pb-middlewares.service';
|
|
72
|
+
import { PbUserImageUploaderService } from './services/user-image-uploader-service/user-image-uploader.service';
|
|
73
|
+
import { IpInterceptorInterceptor } from './interceptors/pb-interceptor.interceptor';
|
|
74
|
+
import { ImportDialogComponent } from './components/import-dialog/import-dialog.component';
|
|
75
|
+
import { UploadBottomSheetDialogComponent } from './services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component';
|
|
76
|
+
import { UploadImageGalleryComponent } from './services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component';
|
|
77
|
+
import { LIBRARY_IS_PRO } from './tokens/private-tokens';
|
|
78
|
+
import { PbUserInterfaceService } from './services/internals/user-interfaces/user-interface.service';
|
|
79
|
+
import { PbEmailObjectStoreService } from './services/internals/pb-email-object-store/pb-email-object-store.service';
|
|
80
|
+
import { FreeUsersRestApi } from './services/user-rest-api-service';
|
|
81
|
+
import { FreeUsersPbStorage } from './services/pb-storage';
|
|
82
|
+
import { PbStorageService } from './services/pb-storage/pb-storage.service';
|
|
83
|
+
import { PbUserRestApiService } from './services/user-rest-api-service/user-rest-api.service';
|
|
84
|
+
import { PortalModule } from '@angular/cdk/portal';
|
|
85
|
+
import '@angular/localize/init';
|
|
86
|
+
/**
|
|
87
|
+
* @internal
|
|
88
|
+
* @param http
|
|
89
|
+
*/
|
|
90
|
+
export function createCustomRestApiService(http) {
|
|
91
|
+
return new FreeUsersRestApi(http);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @internal
|
|
95
|
+
* @param libraryIsProEnv
|
|
96
|
+
*/
|
|
97
|
+
export function createUserMiddlewareService(libraryIsProEnv) {
|
|
98
|
+
if (!libraryIsProEnv) {
|
|
99
|
+
return new FreeUsersMiddleware();
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
return new PaidUsersMiddleware();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @internal
|
|
107
|
+
* @param templateStorage
|
|
108
|
+
*/
|
|
109
|
+
export function createUsersIpStorage(templateStorage) {
|
|
110
|
+
return new FreeUsersPbStorage(templateStorage);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @internal
|
|
114
|
+
* @param libraryIsProEnv
|
|
115
|
+
* @param matBottomSheet
|
|
116
|
+
* @param matDialog
|
|
117
|
+
* @param userMiddleware
|
|
118
|
+
* @param userRestApi
|
|
119
|
+
*/
|
|
120
|
+
export function createUserUploaderService(libraryIsProEnv, matBottomSheet, matDialog, userMiddleware, userRestApi) {
|
|
121
|
+
if (!libraryIsProEnv) {
|
|
122
|
+
return new FreeUsersImageUploader(matBottomSheet, userMiddleware);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
return new PaidUsersImageUploader(matDialog, userMiddleware, userRestApi);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const ɵ0 = {
|
|
129
|
+
bounds: 'pb-builder-container',
|
|
130
|
+
theme: 'bubble',
|
|
131
|
+
format: 'html',
|
|
132
|
+
trackChanges: 'all',
|
|
133
|
+
suppressGlobalRegisterWarning: true
|
|
134
|
+
};
|
|
135
|
+
export class PbEmailBuilderModule {
|
|
136
|
+
constructor(pbMiddlewaresService, userImageUploader, libraryIsPro) {
|
|
137
|
+
if (!libraryIsPro && !(pbMiddlewaresService instanceof FreeUsersMiddleware)) {
|
|
138
|
+
throw new Error('Upgrade to an Extended or Commercial License to use Custom Middlewares.');
|
|
139
|
+
}
|
|
140
|
+
if (!libraryIsPro && !(userImageUploader instanceof FreeUsersImageUploader)) {
|
|
141
|
+
throw new Error('Upgrade to an Extended or Commercial License to use Custom Image Uploader.');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* @deprecated use PbEmailBuilderModule.withConfig(userConfig) instead
|
|
146
|
+
* @internal
|
|
147
|
+
*/
|
|
148
|
+
static forRoot(userConfig = {}) {
|
|
149
|
+
return PbEmailBuilderModule.withConfig(userConfig);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Import module with configurations
|
|
153
|
+
* @param userConfig Configurations
|
|
154
|
+
*/
|
|
155
|
+
static withConfig(userConfig = {}) {
|
|
156
|
+
return {
|
|
157
|
+
ngModule: PbEmailBuilderModule,
|
|
158
|
+
providers: [
|
|
159
|
+
PbEmailBuilderService,
|
|
160
|
+
PbEmailObjectStoreService,
|
|
161
|
+
PbUserInterfaceService,
|
|
162
|
+
{ provide: PB_CONFIG, useValue: userConfig },
|
|
163
|
+
{
|
|
164
|
+
provide: PbUserMiddlewaresService,
|
|
165
|
+
useFactory: createUserMiddlewareService,
|
|
166
|
+
deps: [LIBRARY_IS_PRO]
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
provide: PbStorageService,
|
|
170
|
+
useFactory: createUsersIpStorage,
|
|
171
|
+
deps: [PB_TEMPLATES_TEMPORARY_STORAGE]
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
provide: PbUserImageUploaderService,
|
|
175
|
+
useFactory: createUserUploaderService,
|
|
176
|
+
deps: [LIBRARY_IS_PRO, MatBottomSheet, MatDialog, PbUserMiddlewaresService, PbUserRestApiService]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
provide: PbUserRestApiService,
|
|
180
|
+
useFactory: createCustomRestApiService,
|
|
181
|
+
deps: [HttpClient]
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
PbEmailBuilderModule.decorators = [
|
|
188
|
+
{ type: NgModule, args: [{
|
|
189
|
+
imports: [
|
|
190
|
+
CommonModule,
|
|
191
|
+
HttpClientModule,
|
|
192
|
+
QuillModule,
|
|
193
|
+
FlexLayoutModule,
|
|
194
|
+
DragDropModule,
|
|
195
|
+
FormsModule,
|
|
196
|
+
ColorChromeModule,
|
|
197
|
+
MatButtonModule,
|
|
198
|
+
MatIconModule,
|
|
199
|
+
MatFormFieldModule,
|
|
200
|
+
MatInputModule,
|
|
201
|
+
MatTabsModule,
|
|
202
|
+
MatSliderModule,
|
|
203
|
+
MatSelectModule,
|
|
204
|
+
MatSlideToggleModule,
|
|
205
|
+
MatButtonToggleModule,
|
|
206
|
+
MatDividerModule,
|
|
207
|
+
MatTooltipModule,
|
|
208
|
+
MatDialogModule,
|
|
209
|
+
MatSnackBarModule,
|
|
210
|
+
MatProgressBarModule,
|
|
211
|
+
MatMenuModule,
|
|
212
|
+
MatSidenavModule,
|
|
213
|
+
MatToolbarModule,
|
|
214
|
+
MatListModule,
|
|
215
|
+
MatBottomSheetModule,
|
|
216
|
+
MatDividerModule,
|
|
217
|
+
MatExpansionModule,
|
|
218
|
+
ResizableModule,
|
|
219
|
+
ScrollingModule,
|
|
220
|
+
PortalModule
|
|
221
|
+
],
|
|
222
|
+
declarations: [
|
|
223
|
+
PbEmailBuilderComponent,
|
|
224
|
+
StructureComponent,
|
|
225
|
+
BlockComponent,
|
|
226
|
+
DynamicComponentDirective,
|
|
227
|
+
PreviewTemplateComponent,
|
|
228
|
+
TextElementComponent,
|
|
229
|
+
ImageComponent,
|
|
230
|
+
ButtonComponent,
|
|
231
|
+
DividerComponent,
|
|
232
|
+
SpacerComponent,
|
|
233
|
+
SocialComponent,
|
|
234
|
+
BuilderContainerComponent,
|
|
235
|
+
FontStylesComponent,
|
|
236
|
+
PaddingComponent,
|
|
237
|
+
MarginComponent,
|
|
238
|
+
GapsComponent,
|
|
239
|
+
LineHeightComponent,
|
|
240
|
+
WidthHeightComponent,
|
|
241
|
+
BorderComponent,
|
|
242
|
+
ColorComponent,
|
|
243
|
+
LinkComponent,
|
|
244
|
+
AlignComponent,
|
|
245
|
+
DirectionComponent,
|
|
246
|
+
BackRepatComponent,
|
|
247
|
+
ConfirmDialogComponent,
|
|
248
|
+
ImageUploadComponent,
|
|
249
|
+
BlockSettingsComponent,
|
|
250
|
+
StructureSettingsComponent,
|
|
251
|
+
GeneralSettingsComponent,
|
|
252
|
+
UploadBottomSheetDialogComponent,
|
|
253
|
+
UploadImageGalleryComponent,
|
|
254
|
+
TemplateListDialogComponent,
|
|
255
|
+
SlugifyPipe,
|
|
256
|
+
ImportDialogComponent
|
|
257
|
+
],
|
|
258
|
+
exports: [PbEmailBuilderComponent, PreviewTemplateComponent, SlugifyPipe],
|
|
259
|
+
entryComponents: [
|
|
260
|
+
TextElementComponent,
|
|
261
|
+
ImageComponent,
|
|
262
|
+
ButtonComponent,
|
|
263
|
+
DividerComponent,
|
|
264
|
+
SpacerComponent,
|
|
265
|
+
SocialComponent,
|
|
266
|
+
ConfirmDialogComponent,
|
|
267
|
+
UploadBottomSheetDialogComponent,
|
|
268
|
+
UploadImageGalleryComponent,
|
|
269
|
+
TemplateListDialogComponent,
|
|
270
|
+
ImportDialogComponent
|
|
271
|
+
],
|
|
272
|
+
providers: [
|
|
273
|
+
{
|
|
274
|
+
provide: QUILL_CONFIG_TOKEN,
|
|
275
|
+
useValue: ɵ0
|
|
276
|
+
},
|
|
277
|
+
{ provide: HTTP_INTERCEPTORS, useClass: IpInterceptorInterceptor, multi: true },
|
|
278
|
+
// { provide: PB_BLOCK_ELEMENT, useClass: TextBlock, multi: true },
|
|
279
|
+
PbEmailBuilderService,
|
|
280
|
+
PbEmailObjectStoreService,
|
|
281
|
+
PbUserInterfaceService
|
|
282
|
+
]
|
|
283
|
+
},] }
|
|
284
|
+
];
|
|
285
|
+
PbEmailBuilderModule.ctorParameters = () => [
|
|
286
|
+
{ type: PbUserMiddlewaresService },
|
|
287
|
+
{ type: PbUserImageUploaderService },
|
|
288
|
+
{ type: Boolean, decorators: [{ type: Inject, args: [LIBRARY_IS_PRO,] }] }
|
|
289
|
+
];
|
|
290
|
+
export { ɵ0 };
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItZW1haWwtYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wYi1lbWFpbC1idWlsZGVyL3NyYy9saWIvcGItZW1haWwtYnVpbGRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUs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LGFBQWE7b0JBQ2IsY0FBYztvQkFDZCxrQkFBa0I7b0JBQ2xCLGtCQUFrQjtvQkFDbEIsc0JBQXNCO29CQUN0QixvQkFBb0I7b0JBQ3BCLHNCQUFzQjtvQkFDdEIsMEJBQTBCO29CQUMxQix3QkFBd0I7b0JBQ3hCLGdDQUFnQztvQkFDaEMsMkJBQTJCO29CQUMzQiwyQkFBMkI7b0JBQzNCLFdBQVc7b0JBQ1gscUJBQXFCO2lCQUN0QjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxXQUFXLENBQUM7Z0JBQ3pFLGVBQWUsRUFBRTtvQkFDZixvQkFBb0I7b0JBQ3BCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixzQkFBc0I7b0JBQ3RCLGdDQUFnQztvQkFDaEMsMkJBQTJCO29CQUMzQiwyQkFBMkI7b0JBQzNCLHFCQUFxQjtpQkFDdEI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxrQkFBa0I7d0JBQzNCLFFBQVEsSUFNUDtxQkFDRjtvQkFDRCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtvQkFDL0UsbUVBQW1FO29CQUNuRSxxQkFBcUI7b0JBQ3JCLHlCQUF5QjtvQkFDekIsc0JBQXNCO2lCQUN2QjthQUNGOzs7WUE3S1Esd0JBQXdCO1lBQ3hCLDBCQUEwQjswQ0FpTDlCLE1BQU0sU0FBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXQsIE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBSZXNpemFibGVNb2R1bGUgfSBmcm9tICdhbmd1bGFyLXJlc2l6YWJsZS1lbGVtZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMsIEh0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cbmltcG9ydCAncXVpbGwnO1xuaW1wb3J0IHsgUVVJTExfQ09ORklHX1RPS0VOLCBRdWlsbE1vZHVsZSB9IGZyb20gJ25neC1xdWlsbCc7XG5pbXBvcnQgeyBDb2xvckNocm9tZU1vZHVsZSB9IGZyb20gJ25neC1jb2xvci9jaHJvbWUnO1xuXG5pbXBvcnQgeyBJRm9yUm9vdENvbmYgfSBmcm9tICcuL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQQl9DT05GSUcsIFBCX1RFTVBMQVRFU19URU1QT1JBUllfU1RPUkFHRSB9IGZyb20gJy4vdG9rZW5zL3Rva2Vucyc7XG5pbXBvcnQgeyBTdHJ1Y3R1cmVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RydWN0dXJlL3N0cnVjdHVyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGJFbWFpbEJ1aWxkZXJDb21wb25lbnQgfSBmcm9tICcuL3BiLWVtYWlsLWJ1aWxkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHluYW1pYy1jb21wb25lbnQuZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2VsZW1lbnRzL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0RWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vZWxlbWVudHMvdGV4dC1lbGVtZW50L3RleHQtZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9lbGVtZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9lbGVtZW50cy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNwYWNlckNvbXBvbmVudCB9IGZyb20gJy4vZWxlbWVudHMvc3BhY2VyL3NwYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU29jaWFsQ29tcG9uZW50IH0gZnJvbSAnLi9lbGVtZW50cy9zb2NpYWwvc29jaWFsLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEJ1aWxkZXJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGRlci1jb250YWluZXIvYnVpbGRlci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvbnRTdHlsZXNDb21wb25lbnQgfSBmcm9tICcuL2dyb3Vwcy9mb250LXN0eWxlcyc7XG5pbXBvcnQgeyBQYWRkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9ncm91cHMvcGFkZGluZyc7XG5pbXBvcnQgeyBMaW5lSGVpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi9ncm91cHMvbGluZS1oZWlnaHQnO1xuaW1wb3J0IHsgV2lkdGhIZWlnaHRDb21wb25lbnQgfSBmcm9tICcuL2dyb3Vwcy93aWR0aC1oZWlnaHQnO1xuaW1wb3J0IHsgQm9yZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9ncm91cHMvYm9yZGVyJztcbmltcG9ydCB7IENvbG9yQ29tcG9uZW50IH0gZnJvbSAnLi9ncm91cHMvY29sb3InO1xuaW1wb3J0IHsgTGlua0NvbXBvbmVudCB9IGZyb20gJy4vZ3JvdXBzL2xpbmsnO1xuaW1wb3J0IHsgQWxpZ25Db21wb25lbnQgfSBmcm9tICcuL2dyb3Vwcy9hbGlnbic7XG5pbXBvcnQgeyBEaXJlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2dyb3Vwcy9kaXJlY3Rpb24nO1xuaW1wb3J0IHsgQmFja1JlcGF0Q29tcG9uZW50IH0gZnJvbSAnLi9ncm91cHMvYmFjay1yZXBlYXQnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByZXZpZXdUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYkVtYWlsQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL3BiLWVtYWlsLWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCbG9ja0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ibG9jay9ibG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2dyb3Vwcy91cGxvYWQtaW1hZ2UnO1xuaW1wb3J0IHsgQmxvY2tTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ibG9jay1zZXR0aW5ncy9ibG9jay1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RydWN0dXJlU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RydWN0dXJlLXNldHRpbmdzL3N0cnVjdHVyZS1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VuZXJhbFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYWwtc2V0dGluZ3MvZ2VuZXJhbC1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFyZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9ncm91cHMvbWFyZ2luJztcbmltcG9ydCB7IFRlbXBsYXRlTGlzdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZS1saXN0LWRpYWxvZy90ZW1wbGF0ZS1saXN0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2Fwc0NvbXBvbmVudCB9IGZyb20gJy4vZ3JvdXBzL2dhcHMnO1xuXG5pbXBvcnQgeyBTbHVnaWZ5UGlwZSB9IGZyb20gJy4vcGlwZXMvc2x1Z2lmeS5waXBlJztcblxuaW1wb3J0IHsgRnJlZVVzZXJzTWlkZGxld2FyZSwgUGFpZFVzZXJzTWlkZGxld2FyZSB9IGZyb20gJy4vc2VydmljZXMvdXNlci1taWRkbGV3YXJlLXNlcnZpY2UnO1xuaW1wb3J0IHsgRnJlZVVzZXJzSW1hZ2VVcGxvYWRlciwgUGFpZFVzZXJzSW1hZ2VVcGxvYWRlciB9IGZyb20gJy4vc2VydmljZXMvdXNlci1pbWFnZS11cGxvYWRlci1zZXJ2aWNlJztcblxuaW1wb3J0IHsgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFBiVXNlckltYWdlVXBsb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLWltYWdlLXVwbG9hZGVyLXNlcnZpY2UvdXNlci1pbWFnZS11cGxvYWRlci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgSXBJbnRlcmNlcHRvckludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvcGItaW50ZXJjZXB0b3IuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgSW1wb3J0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ltcG9ydC1kaWFsb2cvaW1wb3J0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkQm90dG9tU2hlZXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3NlcnZpY2VzL3VzZXItaW1hZ2UtdXBsb2FkZXItc2VydmljZS91cGxvYWQtYm90dG9tLXNoZWV0LWRpYWxvZy91cGxvYWQtYm90dG9tLXNoZWV0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkSW1hZ2VHYWxsZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLWltYWdlLXVwbG9hZGVyLXNlcnZpY2UvdXBsb2FkLWltYWdlLWdhbGxlcnkvdXBsb2FkLWltYWdlLWdhbGxlcnkuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTElCUkFSWV9JU19QUk8gfSBmcm9tICcuL3Rva2Vucy9wcml2YXRlLXRva2Vucyc7XG5pbXBvcnQgeyBQYlVzZXJJbnRlcmZhY2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pbnRlcm5hbHMvdXNlci1pbnRlcmZhY2VzL3VzZXItaW50ZXJmYWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaW50ZXJuYWxzL3BiLWVtYWlsLW9iamVjdC1zdG9yZS9wYi1lbWFpbC1vYmplY3Qtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBGcmVlVXNlcnNSZXN0QXBpIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLXJlc3QtYXBpLXNlcnZpY2UnO1xuaW1wb3J0IHsgRnJlZVVzZXJzUGJTdG9yYWdlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wYi1zdG9yYWdlJztcbmltcG9ydCB7IFBiU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BiLXN0b3JhZ2UvcGItc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBiVXNlclJlc3RBcGlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLXJlc3QtYXBpLXNlcnZpY2UvdXNlci1yZXN0LWFwaS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgJ0Bhbmd1bGFyL2xvY2FsaXplL2luaXQnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIGh0dHBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUN1c3RvbVJlc3RBcGlTZXJ2aWNlKGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgcmV0dXJuIG5ldyBGcmVlVXNlcnNSZXN0QXBpKGh0dHApO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIGxpYnJhcnlJc1Byb0VudlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXNlck1pZGRsZXdhcmVTZXJ2aWNlKGxpYnJhcnlJc1Byb0VudjogYm9vbGVhbikge1xuICBpZiAoIWxpYnJhcnlJc1Byb0Vudikge1xuICAgIHJldHVybiBuZXcgRnJlZVVzZXJzTWlkZGxld2FyZSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgUGFpZFVzZXJzTWlkZGxld2FyZSgpO1xuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0gdGVtcGxhdGVTdG9yYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVc2Vyc0lwU3RvcmFnZSh0ZW1wbGF0ZVN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgcmV0dXJuIG5ldyBGcmVlVXNlcnNQYlN0b3JhZ2UodGVtcGxhdGVTdG9yYWdlKTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSBsaWJyYXJ5SXNQcm9FbnZcbiAqIEBwYXJhbSBtYXRCb3R0b21TaGVldFxuICogQHBhcmFtIG1hdERpYWxvZ1xuICogQHBhcmFtIHVzZXJNaWRkbGV3YXJlXG4gKiBAcGFyYW0gdXNlclJlc3RBcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVzZXJVcGxvYWRlclNlcnZpY2UoXG4gIGxpYnJhcnlJc1Byb0VudjogYm9vbGVhbixcbiAgbWF0Qm90dG9tU2hlZXQ6IE1hdEJvdHRvbVNoZWV0LFxuICBtYXREaWFsb2c6IE1hdERpYWxvZyxcbiAgdXNlck1pZGRsZXdhcmU6IFBiVXNlck1pZGRsZXdhcmVzU2VydmljZSxcbiAgdXNlclJlc3RBcGk6IFBiVXNlclJlc3RBcGlTZXJ2aWNlXG4pIHtcbiAgaWYgKCFsaWJyYXJ5SXNQcm9FbnYpIHtcbiAgICByZXR1cm4gbmV3IEZyZWVVc2Vyc0ltYWdlVXBsb2FkZXIobWF0Qm90dG9tU2hlZXQsIHVzZXJNaWRkbGV3YXJlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IFBhaWRVc2Vyc0ltYWdlVXBsb2FkZXIobWF0RGlhbG9nLCB1c2VyTWlkZGxld2FyZSwgdXNlclJlc3RBcGkpO1xuICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBRdWlsbE1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbG9yQ2hyb21lTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcblxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxuICAgIFJlc2l6YWJsZU1vZHVsZSxcbiAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFBiRW1haWxCdWlsZGVyQ29tcG9uZW50LFxuICAgIFN0cnVjdHVyZUNvbXBvbmVudCxcbiAgICBCbG9ja0NvbXBvbmVudCxcbiAgICBEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlLFxuICAgIFByZXZpZXdUZW1wbGF0ZUNvbXBvbmVudCxcblxuICAgIFRleHRFbGVtZW50Q29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBEaXZpZGVyQ29tcG9uZW50LFxuICAgIFNwYWNlckNvbXBvbmVudCxcbiAgICBTb2NpYWxDb21wb25lbnQsXG5cbiAgICBCdWlsZGVyQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEZvbnRTdHlsZXNDb21wb25lbnQsXG4gICAgUGFkZGluZ0NvbXBvbmVudCxcbiAgICBNYXJnaW5Db21wb25lbnQsXG4gICAgR2Fwc0NvbXBvbmVudCxcbiAgICBMaW5lSGVpZ2h0Q29tcG9uZW50LFxuICAgIFdpZHRoSGVpZ2h0Q29tcG9uZW50LFxuICAgIEJvcmRlckNvbXBvbmVudCxcbiAgICBDb2xvckNvbXBvbmVudCxcbiAgICBMaW5rQ29tcG9uZW50LFxuICAgIEFsaWduQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbkNvbXBvbmVudCxcbiAgICBCYWNrUmVwYXRDb21wb25lbnQsXG4gICAgQ29uZmlybURpYWxvZ0NvbXBvbmVudCxcbiAgICBJbWFnZVVwbG9hZENvbXBvbmVudCxcbiAgICBCbG9ja1NldHRpbmdzQ29tcG9uZW50LFxuICAgIFN0cnVjdHVyZVNldHRpbmdzQ29tcG9uZW50LFxuICAgIEdlbmVyYWxTZXR0aW5nc0NvbXBvbmVudCxcbiAgICBVcGxvYWRCb3R0b21TaGVldERpYWxvZ0NvbXBvbmVudCxcbiAgICBVcGxvYWRJbWFnZUdhbGxlcnlDb21wb25lbnQsXG4gICAgVGVtcGxhdGVMaXN0RGlhbG9nQ29tcG9uZW50LFxuICAgIFNsdWdpZnlQaXBlLFxuICAgIEltcG9ydERpYWxvZ0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbUGJFbWFpbEJ1aWxkZXJDb21wb25lbnQsIFByZXZpZXdUZW1wbGF0ZUNvbXBvbmVudCwgU2x1Z2lmeVBpcGVdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtcbiAgICBUZXh0RWxlbWVudENvbXBvbmVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgRGl2aWRlckNvbXBvbmVudCxcbiAgICBTcGFjZXJDb21wb25lbnQsXG4gICAgU29jaWFsQ29tcG9uZW50LFxuICAgIENvbmZpcm1EaWFsb2dDb21wb25lbnQsXG4gICAgVXBsb2FkQm90dG9tU2hlZXREaWFsb2dDb21wb25lbnQsXG4gICAgVXBsb2FkSW1hZ2VHYWxsZXJ5Q29tcG9uZW50LFxuICAgIFRlbXBsYXRlTGlzdERpYWxvZ0NvbXBvbmVudCxcbiAgICBJbXBvcnREaWFsb2dDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUVVJTExfQ09ORklHX1RPS0VOLFxuICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgYm91bmRzOiAncGItYnVpbGRlci1jb250YWluZXInLFxuICAgICAgICB0aGVtZTogJ2J1YmJsZScsXG4gICAgICAgIGZvcm1hdDogJ2h0bWwnLFxuICAgICAgICB0cmFja0NoYW5nZXM6ICdhbGwnLFxuICAgICAgICBzdXBwcmVzc0dsb2JhbFJlZ2lzdGVyV2FybmluZzogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IElwSW50ZXJjZXB0b3JJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcbiAgICAvLyB7IHByb3ZpZGU6IFBCX0JMT0NLX0VMRU1FTlQsIHVzZUNsYXNzOiBUZXh0QmxvY2ssIG11bHRpOiB0cnVlIH0sXG4gICAgUGJFbWFpbEJ1aWxkZXJTZXJ2aWNlLFxuICAgIFBiRW1haWxPYmplY3RTdG9yZVNlcnZpY2UsXG4gICAgUGJVc2VySW50ZXJmYWNlU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBiRW1haWxCdWlsZGVyTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcGJNaWRkbGV3YXJlc1NlcnZpY2U6IFBiVXNlck1pZGRsZXdhcmVzU2VydmljZSxcbiAgICB1c2VySW1hZ2VVcGxvYWRlcjogUGJVc2VySW1hZ2VVcGxvYWRlclNlcnZpY2UsXG4gICAgQEluamVjdChMSUJSQVJZX0lTX1BSTykgbGlicmFyeUlzUHJvOiBib29sZWFuXG4gICkge1xuICAgIGlmICghbGlicmFyeUlzUHJvICYmICEocGJNaWRkbGV3YXJlc1NlcnZpY2UgaW5zdGFuY2VvZiBGcmVlVXNlcnNNaWRkbGV3YXJlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVcGdyYWRlIHRvIGFuIEV4dGVuZGVkIG9yIENvbW1lcmNpYWwgTGljZW5zZSB0byB1c2UgQ3VzdG9tIE1pZGRsZXdhcmVzLicpO1xuICAgIH1cbiAgICBpZiAoIWxpYnJhcnlJc1BybyAmJiAhKHVzZXJJbWFnZVVwbG9hZGVyIGluc3RhbmNlb2YgRnJlZVVzZXJzSW1hZ2VVcGxvYWRlcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVXBncmFkZSB0byBhbiBFeHRlbmRlZCBvciBDb21tZXJjaWFsIExpY2Vuc2UgdG8gdXNlIEN1c3RvbSBJbWFnZSBVcGxvYWRlci4nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIFBiRW1haWxCdWlsZGVyTW9kdWxlLndpdGhDb25maWcodXNlckNvbmZpZykgaW5zdGVhZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHN0YXRpYyBmb3JSb290KHVzZXJDb25maWc6IElGb3JSb290Q29uZiA9IHt9KTogTW9kdWxlV2l0aFByb3ZpZGVyczxQYkVtYWlsQnVpbGRlck1vZHVsZT4ge1xuICAgIHJldHVybiBQYkVtYWlsQnVpbGRlck1vZHVsZS53aXRoQ29uZmlnKHVzZXJDb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBtb2R1bGUgd2l0aCBjb25maWd1cmF0aW9uc1xuICAgKiBAcGFyYW0gdXNlckNvbmZpZyBDb25maWd1cmF0aW9uc1xuICAgKi9cbiAgc3RhdGljIHdpdGhDb25maWcodXNlckNvbmZpZzogSUZvclJvb3RDb25mID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBiRW1haWxCdWlsZGVyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBQYkVtYWlsQnVpbGRlck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBQYkVtYWlsQnVpbGRlclNlcnZpY2UsXG4gICAgICAgIFBiRW1haWxPYmplY3RTdG9yZVNlcnZpY2UsXG4gICAgICAgIFBiVXNlckludGVyZmFjZVNlcnZpY2UsXG4gICAgICAgIHsgcHJvdmlkZTogUEJfQ09ORklHLCB1c2VWYWx1ZTogdXNlckNvbmZpZyB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZVVzZXJNaWRkbGV3YXJlU2VydmljZSxcbiAgICAgICAgICBkZXBzOiBbTElCUkFSWV9JU19QUk9dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBQYlN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZVVzZXJzSXBTdG9yYWdlLFxuICAgICAgICAgIGRlcHM6IFtQQl9URU1QTEFURVNfVEVNUE9SQVJZX1NUT1JBR0VdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBQYlVzZXJJbWFnZVVwbG9hZGVyU2VydmljZSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVVc2VyVXBsb2FkZXJTZXJ2aWNlLFxuICAgICAgICAgIGRlcHM6IFtMSUJSQVJZX0lTX1BSTywgTWF0Qm90dG9tU2hlZXQsIE1hdERpYWxvZywgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlLCBQYlVzZXJSZXN0QXBpU2VydmljZV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFBiVXNlclJlc3RBcGlTZXJ2aWNlLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZUN1c3RvbVJlc3RBcGlTZXJ2aWNlLFxuICAgICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50XVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { Injectable, Inject } from '@angular/core';
|
|
6
|
+
import { EMPTY } from 'rxjs';
|
|
7
|
+
import { catchError, switchMap, shareReplay, tap, finalize } from 'rxjs/operators';
|
|
8
|
+
import { PB_CONFIG, PB_DEFAULT_CONFIG } from './tokens/tokens';
|
|
9
|
+
import { PbEmailObjectStoreService } from './services/internals/pb-email-object-store/pb-email-object-store.service';
|
|
10
|
+
import { PbUserMiddlewaresService } from './services/user-middleware-service/pb-middlewares.service';
|
|
11
|
+
import { PbUserInterfaceService } from './services/internals/user-interfaces/user-interface.service';
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Soon it will be removed
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export class PbEmailBuilderService {
|
|
17
|
+
constructor(config,
|
|
18
|
+
// @Inject(PB_GOOGLE_FONTS) private googleFonts: string[],
|
|
19
|
+
emailObjectStore, pbMiddleWares, pbUserInterface // private _http: HttpClient,
|
|
20
|
+
) {
|
|
21
|
+
this.config = config;
|
|
22
|
+
this.emailObjectStore = emailObjectStore;
|
|
23
|
+
this.pbMiddleWares = pbMiddleWares;
|
|
24
|
+
this.pbUserInterface = pbUserInterface;
|
|
25
|
+
// private _template = new BehaviorSubject<string>('');
|
|
26
|
+
// private _mjml = new BehaviorSubject<string>('');
|
|
27
|
+
// private readonly _onSave$ = new Subject();
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated Please use the new service "UserRestApiService" instead
|
|
30
|
+
*/
|
|
31
|
+
this.modules = new Set();
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated Please use the new service "UserRestApiService" instead
|
|
34
|
+
*/
|
|
35
|
+
this.customTemplates = new Set();
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Please use the new service "UserRestApiService" instead
|
|
38
|
+
*/
|
|
39
|
+
this._mergeTags = new Set();
|
|
40
|
+
this.onTemplateCreated$ = this.emailObjectStore.onTemplateCreated$.pipe(shareReplay());
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Use onTemplateCreated$ instead
|
|
43
|
+
*/
|
|
44
|
+
this.onSave$ = this.onTemplateCreated$;
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Use isLoading$ instead
|
|
47
|
+
*/
|
|
48
|
+
this.isLoading = this.pbUserInterface.activeMatProgress$.asObservable();
|
|
49
|
+
this.isLoading$ = this.pbUserInterface.activeMatProgress$.asObservable();
|
|
50
|
+
this.config = Object.assign(Object.assign({}, PB_DEFAULT_CONFIG), this.config);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Save current Email Template
|
|
54
|
+
*/
|
|
55
|
+
createHTMLTemplate$() {
|
|
56
|
+
this.pbUserInterface.activeMatProgress$.next(true);
|
|
57
|
+
return this.emailObjectStore.createHTMLTemplate$().pipe(tap(() => this.pbUserInterface.activeMatProgress$.next(false)), catchError((error) => this.pbMiddleWares.catchError(error).pipe(switchMap(() => {
|
|
58
|
+
this.pbUserInterface.notify(error.message);
|
|
59
|
+
this.pbUserInterface.activeMatProgress$.next(false);
|
|
60
|
+
return EMPTY;
|
|
61
|
+
}))), finalize(() => this.pbUserInterface.activeMatProgress$.next(false)));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @deprecated Please use ngb.createHTMLTemplate$() instead
|
|
65
|
+
*/
|
|
66
|
+
saveEmail() {
|
|
67
|
+
return this.createHTMLTemplate$();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get Email as object
|
|
71
|
+
*/
|
|
72
|
+
get Email() {
|
|
73
|
+
return this.emailObjectStore.Email;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Set Email saved from database or created with new PBEmail()
|
|
77
|
+
*/
|
|
78
|
+
set Email(newEmail) {
|
|
79
|
+
this.emailObjectStore.setEmail(newEmail);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @deprecated Use getTemplateAsObservable$() instead
|
|
83
|
+
*/
|
|
84
|
+
get Template() {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Set HTML output
|
|
89
|
+
*/
|
|
90
|
+
// set Template(template: string) {
|
|
91
|
+
// this._template.next(template);
|
|
92
|
+
// }
|
|
93
|
+
/**
|
|
94
|
+
* @deprecated Use getMjmlAsObservable$() instead
|
|
95
|
+
*/
|
|
96
|
+
get Mjml() {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Listen Email changes
|
|
101
|
+
*/
|
|
102
|
+
getEmailAsObservable$() {
|
|
103
|
+
return this.emailObjectStore.emailAsObservable$;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Listen Template changes
|
|
107
|
+
*/
|
|
108
|
+
getTemplateAsObservable$() {
|
|
109
|
+
return this.emailObjectStore.templateAsObservable$;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Listen MJML changes
|
|
113
|
+
*/
|
|
114
|
+
getMjmlAsObservable$() {
|
|
115
|
+
return this.emailObjectStore.mjmlAsObservable$;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Listen Email and Template changes
|
|
119
|
+
* @deprecated Use onTemplateCreated$ instead
|
|
120
|
+
*/
|
|
121
|
+
onChanges$() {
|
|
122
|
+
return this.onTemplateCreated$;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
PbEmailBuilderService.decorators = [
|
|
126
|
+
{ type: Injectable }
|
|
127
|
+
];
|
|
128
|
+
PbEmailBuilderService.ctorParameters = () => [
|
|
129
|
+
{ type: undefined, decorators: [{ type: Inject, args: [PB_CONFIG,] }] },
|
|
130
|
+
{ type: PbEmailObjectStoreService },
|
|
131
|
+
{ type: PbUserMiddlewaresService },
|
|
132
|
+
{ type: PbUserInterfaceService }
|
|
133
|
+
];
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItZW1haWwtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL3BiLWVtYWlsLWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBRXJHOzs7R0FHRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUErQmhDLFlBQzRCLE1BQW9CO0lBQzlDLDBEQUEwRDtJQUNsRCxnQkFBMkMsRUFDM0MsYUFBdUMsRUFDdkMsZUFBdUMsQ0FBQyw2QkFBNkI7O1FBSm5ELFdBQU0sR0FBTixNQUFNLENBQWM7UUFFdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBbkNqRCx1REFBdUQ7UUFDdkQsbURBQW1EO1FBQ25ELDZDQUE2QztRQUU3Qzs7V0FFRztRQUNJLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBQ3hDOztXQUVHO1FBQ2Esb0JBQWUsR0FBRyxJ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LHdCQUF3QjtZQUN4QixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEVNUFRZIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzd2l0Y2hNYXAsIHNoYXJlUmVwbGF5LCB0YXAsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJRm9yUm9vdENvbmYsIElVc2VyTW9kdWxlLCBJVXNlclRlbXBsYXRlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUEJFbWFpbCB9IGZyb20gJy4vY2xhc3Nlcy9EZWZhdWx0RW1haWwnO1xuXG5pbXBvcnQgeyBQQl9DT05GSUcsIFBCX0RFRkFVTFRfQ09ORklHIH0gZnJvbSAnLi90b2tlbnMvdG9rZW5zJztcbmltcG9ydCB7IFBiRW1haWxPYmplY3RTdG9yZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ludGVybmFscy9wYi1lbWFpbC1vYmplY3Qtc3RvcmUvcGItZW1haWwtb2JqZWN0LXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFBiVXNlckludGVyZmFjZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ludGVybmFscy91c2VyLWludGVyZmFjZXMvdXNlci1pbnRlcmZhY2Uuc2VydmljZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgU29vbiBpdCB3aWxsIGJlIHJlbW92ZWRcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGJFbWFpbEJ1aWxkZXJTZXJ2aWNlIHtcbiAgLy8gcHJpdmF0ZSBfdGVtcGxhdGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAvLyBwcml2YXRlIF9tam1sID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgLy8gcHJpdmF0ZSByZWFkb25seSBfb25TYXZlJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgdGhlIG5ldyBzZXJ2aWNlIFwiVXNlclJlc3RBcGlTZXJ2aWNlXCIgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIG1vZHVsZXMgPSBuZXcgU2V0PElVc2VyTW9kdWxlPigpO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSB0aGUgbmV3IHNlcnZpY2UgXCJVc2VyUmVzdEFwaVNlcnZpY2VcIiBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tVGVtcGxhdGVzID0gbmV3IFNldDxJVXNlclRlbXBsYXRlPigpO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSB0aGUgbmV3IHNlcnZpY2UgXCJVc2VyUmVzdEFwaVNlcnZpY2VcIiBpbnN0ZWFkXG4gICAqL1xuICBwcml2YXRlIF9tZXJnZVRhZ3MgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25UZW1wbGF0ZUNyZWF0ZWQkID0gdGhpcy5lbWFpbE9iamVjdFN0b3JlLm9uVGVtcGxhdGVDcmVhdGVkJC5waXBlKHNoYXJlUmVwbGF5KCkpO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugb25UZW1wbGF0ZUNyZWF0ZWQkIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvblNhdmUkID0gdGhpcy5vblRlbXBsYXRlQ3JlYXRlZCQ7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBpc0xvYWRpbmckIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpc0xvYWRpbmcgPSB0aGlzLnBiVXNlckludGVyZmFjZS5hY3RpdmVNYXRQcm9ncmVzcyQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBpc0xvYWRpbmckID0gdGhpcy5wYlVzZXJJbnRlcmZhY2UuYWN0aXZlTWF0UHJvZ3Jlc3MkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUEJfQ09ORklHKSBwdWJsaWMgY29uZmlnOiBJRm9yUm9vdENvbmYsXG4gICAgLy8gQEluamVjdChQQl9HT09HTEVfRk9OVFMpIHByaXZhdGUgZ29vZ2xlRm9udHM6IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgZW1haWxPYmplY3RTdG9yZTogUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSxcbiAgICBwcml2YXRlIHBiTWlkZGxlV2FyZXM6IFBiVXNlck1pZGRsZXdhcmVzU2VydmljZSxcbiAgICBwcml2YXRlIHBiVXNlckludGVyZmFjZTogUGJVc2VySW50ZXJmYWNlU2VydmljZSAvLyBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxuICApIHtcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4uUEJfREVGQVVMVF9DT05GSUcsIC4uLnRoaXMuY29uZmlnIH07XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBjdXJyZW50IEVtYWlsIFRlbXBsYXRlXG4gICAqL1xuICBjcmVhdGVIVE1MVGVtcGxhdGUkKCkge1xuICAgIHRoaXMucGJVc2VySW50ZXJmYWNlLmFjdGl2ZU1hdFByb2dyZXNzJC5uZXh0KHRydWUpO1xuICAgIHJldHVybiB0aGlzLmVtYWlsT2JqZWN0U3RvcmUuY3JlYXRlSFRNTFRlbXBsYXRlJCgpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5wYlVzZXJJbnRlcmZhY2UuYWN0aXZlTWF0UHJvZ3Jlc3MkLm5leHQoZmFsc2UpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT5cbiAgICAgICAgdGhpcy5wYk1pZGRsZVdhcmVzLmNhdGNoRXJyb3IoZXJyb3IpLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGJVc2VySW50ZXJmYWNlLm5vdGlmeShlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIHRoaXMucGJVc2VySW50ZXJmYWNlLmFjdGl2ZU1hdFByb2dyZXNzJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5wYlVzZXJJbnRlcmZhY2UuYWN0aXZlTWF0UHJvZ3Jlc3MkLm5leHQoZmFsc2UpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgbmdiLmNyZWF0ZUhUTUxUZW1wbGF0ZSQoKSBpbnN0ZWFkXG4gICAqL1xuICBzYXZlRW1haWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlSFRNTFRlbXBsYXRlJCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBFbWFpbCBhcyBvYmplY3RcbiAgICovXG4gIGdldCBFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbWFpbE9iamVjdFN0b3JlLkVtYWlsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBFbWFpbCBzYXZlZCBmcm9tIGRhdGFiYXNlIG9yIGNyZWF0ZWQgd2l0aCBuZXcgUEJFbWFpbCgpXG4gICAqL1xuICBzZXQgRW1haWwobmV3RW1haWw6IFBCRW1haWwpIHtcbiAgICB0aGlzLmVtYWlsT2JqZWN0U3RvcmUuc2V0RW1haWwobmV3RW1haWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBnZXRUZW1wbGF0ZUFzT2JzZXJ2YWJsZSQoKSBpbnN0ZWFkXG4gICAqL1xuICBnZXQgVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLyoqXG4gICAqIFNldCBIVE1MIG91dHB1dFxuICAgKi9cbiAgLy8gc2V0IFRlbXBsYXRlKHRlbXBsYXRlOiBzdHJpbmcpIHtcbiAgLy8gICB0aGlzLl90ZW1wbGF0ZS5uZXh0KHRlbXBsYXRlKTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgZ2V0TWptbEFzT2JzZXJ2YWJsZSQoKSBpbnN0ZWFkXG4gICAqL1xuICBnZXQgTWptbCgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gRW1haWwgY2hhbmdlc1xuICAgKi9cbiAgZ2V0RW1haWxBc09ic2VydmFibGUkKCk6IE9ic2VydmFibGU8UEJFbWFpbD4ge1xuICAgIHJldHVybiB0aGlzLmVtYWlsT2JqZWN0U3RvcmUuZW1haWxBc09ic2VydmFibGUkO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBUZW1wbGF0ZSBjaGFuZ2VzXG4gICAqL1xuICBnZXRUZW1wbGF0ZUFzT2JzZXJ2YWJsZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5lbWFpbE9iamVjdFN0b3JlLnRlbXBsYXRlQXNPYnNlcnZhYmxlJDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gTUpNTCBjaGFuZ2VzXG4gICAqL1xuICBnZXRNam1sQXNPYnNlcnZhYmxlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbWFpbE9iamVjdFN0b3JlLm1qbWxBc09ic2VydmFibGUkO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBFbWFpbCBhbmQgVGVtcGxhdGUgY2hhbmdlc1xuICAgKiBAZGVwcmVjYXRlZCBVc2Ugb25UZW1wbGF0ZUNyZWF0ZWQkIGluc3RlYWRcbiAgICovXG4gIG9uQ2hhbmdlcyQoKTogT2JzZXJ2YWJsZTxbUEJFbWFpbCwgc3RyaW5nLCBzdHJpbmddPiB7XG4gICAgcmV0dXJuIHRoaXMub25UZW1wbGF0ZUNyZWF0ZWQkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBTZXQgb2YgU3RydWN0dXJlcyBmcm9tIGFzaWRlXG4gICAqL1xuICAvLyBnZXRTaWRlU3RydWN0dXJlcygpOiBTZXQ8SVN0cnVjdHVyZT4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVzO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIEdldCBTZXQgb2YgQmxvY2tzIGZyb20gYXNpZGVcbiAgICovXG4gIC8vIGdldFNpZGVCbG9ja3MoKTogU2V0PFRCbG9ja3M+IHtcbiAgLy8gICByZXR1cm4gdGhpcy5fYmxvY2tzO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIEdldCBhIFNldCBvZiBmb250cyBmYW1pbHlcbiAgICovXG4gIC8vIGdldCBGb250cygpOiBJRm9udEZhbWlseSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuX2ZvbnRGYW1pbHk7XG4gIC8vIH1cbiAgLy8gc2V0IEZvbnRzKGZvbnRzOiBJRm9udEZhbWlseSkge1xuICAvLyAgIHRoaXMuX2ZvbnRGYW1pbHkgPSBmb250cztcbiAgLy8gfVxuXG4gIC8vIGdldCBGYWxsYmFja0ZvbnRzKCk6IElGb250RmFtaWx5IHtcbiAgLy8gICByZXR1cm4gdGhpcy5fZmFsbGJhY2tGYW1pbHk7XG4gIC8vIH1cbiAgLy8gc2V0IEZhbGxiYWNrRm9udHMoZm9udHM6IElGb250RmFtaWx5KSB7XG4gIC8vICAgdGhpcy5fZmFsbGJhY2tGYW1pbHkgPSBmb250cztcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIHRoZSBuZXcgc2VydmljZSBcIlVzZXJSZXN0QXBpU2VydmljZVwiIGluc3RlYWRcbiAgICovXG4gIC8vIGdldCBNZXJnZVRhZ3MoKTogU2V0PHN0cmluZz4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9tZXJnZVRhZ3M7XG4gIC8vIH1cblxuICAvLyBzZXQgTWVyZ2VUYWdzKHRhZ3M6IFNldDxzdHJpbmc+KSB7XG4gIC8vICAgdGhpcy5fbWVyZ2VUYWdzID0gdGFncztcbiAgLy8gfVxufVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Pobuca.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
import { Pipe } from '@angular/core';
|
|
6
|
+
/**
|
|
7
|
+
* @ignore
|
|
8
|
+
*
|
|
9
|
+
* Soon will be removed.
|
|
10
|
+
*/
|
|
11
|
+
export class SlugifyPipe {
|
|
12
|
+
transform(input) {
|
|
13
|
+
const trChars = {
|
|
14
|
+
áÁ: 'a',
|
|
15
|
+
éÉ: 'e',
|
|
16
|
+
íÍ: 'i',
|
|
17
|
+
óÓ: 'o',
|
|
18
|
+
úÚ: 'u',
|
|
19
|
+
ñÑ: 'n'
|
|
20
|
+
};
|
|
21
|
+
for (const key of Object.keys(trChars)) {
|
|
22
|
+
input = input.replace(new RegExp('[' + key + ']', 'g'), trChars[key]);
|
|
23
|
+
}
|
|
24
|
+
return input
|
|
25
|
+
.toString()
|
|
26
|
+
.toLowerCase()
|
|
27
|
+
.replace(/\s+/g, '-') // Replace spaces with -
|
|
28
|
+
.replace(/[^\w\-]+/g, '') // Remove all non-word chars
|
|
29
|
+
.replace(/\-\-+/g, '-') // Replace multiple - with single -
|
|
30
|
+
.replace(/^-+/, '') // Trim - from start of text
|
|
31
|
+
.replace(/-+$/, ''); // Trim - from end of text
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
SlugifyPipe.decorators = [
|
|
35
|
+
{ type: Pipe, args: [{
|
|
36
|
+
name: 'slugify'
|
|
37
|
+
},] }
|
|
38
|
+
];
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2x1Z2lmeS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL3BpcGVzL3NsdWdpZnkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUFDdEIsU0FBUyxDQUFDLEtBQWE7UUFDckIsTUFBTSxPQUFPLEdBQUc7WUFDZCxFQUFFLEVBQUUsR0FBRztZQUNQLEVBQUUsRUFBRSxHQUFHO1lBQ1AsRUFBRSxFQUFFLEdBQUc7WUFDUCxFQUFFLEVBQUUsR0FBRztZQUNQLEVBQUUsRUFBRSxHQUFHO1lBQ1AsRUFBRSxFQUFFLEdBQUc7U0FDUixDQUFDO1FBQ0YsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxLQUFLO2FBQ1QsUUFBUSxFQUFFO2FBQ1YsV0FBVyxFQUFFO2FBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyx3QkFBd0I7YUFDN0MsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7YUFDckQsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxtQ0FBbUM7YUFDMUQsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7YUFDL0MsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtJQUNuRCxDQUFDOzs7WUF4QkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxTQUFTO2FBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaWdub3JlXG4gKlxuICogU29vbiB3aWxsIGJlIHJlbW92ZWQuXG4gKi9cbkBQaXBlKHtcbiAgbmFtZTogJ3NsdWdpZnknXG59KVxuZXhwb3J0IGNsYXNzIFNsdWdpZnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ckNoYXJzID0ge1xuICAgICAgw6HDgTogJ2EnLFxuICAgICAgw6nDiTogJ2UnLFxuICAgICAgw63DjTogJ2knLFxuICAgICAgw7PDkzogJ28nLFxuICAgICAgw7rDmjogJ3UnLFxuICAgICAgw7HDkTogJ24nXG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0ckNoYXJzKSkge1xuICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKG5ldyBSZWdFeHAoJ1snICsga2V5ICsgJ10nLCAnZycpLCB0ckNoYXJzW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gaW5wdXRcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLnJlcGxhY2UoL1xccysvZywgJy0nKSAvLyBSZXBsYWNlIHNwYWNlcyB3aXRoIC1cbiAgICAgIC5yZXBsYWNlKC9bXlxcd1xcLV0rL2csICcnKSAvLyBSZW1vdmUgYWxsIG5vbi13b3JkIGNoYXJzXG4gICAgICAucmVwbGFjZSgvXFwtXFwtKy9nLCAnLScpIC8vIFJlcGxhY2UgbXVsdGlwbGUgLSB3aXRoIHNpbmdsZSAtXG4gICAgICAucmVwbGFjZSgvXi0rLywgJycpIC8vIFRyaW0gLSBmcm9tIHN0YXJ0IG9mIHRleHRcbiAgICAgIC5yZXBsYWNlKC8tKyQvLCAnJyk7IC8vIFRyaW0gLSBmcm9tIGVuZCBvZiB0ZXh0XG4gIH1cbn1cbiJdfQ==
|