@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,26 +1,26 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import { Injectable } from '@angular/core';
6
- /**
7
- * A service that must be extended in case you want to rewrite the default
8
- * uploading process. In case you have a Regular License, you'll get a simple upload
9
- * service, for any other paid Licenses - you get an Image Gallery.
10
- *
11
- * It won't work if you have a Regular/Free License - you'll get an error on running the project,
12
- * you need either an [Extended or Commercial License]{@link https://wlocalhost.org} key for this purpose.
13
- *
14
- * @example
15
- * // Create a custom service
16
- * class YourOwnUploaderService extends PbUserImageUploaderService {}
17
- *
18
- * // Rewrite it into AppModule
19
- * { provide: PbUserImageUploaderService, useClass: YourOwnUploaderService }
20
- */
21
- export class PbUserImageUploaderService {
22
- }
23
- PbUserImageUploaderService.decorators = [
24
- { type: Injectable }
25
- ];
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbWFnZS11cGxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3VzZXItaW1hZ2UtdXBsb2FkZXItc2VydmljZS91c2VyLWltYWdlLXVwbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE1BQU0sT0FBZ0IsMEJBQTBCOzs7WUFEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgUG9idWNhLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIHRoYXQgbXVzdCBiZSBleHRlbmRlZCBpbiBjYXNlIHlvdSB3YW50IHRvIHJld3JpdGUgdGhlIGRlZmF1bHRcbiAqIHVwbG9hZGluZyBwcm9jZXNzLiBJbiBjYXNlIHlvdSBoYXZlIGEgUmVndWxhciBMaWNlbnNlLCB5b3UnbGwgZ2V0IGEgc2ltcGxlIHVwbG9hZFxuICogc2VydmljZSwgZm9yIGFueSBvdGhlciBwYWlkIExpY2Vuc2VzIC0geW91IGdldCBhbiBJbWFnZSBHYWxsZXJ5LlxuICpcbiAqIEl0IHdvbid0IHdvcmsgaWYgeW91IGhhdmUgYSBSZWd1bGFyL0ZyZWUgTGljZW5zZSAtIHlvdSdsbCBnZXQgYW4gZXJyb3Igb24gcnVubmluZyB0aGUgcHJvamVjdCxcbiAqIHlvdSBuZWVkIGVpdGhlciBhbiBbRXh0ZW5kZWQgb3IgQ29tbWVyY2lhbCBMaWNlbnNlXXtAbGluayBodHRwczovL3dsb2NhbGhvc3Qub3JnfSBrZXkgZm9yIHRoaXMgcHVycG9zZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGEgY3VzdG9tIHNlcnZpY2VcbiAqIGNsYXNzIFlvdXJPd25VcGxvYWRlclNlcnZpY2UgZXh0ZW5kcyBQYlVzZXJJbWFnZVVwbG9hZGVyU2VydmljZSB7fVxuICpcbiAqIC8vIFJld3JpdGUgaXQgaW50byBBcHBNb2R1bGVcbiAqIHsgcHJvdmlkZTogUGJVc2VySW1hZ2VVcGxvYWRlclNlcnZpY2UsIHVzZUNsYXNzOiBZb3VyT3duVXBsb2FkZXJTZXJ2aWNlIH1cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBiVXNlckltYWdlVXBsb2FkZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEEgbWV0aG9kIGNhbGxlZCBvbmNlIGVuZCB1c2VyIGludGVuZHMgdG8gdXBsb2FkIGFuIGltYWdlLlxuICAgKiBJdCBtdXN0IHJldHVybnMgYWx3YXlzIGFuIGBPYnNlcnZhYmxlPHN0cmluZz5gIC0gd2hlcmUgYHN0cmluZ2AgaXMgdGhlIHVwbG9hZGVkXG4gICAqIGltYWdlIHBhdGguXG4gICAqXG4gICAqIEByZXR1cm4gVXBsb2FkZWQgaW1hZ2UgcGF0aC5cbiAgICovXG4gIGFic3RyYWN0IGJyb3dzZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xufVxuIl19
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import { Injectable } from '@angular/core';
6
+ /**
7
+ * A service that must be extended in case you want to rewrite the default
8
+ * uploading process. In case you have a Regular License, you'll get a simple upload
9
+ * service, for any other paid Licenses - you get an Image Gallery.
10
+ *
11
+ * It won't work if you have a Regular/Free License - you'll get an error on running the project,
12
+ * you need either an [Extended or Commercial License]{@link https://wlocalhost.org} key for this purpose.
13
+ *
14
+ * @example
15
+ * // Create a custom service
16
+ * class YourOwnUploaderService extends PbUserImageUploaderService {}
17
+ *
18
+ * // Rewrite it into AppModule
19
+ * { provide: PbUserImageUploaderService, useClass: YourOwnUploaderService }
20
+ */
21
+ export class PbUserImageUploaderService {
22
+ }
23
+ PbUserImageUploaderService.decorators = [
24
+ { type: Injectable }
25
+ ];
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbWFnZS11cGxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGItZW1haWwtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3VzZXItaW1hZ2UtdXBsb2FkZXItc2VydmljZS91c2VyLWltYWdlLXVwbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE1BQU0sT0FBZ0IsMEJBQTBCOzs7WUFEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogQSBzZXJ2aWNlIHRoYXQgbXVzdCBiZSBleHRlbmRlZCBpbiBjYXNlIHlvdSB3YW50IHRvIHJld3JpdGUgdGhlIGRlZmF1bHRcclxuICogdXBsb2FkaW5nIHByb2Nlc3MuIEluIGNhc2UgeW91IGhhdmUgYSBSZWd1bGFyIExpY2Vuc2UsIHlvdSdsbCBnZXQgYSBzaW1wbGUgdXBsb2FkXHJcbiAqIHNlcnZpY2UsIGZvciBhbnkgb3RoZXIgcGFpZCBMaWNlbnNlcyAtIHlvdSBnZXQgYW4gSW1hZ2UgR2FsbGVyeS5cclxuICpcclxuICogSXQgd29uJ3Qgd29yayBpZiB5b3UgaGF2ZSBhIFJlZ3VsYXIvRnJlZSBMaWNlbnNlIC0geW91J2xsIGdldCBhbiBlcnJvciBvbiBydW5uaW5nIHRoZSBwcm9qZWN0LFxyXG4gKiB5b3UgbmVlZCBlaXRoZXIgYW4gW0V4dGVuZGVkIG9yIENvbW1lcmNpYWwgTGljZW5zZV17QGxpbmsgaHR0cHM6Ly93bG9jYWxob3N0Lm9yZ30ga2V5IGZvciB0aGlzIHB1cnBvc2UuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIC8vIENyZWF0ZSBhIGN1c3RvbSBzZXJ2aWNlXHJcbiAqIGNsYXNzIFlvdXJPd25VcGxvYWRlclNlcnZpY2UgZXh0ZW5kcyBQYlVzZXJJbWFnZVVwbG9hZGVyU2VydmljZSB7fVxyXG4gKlxyXG4gKiAvLyBSZXdyaXRlIGl0IGludG8gQXBwTW9kdWxlXHJcbiAqIHsgcHJvdmlkZTogUGJVc2VySW1hZ2VVcGxvYWRlclNlcnZpY2UsIHVzZUNsYXNzOiBZb3VyT3duVXBsb2FkZXJTZXJ2aWNlIH1cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBiVXNlckltYWdlVXBsb2FkZXJTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBBIG1ldGhvZCBjYWxsZWQgb25jZSBlbmQgdXNlciBpbnRlbmRzIHRvIHVwbG9hZCBhbiBpbWFnZS5cclxuICAgKiBJdCBtdXN0IHJldHVybnMgYWx3YXlzIGFuIGBPYnNlcnZhYmxlPHN0cmluZz5gIC0gd2hlcmUgYHN0cmluZ2AgaXMgdGhlIHVwbG9hZGVkXHJcbiAgICogaW1hZ2UgcGF0aC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4gVXBsb2FkZWQgaW1hZ2UgcGF0aC5cclxuICAgKi9cclxuICBhYnN0cmFjdCBicm93c2UkKCk6IE9ic2VydmFibGU8c3RyaW5nPjtcclxufVxyXG4iXX0=
@@ -1,31 +1,31 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import { iif, throwError } from 'rxjs';
6
- import { PbUserMiddlewaresService } from './pb-middlewares.service';
7
- import { deferOf } from '../../utils';
8
- /**
9
- * @ignore
10
- */
11
- const NOT_ALLOWED = 'This feature is disabled in free version.';
12
- /**
13
- * @internal
14
- */
15
- export default class FreeUsersMiddleware extends PbUserMiddlewaresService {
16
- constructor() {
17
- super();
18
- // tslint:disable-next-line: no-console
19
- console.warn('You use the Regular License of Angular Email Builder, some limitations are applied. More info on https://wlocalhost.org');
20
- }
21
- chooseTemplate() {
22
- throw new Error(NOT_ALLOWED);
23
- }
24
- exportFile(type) {
25
- return iif(() => type === 'json', deferOf(type), throwError(new Error(NOT_ALLOWED)));
26
- }
27
- importFile(file) {
28
- return iif(() => file.type === 'application/json', deferOf(file), throwError(new Error(NOT_ALLOWED)));
29
- }
30
- }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJlZVVzZXJzTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9GcmVlVXNlcnNNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBYyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx3QkFBd0IsRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLFdBQVcsR0FBRywyQ0FBMkMsQ0FBQztBQUNoRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0lBQ3ZFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUix1Q0FBdUM7UUFDdkMsT0FBTyxDQUFDLElBQUksQ0FBQyx5SEFBeUgsQ0FBQyxDQUFDO0lBQzFJLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWlCO1FBQzFCLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVO1FBQ25CLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIGlpZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2UsIFRFeHBvcnRUeXBlIH0gZnJvbSAnLi9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlJztcbmltcG9ydCB7IElVc2VyVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGVmZXJPZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbmNvbnN0IE5PVF9BTExPV0VEID0gJ1RoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBpbiBmcmVlIHZlcnNpb24uJztcbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyZWVVc2Vyc01pZGRsZXdhcmUgZXh0ZW5kcyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybignWW91IHVzZSB0aGUgUmVndWxhciBMaWNlbnNlIG9mIEFuZ3VsYXIgRW1haWwgQnVpbGRlciwgc29tZSBsaW1pdGF0aW9ucyBhcmUgYXBwbGllZC4gTW9yZSBpbmZvIG9uIGh0dHBzOi8vd2xvY2FsaG9zdC5vcmcnKTtcbiAgfVxuXG4gIGNob29zZVRlbXBsYXRlKCk6IE9ic2VydmFibGU8eyBjYXRlZ29yeTogc3RyaW5nOyB0ZW1wbGF0ZTogSVVzZXJUZW1wbGF0ZSB9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKE5PVF9BTExPV0VEKTtcbiAgfVxuXG4gIGV4cG9ydEZpbGUodHlwZTogVEV4cG9ydFR5cGUpOiBPYnNlcnZhYmxlPFRFeHBvcnRUeXBlPiB7XG4gICAgcmV0dXJuIGlpZigoKSA9PiB0eXBlID09PSAnanNvbicsIGRlZmVyT2YodHlwZSksIHRocm93RXJyb3IobmV3IEVycm9yKE5PVF9BTExPV0VEKSkpO1xuICB9XG5cbiAgaW1wb3J0RmlsZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxGaWxlPiB7XG4gICAgcmV0dXJuIGlpZigoKSA9PiBmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi9qc29uJywgZGVmZXJPZihmaWxlKSwgdGhyb3dFcnJvcihuZXcgRXJyb3IoTk9UX0FMTE9XRUQpKSk7XG4gIH1cbn1cbiJdfQ==
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import { iif, throwError } from 'rxjs';
6
+ import { PbUserMiddlewaresService } from './pb-middlewares.service';
7
+ import { deferOf } from '../../utils';
8
+ /**
9
+ * @ignore
10
+ */
11
+ const NOT_ALLOWED = 'This feature is disabled in free version.';
12
+ /**
13
+ * @internal
14
+ */
15
+ export default class FreeUsersMiddleware extends PbUserMiddlewaresService {
16
+ constructor() {
17
+ super();
18
+ // tslint:disable-next-line: no-console
19
+ console.warn('You use the Regular License of Angular Email Builder, some limitations are applied. More info on https://wlocalhost.org');
20
+ }
21
+ chooseTemplate() {
22
+ throw new Error(NOT_ALLOWED);
23
+ }
24
+ exportFile(type) {
25
+ return iif(() => type === 'json', deferOf(type), throwError(new Error(NOT_ALLOWED)));
26
+ }
27
+ importFile(file) {
28
+ return iif(() => file.type === 'application/json', deferOf(file), throwError(new Error(NOT_ALLOWED)));
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJlZVVzZXJzTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9GcmVlVXNlcnNNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBYyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx3QkFBd0IsRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLFdBQVcsR0FBRywyQ0FBMkMsQ0FBQztBQUNoRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0lBQ3ZFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUix1Q0FBdUM7UUFDdkMsT0FBTyxDQUFDLElBQUksQ0FBQyx5SEFBeUgsQ0FBQyxDQUFDO0lBQzFJLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWlCO1FBQzFCLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVO1FBQ25CLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBpaWYsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFBiVXNlck1pZGRsZXdhcmVzU2VydmljZSwgVEV4cG9ydFR5cGUgfSBmcm9tICcuL3BiLW1pZGRsZXdhcmVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJVXNlclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgZGVmZXJPZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5jb25zdCBOT1RfQUxMT1dFRCA9ICdUaGlzIGZlYXR1cmUgaXMgZGlzYWJsZWQgaW4gZnJlZSB2ZXJzaW9uLic7XHJcbi8qKlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyZWVVc2Vyc01pZGRsZXdhcmUgZXh0ZW5kcyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgY29uc29sZS53YXJuKCdZb3UgdXNlIHRoZSBSZWd1bGFyIExpY2Vuc2Ugb2YgQW5ndWxhciBFbWFpbCBCdWlsZGVyLCBzb21lIGxpbWl0YXRpb25zIGFyZSBhcHBsaWVkLiBNb3JlIGluZm8gb24gaHR0cHM6Ly93bG9jYWxob3N0Lm9yZycpO1xyXG4gIH1cclxuXHJcbiAgY2hvb3NlVGVtcGxhdGUoKTogT2JzZXJ2YWJsZTx7IGNhdGVnb3J5OiBzdHJpbmc7IHRlbXBsYXRlOiBJVXNlclRlbXBsYXRlIH0+IHtcclxuICAgIHRocm93IG5ldyBFcnJvcihOT1RfQUxMT1dFRCk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRGaWxlKHR5cGU6IFRFeHBvcnRUeXBlKTogT2JzZXJ2YWJsZTxURXhwb3J0VHlwZT4ge1xyXG4gICAgcmV0dXJuIGlpZigoKSA9PiB0eXBlID09PSAnanNvbicsIGRlZmVyT2YodHlwZSksIHRocm93RXJyb3IobmV3IEVycm9yKE5PVF9BTExPV0VEKSkpO1xyXG4gIH1cclxuXHJcbiAgaW1wb3J0RmlsZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxGaWxlPiB7XHJcbiAgICByZXR1cm4gaWlmKCgpID0+IGZpbGUudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nLCBkZWZlck9mKGZpbGUpLCB0aHJvd0Vycm9yKG5ldyBFcnJvcihOT1RfQUxMT1dFRCkpKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,12 +1,12 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import { PbUserMiddlewaresService } from './pb-middlewares.service';
6
- /**
7
- * @internal
8
- * No limitations are applied for Paid users
9
- */
10
- export default class PaidUsersMiddleware extends PbUserMiddlewaresService {
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFpZFVzZXJzTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9QYWlkVXNlcnNNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0NBQUciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IHsgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIH0gZnJvbSAnLi9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIE5vIGxpbWl0YXRpb25zIGFyZSBhcHBsaWVkIGZvciBQYWlkIHVzZXJzXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhaWRVc2Vyc01pZGRsZXdhcmUgZXh0ZW5kcyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2Uge31cbiJdfQ==
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import { PbUserMiddlewaresService } from './pb-middlewares.service';
6
+ /**
7
+ * @internal
8
+ * No limitations are applied for Paid users
9
+ */
10
+ export default class PaidUsersMiddleware extends PbUserMiddlewaresService {
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFpZFVzZXJzTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9QYWlkVXNlcnNNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0NBQUciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgUG9idWNhLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IFBiVXNlck1pZGRsZXdhcmVzU2VydmljZSB9IGZyb20gJy4vcGItbWlkZGxld2FyZXMuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGludGVybmFsXHJcbiAqIE5vIGxpbWl0YXRpb25zIGFyZSBhcHBsaWVkIGZvciBQYWlkIHVzZXJzXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWlkVXNlcnNNaWRkbGV3YXJlIGV4dGVuZHMgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIHt9XHJcbiJdfQ==
@@ -1,8 +1,8 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import FreeUsersMiddleware from './FreeUsersMiddleware';
6
- import PaidUsersMiddleware from './PaidUsersMiddleware';
7
- export { FreeUsersMiddleware, PaidUsersMiddleware };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYi1lbWFpbC1idWlsZGVyL3NyYy9saWIvc2VydmljZXMvdXNlci1taWRkbGV3YXJlLXNlcnZpY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxtQkFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLG1CQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCBGcmVlVXNlcnNNaWRkbGV3YXJlIGZyb20gJy4vRnJlZVVzZXJzTWlkZGxld2FyZSc7XG5pbXBvcnQgUGFpZFVzZXJzTWlkZGxld2FyZSBmcm9tICcuL1BhaWRVc2Vyc01pZGRsZXdhcmUnO1xuXG5leHBvcnQgeyBGcmVlVXNlcnNNaWRkbGV3YXJlLCBQYWlkVXNlcnNNaWRkbGV3YXJlIH07XG4iXX0=
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import FreeUsersMiddleware from './FreeUsersMiddleware';
6
+ import PaidUsersMiddleware from './PaidUsersMiddleware';
7
+ export { FreeUsersMiddleware, PaidUsersMiddleware };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYi1lbWFpbC1idWlsZGVyL3NyYy9saWIvc2VydmljZXMvdXNlci1taWRkbGV3YXJlLXNlcnZpY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxtQkFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLG1CQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG5pbXBvcnQgRnJlZVVzZXJzTWlkZGxld2FyZSBmcm9tICcuL0ZyZWVVc2Vyc01pZGRsZXdhcmUnO1xyXG5pbXBvcnQgUGFpZFVzZXJzTWlkZGxld2FyZSBmcm9tICcuL1BhaWRVc2Vyc01pZGRsZXdhcmUnO1xyXG5cclxuZXhwb3J0IHsgRnJlZVVzZXJzTWlkZGxld2FyZSwgUGFpZFVzZXJzTWlkZGxld2FyZSB9O1xyXG4iXX0=
@@ -1,195 +1,195 @@
1
- /*
2
- * Copyright (c) 2024 Pobuca.
3
- * All rights reserved.
4
- */
5
- import { Injectable } from '@angular/core';
6
- import { deferOf } from '../../utils';
7
- /**
8
- * This service allows you to control all your users' abilities within this builder. Lets say you want to implement user Roles or just
9
- * need to disable some functionality for certain users based on purchase plan or on something else. You can allow or disallow almost
10
- * everything.
11
- *
12
- * All the methods must return an Observable, so, in my opinion, that's the best part of this service, you can either return an
13
- * [EMPTY Observable]{@link https://rxjs.dev/api/index/const/EMPTY}, a modified object or an (Info Modal).pipe(mapTo(EMPTY)) - I think you
14
- * got the idea.
15
- *
16
- * I recommend always using a Modal or a Toast for forbidden actions.
17
- *
18
- * It won't work if you have a Regular/Free License - you'll get an error on running the project,
19
- * you need either an [Extended or Commercial License]{@link https://wlocalhost.org} key for this purpose.
20
- *
21
- * @example
22
- * // Create a custom service
23
- * class YourOwnMiddlewareService extends PbUserMiddlewaresService {}
24
- *
25
- * // Rewrite it into AppModule
26
- * { provide: PbUserMiddlewaresService, useClass: YourOwnMiddlewareService }
27
- */
28
- export class PbUserMiddlewaresService {
29
- /**
30
- * This method is called before sending the request to MJML Convertor. Use it to add some additional blocks or anything else to
31
- * the PBEmail object.
32
- * @param email PBEmail object that's being sent to MJML Convertor.
33
- */
34
- createHTMLTemplate(email) {
35
- return deferOf(email);
36
- }
37
- /**
38
- * Allow or Disallow preview window.
39
- * @param state Coming Preview state
40
- */
41
- togglePreview(state) {
42
- return deferOf(state);
43
- }
44
- /**
45
- * Allow or Disallow preview devices.
46
- * @param button Device's button that has been clicked
47
- */
48
- togglePreviewDevice(button) {
49
- return deferOf(button.value);
50
- }
51
- /**
52
- * Allow or disallow users to select certain templates based either on category or template object.
53
- * @param category Template's category user has selected
54
- * @param template Template user has selected
55
- */
56
- chooseTemplate(category, template) {
57
- return deferOf({ category, template });
58
- }
59
- /**
60
- * Allow, disallow or return the same path for all user's uploaded images.
61
- * @param path Path of uploaded image
62
- *
63
- * @TODO Check if this middleware is being called before image has been uploaded
64
- */
65
- uploadImage(path) {
66
- return deferOf(path);
67
- }
68
- /**
69
- * Allow or disallow users to add blocks within email structures.
70
- * @param event Event of dropped block
71
- * @param column Column that block has been dropped
72
- *
73
- * @TODO add parent structure as a parameter
74
- */
75
- addBlock(event, column) {
76
- return deferOf({ event, column });
77
- }
78
- /**
79
- * Prevent user to edit blocks within email body.
80
- * @param block Block that user intends to edit
81
- */
82
- editBlock(block) {
83
- return deferOf(block);
84
- }
85
- /**
86
- * Prevent user to remove blocks within email body.
87
- * @param index Block's Index
88
- * @param column Block's parent column
89
- * @param block Block that user intends to remove
90
- */
91
- removeBlock(index, column, block) {
92
- return deferOf({ index, column });
93
- }
94
- /**
95
- * Prevent user to duplicate blocks within email body.
96
- * @param index Block's Index
97
- * @param column Block's parent column
98
- * @param block Block that user intends to duplicate
99
- */
100
- duplicateBlock(index, column, block) {
101
- return deferOf({ index, column, block });
102
- }
103
- /**
104
- * Disable Drag and Drop certain blocks from Blocks list to Email body.
105
- * Return TRUE to disable all blocks - no matter on block's data.
106
- * @param block Block to allow or disallow from being dragged
107
- */
108
- disableBlockDragFromList(block) {
109
- return deferOf(false);
110
- }
111
- /**
112
- * Prevent users to sort blocks within email body.
113
- * @param block Block that user intends to change the order
114
- */
115
- disableBlockDragWithinEmailBody(block) {
116
- return deferOf(false);
117
- }
118
- /**
119
- * Prevent user to add new structure.
120
- * @param event Event of dropped structure
121
- */
122
- addStructure(event) {
123
- return deferOf(event);
124
- }
125
- /**
126
- * Prevent user to edit the structure.
127
- * @param structure Structure that user intends to edit
128
- */
129
- editStructure(structure) {
130
- return deferOf(structure);
131
- }
132
- /**
133
- * Prevent user to remove the structure.
134
- * @param index Index of the structure
135
- * @param structure Structure that user intends to remove
136
- */
137
- removeStructure(index, structure) {
138
- return deferOf(index);
139
- }
140
- /**
141
- * Prevent user to duplicate the structure within email body.
142
- * @param index Index of structure
143
- * @param structure Structure that user intends to duplicate
144
- */
145
- duplicateStructure(index, structure) {
146
- return deferOf(index);
147
- }
148
- /**
149
- * Disable Drag and Drop certain structures from Structures list to Email body.
150
- * Return TRUE to disable all structures.
151
- * @param structure Structure to prevent from being dragged
152
- */
153
- disableStructureDragFromList(structure) {
154
- return deferOf(false);
155
- }
156
- /**
157
- * Allow or disallow users to sort structures within email body.
158
- * @param structure Structure that user intends to change the order
159
- */
160
- disableStructureDragWithinEmailBody(structure) {
161
- return deferOf(false);
162
- }
163
- /**
164
- * I don't know why would you do that, but you can disable OnExit confirm modal.
165
- * @param event Window [BeforeUnloadEvent]{@link https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent}
166
- */
167
- preventWindowExit(event) {
168
- return deferOf(event);
169
- }
170
- /**
171
- * Allow or disallow user to export certain types of file
172
- * @param type Type that user intends to download
173
- */
174
- exportFile(type) {
175
- return deferOf(type);
176
- }
177
- /**
178
- * Allow or disallow user to import certain types of file
179
- * @param file Web APIs [FILE]{@link https://developer.mozilla.org/en-US/docs/Web/API/File}
180
- */
181
- importFile(file) {
182
- return deferOf(file);
183
- }
184
- /**
185
- * Catch all errors within email editor, it might not work 100%, it's still on working process.
186
- * @param error Throwable Error
187
- */
188
- catchError(error) {
189
- return deferOf(error);
190
- }
191
- }
192
- PbUserMiddlewaresService.decorators = [
193
- { type: Injectable }
194
- ];
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItbWlkZGxld2FyZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWlDdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsTUFBTSxPQUFnQix3QkFBd0I7SUFDNUM7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLEtBQWM7UUFDL0IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxLQUFjO1FBQzFCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxNQUE0QjtRQUM5QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsUUFBZ0IsRUFBRSxRQUF1QjtRQUN0RCxPQUFPLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQUMsS0FBcUIsRUFBRSxNQUFpQjtRQUMvQyxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBYztRQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsS0FBYSxFQUFFLE1BQWlCLEVBQUUsS0FBYztRQUMxRCxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBQyxLQUFhLEVBQUUsTUFBaUIsRUFBRSxLQUFjO1FBQzdELE9BQU8sT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsS0FBYztRQUNyQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsK0JBQStCLENBQUMsS0FBYztRQUM1QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQXlCO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsU0FBcUI7UUFDakMsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ2xELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsa0JBQWtCLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ3JELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNEJBQTRCLENBQUMsU0FBcUI7UUFDaEQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1DQUFtQyxDQUFDLFNBQXFCO1FBQ3ZELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxLQUF3QjtRQUN4QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQWlCO1FBQzFCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsSUFBVTtRQUNuQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQWdDO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OztZQXZMRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCBQb2J1Y2EuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJU3RydWN0dXJlLCBJVXNlclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRCbG9ja3MgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0VsZW1lbnRzJztcbmltcG9ydCB7IFBCRW1haWwgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0RlZmF1bHRFbWFpbCc7XG5pbXBvcnQgeyBUUHJldmlld0RldmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgZGVmZXJPZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLyoqXG4gKiBFbWFpbCBlZGl0b3IgZXhwb3J0IGZpbGUgdHlwZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRFeHBvcnRUeXBlID0gJ2h0bWwnIHwgJ2pzb24nIHwgJ21qbWwnO1xuXG4vKipcbiAqIEVtYWlsIGVkaXRvciBpbXBvcnQgZmlsZSB0eXBlcy4gJ21qbWwnIHR5cGUgaXMgdW5kZXIgZGV2ZWxvcG1lbnQgLSBkb24ndCB1c2UgaXQgeWV0LlxuICovXG5leHBvcnQgdHlwZSBUSW1wb3J0VHlwZSA9ICdqc29uJyB8ICdtam1sJztcblxuLyoqXG4gKiBBZGQgbmV3IFN0cnVjdHVyZSB3aXRoaW4gZW1haWwgYm9keSBldmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBZGRTdHJ1Y3R1cmVFdmVudCBleHRlbmRzIENka0RyYWdEcm9wPFNldDxJU3RydWN0dXJlPiwgU2V0PElTdHJ1Y3R1cmU+PiB7XG4gIGl0ZW06IENka0RyYWc8SVN0cnVjdHVyZT47XG59XG5cbi8qKlxuICogQWRkIG5ldyBCbG9jayB3aXRoaW4gc3RydWN0dXJlcycgY29sdW1ucyBldmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBZGRCbG9ja0V2ZW50IGV4dGVuZHMgQ2RrRHJhZ0Ryb3A8VEJsb2Nrc1tdLCBUQmxvY2tzW10+IHtcbiAgaXRlbTogQ2RrRHJhZzxUQmxvY2tzPjtcbn1cblxuLyoqXG4gKiBQcmV2aWV3IGRldmljZSBidXR0b25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVByZXZpZXdUb2dnbGVCdXR0b24gZXh0ZW5kcyBNYXRCdXR0b25Ub2dnbGVDaGFuZ2Uge1xuICB2YWx1ZTogVFByZXZpZXdEZXZpY2U7XG59XG5cbi8qKlxuICogVGhpcyBzZXJ2aWNlIGFsbG93cyB5b3UgdG8gY29udHJvbCBhbGwgeW91ciB1c2VycycgYWJpbGl0aWVzIHdpdGhpbiB0aGlzIGJ1aWxkZXIuIExldHMgc2F5IHlvdSB3YW50IHRvIGltcGxlbWVudCB1c2VyIFJvbGVzIG9yIGp1c3RcbiAqIG5lZWQgdG8gZGlzYWJsZSBzb21lIGZ1bmN0aW9uYWxpdHkgZm9yIGNlcnRhaW4gdXNlcnMgYmFzZWQgb24gcHVyY2hhc2UgcGxhbiBvciBvbiBzb21ldGhpbmcgZWxzZS4gWW91IGNhbiBhbGxvdyBvciBkaXNhbGxvdyBhbG1vc3RcbiAqIGV2ZXJ5dGhpbmcuXG4gKlxuICogQWxsIHRoZSBtZXRob2RzIG11c3QgcmV0dXJuIGFuIE9ic2VydmFibGUsIHNvLCBpbiBteSBvcGluaW9uLCB0aGF0J3MgdGhlIGJlc3QgcGFydCBvZiB0aGlzIHNlcnZpY2UsIHlvdSBjYW4gZWl0aGVyIHJldHVybiBhblxuICogW0VNUFRZIE9ic2VydmFibGVde0BsaW5rIGh0dHBzOi8vcnhqcy5kZXYvYXBpL2luZGV4L2NvbnN0L0VNUFRZfSwgYSBtb2RpZmllZCBvYmplY3Qgb3IgYW4gKEluZm8gTW9kYWwpLnBpcGUobWFwVG8oRU1QVFkpKSAtIEkgdGhpbmsgeW91XG4gKiBnb3QgdGhlIGlkZWEuXG4gKlxuICogSSByZWNvbW1lbmQgYWx3YXlzIHVzaW5nIGEgTW9kYWwgb3IgYSBUb2FzdCBmb3IgZm9yYmlkZGVuIGFjdGlvbnMuXG4gKlxuICogSXQgd29uJ3Qgd29yayBpZiB5b3UgaGF2ZSBhIFJlZ3VsYXIvRnJlZSBMaWNlbnNlIC0geW91J2xsIGdldCBhbiBlcnJvciBvbiBydW5uaW5nIHRoZSBwcm9qZWN0LFxuICogeW91IG5lZWQgZWl0aGVyIGFuIFtFeHRlbmRlZCBvciBDb21tZXJjaWFsIExpY2Vuc2Vde0BsaW5rIGh0dHBzOi8vd2xvY2FsaG9zdC5vcmd9IGtleSBmb3IgdGhpcyBwdXJwb3NlLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDcmVhdGUgYSBjdXN0b20gc2VydmljZVxuICogY2xhc3MgWW91ck93bk1pZGRsZXdhcmVTZXJ2aWNlIGV4dGVuZHMgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIHt9XG4gKlxuICogLy8gUmV3cml0ZSBpdCBpbnRvIEFwcE1vZHVsZVxuICogeyBwcm92aWRlOiBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2UsIHVzZUNsYXNzOiBZb3VyT3duTWlkZGxld2FyZVNlcnZpY2UgfVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGJVc2VyTWlkZGxld2FyZXNTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBiZWZvcmUgc2VuZGluZyB0aGUgcmVxdWVzdCB0byBNSk1MIENvbnZlcnRvci4gVXNlIGl0IHRvIGFkZCBzb21lIGFkZGl0aW9uYWwgYmxvY2tzIG9yIGFueXRoaW5nIGVsc2UgdG9cbiAgICogdGhlIFBCRW1haWwgb2JqZWN0LlxuICAgKiBAcGFyYW0gZW1haWwgUEJFbWFpbCBvYmplY3QgdGhhdCdzIGJlaW5nIHNlbnQgdG8gTUpNTCBDb252ZXJ0b3IuXG4gICAqL1xuICBjcmVhdGVIVE1MVGVtcGxhdGUoZW1haWw6IFBCRW1haWwpOiBPYnNlcnZhYmxlPFBCRW1haWw+IHtcbiAgICByZXR1cm4gZGVmZXJPZihlbWFpbCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgRGlzYWxsb3cgcHJldmlldyB3aW5kb3cuXG4gICAqIEBwYXJhbSBzdGF0ZSBDb21pbmcgUHJldmlldyBzdGF0ZVxuICAgKi9cbiAgdG9nZ2xlUHJldmlldyhzdGF0ZTogYm9vbGVhbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBkZWZlck9mKHN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvdyBvciBEaXNhbGxvdyBwcmV2aWV3IGRldmljZXMuXG4gICAqIEBwYXJhbSBidXR0b24gRGV2aWNlJ3MgYnV0dG9uIHRoYXQgaGFzIGJlZW4gY2xpY2tlZFxuICAgKi9cbiAgdG9nZ2xlUHJldmlld0RldmljZShidXR0b246IElQcmV2aWV3VG9nZ2xlQnV0dG9uKTogT2JzZXJ2YWJsZTxUUHJldmlld0RldmljZT4ge1xuICAgIHJldHVybiBkZWZlck9mKGJ1dHRvbi52YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlcnMgdG8gc2VsZWN0IGNlcnRhaW4gdGVtcGxhdGVzIGJhc2VkIGVpdGhlciBvbiBjYXRlZ29yeSBvciB0ZW1wbGF0ZSBvYmplY3QuXG4gICAqIEBwYXJhbSBjYXRlZ29yeSBUZW1wbGF0ZSdzIGNhdGVnb3J5IHVzZXIgaGFzIHNlbGVjdGVkXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSBUZW1wbGF0ZSB1c2VyIGhhcyBzZWxlY3RlZFxuICAgKi9cbiAgY2hvb3NlVGVtcGxhdGUoY2F0ZWdvcnk6IHN0cmluZywgdGVtcGxhdGU6IElVc2VyVGVtcGxhdGUpOiBPYnNlcnZhYmxlPHsgY2F0ZWdvcnk6IHN0cmluZzsgdGVtcGxhdGU6IElVc2VyVGVtcGxhdGUgfT4ge1xuICAgIHJldHVybiBkZWZlck9mKHsgY2F0ZWdvcnksIHRlbXBsYXRlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93LCBkaXNhbGxvdyBvciByZXR1cm4gdGhlIHNhbWUgcGF0aCBmb3IgYWxsIHVzZXIncyB1cGxvYWRlZCBpbWFnZXMuXG4gICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdXBsb2FkZWQgaW1hZ2VcbiAgICpcbiAgICogQFRPRE8gQ2hlY2sgaWYgdGhpcyBtaWRkbGV3YXJlIGlzIGJlaW5nIGNhbGxlZCBiZWZvcmUgaW1hZ2UgaGFzIGJlZW4gdXBsb2FkZWRcbiAgICovXG4gIHVwbG9hZEltYWdlKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGRlZmVyT2YocGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlcnMgdG8gYWRkIGJsb2NrcyB3aXRoaW4gZW1haWwgc3RydWN0dXJlcy5cbiAgICogQHBhcmFtIGV2ZW50IEV2ZW50IG9mIGRyb3BwZWQgYmxvY2tcbiAgICogQHBhcmFtIGNvbHVtbiBDb2x1bW4gdGhhdCBibG9jayBoYXMgYmVlbiBkcm9wcGVkXG4gICAqXG4gICAqIEBUT0RPIGFkZCBwYXJlbnQgc3RydWN0dXJlIGFzIGEgcGFyYW1ldGVyXG4gICAqL1xuICBhZGRCbG9jayhldmVudDogSUFkZEJsb2NrRXZlbnQsIGNvbHVtbjogVEJsb2Nrc1tdKTogT2JzZXJ2YWJsZTx7IGNvbHVtbjogVEJsb2Nrc1tdOyBldmVudDogSUFkZEJsb2NrRXZlbnQgfT4ge1xuICAgIHJldHVybiBkZWZlck9mKHsgZXZlbnQsIGNvbHVtbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXIgdG8gZWRpdCBibG9ja3Mgd2l0aGluIGVtYWlsIGJvZHkuXG4gICAqIEBwYXJhbSBibG9jayBCbG9jayB0aGF0IHVzZXIgaW50ZW5kcyB0byBlZGl0XG4gICAqL1xuICBlZGl0QmxvY2soYmxvY2s6IFRCbG9ja3MpOiBPYnNlcnZhYmxlPFRCbG9ja3M+IHtcbiAgICByZXR1cm4gZGVmZXJPZihibG9jayk7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCB1c2VyIHRvIHJlbW92ZSBibG9ja3Mgd2l0aGluIGVtYWlsIGJvZHkuXG4gICAqIEBwYXJhbSBpbmRleCBCbG9jaydzIEluZGV4XG4gICAqIEBwYXJhbSBjb2x1bW4gQmxvY2sncyBwYXJlbnQgY29sdW1uXG4gICAqIEBwYXJhbSBibG9jayBCbG9jayB0aGF0IHVzZXIgaW50ZW5kcyB0byByZW1vdmVcbiAgICovXG4gIHJlbW92ZUJsb2NrKGluZGV4OiBudW1iZXIsIGNvbHVtbjogVEJsb2Nrc1tdLCBibG9jazogVEJsb2Nrcyk6IE9ic2VydmFibGU8eyBpbmRleDogbnVtYmVyOyBjb2x1bW46IFRCbG9ja3NbXSB9PiB7XG4gICAgcmV0dXJuIGRlZmVyT2YoeyBpbmRleCwgY29sdW1uIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgdXNlciB0byBkdXBsaWNhdGUgYmxvY2tzIHdpdGhpbiBlbWFpbCBib2R5LlxuICAgKiBAcGFyYW0gaW5kZXggQmxvY2sncyBJbmRleFxuICAgKiBAcGFyYW0gY29sdW1uIEJsb2NrJ3MgcGFyZW50IGNvbHVtblxuICAgKiBAcGFyYW0gYmxvY2sgQmxvY2sgdGhhdCB1c2VyIGludGVuZHMgdG8gZHVwbGljYXRlXG4gICAqL1xuICBkdXBsaWNhdGVCbG9jayhpbmRleDogbnVtYmVyLCBjb2x1bW46IFRCbG9ja3NbXSwgYmxvY2s6IFRCbG9ja3MpOiBPYnNlcnZhYmxlPHsgaW5kZXg6IG51bWJlcjsgY29sdW1uOiBUQmxvY2tzW107IGJsb2NrOiBUQmxvY2tzIH0+IHtcbiAgICByZXR1cm4gZGVmZXJPZih7IGluZGV4LCBjb2x1bW4sIGJsb2NrIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgRHJhZyBhbmQgRHJvcCBjZXJ0YWluIGJsb2NrcyBmcm9tIEJsb2NrcyBsaXN0IHRvIEVtYWlsIGJvZHkuXG4gICAqIFJldHVybiBUUlVFIHRvIGRpc2FibGUgYWxsIGJsb2NrcyAtIG5vIG1hdHRlciBvbiBibG9jaydzIGRhdGEuXG4gICAqIEBwYXJhbSBibG9jayBCbG9jayB0byBhbGxvdyBvciBkaXNhbGxvdyBmcm9tIGJlaW5nIGRyYWdnZWRcbiAgICovXG4gIGRpc2FibGVCbG9ja0RyYWdGcm9tTGlzdChibG9jazogVEJsb2Nrcyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBkZWZlck9mKGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXJzIHRvIHNvcnQgYmxvY2tzIHdpdGhpbiBlbWFpbCBib2R5LlxuICAgKiBAcGFyYW0gYmxvY2sgQmxvY2sgdGhhdCB1c2VyIGludGVuZHMgdG8gY2hhbmdlIHRoZSBvcmRlclxuICAgKi9cbiAgZGlzYWJsZUJsb2NrRHJhZ1dpdGhpbkVtYWlsQm9keShibG9jazogVEJsb2Nrcyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBkZWZlck9mKGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXIgdG8gYWRkIG5ldyBzdHJ1Y3R1cmUuXG4gICAqIEBwYXJhbSBldmVudCBFdmVudCBvZiBkcm9wcGVkIHN0cnVjdHVyZVxuICAgKi9cbiAgYWRkU3RydWN0dXJlKGV2ZW50OiBJQWRkU3RydWN0dXJlRXZlbnQpOiBPYnNlcnZhYmxlPElBZGRTdHJ1Y3R1cmVFdmVudD4ge1xuICAgIHJldHVybiBkZWZlck9mKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXIgdG8gZWRpdCB0aGUgc3RydWN0dXJlLlxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0aGF0IHVzZXIgaW50ZW5kcyB0byBlZGl0XG4gICAqL1xuICBlZGl0U3RydWN0dXJlKHN0cnVjdHVyZTogSVN0cnVjdHVyZSk6IE9ic2VydmFibGU8SVN0cnVjdHVyZT4ge1xuICAgIHJldHVybiBkZWZlck9mKHN0cnVjdHVyZSk7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudCB1c2VyIHRvIHJlbW92ZSB0aGUgc3RydWN0dXJlLlxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHN0cnVjdHVyZVxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0aGF0IHVzZXIgaW50ZW5kcyB0byByZW1vdmVcbiAgICovXG4gIHJlbW92ZVN0cnVjdHVyZShpbmRleDogbnVtYmVyLCBzdHJ1Y3R1cmU6IElTdHJ1Y3R1cmUpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBkZWZlck9mKGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IHVzZXIgdG8gZHVwbGljYXRlIHRoZSBzdHJ1Y3R1cmUgd2l0aGluIGVtYWlsIGJvZHkuXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBzdHJ1Y3R1cmVcbiAgICogQHBhcmFtIHN0cnVjdHVyZSBTdHJ1Y3R1cmUgdGhhdCB1c2VyIGludGVuZHMgdG8gZHVwbGljYXRlXG4gICAqL1xuICBkdXBsaWNhdGVTdHJ1Y3R1cmUoaW5kZXg6IG51bWJlciwgc3RydWN0dXJlOiBJU3RydWN0dXJlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gZGVmZXJPZihpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBEcmFnIGFuZCBEcm9wIGNlcnRhaW4gc3RydWN0dXJlcyBmcm9tIFN0cnVjdHVyZXMgbGlzdCB0byBFbWFpbCBib2R5LlxuICAgKiBSZXR1cm4gVFJVRSB0byBkaXNhYmxlIGFsbCBzdHJ1Y3R1cmVzLlxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0byBwcmV2ZW50IGZyb20gYmVpbmcgZHJhZ2dlZFxuICAgKi9cbiAgZGlzYWJsZVN0cnVjdHVyZURyYWdGcm9tTGlzdChzdHJ1Y3R1cmU6IElTdHJ1Y3R1cmUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZGVmZXJPZihmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlcnMgdG8gc29ydCBzdHJ1Y3R1cmVzIHdpdGhpbiBlbWFpbCBib2R5LlxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0aGF0IHVzZXIgaW50ZW5kcyB0byBjaGFuZ2UgdGhlIG9yZGVyXG4gICAqL1xuICBkaXNhYmxlU3RydWN0dXJlRHJhZ1dpdGhpbkVtYWlsQm9keShzdHJ1Y3R1cmU6IElTdHJ1Y3R1cmUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZGVmZXJPZihmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogSSBkb24ndCBrbm93IHdoeSB3b3VsZCB5b3UgZG8gdGhhdCwgYnV0IHlvdSBjYW4gZGlzYWJsZSBPbkV4aXQgY29uZmlybSBtb2RhbC5cbiAgICogQHBhcmFtIGV2ZW50IFdpbmRvdyBbQmVmb3JlVW5sb2FkRXZlbnRde0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9CZWZvcmVVbmxvYWRFdmVudH1cbiAgICovXG4gIHByZXZlbnRXaW5kb3dFeGl0KGV2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCk6IE9ic2VydmFibGU8QmVmb3JlVW5sb2FkRXZlbnQ+IHtcbiAgICByZXR1cm4gZGVmZXJPZihldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlciB0byBleHBvcnQgY2VydGFpbiB0eXBlcyBvZiBmaWxlXG4gICAqIEBwYXJhbSB0eXBlIFR5cGUgdGhhdCB1c2VyIGludGVuZHMgdG8gZG93bmxvYWRcbiAgICovXG4gIGV4cG9ydEZpbGUodHlwZTogVEV4cG9ydFR5cGUpOiBPYnNlcnZhYmxlPFRFeHBvcnRUeXBlPiB7XG4gICAgcmV0dXJuIGRlZmVyT2YodHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlciB0byBpbXBvcnQgY2VydGFpbiB0eXBlcyBvZiBmaWxlXG4gICAqIEBwYXJhbSBmaWxlIFdlYiBBUElzIFtGSUxFXXtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZX1cbiAgICovXG4gIGltcG9ydEZpbGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8RmlsZT4ge1xuICAgIHJldHVybiBkZWZlck9mKGZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhdGNoIGFsbCBlcnJvcnMgd2l0aGluIGVtYWlsIGVkaXRvciwgaXQgbWlnaHQgbm90IHdvcmsgMTAwJSwgaXQncyBzdGlsbCBvbiB3b3JraW5nIHByb2Nlc3MuXG4gICAqIEBwYXJhbSBlcnJvciBUaHJvd2FibGUgRXJyb3JcbiAgICovXG4gIGNhdGNoRXJyb3IoZXJyb3I6IEVycm9yIHwgSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPEVycm9yIHwgSHR0cEVycm9yUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gZGVmZXJPZihlcnJvcik7XG4gIH1cbn1cbiJdfQ==
1
+ /*
2
+ * Copyright (c) 2024 Pobuca.
3
+ * All rights reserved.
4
+ */
5
+ import { Injectable } from '@angular/core';
6
+ import { deferOf } from '../../utils';
7
+ /**
8
+ * This service allows you to control all your users' abilities within this builder. Lets say you want to implement user Roles or just
9
+ * need to disable some functionality for certain users based on purchase plan or on something else. You can allow or disallow almost
10
+ * everything.
11
+ *
12
+ * All the methods must return an Observable, so, in my opinion, that's the best part of this service, you can either return an
13
+ * [EMPTY Observable]{@link https://rxjs.dev/api/index/const/EMPTY}, a modified object or an (Info Modal).pipe(mapTo(EMPTY)) - I think you
14
+ * got the idea.
15
+ *
16
+ * I recommend always using a Modal or a Toast for forbidden actions.
17
+ *
18
+ * It won't work if you have a Regular/Free License - you'll get an error on running the project,
19
+ * you need either an [Extended or Commercial License]{@link https://wlocalhost.org} key for this purpose.
20
+ *
21
+ * @example
22
+ * // Create a custom service
23
+ * class YourOwnMiddlewareService extends PbUserMiddlewaresService {}
24
+ *
25
+ * // Rewrite it into AppModule
26
+ * { provide: PbUserMiddlewaresService, useClass: YourOwnMiddlewareService }
27
+ */
28
+ export class PbUserMiddlewaresService {
29
+ /**
30
+ * This method is called before sending the request to MJML Convertor. Use it to add some additional blocks or anything else to
31
+ * the PBEmail object.
32
+ * @param email PBEmail object that's being sent to MJML Convertor.
33
+ */
34
+ createHTMLTemplate(email) {
35
+ return deferOf(email);
36
+ }
37
+ /**
38
+ * Allow or Disallow preview window.
39
+ * @param state Coming Preview state
40
+ */
41
+ togglePreview(state) {
42
+ return deferOf(state);
43
+ }
44
+ /**
45
+ * Allow or Disallow preview devices.
46
+ * @param button Device's button that has been clicked
47
+ */
48
+ togglePreviewDevice(button) {
49
+ return deferOf(button.value);
50
+ }
51
+ /**
52
+ * Allow or disallow users to select certain templates based either on category or template object.
53
+ * @param category Template's category user has selected
54
+ * @param template Template user has selected
55
+ */
56
+ chooseTemplate(category, template) {
57
+ return deferOf({ category, template });
58
+ }
59
+ /**
60
+ * Allow, disallow or return the same path for all user's uploaded images.
61
+ * @param path Path of uploaded image
62
+ *
63
+ * @TODO Check if this middleware is being called before image has been uploaded
64
+ */
65
+ uploadImage(path) {
66
+ return deferOf(path);
67
+ }
68
+ /**
69
+ * Allow or disallow users to add blocks within email structures.
70
+ * @param event Event of dropped block
71
+ * @param column Column that block has been dropped
72
+ *
73
+ * @TODO add parent structure as a parameter
74
+ */
75
+ addBlock(event, column) {
76
+ return deferOf({ event, column });
77
+ }
78
+ /**
79
+ * Prevent user to edit blocks within email body.
80
+ * @param block Block that user intends to edit
81
+ */
82
+ editBlock(block) {
83
+ return deferOf(block);
84
+ }
85
+ /**
86
+ * Prevent user to remove blocks within email body.
87
+ * @param index Block's Index
88
+ * @param column Block's parent column
89
+ * @param block Block that user intends to remove
90
+ */
91
+ removeBlock(index, column, block) {
92
+ return deferOf({ index, column });
93
+ }
94
+ /**
95
+ * Prevent user to duplicate blocks within email body.
96
+ * @param index Block's Index
97
+ * @param column Block's parent column
98
+ * @param block Block that user intends to duplicate
99
+ */
100
+ duplicateBlock(index, column, block) {
101
+ return deferOf({ index, column, block });
102
+ }
103
+ /**
104
+ * Disable Drag and Drop certain blocks from Blocks list to Email body.
105
+ * Return TRUE to disable all blocks - no matter on block's data.
106
+ * @param block Block to allow or disallow from being dragged
107
+ */
108
+ disableBlockDragFromList(block) {
109
+ return deferOf(false);
110
+ }
111
+ /**
112
+ * Prevent users to sort blocks within email body.
113
+ * @param block Block that user intends to change the order
114
+ */
115
+ disableBlockDragWithinEmailBody(block) {
116
+ return deferOf(false);
117
+ }
118
+ /**
119
+ * Prevent user to add new structure.
120
+ * @param event Event of dropped structure
121
+ */
122
+ addStructure(event) {
123
+ return deferOf(event);
124
+ }
125
+ /**
126
+ * Prevent user to edit the structure.
127
+ * @param structure Structure that user intends to edit
128
+ */
129
+ editStructure(structure) {
130
+ return deferOf(structure);
131
+ }
132
+ /**
133
+ * Prevent user to remove the structure.
134
+ * @param index Index of the structure
135
+ * @param structure Structure that user intends to remove
136
+ */
137
+ removeStructure(index, structure) {
138
+ return deferOf(index);
139
+ }
140
+ /**
141
+ * Prevent user to duplicate the structure within email body.
142
+ * @param index Index of structure
143
+ * @param structure Structure that user intends to duplicate
144
+ */
145
+ duplicateStructure(index, structure) {
146
+ return deferOf(index);
147
+ }
148
+ /**
149
+ * Disable Drag and Drop certain structures from Structures list to Email body.
150
+ * Return TRUE to disable all structures.
151
+ * @param structure Structure to prevent from being dragged
152
+ */
153
+ disableStructureDragFromList(structure) {
154
+ return deferOf(false);
155
+ }
156
+ /**
157
+ * Allow or disallow users to sort structures within email body.
158
+ * @param structure Structure that user intends to change the order
159
+ */
160
+ disableStructureDragWithinEmailBody(structure) {
161
+ return deferOf(false);
162
+ }
163
+ /**
164
+ * I don't know why would you do that, but you can disable OnExit confirm modal.
165
+ * @param event Window [BeforeUnloadEvent]{@link https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent}
166
+ */
167
+ preventWindowExit(event) {
168
+ return deferOf(event);
169
+ }
170
+ /**
171
+ * Allow or disallow user to export certain types of file
172
+ * @param type Type that user intends to download
173
+ */
174
+ exportFile(type) {
175
+ return deferOf(type);
176
+ }
177
+ /**
178
+ * Allow or disallow user to import certain types of file
179
+ * @param file Web APIs [FILE]{@link https://developer.mozilla.org/en-US/docs/Web/API/File}
180
+ */
181
+ importFile(file) {
182
+ return deferOf(file);
183
+ }
184
+ /**
185
+ * Catch all errors within email editor, it might not work 100%, it's still on working process.
186
+ * @param error Throwable Error
187
+ */
188
+ catchError(error) {
189
+ return deferOf(error);
190
+ }
191
+ }
192
+ PbUserMiddlewaresService.decorators = [
193
+ { type: Injectable }
194
+ ];
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItbWlkZGxld2FyZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BiLWVtYWlsLWJ1aWxkZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLW1pZGRsZXdhcmUtc2VydmljZS9wYi1taWRkbGV3YXJlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWlDdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsTUFBTSxPQUFnQix3QkFBd0I7SUFDNUM7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLEtBQWM7UUFDL0IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxLQUFjO1FBQzFCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxNQUE0QjtRQUM5QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsUUFBZ0IsRUFBRSxRQUF1QjtRQUN0RCxPQUFPLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQUMsS0FBcUIsRUFBRSxNQUFpQjtRQUMvQyxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBYztRQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsS0FBYSxFQUFFLE1BQWlCLEVBQUUsS0FBYztRQUMxRCxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBQyxLQUFhLEVBQUUsTUFBaUIsRUFBRSxLQUFjO1FBQzdELE9BQU8sT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsS0FBYztRQUNyQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsK0JBQStCLENBQUMsS0FBYztRQUM1QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQXlCO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsU0FBcUI7UUFDakMsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ2xELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsa0JBQWtCLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ3JELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNEJBQTRCLENBQUMsU0FBcUI7UUFDaEQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1DQUFtQyxDQUFDLFNBQXFCO1FBQ3ZELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxLQUF3QjtRQUN4QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQWlCO1FBQzFCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsSUFBVTtRQUNuQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQWdDO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OztZQXZMRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDI0IFBvYnVjYS5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSVN0cnVjdHVyZSwgSVVzZXJUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFRCbG9ja3MgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0VsZW1lbnRzJztcclxuaW1wb3J0IHsgUEJFbWFpbCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvRGVmYXVsdEVtYWlsJztcclxuaW1wb3J0IHsgVFByZXZpZXdEZXZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3ByZXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVmZXJPZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBFbWFpbCBlZGl0b3IgZXhwb3J0IGZpbGUgdHlwZXMuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBURXhwb3J0VHlwZSA9ICdodG1sJyB8ICdqc29uJyB8ICdtam1sJztcclxuXHJcbi8qKlxyXG4gKiBFbWFpbCBlZGl0b3IgaW1wb3J0IGZpbGUgdHlwZXMuICdtam1sJyB0eXBlIGlzIHVuZGVyIGRldmVsb3BtZW50IC0gZG9uJ3QgdXNlIGl0IHlldC5cclxuICovXHJcbmV4cG9ydCB0eXBlIFRJbXBvcnRUeXBlID0gJ2pzb24nIHwgJ21qbWwnO1xyXG5cclxuLyoqXHJcbiAqIEFkZCBuZXcgU3RydWN0dXJlIHdpdGhpbiBlbWFpbCBib2R5IGV2ZW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElBZGRTdHJ1Y3R1cmVFdmVudCBleHRlbmRzIENka0RyYWdEcm9wPFNldDxJU3RydWN0dXJlPiwgU2V0PElTdHJ1Y3R1cmU+PiB7XHJcbiAgaXRlbTogQ2RrRHJhZzxJU3RydWN0dXJlPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZCBuZXcgQmxvY2sgd2l0aGluIHN0cnVjdHVyZXMnIGNvbHVtbnMgZXZlbnRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFkZEJsb2NrRXZlbnQgZXh0ZW5kcyBDZGtEcmFnRHJvcDxUQmxvY2tzW10sIFRCbG9ja3NbXT4ge1xyXG4gIGl0ZW06IENka0RyYWc8VEJsb2Nrcz47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcmV2aWV3IGRldmljZSBidXR0b25zXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElQcmV2aWV3VG9nZ2xlQnV0dG9uIGV4dGVuZHMgTWF0QnV0dG9uVG9nZ2xlQ2hhbmdlIHtcclxuICB2YWx1ZTogVFByZXZpZXdEZXZpY2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIHNlcnZpY2UgYWxsb3dzIHlvdSB0byBjb250cm9sIGFsbCB5b3VyIHVzZXJzJyBhYmlsaXRpZXMgd2l0aGluIHRoaXMgYnVpbGRlci4gTGV0cyBzYXkgeW91IHdhbnQgdG8gaW1wbGVtZW50IHVzZXIgUm9sZXMgb3IganVzdFxyXG4gKiBuZWVkIHRvIGRpc2FibGUgc29tZSBmdW5jdGlvbmFsaXR5IGZvciBjZXJ0YWluIHVzZXJzIGJhc2VkIG9uIHB1cmNoYXNlIHBsYW4gb3Igb24gc29tZXRoaW5nIGVsc2UuIFlvdSBjYW4gYWxsb3cgb3IgZGlzYWxsb3cgYWxtb3N0XHJcbiAqIGV2ZXJ5dGhpbmcuXHJcbiAqXHJcbiAqIEFsbCB0aGUgbWV0aG9kcyBtdXN0IHJldHVybiBhbiBPYnNlcnZhYmxlLCBzbywgaW4gbXkgb3BpbmlvbiwgdGhhdCdzIHRoZSBiZXN0IHBhcnQgb2YgdGhpcyBzZXJ2aWNlLCB5b3UgY2FuIGVpdGhlciByZXR1cm4gYW5cclxuICogW0VNUFRZIE9ic2VydmFibGVde0BsaW5rIGh0dHBzOi8vcnhqcy5kZXYvYXBpL2luZGV4L2NvbnN0L0VNUFRZfSwgYSBtb2RpZmllZCBvYmplY3Qgb3IgYW4gKEluZm8gTW9kYWwpLnBpcGUobWFwVG8oRU1QVFkpKSAtIEkgdGhpbmsgeW91XHJcbiAqIGdvdCB0aGUgaWRlYS5cclxuICpcclxuICogSSByZWNvbW1lbmQgYWx3YXlzIHVzaW5nIGEgTW9kYWwgb3IgYSBUb2FzdCBmb3IgZm9yYmlkZGVuIGFjdGlvbnMuXHJcbiAqXHJcbiAqIEl0IHdvbid0IHdvcmsgaWYgeW91IGhhdmUgYSBSZWd1bGFyL0ZyZWUgTGljZW5zZSAtIHlvdSdsbCBnZXQgYW4gZXJyb3Igb24gcnVubmluZyB0aGUgcHJvamVjdCxcclxuICogeW91IG5lZWQgZWl0aGVyIGFuIFtFeHRlbmRlZCBvciBDb21tZXJjaWFsIExpY2Vuc2Vde0BsaW5rIGh0dHBzOi8vd2xvY2FsaG9zdC5vcmd9IGtleSBmb3IgdGhpcyBwdXJwb3NlLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiAvLyBDcmVhdGUgYSBjdXN0b20gc2VydmljZVxyXG4gKiBjbGFzcyBZb3VyT3duTWlkZGxld2FyZVNlcnZpY2UgZXh0ZW5kcyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2Uge31cclxuICpcclxuICogLy8gUmV3cml0ZSBpdCBpbnRvIEFwcE1vZHVsZVxyXG4gKiB7IHByb3ZpZGU6IFBiVXNlck1pZGRsZXdhcmVzU2VydmljZSwgdXNlQ2xhc3M6IFlvdXJPd25NaWRkbGV3YXJlU2VydmljZSB9XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYlVzZXJNaWRkbGV3YXJlc1NlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBiZWZvcmUgc2VuZGluZyB0aGUgcmVxdWVzdCB0byBNSk1MIENvbnZlcnRvci4gVXNlIGl0IHRvIGFkZCBzb21lIGFkZGl0aW9uYWwgYmxvY2tzIG9yIGFueXRoaW5nIGVsc2UgdG9cclxuICAgKiB0aGUgUEJFbWFpbCBvYmplY3QuXHJcbiAgICogQHBhcmFtIGVtYWlsIFBCRW1haWwgb2JqZWN0IHRoYXQncyBiZWluZyBzZW50IHRvIE1KTUwgQ29udmVydG9yLlxyXG4gICAqL1xyXG4gIGNyZWF0ZUhUTUxUZW1wbGF0ZShlbWFpbDogUEJFbWFpbCk6IE9ic2VydmFibGU8UEJFbWFpbD4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2YoZW1haWwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWxsb3cgb3IgRGlzYWxsb3cgcHJldmlldyB3aW5kb3cuXHJcbiAgICogQHBhcmFtIHN0YXRlIENvbWluZyBQcmV2aWV3IHN0YXRlXHJcbiAgICovXHJcbiAgdG9nZ2xlUHJldmlldyhzdGF0ZTogYm9vbGVhbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2Yoc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWxsb3cgb3IgRGlzYWxsb3cgcHJldmlldyBkZXZpY2VzLlxyXG4gICAqIEBwYXJhbSBidXR0b24gRGV2aWNlJ3MgYnV0dG9uIHRoYXQgaGFzIGJlZW4gY2xpY2tlZFxyXG4gICAqL1xyXG4gIHRvZ2dsZVByZXZpZXdEZXZpY2UoYnV0dG9uOiBJUHJldmlld1RvZ2dsZUJ1dHRvbik6IE9ic2VydmFibGU8VFByZXZpZXdEZXZpY2U+IHtcclxuICAgIHJldHVybiBkZWZlck9mKGJ1dHRvbi52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvdyBvciBkaXNhbGxvdyB1c2VycyB0byBzZWxlY3QgY2VydGFpbiB0ZW1wbGF0ZXMgYmFzZWQgZWl0aGVyIG9uIGNhdGVnb3J5IG9yIHRlbXBsYXRlIG9iamVjdC5cclxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgVGVtcGxhdGUncyBjYXRlZ29yeSB1c2VyIGhhcyBzZWxlY3RlZFxyXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSBUZW1wbGF0ZSB1c2VyIGhhcyBzZWxlY3RlZFxyXG4gICAqL1xyXG4gIGNob29zZVRlbXBsYXRlKGNhdGVnb3J5OiBzdHJpbmcsIHRlbXBsYXRlOiBJVXNlclRlbXBsYXRlKTogT2JzZXJ2YWJsZTx7IGNhdGVnb3J5OiBzdHJpbmc7IHRlbXBsYXRlOiBJVXNlclRlbXBsYXRlIH0+IHtcclxuICAgIHJldHVybiBkZWZlck9mKHsgY2F0ZWdvcnksIHRlbXBsYXRlIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWxsb3csIGRpc2FsbG93IG9yIHJldHVybiB0aGUgc2FtZSBwYXRoIGZvciBhbGwgdXNlcidzIHVwbG9hZGVkIGltYWdlcy5cclxuICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHVwbG9hZGVkIGltYWdlXHJcbiAgICpcclxuICAgKiBAVE9ETyBDaGVjayBpZiB0aGlzIG1pZGRsZXdhcmUgaXMgYmVpbmcgY2FsbGVkIGJlZm9yZSBpbWFnZSBoYXMgYmVlbiB1cGxvYWRlZFxyXG4gICAqL1xyXG4gIHVwbG9hZEltYWdlKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gZGVmZXJPZihwYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFsbG93IG9yIGRpc2FsbG93IHVzZXJzIHRvIGFkZCBibG9ja3Mgd2l0aGluIGVtYWlsIHN0cnVjdHVyZXMuXHJcbiAgICogQHBhcmFtIGV2ZW50IEV2ZW50IG9mIGRyb3BwZWQgYmxvY2tcclxuICAgKiBAcGFyYW0gY29sdW1uIENvbHVtbiB0aGF0IGJsb2NrIGhhcyBiZWVuIGRyb3BwZWRcclxuICAgKlxyXG4gICAqIEBUT0RPIGFkZCBwYXJlbnQgc3RydWN0dXJlIGFzIGEgcGFyYW1ldGVyXHJcbiAgICovXHJcbiAgYWRkQmxvY2soZXZlbnQ6IElBZGRCbG9ja0V2ZW50LCBjb2x1bW46IFRCbG9ja3NbXSk6IE9ic2VydmFibGU8eyBjb2x1bW46IFRCbG9ja3NbXTsgZXZlbnQ6IElBZGRCbG9ja0V2ZW50IH0+IHtcclxuICAgIHJldHVybiBkZWZlck9mKHsgZXZlbnQsIGNvbHVtbiB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByZXZlbnQgdXNlciB0byBlZGl0IGJsb2NrcyB3aXRoaW4gZW1haWwgYm9keS5cclxuICAgKiBAcGFyYW0gYmxvY2sgQmxvY2sgdGhhdCB1c2VyIGludGVuZHMgdG8gZWRpdFxyXG4gICAqL1xyXG4gIGVkaXRCbG9jayhibG9jazogVEJsb2Nrcyk6IE9ic2VydmFibGU8VEJsb2Nrcz4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2YoYmxvY2spO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJldmVudCB1c2VyIHRvIHJlbW92ZSBibG9ja3Mgd2l0aGluIGVtYWlsIGJvZHkuXHJcbiAgICogQHBhcmFtIGluZGV4IEJsb2NrJ3MgSW5kZXhcclxuICAgKiBAcGFyYW0gY29sdW1uIEJsb2NrJ3MgcGFyZW50IGNvbHVtblxyXG4gICAqIEBwYXJhbSBibG9jayBCbG9jayB0aGF0IHVzZXIgaW50ZW5kcyB0byByZW1vdmVcclxuICAgKi9cclxuICByZW1vdmVCbG9jayhpbmRleDogbnVtYmVyLCBjb2x1bW46IFRCbG9ja3NbXSwgYmxvY2s6IFRCbG9ja3MpOiBPYnNlcnZhYmxlPHsgaW5kZXg6IG51bWJlcjsgY29sdW1uOiBUQmxvY2tzW10gfT4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2YoeyBpbmRleCwgY29sdW1uIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJldmVudCB1c2VyIHRvIGR1cGxpY2F0ZSBibG9ja3Mgd2l0aGluIGVtYWlsIGJvZHkuXHJcbiAgICogQHBhcmFtIGluZGV4IEJsb2NrJ3MgSW5kZXhcclxuICAgKiBAcGFyYW0gY29sdW1uIEJsb2NrJ3MgcGFyZW50IGNvbHVtblxyXG4gICAqIEBwYXJhbSBibG9jayBCbG9jayB0aGF0IHVzZXIgaW50ZW5kcyB0byBkdXBsaWNhdGVcclxuICAgKi9cclxuICBkdXBsaWNhdGVCbG9jayhpbmRleDogbnVtYmVyLCBjb2x1bW46IFRCbG9ja3NbXSwgYmxvY2s6IFRCbG9ja3MpOiBPYnNlcnZhYmxlPHsgaW5kZXg6IG51bWJlcjsgY29sdW1uOiBUQmxvY2tzW107IGJsb2NrOiBUQmxvY2tzIH0+IHtcclxuICAgIHJldHVybiBkZWZlck9mKHsgaW5kZXgsIGNvbHVtbiwgYmxvY2sgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNhYmxlIERyYWcgYW5kIERyb3AgY2VydGFpbiBibG9ja3MgZnJvbSBCbG9ja3MgbGlzdCB0byBFbWFpbCBib2R5LlxyXG4gICAqIFJldHVybiBUUlVFIHRvIGRpc2FibGUgYWxsIGJsb2NrcyAtIG5vIG1hdHRlciBvbiBibG9jaydzIGRhdGEuXHJcbiAgICogQHBhcmFtIGJsb2NrIEJsb2NrIHRvIGFsbG93IG9yIGRpc2FsbG93IGZyb20gYmVpbmcgZHJhZ2dlZFxyXG4gICAqL1xyXG4gIGRpc2FibGVCbG9ja0RyYWdGcm9tTGlzdChibG9jazogVEJsb2Nrcyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2YoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJldmVudCB1c2VycyB0byBzb3J0IGJsb2NrcyB3aXRoaW4gZW1haWwgYm9keS5cclxuICAgKiBAcGFyYW0gYmxvY2sgQmxvY2sgdGhhdCB1c2VyIGludGVuZHMgdG8gY2hhbmdlIHRoZSBvcmRlclxyXG4gICAqL1xyXG4gIGRpc2FibGVCbG9ja0RyYWdXaXRoaW5FbWFpbEJvZHkoYmxvY2s6IFRCbG9ja3MpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBkZWZlck9mKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByZXZlbnQgdXNlciB0byBhZGQgbmV3IHN0cnVjdHVyZS5cclxuICAgKiBAcGFyYW0gZXZlbnQgRXZlbnQgb2YgZHJvcHBlZCBzdHJ1Y3R1cmVcclxuICAgKi9cclxuICBhZGRTdHJ1Y3R1cmUoZXZlbnQ6IElBZGRTdHJ1Y3R1cmVFdmVudCk6IE9ic2VydmFibGU8SUFkZFN0cnVjdHVyZUV2ZW50PiB7XHJcbiAgICByZXR1cm4gZGVmZXJPZihldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcmV2ZW50IHVzZXIgdG8gZWRpdCB0aGUgc3RydWN0dXJlLlxyXG4gICAqIEBwYXJhbSBzdHJ1Y3R1cmUgU3RydWN0dXJlIHRoYXQgdXNlciBpbnRlbmRzIHRvIGVkaXRcclxuICAgKi9cclxuICBlZGl0U3RydWN0dXJlKHN0cnVjdHVyZTogSVN0cnVjdHVyZSk6IE9ic2VydmFibGU8SVN0cnVjdHVyZT4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2Yoc3RydWN0dXJlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByZXZlbnQgdXNlciB0byByZW1vdmUgdGhlIHN0cnVjdHVyZS5cclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHN0cnVjdHVyZVxyXG4gICAqIEBwYXJhbSBzdHJ1Y3R1cmUgU3RydWN0dXJlIHRoYXQgdXNlciBpbnRlbmRzIHRvIHJlbW92ZVxyXG4gICAqL1xyXG4gIHJlbW92ZVN0cnVjdHVyZShpbmRleDogbnVtYmVyLCBzdHJ1Y3R1cmU6IElTdHJ1Y3R1cmUpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2YoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJldmVudCB1c2VyIHRvIGR1cGxpY2F0ZSB0aGUgc3RydWN0dXJlIHdpdGhpbiBlbWFpbCBib2R5LlxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBzdHJ1Y3R1cmVcclxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0aGF0IHVzZXIgaW50ZW5kcyB0byBkdXBsaWNhdGVcclxuICAgKi9cclxuICBkdXBsaWNhdGVTdHJ1Y3R1cmUoaW5kZXg6IG51bWJlciwgc3RydWN0dXJlOiBJU3RydWN0dXJlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBkZWZlck9mKGluZGV4KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc2FibGUgRHJhZyBhbmQgRHJvcCBjZXJ0YWluIHN0cnVjdHVyZXMgZnJvbSBTdHJ1Y3R1cmVzIGxpc3QgdG8gRW1haWwgYm9keS5cclxuICAgKiBSZXR1cm4gVFJVRSB0byBkaXNhYmxlIGFsbCBzdHJ1Y3R1cmVzLlxyXG4gICAqIEBwYXJhbSBzdHJ1Y3R1cmUgU3RydWN0dXJlIHRvIHByZXZlbnQgZnJvbSBiZWluZyBkcmFnZ2VkXHJcbiAgICovXHJcbiAgZGlzYWJsZVN0cnVjdHVyZURyYWdGcm9tTGlzdChzdHJ1Y3R1cmU6IElTdHJ1Y3R1cmUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBkZWZlck9mKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFsbG93IG9yIGRpc2FsbG93IHVzZXJzIHRvIHNvcnQgc3RydWN0dXJlcyB3aXRoaW4gZW1haWwgYm9keS5cclxuICAgKiBAcGFyYW0gc3RydWN0dXJlIFN0cnVjdHVyZSB0aGF0IHVzZXIgaW50ZW5kcyB0byBjaGFuZ2UgdGhlIG9yZGVyXHJcbiAgICovXHJcbiAgZGlzYWJsZVN0cnVjdHVyZURyYWdXaXRoaW5FbWFpbEJvZHkoc3RydWN0dXJlOiBJU3RydWN0dXJlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gZGVmZXJPZihmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJIGRvbid0IGtub3cgd2h5IHdvdWxkIHlvdSBkbyB0aGF0LCBidXQgeW91IGNhbiBkaXNhYmxlIE9uRXhpdCBjb25maXJtIG1vZGFsLlxyXG4gICAqIEBwYXJhbSBldmVudCBXaW5kb3cgW0JlZm9yZVVubG9hZEV2ZW50XXtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQmVmb3JlVW5sb2FkRXZlbnR9XHJcbiAgICovXHJcbiAgcHJldmVudFdpbmRvd0V4aXQoZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KTogT2JzZXJ2YWJsZTxCZWZvcmVVbmxvYWRFdmVudD4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2YoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWxsb3cgb3IgZGlzYWxsb3cgdXNlciB0byBleHBvcnQgY2VydGFpbiB0eXBlcyBvZiBmaWxlXHJcbiAgICogQHBhcmFtIHR5cGUgVHlwZSB0aGF0IHVzZXIgaW50ZW5kcyB0byBkb3dubG9hZFxyXG4gICAqL1xyXG4gIGV4cG9ydEZpbGUodHlwZTogVEV4cG9ydFR5cGUpOiBPYnNlcnZhYmxlPFRFeHBvcnRUeXBlPiB7XHJcbiAgICByZXR1cm4gZGVmZXJPZih0eXBlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFsbG93IG9yIGRpc2FsbG93IHVzZXIgdG8gaW1wb3J0IGNlcnRhaW4gdHlwZXMgb2YgZmlsZVxyXG4gICAqIEBwYXJhbSBmaWxlIFdlYiBBUElzIFtGSUxFXXtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZX1cclxuICAgKi9cclxuICBpbXBvcnRGaWxlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPEZpbGU+IHtcclxuICAgIHJldHVybiBkZWZlck9mKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2F0Y2ggYWxsIGVycm9ycyB3aXRoaW4gZW1haWwgZWRpdG9yLCBpdCBtaWdodCBub3Qgd29yayAxMDAlLCBpdCdzIHN0aWxsIG9uIHdvcmtpbmcgcHJvY2Vzcy5cclxuICAgKiBAcGFyYW0gZXJyb3IgVGhyb3dhYmxlIEVycm9yXHJcbiAgICovXHJcbiAgY2F0Y2hFcnJvcihlcnJvcjogRXJyb3IgfCBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8RXJyb3IgfCBIdHRwRXJyb3JSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIGRlZmVyT2YoZXJyb3IpO1xyXG4gIH1cclxufVxyXG4iXX0=