@pobuca/email-builder 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +1 -0
  2. package/assets/icons/dribbble.png +0 -0
  3. package/assets/icons/facebook.png +0 -0
  4. package/assets/icons/github.png +0 -0
  5. package/assets/icons/instagram.png +0 -0
  6. package/assets/icons/linkedin.png +0 -0
  7. package/assets/icons/medium.png +0 -0
  8. package/assets/icons/pinterest.png +0 -0
  9. package/assets/icons/snapchat.png +0 -0
  10. package/assets/icons/soundcloud.png +0 -0
  11. package/assets/icons/tumblr.png +0 -0
  12. package/assets/icons/twitter.png +0 -0
  13. package/assets/icons/vimeo.png +0 -0
  14. package/assets/icons/web.png +0 -0
  15. package/assets/icons/xing.png +0 -0
  16. package/assets/icons/youtube.png +0 -0
  17. package/bundles/pobuca-email-builder.umd.js +4664 -0
  18. package/bundles/pobuca-email-builder.umd.js.map +1 -0
  19. package/bundles/pobuca-email-builder.umd.min.js +2 -0
  20. package/bundles/pobuca-email-builder.umd.min.js.map +1 -0
  21. package/esm2015/lib/classes/DefaultEmail.js +53 -0
  22. package/esm2015/lib/classes/Elements.js +229 -0
  23. package/esm2015/lib/classes/Structure.js +89 -0
  24. package/esm2015/lib/components/block/block.component.js +89 -0
  25. package/esm2015/lib/components/block-settings/block-settings.component.js +53 -0
  26. package/esm2015/lib/components/builder-container/builder-container.component.js +114 -0
  27. package/esm2015/lib/components/dialog.component.js +30 -0
  28. package/esm2015/lib/components/general-settings/general-settings.component.js +25 -0
  29. package/esm2015/lib/components/import-dialog/import-dialog.component.js +62 -0
  30. package/esm2015/lib/components/preview.component.js +89 -0
  31. package/esm2015/lib/components/structure/structure.component.js +163 -0
  32. package/esm2015/lib/components/structure-settings/structure-settings.component.js +31 -0
  33. package/esm2015/lib/components/template-list-dialog/template-list-dialog.component.js +45 -0
  34. package/esm2015/lib/directives/dynamic-component.directive.js +46 -0
  35. package/esm2015/lib/elements/abstract-block.js +23 -0
  36. package/esm2015/lib/elements/button/button.component.js +29 -0
  37. package/esm2015/lib/elements/divider/divider.component.js +30 -0
  38. package/esm2015/lib/elements/image/image.component.js +54 -0
  39. package/esm2015/lib/elements/social/social.component.js +42 -0
  40. package/esm2015/lib/elements/spacer/spacer.component.js +30 -0
  41. package/esm2015/lib/elements/text-element/text-element.component.js +80 -0
  42. package/esm2015/lib/groups/align.js +79 -0
  43. package/esm2015/lib/groups/back-repeat.js +55 -0
  44. package/esm2015/lib/groups/border.js +102 -0
  45. package/esm2015/lib/groups/color.js +139 -0
  46. package/esm2015/lib/groups/direction.js +63 -0
  47. package/esm2015/lib/groups/font-styles.js +112 -0
  48. package/esm2015/lib/groups/gaps.js +45 -0
  49. package/esm2015/lib/groups/line-height.js +68 -0
  50. package/esm2015/lib/groups/link.js +67 -0
  51. package/esm2015/lib/groups/margin.js +45 -0
  52. package/esm2015/lib/groups/padding.js +53 -0
  53. package/esm2015/lib/groups/upload-image.js +112 -0
  54. package/esm2015/lib/groups/width-height.js +94 -0
  55. package/esm2015/lib/interceptors/pb-interceptor.interceptor.js +51 -0
  56. package/esm2015/lib/interfaces/interfaces.js +13 -0
  57. package/esm2015/lib/pb-email-builder.component.js +246 -0
  58. package/esm2015/lib/pb-email-builder.module.js +291 -0
  59. package/esm2015/lib/pb-email-builder.service.js +134 -0
  60. package/esm2015/lib/pipes/slugify.pipe.js +39 -0
  61. package/esm2015/lib/services/internals/pb-email-object-store/pb-email-object-store.service.js +165 -0
  62. package/esm2015/lib/services/internals/user-interfaces/user-interface.service.js +122 -0
  63. package/esm2015/lib/services/pb-storage/FreeUsersStorage.class.js +11 -0
  64. package/esm2015/lib/services/pb-storage/index.js +7 -0
  65. package/esm2015/lib/services/pb-storage/pb-storage.service.js +79 -0
  66. package/esm2015/lib/services/user-image-uploader-service/free-users-image-uploader.service.js +26 -0
  67. package/esm2015/lib/services/user-image-uploader-service/index.js +8 -0
  68. package/esm2015/lib/services/user-image-uploader-service/paid-users-image-uploader.service.js +30 -0
  69. package/esm2015/lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component.js +112 -0
  70. package/esm2015/lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component.js +91 -0
  71. package/esm2015/lib/services/user-image-uploader-service/user-image-uploader.service.js +26 -0
  72. package/esm2015/lib/services/user-middleware-service/FreeUsersMiddleware.js +31 -0
  73. package/esm2015/lib/services/user-middleware-service/PaidUsersMiddleware.js +12 -0
  74. package/esm2015/lib/services/user-middleware-service/index.js +8 -0
  75. package/esm2015/lib/services/user-middleware-service/pb-middlewares.service.js +195 -0
  76. package/esm2015/lib/services/user-rest-api-service/free-users-rest-api.service.js +16 -0
  77. package/esm2015/lib/services/user-rest-api-service/index.js +7 -0
  78. package/esm2015/lib/services/user-rest-api-service/user-rest-api.service.js +116 -0
  79. package/esm2015/lib/tokens/private-tokens.js +17 -0
  80. package/esm2015/lib/tokens/tokens.js +159 -0
  81. package/esm2015/lib/utils.js +147 -0
  82. package/esm2015/pobuca-email-builder.js +43 -0
  83. package/esm2015/public_api.js +26 -0
  84. package/fesm2015/pobuca-email-builder.js +4335 -0
  85. package/fesm2015/pobuca-email-builder.js.map +1 -0
  86. package/lib/classes/DefaultEmail.d.ts +9 -0
  87. package/lib/classes/Elements.d.ts +62 -0
  88. package/lib/classes/Structure.d.ts +11 -0
  89. package/lib/components/block/block.component.d.ts +25 -0
  90. package/lib/components/block-settings/block-settings.component.d.ts +18 -0
  91. package/lib/components/builder-container/builder-container.component.d.ts +36 -0
  92. package/lib/components/dialog.component.d.ts +10 -0
  93. package/lib/components/general-settings/general-settings.component.d.ts +6 -0
  94. package/lib/components/import-dialog/import-dialog.component.d.ts +16 -0
  95. package/lib/components/preview.component.d.ts +18 -0
  96. package/lib/components/structure/structure.component.d.ts +43 -0
  97. package/lib/components/structure-settings/structure-settings.component.d.ts +9 -0
  98. package/lib/components/template-list-dialog/template-list-dialog.component.d.ts +15 -0
  99. package/lib/directives/dynamic-component.directive.d.ts +13 -0
  100. package/lib/elements/abstract-block.d.ts +8 -0
  101. package/lib/elements/button/button.component.d.ts +18 -0
  102. package/lib/elements/divider/divider.component.d.ts +10 -0
  103. package/lib/elements/image/image.component.d.ts +19 -0
  104. package/lib/elements/social/social.component.d.ts +21 -0
  105. package/lib/elements/spacer/spacer.component.d.ts +5 -0
  106. package/lib/elements/text-element/text-element.component.d.ts +52 -0
  107. package/lib/groups/align.d.ts +17 -0
  108. package/lib/groups/back-repeat.d.ts +8 -0
  109. package/lib/groups/border.d.ts +13 -0
  110. package/lib/groups/color.d.ts +26 -0
  111. package/lib/groups/direction.d.ts +13 -0
  112. package/lib/groups/font-styles.d.ts +17 -0
  113. package/lib/groups/gaps.d.ts +7 -0
  114. package/lib/groups/line-height.d.ts +12 -0
  115. package/lib/groups/link.d.ts +11 -0
  116. package/lib/groups/margin.d.ts +8 -0
  117. package/lib/groups/padding.d.ts +8 -0
  118. package/lib/groups/upload-image.d.ts +19 -0
  119. package/lib/groups/width-height.d.ts +19 -0
  120. package/lib/interceptors/pb-interceptor.interceptor.d.ts +10 -0
  121. package/lib/interfaces/interfaces.d.ts +422 -0
  122. package/lib/pb-email-builder.component.d.ts +67 -0
  123. package/lib/pb-email-builder.module.d.ts +51 -0
  124. package/lib/pb-email-builder.service.d.ts +83 -0
  125. package/lib/pipes/slugify.pipe.d.ts +9 -0
  126. package/lib/services/internals/pb-email-object-store/pb-email-object-store.service.d.ts +50 -0
  127. package/lib/services/internals/user-interfaces/user-interface.service.d.ts +46 -0
  128. package/lib/services/pb-storage/FreeUsersStorage.class.d.ts +6 -0
  129. package/lib/services/pb-storage/index.d.ts +2 -0
  130. package/lib/services/pb-storage/pb-storage.service.d.ts +54 -0
  131. package/lib/services/user-image-uploader-service/free-users-image-uploader.service.d.ts +12 -0
  132. package/lib/services/user-image-uploader-service/index.d.ts +3 -0
  133. package/lib/services/user-image-uploader-service/paid-users-image-uploader.service.d.ts +14 -0
  134. package/lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component.d.ts +28 -0
  135. package/lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component.d.ts +27 -0
  136. package/lib/services/user-image-uploader-service/user-image-uploader.service.d.ts +26 -0
  137. package/lib/services/user-middleware-service/FreeUsersMiddleware.d.ts +15 -0
  138. package/lib/services/user-middleware-service/PaidUsersMiddleware.d.ts +7 -0
  139. package/lib/services/user-middleware-service/index.d.ts +3 -0
  140. package/lib/services/user-middleware-service/pb-middlewares.service.d.ts +190 -0
  141. package/lib/services/user-rest-api-service/free-users-rest-api.service.d.ts +10 -0
  142. package/lib/services/user-rest-api-service/index.d.ts +2 -0
  143. package/lib/services/user-rest-api-service/user-rest-api.service.d.ts +82 -0
  144. package/lib/tokens/private-tokens.d.ts +5 -0
  145. package/lib/tokens/tokens.d.ts +70 -0
  146. package/lib/utils.d.ts +88 -0
  147. package/package.json +37 -0
  148. package/pobuca-email-builder.d.ts +42 -0
  149. package/pobuca-email-builder.metadata.json +1 -0
  150. package/public_api.d.ts +16 -0
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":4,"metadata":{"IForRootConf":{"__symbolic":"interface"},"IMjmlServerResponseErrors":{"__symbolic":"interface"},"IMjmlServerResponse":{"__symbolic":"interface"},"TStructureTypes":{"__symbolic":"interface"},"TDirection":{"__symbolic":"interface"},"TUnits":{"__symbolic":"interface"},"TAlign":{"__symbolic":"interface"},"TVerticalAlign":{"__symbolic":"interface"},"TLineHeight":{"__symbolic":"interface"},"TLinkTarget":{"__symbolic":"interface"},"TFontStyle":{"__symbolic":"interface"},"TFontWeight":{"__symbolic":"interface"},"TBackgroundRepeat":{"__symbolic":"interface"},"IBorder":{"__symbolic":"interface"},"IPadding":{"__symbolic":"interface"},"IMargin":{"__symbolic":"interface"},"IWidthHeight":{"__symbolic":"interface"},"IBackground":{"__symbolic":"interface"},"IFont":{"__symbolic":"interface"},"IFontFamily":{"__symbolic":"interface"},"ILineHeight":{"__symbolic":"interface"},"ILink":{"__symbolic":"interface"},"IStructureColumnOptions":{"__symbolic":"interface"},"IStructureOptions":{"__symbolic":"interface"},"IStructure":{"__symbolic":"interface"},"IBlockState":{"__symbolic":"interface"},"ITextBlockOptions":{"__symbolic":"interface"},"IImageBLockOptions":{"__symbolic":"interface"},"IButtonBlockOptions":{"__symbolic":"interface"},"IDividerBlockOptions":{"__symbolic":"interface"},"ISpacerBlockOptions":{"__symbolic":"interface"},"ISocialBlockOptions":{"__symbolic":"interface"},"ISocialNetwork":{"__symbolic":"interface"},"IGeneralOptions":{"__symbolic":"interface"},"IPBEmail":{"__symbolic":"interface"},"IUserModule":{"__symbolic":"interface"},"ICustomModule":{"__symbolic":"interface"},"IUserTemplate":{"__symbolic":"interface"},"ICustomTemplate":{"__symbolic":"interface"},"IUserTemplateCategory":{"__symbolic":"interface"},"IUserImageCategory":{"__symbolic":"interface"},"ETemplatesStorage":{"LATEST_USED":"NGB_LATEST_USED_TEMPLATES","STORAGE":"NGB_TEMP_TEMPLATES_STORAGE"},"PB_DEFAULT_SOCIAL_NETWORKS":["github","instagram","web","snapchat","youtube","vimeo","medium","soundcloud","dribbble","facebook","twitter","pinterest","linkedin","tumblr","xing","tiktok"],"PB_SOCIAL_NETWORKS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":43,"character":38},"arguments":["PB Social Networks",{"__symbolic":"error","message":"Lambda not supported","line":45,"character":11,"module":"./lib/tokens/tokens"}]},"PB_DEFAULT_GOOGLE_FONTS":["Open+Sans:300,400,500,700","Droid+Sans:300,400,500,700","Lato:300,400,500,700","Roboto:300,400,700,900","Ubuntu:300,400,500,700","Fira+Sans:300,400,500,700","Mansalva:400"],"PB_GOOGLE_FONTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":64,"character":35},"arguments":["PB Google Fonts",{"__symbolic":"error","message":"Lambda not supported","line":66,"character":11,"module":"./lib/tokens/tokens"}]},"PB_DEFAULT_FALLBACK_FONTS":["Palatino Linotype, Book Antiqua, Palatino, serif","Times New Roman, Times, serif","Arial, Helvetica, sans-serif","Arial Black, Gadget, sans-serif","Comic Sans MS, cursive, sans-serif","Impact, Charcoal, sans-serif","Lucida Sans Unicode, Lucida Grande, sans-serif","Tahoma, Geneva, sans-serif","Trebuchet MS, Helvetica, sans-serif","Verdana, Geneva, sans-serif","Courier New, Courier, monospace","Lucida Console, Monaco, monospace"],"PB_FALLBACK_FONTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":92,"character":37},"arguments":["PB Fallback Fonts",{"__symbolic":"error","message":"Lambda not supported","line":94,"character":11,"module":"./lib/tokens/tokens"}]},"PB_DEFAULT_STRUCTURES":[{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Structure"},"arguments":["cols_1"]},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Structure"},"arguments":["cols_2"]},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Structure"},"arguments":["cols_3"]},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Structure"},"arguments":["cols_4"]},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Structure"},"arguments":["cols_12"]},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Structure"},"arguments":["cols_21"]}],"PB_STRUCTURES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":111,"character":33},"arguments":["PB Structures",{"__symbolic":"error","message":"Lambda not supported","line":113,"character":11,"module":"./lib/tokens/tokens"}]},"PB_DEFAULT_BLOCKS":[{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TextBlock"}},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ImageBlock"}},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ButtonBlock"}},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DividerBlock"}},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"SpacerBlock"}},{"__symbolic":"new","expression":{"__symbolic":"reference","name":"SocialBlock"}}],"PB_BLOCKS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":130,"character":29},"arguments":["PB Blocks",{"__symbolic":"error","message":"Lambda not supported","line":132,"character":11,"module":"./lib/tokens/tokens"}]},"PB_DEFAULT_CONFIG":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"freeze"},"arguments":[{"xApiKey":"t7HdQfZjGp6R96fOV4P8v18ggf6LLTQZ1puUI2tz","useSaveButton":true,"usePreviewButton":true,"useDownloadButton":true,"templateListIfEmpty":true,"uploadImageName":"image"}]},"PB_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":150,"character":29},"arguments":["PB Builder Configuration",{"__symbolic":"error","message":"Lambda not supported","line":152,"character":11,"module":"./lib/tokens/tokens"}]},"PB_STORAGE_FACTORY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":158,"character":38},"arguments":["PB Storage factory token",{"__symbolic":"error","message":"Lambda not supported","line":160,"character":11,"module":"./lib/tokens/tokens"}]},"PB_TEMPLATES_TEMPORARY_STORAGE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":166,"character":50},"arguments":["PB Token that stores temporary templates cache",{"__symbolic":"error","message":"Lambda not supported","line":168,"character":11,"module":"./lib/tokens/tokens"}]},"cloneDeep":{"__symbolic":"function","parameters":["obj"],"defaults":[{}],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"JSON"},"member":"parse"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"JSON"},"member":"stringify"},"arguments":[{"__symbolic":"reference","name":"obj"}]}]}},"isEqual":{"__symbolic":"function","parameters":["x","y"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"JSON"},"member":"stringify"},"arguments":[{"__symbolic":"reference","name":"x"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"JSON"},"member":"stringify"},"arguments":[{"__symbolic":"reference","name":"y"}]}}},"defaultsDeep":{"__symbolic":"function"},"createBorder":{"__symbolic":"function"},"createPadding":{"__symbolic":"function"},"createMargin":{"__symbolic":"function"},"createFont":{"__symbolic":"function"},"createLineHeight":{"__symbolic":"function"},"createBackground":{"__symbolic":"function"},"createWidthHeight":{"__symbolic":"function"},"bytesToSize":{"__symbolic":"function"},"getAssetByPath":{"__symbolic":"function","parameters":["path"],"value":{"__symbolic":"binop","operator":"+","left":"https://www.mailjet.com/images/theme/v1/icons/ico-social/","right":{"__symbolic":"reference","name":"path"}}},"deferOf":{"__symbolic":"function","parameters":["args"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"defer","line":159,"character":9},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":159,"character":15,"module":"./lib/utils"}]}},"Defaults":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"IStructure"}]},{"__symbolic":"reference","name":"IGeneralOptions"}]}]}},"PBEmail":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Defaults"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"IPBEmail"}]}]}},"TBlocksOptions":{"__symbolic":"interface"},"AIPBlock":{"__symbolic":"class","members":{}},"TextBlock":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"ITextBlockOptions"},{"__symbolic":"reference","name":"IBlockState"}]}]}},"ImageBlock":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null,{"__symbolic":"reference","name":"IImageBLockOptions"},{"__symbolic":"reference","name":"IBlockState"}]}]}},"ButtonBlock":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"IButtonBlockOptions"},{"__symbolic":"reference","name":"IBlockState"}]}]}},"DividerBlock":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"IDividerBlockOptions"},{"__symbolic":"reference","name":"IBlockState"}]}]}},"SpacerBlock":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ISpacerBlockOptions"},{"__symbolic":"reference","name":"IBlockState"}]}]}},"SocialBlock":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ISocialNetwork"}]},{"__symbolic":"reference","name":"ISocialBlockOptions"},{"__symbolic":"reference","name":"IBlockState"}]}]}},"TBlocks":{"__symbolic":"interface"},"defaultColumnsOptions":{"background":{"color":"transparent"},"border":{"width":0,"color":"#cccccc","radius":0,"style":"solid"},"verticalAlign":"top"},"Structure":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TStructureTypes"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"TBlocks"}]}]},{"__symbolic":"reference","name":"IStructureOptions"}]}]}},"PbEmailBuilderService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":22,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":55,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_CONFIG"}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"IForRootConf"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","name":"ɵb"}]}],"createHTMLTemplate$":[{"__symbolic":"method"}],"saveEmail":[{"__symbolic":"method"}],"getEmailAsObservable$":[{"__symbolic":"method"}],"getTemplateAsObservable$":[{"__symbolic":"method"}],"getMjmlAsObservable$":[{"__symbolic":"method"}],"onChanges$":[{"__symbolic":"method"}]}},"TExportType":{"__symbolic":"interface"},"TImportType":{"__symbolic":"interface"},"IAddStructureEvent":{"__symbolic":"interface"},"IAddBlockEvent":{"__symbolic":"interface"},"IPreviewToggleButton":{"__symbolic":"interface"},"PbUserMiddlewaresService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":69,"character":1}}],"members":{"createHTMLTemplate":[{"__symbolic":"method"}],"togglePreview":[{"__symbolic":"method"}],"togglePreviewDevice":[{"__symbolic":"method"}],"chooseTemplate":[{"__symbolic":"method"}],"uploadImage":[{"__symbolic":"method"}],"addBlock":[{"__symbolic":"method"}],"editBlock":[{"__symbolic":"method"}],"removeBlock":[{"__symbolic":"method"}],"duplicateBlock":[{"__symbolic":"method"}],"disableBlockDragFromList":[{"__symbolic":"method"}],"disableBlockDragWithinEmailBody":[{"__symbolic":"method"}],"addStructure":[{"__symbolic":"method"}],"editStructure":[{"__symbolic":"method"}],"removeStructure":[{"__symbolic":"method"}],"duplicateStructure":[{"__symbolic":"method"}],"disableStructureDragFromList":[{"__symbolic":"method"}],"disableStructureDragWithinEmailBody":[{"__symbolic":"method"}],"preventWindowExit":[{"__symbolic":"method"}],"exportFile":[{"__symbolic":"method"}],"importFile":[{"__symbolic":"method"}],"catchError":[{"__symbolic":"method"}]}},"IEmailAndGoogleFonts":{"__symbolic":"interface"},"PbUserRestApiService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":41,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":74,"character":27}]}],"getUserTemplateData$":[{"__symbolic":"method"}],"userImageUpload$":[{"__symbolic":"method"}],"getUserImages$":[{"__symbolic":"method"}],"createHTMLTemplate$":[{"__symbolic":"method"}]}},"PbStorageService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":24,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_TEMPLATES_TEMPORARY_STORAGE"}]}]],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":30,"character":68,"context":{"typeName":"Storage"},"module":"./lib/services/pb-storage/pb-storage.service"}]}],"getLatestUsedTemplates":[{"__symbolic":"method"}],"addTemplateToLatestUsed":[{"__symbolic":"method"}],"clearLatestUsed":[{"__symbolic":"method"}],"cacheTemplateList":[{"__symbolic":"method"}],"getCachedTemplateList":[{"__symbolic":"method"}],"clearCachedTemplateList":[{"__symbolic":"method"}]}},"PbUserImageUploaderService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1}}],"members":{"browse$":[{"__symbolic":"method"}]}},"createCustomRestApiService":{"__symbolic":"function","parameters":["http"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵc"},"arguments":[{"__symbolic":"reference","name":"http"}]}},"createUserMiddlewareService":{"__symbolic":"function"},"createUsersIpStorage":{"__symbolic":"function","parameters":["templateStorage"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵd"},"arguments":[{"__symbolic":"reference","name":"templateStorage"}]}},"createUserUploaderService":{"__symbolic":"function"},"PbEmailBuilderModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":148,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":150,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":151,"character":4},{"__symbolic":"reference","module":"ngx-quill","name":"QuillModule","line":152,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexLayoutModule","line":153,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":154,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":155,"character":4},{"__symbolic":"reference","module":"ngx-color/chrome","name":"ColorChromeModule","line":156,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":157,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":159,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":160,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":161,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":162,"character":4},{"__symbolic":"reference","module":"@angular/material/slider","name":"MatSliderModule","line":163,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":164,"character":4},{"__symbolic":"reference","module":"@angular/material/slide-toggle","name":"MatSlideToggleModule","line":165,"character":4},{"__symbolic":"reference","module":"@angular/material/button-toggle","name":"MatButtonToggleModule","line":166,"character":4},{"__symbolic":"reference","module":"@angular/material/divider","name":"MatDividerModule","line":167,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":168,"character":4},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":169,"character":4},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBarModule","line":170,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-bar","name":"MatProgressBarModule","line":171,"character":4},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":172,"character":4},{"__symbolic":"reference","module":"@angular/material/sidenav","name":"MatSidenavModule","line":173,"character":4},{"__symbolic":"reference","module":"@angular/material/toolbar","name":"MatToolbarModule","line":174,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":175,"character":4},{"__symbolic":"reference","module":"@angular/material/bottom-sheet","name":"MatBottomSheetModule","line":176,"character":4},{"__symbolic":"reference","module":"@angular/material/divider","name":"MatDividerModule","line":177,"character":4},{"__symbolic":"reference","module":"@angular/material/expansion","name":"MatExpansionModule","line":178,"character":4},{"__symbolic":"reference","module":"angular-resizable-element","name":"ResizableModule","line":179,"character":4},{"__symbolic":"reference","module":"@angular/cdk/scrolling","name":"ScrollingModule","line":180,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":181,"character":4}],"declarations":[{"__symbolic":"reference","name":"PbEmailBuilderComponent"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"PreviewTemplateComponent"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵba"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"},{"__symbolic":"reference","name":"ɵbe"},{"__symbolic":"reference","name":"ɵbf"},{"__symbolic":"reference","name":"ɵbg"},{"__symbolic":"reference","name":"ɵbh"},{"__symbolic":"reference","name":"ɵbi"},{"__symbolic":"reference","name":"SlugifyPipe"},{"__symbolic":"reference","name":"ɵbj"}],"exports":[{"__symbolic":"reference","name":"PbEmailBuilderComponent"},{"__symbolic":"reference","name":"PreviewTemplateComponent"},{"__symbolic":"reference","name":"SlugifyPipe"}],"entryComponents":[{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵbg"},{"__symbolic":"reference","name":"ɵbh"},{"__symbolic":"reference","name":"ɵbi"},{"__symbolic":"reference","name":"ɵbj"}],"providers":[{"provide":{"__symbolic":"reference","module":"ngx-quill","name":"QUILL_CONFIG_TOKEN","line":237,"character":15},"useValue":{"bounds":"pb-builder-container","theme":"bubble","format":"html","trackChanges":"all","suppressGlobalRegisterWarning":true}},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":246,"character":15},"useClass":{"__symbolic":"reference","name":"ɵbk"},"multi":true},{"__symbolic":"reference","name":"PbEmailBuilderService"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":257,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵbl"}]}]],"parameters":[{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","name":"PbUserImageUploaderService"},{"__symbolic":"reference","name":"boolean"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["userConfig"],"defaults":[{}],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"PbEmailBuilderModule"},"member":"withConfig"},"arguments":[{"__symbolic":"reference","name":"userConfig"}]}},"withConfig":{"__symbolic":"function","parameters":["userConfig"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"PbEmailBuilderModule"},"providers":[{"__symbolic":"reference","name":"PbEmailBuilderService"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"provide":{"__symbolic":"reference","name":"PB_CONFIG"},"useValue":{"__symbolic":"reference","name":"userConfig"}},{"provide":{"__symbolic":"reference","name":"PbUserMiddlewaresService"},"useFactory":{"__symbolic":"reference","name":"createUserMiddlewareService"},"deps":[{"__symbolic":"reference","name":"ɵbl"}]},{"provide":{"__symbolic":"reference","name":"PbStorageService"},"useFactory":{"__symbolic":"reference","name":"createUsersIpStorage"},"deps":[{"__symbolic":"reference","name":"PB_TEMPLATES_TEMPORARY_STORAGE"}]},{"provide":{"__symbolic":"reference","name":"PbUserImageUploaderService"},"useFactory":{"__symbolic":"reference","name":"createUserUploaderService"},"deps":[{"__symbolic":"reference","name":"ɵbl"},{"__symbolic":"reference","module":"@angular/material/bottom-sheet","name":"MatBottomSheet","line":300,"character":33},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":300,"character":49},{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","name":"PbUserRestApiService"}]},{"provide":{"__symbolic":"reference","name":"PbUserRestApiService"},"useFactory":{"__symbolic":"reference","name":"createCustomRestApiService"},"deps":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":305,"character":17}]}]}}}},"PbEmailBuilderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":37,"character":1},"arguments":[{"selector":"pb-email-builder","exportAs":"pbEmailBuilder","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":42,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":45,"character":15},"useExisting":{"__symbolic":"reference","name":"PbEmailBuilderComponent"},"multi":true},{"__symbolic":"reference","name":"SlugifyPipe"}],"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<mat-sidenav-container>\n <div class=\"pb-builder-container\" fxLayout=\"column\" fxFlex>\n <mat-progress-bar *ngIf=\"activeMatProgress$ | async\" mode=\"buffer\"></mat-progress-bar>\n <mat-toolbar fxLayoutGap=\"1rem\" fxLayoutAlign=\"space-between center\">\n <ng-content fxLayout fxLayoutGap=\"0.5rem\" select=\".top-actions\"></ng-content>\n\n <div fxFlexlayout fxLayoutGap=\"0.5rem\">\n <button *ngIf=\"ngb.config.useSaveButton\" type=\"button\" (click)=\"saveEmail()\" mat-stroked-button color=\"primary\"\n i18n=\"actions|Save Email\">\n Save Email\n </button>\n <button *ngIf=\"ngb.config.usePreviewButton\" type=\"button\" (click)=\"togglePreview()\" mat-stroked-button>\n <ng-container [ngSwitch]=\"previewTemplate\">\n <span *ngSwitchDefault i18n=\"actions|Preview\">Preview</span>\n <span *ngSwitchCase=\"true\" i18n=\"actions|Close Preview\">Close Preview</span>\n </ng-container>\n </button>\n\n <button mat-button mat-stroked-button i18n=\"actions|Import\" (click)=\"importFile()\">\n Import\n </button>\n\n <ng-container *ngIf=\"ngb.config.useDownloadButton\">\n <button mat-button [matMenuTriggerFor]=\"downloadMenu\" mat-stroked-button i18n=\"actions|Export\">\n Export\n </button>\n <mat-menu #downloadMenu=\"matMenu\">\n <button mat-menu-item (click)=\"download('html')\" i18n=\"actions|Export HTML\">\n Export HTML\n </button>\n <button mat-menu-item (click)=\"download('mjml')\" i18n=\"actions|Export MJML\">\n Export MJML\n </button>\n <button mat-menu-item (click)=\"download('json')\" i18n=\"actions|Export JSON\">\n Export JSON\n </button>\n </mat-menu>\n </ng-container>\n\n </div>\n <!-- <div class=\"history-actions\" style=\"margin-inline-start: auto;\">\n <span>Last saved Now</span>\n <button type=\"button\" mat-icon-button>\n <mat-icon>undo</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button>\n <mat-icon>redo</mat-icon>\n </button>\n </div> -->\n </mat-toolbar>\n <ng-container [ngSwitch]=\"previewTemplate\">\n <pb-builder-container *ngSwitchDefault [ngStyle]=\"getBuilderContainerStyles$ | async\">\n <ng-content select=\".rewrited-empty-email\"></ng-content>\n </pb-builder-container>\n\n <pb-preview-template fxLayout fxFlex=\"auto\" fxLayoutAlign=\"center\" [template]=\"currentHTMLTemplate$ | async\"\n *ngSwitchCase=\"true\">\n </pb-preview-template>\n </ng-container>\n </div>\n <mat-sidenav mode=\"side\" fxFlex=\"0 0 310px\" [opened]=\"!previewTemplate\" position=\"end\" class=\"pb-builder-content\">\n <mat-tab-group [selectedIndex]=\"currentTabIndex$ | async\" (selectedIndexChange)=\"changeTabIndex($event)\">\n <mat-tab i18n-label=\"Content\" label=\"Content\">\n <div class=\"main-padding\">\n <cdk-drop-list class=\"elements\" [cdkDropListConnectedTo]=\"cdkDropListConnectedTo$ | async\"\n [cdkDropListData]=\"blocks\" [cdkDropListSortingDisabled]=\"true\" id=\"block-elements\">\n <div cdkDrag *ngFor=\"let block of blocks; trackBy: trackByFn\" [cdkDragData]=\"block\"\n [cdkDragDisabled]=\"disableBlocksList$(block) | async\" class=\"drag-element\"\n [matTooltip]=\"block.state.message\">\n <mat-icon>{{ block.icon }}</mat-icon>\n <div class=\"drag-element-title\">{{ block.title }}</div>\n </div>\n </cdk-drop-list>\n\n <mat-divider style=\"margin: 1em 0;\"></mat-divider>\n <!-- <h3 class=\"divider\"><span>Structures</span></h3> -->\n <cdk-drop-list class=\"elements structure-elements\" cdkDropListConnectedTo=\"structures-drop-list\"\n [cdkDropListSortingDisabled]=\"true\" [cdkDropListData]=\"structures\">\n <div cdkDrag *ngFor=\"let structure of structures; trackBy: trackByFn\" [cdkDragData]=\"structure\"\n [cdkDragDisabled]=\"disableStructureList$(structure) | async\" class=\"drag-element structure-element\"\n [ngClass]=\"structure.type\">\n <div *ngFor=\"let column of createArrayFromStructureColumns(structure)\"></div>\n </div>\n </cdk-drop-list>\n <ng-content fxLayout fxLayoutGap=\"0.5rem\" select=\".after-structure-blocks\"></ng-content>\n </div>\n </mat-tab>\n <mat-tab i18n-label=\"Modules\" label=\"Modules\" class=\"modules-tab\">\n <cdk-virtual-scroll-viewport itemSize=\"54\" [minBufferPx]=\"54 * 10\" [maxBufferPx]=\"54 * 20\"\n style=\"height: inherit;\"\n *ngIf=\"customModuleList$ | async as modules; else emptyModuleList\">\n <div class=\"main-padding\">\n <div class=\"custom-modules\" cdkDropList cdkDropListConnectedTo=\"structures-drop-list\"\n [cdkDropListData]=\"modules\" [cdkDropListSortingDisabled]=\"true\">\n <div fxLayout=\"column\" fxLayoutGap=\"1rem\">\n <ng-container *cdkVirtualFor=\"let module of modules\">\n <div cdkDrag [cdkDragData]=\"module.module\"\n [cdkDragDisabled]=\"disableStructureList$(module.module) | async\" class=\"drag-element\"\n style=\"padding: 1em;text-transform: uppercase;height: 54px;\">\n <span *ngIf=\"module.name\">{{module.name}}</span>\n <!-- <img *ngIf=\"module.thumb\" [src]=\"module.thumb\" /> -->\n </div>\n </ng-container>\n </div>\n </div>\n <ng-content fxLayout fxLayoutGap=\"0.5rem\" select=\".after-content-blocks\"></ng-content>\n </div>\n </cdk-virtual-scroll-viewport>\n <ng-template #emptyModuleList>\n <h4 class=\"main-padding\" style=\"text-align: center;\" i18n=\"modules|empty list message\">\n Module list is empty\n </h4>\n </ng-template>\n </mat-tab>\n <mat-tab i18n-label=\"Settings\" label=\"Settings\">\n <div class=\"pb-builder-options\" [ngSwitch]=\"showGeneralSettings$ | async\">\n <pb-general-settings *ngSwitchDefault></pb-general-settings>\n <pb-block-settings *ngSwitchCase=\"'block'\"></pb-block-settings>\n <pb-structure-settings *ngSwitchCase=\"'structure'\" fxLayout=\"column\"></pb-structure-settings>\n </div>\n </mat-tab>\n </mat-tab-group>\n </mat-sidenav>\n</mat-sidenav-container>\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */:host{display:block;height:100vh}.hide{display:none}::ng-deep mat-sidenav-container{height:100%}::ng-deep mat-sidenav-container mat-sidenav-content{width:100%;z-index:unset!important;overflow:unset!important}::ng-deep h3.divider{text-align:center;display:block;overflow:hidden;margin:0 0 1rem}::ng-deep h3.divider span{font-weight:100;position:relative;display:inline-block}::ng-deep h3.divider span:after,::ng-deep h3.divider span:before{content:\"\";position:absolute;top:50%;height:1px;background:#ccc;width:99999px}::ng-deep h3.divider span:before{left:100%;margin-left:10px}::ng-deep h3.divider span:after{right:100%;margin-right:10px}::ng-deep .pb-builder-content{border-right:1px solid rgba(0,0,0,.12)}::ng-deep .pb-builder-content .overflow{position:absolute;top:0;bottom:0;left:0;right:0;background-color:#fff;opacity:.5;display:none;z-index:3}::ng-deep .pb-builder-content.disabled .overflow{display:block}::ng-deep .pb-builder-content .mat-tab-label{width:50%;min-width:auto;height:64px;font-size:medium;text-transform:uppercase;padding:0 12px}::ng-deep .pb-builder-content .mat-tab-body-wrapper,::ng-deep .pb-builder-content .mat-tab-group{height:100%}::ng-deep .pb-builder-content .mat-tab-body-wrapper .mat-tab-body{padding:0}::ng-deep .pb-builder-content .mat-tab-body-wrapper .mat-tab-body .elements{display:grid;grid-gap:.5rem;margin-bottom:1rem;grid-template:repeat(2,1fr)/repeat(3,1fr)}::ng-deep .pb-builder-content .mat-tab-body-wrapper .mat-tab-body .elements.structure-elements{grid-template:repeat(4,1fr)/1fr}::ng-deep .pb-builder-content .mat-tab-body-wrapper .mat-tab-body .elements.cdk-drop-list-dragging .cdk-drag{transform:none!important}::ng-deep .pb-builder-content .mat-tab-body-wrapper .mat-tab-body input{height:auto;border:none}::ng-deep .pb-builder-content .mat-tab-body-wrapper .mat-tab-body .custom-modules .drag-element img{max-width:100%}::ng-deep .pb-builder-container{position:relative;height:100%}::ng-deep .pb-builder-container mat-progress-bar{position:absolute}::ng-deep .pb-builder-container mat-toolbar{background-color:#fff}::ng-deep .pb-builder-options .mat-expansion-panel{box-shadow:none!important}::ng-deep .pb-builder-options .mat-expansion-panel.mat-expanded{overflow:visible}::ng-deep .pb-builder-options mat-expansion-panel-header:not(.mat-expanded){background:rgba(0,0,0,.04)}::ng-deep .pb-builder-options ::ng-deep .group{display:grid;grid-template:auto/repeat(2,1fr);grid-gap:1rem}::ng-deep .pb-builder-options ::ng-deep .group>*{align-self:center}::ng-deep .pb-builder-options ::ng-deep .group+.group{margin-top:1em}::ng-deep .pb-builder-options ::ng-deep .group.four{grid-template-columns:repeat(4,1fr)}::ng-deep .pb-builder-options ::ng-deep .group.f-large{grid-template-columns:2fr 1fr}::ng-deep .pb-builder-options ::ng-deep .group.l-large{grid-template-columns:1fr 2fr}::ng-deep .pb-builder-options ::ng-deep .group.three{grid-template-columns:repeat(3,1fr)}::ng-deep .pb-builder-options ::ng-deep .group.three.f-small{grid-template-columns:1fr repeat(2,2fr)}::ng-deep .pb-builder-options ::ng-deep .group.three.f-large{grid-template-columns:2fr repeat(2,1fr)}::ng-deep .pb-builder-options ::ng-deep .group.three.l-large{grid-template-columns:repeat(2,1fr) 2fr}::ng-deep .pb-builder-options ::ng-deep .group .mat-form-field-infix{width:auto!important}::ng-deep .drag-element{text-align:center;border:1px solid #ccc;box-sizing:border-box;background:#fff;color:#7b7b7b;cursor:move;transition:box-shadow .3s ease-in-out;will-change:box-shadow;border-radius:3px}::ng-deep .drag-element.cdk-drag-disabled,::ng-deep .drag-element.cdk-drag-placeholder{cursor:not-allowed;opacity:.6}::ng-deep .drag-element:hover{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}::ng-deep .drag-element .mat-icon{font-size:40px!important;padding:.5rem;width:auto;height:auto}::ng-deep .drag-element img{max-width:100%}::ng-deep .drag-element-title{font-size:.9em;text-transform:uppercase;margin-bottom:.5rem}::ng-deep .drag-element.structure-element{height:60px;position:relative;padding:4px;display:grid;grid-template:1fr/1fr}::ng-deep .drag-element.structure-element>div{background:#ccc;border:4px solid #bbb}::ng-deep .drag-element.structure-element.cols_2{grid-template-columns:repeat(2,5fr)}::ng-deep .drag-element.structure-element.cols_3{grid-template-columns:repeat(3,3.33fr)}::ng-deep .drag-element.structure-element.cols_4{grid-template-columns:repeat(4,2.5fr)}::ng-deep .drag-element.structure-element.cols_12{grid-template-columns:6fr 4fr}::ng-deep .drag-element.structure-element.cols_21{grid-template-columns:4fr 6fr}::ng-deep .main-padding{padding:1rem}::ng-deep .cdk-drop-list-receiving>:not(.cdk-drag){opacity:.6}::ng-deep .cdk-drop-list-dragging>*{pointer-events:none}@keyframes drag-animation{0%{opacity:0;height:0}to{opacity:1}}::ng-deep .cdk-drag-animating{animation:drag-animation 1s cubic-bezier(0,0,.2,1) infinite}::ng-deep .cdk-drag-preview{border-radius:4px;box-shadow:0 0 0 2px rgba(63,81,181,.5);min-height:60px;min-width:100px;background-color:#fff}::ng-deep .cdk-drag.structure-element.cdk-drag-placeholder{box-shadow:0 0 1px 2px #ff4081;width:100%;pointer-events:none}"]}]}],"members":{"email":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"emailChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":77,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_STRUCTURES"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":78,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_BLOCKS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":79,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_GOOGLE_FONTS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":80,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":80,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"PbEmailBuilderService"},{"__symbolic":"reference","name":"PbUserRestApiService"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":73,"character":23},{"__symbolic":"reference","name":"SlugifyPipe"},{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":76,"character":31},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"IStructure"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"TBlocks"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"TBlocks"}]},{"__symbolic":"error","message":"Could not resolve type","line":80,"character":35,"context":{"typeName":"Document"},"module":"./lib/pb-email-builder.component"}]}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}],"saveEmail":[{"__symbolic":"method"}],"disableBlocksList$":[{"__symbolic":"method"}],"disableStructureList$":[{"__symbolic":"method"}],"trackByFn":[{"__symbolic":"method"}],"changeTabIndex":[{"__symbolic":"method"}],"download":[{"__symbolic":"method"}],"importFile":[{"__symbolic":"method"}],"createArrayFromStructureColumns":[{"__symbolic":"method"}],"togglePreview":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"TPreviewDevice":{"__symbolic":"interface"},"PreviewTemplateComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"pb-preview-template","template":"\n <iframe [src]=\"templateSrc\" [fxFlex]=\"getFlexWidth()\"></iframe>\n <mat-button-toggle-group value=\"desktop\" (change)=\"changeDevice($event)\" vertical>\n <mat-button-toggle value=\"desktop\" matTooltip=\"Desktop / 100%\" matTooltipPosition=\"left\">\n <mat-icon>desktop_windows</mat-icon>\n </mat-button-toggle>\n <mat-button-toggle value=\"tablet\" matTooltip=\"Tablet / 768px\" matTooltipPosition=\"left\">\n <mat-icon>tablet</mat-icon>\n </mat-button-toggle>\n <mat-button-toggle value=\"smartphone\" matTooltip=\"Smartphone / 360px\" matTooltipPosition=\"left\">\n <mat-icon>smartphone</mat-icon>\n </mat-button-toggle>\n </mat-button-toggle-group>\n ","styles":["\n iframe {\n border: 0;\n will-change: width;\n transition: all 500ms ease-in-out;\n }\n\n /* iframe a[href] {\n pointer-events: none;\n } */\n\n /* iframe.active {\n opacity: 1;\n } */\n\n mat-button-toggle-group {\n position: absolute;\n right: 0;\n background: white;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":59,"character":19},"member":"OnPush"}}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":67,"character":80}]}],"changeDevice":[{"__symbolic":"method"}],"getFlexWidth":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SlugifyPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":12,"character":1},"arguments":[{"name":"slugify"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":24,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":64,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_GOOGLE_FONTS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":65,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","name":"PbUserRestApiService"},{"__symbolic":"reference","name":"PbStorageService"},{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","name":"IForRootConf"}]}],"createHTMLTemplate$":[{"__symbolic":"method"}],"markForCheck":[{"__symbolic":"method"}],"setEmail":[{"__symbolic":"method"}],"addStructure":[{"__symbolic":"method"}],"changeStructureOrder":[{"__symbolic":"method"}],"duplicateStructure":[{"__symbolic":"method"}],"removeStructure":[{"__symbolic":"method"}],"addBlock":[{"__symbolic":"method"}],"changeBlockOrder":[{"__symbolic":"method"}],"duplicateBlock":[{"__symbolic":"method"}],"removeBlock":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":33,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":76,"character":23},{"__symbolic":"reference","module":"@angular/material/bottom-sheet","name":"MatBottomSheet","line":77,"character":25},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBar","line":78,"character":22}]}],"editBlock":[{"__symbolic":"method"}],"editStructure":[{"__symbolic":"method"}],"editGeneralSettings":[{"__symbolic":"method"}],"changeTabIndex":[{"__symbolic":"method"}],"confirmDialog$":[{"__symbolic":"method"}],"templatesListDialog$":[{"__symbolic":"method"}],"importDialog$":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}],"currentEditingBlock":[{"__symbolic":"method"}],"currentEditingStructure":[{"__symbolic":"method"}],"currentStructureEqualWith":[{"__symbolic":"method"}],"currentBlockEqualWith":[{"__symbolic":"method"}],"currentStructureContainsActiveBlock":[{"__symbolic":"method"}],"resetElements":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"pb-structure","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":32,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":33,"character":17},"member":"Emulated"},"exportAs":"structure","template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<div class=\"column\" *ngFor=\"let column of structure.elements; let index = index\" cdkDropList mwlResizable\n [enableGhostResize]=\"false\" [resizeSnapGrid]=\"{ left: fr, right: fr }\" [resizeEdges]=\"getResizeEdges(index)\"\n [validateResize]=\"validate\" (resizing)=\"onResizeEnd($event, index)\"\n (cdkDropListDropped)=\"dropNewBlock($event, column)\" [class.empty]=\"!column.length\" [ngStyle]=\"getColumnStyles(index)\"\n [cdkDropListConnectedTo]=\"cdkDropListConnectedTo$ | async\" [cdkDropListData]=\"column\" [id]=\"createColumnId(index)\">\n\n <div *ngIf=\"!column.length\" class=\"empty-block\" i18n=\"structure|Inside empty block\">DnD blocks</div>\n\n <pb-block *ngFor=\"let block of column; let index = index\" cdkDrag [cdkDragData]=\"block\" [block]=\"block\"\n [index]=\"index\" [column]=\"column\" [cdkDragDisabled]=\"disableBlockDrag$(block) | async\">\n <button mat-icon-button class=\"move\" cdkDragHandle i18n-matTooltip=\"block|Change Block order\"\n matTooltip=\"Change Block order\" *ngIf=\"!(disableBlockDrag$(block) | async)\">\n <mat-icon i18n-aria-label=\"block|Move block\" aria-label=\"Move block\" inline>pan_tool</mat-icon>\n </button>\n </pb-block>\n</div>\n\n<ng-content select=\".move\"></ng-content>\n<div class=\"tools\" fxLayoutGap=\"0.25rem\">\n <button mat-icon-button class=\"edit\" color=\"primary\" i18n-matTooltip=\"structure|Change structure settings\"\n matTooltip=\"Change structure settings\">\n <mat-icon i18n-aria-label=\"structure|Edit structure\" aria-label=\"Edit structure\" inline>edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"duplicateStructure($event)\" i18n-matTooltip=\"structure|Duplicate structure\"\n matTooltip=\"Duplicate structure\">\n <mat-icon i18n-aria-label=\"structure|Duplicate structure\" aria-label=\"Duplicate structure\" inline>file_copy\n </mat-icon>\n </button>\n <button mat-icon-button color=\"warn\" (click)=\"removeStructure($event)\" i18n-matTooltip=\"structure|Delete structure\"\n matTooltip=\"Delete structure\">\n <mat-icon i18n-aria-label=\"structure|Remove Structure\" aria-label=\"Remove Structure\" inline>delete_forever\n </mat-icon>\n </button>\n</div>\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */pb-block>.cdk-drag-handle{position:absolute;top:-30px;right:0;cursor:move;background-color:rgba(63,81,181,.5);color:#fff;border-radius:50% 50% 0 0;opacity:0;height:30px;width:30px;font-size:smaller}pb-block>.cdk-drag-handle mat-icon{margin-top:-8px}pb-block>.cdk-drag-handle:hover{background-color:#3f51b5}pb-block.cdk-drag-preview .cdk-drag-handle,pb-block:hover .cdk-drag-handle{opacity:1}:host{display:grid;border:1px solid #ccc;position:relative;grid-template-columns:1fr}:host>.tools{direction:ltr;position:absolute;opacity:0;left:0;bottom:-25px;color:#ff4081}:host>.tools button{background-color:#fff;border-radius:0 0 3px 3px;height:25px;width:25px;line-height:0}:host.active,:host.cdk-drag-placeholder,:host.cdk-drag-preview,:host:hover{box-shadow:0 0 1px 2px #ff4081;z-index:1}:host:hover>.tools{opacity:1}:host:hover>.tools button{background-color:#ff4081;color:#fff}:host.active>.tools>.edit{display:none}:host.cols_2{grid-template-columns:repeat(2,6fr)}:host.cols_3{grid-template-columns:repeat(3,4fr)}:host.cols_4{grid-template-columns:repeat(4,3fr)}:host.cols_12{grid-template-columns:7fr 5fr}:host.cols_21{grid-template-columns:5fr 7fr}:host .cdk-drop-list-dragging,:host .cdk-drop-list-receiving{height:100%}:host>.column{box-sizing:border-box}:host>.column.empty{height:60px}:host>.column.empty .empty-block{background-color:rgba(101,99,99,.21);height:100%;display:flex;justify-content:center;place-items:center;flex-direction:column;color:rgba(101,99,99,.3);font-size:small}:host>.column.empty.cdk-drop-list-dragging .empty-block{display:none}:host>.column.empty>.cdk-drag-placeholder{min-height:60px!important}"]}]}],"members":{"structure":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":57,"character":19},{"__symbolic":"reference","name":"PbUserMiddlewaresService"}]}],"isStructureActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":61,"character":3},"arguments":["class.active"]}]}],"onHostClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":71,"character":3},"arguments":["click",["$event"]]}]}],"removeStructure":[{"__symbolic":"method"}],"duplicateStructure":[{"__symbolic":"method"}],"dropNewBlock":[{"__symbolic":"method"}],"disableBlockDrag$":[{"__symbolic":"method"}],"editStructure":[{"__symbolic":"method"}],"getResizeEdges":[{"__symbolic":"method"}],"createColumnId":[{"__symbolic":"method"}],"getColumnStyles":[{"__symbolic":"method"}],"onResizeEnd":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"pb-block","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":27,"character":19},"member":"OnPush"},"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<ng-content select=\".move\"></ng-content>\n<div class=\"tools\" fxLayout fxLayoutGap=\"0.25rem\">\n <button mat-icon-button (click)=\"duplicateBlock()\" i18n-matTooltip=\"block|Duplicate Block\"\n matTooltip=\"Duplicate Block\">\n <mat-icon i18n-aria-label=\"block|Duplicate Block\" aria-label=\"Duplicate block\" inline>file_copy</mat-icon>\n </button>\n <button mat-icon-button (click)=\"removeBlock()\" i18n-matTooltip=\"block|Remove Block\" class=\"delete\"\n matTooltip=\"Remove Block\">\n <mat-icon i18n-aria-label=\"block|Remove Block\" aria-label=\"Delete block\" inline>delete_forever</mat-icon>\n </button>\n</div>\n<ng-content *pbDynamicComponent=\"block\"></ng-content>\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */:host{display:block;position:relative}:host.active:not(.cdk-drag-preview)>.tools{opacity:1;display:flex!important}:host.active,:host.cdk-drag-placeholder,:host.cdk-drag-preview{z-index:3;box-shadow:0 0 0 2px #3f51b5}:host:hover:not(.active){box-shadow:0 0 0 2px rgba(63,81,181,.5)}:host>.tools{direction:ltr;opacity:0;z-index:4;position:absolute;max-width:100%;bottom:-25px;right:0;display:none!important;transition:all .5s ease-in-out}:host>.tools>button{background:#3f51b5;border-radius:3px;color:#fff;line-height:0;width:25px;height:25px}:host>.tools>button mat-icon{font-size:14px;margin-top:-3px}:host>.tools ::ng-deep+*>*{transition:all .5s cubic-bezier(.445,.05,.55,.95)}"]}]}],"members":{"block":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"onHostClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":37,"character":3},"arguments":["click",["$event"]]}]}],"isBlockActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":42,"character":3},"arguments":["class.active"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":50,"character":19}]}],"removeBlock":[{"__symbolic":"method"}],"duplicateBlock":[{"__symbolic":"method"}],"editBlock":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":21,"character":1},"arguments":[{"selector":"[pbDynamicComponent]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":25,"character":33},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":25,"character":85}]}],"pbDynamicComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}]}},"ɵh":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵi"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"pb-text-element","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":20,"character":17},"member":"None"},"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<div [ngStyle]=\"getTextStyles()\">\n <quill-editor *ngIf=\"quillInit$ | async; else loadingModules\" i18n-placeholder=\"text-element|placeholder\"\n placeholder=\"Insert text here ...\" [modules]=\"staticQuillConfig\" [readOnly]=\"setAsReadOnly$ |async\"\n [(ngModel)]=\"block.innerText\" (onContentChanged)=\"contentChanged()\">\n </quill-editor>\n</div>\n\n<ng-template #loadingModules>\n <span i18n=\"text-element|loading message\">Please wait ...</span>\n</ng-template>\n","styles":["@charset \"UTF-8\";\n/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */\n/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;-o-tab-size:4;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:\"•\"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:\"☑\"}.ql-editor ul[data-checked=false]>li:before{content:\"☐\"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) \". \"}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) \". \"}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) \". \"}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-bubble.ql-toolbar:after,.ql-bubble .ql-toolbar:after{clear:both;content:\"\";display:table}.ql-bubble.ql-toolbar button,.ql-bubble .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-bubble.ql-toolbar button svg,.ql-bubble .ql-toolbar button svg{float:left;height:100%}.ql-bubble.ql-toolbar button:active:hover,.ql-bubble .ql-toolbar button:active:hover{outline:none}.ql-bubble.ql-toolbar input.ql-image[type=file],.ql-bubble .ql-toolbar input.ql-image[type=file]{display:none}.ql-bubble.ql-toolbar .ql-picker-item.ql-selected,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected,.ql-bubble.ql-toolbar .ql-picker-item:hover,.ql-bubble .ql-toolbar .ql-picker-item:hover,.ql-bubble.ql-toolbar .ql-picker-label.ql-active,.ql-bubble .ql-toolbar .ql-picker-label.ql-active,.ql-bubble.ql-toolbar .ql-picker-label:hover,.ql-bubble .ql-toolbar .ql-picker-label:hover,.ql-bubble.ql-toolbar button.ql-active,.ql-bubble .ql-toolbar button.ql-active,.ql-bubble.ql-toolbar button:focus,.ql-bubble .ql-toolbar button:focus,.ql-bubble.ql-toolbar button:hover,.ql-bubble .ql-toolbar button:hover{color:#fff}.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-bubble.ql-toolbar button.ql-active .ql-fill,.ql-bubble .ql-toolbar button.ql-active .ql-fill,.ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-bubble.ql-toolbar button:focus .ql-fill,.ql-bubble .ql-toolbar button:focus .ql-fill,.ql-bubble.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-bubble .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-bubble.ql-toolbar button:hover .ql-fill,.ql-bubble .ql-toolbar button:hover .ql-fill,.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill{fill:#fff}.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-bubble.ql-toolbar button.ql-active .ql-stroke,.ql-bubble .ql-toolbar button.ql-active .ql-stroke,.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter,.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter,.ql-bubble.ql-toolbar button:focus .ql-stroke,.ql-bubble .ql-toolbar button:focus .ql-stroke,.ql-bubble.ql-toolbar button:focus .ql-stroke-miter,.ql-bubble .ql-toolbar button:focus .ql-stroke-miter,.ql-bubble.ql-toolbar button:hover .ql-stroke,.ql-bubble .ql-toolbar button:hover .ql-stroke,.ql-bubble.ql-toolbar button:hover .ql-stroke-miter,.ql-bubble .ql-toolbar button:hover .ql-stroke-miter{stroke:#fff}@media (pointer:coarse){.ql-bubble.ql-toolbar button:hover:not(.ql-active),.ql-bubble .ql-toolbar button:hover:not(.ql-active){color:#ccc}.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#ccc}.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#ccc}}.ql-bubble,.ql-bubble *{box-sizing:border-box}.ql-bubble .ql-hidden{display:none}.ql-bubble .ql-out-bottom,.ql-bubble .ql-out-top{visibility:hidden}.ql-bubble .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-bubble .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-bubble .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-bubble .ql-formats{display:inline-block;vertical-align:middle}.ql-bubble .ql-formats:after{clear:both;content:\"\";display:table}.ql-bubble .ql-stroke{fill:none;stroke:#ccc;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-bubble .ql-stroke-miter{fill:none;stroke:#ccc;stroke-miterlimit:10;stroke-width:2}.ql-bubble .ql-fill,.ql-bubble .ql-stroke.ql-fill{fill:#ccc}.ql-bubble .ql-empty{fill:none}.ql-bubble .ql-even{fill-rule:evenodd}.ql-bubble .ql-stroke.ql-thin,.ql-bubble .ql-thin{stroke-width:1}.ql-bubble .ql-transparent{opacity:.4}.ql-bubble .ql-direction svg:last-child{display:none}.ql-bubble .ql-direction.ql-active svg:last-child{display:inline}.ql-bubble .ql-direction.ql-active svg:first-child{display:none}.ql-bubble .ql-editor h1{font-size:2em}.ql-bubble .ql-editor h2{font-size:1.5em}.ql-bubble .ql-editor h3{font-size:1.17em}.ql-bubble .ql-editor h4{font-size:1em}.ql-bubble .ql-editor h5{font-size:.83em}.ql-bubble .ql-editor h6{font-size:.67em}.ql-bubble .ql-editor a{text-decoration:underline}.ql-bubble .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-bubble .ql-editor code,.ql-bubble .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-bubble .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-bubble .ql-editor code{font-size:85%;padding:2px 4px}.ql-bubble .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-bubble .ql-editor img{max-width:100%}.ql-bubble .ql-picker{color:#ccc;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-bubble .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-bubble .ql-picker-label:before{display:inline-block;line-height:22px}.ql-bubble .ql-picker-options{background-color:#444;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-bubble .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-bubble .ql-picker.ql-expanded .ql-picker-label{color:#777;z-index:2}.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#777}.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#777}.ql-bubble .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-bubble .ql-color-picker,.ql-bubble .ql-icon-picker{width:28px}.ql-bubble .ql-color-picker .ql-picker-label,.ql-bubble .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-bubble .ql-color-picker .ql-picker-label svg,.ql-bubble .ql-icon-picker .ql-picker-label svg{right:4px}.ql-bubble .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-bubble .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-bubble .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-bubble .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=\"\"]):before,.ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=\"\"]):before,.ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=\"\"]):before{content:attr(data-label)}.ql-bubble .ql-picker.ql-header{width:98px}.ql-bubble .ql-picker.ql-header .ql-picker-item:before,.ql-bubble .ql-picker.ql-header .ql-picker-label:before{content:\"Normal\"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]:before{content:\"Heading 1\"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]:before{content:\"Heading 2\"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]:before{content:\"Heading 3\"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]:before{content:\"Heading 4\"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]:before{content:\"Heading 5\"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]:before{content:\"Heading 6\"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]:before{font-size:2em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]:before{font-size:1.5em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]:before{font-size:1.17em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]:before{font-size:1em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]:before{font-size:.83em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]:before{font-size:.67em}.ql-bubble .ql-picker.ql-font{width:108px}.ql-bubble .ql-picker.ql-font .ql-picker-item:before,.ql-bubble .ql-picker.ql-font .ql-picker-label:before{content:\"Sans Serif\"}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:\"Serif\"}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:\"Monospace\"}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-bubble .ql-picker.ql-size{width:98px}.ql-bubble .ql-picker.ql-size .ql-picker-item:before,.ql-bubble .ql-picker.ql-size .ql-picker-label:before{content:\"Normal\"}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:\"Small\"}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:\"Large\"}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:\"Huge\"}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-bubble .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-bubble .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-bubble .ql-toolbar .ql-formats{margin:8px 12px 8px 0}.ql-bubble .ql-toolbar .ql-formats:first-child{margin-left:12px}.ql-bubble .ql-color-picker svg{margin:1px}.ql-bubble .ql-color-picker .ql-picker-item.ql-selected,.ql-bubble .ql-color-picker .ql-picker-item:hover{border-color:#fff}.ql-bubble .ql-tooltip{background-color:#444;border-radius:25px;color:#fff}.ql-bubble .ql-tooltip-arrow{border-left:6px solid transparent;border-right:6px solid transparent;content:\" \";display:block;left:50%;margin-left:-6px;position:absolute}.ql-bubble .ql-tooltip:not(.ql-flip) .ql-tooltip-arrow{border-bottom:6px solid #444;top:-6px}.ql-bubble .ql-tooltip.ql-flip .ql-tooltip-arrow{border-top:6px solid #444;bottom:-6px}.ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor{display:block}.ql-bubble .ql-tooltip.ql-editing .ql-formats{visibility:hidden}.ql-bubble .ql-tooltip-editor{display:none}.ql-bubble .ql-tooltip-editor input[type=text]{background:transparent;border:none;color:#fff;font-size:13px;height:100%;outline:none;padding:10px 20px;position:absolute;width:100%}.ql-bubble .ql-tooltip-editor a{top:10px;position:absolute;right:20px}.ql-bubble .ql-tooltip-editor a:before{color:#ccc;content:\"×\";font-size:16px;font-weight:700}.ql-container.ql-bubble:not(.ql-disabled) a{position:relative;white-space:nowrap}.ql-container.ql-bubble:not(.ql-disabled) a:before{background-color:#444;border-radius:15px;top:-5px;font-size:12px;color:#fff;content:attr(href);font-weight:400;overflow:hidden;padding:5px 15px;text-decoration:none;z-index:1}.ql-container.ql-bubble:not(.ql-disabled) a:after{border-top:6px solid #444;border-left:6px solid transparent;border-right:6px solid transparent;top:0;content:\" \";height:0;width:0}.ql-container.ql-bubble:not(.ql-disabled) a:after,.ql-container.ql-bubble:not(.ql-disabled) a:before{left:0;margin-left:50%;position:absolute;transform:translate(-50%,-100%);transition:visibility 0s ease .2s;visibility:hidden}.ql-container.ql-bubble:not(.ql-disabled) a:hover:after,.ql-container.ql-bubble:not(.ql-disabled) a:hover:before{visibility:visible}quill-editor{display:block;word-break:break-word}quill-editor .ql-container{font-family:inherit;font-size:inherit}quill-editor .ql-container .ql-editor{padding:0!important;line-height:inherit;font:inherit;overflow:visible}quill-editor .ql-placeholder .ql-picker-label:before{display:block;content:\"Tags\";min-width:50px}quill-editor .ql-placeholder.ql-expanded .ql-picker-item:before{content:attr(data-value);width:-moz-min-content;width:min-content}quill-editor .ql-tooltip{z-index:10;line-height:normal}quill-editor .ql-tooltip .ql-picker-options{max-height:300px;overflow:auto}quill-editor .ql-toolbar{width:600px;width:-moz-max-content;width:max-content}quill-editor h1,quill-editor h2,quill-editor h3,quill-editor h4,quill-editor h5,quill-editor h6{font-weight:inherit;line-height:inherit}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PbUserRestApiService"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"getTextStyles":[{"__symbolic":"method"}],"contentChanged":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1}}],"members":{"portal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/portal","name":"CdkPortal","line":12,"character":13},{"static":true}]}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵi"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"pb-image","template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<!-- <div\n class=\"overflow\"\n *ngIf=\"(ngb.currentEditingBlock$ | async) !== block\"\n (click)=\"uploadImage()\"\n>\n <mat-icon inline>cloud_upload</mat-icon>\n</div> -->\n<img [src]=\"src\" [title]=\"block.options.title\" [ngStyle]=\"getImageStyles()\" />\n","styles":[":host{display:block;line-height:0}:host:hover .overflow{opacity:1}.overflow{position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.3);opacity:0;will-change:opacity;transition:opacity .3s cubic-bezier(.075,.82,.165,1);cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;font-size:3em}.overflow mat-icon{opacity:.8}img{max-width:100%;box-sizing:border-box}"]}]}],"members":{"align":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":20,"character":3},"arguments":["style.textAlign"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PbUserImageUploaderService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":28,"character":80},{"__symbolic":"reference","name":"PbEmailBuilderService"}]}],"uploadImage":[{"__symbolic":"method"}],"getImageStyles":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵi"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"pb-button","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":19,"character":17},"member":"Emulated"},"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<div fxLayout [ngStyle]=\"getParentStyles()\">\n <button type=\"button\" [class.full-width]=\"block.options.fullWidth\" [ngStyle]=\"getButtonStyles()\">\n {{ block.innerText }}\n </button>\n</div>\n","styles":["button{transition:all .5s cubic-bezier(.445,.05,.55,.95)}"]}]}],"members":{"getButtonStyles":[{"__symbolic":"method"}],"getParentStyles":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵi"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"pb-divider","template":"<div [ngStyle]=\"getDividerStyles()\"></div>","styles":["\n :host {\n display: table;\n width: 100%;\n }\n "]}]}],"members":{"getDividerStyles":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵi"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"pb-spacer","template":"","styles":["\n :host {\n display: table;\n width: 100%;\n transition: all 500ms cubic-bezier(0.445, 0.05, 0.55, 0.95);\n }\n "]}]}],"members":{"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":28,"character":3},"arguments":["style.height"]}]}]}},"ɵn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵi"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"pb-social","template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<div fxLayout [ngStyle]=\"getParentStyles()\">\n <div [class]=\"getSocialListClasses()\" [ngStyle]=\"getSocialListStyles()\">\n <ng-container *ngIf=\"block.networks.length; else noSocialNetworks\">\n <div class=\"social-list-item\" *ngFor=\"let network of block.networks\">\n <div [ngStyle]=\"getLabelStyles()\">\n <img [src]=\"getSocialNetworkIcon(network.name)\" [width]=\"block.options.iconSize.value\"\n [height]=\"block.options.iconSize.value\" [classList]=\"network.name\" [alt]=\"network.name\" />\n </div>\n <span *ngIf=\"network.label\">{{ network.label }}</span>\n </div>\n </ng-container>\n </div>\n</div>\n\n<ng-template #noSocialNetworks>\n <p i18n=\"social block|Empty social list message\">Please add some social networks.</p>\n</ng-template>\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */:host{display:block}p{margin:0}.social-list{display:flex;width:100%;flex-wrap:wrap}.social-list.horizontal{flex-direction:row}.social-list.vertical{flex-direction:column}.social-list-item{display:flex;flex-direction:row;align-items:center}.social-list-item img{border-radius:3px}.social-list-item img.facebook{background-color:#3a5898}.social-list-item img.twitter{background-color:#d95988}.social-list-item img.github{background-color:#000}.social-list-item img.instagram{background-color:#3f729b}.social-list-item img.web{background-color:#4bade9}.social-list-item img.snapchat{background-color:#fffa54}.social-list-item img.youtube{background-color:#ea3323}.social-list-item img.vimeo{background-color:#53b4e7}.social-list-item img.medium{background-color:#000}.social-list-item img.soundcloud{background-color:#ef7f31}.social-list-item img.dribbble{background-color:#d95988}.social-list-item img.pinterest{background-color:#bd071c}.social-list-item img.linkedin{background-color:#0077b5}.social-list-item img.tumblr{background-color:#334356}.social-list-item img.xing{background-color:#296365}.social-list-item img.tiktok{background-color:#000}"]}]}],"members":{"getParentStyles":[{"__symbolic":"method"}],"getLabelStyles":[{"__symbolic":"method"}],"getSocialListStyles":[{"__symbolic":"method"}],"getSocialListClasses":[{"__symbolic":"method"}],"getSocialNetworkIcon":[{"__symbolic":"method"}]}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"pb-builder-container","providers":[],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":30,"character":19},"member":"OnPush"},"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<ng-container *ngIf=\"getStructures$ | async as structures\">\n <div cdkDropList [cdkDropListData]=\"structures\"\n cdkDropListConnectedTo=\"structures-drop-list\" id=\"structures-drop-list\"\n (cdkDropListDropped)=\"dropNewStructure($event)\" fxFlex fxLayout=\"column\" fxLayoutAlign=\"start center\">\n <pb-structure cdkDrag\n *ngFor=\"let structure of structures; trackBy: trackBy; let index = index\" [id]=\"structure.id\"\n [index]=\"index\" [ngClass]=\"structure.type\" [structure]=\"structure\"\n [ngStyle]=\"getStructureStyles(structure)\"\n [style.backgroundImage]=\"getBackgroundImage(structure)\"\n [cdkDragDisabled]=\"disableStructureDrag$(structure) | async\">\n <button cdkDragHandle mat-icon-button class=\"move\" *ngIf=\"!(disableStructureDrag$(structure) | async)\"\n i18n-matTooltip=\"structure|Move Structure\" matTooltip=\"Move Structure\">\n <mat-icon i18n-aria-label=\"structure|Move Structure\" aria-label=\"Move structure\" inline>pan_tool</mat-icon>\n </button>\n </pb-structure>\n\n <div class=\"empty-email mat-typography\" *ngIf=\"!structures.length\">\n <ng-content></ng-content>\n <div class=\"default-empty-email\" *ngIf=\"showTemplateList\">\n <h1 i18n=\"templates|First header\">Choose template from list</h1>\n <p i18n=\"templates|Description\">Or create one from scratch by dragging structures and blocks here!</p>\n <button type=\"button\" color=\"primary\" [disabled]=\"activeMatProgress$ | async\"\n (click)=\"openTemplateDialog($event)\" mat-flat-button i18n=\"templates|Choose a template button\">\n Choose template\n </button>\n </div>\n </div>\n </div>\n</ng-container>\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */pb-structure>.cdk-drag-handle{position:absolute;cursor:move;border-radius:50% 50% 0 0;height:30px;width:30px;font-size:smaller;line-height:0;top:-30px;right:0;background-color:#ff4081;color:#fff;opacity:0}pb-structure.cdk-drag-preview>.cdk-drag-handle,pb-structure:hover>.cdk-drag-handle{opacity:.8}pb-structure.cdk-drag-preview>.cdk-drag-handle:hover,pb-structure:hover>.cdk-drag-handle:hover{opacity:1}pb-structure ::ng-deep .cdk-drag-placeholder{background-color:#3f51b5;opacity:.6;cursor:move;border-radius:0}pb-structure ::ng-deep .cdk-drag-placeholder ::ng-deep :not(mat-icon){display:none}pb-structure ::ng-deep .cdk-drag-placeholder ::ng-deep mat-icon{padding:5px;color:#fff}:host{background-color:#f2f2f2;overflow-x:hidden;overflow-y:auto;position:relative;height:100%}:host #structures-drop-list{height:-moz-fit-content;height:fit-content;max-width:100%;padding-bottom:3rem;will-change:box-shadow}:host #structures-drop-list .empty-email{display:flex;justify-content:center;align-items:center;flex-direction:column;flex:1 1 100%;margin-top:10%}:host #structures-drop-list .empty-email .default-empty-email{text-align:center}:host #structures-drop-list.cdk-drop-list-dragging .empty-email{display:none}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":45,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"PbUserRestApiService"},{"__symbolic":"reference","name":"PbStorageService"},{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":44,"character":23},{"__symbolic":"reference","name":"IForRootConf"}]}],"onHostClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":48,"character":3},"arguments":["click"]}]}],"trackBy":[{"__symbolic":"method"}],"disableStructureDrag$":[{"__symbolic":"method"}],"openTemplateDialog":[{"__symbolic":"method"}],"dropNewStructure":[{"__symbolic":"method"}],"getStructureStyles":[{"__symbolic":"method"}],"getBackgroundImage":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"pb-font-styles","template":"\n <div class=\"group two\">\n <mat-form-field appearance=\"outline\" *ngIf=\"hasProperty('family')\">\n <mat-label i18n=\"settings|Font Family\">Family</mat-label>\n <mat-select [(value)]=\"font.family\" disableRipple (selectionChange)=\"markForCheck()\">\n <mat-option *ngFor=\"let name of fontFamilyList\" [ngStyle]=\"{ fontFamily: name }\" [value]=\"name\">\n {{ name }}\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"isGoogleFont()\" i18n=\"settings|Partial support\">Partial support.</mat-hint>\n <mat-hint *ngIf=\"!isGoogleFont()\" i18n=\"settings|Full support\">Full support.</mat-hint>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" *ngIf=\"hasProperty('fallback')\">\n <mat-label i18n=\"settings|Font Fallback\">Fallback</mat-label>\n <mat-select [(value)]=\"font.fallback\" [disabled]=\"!isGoogleFont()\" disableRipple (selectionChange)=\"markForCheck()\">\n <mat-option *ngFor=\"let name of fallbackFonts\" [ngStyle]=\"{ fontFamily: name }\" [value]=\"name\">\n {{ name }}\n </mat-option>\n </mat-select>\n <mat-hint i18n=\"settings|Full support\">Full support.</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"group three\">\n <mat-form-field appearance=\"outline\" *ngIf=\"hasProperty('size')\">\n <mat-label i18n=\"settings|Font Size\">Size</mat-label>\n <input matInput type=\"number\" max=\"30\" min=\"10\" step=\"1\" (input)=\"markForCheck()\" [(ngModel)]=\"font.size\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\" *ngIf=\"hasProperty('weight')\">\n <mat-label i18n=\"settings|Font Weight\">Weight</mat-label>\n <mat-select placeholder=\"Weight\" [(value)]=\"font.weight\" disableRipple (selectionChange)=\"markForCheck()\">\n <mat-option *ngFor=\"let weight of fontWeightList\" [value]=\"weight\">\n {{ weight }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" style=\"min-width: 90px;\">\n <mat-label i18n=\"settings|Font Style\">Style</mat-label>\n <mat-select placeholder=\"Style\" [(value)]=\"font.style\" disableRipple (selectionChange)=\"markForCheck()\">\n <mat-option *ngFor=\"let style of styles\" [value]=\"style\" i18n>\n {{ getStyleLabel(style) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":66,"character":19},"member":"OnPush"}}]}],"members":{"font":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":79,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_GOOGLE_FONTS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":80,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_FALLBACK_FONTS"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]}]}],"markForCheck":[{"__symbolic":"method"}],"isGoogleFont":[{"__symbolic":"method"}],"getStyleLabel":[{"__symbolic":"method"}],"hasProperty":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-padding","template":"\n <div class=\"group four\">\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Padding Settings|Padding Top\">Top</mat-label>\n <input matInput type=\"number\" min=\"0\" step=\"1\" (input)=\"markForCheck()\" [(ngModel)]=\"padding.top\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Padding Settings|Padding Right\">Right</mat-label>\n <input matInput type=\"number\" min=\"0\" step=\"1\" (input)=\"markForCheck()\" [(ngModel)]=\"padding.right\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Padding Settings|Padding Bottom\">Bottom</mat-label>\n <input matInput type=\"number\" min=\"0\" step=\"1\" (input)=\"markForCheck()\" [(ngModel)]=\"padding.bottom\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Padding Settings|Padding Left\">Left</mat-label>\n <input matInput type=\"number\" min=\"0\" step=\"1\" (input)=\"markForCheck()\" [(ngModel)]=\"padding.left\" />\n </mat-form-field>\n </div>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":39,"character":19},"member":"OnPush"}}]}],"members":{"padding":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-margin","template":"\n <div class=\"group\">\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Margin settings|Margin Top\">Margin Top</mat-label>\n <input matInput type=\"number\" min=\"0\" step=\"1\" [(ngModel)]=\"margin.top\" (input)=\"markForCheck()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Margin settings|Margin Bottom\">Margin Bottom</mat-label>\n <input matInput type=\"number\" min=\"0\" step=\"1\" [(ngModel)]=\"margin.bottom\" (input)=\"markForCheck()\" />\n </mat-form-field>\n </div>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":31,"character":19},"member":"OnPush"}}]}],"members":{"margin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"pb-gaps","template":"\n <div class=\"group\">\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Gaps settings|Vertical Gaps\">Vertical Gaps</mat-label>\n <input matInput type=\"number\" min=\"0\" step=\"1\" [(ngModel)]=\"gaps[0]\" (input)=\"markForCheck()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Gaps settings|Horizontal Gaps\">Horizontal Gaps</mat-label>\n <input matInput type=\"number\" min=\"0\" step=\"1\" [(ngModel)]=\"gaps[1]\" (input)=\"markForCheck()\" />\n </mat-form-field>\n </div>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":30,"character":19},"member":"OnPush"}}]}],"members":{"gaps":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-line-height","template":"\n <div class=\"group\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ label }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"lineHeight.value\"\n type=\"number\"\n step=\"1\"\n (input)=\"markForCheck()\"\n [disabled]=\"lineHeight.unit === 'none'\"\n />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Line Height Settings|Change Line Height Unit\">Unit</mat-label>\n <mat-select placeholder=\"Unit\" [(value)]=\"lineHeight.unit\" (selectionChange)=\"markForCheck()\" disableRipple>\n <mat-option *ngFor=\"let unit of units\" [value]=\"unit\" i18n>\n {{ getUnitLabel(unit) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":42,"character":19},"member":"OnPush"}}]}],"members":{"lineHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"units":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}],"getUnitLabel":[{"__symbolic":"method"}]}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-width-height","template":"\n <div class=\"group\" [ngClass]=\"{ three: showAutoSlider() }\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ getLabel() }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"model.value\"\n [disabled]=\"disableValueField() || disabled\"\n type=\"number\"\n [placeholder]=\"getLabel()\"\n (input)=\"markForCheck()\"\n />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Size Settings|Size Unit\">Unit</mat-label>\n <mat-select [disabled]=\"model.auto || disabled\" [(value)]=\"model.unit\" (selectionChange)=\"markForCheck()\" disableRipple>\n <mat-option *ngFor=\"let unit of getUnits()\" [value]=\"unit\" i18n>\n {{ getUnitLabel(unit) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-slide-toggle\n style=\"margin-top: -20px;\"\n *ngIf=\"showAutoSlider()\"\n [checked]=\"model.auto\"\n (change)=\"toggleChange($event)\"\n [disabled]=\"disabled\"\n i18n=\"Size Settings|Size Auto\"\n >\n Auto\n </mat-slide-toggle>\n </div>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":52,"character":19},"member":"OnPush"}}]}],"members":{"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}],"getLabel":[{"__symbolic":"method"}],"toggleChange":[{"__symbolic":"method"}],"getUnits":[{"__symbolic":"method"}],"disableValueField":[{"__symbolic":"method"}],"showAutoSlider":[{"__symbolic":"method"}],"getUnitLabel":[{"__symbolic":"method"}]}},"ɵv":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-border","template":"\n <div class=\"group\" [class.three]=\"isEven()\">\n <mat-form-field appearance=\"outline\" *ngIf=\"hasOwnProperty('width')\">\n <mat-label i18n=\"Border Settings|Change Border Width\">Width</mat-label>\n <input\n matInput\n [(ngModel)]=\"border.width\"\n type=\"number\"\n min=\"0\"\n step=\"1\"\n (input)=\"markForCheck()\"\n i18n-placeholder\n placeholder=\"Border Settings|Change Border Width\"\n />\n </mat-form-field>\n <mat-form-field appearance=\"outline\" *ngIf=\"hasOwnProperty('radius')\">\n <mat-label i18n=\"Border Settings|Change Border Radius\">Radius</mat-label>\n <input\n matInput\n [(ngModel)]=\"border.radius\"\n type=\"number\"\n min=\"0\"\n step=\"1\"\n (input)=\"markForCheck()\"\n i18n-placeholder\n placeholder=\"Border Settings|Change Border Radius\"\n />\n </mat-form-field>\n <mat-form-field appearance=\"outline\" *ngIf=\"hasOwnProperty('style')\" style=\"min-width: 90px\">\n <mat-label i18n=\"Border Settings|Change Border Style\">Style</mat-label>\n <mat-select\n placeholder=\"Style\"\n [disabled]=\"!border.width\"\n [(value)]=\"border.style\"\n (selectionChange)=\"markForCheck()\"\n disableRipple\n >\n <mat-option *ngFor=\"let style of styleLabels\" [value]=\"style\">\n {{ getStyleLabel(style) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <pb-color [options]=\"border\" [disabled]=\"!border.width\" *ngIf=\"hasOwnProperty('color')\" key=\"color\"></pb-color>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n\n mat-form-field {\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":68,"character":19},"member":"OnPush"}}]}],"members":{"border":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"getStyleLabel":[{"__symbolic":"method"}],"markForCheck":[{"__symbolic":"method"}],"isEven":[{"__symbolic":"method"}],"hasOwnProperty":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"pb-color","styles":["\n :host {\n display: block;\n position: relative;\n }\n\n mat-form-field {\n width: 100%;\n }\n\n .choose-color {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n .current-color {\n width: 100%;\n height: 48px;\n border-radius: 5px;\n margin: 0.25em 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid rgba(0, 0, 0, 0.12);\n transition: background-color 500ms cubic-bezier(0.445, 0.05, 0.55, 0.95);\n }\n\n .choose-color.transparent .current-color {\n opacity: 0.5;\n pointer-events: none;\n }\n\n color-chrome {\n position: absolute;\n top: calc(100% - 1em);\n right: 0;\n z-index: 9;\n }\n "],"template":"\n <div class=\"group\" *ngIf=\"showTransparent\">\n <mat-slide-toggle\n [disabled]=\"disabled\"\n [(ngModel)]=\"transparent\"\n (change)=\"makeTransparentColor()\"\n i18n=\"Color settings|Make color transparent\"\n >\n Transparent\n </mat-slide-toggle>\n </div>\n <div class=\"group two\">\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Color settings|Change color\">Color</mat-label>\n <input matInput [disabled]=\"transparent || disabled\" (focus)=\"showColorPicker = false\" [(ngModel)]=\"currentColor\" type=\"text\" />\n </mat-form-field>\n <div class=\"choose-color\" [class.transparent]=\"transparent || disabled\">\n <div class=\"current-color\" (mouseover)=\"showColorPicker = !transparent\" [style.backgroundColor]=\"currentColor\"></div>\n <color-chrome\n [disableAlpha]=\"true\"\n *ngIf=\"showColorPicker\"\n (onChangeComplete)=\"changeColor($event)\"\n [color]=\"currentColor\"\n ></color-chrome>\n </div>\n </div>\n ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":84,"character":19},"member":"OnPush"}}]}],"members":{"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"showTransparent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":3}}]}],"key":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"onHostMouseLeave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":115,"character":3},"arguments":["mouseleave"]}]}],"changeColor":[{"__symbolic":"method"}],"makeTransparentColor":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-link","template":"\n <div class=\"group f-large\">\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Link Settings|Link\">Link</mat-label>\n <input matInput [(ngModel)]=\"link.href\" type=\"url\" placeholder=\"Link\" (blur)=\"markForCheck()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"Link Settings|Target\">Target</mat-label>\n <mat-select\n placeholder=\"Target\"\n i18n-placeholder=\"Link Settings|Target\"\n [(value)]=\"link.target\"\n disableRipple\n (selectionChange)=\"markForCheck()\"\n >\n <mat-option *ngFor=\"let target of getTargets()\" [value]=\"target\">\n {{ getTargetLabel(target) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":41,"character":19},"member":"OnPush"}}]}],"members":{"link":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}],"getTargets":[{"__symbolic":"method"}],"getTargetLabel":[{"__symbolic":"method"}]}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-align","template":"\n <mat-form-field appearance=\"outline\">\n <mat-label [ngSwitch]=\"mode\">\n <ng-container *ngSwitchCase=\"'vertical'\" i18n=\"Align Settings|Vertical Align\">Vertical Align</ng-container>\n <ng-container *ngSwitchDefault i18n=\"Align Settings|Align\">Align</ng-container>\n </mat-label>\n <mat-select [(ngModel)]=\"currentModel\" disableRipple [disabled]=\"disabled\">\n <mat-option *ngFor=\"let position of getPositions()\" [value]=\"position\">\n {{ getLabel(position) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n\n mat-form-field {\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"}}]}],"members":{"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"getLabel":[{"__symbolic":"method"}],"getPositions":[{"__symbolic":"method"}]}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-direction","template":"\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"settings|Direction\">Direction</mat-label>\n <mat-select\n i18n-placeholder=\"settings|Direction\"\n placeholder=\"Direction\"\n [(value)]=\"model.direction\"\n (selectionChange)=\"markForCheck()\"\n disableRipple\n >\n <mat-option *ngFor=\"let dir of getDirections()\" [value]=\"dir\">\n {{ getDirectionLabel(dir) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n\n mat-form-field {\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":39,"character":19},"member":"OnPush"}}]}],"members":{"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}],"getDirections":[{"__symbolic":"method"}],"getDirectionLabel":[{"__symbolic":"method"}]}},"ɵba":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"pb-back-repeat","template":"\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"settings|Background Repeat\">Repeat</mat-label>\n <mat-select [(value)]=\"model.repeat\" [disabled]=\"disabled\" disableRipple>\n <mat-option *ngFor=\"let repeat of getRepeats()\" [value]=\"repeat\">\n {{ getRepeatLabel(repeat) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n ","styles":["\n :host {\n display: block;\n width: 100%;\n }\n\n mat-form-field {\n width: 100%;\n }\n "],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":32,"character":19},"member":"OnPush"}}]}],"members":{"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"getRepeats":[{"__symbolic":"method"}],"getRepeatLabel":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-confirm-dialog","template":"\n <h2 mat-dialog-title>Are you sure?</h2>\n <mat-dialog-actions fxLayout fxLayoutAlign=\"space-between center\" fxLayoutGap=\"1rem\">\n <button mat-stroked-button mat-dialog-close=\"0\">No</button>\n <button mat-stroked-button color=\"warn\" mat-dialog-close=\"1\">Yes</button>\n </mat-dialog-actions>\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":22,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":22,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵbb"}]},{"__symbolic":"error","message":"Expression form not supported","line":22,"character":42,"module":"./lib/components/dialog.component"}]}]}},"ɵbc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"pb-image-upload","styles":["\n :host {\n display: block;\n }\n\n .chose-image {\n width: 100%;\n max-height: 60px;\n overflow: hidden;\n border-radius: 3px;\n line-height: 0;\n }\n\n .chose-image img {\n width: 100%;\n height: 60px;\n object-fit: cover;\n object-position: center;\n }\n\n .size {\n font-size: 80%;\n color: #ccc;\n }\n\n mat-form-field {\n margin-top: 0.5rem;\n }\n "],"template":"\n <div fxLayout fxLayoutAlign=\"space-between center\">\n <div class=\"image-info\" [fxFlex]=\"source ? '30%' : '60%'\" fxLayout fxLayoutGap=\"0.5em\" fxLayoutAlign=\"center center\">\n <div *ngIf=\"source\" class=\"chose-image\">\n <img [src]=\"source\" alt=\"image source\" />\n </div>\n <span *ngIf=\"!source\" style=\"width: 100%;\" i18n=\"Upload Image Settings|Upload an image\"> Upload an image </span>\n </div>\n <button\n type=\"button\"\n (click)=\"browse()\"\n [disabled]=\"browsing | async\"\n color=\"primary\"\n mat-stroked-button\n i18n=\"Upload Image Settings|Browse\"\n >\n Browse\n </button>\n </div>\n <mat-form-field appearance=\"outline\" style=\"width: 100%\">\n <mat-label i18n=\"Upload Image Settings|Image Source\">Image Source</mat-label>\n <input matInput [(ngModel)]=\"source\" type=\"url\" (input)=\"markForCheck()\" />\n </mat-form-field>\n ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":70,"character":19},"member":"OnPush"}}]}],"members":{"block":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"key":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PbUserImageUploaderService"},{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}],"browse":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"pb-block-settings","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":19,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":20,"character":17},"member":"None"},"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<ng-container *ngIf=\"block$ | async as currentBlock\">\n <mat-accordion>\n <mat-expansion-panel expanded *ngIf=\"hasProperty(currentBlock.options, 'font')\">\n <mat-expansion-panel-header i18n=\"settings|Font\">\n Font\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-color [options]=\"currentBlock.options\" key=\"color\"></pb-color>\n <pb-font-styles [font]=\"currentBlock.options.font\"></pb-font-styles>\n <pb-line-height *ngIf=\"currentBlock.type !== 'social'\" [lineHeight]=\"currentBlock.options.lineHeight\">\n </pb-line-height>\n </ng-template>\n </mat-expansion-panel>\n\n <ng-container *ngIf=\"currentBlock.type === 'image'\">\n <mat-expansion-panel expanded>\n <mat-expansion-panel-header i18n=\"settings|Image\">\n Image\n </mat-expansion-panel-header>\n <pb-image-upload [block]=\"currentBlock\"></pb-image-upload>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"settings|Image Attributes\">\n Attributes\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"group f-large\">\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"settings|Image Alt\">Alt</mat-label>\n <input matInput [(ngModel)]=\"currentBlock.options.title\" type=\"text\" i18n-placeholder\n placeholder=\"settings|Image Alt\" (input)=\"markForCheck()\" />\n </mat-form-field>\n <pb-align [model]=\"currentBlock.options\"></pb-align>\n </div>\n <pb-link [link]=\"currentBlock.options.link\"></pb-link>\n </ng-template>\n </mat-expansion-panel>\n </ng-container>\n\n <ng-container *ngIf=\"currentBlock.type === 'button'\">\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"settings|Button Text\">\n Button Text\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <mat-form-field appearance=\"outline\" style=\"width: 100%\">\n <mat-label i18n=\"settings|Button Text\">Button Text</mat-label>\n <input matInput [(ngModel)]=\"currentBlock.innerText\" type=\"text\" i18n-placeholder\n placeholder=\"settings|Button Text\" (input)=\"markForCheck()\" />\n </mat-form-field>\n </ng-template>\n </mat-expansion-panel>\n\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"settings|Background\">\n Background\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-color [options]=\"currentBlock.options\"></pb-color>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"settings|Button Attributes\">\n Attributes\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"group two\" style=\"padding-bottom: 0\">\n <pb-align [model]=\"currentBlock.options\" [disabled]=\"currentBlock.options.fullWidth\"></pb-align>\n <mat-slide-toggle style=\"margin-top: -24px\" [(ngModel)]=\"currentBlock.options.fullWidth\"\n (change)=\"markForCheck()\">\n <ng-container i18n=\"settings|Button Full Width\">Full Width</ng-container>\n </mat-slide-toggle>\n </div>\n <pb-link [link]=\"currentBlock.options.link\"></pb-link>\n <pb-padding [padding]=\"currentBlock.options.innerPadding\"></pb-padding>\n </ng-template>\n </mat-expansion-panel>\n </ng-container>\n\n <mat-expansion-panel [expanded]=\"currentBlock.type === 'spacer'\"\n *ngIf=\"hasProperty(currentBlock.options, 'width') || hasProperty(currentBlock.options, 'height')\">\n <mat-expansion-panel-header i18n=\"settings|Sizes\">\n Sizes\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-width-height *ngIf=\"hasProperty(currentBlock.options, 'width')\" [model]=\"currentBlock.options.width\"\n label=\"width\"></pb-width-height>\n <pb-width-height *ngIf=\"hasProperty(currentBlock.options, 'height')\" [model]=\"currentBlock.options.height\"\n label=\"height\"></pb-width-height>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel *ngIf=\"hasProperty(currentBlock.options, 'background')\">\n <mat-expansion-panel-header i18n=\"settings|Background\">\n Background\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-color [options]=\"currentBlock.options.background\"></pb-color>\n </ng-template>\n backgroundColor\n </mat-expansion-panel>\n\n <mat-expansion-panel [expanded]=\"currentBlock.type === 'divider'\"\n *ngIf=\"hasProperty(currentBlock.options, 'border')\">\n <mat-expansion-panel-header>\n <ng-container i18n=\"settings|Divider Styles\" *ngIf=\"currentBlock.type === 'divider'\">Styles</ng-container>\n <ng-container i18n=\"settings|Border\" *ngIf=\"currentBlock.type !== 'divider'\">Border</ng-container>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-border [border]=\"currentBlock.options.border\"></pb-border>\n </ng-template>\n </mat-expansion-panel>\n\n <ng-container *ngIf=\"currentBlock.type === 'social'\">\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"settings|Icons\">\n Icons\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <mat-form-field appearance=\"outline\" style=\"width: 100%\">\n <mat-label i18n=\"settings|Add new Network\">Add new Network</mat-label>\n <mat-select (selectionChange)=\"addSocialNetwork($event, currentBlock)\" [disabled]=\"!socialNetworks.length\">\n <mat-option style=\"text-transform: capitalize\" *ngFor=\"let link of socialNetworks(currentBlock)\"\n [value]=\"link\">\n {{ link }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel class=\"networks-list\" *ngFor=\"let network of currentBlock.networks\">\n <mat-expansion-panel-header style=\"text-transform: capitalize\">\n <img [class]=\"network.name\" [src]=\"getSocialIcon(network.name)\" [alt]=\"network.name\" />\n {{ network.name }}\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"networks-list-item\">\n <div class=\"item-info\">\n <mat-form-field matLine appearance=\"outline\">\n <mat-label i18n=\"settings|Social Network Label\">Label</mat-label>\n <input matInput autocomplete=\"off\" [(ngModel)]=\"network.label\"\n i18n-placeholder=\"settings|Social Network Label\" placeholder=\"Label\" type=\"text\"\n (input)=\"markForCheck()\" />\n </mat-form-field>\n <button mat-stroked-button color=\"warn\" (click)=\"removeSocialNetwork(network, currentBlock)\">\n <mat-icon>delete_forever</mat-icon>\n </button>\n </div>\n <mat-form-field matLine appearance=\"outline\">\n <mat-label style=\"text-transform: capitalize\">\n {{ network.name }} <ng-container i18n=\"settings|Social Network Link\">Link</ng-container>\n </mat-label>\n <input autocomplete=\"off\" matInput [(ngModel)]=\"network.href\" type=\"url\" (input)=\"markForCheck()\" />\n </mat-form-field>\n </div>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"settings|Social Styles\">\n Styles\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"group two\" style=\"padding-bottom: 0\">\n <mat-form-field appearance=\"outline\">\n <mat-label i18n=\"settings|Social Model\">Mode</mat-label>\n <mat-select (selectionChange)=\"markForCheck()\" i18n-placeholder=\"settings|Social Model\" placeholder=\"Mode\"\n [(value)]=\"currentBlock.options.mode\" disableRipple>\n <mat-option *ngFor=\"let mode of ['horizontal', 'vertical']\" [value]=\"mode\">\n {{ mode }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <pb-align [model]=\"currentBlock.options\"></pb-align>\n </div>\n <pb-line-height [units]=\"['px']\" [lineHeight]=\"currentBlock.options.iconSize\" label=\"Icon Size\">\n </pb-line-height>\n <pb-padding [padding]=\"currentBlock.options.innerPadding\"></pb-padding>\n </ng-template>\n </mat-expansion-panel>\n </ng-container>\n\n <mat-expansion-panel *ngIf=\"hasProperty(currentBlock.options, 'padding')\">\n <mat-expansion-panel-header i18n=\"settings|Padding\">\n Padding\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-padding [padding]=\"currentBlock.options.padding\"></pb-padding>\n </ng-template>\n </mat-expansion-panel>\n </mat-accordion>\n</ng-container>\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */.networks-list mat-expansion-panel-header .mat-content{place-items:center}.networks-list mat-expansion-panel-header img{width:20px;margin:0 .5rem 0 0;border-radius:3px}.networks-list mat-expansion-panel-header img.facebook{background-color:#3a5898}.networks-list mat-expansion-panel-header img.twitter{background-color:#d95988}.networks-list mat-expansion-panel-header img.github{background-color:#000}.networks-list mat-expansion-panel-header img.instagram{background-color:#3f729b}.networks-list mat-expansion-panel-header img.web{background-color:#4bade9}.networks-list mat-expansion-panel-header img.snapchat{background-color:#fffa54}.networks-list mat-expansion-panel-header img.youtube{background-color:#ea3323}.networks-list mat-expansion-panel-header img.vimeo{background-color:#53b4e7}.networks-list mat-expansion-panel-header img.medium{background-color:#000}.networks-list mat-expansion-panel-header img.soundcloud{background-color:#ef7f31}.networks-list mat-expansion-panel-header img.dribbble{background-color:#d95988}.networks-list mat-expansion-panel-header img.pinterest{background-color:#bd071c}.networks-list mat-expansion-panel-header img.linkedin{background-color:#0077b5}.networks-list mat-expansion-panel-header img.tumblr{background-color:#334356}.networks-list mat-expansion-panel-header img.xing{background-color:#296365}.networks-list mat-expansion-panel-header img.tiktok{background-color:#000}.networks-list-item{width:100%;display:grid;row-gap:.5rem}.networks-list-item .item-info{display:grid;grid-template-columns:2fr 1fr;-moz-column-gap:.5rem;column-gap:.5rem}.networks-list-item .item-info button{align-self:baseline;margin:.25rem 0;height:50px}.networks-list-item .item-info ::ng-deep .mat-form-field-wrapper{padding-bottom:0;margin-bottom:0}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_SOCIAL_NETWORKS"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]}]}],"hasProperty":[{"__symbolic":"method"}],"markForCheck":[{"__symbolic":"method"}],"socialNetworks":[{"__symbolic":"method"}],"addSocialNetwork":[{"__symbolic":"method"}],"removeSocialNetwork":[{"__symbolic":"method"}],"getSocialIcon":[{"__symbolic":"method"}]}},"ɵbe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"pb-structure-settings","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":13,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":14,"character":17},"member":"None"},"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<mat-accordion *ngIf=\"currentStructure$ | async as structure\">\n <mat-expansion-panel expanded>\n <mat-expansion-panel-header i18n=\"Structure settings|Change structure Background\">\n Background\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-color [options]=\"structure.options.background\" key=\"color\"></pb-color>\n <pb-image-upload [block]=\"structure.options.background\" key=\"url\" style=\"margin-bottom: 1em\"></pb-image-upload>\n <pb-back-repeat [disabled]=\"!structure.options.background.url\"\n [model]=\"structure.options.background\"></pb-back-repeat>\n <pb-width-height [disabled]=\"!structure.options.background.url\" [model]=\"structure.options.background.size\"\n label=\"size\">\n </pb-width-height>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"Structure settings|Change structure border\">\n Border\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-border [border]=\"structure.options.border\"></pb-border>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"Structure settings|Change structure padding\">\n Padding\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-padding [padding]=\"structure.options.padding\"></pb-padding>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"Structure settings|Change structure margin\">\n Margin\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-margin [margin]=\"structure.options.margin\"></pb-margin>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"Structure settings|Change structure layout\">\n Layout\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-gaps [gaps]=\"structure.options.gaps\"></pb-gaps>\n <mat-slide-toggle [disabled]=\"structure.type === 'cols_1'\" style=\"margin-top: -24px;\"\n [(ngModel)]=\"structure.options.disableResponsive\" i18n=\"Structure settings|Disable Responsive\"\n (change)=\"markForCheck()\">\n Disable Responsive\n </mat-slide-toggle>\n <mat-slide-toggle\n [(ngModel)]=\"structure.options.fullWidth\" i18n=\"Structure settings|Full Width\"\n (change)=\"markForCheck()\">\n Make section full width\n </mat-slide-toggle>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel *ngFor=\"let column of structure.options.columns; let key = index\">\n <mat-expansion-panel-header>\n <ng-container i18n=\"Structure settings|Structure Column\">Column</ng-container>\n {{ key + 1 }}\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <h3 class=\"divider\">\n <span i18n=\"Structure settings|Column Background\">Column Background</span>\n </h3>\n <pb-color [options]=\"column.background\" [showTransparent]=\"true\" key=\"color\"></pb-color>\n <h3 class=\"divider\">\n <span i18n=\"Structure settings|Column Border\">Column Border</span>\n </h3>\n <pb-border [border]=\"column.border\"></pb-border>\n <h3 class=\"divider\">\n <span i18n=\"Structure settings|Column Vertical Align\">Vertical Align</span>\n </h3>\n <pb-align [model]=\"column\" mode=\"vertical\"></pb-align>\n </ng-template>\n </mat-expansion-panel>\n</mat-accordion>\n","styles":[":host{display:block}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"}]}],"markForCheck":[{"__symbolic":"method"}]}},"ɵbf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"pb-general-settings","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":12,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":13,"character":17},"member":"None"},"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<ng-container *ngIf=\"generalOptions$ | async as general\">\n <div class=\"mat-expansion-panel-body\" style=\"margin: 24px 0\">\n <mat-form-field appearance=\"outline\" style=\"width: 100%\">\n <mat-label i18n=\"General Settings|Email Name\">Email Name</mat-label>\n <input matInput [(ngModel)]=\"general.name\">\n </mat-form-field>\n <mat-form-field appearance=\"outline\" style=\"width: 100%\">\n <mat-label i18n=\"General Settings|Email Preview Text\">Preview Text</mat-label>\n <textarea matInput [(ngModel)]=\"general.previewText\"></textarea>\n <mat-hint i18n=\"General Settings|Email Preview Text Hint\">\n This text is displayed in the inbox of the recipient.\n </mat-hint>\n </mat-form-field>\n </div>\n\n <mat-accordion>\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"General Settings|Email Background\">\n Background\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-color [options]=\"general.background\" key=\"color\"></pb-color>\n <!-- <pb-image-upload [block]=\"structure.options.background\" key=\"url\" style=\"margin-bottom: 1em\"></pb-image-upload>\n <pb-back-repeat [disabled]=\"!structure.options.background.url\" [model]=\"structure.options.background\">\n </pb-back-repeat>\n <pb-width-height [model]=\"structure.options.background.size\" label=\"Background Size\"></pb-width-height> -->\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"General Settings|Email Attributes\">\n Attributes\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-width-height [model]=\"general.width\" label=\"width\"></pb-width-height>\n <pb-direction [model]=\"general\"></pb-direction>\n </ng-template>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header i18n=\"General Settings|Email Padding\">\n Padding\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <pb-padding [padding]=\"general.padding\"></pb-padding>\n </ng-template>\n </mat-expansion-panel>\n </mat-accordion>\n</ng-container>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}]}},"ɵbg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"pb-upload-bottom-sheet-dialog","template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<mat-nav-list>\n <mat-list-item (click)=\"openBrowserModal($event)\">\n <div *ngIf=\"!uploading\">\n <span mat-line i18n=\"upload|Browse images from computer\">Browse images from computer</span>\n </div>\n <ng-container *ngIf=\"uploading\">\n <img matListAvatar [src]=\"previewLink()\" />\n <span mat-line i18n=\"upload|Uploading Message\">Uploading ...</span>\n <span mat-line>{{ imageInfo }}</span>\n </ng-container>\n </mat-list-item>\n <mat-progress-bar *ngIf=\"uploading\" mode=\"buffer\" [value]=\"progress | async\"></mat-progress-bar>\n</mat-nav-list>\n<input type=\"file\" accept=\"image/*\" fxHide #uploadInput (change)=\"uploadInputChanged()\" />\n","styles":[""]}]}],"members":{"uploadInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":24,"character":3},"arguments":["uploadInput",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":31,"character":23},{"__symbolic":"reference","name":"PbEmailBuilderService"},{"__symbolic":"reference","name":"PbUserRestApiService"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","name":"MatBottomSheetRef","module":"@angular/material/bottom-sheet","arguments":[{"__symbolic":"reference","name":"ɵbg"}]}]}],"previewLink":[{"__symbolic":"method"}],"openBrowserModal":[{"__symbolic":"method"}],"uploadInputChanged":[{"__symbolic":"method"}],"_startUploading":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"pb-upload-image-gallery","template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<div fxLayout=\"column\" style=\"height: 100%;\">\n <h2 mat-dialog-title i18n=\"image-gallery|Modal Image gallery header\">Image Gallery</h2>\n <div class=\"mat-typography gallery-list-wrapper\" fxLayout fxLayoutGap=\"1rem\" fxFlex>\n <mat-list fxFlex=\"200px\">\n <mat-list-item (click)=\"changeCurrentMenuItem('gallery')\" [class.active]=\"currentMenuItem === 'gallery'\"\n i18n=\"image-gallery|Image list\">\n Gallery Image list\n </mat-list-item>\n <mat-list-item (click)=\"changeCurrentMenuItem('upload')\" [class.active]=\"currentMenuItem === 'upload'\"\n i18n=\"image-gallery|Upload an image\">\n Upload an image\n </mat-list-item>\n </mat-list>\n\n <ng-container *ngIf=\"currentMenuItem === 'gallery'\">\n <ng-container *ngIf=\"imageCategoryList.length;else emptyImageList\">\n <cdk-virtual-scroll-viewport itemSize=\"150\" [minBufferPx]=\"150 * 10\" fxFlex\n class=\"gallery-list\">\n <div *cdkVirtualFor=\"let imagePath of imageCategoryList\" class=\"gallery-list-item\"\n (click)=\"choseImage = imagePath\" i18n-matTooltip=\"image-gallery|Click to choose message\"\n matTooltip=\"Click to choose\">\n <img [src]=\"imagePath\" />\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"currentMenuItem === 'upload'\">\n <div class=\"upload-image\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFlex fxLayoutGap=\"1rem\">\n <label class=\"upload-image-item\" [class.empty]=\"!uploadImagePreview\">\n <div class=\"upload-image-item-overview\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <mat-icon>backup</mat-icon>\n </div>\n <img class=\"upload-image-item-preview\" *ngIf=\"uploadImagePreview\" [src]=\"uploadImagePreview\" />\n <input type=\"file\" fxHide pattern=\"image/*\" (change)=\"previewImage($event)\">\n </label>\n <button mat-flat-button color=\"primary\" (click)=\"startUploading()\" i18n=\"image-gallery|Upload and insert into template\">\n Upload and insert into template\n </button>\n </div>\n </ng-container>\n </div>\n <mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close i18n=\"actions|Undo\">Cancel</button>\n <button mat-stroked-button color=\"primary\" [disabled]=\"!choseImage\" (click)=\"addImageToTemplate()\"\n i18n=\"actions|Start\">\n Add to template\n </button>\n </mat-dialog-actions>\n</div>\n\n\n<ng-template #emptyImageList>\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"empty-category-notification\">\n <mat-icon>notifications</mat-icon>\n <h2 i18n=\"image-gallery|Image list is empty message\">Image list is empty!</h2>\n </div>\n</ng-template>\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */mat-list{background-color:#fff}mat-list mat-list-item{cursor:pointer}mat-list mat-list-item.active{background-color:#ccc}.gallery-list ::ng-deep .cdk-virtual-scroll-content-wrapper{display:grid;gap:.3rem;grid-template:auto/repeat(4,1fr)}.gallery-list-item{height:120px;background-color:#ccc;cursor:pointer}.gallery-list-item img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.upload-image-item{width:80%;height:200px;background-color:#ccc;position:relative;border-radius:3px;padding:1em;text-align:center}.upload-image-item.empty .upload-image-item-overview,.upload-image-item:hover .upload-image-item-overview{opacity:1}.upload-image-item-overview{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;cursor:pointer;transition:opacity .5s linear}.upload-image-item-overview mat-icon{height:50px;width:50px;font-size:50px}.upload-image-item-preview{max-height:100%}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":31,"character":12}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":5},"arguments":[{"__symbolic":"reference","name":"PB_CONFIG"}]}],null,null,null,null,null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","name":"IForRootConf"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵbh"},{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":34,"character":23},{"__symbolic":"reference","name":"PbUserRestApiService"},{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","name":"ɵb"}]}],"changeCurrentMenuItem":[{"__symbolic":"method"}],"addImageToTemplate":[{"__symbolic":"method"}],"previewImage":[{"__symbolic":"method"}],"startUploading":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"pb-template-list-dialog","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":16,"character":19},"member":"OnPush"},"template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<div fxLayout=\"column\" style=\"height: 100%;\">\n <h2 mat-dialog-title i18n=\"templates|Modal template header\">Custom Templates</h2>\n <div class=\"mat-typography template-list-wrapper\" fxLayout fxLayoutGap=\"1rem\" fxFlex>\n <mat-list fxFlex=\"200px\" dense>\n <mat-list-item (click)=\"chageCategory('latest')\" [ngClass]=\"{active: (chooseCategory$ | async) === 'latest'}\"\n i18n=\"templates|category name\">\n Latest\n </mat-list-item>\n <mat-divider></mat-divider>\n <mat-list-item *ngFor=\"let list of getTemplatesList()\" (click)=\"chageCategory(list.category)\"\n [ngClass]=\"{active: (chooseCategory$ | async) === list.category}\" i18n=\"templates|category name\">\n {{list.category}}\n </mat-list-item>\n </mat-list>\n\n <ng-container *ngIf=\"currentCategoryTemplates$ | async as templates;else emptyCategory\">\n <cdk-virtual-scroll-viewport itemSize=\"150\" [maxBufferPx]=\"150\" fxFlex>\n <div class=\"template-list\">\n <div *cdkVirtualFor=\"let template of templates\" class=\"template-list-item\" (click)=\"chooseTemplate(template)\"\n i18n-matTooltip=\"templates|Click to choose message\" matTooltip=\"Click to choose\">\n <img [src]=\"template.thumbPath\" [alt]=\"template.title\" />\n <div class=\"description\">\n <h3>{{template.title}}</h3>\n </div>\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n </div>\n <mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close i18n=\"actions|Undo\">Undo</button>\n <button mat-button (click)=\"startBuilding()\" [disabled]=\"!csdTemplate\" i18n=\"actions|Start\">\n Start\n </button>\n </mat-dialog-actions>\n</div>\n\n\n<ng-template #emptyCategory>\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"empty-category-notification\">\n <mat-icon>notifications</mat-icon>\n <h2 i18n=\"templates|No templates in current category message\">This category is empty!</h2>\n </div>\n</ng-template>\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */:host{display:block;height:inherit}.template-list-wrapper mat-list{position:sticky;top:0}.template-list-wrapper mat-list mat-list-item{text-transform:capitalize;cursor:pointer;border-radius:3px;transition:all .3s linear}.template-list-wrapper mat-list mat-list-item.active,.template-list-wrapper mat-list mat-list-item:hover{background-color:#f3f3f3}.template-list-wrapper .template-list{display:grid;gap:1rem;grid-template:150px/repeat(3,1fr)}@media screen and (max-width:699px){.template-list-wrapper .template-list{grid-template:150px/repeat(2,1fr)}}.template-list-wrapper .template-list-item{border-radius:3px;overflow:hidden;border:1px solid #ccc;padding:.5rem;position:relative;background-color:#f3f3f3}.template-list-wrapper .template-list-item img{-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;height:calc(200px - 1rem);width:100%;cursor:pointer;animation:objectPosition 3s linear infinite alternate;animation-play-state:paused}.template-list-wrapper .template-list-item .description{position:absolute;bottom:0;right:0;left:0;background-color:#fff;padding:.5rem;opacity:1;transition:all .3s linear;text-transform:capitalize}.template-list-wrapper .template-list-item .description h3{margin:0}.template-list-wrapper .template-list-item:hover img{animation-play-state:running}.template-list-wrapper .template-list-item:hover .description{bottom:-44px;opacity:.6}.empty-category-notification mat-icon{height:50px;width:50px;font-size:50px}.empty-category-notification h2{text-transform:uppercase}@keyframes objectPosition{to{-o-object-position:bottom;object-position:bottom}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":30,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵbi"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"IUserTemplateCategory"}]}]}],"chooseTemplate":[{"__symbolic":"method"}],"chageCategory":[{"__symbolic":"method"}],"getTemplatesList":[{"__symbolic":"method"}],"startBuilding":[{"__symbolic":"method"}]}},"ɵbj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"pb-import-dialog","template":"<!--\n ~ Copyright (c) 2024 Pobuca.\n ~ All rights reserved.\n -->\n\n<mat-nav-list>\n <mat-list-item (click)=\"openBrowserModal($event)\">\n <div *ngIf=\"!importing\">\n <span mat-line i18n=\"import|Import JSON file\">Import JSON file</span>\n </div>\n <ng-container *ngIf=\"importing\">\n <span mat-line i18n=\"import|Importing in progress\">Importing in progress ...</span>\n <!-- <span mat-line>{{ imageInfo }}</span> -->\n </ng-container>\n </mat-list-item>\n <mat-progress-bar *ngIf=\"importing\" mode=\"buffer\" value=\"100\"></mat-progress-bar>\n</mat-nav-list>\n<input type=\"file\" accept=\"application/json\" fxHide #uploadInput (change)=\"startImporting()\" />\n","styles":["/*!\n * Copyright (c) 2024 Pobuca.\n * All rights reserved.\n */"]}]}],"members":{"uploadInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":19,"character":3},"arguments":["uploadInput",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":19,"character":36},"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PbUserMiddlewaresService"},{"__symbolic":"reference","name":"MatBottomSheetRef","module":"@angular/material/bottom-sheet","arguments":[{"__symbolic":"reference","name":"ɵbj"},{"__symbolic":"reference","name":"PBEmail"}]}]}],"openBrowserModal":[{"__symbolic":"method"}],"startImporting":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":15},"arguments":[{"__symbolic":"reference","name":"PB_CONFIG"}]}],null],"parameters":[{"__symbolic":"reference","name":"IForRootConf"},{"__symbolic":"reference","name":"ɵb"}]}],"intercept":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵbl":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":12,"character":34},"arguments":["Library environment",{"__symbolic":"error","message":"Lambda not supported","line":14,"character":11,"module":"./lib/tokens/private-tokens"}]}},"origins":{"IForRootConf":"./lib/interfaces/interfaces","IMjmlServerResponseErrors":"./lib/interfaces/interfaces","IMjmlServerResponse":"./lib/interfaces/interfaces","TStructureTypes":"./lib/interfaces/interfaces","TDirection":"./lib/interfaces/interfaces","TUnits":"./lib/interfaces/interfaces","TAlign":"./lib/interfaces/interfaces","TVerticalAlign":"./lib/interfaces/interfaces","TLineHeight":"./lib/interfaces/interfaces","TLinkTarget":"./lib/interfaces/interfaces","TFontStyle":"./lib/interfaces/interfaces","TFontWeight":"./lib/interfaces/interfaces","TBackgroundRepeat":"./lib/interfaces/interfaces","IBorder":"./lib/interfaces/interfaces","IPadding":"./lib/interfaces/interfaces","IMargin":"./lib/interfaces/interfaces","IWidthHeight":"./lib/interfaces/interfaces","IBackground":"./lib/interfaces/interfaces","IFont":"./lib/interfaces/interfaces","IFontFamily":"./lib/interfaces/interfaces","ILineHeight":"./lib/interfaces/interfaces","ILink":"./lib/interfaces/interfaces","IStructureColumnOptions":"./lib/interfaces/interfaces","IStructureOptions":"./lib/interfaces/interfaces","IStructure":"./lib/interfaces/interfaces","IBlockState":"./lib/interfaces/interfaces","ITextBlockOptions":"./lib/interfaces/interfaces","IImageBLockOptions":"./lib/interfaces/interfaces","IButtonBlockOptions":"./lib/interfaces/interfaces","IDividerBlockOptions":"./lib/interfaces/interfaces","ISpacerBlockOptions":"./lib/interfaces/interfaces","ISocialBlockOptions":"./lib/interfaces/interfaces","ISocialNetwork":"./lib/interfaces/interfaces","IGeneralOptions":"./lib/interfaces/interfaces","IPBEmail":"./lib/interfaces/interfaces","IUserModule":"./lib/interfaces/interfaces","ICustomModule":"./lib/interfaces/interfaces","IUserTemplate":"./lib/interfaces/interfaces","ICustomTemplate":"./lib/interfaces/interfaces","IUserTemplateCategory":"./lib/interfaces/interfaces","IUserImageCategory":"./lib/interfaces/interfaces","ETemplatesStorage":"./lib/interfaces/interfaces","PB_DEFAULT_SOCIAL_NETWORKS":"./lib/tokens/tokens","PB_SOCIAL_NETWORKS":"./lib/tokens/tokens","PB_DEFAULT_GOOGLE_FONTS":"./lib/tokens/tokens","PB_GOOGLE_FONTS":"./lib/tokens/tokens","PB_DEFAULT_FALLBACK_FONTS":"./lib/tokens/tokens","PB_FALLBACK_FONTS":"./lib/tokens/tokens","PB_DEFAULT_STRUCTURES":"./lib/tokens/tokens","PB_STRUCTURES":"./lib/tokens/tokens","PB_DEFAULT_BLOCKS":"./lib/tokens/tokens","PB_BLOCKS":"./lib/tokens/tokens","PB_DEFAULT_CONFIG":"./lib/tokens/tokens","PB_CONFIG":"./lib/tokens/tokens","PB_STORAGE_FACTORY":"./lib/tokens/tokens","PB_TEMPLATES_TEMPORARY_STORAGE":"./lib/tokens/tokens","cloneDeep":"./lib/utils","isEqual":"./lib/utils","defaultsDeep":"./lib/utils","createBorder":"./lib/utils","createPadding":"./lib/utils","createMargin":"./lib/utils","createFont":"./lib/utils","createLineHeight":"./lib/utils","createBackground":"./lib/utils","createWidthHeight":"./lib/utils","bytesToSize":"./lib/utils","getAssetByPath":"./lib/utils","deferOf":"./lib/utils","Defaults":"./lib/classes/DefaultEmail","PBEmail":"./lib/classes/DefaultEmail","TBlocksOptions":"./lib/classes/Elements","AIPBlock":"./lib/classes/Elements","TextBlock":"./lib/classes/Elements","ImageBlock":"./lib/classes/Elements","ButtonBlock":"./lib/classes/Elements","DividerBlock":"./lib/classes/Elements","SpacerBlock":"./lib/classes/Elements","SocialBlock":"./lib/classes/Elements","TBlocks":"./lib/classes/Elements","defaultColumnsOptions":"./lib/classes/Structure","Structure":"./lib/classes/Structure","PbEmailBuilderService":"./lib/pb-email-builder.service","TExportType":"./lib/services/user-middleware-service/pb-middlewares.service","TImportType":"./lib/services/user-middleware-service/pb-middlewares.service","IAddStructureEvent":"./lib/services/user-middleware-service/pb-middlewares.service","IAddBlockEvent":"./lib/services/user-middleware-service/pb-middlewares.service","IPreviewToggleButton":"./lib/services/user-middleware-service/pb-middlewares.service","PbUserMiddlewaresService":"./lib/services/user-middleware-service/pb-middlewares.service","IEmailAndGoogleFonts":"./lib/services/user-rest-api-service/user-rest-api.service","PbUserRestApiService":"./lib/services/user-rest-api-service/user-rest-api.service","PbStorageService":"./lib/services/pb-storage/pb-storage.service","FreeUsersImageUploader":"./lib/services/user-image-uploader-service","PbUserImageUploaderService":"./lib/services/user-image-uploader-service/user-image-uploader.service","createCustomRestApiService":"./lib/pb-email-builder.module","createUserMiddlewareService":"./lib/pb-email-builder.module","createUsersIpStorage":"./lib/pb-email-builder.module","createUserUploaderService":"./lib/pb-email-builder.module","PbEmailBuilderModule":"./lib/pb-email-builder.module","PbEmailBuilderComponent":"./lib/pb-email-builder.component","TPreviewDevice":"./lib/components/preview.component","PreviewTemplateComponent":"./lib/components/preview.component","SlugifyPipe":"./lib/pipes/slugify.pipe","ɵa":"./lib/services/internals/pb-email-object-store/pb-email-object-store.service","ɵb":"./lib/services/internals/user-interfaces/user-interface.service","ɵc":"./lib/services/user-rest-api-service","ɵd":"./lib/services/pb-storage","ɵe":"./lib/components/structure/structure.component","ɵf":"./lib/components/block/block.component","ɵg":"./lib/directives/dynamic-component.directive","ɵh":"./lib/elements/text-element/text-element.component","ɵi":"./lib/elements/abstract-block","ɵj":"./lib/elements/image/image.component","ɵk":"./lib/elements/button/button.component","ɵl":"./lib/elements/divider/divider.component","ɵm":"./lib/elements/spacer/spacer.component","ɵn":"./lib/elements/social/social.component","ɵo":"./lib/components/builder-container/builder-container.component","ɵp":"./lib/groups/font-styles","ɵq":"./lib/groups/padding","ɵr":"./lib/groups/margin","ɵs":"./lib/groups/gaps","ɵt":"./lib/groups/line-height","ɵu":"./lib/groups/width-height","ɵv":"./lib/groups/border","ɵw":"./lib/groups/color","ɵx":"./lib/groups/link","ɵy":"./lib/groups/align","ɵz":"./lib/groups/direction","ɵba":"./lib/groups/back-repeat","ɵbb":"./lib/components/dialog.component","ɵbc":"./lib/groups/upload-image","ɵbd":"./lib/components/block-settings/block-settings.component","ɵbe":"./lib/components/structure-settings/structure-settings.component","ɵbf":"./lib/components/general-settings/general-settings.component","ɵbg":"./lib/services/user-image-uploader-service/upload-bottom-sheet-dialog/upload-bottom-sheet-dialog.component","ɵbh":"./lib/services/user-image-uploader-service/upload-image-gallery/upload-image-gallery.component","ɵbi":"./lib/components/template-list-dialog/template-list-dialog.component","ɵbj":"./lib/components/import-dialog/import-dialog.component","ɵbk":"./lib/interceptors/pb-interceptor.interceptor","ɵbl":"./lib/tokens/private-tokens"},"importAs":"@pobuca/email-builder"}
@@ -0,0 +1,16 @@
1
+ export * from './lib/interfaces/interfaces';
2
+ export * from './lib/tokens/tokens';
3
+ export * from './lib/utils';
4
+ export * from './lib/classes/DefaultEmail';
5
+ export * from './lib/classes/Elements';
6
+ export * from './lib/classes/Structure';
7
+ export * from './lib/pb-email-builder.service';
8
+ export * from './lib/services/user-middleware-service/pb-middlewares.service';
9
+ export * from './lib/services/user-rest-api-service/user-rest-api.service';
10
+ export * from './lib/services/pb-storage/pb-storage.service';
11
+ export { FreeUsersImageUploader } from './lib/services/user-image-uploader-service';
12
+ export * from './lib/services/user-image-uploader-service/user-image-uploader.service';
13
+ export * from './lib/pb-email-builder.module';
14
+ export * from './lib/pb-email-builder.component';
15
+ export * from './lib/components/preview.component';
16
+ export * from './lib/pipes/slugify.pipe';