@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.
Files changed (150) hide show
  1. package/README.md +1 -0
  2. package/assets/icons/dribbble.png +0 -0
  3. package/assets/icons/facebook.png +0 -0
  4. package/assets/icons/github.png +0 -0
  5. package/assets/icons/instagram.png +0 -0
  6. package/assets/icons/linkedin.png +0 -0
  7. package/assets/icons/medium.png +0 -0
  8. package/assets/icons/pinterest.png +0 -0
  9. package/assets/icons/snapchat.png +0 -0
  10. package/assets/icons/soundcloud.png +0 -0
  11. package/assets/icons/tumblr.png +0 -0
  12. package/assets/icons/twitter.png +0 -0
  13. package/assets/icons/vimeo.png +0 -0
  14. package/assets/icons/web.png +0 -0
  15. package/assets/icons/xing.png +0 -0
  16. package/assets/icons/youtube.png +0 -0
  17. package/bundles/pobuca-email-builder.umd.js +4664 -0
  18. package/bundles/pobuca-email-builder.umd.js.map +1 -0
  19. package/bundles/pobuca-email-builder.umd.min.js +2 -0
  20. package/bundles/pobuca-email-builder.umd.min.js.map +1 -0
  21. package/esm2015/lib/classes/DefaultEmail.js +53 -0
  22. package/esm2015/lib/classes/Elements.js +229 -0
  23. package/esm2015/lib/classes/Structure.js +89 -0
  24. package/esm2015/lib/components/block/block.component.js +89 -0
  25. package/esm2015/lib/components/block-settings/block-settings.component.js +53 -0
  26. package/esm2015/lib/components/builder-container/builder-container.component.js +114 -0
  27. package/esm2015/lib/components/dialog.component.js +30 -0
  28. package/esm2015/lib/components/general-settings/general-settings.component.js +25 -0
  29. package/esm2015/lib/components/import-dialog/import-dialog.component.js +62 -0
  30. package/esm2015/lib/components/preview.component.js +89 -0
  31. package/esm2015/lib/components/structure/structure.component.js +163 -0
  32. package/esm2015/lib/components/structure-settings/structure-settings.component.js +31 -0
  33. package/esm2015/lib/components/template-list-dialog/template-list-dialog.component.js +45 -0
  34. package/esm2015/lib/directives/dynamic-component.directive.js +46 -0
  35. package/esm2015/lib/elements/abstract-block.js +23 -0
  36. package/esm2015/lib/elements/button/button.component.js +29 -0
  37. package/esm2015/lib/elements/divider/divider.component.js +30 -0
  38. package/esm2015/lib/elements/image/image.component.js +54 -0
  39. package/esm2015/lib/elements/social/social.component.js +42 -0
  40. package/esm2015/lib/elements/spacer/spacer.component.js +30 -0
  41. package/esm2015/lib/elements/text-element/text-element.component.js +80 -0
  42. package/esm2015/lib/groups/align.js +79 -0
  43. package/esm2015/lib/groups/back-repeat.js +55 -0
  44. package/esm2015/lib/groups/border.js +102 -0
  45. package/esm2015/lib/groups/color.js +139 -0
  46. package/esm2015/lib/groups/direction.js +63 -0
  47. package/esm2015/lib/groups/font-styles.js +112 -0
  48. package/esm2015/lib/groups/gaps.js +45 -0
  49. package/esm2015/lib/groups/line-height.js +68 -0
  50. package/esm2015/lib/groups/link.js +67 -0
  51. package/esm2015/lib/groups/margin.js +45 -0
  52. package/esm2015/lib/groups/padding.js +53 -0
  53. package/esm2015/lib/groups/upload-image.js +112 -0
  54. package/esm2015/lib/groups/width-height.js +94 -0
  55. package/esm2015/lib/interceptors/pb-interceptor.interceptor.js +51 -0
  56. package/esm2015/lib/interfaces/interfaces.js +13 -0
  57. package/esm2015/lib/pb-email-builder.component.js +246 -0
  58. package/esm2015/lib/pb-email-builder.module.js +291 -0
  59. package/esm2015/lib/pb-email-builder.service.js +134 -0
  60. package/esm2015/lib/pipes/slugify.pipe.js +39 -0
  61. package/esm2015/lib/services/internals/pb-email-object-store/pb-email-object-store.service.js +165 -0
  62. package/esm2015/lib/services/internals/user-interfaces/user-interface.service.js +122 -0
  63. package/esm2015/lib/services/pb-storage/FreeUsersStorage.class.js +11 -0
  64. package/esm2015/lib/services/pb-storage/index.js +7 -0
  65. package/esm2015/lib/services/pb-storage/pb-storage.service.js +79 -0
  66. package/esm2015/lib/services/user-image-uploader-service/free-users-image-uploader.service.js +26 -0
  67. package/esm2015/lib/services/user-image-uploader-service/index.js +8 -0
  68. package/esm2015/lib/services/user-image-uploader-service/paid-users-image-uploader.service.js +30 -0
  69. package/esm2015/lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component.js +112 -0
  70. package/esm2015/lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component.js +91 -0
  71. package/esm2015/lib/services/user-image-uploader-service/user-image-uploader.service.js +26 -0
  72. package/esm2015/lib/services/user-middleware-service/FreeUsersMiddleware.js +31 -0
  73. package/esm2015/lib/services/user-middleware-service/PaidUsersMiddleware.js +12 -0
  74. package/esm2015/lib/services/user-middleware-service/index.js +8 -0
  75. package/esm2015/lib/services/user-middleware-service/pb-middlewares.service.js +195 -0
  76. package/esm2015/lib/services/user-rest-api-service/free-users-rest-api.service.js +16 -0
  77. package/esm2015/lib/services/user-rest-api-service/index.js +7 -0
  78. package/esm2015/lib/services/user-rest-api-service/user-rest-api.service.js +116 -0
  79. package/esm2015/lib/tokens/private-tokens.js +17 -0
  80. package/esm2015/lib/tokens/tokens.js +159 -0
  81. package/esm2015/lib/utils.js +147 -0
  82. package/esm2015/pobuca-email-builder.js +43 -0
  83. package/esm2015/public_api.js +26 -0
  84. package/fesm2015/pobuca-email-builder.js +4335 -0
  85. package/fesm2015/pobuca-email-builder.js.map +1 -0
  86. package/lib/classes/DefaultEmail.d.ts +9 -0
  87. package/lib/classes/Elements.d.ts +62 -0
  88. package/lib/classes/Structure.d.ts +11 -0
  89. package/lib/components/block/block.component.d.ts +25 -0
  90. package/lib/components/block-settings/block-settings.component.d.ts +18 -0
  91. package/lib/components/builder-container/builder-container.component.d.ts +36 -0
  92. package/lib/components/dialog.component.d.ts +10 -0
  93. package/lib/components/general-settings/general-settings.component.d.ts +6 -0
  94. package/lib/components/import-dialog/import-dialog.component.d.ts +16 -0
  95. package/lib/components/preview.component.d.ts +18 -0
  96. package/lib/components/structure/structure.component.d.ts +43 -0
  97. package/lib/components/structure-settings/structure-settings.component.d.ts +9 -0
  98. package/lib/components/template-list-dialog/template-list-dialog.component.d.ts +15 -0
  99. package/lib/directives/dynamic-component.directive.d.ts +13 -0
  100. package/lib/elements/abstract-block.d.ts +8 -0
  101. package/lib/elements/button/button.component.d.ts +18 -0
  102. package/lib/elements/divider/divider.component.d.ts +10 -0
  103. package/lib/elements/image/image.component.d.ts +19 -0
  104. package/lib/elements/social/social.component.d.ts +21 -0
  105. package/lib/elements/spacer/spacer.component.d.ts +5 -0
  106. package/lib/elements/text-element/text-element.component.d.ts +52 -0
  107. package/lib/groups/align.d.ts +17 -0
  108. package/lib/groups/back-repeat.d.ts +8 -0
  109. package/lib/groups/border.d.ts +13 -0
  110. package/lib/groups/color.d.ts +26 -0
  111. package/lib/groups/direction.d.ts +13 -0
  112. package/lib/groups/font-styles.d.ts +17 -0
  113. package/lib/groups/gaps.d.ts +7 -0
  114. package/lib/groups/line-height.d.ts +12 -0
  115. package/lib/groups/link.d.ts +11 -0
  116. package/lib/groups/margin.d.ts +8 -0
  117. package/lib/groups/padding.d.ts +8 -0
  118. package/lib/groups/upload-image.d.ts +19 -0
  119. package/lib/groups/width-height.d.ts +19 -0
  120. package/lib/interceptors/pb-interceptor.interceptor.d.ts +10 -0
  121. package/lib/interfaces/interfaces.d.ts +422 -0
  122. package/lib/pb-email-builder.component.d.ts +67 -0
  123. package/lib/pb-email-builder.module.d.ts +51 -0
  124. package/lib/pb-email-builder.service.d.ts +83 -0
  125. package/lib/pipes/slugify.pipe.d.ts +9 -0
  126. package/lib/services/internals/pb-email-object-store/pb-email-object-store.service.d.ts +50 -0
  127. package/lib/services/internals/user-interfaces/user-interface.service.d.ts +46 -0
  128. package/lib/services/pb-storage/FreeUsersStorage.class.d.ts +6 -0
  129. package/lib/services/pb-storage/index.d.ts +2 -0
  130. package/lib/services/pb-storage/pb-storage.service.d.ts +54 -0
  131. package/lib/services/user-image-uploader-service/free-users-image-uploader.service.d.ts +12 -0
  132. package/lib/services/user-image-uploader-service/index.d.ts +3 -0
  133. package/lib/services/user-image-uploader-service/paid-users-image-uploader.service.d.ts +14 -0
  134. package/lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component.d.ts +28 -0
  135. package/lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component.d.ts +27 -0
  136. package/lib/services/user-image-uploader-service/user-image-uploader.service.d.ts +26 -0
  137. package/lib/services/user-middleware-service/FreeUsersMiddleware.d.ts +15 -0
  138. package/lib/services/user-middleware-service/PaidUsersMiddleware.d.ts +7 -0
  139. package/lib/services/user-middleware-service/index.d.ts +3 -0
  140. package/lib/services/user-middleware-service/pb-middlewares.service.d.ts +190 -0
  141. package/lib/services/user-rest-api-service/free-users-rest-api.service.d.ts +10 -0
  142. package/lib/services/user-rest-api-service/index.d.ts +2 -0
  143. package/lib/services/user-rest-api-service/user-rest-api.service.d.ts +82 -0
  144. package/lib/tokens/private-tokens.d.ts +5 -0
  145. package/lib/tokens/tokens.d.ts +70 -0
  146. package/lib/utils.d.ts +88 -0
  147. package/package.json +37 -0
  148. package/pobuca-email-builder.d.ts +42 -0
  149. package/pobuca-email-builder.metadata.json +1 -0
  150. package/public_api.d.ts +16 -0
@@ -0,0 +1,19 @@
1
+ import { IWidthHeight } from '../interfaces/interfaces';
2
+ import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
3
+ export declare class WidthHeightComponent {
4
+ private emailObject;
5
+ model: IWidthHeight;
6
+ label: string;
7
+ disabled: boolean;
8
+ private units;
9
+ constructor(emailObject: PbEmailObjectStoreService);
10
+ markForCheck(): void;
11
+ getLabel(): string;
12
+ toggleChange({ checked }: {
13
+ checked: any;
14
+ }): void;
15
+ getUnits(): import("../interfaces/interfaces").TUnits[];
16
+ disableValueField(): boolean;
17
+ showAutoSlider(): boolean;
18
+ getUnitLabel(unit: string): string;
19
+ }
@@ -0,0 +1,10 @@
1
+ import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import { IForRootConf } from '../interfaces/interfaces';
4
+ import { PbUserInterfaceService } from '../services/internals/user-interfaces/user-interface.service';
5
+ export declare class IpInterceptorInterceptor implements HttpInterceptor {
6
+ private userConfig;
7
+ private userInterface;
8
+ constructor(userConfig: IForRootConf, userInterface: PbUserInterfaceService);
9
+ intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
10
+ }
@@ -0,0 +1,422 @@
1
+ import { TBlocks } from '../classes/Elements';
2
+ /**
3
+ * Main builder configuration Interface. See also {@link PbEmailBuilderModule#withConfig}.
4
+ */
5
+ export interface IForRootConf {
6
+ /**
7
+ * Either an [Extended or Commercial License]{@link} key if any, otherwise leave it empty.
8
+ * @default t7HdQfZjGp6R96fOV4P8v18ggf6LLTQZ1puUI2tz
9
+ */
10
+ xApiKey?: string;
11
+ /**
12
+ * @deprecated Rewrite PbUserRestApiService in providers instead
13
+ * @ignore
14
+ */
15
+ uploadImagePath?: string;
16
+ /**
17
+ * @deprecated Rewrite PbUserRestApiService in providers instead
18
+ * @ignore
19
+ */
20
+ uploadImageName?: string;
21
+ /**
22
+ * @deprecated Rewrite PbUserRestApiService in providers instead
23
+ * @ignore
24
+ */
25
+ csrf?: {
26
+ name: string;
27
+ token: string;
28
+ };
29
+ /**
30
+ * Custom convertor path
31
+ */
32
+ apiPath?: string;
33
+ /**
34
+ * Show download button on builder top bar.
35
+ * @default true
36
+ */
37
+ useDownloadButton?: boolean;
38
+ /**
39
+ * Show preview button on builder top bar.
40
+ * @default true
41
+ */
42
+ usePreviewButton?: boolean;
43
+ /**
44
+ * Show save button on builder top bar.
45
+ * @default true
46
+ */
47
+ useSaveButton?: boolean;
48
+ /**
49
+ * Show a button that opens template gallery in case email body is empty.
50
+ * @default true
51
+ */
52
+ templateListIfEmpty?: boolean;
53
+ }
54
+ /**
55
+ * Convertor errors response interface, id any.
56
+ */
57
+ export interface IMjmlServerResponseErrors {
58
+ /**
59
+ * Error message.
60
+ */
61
+ message: string;
62
+ /**
63
+ * MJML TagName error occurred.
64
+ */
65
+ tagName: string;
66
+ }
67
+ /**
68
+ * Convertor response interface.
69
+ */
70
+ export interface IMjmlServerResponse {
71
+ /**
72
+ * Converted HTML Template based on {@link IPBEmail}.
73
+ */
74
+ html: string;
75
+ /**
76
+ * Converted MJML Template based on {@link IPBEmail}.
77
+ */
78
+ mjml: string;
79
+ /**
80
+ * Error representation if any. See {@link IMjmlServerResponseErrors}.
81
+ */
82
+ errors: IMjmlServerResponseErrors[];
83
+ }
84
+ /**
85
+ * Builder structure types.
86
+ * @default cols_1
87
+ */
88
+ export declare type TStructureTypes = 'cols_1' | 'cols_2' | 'cols_3' | 'cols_4' | 'cols_12' | 'cols_21';
89
+ /**
90
+ * Builder direction types.
91
+ * @default ltr
92
+ */
93
+ export declare type TDirection = 'ltr' | 'rtl';
94
+ /**
95
+ * Builder units types.
96
+ * @default px
97
+ */
98
+ export declare type TUnits = '%' | 'px' | 'cover' | 'contain';
99
+ /**
100
+ * Builder align types.
101
+ * @default left
102
+ */
103
+ export declare type TAlign = 'left' | 'center' | 'right';
104
+ /**
105
+ * Builder vertical align types.
106
+ * @default middle
107
+ */
108
+ export declare type TVerticalAlign = 'top' | 'middle' | 'bottom';
109
+ /**
110
+ * Builder Line-height types.
111
+ * @default none
112
+ */
113
+ export declare type TLineHeight = '%' | 'px' | 'none';
114
+ /**
115
+ * Builder Link target.
116
+ * @default _blank
117
+ */
118
+ export declare type TLinkTarget = '_blank' | '_self' | '_parent' | '_top';
119
+ /**
120
+ * Builder font style types.
121
+ * @default normal
122
+ */
123
+ export declare type TFontStyle = 'italic' | 'normal' | 'oblique';
124
+ /**
125
+ * Builder font weight types.
126
+ * @default inherit
127
+ */
128
+ export declare type TFontWeight = number | 'bold' | 'bolder' | 'inherit' | 'initial' | 'light' | 'normal';
129
+ /**
130
+ * Builder background-repeat types.
131
+ * @default no-repeat
132
+ */
133
+ export declare type TBackgroundRepeat = 'no-repeat' | 'repeat' | 'repeat-x' | 'repeat-y';
134
+ /**
135
+ * Builder border styles interface.
136
+ */
137
+ export interface IBorder {
138
+ color?: string;
139
+ /**
140
+ * Border style.
141
+ * @default solid
142
+ */
143
+ style?: 'solid' | 'dotted' | 'dashed' | 'double' | 'groove';
144
+ /**
145
+ * Border width
146
+ */
147
+ width?: number;
148
+ /**
149
+ * Border radius
150
+ */
151
+ radius?: number;
152
+ }
153
+ /**
154
+ * Builder padding styles interface.
155
+ */
156
+ export interface IPadding {
157
+ top?: number;
158
+ right?: number;
159
+ bottom?: number;
160
+ left?: number;
161
+ }
162
+ /**
163
+ * Builder margin styles interface.
164
+ */
165
+ export interface IMargin {
166
+ top?: number;
167
+ bottom?: number;
168
+ }
169
+ /**
170
+ * Builder Width and Height styles interface.
171
+ */
172
+ export interface IWidthHeight {
173
+ value: number;
174
+ /**
175
+ * Width and Height unit type.
176
+ * @default px
177
+ */
178
+ unit: TUnits;
179
+ auto?: boolean;
180
+ units?: TUnits[];
181
+ }
182
+ /**
183
+ * Builder background styles interface.
184
+ */
185
+ export interface IBackground {
186
+ color?: string;
187
+ url?: string;
188
+ repeat?: TBackgroundRepeat;
189
+ size?: IWidthHeight;
190
+ }
191
+ /**
192
+ * Builder font styles interface.
193
+ */
194
+ export interface IFont {
195
+ family?: string;
196
+ fallback?: string;
197
+ size?: number;
198
+ style?: TFontStyle;
199
+ weight?: TFontWeight;
200
+ }
201
+ export declare type IFontFamily = Set<string>;
202
+ /**
203
+ * Builder line-height styles interface.
204
+ */
205
+ export interface ILineHeight {
206
+ value?: number;
207
+ unit?: TLineHeight;
208
+ }
209
+ /**
210
+ * Builder link styles interface.
211
+ */
212
+ export interface ILink {
213
+ href: string;
214
+ target: TLinkTarget;
215
+ }
216
+ /**
217
+ * Builder structure columns' styles interface.
218
+ */
219
+ export interface IStructureColumnOptions {
220
+ background?: IBackground;
221
+ border?: IBorder;
222
+ verticalAlign?: TVerticalAlign;
223
+ }
224
+ /**
225
+ * Builder structure styles interface.
226
+ */
227
+ export interface IStructureOptions {
228
+ border?: IBorder;
229
+ background?: IBackground;
230
+ padding?: IPadding;
231
+ margin?: IMargin;
232
+ /**
233
+ * Disable responsive for entire structure
234
+ */
235
+ disableResponsive?: boolean;
236
+ /**
237
+ * Mame section full width
238
+ */
239
+ fullWidth?: boolean;
240
+ /**
241
+ * Mind the GAPS! Gaps between structure's columns.
242
+ */
243
+ gaps?: [number, number];
244
+ columnsWidth?: number[];
245
+ columns?: IStructureColumnOptions[];
246
+ }
247
+ /**
248
+ * Builder structure interface.
249
+ */
250
+ export interface IStructure {
251
+ readonly type: TStructureTypes;
252
+ readonly id: number;
253
+ /**
254
+ * If it's module, it can't be edited within email body.
255
+ * @default false
256
+ */
257
+ isModule?: boolean;
258
+ options: IStructureOptions;
259
+ elements: TBlocks[][];
260
+ readonly columns: number;
261
+ }
262
+ /**
263
+ * Builder block state interface. If `disabled: true` it can't be dragged from left sidebar.
264
+ */
265
+ export interface IBlockState {
266
+ /**
267
+ * @default false
268
+ */
269
+ disabled: boolean;
270
+ /**
271
+ * Show a message in case it's disabled.
272
+ */
273
+ message: string;
274
+ }
275
+ /**
276
+ * Builder {@link TextElementComponent} options interface.
277
+ */
278
+ export interface ITextBlockOptions {
279
+ color?: string;
280
+ font?: IFont;
281
+ lineHeight?: ILineHeight;
282
+ padding?: IPadding;
283
+ }
284
+ /**
285
+ * Builder {@link ImageComponent} options interface.
286
+ */
287
+ export interface IImageBLockOptions {
288
+ border?: IBorder;
289
+ width?: IWidthHeight;
290
+ height?: IWidthHeight;
291
+ link?: ILink;
292
+ align?: TAlign;
293
+ title?: string;
294
+ padding?: IPadding;
295
+ }
296
+ /**
297
+ * Builder {@link ButtonComponent} options interface.
298
+ */
299
+ export interface IButtonBlockOptions {
300
+ backgroundColor?: string;
301
+ border?: IBorder;
302
+ color?: string;
303
+ font?: IFont;
304
+ align?: TAlign;
305
+ fullWidth?: boolean;
306
+ lineHeight?: ILineHeight;
307
+ link?: ILink;
308
+ innerPadding?: IPadding;
309
+ padding?: IPadding;
310
+ }
311
+ /**
312
+ * Builder {@link DividerComponent} options interface.
313
+ */
314
+ export interface IDividerBlockOptions {
315
+ border?: IBorder;
316
+ padding?: IPadding;
317
+ }
318
+ /**
319
+ * Builder {@link SpacerComponent} options interface.
320
+ */
321
+ export interface ISpacerBlockOptions {
322
+ height?: IWidthHeight;
323
+ width?: IWidthHeight;
324
+ }
325
+ /**
326
+ * Builder {@link SocialComponent} options interface.
327
+ */
328
+ export interface ISocialBlockOptions {
329
+ align?: TAlign;
330
+ mode?: 'vertical' | 'horizontal';
331
+ font?: IFont;
332
+ iconSize?: ILineHeight;
333
+ lineHeight?: ILineHeight;
334
+ color?: string;
335
+ innerPadding?: IPadding;
336
+ padding?: IPadding;
337
+ }
338
+ /**
339
+ * Builder {@link SocialComponent} network options interface.
340
+ */
341
+ export interface ISocialNetwork {
342
+ href: string;
343
+ label?: string;
344
+ name: 'github' | 'instagram' | 'web' | 'snapchat' | 'youtube' | 'vimeo' | 'medium' | 'soundcloud' | 'dribbble' | 'facebook' | 'twitter' | 'pinterest' | 'linkedin' | 'tumblr' | 'xing' | 'tiktok';
345
+ padding?: IPadding;
346
+ }
347
+ /**
348
+ * Builder {@link IPBEmail} general options interface.
349
+ */
350
+ export interface IGeneralOptions {
351
+ width?: IWidthHeight;
352
+ background?: IBackground;
353
+ padding?: IPadding;
354
+ direction?: TDirection;
355
+ name?: string;
356
+ previewText: string;
357
+ global?: {
358
+ fonts?: string[];
359
+ padding?: IPadding;
360
+ };
361
+ }
362
+ /**
363
+ * Main builder Email Object interface.
364
+ */
365
+ export interface IPBEmail {
366
+ general?: IGeneralOptions;
367
+ structures?: IStructure[];
368
+ }
369
+ /**
370
+ * Builder module interface.
371
+ */
372
+ export interface IUserModule {
373
+ /**
374
+ * @deprecated Add name instead
375
+ * @ignore
376
+ */
377
+ thumb?: string;
378
+ name?: string;
379
+ module: IStructure;
380
+ }
381
+ /**
382
+ * @deprecated use IUserModule instead
383
+ * @internal
384
+ */
385
+ export interface ICustomModule extends IUserModule {
386
+ }
387
+ /**
388
+ * Builder predefined template interface.
389
+ */
390
+ export interface IUserTemplate {
391
+ id?: string;
392
+ title: string;
393
+ thumbPath: string;
394
+ templateData: IPBEmail;
395
+ }
396
+ /**
397
+ * @deprecated use IUserTemplate instead
398
+ * @internal
399
+ */
400
+ export interface ICustomTemplate extends IUserTemplate {
401
+ }
402
+ /**
403
+ * Builder Template Gallery templates interface.
404
+ */
405
+ export interface IUserTemplateCategory {
406
+ category: string;
407
+ templates: IUserTemplate[];
408
+ }
409
+ /**
410
+ * Builder IMage Gallery images interface.
411
+ */
412
+ export interface IUserImageCategory {
413
+ category: string;
414
+ images: string[];
415
+ }
416
+ /**
417
+ * Template Storage/Cache keys.
418
+ */
419
+ export declare enum ETemplatesStorage {
420
+ LATEST_USED = "NGB_LATEST_USED_TEMPLATES",
421
+ STORAGE = "NGB_TEMP_TEMPLATES_STORAGE"
422
+ }
@@ -0,0 +1,67 @@
1
+ import { Renderer2, OnChanges, SimpleChanges, OnDestroy, OnInit, ChangeDetectorRef, EventEmitter } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import { PbEmailBuilderService } from './pb-email-builder.service';
4
+ import { IStructure } from './interfaces/interfaces';
5
+ import { PBEmail } from './classes/DefaultEmail';
6
+ import { SlugifyPipe } from './pipes/slugify.pipe';
7
+ import { PbUserMiddlewaresService, TExportType } from './services/user-middleware-service/pb-middlewares.service';
8
+ import { TBlocks } from './classes/Elements';
9
+ import { PbUserInterfaceService } from './services/internals/user-interfaces/user-interface.service';
10
+ import { PbEmailObjectStoreService } from './services/internals/pb-email-object-store/pb-email-object-store.service';
11
+ import { PbUserRestApiService } from './services/user-rest-api-service/user-rest-api.service';
12
+ export declare class PbEmailBuilderComponent implements OnChanges, OnDestroy, OnInit, ControlValueAccessor {
13
+ ngb: PbEmailBuilderService;
14
+ private userRestApiService;
15
+ private userInterfaceService;
16
+ private emailObjectStore;
17
+ private renderer2;
18
+ private slugifyPipe;
19
+ private middlewares;
20
+ private changeDetectorRef;
21
+ structures: IStructure[];
22
+ blocks: TBlocks[];
23
+ private doc;
24
+ email?: PBEmail;
25
+ emailChange: EventEmitter<PBEmail>;
26
+ previewTemplate: boolean;
27
+ showGeneralSettings$: import("rxjs").Observable<"general" | "structure" | "block">;
28
+ currentTabIndex$: import("rxjs").Observable<number>;
29
+ cdkDropListConnectedTo$: import("rxjs").Observable<any[]>;
30
+ getBuilderContainerStyles$: import("rxjs").Observable<{
31
+ direction: import("./interfaces/interfaces").TDirection;
32
+ backgroundRepeat: import("./interfaces/interfaces").TBackgroundRepeat;
33
+ backgroundColor: string;
34
+ backgroundSize: string;
35
+ backgroundPosition: string;
36
+ }>;
37
+ currentHTMLTemplate$: import("rxjs").Observable<string>;
38
+ activeMatProgress$: import("rxjs").Observable<boolean>;
39
+ customModuleList$: import("rxjs").Observable<import("./interfaces/interfaces").IUserModule[]>;
40
+ private readonly _onDestroy$;
41
+ private includedFonts;
42
+ constructor(ngb: PbEmailBuilderService, userRestApiService: PbUserRestApiService, userInterfaceService: PbUserInterfaceService, emailObjectStore: PbEmailObjectStoreService, renderer2: Renderer2, slugifyPipe: SlugifyPipe, middlewares: PbUserMiddlewaresService, changeDetectorRef: ChangeDetectorRef, structures: IStructure[], blocks: TBlocks[], googleFonts: TBlocks[], doc: Document);
43
+ private onChange;
44
+ private onTouched;
45
+ writeValue(email: PBEmail): void;
46
+ registerOnChange(fn: any): void;
47
+ registerOnTouched(fn: any): void;
48
+ /**
49
+ * Not implemented yet
50
+ * @param isDisabled The state of builder
51
+ */
52
+ setDisabledState?(isDisabled: boolean): void;
53
+ saveEmail(): import("rxjs").Subscription;
54
+ disableBlocksList$(block: TBlocks): import("rxjs").Observable<boolean>;
55
+ disableStructureList$(structure: IStructure): import("rxjs").Observable<boolean>;
56
+ trackByFn(block: TBlocks | IStructure): "button" | "image" | "text" | "divider" | "spacer" | "social" | "cols_1" | "cols_2" | "cols_3" | "cols_4" | "cols_12" | "cols_21";
57
+ changeTabIndex(index: number): void;
58
+ download(source: TExportType): import("rxjs").Subscription;
59
+ importFile(): void;
60
+ createArrayFromStructureColumns({ columns }: {
61
+ columns: any;
62
+ }): string[];
63
+ togglePreview(): import("rxjs").Subscription;
64
+ ngOnInit(): void;
65
+ ngOnChanges(changes: SimpleChanges): void;
66
+ ngOnDestroy(): void;
67
+ }
@@ -0,0 +1,51 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { MatBottomSheet } from '@angular/material/bottom-sheet';
3
+ import { MatDialog } from '@angular/material/dialog';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import 'quill';
6
+ import { IForRootConf } from './interfaces/interfaces';
7
+ import { FreeUsersMiddleware, PaidUsersMiddleware } from './services/user-middleware-service';
8
+ import { FreeUsersImageUploader, PaidUsersImageUploader } from './services/user-image-uploader-service';
9
+ import { PbUserMiddlewaresService } from './services/user-middleware-service/pb-middlewares.service';
10
+ import { PbUserImageUploaderService } from './services/user-image-uploader-service/user-image-uploader.service';
11
+ import { FreeUsersRestApi } from './services/user-rest-api-service';
12
+ import { FreeUsersPbStorage } from './services/pb-storage';
13
+ import { PbUserRestApiService } from './services/user-rest-api-service/user-rest-api.service';
14
+ import '@angular/localize/init';
15
+ /**
16
+ * @internal
17
+ * @param http
18
+ */
19
+ export declare function createCustomRestApiService(http: HttpClient): FreeUsersRestApi;
20
+ /**
21
+ * @internal
22
+ * @param libraryIsProEnv
23
+ */
24
+ export declare function createUserMiddlewareService(libraryIsProEnv: boolean): FreeUsersMiddleware | PaidUsersMiddleware;
25
+ /**
26
+ * @internal
27
+ * @param templateStorage
28
+ */
29
+ export declare function createUsersIpStorage(templateStorage: Storage): FreeUsersPbStorage;
30
+ /**
31
+ * @internal
32
+ * @param libraryIsProEnv
33
+ * @param matBottomSheet
34
+ * @param matDialog
35
+ * @param userMiddleware
36
+ * @param userRestApi
37
+ */
38
+ export declare function createUserUploaderService(libraryIsProEnv: boolean, matBottomSheet: MatBottomSheet, matDialog: MatDialog, userMiddleware: PbUserMiddlewaresService, userRestApi: PbUserRestApiService): FreeUsersImageUploader | PaidUsersImageUploader;
39
+ export declare class PbEmailBuilderModule {
40
+ constructor(pbMiddlewaresService: PbUserMiddlewaresService, userImageUploader: PbUserImageUploaderService, libraryIsPro: boolean);
41
+ /**
42
+ * @deprecated use PbEmailBuilderModule.withConfig(userConfig) instead
43
+ * @internal
44
+ */
45
+ static forRoot(userConfig?: IForRootConf): ModuleWithProviders<PbEmailBuilderModule>;
46
+ /**
47
+ * Import module with configurations
48
+ * @param userConfig Configurations
49
+ */
50
+ static withConfig(userConfig?: IForRootConf): ModuleWithProviders<PbEmailBuilderModule>;
51
+ }
@@ -0,0 +1,83 @@
1
+ import { Observable } from 'rxjs';
2
+ import { IForRootConf, IUserModule, IUserTemplate } from './interfaces/interfaces';
3
+ import { PBEmail } from './classes/DefaultEmail';
4
+ import { PbEmailObjectStoreService } from './services/internals/pb-email-object-store/pb-email-object-store.service';
5
+ import { PbUserMiddlewaresService } from './services/user-middleware-service/pb-middlewares.service';
6
+ import { PbUserInterfaceService } from './services/internals/user-interfaces/user-interface.service';
7
+ /**
8
+ * @deprecated Soon it will be removed
9
+ * @internal
10
+ */
11
+ export declare class PbEmailBuilderService {
12
+ config: IForRootConf;
13
+ private emailObjectStore;
14
+ private pbMiddleWares;
15
+ private pbUserInterface;
16
+ /**
17
+ * @deprecated Please use the new service "UserRestApiService" instead
18
+ */
19
+ modules: Set<IUserModule>;
20
+ /**
21
+ * @deprecated Please use the new service "UserRestApiService" instead
22
+ */
23
+ readonly customTemplates: Set<IUserTemplate>;
24
+ /**
25
+ * @deprecated Please use the new service "UserRestApiService" instead
26
+ */
27
+ private _mergeTags;
28
+ readonly onTemplateCreated$: Observable<[PBEmail, string, string]>;
29
+ /**
30
+ * @deprecated Use onTemplateCreated$ instead
31
+ */
32
+ readonly onSave$: Observable<[PBEmail, string, string]>;
33
+ /**
34
+ * @deprecated Use isLoading$ instead
35
+ */
36
+ readonly isLoading: Observable<boolean>;
37
+ readonly isLoading$: Observable<boolean>;
38
+ constructor(config: IForRootConf, emailObjectStore: PbEmailObjectStoreService, pbMiddleWares: PbUserMiddlewaresService, pbUserInterface: PbUserInterfaceService);
39
+ /**
40
+ * Save current Email Template
41
+ */
42
+ createHTMLTemplate$(): Observable<import("./interfaces/interfaces").IMjmlServerResponse>;
43
+ /**
44
+ * @deprecated Please use ngb.createHTMLTemplate$() instead
45
+ */
46
+ saveEmail(): Observable<import("./interfaces/interfaces").IMjmlServerResponse>;
47
+ /**
48
+ * Get Email as object
49
+ */
50
+ get Email(): PBEmail;
51
+ /**
52
+ * Set Email saved from database or created with new PBEmail()
53
+ */
54
+ set Email(newEmail: PBEmail);
55
+ /**
56
+ * @deprecated Use getTemplateAsObservable$() instead
57
+ */
58
+ get Template(): any;
59
+ /**
60
+ * Set HTML output
61
+ */
62
+ /**
63
+ * @deprecated Use getMjmlAsObservable$() instead
64
+ */
65
+ get Mjml(): any;
66
+ /**
67
+ * Listen Email changes
68
+ */
69
+ getEmailAsObservable$(): Observable<PBEmail>;
70
+ /**
71
+ * Listen Template changes
72
+ */
73
+ getTemplateAsObservable$(): Observable<string>;
74
+ /**
75
+ * Listen MJML changes
76
+ */
77
+ getMjmlAsObservable$(): Observable<string>;
78
+ /**
79
+ * Listen Email and Template changes
80
+ * @deprecated Use onTemplateCreated$ instead
81
+ */
82
+ onChanges$(): Observable<[PBEmail, string, string]>;
83
+ }
@@ -0,0 +1,9 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ /**
3
+ * @ignore
4
+ *
5
+ * Soon will be removed.
6
+ */
7
+ export declare class SlugifyPipe implements PipeTransform {
8
+ transform(input: string): string;
9
+ }