@pobuca/email-builder 1.0.1 → 1.1.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 (135) hide show
  1. package/README.md +1 -1
  2. package/bundles/pobuca-email-builder.umd.js +4464 -4414
  3. package/bundles/pobuca-email-builder.umd.js.map +1 -1
  4. package/bundles/pobuca-email-builder.umd.min.js +1 -1
  5. package/bundles/pobuca-email-builder.umd.min.js.map +1 -1
  6. package/esm2015/lib/classes/DefaultEmail.js +54 -53
  7. package/esm2015/lib/classes/Elements.js +229 -229
  8. package/esm2015/lib/classes/Structure.js +89 -89
  9. package/esm2015/lib/components/block/block.component.js +89 -89
  10. package/esm2015/lib/components/block-settings/block-settings.component.js +53 -53
  11. package/esm2015/lib/components/builder-container/builder-container.component.js +114 -114
  12. package/esm2015/lib/components/dialog.component.js +30 -30
  13. package/esm2015/lib/components/general-settings/general-settings.component.js +25 -25
  14. package/esm2015/lib/components/import-dialog/import-dialog.component.js +62 -62
  15. package/esm2015/lib/components/preview.component.js +89 -89
  16. package/esm2015/lib/components/structure/structure.component.js +163 -163
  17. package/esm2015/lib/components/structure-settings/structure-settings.component.js +31 -31
  18. package/esm2015/lib/components/template-list-dialog/template-list-dialog.component.js +45 -45
  19. package/esm2015/lib/directives/dynamic-component.directive.js +46 -46
  20. package/esm2015/lib/elements/abstract-block.js +23 -23
  21. package/esm2015/lib/elements/button/button.component.js +29 -29
  22. package/esm2015/lib/elements/divider/divider.component.js +30 -30
  23. package/esm2015/lib/elements/image/image.component.js +54 -54
  24. package/esm2015/lib/elements/social/social.component.js +42 -42
  25. package/esm2015/lib/elements/spacer/spacer.component.js +30 -30
  26. package/esm2015/lib/elements/text-element/text-element.component.js +80 -80
  27. package/esm2015/lib/groups/align.js +79 -79
  28. package/esm2015/lib/groups/back-repeat.js +55 -55
  29. package/esm2015/lib/groups/border.js +102 -102
  30. package/esm2015/lib/groups/color.js +139 -139
  31. package/esm2015/lib/groups/direction.js +63 -63
  32. package/esm2015/lib/groups/font-styles.js +127 -112
  33. package/esm2015/lib/groups/gaps.js +45 -45
  34. package/esm2015/lib/groups/line-height.js +68 -68
  35. package/esm2015/lib/groups/link.js +67 -67
  36. package/esm2015/lib/groups/margin.js +45 -45
  37. package/esm2015/lib/groups/padding.js +53 -53
  38. package/esm2015/lib/groups/upload-image.js +112 -112
  39. package/esm2015/lib/groups/width-height.js +94 -94
  40. package/esm2015/lib/interceptors/pb-interceptor.interceptor.js +51 -51
  41. package/esm2015/lib/interfaces/interfaces.js +13 -13
  42. package/esm2015/lib/pb-email-builder.component.js +258 -246
  43. package/esm2015/lib/pb-email-builder.module.js +291 -291
  44. package/esm2015/lib/pb-email-builder.service.js +134 -134
  45. package/esm2015/lib/pipes/slugify.pipe.js +39 -39
  46. package/esm2015/lib/services/internals/pb-email-object-store/pb-email-object-store.service.js +175 -165
  47. package/esm2015/lib/services/internals/user-interfaces/user-interface.service.js +122 -122
  48. package/esm2015/lib/services/pb-storage/FreeUsersStorage.class.js +11 -11
  49. package/esm2015/lib/services/pb-storage/index.js +7 -7
  50. package/esm2015/lib/services/pb-storage/pb-storage.service.js +79 -79
  51. package/esm2015/lib/services/user-image-uploader-service/free-users-image-uploader.service.js +26 -26
  52. package/esm2015/lib/services/user-image-uploader-service/index.js +8 -8
  53. package/esm2015/lib/services/user-image-uploader-service/paid-users-image-uploader.service.js +30 -30
  54. package/esm2015/lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component.js +112 -112
  55. package/esm2015/lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component.js +91 -91
  56. package/esm2015/lib/services/user-image-uploader-service/user-image-uploader.service.js +26 -26
  57. package/esm2015/lib/services/user-middleware-service/FreeUsersMiddleware.js +31 -31
  58. package/esm2015/lib/services/user-middleware-service/PaidUsersMiddleware.js +12 -12
  59. package/esm2015/lib/services/user-middleware-service/index.js +8 -8
  60. package/esm2015/lib/services/user-middleware-service/pb-middlewares.service.js +195 -195
  61. package/esm2015/lib/services/user-rest-api-service/free-users-rest-api.service.js +16 -16
  62. package/esm2015/lib/services/user-rest-api-service/index.js +7 -7
  63. package/esm2015/lib/services/user-rest-api-service/user-rest-api.service.js +116 -116
  64. package/esm2015/lib/tokens/private-tokens.js +17 -17
  65. package/esm2015/lib/tokens/tokens.js +159 -159
  66. package/esm2015/lib/utils.js +147 -147
  67. package/esm2015/pobuca-email-builder.js +42 -42
  68. package/esm2015/public_api.js +26 -26
  69. package/fesm2015/pobuca-email-builder.js +4206 -4168
  70. package/fesm2015/pobuca-email-builder.js.map +1 -1
  71. package/lib/classes/DefaultEmail.d.ts +10 -9
  72. package/lib/classes/Elements.d.ts +62 -62
  73. package/lib/classes/Structure.d.ts +11 -11
  74. package/lib/components/block/block.component.d.ts +25 -25
  75. package/lib/components/block-settings/block-settings.component.d.ts +18 -18
  76. package/lib/components/builder-container/builder-container.component.d.ts +36 -36
  77. package/lib/components/dialog.component.d.ts +10 -10
  78. package/lib/components/general-settings/general-settings.component.d.ts +6 -6
  79. package/lib/components/import-dialog/import-dialog.component.d.ts +16 -16
  80. package/lib/components/preview.component.d.ts +18 -18
  81. package/lib/components/structure/structure.component.d.ts +43 -43
  82. package/lib/components/structure-settings/structure-settings.component.d.ts +9 -9
  83. package/lib/components/template-list-dialog/template-list-dialog.component.d.ts +15 -15
  84. package/lib/directives/dynamic-component.directive.d.ts +13 -13
  85. package/lib/elements/abstract-block.d.ts +8 -8
  86. package/lib/elements/button/button.component.d.ts +18 -18
  87. package/lib/elements/divider/divider.component.d.ts +10 -10
  88. package/lib/elements/image/image.component.d.ts +19 -19
  89. package/lib/elements/social/social.component.d.ts +21 -21
  90. package/lib/elements/spacer/spacer.component.d.ts +5 -5
  91. package/lib/elements/text-element/text-element.component.d.ts +52 -52
  92. package/lib/groups/align.d.ts +17 -17
  93. package/lib/groups/back-repeat.d.ts +8 -8
  94. package/lib/groups/border.d.ts +13 -13
  95. package/lib/groups/color.d.ts +26 -26
  96. package/lib/groups/direction.d.ts +13 -13
  97. package/lib/groups/font-styles.d.ts +21 -17
  98. package/lib/groups/gaps.d.ts +7 -7
  99. package/lib/groups/line-height.d.ts +12 -12
  100. package/lib/groups/link.d.ts +11 -11
  101. package/lib/groups/margin.d.ts +8 -8
  102. package/lib/groups/padding.d.ts +8 -8
  103. package/lib/groups/upload-image.d.ts +19 -19
  104. package/lib/groups/width-height.d.ts +19 -19
  105. package/lib/interceptors/pb-interceptor.interceptor.d.ts +10 -10
  106. package/lib/interfaces/interfaces.d.ts +430 -422
  107. package/lib/pb-email-builder.component.d.ts +67 -67
  108. package/lib/pb-email-builder.module.d.ts +51 -51
  109. package/lib/pb-email-builder.service.d.ts +83 -83
  110. package/lib/pipes/slugify.pipe.d.ts +9 -9
  111. package/lib/services/internals/pb-email-object-store/pb-email-object-store.service.d.ts +50 -50
  112. package/lib/services/internals/user-interfaces/user-interface.service.d.ts +46 -46
  113. package/lib/services/pb-storage/FreeUsersStorage.class.d.ts +6 -6
  114. package/lib/services/pb-storage/index.d.ts +2 -2
  115. package/lib/services/pb-storage/pb-storage.service.d.ts +54 -54
  116. package/lib/services/user-image-uploader-service/free-users-image-uploader.service.d.ts +12 -12
  117. package/lib/services/user-image-uploader-service/index.d.ts +3 -3
  118. package/lib/services/user-image-uploader-service/paid-users-image-uploader.service.d.ts +14 -14
  119. package/lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component.d.ts +28 -28
  120. package/lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component.d.ts +27 -27
  121. package/lib/services/user-image-uploader-service/user-image-uploader.service.d.ts +26 -26
  122. package/lib/services/user-middleware-service/FreeUsersMiddleware.d.ts +15 -15
  123. package/lib/services/user-middleware-service/PaidUsersMiddleware.d.ts +7 -7
  124. package/lib/services/user-middleware-service/index.d.ts +3 -3
  125. package/lib/services/user-middleware-service/pb-middlewares.service.d.ts +190 -190
  126. package/lib/services/user-rest-api-service/free-users-rest-api.service.d.ts +10 -10
  127. package/lib/services/user-rest-api-service/index.d.ts +2 -2
  128. package/lib/services/user-rest-api-service/user-rest-api.service.d.ts +82 -82
  129. package/lib/tokens/private-tokens.d.ts +5 -5
  130. package/lib/tokens/tokens.d.ts +70 -70
  131. package/lib/utils.d.ts +88 -88
  132. package/package.json +8 -3
  133. package/pobuca-email-builder.d.ts +42 -42
  134. package/pobuca-email-builder.metadata.json +1 -1
  135. package/public_api.d.ts +16 -16
@@ -1,67 +1,67 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
6
- import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
7
- export class LinkComponent {
8
- constructor(emailObject) {
9
- this.emailObject = emailObject;
10
- this.targetLabels = new Map([
11
- ['_blank', $localize `:@@link_target_blank:Blank`],
12
- ['_self', $localize `:@@link_target_self:Self`],
13
- ['_parent', $localize `:@@link_target_parent:Parent`],
14
- ['_top', $localize `:@@link_target_top:Top`]
15
- ]);
16
- }
17
- markForCheck() {
18
- this.emailObject.markForCheck();
19
- }
20
- getTargets() {
21
- return ['_blank', '_self', '_parent', '_top'];
22
- }
23
- getTargetLabel(target) {
24
- return this.targetLabels.get(target);
25
- }
26
- }
27
- LinkComponent.decorators = [
28
- { type: Component, args: [{
29
- selector: 'pb-link',
30
- template: `
31
- <div class="group f-large">
32
- <mat-form-field appearance="outline">
33
- <mat-label i18n="Link Settings|Link">Link</mat-label>
34
- <input matInput [(ngModel)]="link.href" type="url" placeholder="Link" (blur)="markForCheck()" />
35
- </mat-form-field>
36
- <mat-form-field appearance="outline">
37
- <mat-label i18n="Link Settings|Target">Target</mat-label>
38
- <mat-select
39
- placeholder="Target"
40
- i18n-placeholder="Link Settings|Target"
41
- [(value)]="link.target"
42
- disableRipple
43
- (selectionChange)="markForCheck()"
44
- >
45
- <mat-option *ngFor="let target of getTargets()" [value]="target">
46
- {{ getTargetLabel(target) }}
47
- </mat-option>
48
- </mat-select>
49
- </mat-form-field>
50
- </div>
51
- `,
52
- changeDetection: ChangeDetectionStrategy.OnPush,
53
- styles: [`
54
- :host {
55
- display: block;
56
- width: 100%;
57
- }
58
- `]
59
- },] }
60
- ];
61
- LinkComponent.ctorParameters = () => [
62
- { type: PbEmailObjectStoreService }
63
- ];
64
- LinkComponent.propDecorators = {
65
- link: [{ type: Input }]
66
- };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9ncm91cHMvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQW9DdEgsTUFBTSxPQUFPLGFBQWE7SUFVeEIsWUFBb0IsV0FBc0M7UUFBdEMsZ0JBQVcsR0FBWCxXQUFXLENBQTJCO1FBUGxELGlCQUFZLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDN0IsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFBLDRCQUE0QixDQUFDO1lBQ2pELENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQSwwQkFBMEIsQ0FBQztZQUM5QyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUEsOEJBQThCLENBQUM7WUFDcEQsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFBLHdCQUF3QixDQUFDO1NBQzVDLENBQUMsQ0FBQztJQUUwRCxDQUFDO0lBRTlELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUMzQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OztZQXhERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJUO2dCQVNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO3lCQVA3Qzs7Ozs7S0FLQzthQUdKOzs7WUFuQ1EseUJBQXlCOzs7bUJBcUMvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTGluaywgVExpbmtUYXJnZXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ludGVybmFscy9wYi1lbWFpbC1vYmplY3Qtc3RvcmUvcGItZW1haWwtb2JqZWN0LXN0b3JlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwYi1saW5rJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAgZi1sYXJnZVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj1cIkxpbmsgU2V0dGluZ3N8TGlua1wiPkxpbms8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwibGluay5ocmVmXCIgdHlwZT1cInVybFwiIHBsYWNlaG9sZGVyPVwiTGlua1wiIChibHVyKT1cIm1hcmtGb3JDaGVjaygpXCIgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiTGluayBTZXR0aW5nc3xUYXJnZXRcIj5UYXJnZXQ8L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRhcmdldFwiXG4gICAgICAgICAgaTE4bi1wbGFjZWhvbGRlcj1cIkxpbmsgU2V0dGluZ3N8VGFyZ2V0XCJcbiAgICAgICAgICBbKHZhbHVlKV09XCJsaW5rLnRhcmdldFwiXG4gICAgICAgICAgZGlzYWJsZVJpcHBsZVxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwibWFya0ZvckNoZWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRhcmdldCBvZiBnZXRUYXJnZXRzKClcIiBbdmFsdWVdPVwidGFyZ2V0XCI+XG4gICAgICAgICAgICB7eyBnZXRUYXJnZXRMYWJlbCh0YXJnZXQpIH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICBgXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpbmtDb21wb25lbnQge1xuICBASW5wdXQoKSBsaW5rOiBJTGluaztcblxuICBwcml2YXRlIHRhcmdldExhYmVscyA9IG5ldyBNYXAoW1xuICAgIFsnX2JsYW5rJywgJGxvY2FsaXplYDpAQGxpbmtfdGFyZ2V0X2JsYW5rOkJsYW5rYF0sXG4gICAgWydfc2VsZicsICRsb2NhbGl6ZWA6QEBsaW5rX3RhcmdldF9zZWxmOlNlbGZgXSxcbiAgICBbJ19wYXJlbnQnLCAkbG9jYWxpemVgOkBAbGlua190YXJnZXRfcGFyZW50OlBhcmVudGBdLFxuICAgIFsnX3RvcCcsICRsb2NhbGl6ZWA6QEBsaW5rX3RhcmdldF90b3A6VG9wYF1cbiAgXSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbWFpbE9iamVjdDogUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSkge31cblxuICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5lbWFpbE9iamVjdC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldFRhcmdldHMoKTogVExpbmtUYXJnZXRbXSB7XG4gICAgcmV0dXJuIFsnX2JsYW5rJywgJ19zZWxmJywgJ19wYXJlbnQnLCAnX3RvcCddO1xuICB9XG5cbiAgZ2V0VGFyZ2V0TGFiZWwodGFyZ2V0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXRMYWJlbHMuZ2V0KHRhcmdldCk7XG4gIH1cbn1cbiJdfQ==
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
6
+ import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
7
+ export class LinkComponent {
8
+ constructor(emailObject) {
9
+ this.emailObject = emailObject;
10
+ this.targetLabels = new Map([
11
+ ['_blank', $localize `:@@link_target_blank:Blank`],
12
+ ['_self', $localize `:@@link_target_self:Self`],
13
+ ['_parent', $localize `:@@link_target_parent:Parent`],
14
+ ['_top', $localize `:@@link_target_top:Top`]
15
+ ]);
16
+ }
17
+ markForCheck() {
18
+ this.emailObject.markForCheck();
19
+ }
20
+ getTargets() {
21
+ return ['_blank', '_self', '_parent', '_top'];
22
+ }
23
+ getTargetLabel(target) {
24
+ return this.targetLabels.get(target);
25
+ }
26
+ }
27
+ LinkComponent.decorators = [
28
+ { type: Component, args: [{
29
+ selector: 'pb-link',
30
+ template: `
31
+ <div class="group f-large">
32
+ <mat-form-field appearance="outline">
33
+ <mat-label i18n="Link Settings|Link">Link</mat-label>
34
+ <input matInput [(ngModel)]="link.href" type="url" placeholder="Link" (blur)="markForCheck()" />
35
+ </mat-form-field>
36
+ <mat-form-field appearance="outline">
37
+ <mat-label i18n="Link Settings|Target">Target</mat-label>
38
+ <mat-select
39
+ placeholder="Target"
40
+ i18n-placeholder="Link Settings|Target"
41
+ [(value)]="link.target"
42
+ disableRipple
43
+ (selectionChange)="markForCheck()"
44
+ >
45
+ <mat-option *ngFor="let target of getTargets()" [value]="target">
46
+ {{ getTargetLabel(target) }}
47
+ </mat-option>
48
+ </mat-select>
49
+ </mat-form-field>
50
+ </div>
51
+ `,
52
+ changeDetection: ChangeDetectionStrategy.OnPush,
53
+ styles: [`
54
+ :host {
55
+ display: block;
56
+ width: 100%;
57
+ }
58
+ `]
59
+ },] }
60
+ ];
61
+ LinkComponent.ctorParameters = () => [
62
+ { type: PbEmailObjectStoreService }
63
+ ];
64
+ LinkComponent.propDecorators = {
65
+ link: [{ type: Input }]
66
+ };
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9ncm91cHMvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQW9DdEgsTUFBTSxPQUFPLGFBQWE7SUFVeEIsWUFBb0IsV0FBc0M7UUFBdEMsZ0JBQVcsR0FBWCxXQUFXLENBQTJCO1FBUGxELGlCQUFZLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDN0IsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFBLDRCQUE0QixDQUFDO1lBQ2pELENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQSwwQkFBMEIsQ0FBQztZQUM5QyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUEsOEJBQThCLENBQUM7WUFDcEQsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFBLHdCQUF3QixDQUFDO1NBQzVDLENBQUMsQ0FBQztJQUUwRCxDQUFDO0lBRTlELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUMzQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OztZQXhERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJUO2dCQVNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO3lCQVA3Qzs7Ozs7S0FLQzthQUdKOzs7WUFuQ1EseUJBQXlCOzs7bUJBcUMvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJTGluaywgVExpbmtUYXJnZXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQYkVtYWlsT2JqZWN0U3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaW50ZXJuYWxzL3BiLWVtYWlsLW9iamVjdC1zdG9yZS9wYi1lbWFpbC1vYmplY3Qtc3RvcmUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BiLWxpbmsnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAgZi1sYXJnZVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJMaW5rIFNldHRpbmdzfExpbmtcIj5MaW5rPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwibGluay5ocmVmXCIgdHlwZT1cInVybFwiIHBsYWNlaG9sZGVyPVwiTGlua1wiIChibHVyKT1cIm1hcmtGb3JDaGVjaygpXCIgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiTGluayBTZXR0aW5nc3xUYXJnZXRcIj5UYXJnZXQ8L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJUYXJnZXRcIlxyXG4gICAgICAgICAgaTE4bi1wbGFjZWhvbGRlcj1cIkxpbmsgU2V0dGluZ3N8VGFyZ2V0XCJcclxuICAgICAgICAgIFsodmFsdWUpXT1cImxpbmsudGFyZ2V0XCJcclxuICAgICAgICAgIGRpc2FibGVSaXBwbGVcclxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwibWFya0ZvckNoZWNrKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB0YXJnZXQgb2YgZ2V0VGFyZ2V0cygpXCIgW3ZhbHVlXT1cInRhcmdldFwiPlxyXG4gICAgICAgICAgICB7eyBnZXRUYXJnZXRMYWJlbCh0YXJnZXQpIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGBcclxuICAgICAgOmhvc3Qge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICBgXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlua0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbGluazogSUxpbms7XHJcblxyXG4gIHByaXZhdGUgdGFyZ2V0TGFiZWxzID0gbmV3IE1hcChbXHJcbiAgICBbJ19ibGFuaycsICRsb2NhbGl6ZWA6QEBsaW5rX3RhcmdldF9ibGFuazpCbGFua2BdLFxyXG4gICAgWydfc2VsZicsICRsb2NhbGl6ZWA6QEBsaW5rX3RhcmdldF9zZWxmOlNlbGZgXSxcclxuICAgIFsnX3BhcmVudCcsICRsb2NhbGl6ZWA6QEBsaW5rX3RhcmdldF9wYXJlbnQ6UGFyZW50YF0sXHJcbiAgICBbJ190b3AnLCAkbG9jYWxpemVgOkBAbGlua190YXJnZXRfdG9wOlRvcGBdXHJcbiAgXSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZW1haWxPYmplY3Q6IFBiRW1haWxPYmplY3RTdG9yZVNlcnZpY2UpIHt9XHJcblxyXG4gIG1hcmtGb3JDaGVjaygpIHtcclxuICAgIHRoaXMuZW1haWxPYmplY3QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXRUYXJnZXRzKCk6IFRMaW5rVGFyZ2V0W10ge1xyXG4gICAgcmV0dXJuIFsnX2JsYW5rJywgJ19zZWxmJywgJ19wYXJlbnQnLCAnX3RvcCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFyZ2V0TGFiZWwodGFyZ2V0OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRhcmdldExhYmVscy5nZXQodGFyZ2V0KTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,45 +1,45 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
6
- import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
7
- export class MarginComponent {
8
- constructor(emailObject) {
9
- this.emailObject = emailObject;
10
- }
11
- markForCheck() {
12
- this.emailObject.markForCheck();
13
- }
14
- }
15
- MarginComponent.decorators = [
16
- { type: Component, args: [{
17
- selector: 'pb-margin',
18
- template: `
19
- <div class="group">
20
- <mat-form-field appearance="outline">
21
- <mat-label i18n="Margin settings|Margin Top">Margin Top</mat-label>
22
- <input matInput type="number" min="0" step="1" [(ngModel)]="margin.top" (input)="markForCheck()" />
23
- </mat-form-field>
24
- <mat-form-field appearance="outline">
25
- <mat-label i18n="Margin settings|Margin Bottom">Margin Bottom</mat-label>
26
- <input matInput type="number" min="0" step="1" [(ngModel)]="margin.bottom" (input)="markForCheck()" />
27
- </mat-form-field>
28
- </div>
29
- `,
30
- changeDetection: ChangeDetectionStrategy.OnPush,
31
- styles: [`
32
- :host {
33
- display: block;
34
- width: 100%;
35
- }
36
- `]
37
- },] }
38
- ];
39
- MarginComponent.ctorParameters = () => [
40
- { type: PbEmailObjectStoreService }
41
- ];
42
- MarginComponent.propDecorators = {
43
- margin: [{ type: Input }]
44
- };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyZ2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL2dyb3Vwcy9tYXJnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUEwQnRILE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLFdBQXNDO1FBQXRDLGdCQUFXLEdBQVgsV0FBVyxDQUEyQjtJQUFHLENBQUM7SUFFOUQsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7O1lBL0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUO2dCQVNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO3lCQVA3Qzs7Ozs7S0FLQzthQUdKOzs7WUF6QlEseUJBQXlCOzs7cUJBMkIvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFyZ2luIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBiRW1haWxPYmplY3RTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbnRlcm5hbHMvcGItZW1haWwtb2JqZWN0LXN0b3JlL3BiLWVtYWlsLW9iamVjdC1zdG9yZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGItbWFyZ2luJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJNYXJnaW4gc2V0dGluZ3N8TWFyZ2luIFRvcFwiPk1hcmdpbiBUb3A8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgc3RlcD1cIjFcIiBbKG5nTW9kZWwpXT1cIm1hcmdpbi50b3BcIiAoaW5wdXQpPVwibWFya0ZvckNoZWNrKClcIiAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJNYXJnaW4gc2V0dGluZ3N8TWFyZ2luIEJvdHRvbVwiPk1hcmdpbiBCb3R0b208L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgc3RlcD1cIjFcIiBbKG5nTW9kZWwpXT1cIm1hcmdpbi5ib3R0b21cIiAoaW5wdXQpPVwibWFya0ZvckNoZWNrKClcIiAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgYFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNYXJnaW5Db21wb25lbnQge1xuICBASW5wdXQoKSBtYXJnaW46IElNYXJnaW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbWFpbE9iamVjdDogUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSkge31cblxuICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5lbWFpbE9iamVjdC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
6
+ import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
7
+ export class MarginComponent {
8
+ constructor(emailObject) {
9
+ this.emailObject = emailObject;
10
+ }
11
+ markForCheck() {
12
+ this.emailObject.markForCheck();
13
+ }
14
+ }
15
+ MarginComponent.decorators = [
16
+ { type: Component, args: [{
17
+ selector: 'pb-margin',
18
+ template: `
19
+ <div class="group">
20
+ <mat-form-field appearance="outline">
21
+ <mat-label i18n="Margin settings|Margin Top">Margin Top</mat-label>
22
+ <input matInput type="number" min="0" step="1" [(ngModel)]="margin.top" (input)="markForCheck()" />
23
+ </mat-form-field>
24
+ <mat-form-field appearance="outline">
25
+ <mat-label i18n="Margin settings|Margin Bottom">Margin Bottom</mat-label>
26
+ <input matInput type="number" min="0" step="1" [(ngModel)]="margin.bottom" (input)="markForCheck()" />
27
+ </mat-form-field>
28
+ </div>
29
+ `,
30
+ changeDetection: ChangeDetectionStrategy.OnPush,
31
+ styles: [`
32
+ :host {
33
+ display: block;
34
+ width: 100%;
35
+ }
36
+ `]
37
+ },] }
38
+ ];
39
+ MarginComponent.ctorParameters = () => [
40
+ { type: PbEmailObjectStoreService }
41
+ ];
42
+ MarginComponent.propDecorators = {
43
+ margin: [{ type: Input }]
44
+ };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyZ2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL2dyb3Vwcy9tYXJnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUEwQnRILE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLFdBQXNDO1FBQXRDLGdCQUFXLEdBQVgsV0FBVyxDQUEyQjtJQUFHLENBQUM7SUFFOUQsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7O1lBL0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUO2dCQVNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO3lCQVA3Qzs7Ozs7S0FLQzthQUdKOzs7WUF6QlEseUJBQXlCOzs7cUJBMkIvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJTWFyZ2luIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ludGVybmFscy9wYi1lbWFpbC1vYmplY3Qtc3RvcmUvcGItZW1haWwtb2JqZWN0LXN0b3JlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwYi1tYXJnaW4nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiTWFyZ2luIHNldHRpbmdzfE1hcmdpbiBUb3BcIj5NYXJnaW4gVG9wPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgc3RlcD1cIjFcIiBbKG5nTW9kZWwpXT1cIm1hcmdpbi50b3BcIiAoaW5wdXQpPVwibWFya0ZvckNoZWNrKClcIiAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJNYXJnaW4gc2V0dGluZ3N8TWFyZ2luIEJvdHRvbVwiPk1hcmdpbiBCb3R0b208L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBzdGVwPVwiMVwiIFsobmdNb2RlbCldPVwibWFyZ2luLmJvdHRvbVwiIChpbnB1dCk9XCJtYXJrRm9yQ2hlY2soKVwiIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgICA6aG9zdCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIGBcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXJnaW5Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIG1hcmdpbjogSU1hcmdpbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbWFpbE9iamVjdDogUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSkge31cclxuXHJcbiAgbWFya0ZvckNoZWNrKCkge1xyXG4gICAgdGhpcy5lbWFpbE9iamVjdC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,53 +1,53 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
6
- import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
7
- export class PaddingComponent {
8
- constructor(emailObject) {
9
- this.emailObject = emailObject;
10
- }
11
- markForCheck() {
12
- this.emailObject.markForCheck();
13
- }
14
- }
15
- PaddingComponent.decorators = [
16
- { type: Component, args: [{
17
- selector: 'pb-padding',
18
- template: `
19
- <div class="group four">
20
- <mat-form-field appearance="outline">
21
- <mat-label i18n="Padding Settings|Padding Top">Top</mat-label>
22
- <input matInput type="number" min="0" step="1" (input)="markForCheck()" [(ngModel)]="padding.top" />
23
- </mat-form-field>
24
- <mat-form-field appearance="outline">
25
- <mat-label i18n="Padding Settings|Padding Right">Right</mat-label>
26
- <input matInput type="number" min="0" step="1" (input)="markForCheck()" [(ngModel)]="padding.right" />
27
- </mat-form-field>
28
- <mat-form-field appearance="outline">
29
- <mat-label i18n="Padding Settings|Padding Bottom">Bottom</mat-label>
30
- <input matInput type="number" min="0" step="1" (input)="markForCheck()" [(ngModel)]="padding.bottom" />
31
- </mat-form-field>
32
- <mat-form-field appearance="outline">
33
- <mat-label i18n="Padding Settings|Padding Left">Left</mat-label>
34
- <input matInput type="number" min="0" step="1" (input)="markForCheck()" [(ngModel)]="padding.left" />
35
- </mat-form-field>
36
- </div>
37
- `,
38
- changeDetection: ChangeDetectionStrategy.OnPush,
39
- styles: [`
40
- :host {
41
- display: block;
42
- width: 100%;
43
- }
44
- `]
45
- },] }
46
- ];
47
- PaddingComponent.ctorParameters = () => [
48
- { type: PbEmailObjectStoreService }
49
- ];
50
- PaddingComponent.propDecorators = {
51
- padding: [{ type: Input }]
52
- };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9ncm91cHMvcGFkZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQWtDdEgsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUFvQixXQUFzQztRQUF0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7SUFBRyxDQUFDO0lBRTlELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xDLENBQUM7OztZQXZDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtnQkFTRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTt5QkFQN0M7Ozs7O0tBS0M7YUFHSjs7O1lBakNRLHlCQUF5Qjs7O3NCQW1DL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgUG9idWNhLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBhZGRpbmcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ludGVybmFscy9wYi1lbWFpbC1vYmplY3Qtc3RvcmUvcGItZW1haWwtb2JqZWN0LXN0b3JlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwYi1wYWRkaW5nJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAgZm91clwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj1cIlBhZGRpbmcgU2V0dGluZ3N8UGFkZGluZyBUb3BcIj5Ub3A8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgc3RlcD1cIjFcIiAoaW5wdXQpPVwibWFya0ZvckNoZWNrKClcIiBbKG5nTW9kZWwpXT1cInBhZGRpbmcudG9wXCIgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiUGFkZGluZyBTZXR0aW5nc3xQYWRkaW5nIFJpZ2h0XCI+UmlnaHQ8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgc3RlcD1cIjFcIiAoaW5wdXQpPVwibWFya0ZvckNoZWNrKClcIiBbKG5nTW9kZWwpXT1cInBhZGRpbmcucmlnaHRcIiAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJQYWRkaW5nIFNldHRpbmdzfFBhZGRpbmcgQm90dG9tXCI+Qm90dG9tPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIHN0ZXA9XCIxXCIgKGlucHV0KT1cIm1hcmtGb3JDaGVjaygpXCIgWyhuZ01vZGVsKV09XCJwYWRkaW5nLmJvdHRvbVwiIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj1cIlBhZGRpbmcgU2V0dGluZ3N8UGFkZGluZyBMZWZ0XCI+TGVmdDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBzdGVwPVwiMVwiIChpbnB1dCk9XCJtYXJrRm9yQ2hlY2soKVwiIFsobmdNb2RlbCldPVwicGFkZGluZy5sZWZ0XCIgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIGBcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGFkZGluZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHBhZGRpbmc6IElQYWRkaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZW1haWxPYmplY3Q6IFBiRW1haWxPYmplY3RTdG9yZVNlcnZpY2UpIHt9XG5cbiAgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuZW1haWxPYmplY3QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiJdfQ==
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
6
+ import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
7
+ export class PaddingComponent {
8
+ constructor(emailObject) {
9
+ this.emailObject = emailObject;
10
+ }
11
+ markForCheck() {
12
+ this.emailObject.markForCheck();
13
+ }
14
+ }
15
+ PaddingComponent.decorators = [
16
+ { type: Component, args: [{
17
+ selector: 'pb-padding',
18
+ template: `
19
+ <div class="group four">
20
+ <mat-form-field appearance="outline">
21
+ <mat-label i18n="Padding Settings|Padding Top">Top</mat-label>
22
+ <input matInput type="number" min="0" step="1" (input)="markForCheck()" [(ngModel)]="padding.top" />
23
+ </mat-form-field>
24
+ <mat-form-field appearance="outline">
25
+ <mat-label i18n="Padding Settings|Padding Right">Right</mat-label>
26
+ <input matInput type="number" min="0" step="1" (input)="markForCheck()" [(ngModel)]="padding.right" />
27
+ </mat-form-field>
28
+ <mat-form-field appearance="outline">
29
+ <mat-label i18n="Padding Settings|Padding Bottom">Bottom</mat-label>
30
+ <input matInput type="number" min="0" step="1" (input)="markForCheck()" [(ngModel)]="padding.bottom" />
31
+ </mat-form-field>
32
+ <mat-form-field appearance="outline">
33
+ <mat-label i18n="Padding Settings|Padding Left">Left</mat-label>
34
+ <input matInput type="number" min="0" step="1" (input)="markForCheck()" [(ngModel)]="padding.left" />
35
+ </mat-form-field>
36
+ </div>
37
+ `,
38
+ changeDetection: ChangeDetectionStrategy.OnPush,
39
+ styles: [`
40
+ :host {
41
+ display: block;
42
+ width: 100%;
43
+ }
44
+ `]
45
+ },] }
46
+ ];
47
+ PaddingComponent.ctorParameters = () => [
48
+ { type: PbEmailObjectStoreService }
49
+ ];
50
+ PaddingComponent.propDecorators = {
51
+ padding: [{ type: Input }]
52
+ };
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9ncm91cHMvcGFkZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQWtDdEgsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUFvQixXQUFzQztRQUF0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7SUFBRyxDQUFDO0lBRTlELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xDLENBQUM7OztZQXZDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtnQkFTRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTt5QkFQN0M7Ozs7O0tBS0M7YUFHSjs7O1lBakNRLHlCQUF5Qjs7O3NCQW1DL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSVBhZGRpbmcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQYkVtYWlsT2JqZWN0U3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaW50ZXJuYWxzL3BiLWVtYWlsLW9iamVjdC1zdG9yZS9wYi1lbWFpbC1vYmplY3Qtc3RvcmUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BiLXBhZGRpbmcnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAgZm91clwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJQYWRkaW5nIFNldHRpbmdzfFBhZGRpbmcgVG9wXCI+VG9wPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgc3RlcD1cIjFcIiAoaW5wdXQpPVwibWFya0ZvckNoZWNrKClcIiBbKG5nTW9kZWwpXT1cInBhZGRpbmcudG9wXCIgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiUGFkZGluZyBTZXR0aW5nc3xQYWRkaW5nIFJpZ2h0XCI+UmlnaHQ8L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBzdGVwPVwiMVwiIChpbnB1dCk9XCJtYXJrRm9yQ2hlY2soKVwiIFsobmdNb2RlbCldPVwicGFkZGluZy5yaWdodFwiIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj1cIlBhZGRpbmcgU2V0dGluZ3N8UGFkZGluZyBCb3R0b21cIj5Cb3R0b208L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBzdGVwPVwiMVwiIChpbnB1dCk9XCJtYXJrRm9yQ2hlY2soKVwiIFsobmdNb2RlbCldPVwicGFkZGluZy5ib3R0b21cIiAvPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJQYWRkaW5nIFNldHRpbmdzfFBhZGRpbmcgTGVmdFwiPkxlZnQ8L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBzdGVwPVwiMVwiIChpbnB1dCk9XCJtYXJrRm9yQ2hlY2soKVwiIFsobmdNb2RlbCldPVwicGFkZGluZy5sZWZ0XCIgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgXHJcbiAgICAgIDpob3N0IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgYFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZGRpbmdDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHBhZGRpbmc6IElQYWRkaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVtYWlsT2JqZWN0OiBQYkVtYWlsT2JqZWN0U3RvcmVTZXJ2aWNlKSB7fVxyXG5cclxuICBtYXJrRm9yQ2hlY2soKSB7XHJcbiAgICB0aGlzLmVtYWlsT2JqZWN0Lm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,112 +1,112 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import { __awaiter } from "tslib";
6
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
7
- import { Subject } from 'rxjs';
8
- import { PbUserImageUploaderService } from '../services/user-image-uploader-service/user-image-uploader.service';
9
- import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
10
- export class ImageUploadComponent {
11
- constructor(imageUpload, emailObject) {
12
- this.imageUpload = imageUpload;
13
- this.emailObject = emailObject;
14
- this.key = 'src';
15
- this.browsing = new Subject();
16
- }
17
- get source() {
18
- return this.block[this.key];
19
- }
20
- set source(value) {
21
- this.block[this.key] = value;
22
- }
23
- markForCheck() {
24
- this.emailObject.markForCheck();
25
- }
26
- browse() {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- this.browsing.next(true);
29
- try {
30
- const path = yield this.imageUpload.browse$().toPromise();
31
- if (path) {
32
- this.source = path;
33
- this.emailObject.markForCheck();
34
- }
35
- }
36
- finally {
37
- this.browsing.next(false);
38
- }
39
- });
40
- }
41
- ngOnInit() {
42
- this.source = this.block.src || this.block.url;
43
- }
44
- }
45
- ImageUploadComponent.decorators = [
46
- { type: Component, args: [{
47
- selector: 'pb-image-upload',
48
- template: `
49
- <div fxLayout fxLayoutAlign="space-between center">
50
- <div class="image-info" [fxFlex]="source ? '30%' : '60%'" fxLayout fxLayoutGap="0.5em" fxLayoutAlign="center center">
51
- <div *ngIf="source" class="chose-image">
52
- <img [src]="source" alt="image source" />
53
- </div>
54
- <span *ngIf="!source" style="width: 100%;" i18n="Upload Image Settings|Upload an image"> Upload an image </span>
55
- </div>
56
- <button
57
- type="button"
58
- (click)="browse()"
59
- [disabled]="browsing | async"
60
- color="primary"
61
- mat-stroked-button
62
- i18n="Upload Image Settings|Browse"
63
- >
64
- Browse
65
- </button>
66
- </div>
67
- <mat-form-field appearance="outline" style="width: 100%">
68
- <mat-label i18n="Upload Image Settings|Image Source">Image Source</mat-label>
69
- <input matInput [(ngModel)]="source" type="url" (input)="markForCheck()" />
70
- </mat-form-field>
71
- `,
72
- changeDetection: ChangeDetectionStrategy.OnPush,
73
- styles: [`
74
- :host {
75
- display: block;
76
- }
77
-
78
- .chose-image {
79
- width: 100%;
80
- max-height: 60px;
81
- overflow: hidden;
82
- border-radius: 3px;
83
- line-height: 0;
84
- }
85
-
86
- .chose-image img {
87
- width: 100%;
88
- height: 60px;
89
- object-fit: cover;
90
- object-position: center;
91
- }
92
-
93
- .size {
94
- font-size: 80%;
95
- color: #ccc;
96
- }
97
-
98
- mat-form-field {
99
- margin-top: 0.5rem;
100
- }
101
- `]
102
- },] }
103
- ];
104
- ImageUploadComponent.ctorParameters = () => [
105
- { type: PbUserImageUploaderService },
106
- { type: PbEmailObjectStoreService }
107
- ];
108
- ImageUploadComponent.propDecorators = {
109
- block: [{ type: Input }],
110
- key: [{ type: Input }]
111
- };
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL2dyb3Vwcy91cGxvYWQtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFFakgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUE4RHRILE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsWUFBb0IsV0FBdUMsRUFBVSxXQUFzQztRQUF2RixnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7UUFIbEcsUUFBRyxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVxRixDQUFDO0lBRS9HLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUssTUFBTTs7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJO2dCQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDMUQsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ2pDO2FBQ0Y7b0JBQVM7Z0JBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDO0tBQUE7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBZ0IsSUFBSSxDQUFDLEtBQU0sQ0FBQyxHQUFHLElBQWtCLElBQUksQ0FBQyxLQUFNLENBQUMsR0FBRyxDQUFDO0lBQzlFLENBQUM7OztZQTdGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFnQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07eUJBdEQ3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTRCQzthQTJCSjs7O1lBL0RRLDBCQUEwQjtZQUUxQix5QkFBeUI7OztvQkErRC9CLEtBQUs7a0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgUG9idWNhLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFBiVXNlckltYWdlVXBsb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdXNlci1pbWFnZS11cGxvYWRlci1zZXJ2aWNlL3VzZXItaW1hZ2UtdXBsb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJbWFnZUJsb2NrIH0gZnJvbSAnLi4vY2xhc3Nlcy9FbGVtZW50cyc7XG5pbXBvcnQgeyBQYkVtYWlsT2JqZWN0U3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaW50ZXJuYWxzL3BiLWVtYWlsLW9iamVjdC1zdG9yZS9wYi1lbWFpbC1vYmplY3Qtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBJQmFja2dyb3VuZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BiLWltYWdlLXVwbG9hZCcsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5jaG9zZS1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiA2MHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hvc2UtaW1hZ2UgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuc2l6ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgIH1cblxuICAgICAgbWF0LWZvcm0tZmllbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICB9XG4gICAgYFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtaW5mb1wiIFtmeEZsZXhdPVwic291cmNlID8gJzMwJScgOiAnNjAlJ1wiIGZ4TGF5b3V0IGZ4TGF5b3V0R2FwPVwiMC41ZW1cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic291cmNlXCIgY2xhc3M9XCJjaG9zZS1pbWFnZVwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJzb3VyY2VcIiBhbHQ9XCJpbWFnZSBzb3VyY2VcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhc291cmNlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBpMThuPVwiVXBsb2FkIEltYWdlIFNldHRpbmdzfFVwbG9hZCBhbiBpbWFnZVwiPiBVcGxvYWQgYW4gaW1hZ2UgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiYnJvd3NlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYnJvd3NpbmcgfCBhc3luY1wiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICBpMThuPVwiVXBsb2FkIEltYWdlIFNldHRpbmdzfEJyb3dzZVwiXG4gICAgICA+XG4gICAgICAgIEJyb3dzZVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgICAgPG1hdC1sYWJlbCBpMThuPVwiVXBsb2FkIEltYWdlIFNldHRpbmdzfEltYWdlIFNvdXJjZVwiPkltYWdlIFNvdXJjZTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwic291cmNlXCIgdHlwZT1cInVybFwiIChpbnB1dCk9XCJtYXJrRm9yQ2hlY2soKVwiIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBibG9jazogSW1hZ2VCbG9jayB8IElCYWNrZ3JvdW5kO1xuICBASW5wdXQoKSBrZXkgPSAnc3JjJztcbiAgYnJvd3NpbmcgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW1hZ2VVcGxvYWQ6IFBiVXNlckltYWdlVXBsb2FkZXJTZXJ2aWNlLCBwcml2YXRlIGVtYWlsT2JqZWN0OiBQYkVtYWlsT2JqZWN0U3RvcmVTZXJ2aWNlKSB7fVxuXG4gIGdldCBzb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmxvY2tbdGhpcy5rZXldO1xuICB9XG5cbiAgc2V0IHNvdXJjZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5ibG9ja1t0aGlzLmtleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmVtYWlsT2JqZWN0Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgYnJvd3NlKCkge1xuICAgIHRoaXMuYnJvd3NpbmcubmV4dCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGF0aCA9IGF3YWl0IHRoaXMuaW1hZ2VVcGxvYWQuYnJvd3NlJCgpLnRvUHJvbWlzZSgpO1xuICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBwYXRoO1xuICAgICAgICB0aGlzLmVtYWlsT2JqZWN0Lm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmJyb3dzaW5nLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc291cmNlID0gKDxJbWFnZUJsb2NrPnRoaXMuYmxvY2spLnNyYyB8fCAoPElCYWNrZ3JvdW5kPnRoaXMuYmxvY2spLnVybDtcbiAgfVxufVxuIl19
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import { __awaiter } from "tslib";
6
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
7
+ import { Subject } from 'rxjs';
8
+ import { PbUserImageUploaderService } from '../services/user-image-uploader-service/user-image-uploader.service';
9
+ import { PbEmailObjectStoreService } from '../services/internals/pb-email-object-store/pb-email-object-store.service';
10
+ export class ImageUploadComponent {
11
+ constructor(imageUpload, emailObject) {
12
+ this.imageUpload = imageUpload;
13
+ this.emailObject = emailObject;
14
+ this.key = 'src';
15
+ this.browsing = new Subject();
16
+ }
17
+ get source() {
18
+ return this.block[this.key];
19
+ }
20
+ set source(value) {
21
+ this.block[this.key] = value;
22
+ }
23
+ markForCheck() {
24
+ this.emailObject.markForCheck();
25
+ }
26
+ browse() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ this.browsing.next(true);
29
+ try {
30
+ const path = yield this.imageUpload.browse$().toPromise();
31
+ if (path) {
32
+ this.source = path;
33
+ this.emailObject.markForCheck();
34
+ }
35
+ }
36
+ finally {
37
+ this.browsing.next(false);
38
+ }
39
+ });
40
+ }
41
+ ngOnInit() {
42
+ this.source = this.block.src || this.block.url;
43
+ }
44
+ }
45
+ ImageUploadComponent.decorators = [
46
+ { type: Component, args: [{
47
+ selector: 'pb-image-upload',
48
+ template: `
49
+ <div fxLayout fxLayoutAlign="space-between center">
50
+ <div class="image-info" [fxFlex]="source ? '30%' : '60%'" fxLayout fxLayoutGap="0.5em" fxLayoutAlign="center center">
51
+ <div *ngIf="source" class="chose-image">
52
+ <img [src]="source" alt="image source" />
53
+ </div>
54
+ <span *ngIf="!source" style="width: 100%;" i18n="Upload Image Settings|Upload an image"> Upload an image </span>
55
+ </div>
56
+ <button
57
+ type="button"
58
+ (click)="browse()"
59
+ [disabled]="browsing | async"
60
+ color="primary"
61
+ mat-stroked-button
62
+ i18n="Upload Image Settings|Browse"
63
+ >
64
+ Browse
65
+ </button>
66
+ </div>
67
+ <mat-form-field appearance="outline" style="width: 100%">
68
+ <mat-label i18n="Upload Image Settings|Image Source">Image Source</mat-label>
69
+ <input matInput [(ngModel)]="source" type="url" (input)="markForCheck()" />
70
+ </mat-form-field>
71
+ `,
72
+ changeDetection: ChangeDetectionStrategy.OnPush,
73
+ styles: [`
74
+ :host {
75
+ display: block;
76
+ }
77
+
78
+ .chose-image {
79
+ width: 100%;
80
+ max-height: 60px;
81
+ overflow: hidden;
82
+ border-radius: 3px;
83
+ line-height: 0;
84
+ }
85
+
86
+ .chose-image img {
87
+ width: 100%;
88
+ height: 60px;
89
+ object-fit: cover;
90
+ object-position: center;
91
+ }
92
+
93
+ .size {
94
+ font-size: 80%;
95
+ color: #ccc;
96
+ }
97
+
98
+ mat-form-field {
99
+ margin-top: 0.5rem;
100
+ }
101
+ `]
102
+ },] }
103
+ ];
104
+ ImageUploadComponent.ctorParameters = () => [
105
+ { type: PbUserImageUploaderService },
106
+ { type: PbEmailObjectStoreService }
107
+ ];
108
+ ImageUploadComponent.propDecorators = {
109
+ block: [{ type: Input }],
110
+ key: [{ type: Input }]
111
+ };
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL2dyb3Vwcy91cGxvYWQtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFFakgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUE4RHRILE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsWUFBb0IsV0FBdUMsRUFBVSxXQUFzQztRQUF2RixnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7UUFIbEcsUUFBRyxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVxRixDQUFDO0lBRS9HLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUssTUFBTTs7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJO2dCQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDMUQsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ2pDO2FBQ0Y7b0JBQVM7Z0JBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDO0tBQUE7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBZ0IsSUFBSSxDQUFDLEtBQU0sQ0FBQyxHQUFHLElBQWtCLElBQUksQ0FBQyxLQUFNLENBQUMsR0FBRyxDQUFDO0lBQzlFLENBQUM7OztZQTdGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFnQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07eUJBdEQ3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTRCQzthQTJCSjs7O1lBL0RRLDBCQUEwQjtZQUUxQix5QkFBeUI7OztvQkErRC9CLEtBQUs7a0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBQYlVzZXJJbWFnZVVwbG9hZGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXItaW1hZ2UtdXBsb2FkZXItc2VydmljZS91c2VyLWltYWdlLXVwbG9hZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbWFnZUJsb2NrIH0gZnJvbSAnLi4vY2xhc3Nlcy9FbGVtZW50cyc7XHJcbmltcG9ydCB7IFBiRW1haWxPYmplY3RTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbnRlcm5hbHMvcGItZW1haWwtb2JqZWN0LXN0b3JlL3BiLWVtYWlsLW9iamVjdC1zdG9yZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUJhY2tncm91bmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwYi1pbWFnZS11cGxvYWQnLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgICA6aG9zdCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jaG9zZS1pbWFnZSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWF4LWhlaWdodDogNjBweDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNob3NlLWltYWdlIGltZyB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2l6ZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiA4MCU7XHJcbiAgICAgICAgY29sb3I6ICNjY2M7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1hdC1mb3JtLWZpZWxkIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XHJcbiAgICAgIH1cclxuICAgIGBcclxuICBdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGZ4TGF5b3V0IGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtaW5mb1wiIFtmeEZsZXhdPVwic291cmNlID8gJzMwJScgOiAnNjAlJ1wiIGZ4TGF5b3V0IGZ4TGF5b3V0R2FwPVwiMC41ZW1cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzb3VyY2VcIiBjbGFzcz1cImNob3NlLWltYWdlXCI+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwic291cmNlXCIgYWx0PVwiaW1hZ2Ugc291cmNlXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFzb3VyY2VcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIGkxOG49XCJVcGxvYWQgSW1hZ2UgU2V0dGluZ3N8VXBsb2FkIGFuIGltYWdlXCI+IFVwbG9hZCBhbiBpbWFnZSA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cImJyb3dzZSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiYnJvd3NpbmcgfCBhc3luY1wiXHJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICBpMThuPVwiVXBsb2FkIEltYWdlIFNldHRpbmdzfEJyb3dzZVwiXHJcbiAgICAgID5cclxuICAgICAgICBCcm93c2VcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgPG1hdC1sYWJlbCBpMThuPVwiVXBsb2FkIEltYWdlIFNldHRpbmdzfEltYWdlIFNvdXJjZVwiPkltYWdlIFNvdXJjZTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJzb3VyY2VcIiB0eXBlPVwidXJsXCIgKGlucHV0KT1cIm1hcmtGb3JDaGVjaygpXCIgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGJsb2NrOiBJbWFnZUJsb2NrIHwgSUJhY2tncm91bmQ7XHJcbiAgQElucHV0KCkga2V5ID0gJ3NyYyc7XHJcbiAgYnJvd3NpbmcgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGltYWdlVXBsb2FkOiBQYlVzZXJJbWFnZVVwbG9hZGVyU2VydmljZSwgcHJpdmF0ZSBlbWFpbE9iamVjdDogUGJFbWFpbE9iamVjdFN0b3JlU2VydmljZSkge31cclxuXHJcbiAgZ2V0IHNvdXJjZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmJsb2NrW3RoaXMua2V5XTtcclxuICB9XHJcblxyXG4gIHNldCBzb3VyY2UodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5ibG9ja1t0aGlzLmtleV0gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG1hcmtGb3JDaGVjaygpIHtcclxuICAgIHRoaXMuZW1haWxPYmplY3QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBicm93c2UoKSB7XHJcbiAgICB0aGlzLmJyb3dzaW5nLm5leHQodHJ1ZSk7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBwYXRoID0gYXdhaXQgdGhpcy5pbWFnZVVwbG9hZC5icm93c2UkKCkudG9Qcm9taXNlKCk7XHJcbiAgICAgIGlmIChwYXRoKSB7XHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBwYXRoO1xyXG4gICAgICAgIHRoaXMuZW1haWxPYmplY3QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMuYnJvd3NpbmcubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc291cmNlID0gKDxJbWFnZUJsb2NrPnRoaXMuYmxvY2spLnNyYyB8fCAoPElCYWNrZ3JvdW5kPnRoaXMuYmxvY2spLnVybDtcclxuICB9XHJcbn1cclxuIl19