@taon-dev/cms 21.0.23 → 21.0.24

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 (2826) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.de-DE.i18n.data-DReDYxc3.mjs +40 -0
  3. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.de-DE.i18n.data-DReDYxc3.mjs.map +1 -0
  4. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.en-US.i18n.data-NgfYUqQD.mjs +39 -0
  5. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.en-US.i18n.data-NgfYUqQD.mjs.map +1 -0
  6. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-Bv5Wip--.mjs +41 -0
  7. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-Bv5Wip--.mjs.map +1 -0
  8. package/browser/fesm2022/cms-browser-taon-cms-comment.controller.ts.de-DE.i18n.data-52JuNZfu.mjs +116 -0
  9. package/browser/fesm2022/cms-browser-taon-cms-comment.controller.ts.de-DE.i18n.data-52JuNZfu.mjs.map +1 -0
  10. package/browser/fesm2022/cms-browser-taon-cms-comment.controller.ts.en-US.i18n.data-CJCvBBU_.mjs +95 -0
  11. package/browser/fesm2022/cms-browser-taon-cms-comment.controller.ts.en-US.i18n.data-CJCvBBU_.mjs.map +1 -0
  12. package/browser/fesm2022/cms-browser-taon-cms-comment.controller.ts.pl-PL.i18n.data-BJs3ls4V.mjs +116 -0
  13. package/browser/fesm2022/cms-browser-taon-cms-comment.controller.ts.pl-PL.i18n.data-BJs3ls4V.mjs.map +1 -0
  14. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data-Dg4Nssz5.mjs +91 -0
  15. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data-Dg4Nssz5.mjs.map +1 -0
  16. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data-Dg-44KdK.mjs +75 -0
  17. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data-Dg-44KdK.mjs.map +1 -0
  18. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data-DNxKVNzr.mjs +91 -0
  19. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data-DNxKVNzr.mjs.map +1 -0
  20. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data-DDK-2rLR.mjs +56 -0
  21. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data-DDK-2rLR.mjs.map +1 -0
  22. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data-xFeXpn1o.mjs +47 -0
  23. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data-xFeXpn1o.mjs.map +1 -0
  24. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data-DYWK01lP.mjs +56 -0
  25. package/browser/fesm2022/cms-browser-taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data-DYWK01lP.mjs.map +1 -0
  26. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.component.ts.de-DE.i18n.data-B7SytbJB.mjs +10 -0
  27. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.component.ts.de-DE.i18n.data-B7SytbJB.mjs.map +1 -0
  28. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.component.ts.en-US.i18n.data-D9bcUBff.mjs +10 -0
  29. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.component.ts.en-US.i18n.data-D9bcUBff.mjs.map +1 -0
  30. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data-DdHRI05H.mjs +10 -0
  31. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data-DdHRI05H.mjs.map +1 -0
  32. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data-DlfHgbLQ.mjs +26 -0
  33. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data-DlfHgbLQ.mjs.map +1 -0
  34. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.routes.ts.en-US.i18n.data-r7UvcnjQ.mjs +23 -0
  35. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.routes.ts.en-US.i18n.data-r7UvcnjQ.mjs.map +1 -0
  36. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data-s7BuhcAO.mjs +26 -0
  37. package/browser/fesm2022/cms-browser-taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data-s7BuhcAO.mjs.map +1 -0
  38. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.html.de-DE.i18n.data-CUilGJFI.mjs +71 -0
  39. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.html.de-DE.i18n.data-CUilGJFI.mjs.map +1 -0
  40. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.html.en-US.i18n.data-B-xBu0eV.mjs +59 -0
  41. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.html.en-US.i18n.data-B-xBu0eV.mjs.map +1 -0
  42. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data-CUaWpxCu.mjs +71 -0
  43. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data-CUaWpxCu.mjs.map +1 -0
  44. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data-CuWrfki8.mjs +26 -0
  45. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data-CuWrfki8.mjs.map +1 -0
  46. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.ts.en-US.i18n.data-CDHSnoqj.mjs +23 -0
  47. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.ts.en-US.i18n.data-CDHSnoqj.mjs.map +1 -0
  48. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data-CLTOHTxh.mjs +26 -0
  49. package/browser/fesm2022/cms-browser-taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data-CLTOHTxh.mjs.map +1 -0
  50. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.html.de-DE.i18n.data-e8w9GPxd.mjs +46 -0
  51. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.html.de-DE.i18n.data-e8w9GPxd.mjs.map +1 -0
  52. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.html.en-US.i18n.data-B3f9R__Z.mjs +39 -0
  53. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.html.en-US.i18n.data-B3f9R__Z.mjs.map +1 -0
  54. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data-CsGo3W2S.mjs +46 -0
  55. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data-CsGo3W2S.mjs.map +1 -0
  56. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data-DJN7ZL2u.mjs +26 -0
  57. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data-DJN7ZL2u.mjs.map +1 -0
  58. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.ts.en-US.i18n.data-C5wx6com.mjs +23 -0
  59. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.ts.en-US.i18n.data-C5wx6com.mjs.map +1 -0
  60. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data-CzLF2vI7.mjs +26 -0
  61. package/browser/fesm2022/cms-browser-taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data-CzLF2vI7.mjs.map +1 -0
  62. package/browser/fesm2022/cms-browser-taon-cms-comments.component.html.de-DE.i18n.data-C5LJt3zL.mjs +81 -0
  63. package/browser/fesm2022/cms-browser-taon-cms-comments.component.html.de-DE.i18n.data-C5LJt3zL.mjs.map +1 -0
  64. package/browser/fesm2022/cms-browser-taon-cms-comments.component.html.en-US.i18n.data-CjSP2zz1.mjs +67 -0
  65. package/browser/fesm2022/cms-browser-taon-cms-comments.component.html.en-US.i18n.data-CjSP2zz1.mjs.map +1 -0
  66. package/browser/fesm2022/cms-browser-taon-cms-comments.component.html.pl-PL.i18n.data-DhxT4DFa.mjs +81 -0
  67. package/browser/fesm2022/cms-browser-taon-cms-comments.component.html.pl-PL.i18n.data-DhxT4DFa.mjs.map +1 -0
  68. package/browser/fesm2022/cms-browser-taon-cms-comments.component.ts.de-DE.i18n.data-BMFIsFQA.mjs +36 -0
  69. package/browser/fesm2022/cms-browser-taon-cms-comments.component.ts.de-DE.i18n.data-BMFIsFQA.mjs.map +1 -0
  70. package/browser/fesm2022/cms-browser-taon-cms-comments.component.ts.en-US.i18n.data-CcajJkUT.mjs +31 -0
  71. package/browser/fesm2022/cms-browser-taon-cms-comments.component.ts.en-US.i18n.data-CcajJkUT.mjs.map +1 -0
  72. package/browser/fesm2022/cms-browser-taon-cms-comments.component.ts.pl-PL.i18n.data-DHQKm-Vy.mjs +36 -0
  73. package/browser/fesm2022/cms-browser-taon-cms-comments.component.ts.pl-PL.i18n.data-DHQKm-Vy.mjs.map +1 -0
  74. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.de-DE.i18n.data-Chqn9tkD.mjs +55 -0
  75. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.de-DE.i18n.data-Chqn9tkD.mjs.map +1 -0
  76. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.en-US.i18n.data-uuSIkn9i.mjs +55 -0
  77. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.en-US.i18n.data-uuSIkn9i.mjs.map +1 -0
  78. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-CO9I-XkI.mjs +55 -0
  79. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-CO9I-XkI.mjs.map +1 -0
  80. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.de-DE.i18n.data-DHjZfsX1.mjs +46 -0
  81. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.de-DE.i18n.data-DHjZfsX1.mjs.map +1 -0
  82. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.en-US.i18n.data-DVgKXqkn.mjs +39 -0
  83. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.en-US.i18n.data-DVgKXqkn.mjs.map +1 -0
  84. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.pl-PL.i18n.data-DG7WF_Q6.mjs +46 -0
  85. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.pl-PL.i18n.data-DG7WF_Q6.mjs.map +1 -0
  86. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.de-DE.i18n.data-Bpfepbck.mjs +41 -0
  87. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.de-DE.i18n.data-Bpfepbck.mjs.map +1 -0
  88. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.en-US.i18n.data-B8LDDxAZ.mjs +35 -0
  89. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.en-US.i18n.data-B8LDDxAZ.mjs.map +1 -0
  90. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.pl-PL.i18n.data-BBIJ3S8j.mjs +41 -0
  91. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.pl-PL.i18n.data-BBIJ3S8j.mjs.map +1 -0
  92. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.html.de-DE.i18n.data-5Qiho28U.mjs +21 -0
  93. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.html.de-DE.i18n.data-5Qiho28U.mjs.map +1 -0
  94. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.html.en-US.i18n.data-b7N9eQx6.mjs +19 -0
  95. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.html.en-US.i18n.data-b7N9eQx6.mjs.map +1 -0
  96. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data-C60-CdWA.mjs +21 -0
  97. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data-C60-CdWA.mjs.map +1 -0
  98. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data-p-8AkPxT.mjs +10 -0
  99. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data-p-8AkPxT.mjs.map +1 -0
  100. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.ts.en-US.i18n.data-Ch5so5tI.mjs +10 -0
  101. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.ts.en-US.i18n.data-Ch5so5tI.mjs.map +1 -0
  102. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data-yUfBicV4.mjs +10 -0
  103. package/browser/fesm2022/cms-browser-taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data-yUfBicV4.mjs.map +1 -0
  104. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-C2j_py52.mjs +106 -0
  105. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-C2j_py52.mjs.map +1 -0
  106. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-BZPgJVlM.mjs +87 -0
  107. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-BZPgJVlM.mjs.map +1 -0
  108. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-BjWjc3BL.mjs +106 -0
  109. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-BjWjc3BL.mjs.map +1 -0
  110. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.de-DE.i18n.data-BDWOAG4z.mjs +511 -0
  111. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.de-DE.i18n.data-BDWOAG4z.mjs.map +1 -0
  112. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.en-US.i18n.data-Pmcxpz9r.mjs +469 -0
  113. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.en-US.i18n.data-Pmcxpz9r.mjs.map +1 -0
  114. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.pl-PL.i18n.data-C_WwuNrx.mjs +511 -0
  115. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.pl-PL.i18n.data-C_WwuNrx.mjs.map +1 -0
  116. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.de-DE.i18n.data-CiEz9RNq.mjs +336 -0
  117. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.de-DE.i18n.data-CiEz9RNq.mjs.map +1 -0
  118. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.en-US.i18n.data-jfUyuVfb.mjs +299 -0
  119. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.en-US.i18n.data-jfUyuVfb.mjs.map +1 -0
  120. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.pl-PL.i18n.data-D16-9XEg.mjs +336 -0
  121. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.pl-PL.i18n.data-D16-9XEg.mjs.map +1 -0
  122. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-B-BSsFTL.mjs +56 -0
  123. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-B-BSsFTL.mjs.map +1 -0
  124. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-K-6Yiqeq.mjs +56 -0
  125. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-K-6Yiqeq.mjs.map +1 -0
  126. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-Dpn2QCL5.mjs +26 -0
  127. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-Dpn2QCL5.mjs.map +1 -0
  128. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-D66VONme.mjs +26 -0
  129. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-D66VONme.mjs.map +1 -0
  130. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.de-DE.i18n.data-CqiXmk5q.mjs +56 -0
  131. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.de-DE.i18n.data-CqiXmk5q.mjs.map +1 -0
  132. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.en-US.i18n.data-DY2RlzUd.mjs +54 -0
  133. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.en-US.i18n.data-DY2RlzUd.mjs.map +1 -0
  134. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.pl-PL.i18n.data-D39DIsUU.mjs +56 -0
  135. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.pl-PL.i18n.data-D39DIsUU.mjs.map +1 -0
  136. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.de-DE.i18n.data-DfuNO9iv.mjs +21 -0
  137. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.de-DE.i18n.data-DfuNO9iv.mjs.map +1 -0
  138. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.en-US.i18n.data-DrnuVs_M.mjs +21 -0
  139. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.en-US.i18n.data-DrnuVs_M.mjs.map +1 -0
  140. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.pl-PL.i18n.data-BpjogO9H.mjs +21 -0
  141. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.pl-PL.i18n.data-BpjogO9H.mjs.map +1 -0
  142. package/browser/fesm2022/cms-browser.mjs +3336 -732
  143. package/browser/fesm2022/cms-browser.mjs.map +1 -1
  144. package/browser/package.json +1 -1
  145. package/browser/types/cms-browser.d.ts +351 -25
  146. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.de-DE.i18n.data-2qt6BwAO.mjs +40 -0
  147. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.de-DE.i18n.data-2qt6BwAO.mjs.map +1 -0
  148. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.en-US.i18n.data-CQcsj3Kd.mjs +39 -0
  149. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.en-US.i18n.data-CQcsj3Kd.mjs.map +1 -0
  150. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-DMcRhail.mjs +41 -0
  151. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-DMcRhail.mjs.map +1 -0
  152. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comment.controller.ts.de-DE.i18n.data-Bd2osC_4.mjs +116 -0
  153. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comment.controller.ts.de-DE.i18n.data-Bd2osC_4.mjs.map +1 -0
  154. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comment.controller.ts.en-US.i18n.data-IWj03KvC.mjs +95 -0
  155. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comment.controller.ts.en-US.i18n.data-IWj03KvC.mjs.map +1 -0
  156. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comment.controller.ts.pl-PL.i18n.data-C5bVU8fj.mjs +116 -0
  157. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comment.controller.ts.pl-PL.i18n.data-C5bVU8fj.mjs.map +1 -0
  158. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data-DduZ58Re.mjs +91 -0
  159. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data-DduZ58Re.mjs.map +1 -0
  160. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data-DF2MbAqU.mjs +75 -0
  161. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data-DF2MbAqU.mjs.map +1 -0
  162. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data-DWcUE6S7.mjs +91 -0
  163. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data-DWcUE6S7.mjs.map +1 -0
  164. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data-CfJrptWE.mjs +56 -0
  165. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data-CfJrptWE.mjs.map +1 -0
  166. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data-Bw-EvzZd.mjs +47 -0
  167. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data-Bw-EvzZd.mjs.map +1 -0
  168. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data-CFNbIfA2.mjs +56 -0
  169. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data-CFNbIfA2.mjs.map +1 -0
  170. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.component.ts.de-DE.i18n.data-D7SoFQFJ.mjs +10 -0
  171. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.component.ts.de-DE.i18n.data-D7SoFQFJ.mjs.map +1 -0
  172. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.component.ts.en-US.i18n.data-DvzTa0Yp.mjs +10 -0
  173. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.component.ts.en-US.i18n.data-DvzTa0Yp.mjs.map +1 -0
  174. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data-rZd8Ibrx.mjs +10 -0
  175. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data-rZd8Ibrx.mjs.map +1 -0
  176. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data-B8HxMZ2F.mjs +26 -0
  177. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data-B8HxMZ2F.mjs.map +1 -0
  178. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.routes.ts.en-US.i18n.data-C6g2CYxx.mjs +23 -0
  179. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.routes.ts.en-US.i18n.data-C6g2CYxx.mjs.map +1 -0
  180. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data-C9WubLOQ.mjs +26 -0
  181. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data-C9WubLOQ.mjs.map +1 -0
  182. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.html.de-DE.i18n.data-BPn0HR7D.mjs +71 -0
  183. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.html.de-DE.i18n.data-BPn0HR7D.mjs.map +1 -0
  184. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.html.en-US.i18n.data-wOQkZt5y.mjs +59 -0
  185. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.html.en-US.i18n.data-wOQkZt5y.mjs.map +1 -0
  186. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data-Bp2yYAgy.mjs +71 -0
  187. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data-Bp2yYAgy.mjs.map +1 -0
  188. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data-CCyRCtw8.mjs +26 -0
  189. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data-CCyRCtw8.mjs.map +1 -0
  190. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.ts.en-US.i18n.data-BbwVt_l2.mjs +23 -0
  191. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.ts.en-US.i18n.data-BbwVt_l2.mjs.map +1 -0
  192. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data-D-gwEZ1P.mjs +26 -0
  193. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data-D-gwEZ1P.mjs.map +1 -0
  194. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.html.de-DE.i18n.data-Cx8vHFBX.mjs +46 -0
  195. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.html.de-DE.i18n.data-Cx8vHFBX.mjs.map +1 -0
  196. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.html.en-US.i18n.data-BT0U9ZMC.mjs +39 -0
  197. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.html.en-US.i18n.data-BT0U9ZMC.mjs.map +1 -0
  198. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data-D__YXxhz.mjs +46 -0
  199. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data-D__YXxhz.mjs.map +1 -0
  200. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data-BPGhyiPp.mjs +26 -0
  201. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data-BPGhyiPp.mjs.map +1 -0
  202. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.ts.en-US.i18n.data-DKAqxNAJ.mjs +23 -0
  203. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.ts.en-US.i18n.data-DKAqxNAJ.mjs.map +1 -0
  204. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data-CcQBqus-.mjs +26 -0
  205. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data-CcQBqus-.mjs.map +1 -0
  206. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.html.de-DE.i18n.data-DGqQMfhn.mjs +81 -0
  207. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.html.de-DE.i18n.data-DGqQMfhn.mjs.map +1 -0
  208. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.html.en-US.i18n.data-bqMPTauW.mjs +67 -0
  209. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.html.en-US.i18n.data-bqMPTauW.mjs.map +1 -0
  210. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.html.pl-PL.i18n.data-BKf41-5v.mjs +81 -0
  211. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.html.pl-PL.i18n.data-BKf41-5v.mjs.map +1 -0
  212. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.ts.de-DE.i18n.data-nLhHlaqV.mjs +36 -0
  213. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.ts.de-DE.i18n.data-nLhHlaqV.mjs.map +1 -0
  214. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.ts.en-US.i18n.data-srx7cGeB.mjs +31 -0
  215. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.ts.en-US.i18n.data-srx7cGeB.mjs.map +1 -0
  216. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.ts.pl-PL.i18n.data--3605ibH.mjs +36 -0
  217. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-comments.component.ts.pl-PL.i18n.data--3605ibH.mjs.map +1 -0
  218. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.de-DE.i18n.data-Bc_HX7mc.mjs +55 -0
  219. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.de-DE.i18n.data-Bc_HX7mc.mjs.map +1 -0
  220. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.en-US.i18n.data-BgaKkHPf.mjs +55 -0
  221. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.en-US.i18n.data-BgaKkHPf.mjs.map +1 -0
  222. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-_v6rN4-m.mjs +55 -0
  223. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-_v6rN4-m.mjs.map +1 -0
  224. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.de-DE.i18n.data-DHHWiChe.mjs +46 -0
  225. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.de-DE.i18n.data-DHHWiChe.mjs.map +1 -0
  226. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.en-US.i18n.data-DtWbUo_H.mjs +39 -0
  227. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.en-US.i18n.data-DtWbUo_H.mjs.map +1 -0
  228. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.pl-PL.i18n.data-CRbTFEf4.mjs +46 -0
  229. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.pl-PL.i18n.data-CRbTFEf4.mjs.map +1 -0
  230. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.de-DE.i18n.data-6akBXxFh.mjs +41 -0
  231. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.de-DE.i18n.data-6akBXxFh.mjs.map +1 -0
  232. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.en-US.i18n.data-B1JxjQQ6.mjs +35 -0
  233. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.en-US.i18n.data-B1JxjQQ6.mjs.map +1 -0
  234. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.pl-PL.i18n.data-BgUqIZxn.mjs +41 -0
  235. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.pl-PL.i18n.data-BgUqIZxn.mjs.map +1 -0
  236. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.html.de-DE.i18n.data-D_pzY5c6.mjs +21 -0
  237. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.html.de-DE.i18n.data-D_pzY5c6.mjs.map +1 -0
  238. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.html.en-US.i18n.data-D-5qFPjS.mjs +19 -0
  239. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.html.en-US.i18n.data-D-5qFPjS.mjs.map +1 -0
  240. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data-BvewjJas.mjs +21 -0
  241. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data-BvewjJas.mjs.map +1 -0
  242. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data-DSCbLyki.mjs +10 -0
  243. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data-DSCbLyki.mjs.map +1 -0
  244. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.ts.en-US.i18n.data-DFXtq9fz.mjs +10 -0
  245. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.ts.en-US.i18n.data-DFXtq9fz.mjs.map +1 -0
  246. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data-BEsM01k5.mjs +10 -0
  247. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data-BEsM01k5.mjs.map +1 -0
  248. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-CSJ-71_1.mjs +106 -0
  249. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-CSJ-71_1.mjs.map +1 -0
  250. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-lHahMG_F.mjs +87 -0
  251. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-lHahMG_F.mjs.map +1 -0
  252. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-CCVXEdC9.mjs +106 -0
  253. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-CCVXEdC9.mjs.map +1 -0
  254. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.de-DE.i18n.data-DHiSPGvy.mjs +511 -0
  255. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.de-DE.i18n.data-DHiSPGvy.mjs.map +1 -0
  256. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.en-US.i18n.data-BQ5J3jJN.mjs +469 -0
  257. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.en-US.i18n.data-BQ5J3jJN.mjs.map +1 -0
  258. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.pl-PL.i18n.data-BVkyTBpk.mjs +511 -0
  259. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.pl-PL.i18n.data-BVkyTBpk.mjs.map +1 -0
  260. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.de-DE.i18n.data-DSeDheFZ.mjs +336 -0
  261. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.de-DE.i18n.data-DSeDheFZ.mjs.map +1 -0
  262. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.en-US.i18n.data-h9y1rkGv.mjs +299 -0
  263. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.en-US.i18n.data-h9y1rkGv.mjs.map +1 -0
  264. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.pl-PL.i18n.data-MTn6FS17.mjs +336 -0
  265. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.pl-PL.i18n.data-MTn6FS17.mjs.map +1 -0
  266. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-B1XqM9vV.mjs +56 -0
  267. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-B1XqM9vV.mjs.map +1 -0
  268. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-Bsv7RO87.mjs +56 -0
  269. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-Bsv7RO87.mjs.map +1 -0
  270. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-CuOgDz6a.mjs +26 -0
  271. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-CuOgDz6a.mjs.map +1 -0
  272. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-BYAbSMUv.mjs +26 -0
  273. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-BYAbSMUv.mjs.map +1 -0
  274. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.de-DE.i18n.data-CZQR8WXK.mjs +56 -0
  275. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.de-DE.i18n.data-CZQR8WXK.mjs.map +1 -0
  276. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.en-US.i18n.data-DDA4e4GR.mjs +54 -0
  277. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.en-US.i18n.data-DDA4e4GR.mjs.map +1 -0
  278. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.pl-PL.i18n.data-C622lSrr.mjs +56 -0
  279. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.pl-PL.i18n.data-C622lSrr.mjs.map +1 -0
  280. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.de-DE.i18n.data-utf6lc8k.mjs +21 -0
  281. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.de-DE.i18n.data-utf6lc8k.mjs.map +1 -0
  282. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.en-US.i18n.data-CRQBHUL4.mjs +21 -0
  283. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.en-US.i18n.data-CRQBHUL4.mjs.map +1 -0
  284. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.pl-PL.i18n.data-vo_xnVr_.mjs +21 -0
  285. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.pl-PL.i18n.data-vo_xnVr_.mjs.map +1 -0
  286. package/browser-prod/fesm2022/cms-browser-prod.mjs +3346 -730
  287. package/browser-prod/fesm2022/cms-browser-prod.mjs.map +1 -1
  288. package/browser-prod/package.json +1 -1
  289. package/browser-prod/types/cms-browser-prod.d.ts +343 -25
  290. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  291. package/full-dts/index._auto-generated_.d.ts +19 -1
  292. package/full-dts/migrations/1793664000000_postVersionLinks.d.ts +7 -0
  293. package/full-dts/migrations/migrations_index._auto-generated_.d.ts +3 -0
  294. package/full-dts/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.d.ts +1 -0
  295. package/full-dts/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.d.ts +1 -0
  296. package/full-dts/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.d.ts +1 -0
  297. package/full-dts/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.d.ts +33 -0
  298. package/full-dts/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.d.ts +32 -0
  299. package/full-dts/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.d.ts +33 -0
  300. package/full-dts/taon-cms-comment/i18n/taon-cms-comment.translation.d.ts +12 -0
  301. package/full-dts/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.d.ts +30 -0
  302. package/full-dts/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.d.ts +29 -0
  303. package/full-dts/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.d.ts +30 -0
  304. package/full-dts/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.d.ts +21 -0
  305. package/full-dts/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.d.ts +20 -0
  306. package/full-dts/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.d.ts +21 -0
  307. package/full-dts/taon-cms-comment/index.d.ts +6 -1
  308. package/full-dts/taon-cms-comment/taon-cms-comment-api.service.d.ts +27 -2
  309. package/full-dts/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.d.ts +8 -0
  310. package/full-dts/taon-cms-comment/taon-cms-comment-blocked-user.entity.d.ts +7 -0
  311. package/full-dts/taon-cms-comment/taon-cms-comment-spam-report.entity.d.ts +8 -0
  312. package/full-dts/taon-cms-comment/taon-cms-comment-vote.entity.d.ts +9 -0
  313. package/full-dts/taon-cms-comment/taon-cms-comment.controller.d.ts +49 -7
  314. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.d.ts +9 -0
  315. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.d.ts +9 -0
  316. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.d.ts +9 -0
  317. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.d.ts +19 -0
  318. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.d.ts +18 -0
  319. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.d.ts +19 -0
  320. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.d.ts +9 -0
  321. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/index.d.ts +2 -0
  322. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.d.ts +31 -0
  323. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.d.ts +30 -0
  324. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.d.ts +31 -0
  325. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.d.ts +25 -0
  326. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.d.ts +24 -0
  327. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.d.ts +25 -0
  328. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.d.ts +9 -0
  329. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.d.ts +2 -0
  330. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.d.ts +25 -0
  331. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.d.ts +2 -0
  332. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes.d.ts +8 -0
  333. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.d.ts +5 -0
  334. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.d.ts +2 -0
  335. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.d.ts +8 -0
  336. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.d.ts +27 -0
  337. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.d.ts +26 -0
  338. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.d.ts +27 -0
  339. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.d.ts +19 -0
  340. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.d.ts +18 -0
  341. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.d.ts +19 -0
  342. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.d.ts +9 -0
  343. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.d.ts +2 -0
  344. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.d.ts +26 -0
  345. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.d.ts +2 -0
  346. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes.d.ts +8 -0
  347. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.d.ts +23 -0
  348. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.d.ts +22 -0
  349. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.d.ts +23 -0
  350. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.d.ts +19 -0
  351. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.d.ts +18 -0
  352. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.d.ts +19 -0
  353. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.d.ts +9 -0
  354. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.d.ts +2 -0
  355. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.d.ts +18 -0
  356. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.d.ts +2 -0
  357. package/full-dts/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes.d.ts +8 -0
  358. package/full-dts/taon-cms-comment/taon-cms-comments.component.d.ts +25 -0
  359. package/full-dts/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.d.ts +2 -0
  360. package/full-dts/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.d.ts +8 -2
  361. package/full-dts/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.d.ts +2 -0
  362. package/full-dts/taon-cms-content/taon-cms-content-api.service.d.ts +9 -2
  363. package/full-dts/taon-cms-content/taon-cms-content-storage.controller.d.ts +2 -0
  364. package/full-dts/taon-cms-content/taon-cms-content.controller.d.ts +9 -2
  365. package/full-dts/taon-cms-content/taon-cms-content.entity.d.ts +3 -0
  366. package/full-dts/taon-cms-content/taon-cms-content.models.d.ts +14 -0
  367. package/full-dts/taon-cms-content/taon-cms-content.repository.d.ts +12 -2
  368. package/full-dts/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.d.ts +3 -0
  369. package/full-dts/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.d.ts +2 -0
  370. package/full-dts/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.d.ts +3 -0
  371. package/full-dts/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.d.ts +2 -0
  372. package/full-dts/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.d.ts +1 -0
  373. package/full-dts/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.d.ts +2 -0
  374. package/full-dts/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.d.ts +8 -0
  375. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.d.ts +18 -0
  376. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.d.ts +17 -0
  377. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.d.ts +18 -0
  378. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.d.ts +9 -0
  379. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.d.ts +9 -0
  380. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.d.ts +9 -0
  381. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.d.ts +25 -10
  382. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.d.ts +23 -4
  383. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.d.ts +25 -10
  384. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.d.ts +30 -7
  385. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.d.ts +28 -1
  386. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.d.ts +30 -7
  387. package/full-dts/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.d.ts +7 -1
  388. package/full-dts/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.d.ts +18 -0
  389. package/full-dts/taon-posts/taon-cms-post/taon-cms-post.component.d.ts +43 -4
  390. package/full-dts/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.d.ts +8 -2
  391. package/full-dts/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.d.ts +7 -2
  392. package/full-dts/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.d.ts +8 -2
  393. package/full-dts/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.d.ts +2 -6
  394. package/full-dts/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.d.ts +2 -6
  395. package/full-dts/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.d.ts +2 -6
  396. package/full-dts/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.d.ts +2 -6
  397. package/full-dts/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.d.ts +1 -0
  398. package/full-dts/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.d.ts +1 -0
  399. package/full-dts/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.d.ts +1 -0
  400. package/full-dts/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.d.ts +1 -0
  401. package/full-dts/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.d.ts +5 -0
  402. package/html/assets/generated/pwa/html-pwa.html +53 -53
  403. package/html/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html +1 -1
  404. package/html/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.html +55 -0
  405. package/html/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.html +1 -0
  406. package/html/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.html +35 -0
  407. package/html/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.html +25 -0
  408. package/html/lib/taon-cms-comment/taon-cms-comments.component.html +95 -0
  409. package/html/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html +2 -1
  410. package/html/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html +23 -0
  411. package/html/lib/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.html +18 -0
  412. package/html/lib/taon-posts/taon-cms-post/taon-cms-post.component.html +934 -606
  413. package/html/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +3 -3
  414. package/lib/build-info._auto-generated_.d.ts +1 -1
  415. package/lib/build-info._auto-generated_.js +1 -1
  416. package/lib/index._auto-generated_.d.ts +8 -0
  417. package/lib/index._auto-generated_.js +18 -0
  418. package/lib/index._auto-generated_.js.map +1 -1
  419. package/lib/migrations/1793664000000_postVersionLinks.d.ts +6 -0
  420. package/lib/migrations/1793664000000_postVersionLinks.js +41 -0
  421. package/lib/migrations/1793664000000_postVersionLinks.js.map +1 -0
  422. package/lib/migrations/migrations_index._auto-generated_.d.ts +3 -0
  423. package/lib/migrations/migrations_index._auto-generated_.js +5 -1
  424. package/lib/migrations/migrations_index._auto-generated_.js.map +1 -1
  425. package/lib/package.json +1 -1
  426. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.d.ts +1 -0
  427. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.js +8 -3
  428. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.js.map +1 -1
  429. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.d.ts +1 -0
  430. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.js +7 -3
  431. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.js.map +1 -1
  432. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.d.ts +1 -0
  433. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.js +8 -3
  434. package/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.js.map +1 -1
  435. package/lib/taon-cms-backoffice/index.d.ts +1 -1
  436. package/lib/taon-cms-backoffice/index.js +2 -2
  437. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.d.ts +32 -0
  438. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.js +116 -0
  439. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.js.map +1 -0
  440. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.d.ts +31 -0
  441. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.js +95 -0
  442. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.js.map +1 -0
  443. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.d.ts +32 -0
  444. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.js +116 -0
  445. package/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.js.map +1 -0
  446. package/lib/taon-cms-comment/i18n/taon-cms-comment.translation.d.ts +11 -0
  447. package/lib/taon-cms-comment/i18n/taon-cms-comment.translation.js +5 -0
  448. package/lib/taon-cms-comment/i18n/taon-cms-comment.translation.js.map +1 -0
  449. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.d.ts +29 -0
  450. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.js +81 -0
  451. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.js.map +1 -0
  452. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.d.ts +28 -0
  453. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.js +67 -0
  454. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.js.map +1 -0
  455. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.d.ts +29 -0
  456. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.js +81 -0
  457. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.js.map +1 -0
  458. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.d.ts +20 -0
  459. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.js +36 -0
  460. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.js.map +1 -0
  461. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.d.ts +19 -0
  462. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.js +31 -0
  463. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.js.map +1 -0
  464. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.d.ts +20 -0
  465. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.js +36 -0
  466. package/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.js.map +1 -0
  467. package/lib/taon-cms-comment/index.d.ts +4 -0
  468. package/lib/taon-cms-comment/index.js +5 -0
  469. package/lib/taon-cms-comment/index.js.map +1 -1
  470. package/lib/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.d.ts +7 -0
  471. package/lib/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.js +63 -0
  472. package/lib/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.js.map +1 -0
  473. package/lib/taon-cms-comment/taon-cms-comment-blocked-user.entity.d.ts +6 -0
  474. package/lib/taon-cms-comment/taon-cms-comment-blocked-user.entity.js +54 -0
  475. package/lib/taon-cms-comment/taon-cms-comment-blocked-user.entity.js.map +1 -0
  476. package/lib/taon-cms-comment/taon-cms-comment-spam-report.entity.d.ts +7 -0
  477. package/lib/taon-cms-comment/taon-cms-comment-spam-report.entity.js +63 -0
  478. package/lib/taon-cms-comment/taon-cms-comment-spam-report.entity.js.map +1 -0
  479. package/lib/taon-cms-comment/taon-cms-comment-vote.entity.d.ts +8 -0
  480. package/lib/taon-cms-comment/taon-cms-comment-vote.entity.js +72 -0
  481. package/lib/taon-cms-comment/taon-cms-comment-vote.entity.js.map +1 -0
  482. package/lib/taon-cms-comment/taon-cms-comment.abstract.context.js +11 -1
  483. package/lib/taon-cms-comment/taon-cms-comment.abstract.context.js.map +1 -1
  484. package/lib/taon-cms-comment/taon-cms-comment.controller.d.ts +49 -7
  485. package/lib/taon-cms-comment/taon-cms-comment.controller.js +503 -21
  486. package/lib/taon-cms-comment/taon-cms-comment.controller.js.map +1 -1
  487. package/lib/taon-cms-comment/taon-cms-comment.entity.js +2 -2
  488. package/lib/taon-cms-comment/taon-cms-comment.entity.js.map +1 -1
  489. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.d.ts +8 -0
  490. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.js +10 -0
  491. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.js.map +1 -0
  492. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.d.ts +8 -0
  493. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.js +10 -0
  494. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.js.map +1 -0
  495. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.d.ts +8 -0
  496. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.js +10 -0
  497. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -0
  498. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.d.ts +18 -0
  499. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.js +26 -0
  500. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.js.map +1 -0
  501. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.d.ts +17 -0
  502. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.js +23 -0
  503. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.js.map +1 -0
  504. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.d.ts +18 -0
  505. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.js +26 -0
  506. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.js.map +1 -0
  507. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.d.ts +8 -0
  508. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.js +5 -0
  509. package/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.js.map +1 -0
  510. package/lib/taon-cms-comment/taon-cms-comments-backoffice/index.d.ts +1 -0
  511. package/lib/taon-cms-comment/taon-cms-comments-backoffice/index.js +5 -0
  512. package/lib/taon-cms-comment/taon-cms-comments-backoffice/index.js.map +1 -0
  513. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.d.ts +30 -0
  514. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.js +91 -0
  515. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.js.map +1 -0
  516. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.d.ts +29 -0
  517. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.js +75 -0
  518. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.js.map +1 -0
  519. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.d.ts +30 -0
  520. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.js +91 -0
  521. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.js.map +1 -0
  522. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.d.ts +24 -0
  523. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.js +56 -0
  524. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.js.map +1 -0
  525. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.d.ts +23 -0
  526. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.js +47 -0
  527. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.js.map +1 -0
  528. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.d.ts +24 -0
  529. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.js +56 -0
  530. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -0
  531. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.d.ts +8 -0
  532. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.js +5 -0
  533. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.js.map +1 -0
  534. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.d.ts +1 -0
  535. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.js +5 -0
  536. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.js.map +1 -0
  537. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.d.ts +1 -0
  538. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.js +3 -0
  539. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.js.map +1 -0
  540. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.d.ts +1 -0
  541. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.js +3 -0
  542. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.js.map +1 -0
  543. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.d.ts +26 -0
  544. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.js +71 -0
  545. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.js.map +1 -0
  546. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.d.ts +25 -0
  547. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.js +59 -0
  548. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.js.map +1 -0
  549. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.d.ts +26 -0
  550. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.js +71 -0
  551. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.js.map +1 -0
  552. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.d.ts +18 -0
  553. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.js +26 -0
  554. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.js.map +1 -0
  555. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.d.ts +17 -0
  556. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.js +23 -0
  557. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.js.map +1 -0
  558. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.d.ts +18 -0
  559. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.js +26 -0
  560. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.js.map +1 -0
  561. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.d.ts +8 -0
  562. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.js +5 -0
  563. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.js.map +1 -0
  564. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.d.ts +1 -0
  565. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.js +5 -0
  566. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.js.map +1 -0
  567. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.d.ts +1 -0
  568. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.js +3 -0
  569. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.js.map +1 -0
  570. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.d.ts +22 -0
  571. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.js +46 -0
  572. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.js.map +1 -0
  573. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.d.ts +21 -0
  574. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.js +39 -0
  575. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.js.map +1 -0
  576. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.d.ts +22 -0
  577. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.js +46 -0
  578. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.js.map +1 -0
  579. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.d.ts +18 -0
  580. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.js +26 -0
  581. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.js.map +1 -0
  582. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.d.ts +17 -0
  583. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.js +23 -0
  584. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.js.map +1 -0
  585. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.d.ts +18 -0
  586. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.js +26 -0
  587. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.js.map +1 -0
  588. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.d.ts +8 -0
  589. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.js +5 -0
  590. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.js.map +1 -0
  591. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.d.ts +1 -0
  592. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.js +5 -0
  593. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.js.map +1 -0
  594. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.d.ts +1 -0
  595. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.js +3 -0
  596. package/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.js.map +1 -0
  597. package/lib/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.i18n.data.js +1 -1
  598. package/lib/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.i18n.data.js +1 -1
  599. package/lib/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.i18n.data.js +1 -1
  600. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.d.ts +2 -0
  601. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.js +16 -6
  602. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.js.map +1 -1
  603. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.d.ts +8 -2
  604. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js +14 -6
  605. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js.map +1 -1
  606. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.d.ts +2 -0
  607. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js +16 -6
  608. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js.map +1 -1
  609. package/lib/taon-cms-content/taon-cms-content-storage.controller.d.ts +2 -0
  610. package/lib/taon-cms-content/taon-cms-content-storage.controller.js +28 -0
  611. package/lib/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -1
  612. package/lib/taon-cms-content/taon-cms-content.controller.d.ts +9 -2
  613. package/lib/taon-cms-content/taon-cms-content.controller.js +122 -3
  614. package/lib/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  615. package/lib/taon-cms-content/taon-cms-content.entity.d.ts +3 -0
  616. package/lib/taon-cms-content/taon-cms-content.entity.js +27 -0
  617. package/lib/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  618. package/lib/taon-cms-content/taon-cms-content.models.d.ts +14 -0
  619. package/lib/taon-cms-content/taon-cms-content.models.js.map +1 -1
  620. package/lib/taon-cms-content/taon-cms-content.repository.d.ts +12 -2
  621. package/lib/taon-cms-content/taon-cms-content.repository.js +534 -29
  622. package/lib/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  623. package/lib/taon-cms-content/taon-cms-content.validation.js +4 -0
  624. package/lib/taon-cms-content/taon-cms-content.validation.js.map +1 -1
  625. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data.js +5 -5
  626. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data.js +5 -5
  627. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data.js +5 -5
  628. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.d.ts +3 -0
  629. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.js +20 -5
  630. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.js.map +1 -1
  631. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.d.ts +2 -0
  632. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.js +8 -0
  633. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.js.map +1 -1
  634. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.d.ts +3 -0
  635. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.js +20 -5
  636. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.js.map +1 -1
  637. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.d.ts +2 -0
  638. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.js +15 -5
  639. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.js.map +1 -1
  640. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.d.ts +1 -0
  641. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.js +9 -5
  642. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.js.map +1 -1
  643. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.d.ts +2 -0
  644. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.js +15 -5
  645. package/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.js.map +1 -1
  646. package/lib/taon-posts/taon-cms-course-backoffice/index.d.ts +1 -1
  647. package/lib/taon-posts/taon-cms-course-backoffice/index.js +2 -2
  648. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.d.ts +17 -0
  649. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.js +21 -0
  650. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.js.map +1 -0
  651. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.d.ts +16 -0
  652. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.js +19 -0
  653. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.js.map +1 -0
  654. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.d.ts +17 -0
  655. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.js +21 -0
  656. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.js.map +1 -0
  657. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.d.ts +8 -0
  658. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.js +10 -0
  659. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.js.map +1 -0
  660. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.d.ts +8 -0
  661. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.js +10 -0
  662. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.js.map +1 -0
  663. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.d.ts +8 -0
  664. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.js +10 -0
  665. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.js.map +1 -0
  666. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.d.ts +25 -10
  667. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.js +222 -87
  668. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.js.map +1 -1
  669. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.d.ts +23 -4
  670. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.js +179 -85
  671. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.js.map +1 -1
  672. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.d.ts +25 -10
  673. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.js +221 -86
  674. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.js.map +1 -1
  675. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.d.ts +30 -7
  676. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.js +183 -39
  677. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.js.map +1 -1
  678. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.d.ts +28 -1
  679. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.js +150 -39
  680. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.js.map +1 -1
  681. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.d.ts +30 -7
  682. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.js +183 -39
  683. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.js.map +1 -1
  684. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.d.ts +7 -1
  685. package/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.js.map +1 -1
  686. package/lib/taon-posts/taon-cms-post/index.d.ts +1 -1
  687. package/lib/taon-posts/taon-cms-post/index.js +2 -2
  688. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.d.ts +8 -2
  689. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.js +64 -13
  690. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.js.map +1 -1
  691. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.d.ts +7 -2
  692. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.js +45 -13
  693. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.js.map +1 -1
  694. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.d.ts +8 -2
  695. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.js +64 -13
  696. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.js.map +1 -1
  697. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.d.ts +2 -6
  698. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.js +14 -7
  699. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.js.map +1 -1
  700. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.d.ts +2 -6
  701. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.js +14 -7
  702. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.js.map +1 -1
  703. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.d.ts +2 -6
  704. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.js +2 -1
  705. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.js.map +1 -1
  706. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.d.ts +2 -6
  707. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.js +2 -1
  708. package/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -1
  709. package/lib/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -1
  710. package/lib/taon-posts/taon-cms-posts-backoffice/index.js +2 -2
  711. package/lib/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -1
  712. package/lib/taon-posts/taon-cms-revision-chooser/index.js +2 -2
  713. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.d.ts +1 -0
  714. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.js +6 -1
  715. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.js.map +1 -1
  716. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.d.ts +1 -0
  717. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.js +4 -0
  718. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.js.map +1 -1
  719. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.d.ts +1 -0
  720. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.js +5 -0
  721. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.js.map +1 -1
  722. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data.js +2 -2
  723. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.i18n.data.js +2 -2
  724. package/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data.js +2 -2
  725. package/lib/taon-posts/taon-related-post-chooser/index.d.ts +1 -1
  726. package/lib/taon-posts/taon-related-post-chooser/index.js +2 -2
  727. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  728. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  729. package/lib-esm/lib/index._auto-generated_.d.ts +8 -0
  730. package/lib-esm/lib/index._auto-generated_.js +18 -0
  731. package/lib-esm/lib/index._auto-generated_.js.map +1 -1
  732. package/lib-esm/lib/migrations/1793664000000_postVersionLinks.d.ts +6 -0
  733. package/lib-esm/lib/migrations/1793664000000_postVersionLinks.js +32 -0
  734. package/lib-esm/lib/migrations/1793664000000_postVersionLinks.js.map +1 -0
  735. package/lib-esm/lib/migrations/migrations_index._auto-generated_.d.ts +3 -0
  736. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js +3 -0
  737. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js.map +1 -1
  738. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.d.ts +1 -0
  739. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.js +8 -3
  740. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.js.map +1 -1
  741. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.d.ts +1 -0
  742. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.js +7 -3
  743. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.js.map +1 -1
  744. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.d.ts +1 -0
  745. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.js +8 -3
  746. package/lib-esm/lib/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.js.map +1 -1
  747. package/lib-esm/lib/taon-cms-backoffice/index.d.ts +1 -1
  748. package/lib-esm/lib/taon-cms-backoffice/index.js +1 -1
  749. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.d.ts +32 -0
  750. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.js +114 -0
  751. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.js.map +1 -0
  752. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.d.ts +31 -0
  753. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.js +93 -0
  754. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.js.map +1 -0
  755. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.d.ts +32 -0
  756. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.js +114 -0
  757. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.js.map +1 -0
  758. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.translation.d.ts +11 -0
  759. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.translation.js +4 -0
  760. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comment.translation.js.map +1 -0
  761. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.d.ts +29 -0
  762. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.js +79 -0
  763. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.js.map +1 -0
  764. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.d.ts +28 -0
  765. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.js +65 -0
  766. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.js.map +1 -0
  767. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.d.ts +29 -0
  768. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.js +79 -0
  769. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.js.map +1 -0
  770. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.d.ts +20 -0
  771. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.js +34 -0
  772. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.js.map +1 -0
  773. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.d.ts +19 -0
  774. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.js +29 -0
  775. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.js.map +1 -0
  776. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.d.ts +20 -0
  777. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.js +34 -0
  778. package/lib-esm/lib/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.js.map +1 -0
  779. package/lib-esm/lib/taon-cms-comment/index.d.ts +4 -0
  780. package/lib-esm/lib/taon-cms-comment/index.js +5 -0
  781. package/lib-esm/lib/taon-cms-comment/index.js.map +1 -1
  782. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.d.ts +7 -0
  783. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.js +51 -0
  784. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.js.map +1 -0
  785. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-blocked-user.entity.d.ts +6 -0
  786. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-blocked-user.entity.js +42 -0
  787. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-blocked-user.entity.js.map +1 -0
  788. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-spam-report.entity.d.ts +7 -0
  789. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-spam-report.entity.js +51 -0
  790. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-spam-report.entity.js.map +1 -0
  791. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-vote.entity.d.ts +8 -0
  792. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-vote.entity.js +60 -0
  793. package/lib-esm/lib/taon-cms-comment/taon-cms-comment-vote.entity.js.map +1 -0
  794. package/lib-esm/lib/taon-cms-comment/taon-cms-comment.abstract.context.js +11 -1
  795. package/lib-esm/lib/taon-cms-comment/taon-cms-comment.abstract.context.js.map +1 -1
  796. package/lib-esm/lib/taon-cms-comment/taon-cms-comment.controller.d.ts +48 -6
  797. package/lib-esm/lib/taon-cms-comment/taon-cms-comment.controller.js +504 -22
  798. package/lib-esm/lib/taon-cms-comment/taon-cms-comment.controller.js.map +1 -1
  799. package/lib-esm/lib/taon-cms-comment/taon-cms-comment.entity.js +3 -3
  800. package/lib-esm/lib/taon-cms-comment/taon-cms-comment.entity.js.map +1 -1
  801. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.d.ts +8 -0
  802. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.js +8 -0
  803. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.js.map +1 -0
  804. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.d.ts +8 -0
  805. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.js +8 -0
  806. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.js.map +1 -0
  807. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.d.ts +8 -0
  808. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.js +8 -0
  809. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -0
  810. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.d.ts +18 -0
  811. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.js +24 -0
  812. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.js.map +1 -0
  813. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.d.ts +17 -0
  814. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.js +21 -0
  815. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.js.map +1 -0
  816. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.d.ts +18 -0
  817. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.js +24 -0
  818. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.js.map +1 -0
  819. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.d.ts +8 -0
  820. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.js +4 -0
  821. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.js.map +1 -0
  822. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/index.d.ts +1 -0
  823. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/index.js +2 -0
  824. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/index.js.map +1 -0
  825. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.d.ts +30 -0
  826. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.js +89 -0
  827. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.js.map +1 -0
  828. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.d.ts +29 -0
  829. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.js +73 -0
  830. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.js.map +1 -0
  831. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.d.ts +30 -0
  832. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.js +89 -0
  833. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.js.map +1 -0
  834. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.d.ts +24 -0
  835. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.js +54 -0
  836. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.js.map +1 -0
  837. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.d.ts +23 -0
  838. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.js +45 -0
  839. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.js.map +1 -0
  840. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.d.ts +24 -0
  841. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.js +54 -0
  842. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -0
  843. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.d.ts +8 -0
  844. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.js +4 -0
  845. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.js.map +1 -0
  846. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.d.ts +1 -0
  847. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.js +2 -0
  848. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.js.map +1 -0
  849. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.d.ts +1 -0
  850. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.js +2 -0
  851. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.js.map +1 -0
  852. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.d.ts +1 -0
  853. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.js +2 -0
  854. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.js.map +1 -0
  855. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.d.ts +26 -0
  856. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.js +69 -0
  857. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.js.map +1 -0
  858. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.d.ts +25 -0
  859. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.js +57 -0
  860. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.js.map +1 -0
  861. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.d.ts +26 -0
  862. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.js +69 -0
  863. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.js.map +1 -0
  864. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.d.ts +18 -0
  865. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.js +24 -0
  866. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.js.map +1 -0
  867. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.d.ts +17 -0
  868. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.js +21 -0
  869. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.js.map +1 -0
  870. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.d.ts +18 -0
  871. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.js +24 -0
  872. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.js.map +1 -0
  873. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.d.ts +8 -0
  874. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.js +4 -0
  875. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.js.map +1 -0
  876. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.d.ts +1 -0
  877. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.js +2 -0
  878. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.js.map +1 -0
  879. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.d.ts +1 -0
  880. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.js +2 -0
  881. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.js.map +1 -0
  882. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.d.ts +22 -0
  883. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.js +44 -0
  884. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.js.map +1 -0
  885. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.d.ts +21 -0
  886. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.js +37 -0
  887. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.js.map +1 -0
  888. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.d.ts +22 -0
  889. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.js +44 -0
  890. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.js.map +1 -0
  891. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.d.ts +18 -0
  892. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.js +24 -0
  893. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.js.map +1 -0
  894. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.d.ts +17 -0
  895. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.js +21 -0
  896. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.js.map +1 -0
  897. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.d.ts +18 -0
  898. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.js +24 -0
  899. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.js.map +1 -0
  900. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.d.ts +8 -0
  901. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.js +4 -0
  902. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.js.map +1 -0
  903. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.d.ts +1 -0
  904. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.js +2 -0
  905. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.js.map +1 -0
  906. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.d.ts +1 -0
  907. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.js +2 -0
  908. package/lib-esm/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.js.map +1 -0
  909. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.i18n.data.js +1 -1
  910. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.i18n.data.js +1 -1
  911. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.i18n.data.js +1 -1
  912. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.d.ts +2 -0
  913. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.js +16 -6
  914. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.js.map +1 -1
  915. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.d.ts +8 -2
  916. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js +14 -6
  917. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js.map +1 -1
  918. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.d.ts +2 -0
  919. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js +16 -6
  920. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js.map +1 -1
  921. package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.d.ts +2 -0
  922. package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.js +29 -1
  923. package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -1
  924. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.d.ts +9 -2
  925. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.js +122 -3
  926. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  927. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.d.ts +3 -0
  928. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.js +27 -0
  929. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  930. package/lib-esm/lib/taon-cms-content/taon-cms-content.models.d.ts +14 -0
  931. package/lib-esm/lib/taon-cms-content/taon-cms-content.models.js.map +1 -1
  932. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.d.ts +12 -2
  933. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.js +534 -29
  934. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  935. package/lib-esm/lib/taon-cms-content/taon-cms-content.validation.js +4 -0
  936. package/lib-esm/lib/taon-cms-content/taon-cms-content.validation.js.map +1 -1
  937. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data.js +5 -5
  938. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data.js +5 -5
  939. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data.js +5 -5
  940. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.d.ts +3 -0
  941. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.js +20 -5
  942. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.js.map +1 -1
  943. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.d.ts +2 -0
  944. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.js +8 -0
  945. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.js.map +1 -1
  946. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.d.ts +3 -0
  947. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.js +20 -5
  948. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.js.map +1 -1
  949. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.d.ts +2 -0
  950. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.js +15 -5
  951. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.js.map +1 -1
  952. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.d.ts +1 -0
  953. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.js +9 -5
  954. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.js.map +1 -1
  955. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.d.ts +2 -0
  956. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.js +15 -5
  957. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.js.map +1 -1
  958. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/index.d.ts +1 -1
  959. package/lib-esm/lib/taon-posts/taon-cms-course-backoffice/index.js +1 -1
  960. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.d.ts +17 -0
  961. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.js +19 -0
  962. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.js.map +1 -0
  963. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.d.ts +16 -0
  964. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.js +17 -0
  965. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.js.map +1 -0
  966. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.d.ts +17 -0
  967. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.js +19 -0
  968. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.js.map +1 -0
  969. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.d.ts +8 -0
  970. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.js +8 -0
  971. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.js.map +1 -0
  972. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.d.ts +8 -0
  973. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.js +8 -0
  974. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.js.map +1 -0
  975. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.d.ts +8 -0
  976. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.js +8 -0
  977. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.js.map +1 -0
  978. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.d.ts +25 -10
  979. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.js +222 -87
  980. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.js.map +1 -1
  981. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.d.ts +23 -4
  982. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.js +179 -85
  983. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.js.map +1 -1
  984. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.d.ts +25 -10
  985. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.js +221 -86
  986. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.js.map +1 -1
  987. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.d.ts +30 -7
  988. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.js +183 -39
  989. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.js.map +1 -1
  990. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.d.ts +28 -1
  991. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.js +150 -39
  992. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.js.map +1 -1
  993. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.d.ts +30 -7
  994. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.js +183 -39
  995. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.js.map +1 -1
  996. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.d.ts +7 -1
  997. package/lib-esm/lib/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.js.map +1 -1
  998. package/lib-esm/lib/taon-posts/taon-cms-post/index.d.ts +1 -1
  999. package/lib-esm/lib/taon-posts/taon-cms-post/index.js +1 -1
  1000. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.d.ts +8 -2
  1001. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.js +64 -13
  1002. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.js.map +1 -1
  1003. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.d.ts +7 -2
  1004. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.js +45 -13
  1005. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.js.map +1 -1
  1006. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.d.ts +8 -2
  1007. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.js +64 -13
  1008. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.js.map +1 -1
  1009. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.d.ts +2 -6
  1010. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.js +14 -7
  1011. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.js.map +1 -1
  1012. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.d.ts +2 -6
  1013. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.js +14 -7
  1014. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.js.map +1 -1
  1015. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.d.ts +2 -6
  1016. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.js +2 -1
  1017. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.js.map +1 -1
  1018. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.d.ts +2 -6
  1019. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.js +2 -1
  1020. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -1
  1021. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -1
  1022. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.js +1 -1
  1023. package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -1
  1024. package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.js +1 -1
  1025. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.d.ts +1 -0
  1026. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.js +6 -1
  1027. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.js.map +1 -1
  1028. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.d.ts +1 -0
  1029. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.js +4 -0
  1030. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.js.map +1 -1
  1031. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.d.ts +1 -0
  1032. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.js +5 -0
  1033. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.js.map +1 -1
  1034. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data.js +2 -2
  1035. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.i18n.data.js +2 -2
  1036. package/lib-esm/lib/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data.js +2 -2
  1037. package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.d.ts +1 -1
  1038. package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.js +1 -1
  1039. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  1040. package/lib-prod/build-info._auto-generated_.js +1 -1
  1041. package/lib-prod/index._auto-generated_.d.ts +8 -0
  1042. package/lib-prod/index._auto-generated_.js +18 -0
  1043. package/lib-prod/index._auto-generated_.js.map +1 -1
  1044. package/lib-prod/migrations/1793664000000_postVersionLinks.d.ts +6 -0
  1045. package/lib-prod/migrations/1793664000000_postVersionLinks.js +32 -0
  1046. package/lib-prod/migrations/1793664000000_postVersionLinks.js.map +1 -0
  1047. package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +3 -0
  1048. package/lib-prod/migrations/migrations_index._auto-generated_.js +3 -0
  1049. package/lib-prod/migrations/migrations_index._auto-generated_.js.map +1 -1
  1050. package/lib-prod/package.json +1 -1
  1051. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.d.ts +1 -0
  1052. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.js +8 -3
  1053. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.js.map +1 -1
  1054. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.d.ts +1 -0
  1055. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.js +7 -3
  1056. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.js.map +1 -1
  1057. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.d.ts +1 -0
  1058. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.js +8 -3
  1059. package/lib-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.js.map +1 -1
  1060. package/lib-prod/taon-cms-backoffice/index.d.ts +1 -1
  1061. package/lib-prod/taon-cms-backoffice/index.js +1 -1
  1062. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.d.ts +32 -0
  1063. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.js +114 -0
  1064. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.js.map +1 -0
  1065. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.d.ts +31 -0
  1066. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.js +93 -0
  1067. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.js.map +1 -0
  1068. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.d.ts +32 -0
  1069. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.js +114 -0
  1070. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.js.map +1 -0
  1071. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.translation.d.ts +11 -0
  1072. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.translation.js +4 -0
  1073. package/lib-prod/taon-cms-comment/i18n/taon-cms-comment.translation.js.map +1 -0
  1074. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.d.ts +29 -0
  1075. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.js +79 -0
  1076. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.js.map +1 -0
  1077. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.d.ts +28 -0
  1078. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.js +65 -0
  1079. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.js.map +1 -0
  1080. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.d.ts +29 -0
  1081. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.js +79 -0
  1082. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.js.map +1 -0
  1083. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.d.ts +20 -0
  1084. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.js +34 -0
  1085. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.js.map +1 -0
  1086. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.d.ts +19 -0
  1087. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.js +29 -0
  1088. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.js.map +1 -0
  1089. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.d.ts +20 -0
  1090. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.js +34 -0
  1091. package/lib-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.js.map +1 -0
  1092. package/lib-prod/taon-cms-comment/index.d.ts +4 -0
  1093. package/lib-prod/taon-cms-comment/index.js +5 -0
  1094. package/lib-prod/taon-cms-comment/index.js.map +1 -1
  1095. package/lib-prod/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.d.ts +7 -0
  1096. package/lib-prod/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.js +51 -0
  1097. package/lib-prod/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.js.map +1 -0
  1098. package/lib-prod/taon-cms-comment/taon-cms-comment-blocked-user.entity.d.ts +6 -0
  1099. package/lib-prod/taon-cms-comment/taon-cms-comment-blocked-user.entity.js +42 -0
  1100. package/lib-prod/taon-cms-comment/taon-cms-comment-blocked-user.entity.js.map +1 -0
  1101. package/lib-prod/taon-cms-comment/taon-cms-comment-spam-report.entity.d.ts +7 -0
  1102. package/lib-prod/taon-cms-comment/taon-cms-comment-spam-report.entity.js +51 -0
  1103. package/lib-prod/taon-cms-comment/taon-cms-comment-spam-report.entity.js.map +1 -0
  1104. package/lib-prod/taon-cms-comment/taon-cms-comment-vote.entity.d.ts +8 -0
  1105. package/lib-prod/taon-cms-comment/taon-cms-comment-vote.entity.js +60 -0
  1106. package/lib-prod/taon-cms-comment/taon-cms-comment-vote.entity.js.map +1 -0
  1107. package/lib-prod/taon-cms-comment/taon-cms-comment.abstract.context.js +11 -1
  1108. package/lib-prod/taon-cms-comment/taon-cms-comment.abstract.context.js.map +1 -1
  1109. package/lib-prod/taon-cms-comment/taon-cms-comment.controller.d.ts +48 -6
  1110. package/lib-prod/taon-cms-comment/taon-cms-comment.controller.js +504 -22
  1111. package/lib-prod/taon-cms-comment/taon-cms-comment.controller.js.map +1 -1
  1112. package/lib-prod/taon-cms-comment/taon-cms-comment.entity.js +3 -3
  1113. package/lib-prod/taon-cms-comment/taon-cms-comment.entity.js.map +1 -1
  1114. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.d.ts +8 -0
  1115. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.js +8 -0
  1116. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.js.map +1 -0
  1117. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.d.ts +8 -0
  1118. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.js +8 -0
  1119. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.js.map +1 -0
  1120. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.d.ts +8 -0
  1121. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.js +8 -0
  1122. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -0
  1123. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.d.ts +18 -0
  1124. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.js +24 -0
  1125. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.js.map +1 -0
  1126. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.d.ts +17 -0
  1127. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.js +21 -0
  1128. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.js.map +1 -0
  1129. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.d.ts +18 -0
  1130. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.js +24 -0
  1131. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.js.map +1 -0
  1132. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.d.ts +8 -0
  1133. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.js +4 -0
  1134. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.js.map +1 -0
  1135. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/index.d.ts +1 -0
  1136. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/index.js +2 -0
  1137. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/index.js.map +1 -0
  1138. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.d.ts +30 -0
  1139. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.js +89 -0
  1140. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.js.map +1 -0
  1141. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.d.ts +29 -0
  1142. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.js +73 -0
  1143. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.js.map +1 -0
  1144. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.d.ts +30 -0
  1145. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.js +89 -0
  1146. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.js.map +1 -0
  1147. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.d.ts +24 -0
  1148. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.js +54 -0
  1149. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.js.map +1 -0
  1150. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.d.ts +23 -0
  1151. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.js +45 -0
  1152. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.js.map +1 -0
  1153. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.d.ts +24 -0
  1154. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.js +54 -0
  1155. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -0
  1156. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.d.ts +8 -0
  1157. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.js +4 -0
  1158. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.js.map +1 -0
  1159. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.d.ts +1 -0
  1160. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.js +2 -0
  1161. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.js.map +1 -0
  1162. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.d.ts +0 -0
  1163. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.js +3 -0
  1164. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.js.map +1 -0
  1165. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.d.ts +0 -0
  1166. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.js +3 -0
  1167. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.js.map +1 -0
  1168. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.d.ts +26 -0
  1169. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.js +69 -0
  1170. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.js.map +1 -0
  1171. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.d.ts +25 -0
  1172. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.js +57 -0
  1173. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.js.map +1 -0
  1174. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.d.ts +26 -0
  1175. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.js +69 -0
  1176. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.js.map +1 -0
  1177. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.d.ts +18 -0
  1178. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.js +24 -0
  1179. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.js.map +1 -0
  1180. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.d.ts +17 -0
  1181. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.js +21 -0
  1182. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.js.map +1 -0
  1183. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.d.ts +18 -0
  1184. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.js +24 -0
  1185. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.js.map +1 -0
  1186. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.d.ts +8 -0
  1187. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.js +4 -0
  1188. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.js.map +1 -0
  1189. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.d.ts +1 -0
  1190. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.js +2 -0
  1191. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.js.map +1 -0
  1192. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.d.ts +0 -0
  1193. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.js +3 -0
  1194. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.js.map +1 -0
  1195. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.d.ts +22 -0
  1196. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.js +44 -0
  1197. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.js.map +1 -0
  1198. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.d.ts +21 -0
  1199. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.js +37 -0
  1200. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.js.map +1 -0
  1201. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.d.ts +22 -0
  1202. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.js +44 -0
  1203. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.js.map +1 -0
  1204. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.d.ts +18 -0
  1205. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.js +24 -0
  1206. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.js.map +1 -0
  1207. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.d.ts +17 -0
  1208. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.js +21 -0
  1209. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.js.map +1 -0
  1210. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.d.ts +18 -0
  1211. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.js +24 -0
  1212. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.js.map +1 -0
  1213. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.d.ts +8 -0
  1214. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.js +4 -0
  1215. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.js.map +1 -0
  1216. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.d.ts +1 -0
  1217. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.js +2 -0
  1218. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.js.map +1 -0
  1219. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.d.ts +0 -0
  1220. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.js +3 -0
  1221. package/lib-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.js.map +1 -0
  1222. package/lib-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.i18n.data.js +1 -1
  1223. package/lib-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.i18n.data.js +1 -1
  1224. package/lib-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.i18n.data.js +1 -1
  1225. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.d.ts +2 -0
  1226. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.js +16 -6
  1227. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.js.map +1 -1
  1228. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.d.ts +8 -2
  1229. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js +14 -6
  1230. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js.map +1 -1
  1231. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.d.ts +2 -0
  1232. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js +16 -6
  1233. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js.map +1 -1
  1234. package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.d.ts +2 -0
  1235. package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.js +29 -1
  1236. package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -1
  1237. package/lib-prod/taon-cms-content/taon-cms-content.controller.d.ts +9 -2
  1238. package/lib-prod/taon-cms-content/taon-cms-content.controller.js +122 -3
  1239. package/lib-prod/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  1240. package/lib-prod/taon-cms-content/taon-cms-content.entity.d.ts +3 -0
  1241. package/lib-prod/taon-cms-content/taon-cms-content.entity.js +27 -0
  1242. package/lib-prod/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  1243. package/lib-prod/taon-cms-content/taon-cms-content.models.d.ts +14 -0
  1244. package/lib-prod/taon-cms-content/taon-cms-content.models.js.map +1 -1
  1245. package/lib-prod/taon-cms-content/taon-cms-content.repository.d.ts +12 -2
  1246. package/lib-prod/taon-cms-content/taon-cms-content.repository.js +534 -29
  1247. package/lib-prod/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  1248. package/lib-prod/taon-cms-content/taon-cms-content.validation.js +4 -0
  1249. package/lib-prod/taon-cms-content/taon-cms-content.validation.js.map +1 -1
  1250. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data.js +5 -5
  1251. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data.js +5 -5
  1252. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data.js +5 -5
  1253. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.d.ts +3 -0
  1254. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.js +20 -5
  1255. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.js.map +1 -1
  1256. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.d.ts +2 -0
  1257. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.js +8 -0
  1258. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.js.map +1 -1
  1259. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.d.ts +3 -0
  1260. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.js +20 -5
  1261. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.js.map +1 -1
  1262. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.d.ts +2 -0
  1263. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.js +15 -5
  1264. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.js.map +1 -1
  1265. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.d.ts +1 -0
  1266. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.js +9 -5
  1267. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.js.map +1 -1
  1268. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.d.ts +2 -0
  1269. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.js +15 -5
  1270. package/lib-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.js.map +1 -1
  1271. package/lib-prod/taon-posts/taon-cms-course-backoffice/index.d.ts +1 -1
  1272. package/lib-prod/taon-posts/taon-cms-course-backoffice/index.js +1 -1
  1273. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.d.ts +17 -0
  1274. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.js +19 -0
  1275. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.js.map +1 -0
  1276. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.d.ts +16 -0
  1277. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.js +17 -0
  1278. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.js.map +1 -0
  1279. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.d.ts +17 -0
  1280. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.js +19 -0
  1281. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.js.map +1 -0
  1282. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.d.ts +8 -0
  1283. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.js +8 -0
  1284. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.js.map +1 -0
  1285. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.d.ts +8 -0
  1286. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.js +8 -0
  1287. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.js.map +1 -0
  1288. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.d.ts +8 -0
  1289. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.js +8 -0
  1290. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.js.map +1 -0
  1291. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.d.ts +25 -10
  1292. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.js +222 -87
  1293. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.js.map +1 -1
  1294. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.d.ts +23 -4
  1295. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.js +179 -85
  1296. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.js.map +1 -1
  1297. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.d.ts +25 -10
  1298. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.js +221 -86
  1299. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.js.map +1 -1
  1300. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.d.ts +30 -7
  1301. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.js +183 -39
  1302. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.js.map +1 -1
  1303. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.d.ts +28 -1
  1304. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.js +150 -39
  1305. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.js.map +1 -1
  1306. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.d.ts +30 -7
  1307. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.js +183 -39
  1308. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.js.map +1 -1
  1309. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.d.ts +7 -1
  1310. package/lib-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.js.map +1 -1
  1311. package/lib-prod/taon-posts/taon-cms-post/index.d.ts +1 -1
  1312. package/lib-prod/taon-posts/taon-cms-post/index.js +1 -1
  1313. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.d.ts +8 -2
  1314. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.js +64 -13
  1315. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.js.map +1 -1
  1316. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.d.ts +7 -2
  1317. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.js +45 -13
  1318. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.js.map +1 -1
  1319. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.d.ts +8 -2
  1320. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.js +64 -13
  1321. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.js.map +1 -1
  1322. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.d.ts +2 -6
  1323. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.js +14 -7
  1324. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.js.map +1 -1
  1325. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.d.ts +2 -6
  1326. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.js +14 -7
  1327. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.js.map +1 -1
  1328. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.d.ts +2 -6
  1329. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.js +2 -1
  1330. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.js.map +1 -1
  1331. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.d.ts +2 -6
  1332. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.js +2 -1
  1333. package/lib-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.js.map +1 -1
  1334. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -1
  1335. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.js +1 -1
  1336. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -1
  1337. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.js +1 -1
  1338. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.d.ts +1 -0
  1339. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.js +6 -1
  1340. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.js.map +1 -1
  1341. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.d.ts +1 -0
  1342. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.js +4 -0
  1343. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.js.map +1 -1
  1344. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.d.ts +1 -0
  1345. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.js +5 -0
  1346. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.js.map +1 -1
  1347. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data.js +2 -2
  1348. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.i18n.data.js +2 -2
  1349. package/lib-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data.js +2 -2
  1350. package/lib-prod/taon-posts/taon-related-post-chooser/index.d.ts +1 -1
  1351. package/lib-prod/taon-posts/taon-related-post-chooser/index.js +1 -1
  1352. package/package.json +1 -1
  1353. package/scss/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.scss +3 -0
  1354. package/scss/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.scss +3 -0
  1355. package/scss/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.scss +3 -0
  1356. package/scss/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.scss +3 -0
  1357. package/scss/lib/taon-cms-comment/taon-cms-comments.component.scss +28 -0
  1358. package/scss/lib/taon-posts/taon-cms-post/taon-cms-post.component.scss +27 -0
  1359. package/ts-source/browser-code/build-info._auto-generated_.ts +1 -1
  1360. package/ts-source/browser-code/index._auto-generated_.ts +18 -0
  1361. package/ts-source/browser-code/migrations/1793664000000_postVersionLinks.ts +40 -0
  1362. package/ts-source/browser-code/migrations/migrations_index._auto-generated_.ts +3 -0
  1363. package/ts-source/browser-code/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html +1 -1
  1364. package/ts-source/browser-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.ts +9 -3
  1365. package/ts-source/browser-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.po +7 -3
  1366. package/ts-source/browser-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.ts +8 -3
  1367. package/ts-source/browser-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.po +7 -3
  1368. package/ts-source/browser-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.ts +9 -3
  1369. package/ts-source/browser-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.po +7 -3
  1370. package/ts-source/browser-code/taon-cms-backoffice/taon-cms-backoffice.routes.ts +10 -0
  1371. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.ts +145 -0
  1372. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.po +77 -0
  1373. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.ts +124 -0
  1374. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.po +77 -0
  1375. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.ts +145 -0
  1376. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.po +77 -0
  1377. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comment.translation.ts +24 -0
  1378. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.ts +107 -0
  1379. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.po +61 -0
  1380. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.ts +93 -0
  1381. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.po +61 -0
  1382. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.ts +107 -0
  1383. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.po +61 -0
  1384. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.ts +53 -0
  1385. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.po +25 -0
  1386. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.ts +48 -0
  1387. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.po +25 -0
  1388. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.ts +53 -0
  1389. package/ts-source/browser-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.po +25 -0
  1390. package/ts-source/browser-code/taon-cms-comment/index.ts +5 -0
  1391. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment-api.service.ts +97 -4
  1392. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.ts +23 -0
  1393. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment-blocked-user.entity.ts +22 -0
  1394. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment-spam-report.entity.ts +23 -0
  1395. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment-vote.entity.ts +24 -0
  1396. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.abstract.context.ts +11 -1
  1397. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.controller.ts +134 -8
  1398. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.entity.ts +1 -1
  1399. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.ts +19 -0
  1400. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.po +5 -0
  1401. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.ts +19 -0
  1402. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.po +5 -0
  1403. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.ts +19 -0
  1404. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.po +5 -0
  1405. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.ts +41 -0
  1406. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.po +17 -0
  1407. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.ts +38 -0
  1408. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.po +17 -0
  1409. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.ts +41 -0
  1410. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.po +17 -0
  1411. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.ts +21 -0
  1412. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/index.ts +13 -0
  1413. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.ts +118 -0
  1414. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.po +66 -0
  1415. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.ts +102 -0
  1416. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.po +66 -0
  1417. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.ts +118 -0
  1418. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.po +66 -0
  1419. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.ts +77 -0
  1420. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.po +41 -0
  1421. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.ts +68 -0
  1422. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.po +41 -0
  1423. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.ts +77 -0
  1424. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.po +41 -0
  1425. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.ts +21 -0
  1426. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.ts +13 -0
  1427. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.html +68 -0
  1428. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.scss +14 -0
  1429. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.ts +109 -0
  1430. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.ts +13 -0
  1431. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes.ts +21 -0
  1432. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.html +14 -0
  1433. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.scss +14 -0
  1434. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.ts +28 -0
  1435. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.ts +13 -0
  1436. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.ts +51 -0
  1437. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.ts +94 -0
  1438. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.po +50 -0
  1439. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.ts +82 -0
  1440. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.po +50 -0
  1441. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.ts +94 -0
  1442. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.po +50 -0
  1443. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.ts +41 -0
  1444. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.po +17 -0
  1445. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.ts +38 -0
  1446. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.po +17 -0
  1447. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.ts +41 -0
  1448. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.po +17 -0
  1449. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.ts +21 -0
  1450. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.ts +13 -0
  1451. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.html +48 -0
  1452. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.scss +14 -0
  1453. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.ts +94 -0
  1454. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.ts +13 -0
  1455. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes.ts +21 -0
  1456. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.ts +65 -0
  1457. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.po +33 -0
  1458. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.ts +58 -0
  1459. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.po +33 -0
  1460. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.ts +65 -0
  1461. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.po +33 -0
  1462. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.ts +41 -0
  1463. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.po +17 -0
  1464. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.ts +38 -0
  1465. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.po +17 -0
  1466. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.ts +41 -0
  1467. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.po +17 -0
  1468. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.ts +21 -0
  1469. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.ts +13 -0
  1470. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.html +38 -0
  1471. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.scss +14 -0
  1472. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.ts +82 -0
  1473. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.ts +13 -0
  1474. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes.ts +21 -0
  1475. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments.component.html +108 -0
  1476. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments.component.scss +39 -0
  1477. package/ts-source/browser-code/taon-cms-comment/taon-cms-comments.component.ts +141 -0
  1478. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.i18n.data.ts +1 -1
  1479. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.po +1 -1
  1480. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.i18n.data.ts +1 -1
  1481. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.po +1 -1
  1482. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.i18n.data.ts +1 -1
  1483. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.po +1 -1
  1484. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.ts +18 -6
  1485. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.po +14 -6
  1486. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.ts +16 -6
  1487. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.po +14 -6
  1488. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.ts +18 -6
  1489. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.po +14 -6
  1490. package/ts-source/browser-code/taon-cms-content/taon-cms-content-api.service.ts +41 -3
  1491. package/ts-source/browser-code/taon-cms-content/taon-cms-content-storage.controller.ts +7 -1
  1492. package/ts-source/browser-code/taon-cms-content/taon-cms-content.controller.ts +65 -2
  1493. package/ts-source/browser-code/taon-cms-content/taon-cms-content.entity.ts +3 -0
  1494. package/ts-source/browser-code/taon-cms-content/taon-cms-content.models.ts +14 -0
  1495. package/ts-source/browser-code/taon-cms-content/taon-cms-content.repository.ts +59 -4
  1496. package/ts-source/browser-code/taon-cms-content/taon-cms-content.validation.ts +4 -0
  1497. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data.ts +5 -5
  1498. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.po +5 -5
  1499. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data.ts +5 -5
  1500. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.po +5 -5
  1501. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data.ts +5 -5
  1502. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.po +5 -5
  1503. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.ts +22 -5
  1504. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.po +12 -4
  1505. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.ts +10 -0
  1506. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.po +8 -0
  1507. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.ts +22 -5
  1508. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.po +12 -4
  1509. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.ts +16 -5
  1510. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.po +14 -10
  1511. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.ts +10 -5
  1512. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.po +9 -5
  1513. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.ts +16 -5
  1514. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.po +14 -10
  1515. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html +2 -1
  1516. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html +23 -0
  1517. package/ts-source/browser-code/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts +22 -1
  1518. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.ts +35 -0
  1519. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.po +13 -0
  1520. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.ts +33 -0
  1521. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.po +13 -0
  1522. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.ts +35 -0
  1523. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.po +13 -0
  1524. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.ts +19 -0
  1525. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.po +5 -0
  1526. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.ts +19 -0
  1527. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.po +5 -0
  1528. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.ts +19 -0
  1529. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.po +5 -0
  1530. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.ts +245 -91
  1531. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.po +180 -99
  1532. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.ts +202 -89
  1533. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.po +163 -82
  1534. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.ts +244 -90
  1535. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.po +179 -98
  1536. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.ts +211 -40
  1537. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.po +152 -43
  1538. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.ts +178 -40
  1539. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.po +148 -39
  1540. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.ts +211 -40
  1541. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.po +152 -43
  1542. package/ts-source/browser-code/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.ts +7 -1
  1543. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.html +31 -0
  1544. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.ts +46 -0
  1545. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post.component.html +934 -606
  1546. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post.component.scss +27 -0
  1547. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post.component.ts +471 -47
  1548. package/ts-source/browser-code/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts +1 -0
  1549. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.ts +71 -15
  1550. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.po +46 -23
  1551. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.ts +52 -15
  1552. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.po +36 -13
  1553. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.ts +71 -15
  1554. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.po +46 -23
  1555. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.ts +14 -7
  1556. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.po +7 -7
  1557. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.ts +14 -7
  1558. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.po +7 -7
  1559. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.ts +2 -1
  1560. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.po +1 -1
  1561. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.ts +2 -1
  1562. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.po +1 -1
  1563. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts +86 -18
  1564. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.ts +7 -1
  1565. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.po +5 -1
  1566. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.ts +5 -0
  1567. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.po +4 -0
  1568. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.ts +6 -0
  1569. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.po +4 -0
  1570. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data.ts +2 -2
  1571. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.po +2 -2
  1572. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.i18n.data.ts +2 -2
  1573. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.po +2 -2
  1574. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data.ts +2 -2
  1575. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.po +2 -2
  1576. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +3 -3
  1577. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts +8 -1
  1578. package/ts-source/browser-code-prod/build-info._auto-generated_.ts +1 -1
  1579. package/ts-source/browser-code-prod/index._auto-generated_.ts +18 -0
  1580. package/ts-source/browser-code-prod/migrations/1793664000000_postVersionLinks.split-namespaces.json +4 -0
  1581. package/ts-source/browser-code-prod/migrations/1793664000000_postVersionLinks.ts +40 -0
  1582. package/ts-source/browser-code-prod/migrations/migrations_index._auto-generated_.ts +3 -0
  1583. package/ts-source/browser-code-prod/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html +1 -1
  1584. package/ts-source/browser-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.ts +9 -3
  1585. package/ts-source/browser-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.po +7 -3
  1586. package/ts-source/browser-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.ts +8 -3
  1587. package/ts-source/browser-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.po +7 -3
  1588. package/ts-source/browser-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.ts +9 -3
  1589. package/ts-source/browser-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.po +7 -3
  1590. package/ts-source/browser-code-prod/taon-cms-backoffice/taon-cms-backoffice.routes.ts +10 -0
  1591. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.ts +145 -0
  1592. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.po +77 -0
  1593. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.ts +124 -0
  1594. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.po +77 -0
  1595. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.ts +145 -0
  1596. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.po +77 -0
  1597. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comment.translation.split-namespaces.json +4 -0
  1598. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comment.translation.ts +24 -0
  1599. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.ts +107 -0
  1600. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.po +61 -0
  1601. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.ts +93 -0
  1602. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.po +61 -0
  1603. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.ts +107 -0
  1604. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.po +61 -0
  1605. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.ts +53 -0
  1606. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.po +25 -0
  1607. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.ts +48 -0
  1608. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.po +25 -0
  1609. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.ts +53 -0
  1610. package/ts-source/browser-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.po +25 -0
  1611. package/ts-source/browser-code-prod/taon-cms-comment/index.ts +5 -0
  1612. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-api.service.ts +97 -4
  1613. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.split-namespaces.json +4 -0
  1614. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.ts +23 -0
  1615. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-blocked-user.entity.split-namespaces.json +4 -0
  1616. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-blocked-user.entity.ts +22 -0
  1617. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-spam-report.entity.split-namespaces.json +4 -0
  1618. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-spam-report.entity.ts +23 -0
  1619. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-vote.entity.split-namespaces.json +4 -0
  1620. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-vote.entity.ts +24 -0
  1621. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.abstract.context.ts +11 -1
  1622. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.controller.ts +134 -8
  1623. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.entity.ts +1 -1
  1624. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.ts +19 -0
  1625. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.po +5 -0
  1626. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.ts +19 -0
  1627. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.po +5 -0
  1628. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.ts +19 -0
  1629. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.po +5 -0
  1630. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.ts +41 -0
  1631. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.po +17 -0
  1632. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.ts +38 -0
  1633. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.po +17 -0
  1634. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.ts +41 -0
  1635. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.po +17 -0
  1636. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.split-namespaces.json +4 -0
  1637. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.ts +21 -0
  1638. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/index.split-namespaces.json +4 -0
  1639. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/index.ts +13 -0
  1640. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.ts +118 -0
  1641. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.po +66 -0
  1642. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.ts +102 -0
  1643. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.po +66 -0
  1644. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.ts +118 -0
  1645. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.po +66 -0
  1646. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.ts +77 -0
  1647. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.po +41 -0
  1648. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.ts +68 -0
  1649. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.po +41 -0
  1650. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.ts +77 -0
  1651. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.po +41 -0
  1652. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.split-namespaces.json +4 -0
  1653. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.ts +21 -0
  1654. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.split-namespaces.json +4 -0
  1655. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.ts +13 -0
  1656. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.html +68 -0
  1657. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.scss +14 -0
  1658. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.split-namespaces.json +4 -0
  1659. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.ts +109 -0
  1660. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.split-namespaces.json +4 -0
  1661. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.ts +12 -0
  1662. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes.split-namespaces.json +4 -0
  1663. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes.ts +21 -0
  1664. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.html +14 -0
  1665. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.scss +14 -0
  1666. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.split-namespaces.json +4 -0
  1667. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.ts +28 -0
  1668. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.split-namespaces.json +4 -0
  1669. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.ts +12 -0
  1670. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.split-namespaces.json +4 -0
  1671. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.ts +51 -0
  1672. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.ts +94 -0
  1673. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.po +50 -0
  1674. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.ts +82 -0
  1675. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.po +50 -0
  1676. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.ts +94 -0
  1677. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.po +50 -0
  1678. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.ts +41 -0
  1679. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.po +17 -0
  1680. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.ts +38 -0
  1681. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.po +17 -0
  1682. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.ts +41 -0
  1683. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.po +17 -0
  1684. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.split-namespaces.json +4 -0
  1685. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.ts +21 -0
  1686. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.split-namespaces.json +4 -0
  1687. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.ts +13 -0
  1688. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.html +48 -0
  1689. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.scss +14 -0
  1690. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.split-namespaces.json +4 -0
  1691. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.ts +94 -0
  1692. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.split-namespaces.json +4 -0
  1693. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.ts +12 -0
  1694. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes.split-namespaces.json +4 -0
  1695. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes.ts +21 -0
  1696. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.ts +65 -0
  1697. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.po +33 -0
  1698. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.ts +58 -0
  1699. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.po +33 -0
  1700. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.ts +65 -0
  1701. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.po +33 -0
  1702. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.ts +41 -0
  1703. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.po +17 -0
  1704. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.ts +38 -0
  1705. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.po +17 -0
  1706. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.ts +41 -0
  1707. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.po +17 -0
  1708. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.split-namespaces.json +4 -0
  1709. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.ts +21 -0
  1710. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.split-namespaces.json +4 -0
  1711. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.ts +13 -0
  1712. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.html +38 -0
  1713. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.scss +14 -0
  1714. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.split-namespaces.json +4 -0
  1715. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.ts +82 -0
  1716. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.split-namespaces.json +4 -0
  1717. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.ts +12 -0
  1718. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes.split-namespaces.json +4 -0
  1719. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes.ts +21 -0
  1720. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments.component.html +108 -0
  1721. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments.component.scss +39 -0
  1722. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments.component.split-namespaces.json +4 -0
  1723. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comments.component.ts +141 -0
  1724. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.i18n.data.ts +1 -1
  1725. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.po +1 -1
  1726. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.i18n.data.ts +1 -1
  1727. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.po +1 -1
  1728. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.i18n.data.ts +1 -1
  1729. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.po +1 -1
  1730. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.ts +18 -6
  1731. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.po +14 -6
  1732. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.ts +16 -6
  1733. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.po +14 -6
  1734. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.ts +18 -6
  1735. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.po +14 -6
  1736. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content-api.service.ts +41 -3
  1737. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content-storage.controller.ts +7 -1
  1738. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.controller.ts +65 -2
  1739. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.entity.ts +3 -0
  1740. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.models.ts +14 -0
  1741. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.repository.ts +59 -4
  1742. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.validation.ts +4 -0
  1743. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data.ts +5 -5
  1744. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.po +5 -5
  1745. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data.ts +5 -5
  1746. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.po +5 -5
  1747. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data.ts +5 -5
  1748. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.po +5 -5
  1749. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.ts +22 -5
  1750. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.po +12 -4
  1751. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.ts +10 -0
  1752. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.po +8 -0
  1753. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.ts +22 -5
  1754. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.po +12 -4
  1755. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.ts +16 -5
  1756. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.po +14 -10
  1757. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.ts +10 -5
  1758. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.po +9 -5
  1759. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.ts +16 -5
  1760. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.po +14 -10
  1761. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html +2 -1
  1762. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html +23 -0
  1763. package/ts-source/browser-code-prod/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts +22 -1
  1764. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.ts +35 -0
  1765. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.po +13 -0
  1766. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.ts +33 -0
  1767. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.po +13 -0
  1768. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.ts +35 -0
  1769. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.po +13 -0
  1770. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.ts +19 -0
  1771. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.po +5 -0
  1772. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.ts +19 -0
  1773. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.po +5 -0
  1774. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.ts +19 -0
  1775. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.po +5 -0
  1776. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.ts +245 -91
  1777. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.po +180 -99
  1778. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.ts +202 -89
  1779. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.po +163 -82
  1780. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.ts +244 -90
  1781. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.po +179 -98
  1782. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.ts +211 -40
  1783. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.po +152 -43
  1784. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.ts +178 -40
  1785. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.po +148 -39
  1786. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.ts +211 -40
  1787. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.po +152 -43
  1788. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.ts +7 -1
  1789. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.html +31 -0
  1790. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.split-namespaces.json +4 -0
  1791. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.ts +46 -0
  1792. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.html +934 -606
  1793. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.scss +27 -0
  1794. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.ts +471 -47
  1795. package/ts-source/browser-code-prod/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts +1 -0
  1796. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.ts +71 -15
  1797. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.po +46 -23
  1798. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.ts +52 -15
  1799. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.po +36 -13
  1800. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.ts +71 -15
  1801. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.po +46 -23
  1802. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.ts +14 -7
  1803. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.po +7 -7
  1804. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.ts +14 -7
  1805. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.po +7 -7
  1806. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.ts +2 -1
  1807. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.po +1 -1
  1808. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.ts +2 -1
  1809. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.po +1 -1
  1810. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts +86 -18
  1811. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.ts +7 -1
  1812. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.po +5 -1
  1813. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.ts +5 -0
  1814. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.po +4 -0
  1815. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.ts +6 -0
  1816. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.po +4 -0
  1817. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data.ts +2 -2
  1818. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.po +2 -2
  1819. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.i18n.data.ts +2 -2
  1820. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.po +2 -2
  1821. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data.ts +2 -2
  1822. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.po +2 -2
  1823. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +3 -3
  1824. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts +8 -1
  1825. package/ts-source/websql-code/build-info._auto-generated_.ts +1 -1
  1826. package/ts-source/websql-code/index._auto-generated_.ts +18 -0
  1827. package/ts-source/websql-code/migrations/1793664000000_postVersionLinks.ts +40 -0
  1828. package/ts-source/websql-code/migrations/migrations_index._auto-generated_.ts +3 -0
  1829. package/ts-source/websql-code/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html +1 -1
  1830. package/ts-source/websql-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.ts +9 -3
  1831. package/ts-source/websql-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.po +7 -3
  1832. package/ts-source/websql-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.ts +8 -3
  1833. package/ts-source/websql-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.po +7 -3
  1834. package/ts-source/websql-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.ts +9 -3
  1835. package/ts-source/websql-code/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.po +7 -3
  1836. package/ts-source/websql-code/taon-cms-backoffice/taon-cms-backoffice.routes.ts +10 -0
  1837. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.ts +145 -0
  1838. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.po +77 -0
  1839. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.ts +124 -0
  1840. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.po +77 -0
  1841. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.ts +145 -0
  1842. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.po +77 -0
  1843. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comment.translation.ts +24 -0
  1844. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.ts +107 -0
  1845. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.po +61 -0
  1846. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.ts +93 -0
  1847. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.po +61 -0
  1848. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.ts +107 -0
  1849. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.po +61 -0
  1850. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.ts +53 -0
  1851. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.po +25 -0
  1852. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.ts +48 -0
  1853. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.po +25 -0
  1854. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.ts +53 -0
  1855. package/ts-source/websql-code/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.po +25 -0
  1856. package/ts-source/websql-code/taon-cms-comment/index.ts +5 -0
  1857. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment-api.service.ts +97 -4
  1858. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.ts +28 -0
  1859. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment-blocked-user.entity.ts +26 -0
  1860. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment-spam-report.entity.ts +28 -0
  1861. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment-vote.entity.ts +30 -0
  1862. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.abstract.context.ts +11 -1
  1863. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.controller.ts +464 -15
  1864. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.entity.ts +3 -3
  1865. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.ts +19 -0
  1866. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.po +5 -0
  1867. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.ts +19 -0
  1868. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.po +5 -0
  1869. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.ts +19 -0
  1870. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.po +5 -0
  1871. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.ts +41 -0
  1872. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.po +17 -0
  1873. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.ts +38 -0
  1874. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.po +17 -0
  1875. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.ts +41 -0
  1876. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.po +17 -0
  1877. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.ts +21 -0
  1878. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/index.ts +13 -0
  1879. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.ts +118 -0
  1880. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.po +66 -0
  1881. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.ts +102 -0
  1882. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.po +66 -0
  1883. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.ts +118 -0
  1884. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.po +66 -0
  1885. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.ts +77 -0
  1886. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.po +41 -0
  1887. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.ts +68 -0
  1888. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.po +41 -0
  1889. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.ts +77 -0
  1890. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.po +41 -0
  1891. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.ts +21 -0
  1892. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.ts +13 -0
  1893. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.html +68 -0
  1894. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.scss +14 -0
  1895. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.ts +109 -0
  1896. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.ts +13 -0
  1897. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes.ts +21 -0
  1898. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.html +14 -0
  1899. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.scss +14 -0
  1900. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.ts +28 -0
  1901. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.ts +13 -0
  1902. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.ts +51 -0
  1903. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.ts +94 -0
  1904. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.po +50 -0
  1905. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.ts +82 -0
  1906. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.po +50 -0
  1907. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.ts +94 -0
  1908. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.po +50 -0
  1909. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.ts +41 -0
  1910. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.po +17 -0
  1911. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.ts +38 -0
  1912. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.po +17 -0
  1913. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.ts +41 -0
  1914. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.po +17 -0
  1915. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.ts +21 -0
  1916. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.ts +13 -0
  1917. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.html +48 -0
  1918. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.scss +14 -0
  1919. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.ts +94 -0
  1920. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.ts +13 -0
  1921. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes.ts +21 -0
  1922. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.ts +65 -0
  1923. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.po +33 -0
  1924. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.ts +58 -0
  1925. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.po +33 -0
  1926. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.ts +65 -0
  1927. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.po +33 -0
  1928. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.ts +41 -0
  1929. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.po +17 -0
  1930. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.ts +38 -0
  1931. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.po +17 -0
  1932. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.ts +41 -0
  1933. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.po +17 -0
  1934. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.ts +21 -0
  1935. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.ts +13 -0
  1936. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.html +38 -0
  1937. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.scss +14 -0
  1938. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.ts +82 -0
  1939. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.ts +13 -0
  1940. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes.ts +21 -0
  1941. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments.component.html +108 -0
  1942. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments.component.scss +39 -0
  1943. package/ts-source/websql-code/taon-cms-comment/taon-cms-comments.component.ts +141 -0
  1944. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.i18n.data.ts +1 -1
  1945. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.po +1 -1
  1946. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.i18n.data.ts +1 -1
  1947. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.po +1 -1
  1948. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.i18n.data.ts +1 -1
  1949. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.po +1 -1
  1950. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.ts +18 -6
  1951. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.po +14 -6
  1952. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.ts +16 -6
  1953. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.po +14 -6
  1954. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.ts +18 -6
  1955. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.po +14 -6
  1956. package/ts-source/websql-code/taon-cms-content/taon-cms-content-api.service.ts +41 -3
  1957. package/ts-source/websql-code/taon-cms-content/taon-cms-content-storage.controller.ts +7 -1
  1958. package/ts-source/websql-code/taon-cms-content/taon-cms-content.controller.ts +84 -3
  1959. package/ts-source/websql-code/taon-cms-content/taon-cms-content.entity.ts +6 -0
  1960. package/ts-source/websql-code/taon-cms-content/taon-cms-content.models.ts +14 -0
  1961. package/ts-source/websql-code/taon-cms-content/taon-cms-content.repository.ts +520 -29
  1962. package/ts-source/websql-code/taon-cms-content/taon-cms-content.validation.ts +4 -0
  1963. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data.ts +5 -5
  1964. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.po +5 -5
  1965. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data.ts +5 -5
  1966. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.po +5 -5
  1967. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data.ts +5 -5
  1968. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.po +5 -5
  1969. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.ts +22 -5
  1970. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.po +12 -4
  1971. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.ts +10 -0
  1972. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.po +8 -0
  1973. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.ts +22 -5
  1974. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.po +12 -4
  1975. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.ts +16 -5
  1976. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.po +14 -10
  1977. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.ts +10 -5
  1978. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.po +9 -5
  1979. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.ts +16 -5
  1980. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.po +14 -10
  1981. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html +2 -1
  1982. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html +23 -0
  1983. package/ts-source/websql-code/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts +22 -1
  1984. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.ts +35 -0
  1985. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.po +13 -0
  1986. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.ts +33 -0
  1987. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.po +13 -0
  1988. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.ts +35 -0
  1989. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.po +13 -0
  1990. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.ts +19 -0
  1991. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.po +5 -0
  1992. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.ts +19 -0
  1993. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.po +5 -0
  1994. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.ts +19 -0
  1995. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.po +5 -0
  1996. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.ts +245 -91
  1997. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.po +180 -99
  1998. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.ts +202 -89
  1999. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.po +163 -82
  2000. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.ts +244 -90
  2001. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.po +179 -98
  2002. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.ts +211 -40
  2003. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.po +152 -43
  2004. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.ts +178 -40
  2005. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.po +148 -39
  2006. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.ts +211 -40
  2007. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.po +152 -43
  2008. package/ts-source/websql-code/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.ts +7 -1
  2009. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.html +31 -0
  2010. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.ts +46 -0
  2011. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post.component.html +934 -606
  2012. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post.component.scss +27 -0
  2013. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post.component.ts +471 -47
  2014. package/ts-source/websql-code/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts +1 -0
  2015. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.ts +71 -15
  2016. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.po +46 -23
  2017. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.ts +52 -15
  2018. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.po +36 -13
  2019. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.ts +71 -15
  2020. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.po +46 -23
  2021. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.ts +14 -7
  2022. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.po +7 -7
  2023. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.ts +14 -7
  2024. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.po +7 -7
  2025. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.ts +2 -1
  2026. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.po +1 -1
  2027. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.ts +2 -1
  2028. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.po +1 -1
  2029. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts +86 -18
  2030. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.ts +7 -1
  2031. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.po +5 -1
  2032. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.ts +5 -0
  2033. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.po +4 -0
  2034. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.ts +6 -0
  2035. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.po +4 -0
  2036. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data.ts +2 -2
  2037. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.po +2 -2
  2038. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.i18n.data.ts +2 -2
  2039. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.po +2 -2
  2040. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data.ts +2 -2
  2041. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.po +2 -2
  2042. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +3 -3
  2043. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts +8 -1
  2044. package/ts-source/websql-code-prod/build-info._auto-generated_.ts +1 -1
  2045. package/ts-source/websql-code-prod/index._auto-generated_.ts +18 -0
  2046. package/ts-source/websql-code-prod/migrations/1793664000000_postVersionLinks.split-namespaces.json +4 -0
  2047. package/ts-source/websql-code-prod/migrations/1793664000000_postVersionLinks.ts +40 -0
  2048. package/ts-source/websql-code-prod/migrations/migrations_index._auto-generated_.ts +3 -0
  2049. package/ts-source/websql-code-prod/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html +1 -1
  2050. package/ts-source/websql-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data.ts +9 -3
  2051. package/ts-source/websql-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.de-DE.po +7 -3
  2052. package/ts-source/websql-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data.ts +8 -3
  2053. package/ts-source/websql-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.en-US.po +7 -3
  2054. package/ts-source/websql-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data.ts +9 -3
  2055. package/ts-source/websql-code-prod/taon-cms-backoffice/i18n/taon-cms-backoffice.routes.ts.pl-PL.po +7 -3
  2056. package/ts-source/websql-code-prod/taon-cms-backoffice/taon-cms-backoffice.routes.ts +10 -0
  2057. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.i18n.data.ts +145 -0
  2058. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.de-DE.po +77 -0
  2059. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.i18n.data.ts +124 -0
  2060. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.en-US.po +77 -0
  2061. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data.ts +145 -0
  2062. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comment.controller.ts.pl-PL.po +77 -0
  2063. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comment.translation.split-namespaces.json +4 -0
  2064. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comment.translation.ts +24 -0
  2065. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.i18n.data.ts +107 -0
  2066. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.de-DE.po +61 -0
  2067. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.i18n.data.ts +93 -0
  2068. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.en-US.po +61 -0
  2069. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.i18n.data.ts +107 -0
  2070. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.html.pl-PL.po +61 -0
  2071. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.i18n.data.ts +53 -0
  2072. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.de-DE.po +25 -0
  2073. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.i18n.data.ts +48 -0
  2074. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.en-US.po +25 -0
  2075. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.i18n.data.ts +53 -0
  2076. package/ts-source/websql-code-prod/taon-cms-comment/i18n/taon-cms-comments.component.ts.pl-PL.po +25 -0
  2077. package/ts-source/websql-code-prod/taon-cms-comment/index.ts +5 -0
  2078. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-api.service.ts +97 -4
  2079. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.split-namespaces.json +4 -0
  2080. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.ts +28 -0
  2081. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-blocked-user.entity.split-namespaces.json +4 -0
  2082. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-blocked-user.entity.ts +26 -0
  2083. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-spam-report.entity.split-namespaces.json +4 -0
  2084. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-spam-report.entity.ts +28 -0
  2085. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-vote.entity.split-namespaces.json +4 -0
  2086. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-vote.entity.ts +30 -0
  2087. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.abstract.context.ts +11 -1
  2088. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.controller.ts +464 -15
  2089. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.entity.ts +3 -3
  2090. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data.ts +19 -0
  2091. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.de-DE.po +5 -0
  2092. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data.ts +19 -0
  2093. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.en-US.po +5 -0
  2094. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data.ts +19 -0
  2095. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.component.ts.pl-PL.po +5 -0
  2096. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data.ts +41 -0
  2097. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.de-DE.po +17 -0
  2098. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data.ts +38 -0
  2099. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.en-US.po +17 -0
  2100. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data.ts +41 -0
  2101. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.po +17 -0
  2102. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.split-namespaces.json +4 -0
  2103. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/i18n/taon-cms-comments-backoffice.translation.ts +21 -0
  2104. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/index.split-namespaces.json +4 -0
  2105. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/index.ts +13 -0
  2106. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data.ts +118 -0
  2107. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.po +66 -0
  2108. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data.ts +102 -0
  2109. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.po +66 -0
  2110. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data.ts +118 -0
  2111. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.po +66 -0
  2112. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data.ts +77 -0
  2113. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.po +41 -0
  2114. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data.ts +68 -0
  2115. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.po +41 -0
  2116. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data.ts +77 -0
  2117. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.po +41 -0
  2118. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.split-namespaces.json +4 -0
  2119. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/i18n/taon-cms-comments-all-preview-backoffice.translation.ts +21 -0
  2120. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.split-namespaces.json +4 -0
  2121. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/index.ts +13 -0
  2122. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.html +68 -0
  2123. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.scss +14 -0
  2124. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.split-namespaces.json +4 -0
  2125. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.ts +109 -0
  2126. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.split-namespaces.json +4 -0
  2127. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.ts +12 -0
  2128. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes.split-namespaces.json +4 -0
  2129. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes.ts +21 -0
  2130. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.html +14 -0
  2131. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.scss +14 -0
  2132. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.split-namespaces.json +4 -0
  2133. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.ts +28 -0
  2134. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.split-namespaces.json +4 -0
  2135. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.ts +12 -0
  2136. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.split-namespaces.json +4 -0
  2137. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.ts +51 -0
  2138. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data.ts +94 -0
  2139. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.de-DE.po +50 -0
  2140. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data.ts +82 -0
  2141. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.en-US.po +50 -0
  2142. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data.ts +94 -0
  2143. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.html.pl-PL.po +50 -0
  2144. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data.ts +41 -0
  2145. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.de-DE.po +17 -0
  2146. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data.ts +38 -0
  2147. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.en-US.po +17 -0
  2148. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data.ts +41 -0
  2149. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.po +17 -0
  2150. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.split-namespaces.json +4 -0
  2151. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/i18n/taon-cms-comments-blocked-users.translation.ts +21 -0
  2152. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.split-namespaces.json +4 -0
  2153. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/index.ts +13 -0
  2154. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.html +48 -0
  2155. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.scss +14 -0
  2156. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.split-namespaces.json +4 -0
  2157. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.ts +94 -0
  2158. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.split-namespaces.json +4 -0
  2159. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.ts +12 -0
  2160. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes.split-namespaces.json +4 -0
  2161. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes.ts +21 -0
  2162. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data.ts +65 -0
  2163. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.de-DE.po +33 -0
  2164. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data.ts +58 -0
  2165. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.en-US.po +33 -0
  2166. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data.ts +65 -0
  2167. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.html.pl-PL.po +33 -0
  2168. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data.ts +41 -0
  2169. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.de-DE.po +17 -0
  2170. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data.ts +38 -0
  2171. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.en-US.po +17 -0
  2172. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data.ts +41 -0
  2173. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.po +17 -0
  2174. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.split-namespaces.json +4 -0
  2175. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/i18n/taon-cms-comments-filters-settings.translation.ts +21 -0
  2176. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.split-namespaces.json +4 -0
  2177. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/index.ts +13 -0
  2178. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.html +38 -0
  2179. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.scss +14 -0
  2180. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.split-namespaces.json +4 -0
  2181. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.ts +82 -0
  2182. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.split-namespaces.json +4 -0
  2183. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.ts +12 -0
  2184. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes.split-namespaces.json +4 -0
  2185. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes.ts +21 -0
  2186. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments.component.html +108 -0
  2187. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments.component.scss +39 -0
  2188. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments.component.split-namespaces.json +4 -0
  2189. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comments.component.ts +141 -0
  2190. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.i18n.data.ts +1 -1
  2191. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.de-DE.po +1 -1
  2192. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.i18n.data.ts +1 -1
  2193. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.en-US.po +1 -1
  2194. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.i18n.data.ts +1 -1
  2195. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content-storage.controller.ts.pl-PL.po +1 -1
  2196. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.i18n.data.ts +18 -6
  2197. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.de-DE.po +14 -6
  2198. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.ts +16 -6
  2199. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.po +14 -6
  2200. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.ts +18 -6
  2201. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.po +14 -6
  2202. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content-api.service.ts +41 -3
  2203. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content-storage.controller.ts +7 -1
  2204. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.controller.ts +84 -3
  2205. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.entity.ts +6 -0
  2206. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.models.ts +14 -0
  2207. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.repository.ts +520 -29
  2208. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.validation.ts +4 -0
  2209. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data.ts +5 -5
  2210. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.de-DE.po +5 -5
  2211. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data.ts +5 -5
  2212. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.en-US.po +5 -5
  2213. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data.ts +5 -5
  2214. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-backoffice.component.html.pl-PL.po +5 -5
  2215. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.i18n.data.ts +22 -5
  2216. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.de-DE.po +12 -4
  2217. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.i18n.data.ts +10 -0
  2218. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.en-US.po +8 -0
  2219. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data.ts +22 -5
  2220. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.html.pl-PL.po +12 -4
  2221. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data.ts +16 -5
  2222. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.de-DE.po +14 -10
  2223. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.i18n.data.ts +10 -5
  2224. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.en-US.po +9 -5
  2225. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data.ts +16 -5
  2226. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/i18n/taon-cms-course-contents.component.ts.pl-PL.po +14 -10
  2227. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html +2 -1
  2228. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html +23 -0
  2229. package/ts-source/websql-code-prod/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts +22 -1
  2230. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data.ts +35 -0
  2231. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.de-DE.po +13 -0
  2232. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data.ts +33 -0
  2233. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.en-US.po +13 -0
  2234. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data.ts +35 -0
  2235. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.html.pl-PL.po +13 -0
  2236. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data.ts +19 -0
  2237. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.de-DE.po +5 -0
  2238. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data.ts +19 -0
  2239. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.en-US.po +5 -0
  2240. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data.ts +19 -0
  2241. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.po +5 -0
  2242. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.i18n.data.ts +245 -91
  2243. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.de-DE.po +180 -99
  2244. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.i18n.data.ts +202 -89
  2245. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.en-US.po +163 -82
  2246. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.i18n.data.ts +244 -90
  2247. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.html.pl-PL.po +179 -98
  2248. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.i18n.data.ts +211 -40
  2249. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.de-DE.po +152 -43
  2250. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.i18n.data.ts +178 -40
  2251. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.en-US.po +148 -39
  2252. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.i18n.data.ts +211 -40
  2253. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.component.ts.pl-PL.po +152 -43
  2254. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/i18n/taon-cms-post.translation.ts +7 -1
  2255. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.html +31 -0
  2256. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.split-namespaces.json +4 -0
  2257. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.ts +46 -0
  2258. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.html +934 -606
  2259. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.scss +27 -0
  2260. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.ts +471 -47
  2261. package/ts-source/websql-code-prod/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts +1 -0
  2262. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data.ts +71 -15
  2263. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.de-DE.po +46 -23
  2264. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data.ts +52 -15
  2265. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.en-US.po +36 -13
  2266. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data.ts +71 -15
  2267. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-post-table-actions.directive.ts.pl-PL.po +46 -23
  2268. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data.ts +14 -7
  2269. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.de-DE.po +7 -7
  2270. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data.ts +14 -7
  2271. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.html.pl-PL.po +7 -7
  2272. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data.ts +2 -1
  2273. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.de-DE.po +1 -1
  2274. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data.ts +2 -1
  2275. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/i18n/taon-cms-posts-backoffice.component.ts.pl-PL.po +1 -1
  2276. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts +86 -18
  2277. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.i18n.data.ts +7 -1
  2278. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.de-DE.po +5 -1
  2279. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.i18n.data.ts +5 -0
  2280. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.en-US.po +4 -0
  2281. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data.ts +6 -0
  2282. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.html.pl-PL.po +4 -0
  2283. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data.ts +2 -2
  2284. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.de-DE.po +2 -2
  2285. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.i18n.data.ts +2 -2
  2286. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.en-US.po +2 -2
  2287. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data.ts +2 -2
  2288. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/i18n/taon-related-post-chooser.component.ts.pl-PL.po +2 -2
  2289. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +3 -3
  2290. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts +8 -1
  2291. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.de-DE.i18n.data-TfVhaK25.mjs +40 -0
  2292. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.de-DE.i18n.data-TfVhaK25.mjs.map +1 -0
  2293. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.en-US.i18n.data-CheHHtNM.mjs +39 -0
  2294. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.en-US.i18n.data-CheHHtNM.mjs.map +1 -0
  2295. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-DJZPLtkM.mjs +41 -0
  2296. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-DJZPLtkM.mjs.map +1 -0
  2297. package/websql/fesm2022/cms-websql-taon-cms-comment.controller.ts.de-DE.i18n.data-DfdKMA6Q.mjs +116 -0
  2298. package/websql/fesm2022/cms-websql-taon-cms-comment.controller.ts.de-DE.i18n.data-DfdKMA6Q.mjs.map +1 -0
  2299. package/websql/fesm2022/cms-websql-taon-cms-comment.controller.ts.en-US.i18n.data-CMr3vMuf.mjs +95 -0
  2300. package/websql/fesm2022/cms-websql-taon-cms-comment.controller.ts.en-US.i18n.data-CMr3vMuf.mjs.map +1 -0
  2301. package/websql/fesm2022/cms-websql-taon-cms-comment.controller.ts.pl-PL.i18n.data-alGje_2s.mjs +116 -0
  2302. package/websql/fesm2022/cms-websql-taon-cms-comment.controller.ts.pl-PL.i18n.data-alGje_2s.mjs.map +1 -0
  2303. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data-D-MULm2P.mjs +91 -0
  2304. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data-D-MULm2P.mjs.map +1 -0
  2305. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data-CJnPT6tZ.mjs +75 -0
  2306. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data-CJnPT6tZ.mjs.map +1 -0
  2307. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data-D_5cR-1j.mjs +91 -0
  2308. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data-D_5cR-1j.mjs.map +1 -0
  2309. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data-D02CKD_B.mjs +56 -0
  2310. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data-D02CKD_B.mjs.map +1 -0
  2311. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data-D_DNZ_4s.mjs +47 -0
  2312. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data-D_DNZ_4s.mjs.map +1 -0
  2313. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data-KScZlXpE.mjs +56 -0
  2314. package/websql/fesm2022/cms-websql-taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data-KScZlXpE.mjs.map +1 -0
  2315. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.component.ts.de-DE.i18n.data-DKxoHRGn.mjs +10 -0
  2316. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.component.ts.de-DE.i18n.data-DKxoHRGn.mjs.map +1 -0
  2317. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.component.ts.en-US.i18n.data-BDz2v5u3.mjs +10 -0
  2318. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.component.ts.en-US.i18n.data-BDz2v5u3.mjs.map +1 -0
  2319. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data-DjTuh1Dt.mjs +10 -0
  2320. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data-DjTuh1Dt.mjs.map +1 -0
  2321. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data-VKAelP0F.mjs +26 -0
  2322. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data-VKAelP0F.mjs.map +1 -0
  2323. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.routes.ts.en-US.i18n.data-CPGJrpCf.mjs +23 -0
  2324. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.routes.ts.en-US.i18n.data-CPGJrpCf.mjs.map +1 -0
  2325. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data-DorD3yQX.mjs +26 -0
  2326. package/websql/fesm2022/cms-websql-taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data-DorD3yQX.mjs.map +1 -0
  2327. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.html.de-DE.i18n.data-D18TJGzH.mjs +71 -0
  2328. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.html.de-DE.i18n.data-D18TJGzH.mjs.map +1 -0
  2329. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.html.en-US.i18n.data-Cs9WDtfG.mjs +59 -0
  2330. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.html.en-US.i18n.data-Cs9WDtfG.mjs.map +1 -0
  2331. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data-Cq300DLd.mjs +71 -0
  2332. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data-Cq300DLd.mjs.map +1 -0
  2333. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data-D74Xg6Ev.mjs +26 -0
  2334. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data-D74Xg6Ev.mjs.map +1 -0
  2335. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.ts.en-US.i18n.data-CVZAQr1t.mjs +23 -0
  2336. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.ts.en-US.i18n.data-CVZAQr1t.mjs.map +1 -0
  2337. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data-C8gk5Y1p.mjs +26 -0
  2338. package/websql/fesm2022/cms-websql-taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data-C8gk5Y1p.mjs.map +1 -0
  2339. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.html.de-DE.i18n.data-DPUmgBKh.mjs +46 -0
  2340. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.html.de-DE.i18n.data-DPUmgBKh.mjs.map +1 -0
  2341. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.html.en-US.i18n.data-nNODcqJE.mjs +39 -0
  2342. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.html.en-US.i18n.data-nNODcqJE.mjs.map +1 -0
  2343. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data-DZcQ_6Z2.mjs +46 -0
  2344. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data-DZcQ_6Z2.mjs.map +1 -0
  2345. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data-BWv0OvuF.mjs +26 -0
  2346. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data-BWv0OvuF.mjs.map +1 -0
  2347. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.ts.en-US.i18n.data-CqPrWRQ4.mjs +23 -0
  2348. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.ts.en-US.i18n.data-CqPrWRQ4.mjs.map +1 -0
  2349. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data-qb5Do2uU.mjs +26 -0
  2350. package/websql/fesm2022/cms-websql-taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data-qb5Do2uU.mjs.map +1 -0
  2351. package/websql/fesm2022/cms-websql-taon-cms-comments.component.html.de-DE.i18n.data-3kDZ_f1s.mjs +81 -0
  2352. package/websql/fesm2022/cms-websql-taon-cms-comments.component.html.de-DE.i18n.data-3kDZ_f1s.mjs.map +1 -0
  2353. package/websql/fesm2022/cms-websql-taon-cms-comments.component.html.en-US.i18n.data-qn0Qhvg7.mjs +67 -0
  2354. package/websql/fesm2022/cms-websql-taon-cms-comments.component.html.en-US.i18n.data-qn0Qhvg7.mjs.map +1 -0
  2355. package/websql/fesm2022/cms-websql-taon-cms-comments.component.html.pl-PL.i18n.data-CYHD1WN-.mjs +81 -0
  2356. package/websql/fesm2022/cms-websql-taon-cms-comments.component.html.pl-PL.i18n.data-CYHD1WN-.mjs.map +1 -0
  2357. package/websql/fesm2022/cms-websql-taon-cms-comments.component.ts.de-DE.i18n.data-BAuwTjLi.mjs +36 -0
  2358. package/websql/fesm2022/cms-websql-taon-cms-comments.component.ts.de-DE.i18n.data-BAuwTjLi.mjs.map +1 -0
  2359. package/websql/fesm2022/cms-websql-taon-cms-comments.component.ts.en-US.i18n.data-DwBpeV3m.mjs +31 -0
  2360. package/websql/fesm2022/cms-websql-taon-cms-comments.component.ts.en-US.i18n.data-DwBpeV3m.mjs.map +1 -0
  2361. package/websql/fesm2022/cms-websql-taon-cms-comments.component.ts.pl-PL.i18n.data-BD0Ah0Sf.mjs +36 -0
  2362. package/websql/fesm2022/cms-websql-taon-cms-comments.component.ts.pl-PL.i18n.data-BD0Ah0Sf.mjs.map +1 -0
  2363. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.de-DE.i18n.data-lauRdu00.mjs +55 -0
  2364. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.de-DE.i18n.data-lauRdu00.mjs.map +1 -0
  2365. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.en-US.i18n.data-C9h6MS7K.mjs +55 -0
  2366. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.en-US.i18n.data-C9h6MS7K.mjs.map +1 -0
  2367. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-R6YimmTr.mjs +55 -0
  2368. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-R6YimmTr.mjs.map +1 -0
  2369. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.de-DE.i18n.data-Bzo5KfeC.mjs +46 -0
  2370. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.de-DE.i18n.data-Bzo5KfeC.mjs.map +1 -0
  2371. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.en-US.i18n.data-BLADFF0I.mjs +39 -0
  2372. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.en-US.i18n.data-BLADFF0I.mjs.map +1 -0
  2373. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.pl-PL.i18n.data-DPK6Mhyf.mjs +46 -0
  2374. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.pl-PL.i18n.data-DPK6Mhyf.mjs.map +1 -0
  2375. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.de-DE.i18n.data-CBzgWOR0.mjs +41 -0
  2376. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.de-DE.i18n.data-CBzgWOR0.mjs.map +1 -0
  2377. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.en-US.i18n.data-DpCnGeXs.mjs +35 -0
  2378. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.en-US.i18n.data-DpCnGeXs.mjs.map +1 -0
  2379. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.pl-PL.i18n.data-B7h8nQIi.mjs +41 -0
  2380. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.pl-PL.i18n.data-B7h8nQIi.mjs.map +1 -0
  2381. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.html.de-DE.i18n.data-s2dXTIUw.mjs +21 -0
  2382. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.html.de-DE.i18n.data-s2dXTIUw.mjs.map +1 -0
  2383. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.html.en-US.i18n.data-NG3-0ZeO.mjs +19 -0
  2384. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.html.en-US.i18n.data-NG3-0ZeO.mjs.map +1 -0
  2385. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data-DncFM6D3.mjs +21 -0
  2386. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data-DncFM6D3.mjs.map +1 -0
  2387. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data-DgAHAzJM.mjs +10 -0
  2388. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data-DgAHAzJM.mjs.map +1 -0
  2389. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.ts.en-US.i18n.data-DAA5R9fI.mjs +10 -0
  2390. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.ts.en-US.i18n.data-DAA5R9fI.mjs.map +1 -0
  2391. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data-CyKmux96.mjs +10 -0
  2392. package/websql/fesm2022/cms-websql-taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data-CyKmux96.mjs.map +1 -0
  2393. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-D2WBOl0S.mjs +106 -0
  2394. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-D2WBOl0S.mjs.map +1 -0
  2395. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-BONUISS3.mjs +87 -0
  2396. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-BONUISS3.mjs.map +1 -0
  2397. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-COdeP-kl.mjs +106 -0
  2398. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-COdeP-kl.mjs.map +1 -0
  2399. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.de-DE.i18n.data-CFnh6W_O.mjs +511 -0
  2400. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.de-DE.i18n.data-CFnh6W_O.mjs.map +1 -0
  2401. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.en-US.i18n.data-3on7bNkn.mjs +469 -0
  2402. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.en-US.i18n.data-3on7bNkn.mjs.map +1 -0
  2403. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.pl-PL.i18n.data-CU68ootZ.mjs +511 -0
  2404. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.pl-PL.i18n.data-CU68ootZ.mjs.map +1 -0
  2405. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.de-DE.i18n.data-DRFVe1Fj.mjs +336 -0
  2406. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.de-DE.i18n.data-DRFVe1Fj.mjs.map +1 -0
  2407. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.en-US.i18n.data-BOZEOEfP.mjs +299 -0
  2408. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.en-US.i18n.data-BOZEOEfP.mjs.map +1 -0
  2409. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.pl-PL.i18n.data-Cexq4SX7.mjs +336 -0
  2410. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.pl-PL.i18n.data-Cexq4SX7.mjs.map +1 -0
  2411. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-C8TxifWb.mjs +56 -0
  2412. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-C8TxifWb.mjs.map +1 -0
  2413. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-DKTo9X8k.mjs +56 -0
  2414. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-DKTo9X8k.mjs.map +1 -0
  2415. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-DWdrbrWh.mjs +26 -0
  2416. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-DWdrbrWh.mjs.map +1 -0
  2417. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-Bzw-JYHR.mjs +26 -0
  2418. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-Bzw-JYHR.mjs.map +1 -0
  2419. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.de-DE.i18n.data-1TH4Pm7Q.mjs +56 -0
  2420. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.de-DE.i18n.data-1TH4Pm7Q.mjs.map +1 -0
  2421. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.en-US.i18n.data-Cfqns2EQ.mjs +54 -0
  2422. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.en-US.i18n.data-Cfqns2EQ.mjs.map +1 -0
  2423. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.pl-PL.i18n.data-dZa8riqs.mjs +56 -0
  2424. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.pl-PL.i18n.data-dZa8riqs.mjs.map +1 -0
  2425. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.de-DE.i18n.data-qsAd2fKC.mjs +21 -0
  2426. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.de-DE.i18n.data-qsAd2fKC.mjs.map +1 -0
  2427. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.en-US.i18n.data-DPxzZXI5.mjs +21 -0
  2428. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.en-US.i18n.data-DPxzZXI5.mjs.map +1 -0
  2429. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.pl-PL.i18n.data-CKsWMfVJ.mjs +21 -0
  2430. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.pl-PL.i18n.data-CKsWMfVJ.mjs.map +1 -0
  2431. package/websql/fesm2022/cms-websql.mjs +3336 -817
  2432. package/websql/fesm2022/cms-websql.mjs.map +1 -1
  2433. package/websql/package.json +1 -1
  2434. package/websql/types/cms-websql.d.ts +351 -25
  2435. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.de-DE.i18n.data-CY7UGFAP.mjs +40 -0
  2436. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.de-DE.i18n.data-CY7UGFAP.mjs.map +1 -0
  2437. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.en-US.i18n.data-uWs4TVXj.mjs +39 -0
  2438. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.en-US.i18n.data-uWs4TVXj.mjs.map +1 -0
  2439. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-CMRn5ngO.mjs +41 -0
  2440. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-CMRn5ngO.mjs.map +1 -0
  2441. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comment.controller.ts.de-DE.i18n.data-CFvuWRZk.mjs +116 -0
  2442. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comment.controller.ts.de-DE.i18n.data-CFvuWRZk.mjs.map +1 -0
  2443. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comment.controller.ts.en-US.i18n.data-C3jR5ih9.mjs +95 -0
  2444. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comment.controller.ts.en-US.i18n.data-C3jR5ih9.mjs.map +1 -0
  2445. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comment.controller.ts.pl-PL.i18n.data-CMer0PWE.mjs +116 -0
  2446. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comment.controller.ts.pl-PL.i18n.data-CMer0PWE.mjs.map +1 -0
  2447. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data-CHDsVYY-.mjs +91 -0
  2448. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data-CHDsVYY-.mjs.map +1 -0
  2449. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data-CLvVlqUk.mjs +75 -0
  2450. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data-CLvVlqUk.mjs.map +1 -0
  2451. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data-Cgcdkp9N.mjs +91 -0
  2452. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data-Cgcdkp9N.mjs.map +1 -0
  2453. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data-Dhs5rr6i.mjs +56 -0
  2454. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data-Dhs5rr6i.mjs.map +1 -0
  2455. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data-JTvff5GQ.mjs +47 -0
  2456. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data-JTvff5GQ.mjs.map +1 -0
  2457. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data-BGTxiqaA.mjs +56 -0
  2458. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data-BGTxiqaA.mjs.map +1 -0
  2459. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.component.ts.de-DE.i18n.data-EaW1CIne.mjs +10 -0
  2460. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.component.ts.de-DE.i18n.data-EaW1CIne.mjs.map +1 -0
  2461. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.component.ts.en-US.i18n.data-BA8jyiT9.mjs +10 -0
  2462. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.component.ts.en-US.i18n.data-BA8jyiT9.mjs.map +1 -0
  2463. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data-CXA9V8dv.mjs +10 -0
  2464. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data-CXA9V8dv.mjs.map +1 -0
  2465. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data-DN_A_6t0.mjs +26 -0
  2466. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data-DN_A_6t0.mjs.map +1 -0
  2467. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.routes.ts.en-US.i18n.data-DcZclhbF.mjs +23 -0
  2468. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.routes.ts.en-US.i18n.data-DcZclhbF.mjs.map +1 -0
  2469. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data-BAlMmlVF.mjs +26 -0
  2470. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data-BAlMmlVF.mjs.map +1 -0
  2471. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.html.de-DE.i18n.data-B--Kp5m5.mjs +71 -0
  2472. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.html.de-DE.i18n.data-B--Kp5m5.mjs.map +1 -0
  2473. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.html.en-US.i18n.data-kbUUFfkj.mjs +59 -0
  2474. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.html.en-US.i18n.data-kbUUFfkj.mjs.map +1 -0
  2475. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data-BHLhuVXH.mjs +71 -0
  2476. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data-BHLhuVXH.mjs.map +1 -0
  2477. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data-DQ7Y0yrN.mjs +26 -0
  2478. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data-DQ7Y0yrN.mjs.map +1 -0
  2479. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.ts.en-US.i18n.data-lPrTXsQ3.mjs +23 -0
  2480. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.ts.en-US.i18n.data-lPrTXsQ3.mjs.map +1 -0
  2481. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data-D6hIXQUU.mjs +26 -0
  2482. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data-D6hIXQUU.mjs.map +1 -0
  2483. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.html.de-DE.i18n.data-DuF2c-tJ.mjs +46 -0
  2484. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.html.de-DE.i18n.data-DuF2c-tJ.mjs.map +1 -0
  2485. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.html.en-US.i18n.data-g5c28Dcf.mjs +39 -0
  2486. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.html.en-US.i18n.data-g5c28Dcf.mjs.map +1 -0
  2487. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data-DFhBuBaR.mjs +46 -0
  2488. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data-DFhBuBaR.mjs.map +1 -0
  2489. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data-D-1JyW27.mjs +26 -0
  2490. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data-D-1JyW27.mjs.map +1 -0
  2491. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.ts.en-US.i18n.data-w3VkHulX.mjs +23 -0
  2492. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.ts.en-US.i18n.data-w3VkHulX.mjs.map +1 -0
  2493. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data-Bc1vkvaG.mjs +26 -0
  2494. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data-Bc1vkvaG.mjs.map +1 -0
  2495. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.html.de-DE.i18n.data-B0knEzw0.mjs +81 -0
  2496. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.html.de-DE.i18n.data-B0knEzw0.mjs.map +1 -0
  2497. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.html.en-US.i18n.data-ZwS80uno.mjs +67 -0
  2498. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.html.en-US.i18n.data-ZwS80uno.mjs.map +1 -0
  2499. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.html.pl-PL.i18n.data-5vOs9Cyj.mjs +81 -0
  2500. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.html.pl-PL.i18n.data-5vOs9Cyj.mjs.map +1 -0
  2501. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.ts.de-DE.i18n.data-DDOrKE7G.mjs +36 -0
  2502. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.ts.de-DE.i18n.data-DDOrKE7G.mjs.map +1 -0
  2503. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.ts.en-US.i18n.data-DTewS-E2.mjs +31 -0
  2504. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.ts.en-US.i18n.data-DTewS-E2.mjs.map +1 -0
  2505. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.ts.pl-PL.i18n.data-DIxTOu6m.mjs +36 -0
  2506. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-comments.component.ts.pl-PL.i18n.data-DIxTOu6m.mjs.map +1 -0
  2507. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.de-DE.i18n.data-_Q5NT5SC.mjs +55 -0
  2508. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.de-DE.i18n.data-_Q5NT5SC.mjs.map +1 -0
  2509. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.en-US.i18n.data-BMRiadgH.mjs +55 -0
  2510. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.en-US.i18n.data-BMRiadgH.mjs.map +1 -0
  2511. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-DdN6Fp8p.mjs +55 -0
  2512. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-DdN6Fp8p.mjs.map +1 -0
  2513. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.de-DE.i18n.data-DgheAMw0.mjs +46 -0
  2514. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.de-DE.i18n.data-DgheAMw0.mjs.map +1 -0
  2515. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.en-US.i18n.data-D_PCgxaU.mjs +39 -0
  2516. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.en-US.i18n.data-D_PCgxaU.mjs.map +1 -0
  2517. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.pl-PL.i18n.data-DIgNFeGb.mjs +46 -0
  2518. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.pl-PL.i18n.data-DIgNFeGb.mjs.map +1 -0
  2519. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.de-DE.i18n.data-BhW3_5XP.mjs +41 -0
  2520. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.de-DE.i18n.data-BhW3_5XP.mjs.map +1 -0
  2521. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.en-US.i18n.data-D6Qst9Xc.mjs +35 -0
  2522. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.en-US.i18n.data-D6Qst9Xc.mjs.map +1 -0
  2523. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.pl-PL.i18n.data-DxaQZeE8.mjs +41 -0
  2524. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.pl-PL.i18n.data-DxaQZeE8.mjs.map +1 -0
  2525. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.html.de-DE.i18n.data-BngVW1ST.mjs +21 -0
  2526. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.html.de-DE.i18n.data-BngVW1ST.mjs.map +1 -0
  2527. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.html.en-US.i18n.data-BmZmONdL.mjs +19 -0
  2528. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.html.en-US.i18n.data-BmZmONdL.mjs.map +1 -0
  2529. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data-CUcC-r1T.mjs +21 -0
  2530. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data-CUcC-r1T.mjs.map +1 -0
  2531. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data-DdQZA_Pt.mjs +10 -0
  2532. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data-DdQZA_Pt.mjs.map +1 -0
  2533. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.ts.en-US.i18n.data-Ccy7Dcvv.mjs +10 -0
  2534. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.ts.en-US.i18n.data-Ccy7Dcvv.mjs.map +1 -0
  2535. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data-CjnsarRp.mjs +10 -0
  2536. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data-CjnsarRp.mjs.map +1 -0
  2537. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-Bb5SdKYV.mjs +106 -0
  2538. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-Bb5SdKYV.mjs.map +1 -0
  2539. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-6hitV3EB.mjs +87 -0
  2540. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-6hitV3EB.mjs.map +1 -0
  2541. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-A45S-VFi.mjs +106 -0
  2542. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-A45S-VFi.mjs.map +1 -0
  2543. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.de-DE.i18n.data-BgkmwtEY.mjs +511 -0
  2544. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.de-DE.i18n.data-BgkmwtEY.mjs.map +1 -0
  2545. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.en-US.i18n.data-B-0MyO2q.mjs +469 -0
  2546. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.en-US.i18n.data-B-0MyO2q.mjs.map +1 -0
  2547. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.pl-PL.i18n.data-8LXxJpdQ.mjs +511 -0
  2548. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.pl-PL.i18n.data-8LXxJpdQ.mjs.map +1 -0
  2549. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.de-DE.i18n.data-BWAvg78Q.mjs +336 -0
  2550. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.de-DE.i18n.data-BWAvg78Q.mjs.map +1 -0
  2551. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.en-US.i18n.data-C4ntrsrg.mjs +299 -0
  2552. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.en-US.i18n.data-C4ntrsrg.mjs.map +1 -0
  2553. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.pl-PL.i18n.data-BZp2L3TX.mjs +336 -0
  2554. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.pl-PL.i18n.data-BZp2L3TX.mjs.map +1 -0
  2555. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-lI_4-46Z.mjs +56 -0
  2556. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-lI_4-46Z.mjs.map +1 -0
  2557. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-DHH-7SvG.mjs +56 -0
  2558. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-DHH-7SvG.mjs.map +1 -0
  2559. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-J--vMr2r.mjs +26 -0
  2560. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-J--vMr2r.mjs.map +1 -0
  2561. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-SKutIf3a.mjs +26 -0
  2562. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-SKutIf3a.mjs.map +1 -0
  2563. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.de-DE.i18n.data-CUkP9JBi.mjs +56 -0
  2564. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.de-DE.i18n.data-CUkP9JBi.mjs.map +1 -0
  2565. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.en-US.i18n.data-CYPPQhu1.mjs +54 -0
  2566. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.en-US.i18n.data-CYPPQhu1.mjs.map +1 -0
  2567. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.pl-PL.i18n.data-CKcf6Jgo.mjs +56 -0
  2568. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.pl-PL.i18n.data-CKcf6Jgo.mjs.map +1 -0
  2569. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.de-DE.i18n.data-DctcEHBr.mjs +21 -0
  2570. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.de-DE.i18n.data-DctcEHBr.mjs.map +1 -0
  2571. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.en-US.i18n.data-D9rMB3a3.mjs +21 -0
  2572. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.en-US.i18n.data-D9rMB3a3.mjs.map +1 -0
  2573. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.pl-PL.i18n.data-CDUc0Uv7.mjs +21 -0
  2574. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.pl-PL.i18n.data-CDUc0Uv7.mjs.map +1 -0
  2575. package/websql-prod/fesm2022/cms-websql-prod.mjs +3348 -817
  2576. package/websql-prod/fesm2022/cms-websql-prod.mjs.map +1 -1
  2577. package/websql-prod/package.json +1 -1
  2578. package/websql-prod/types/cms-websql-prod.d.ts +343 -25
  2579. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.de-DE.i18n.data-Dt6NX2ov.mjs +0 -35
  2580. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.de-DE.i18n.data-Dt6NX2ov.mjs.map +0 -1
  2581. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.en-US.i18n.data-seNJiHRQ.mjs +0 -35
  2582. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.en-US.i18n.data-seNJiHRQ.mjs.map +0 -1
  2583. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-C-K2Y0GF.mjs +0 -36
  2584. package/browser/fesm2022/cms-browser-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-C-K2Y0GF.mjs.map +0 -1
  2585. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.de-DE.i18n.data-CLwoKssp.mjs +0 -55
  2586. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.de-DE.i18n.data-CLwoKssp.mjs.map +0 -1
  2587. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.en-US.i18n.data-Dff_IALd.mjs +0 -55
  2588. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.en-US.i18n.data-Dff_IALd.mjs.map +0 -1
  2589. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-_LndUfcD.mjs +0 -55
  2590. package/browser/fesm2022/cms-browser-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-_LndUfcD.mjs.map +0 -1
  2591. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.de-DE.i18n.data-i1jNC8Bi.mjs +0 -31
  2592. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.de-DE.i18n.data-i1jNC8Bi.mjs.map +0 -1
  2593. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.en-US.i18n.data-Cf_yEr_6.mjs +0 -31
  2594. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.en-US.i18n.data-Cf_yEr_6.mjs.map +0 -1
  2595. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.pl-PL.i18n.data-DG2zoUK9.mjs +0 -31
  2596. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.html.pl-PL.i18n.data-DG2zoUK9.mjs.map +0 -1
  2597. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.de-DE.i18n.data-CUm1WaRd.mjs +0 -31
  2598. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.de-DE.i18n.data-CUm1WaRd.mjs.map +0 -1
  2599. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.en-US.i18n.data-C8J0c1Zz.mjs +0 -31
  2600. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.en-US.i18n.data-C8J0c1Zz.mjs.map +0 -1
  2601. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.pl-PL.i18n.data-DttC-CgL.mjs +0 -31
  2602. package/browser/fesm2022/cms-browser-taon-cms-course-contents.component.ts.pl-PL.i18n.data-DttC-CgL.mjs.map +0 -1
  2603. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-BJyXHMqp.mjs +0 -55
  2604. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-BJyXHMqp.mjs.map +0 -1
  2605. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-BVFE-lu5.mjs +0 -55
  2606. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-BVFE-lu5.mjs.map +0 -1
  2607. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-CEyIUnLc.mjs +0 -55
  2608. package/browser/fesm2022/cms-browser-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-CEyIUnLc.mjs.map +0 -1
  2609. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.de-DE.i18n.data-CapQLQ5d.mjs +0 -376
  2610. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.de-DE.i18n.data-CapQLQ5d.mjs.map +0 -1
  2611. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.en-US.i18n.data-BUE8MsLX.mjs +0 -375
  2612. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.en-US.i18n.data-BUE8MsLX.mjs.map +0 -1
  2613. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.pl-PL.i18n.data-BCTWaUca.mjs +0 -376
  2614. package/browser/fesm2022/cms-browser-taon-cms-post.component.html.pl-PL.i18n.data-BCTWaUca.mjs.map +0 -1
  2615. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.de-DE.i18n.data-BYxiUf8C.mjs +0 -192
  2616. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.de-DE.i18n.data-BYxiUf8C.mjs.map +0 -1
  2617. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.en-US.i18n.data-lruEnzKH.mjs +0 -188
  2618. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.en-US.i18n.data-lruEnzKH.mjs.map +0 -1
  2619. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.pl-PL.i18n.data-CNsT81Pt.mjs +0 -192
  2620. package/browser/fesm2022/cms-browser-taon-cms-post.component.ts.pl-PL.i18n.data-CNsT81Pt.mjs.map +0 -1
  2621. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-BDH-9r3S.mjs +0 -49
  2622. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-BDH-9r3S.mjs.map +0 -1
  2623. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-BEtQS-0C.mjs +0 -49
  2624. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-BEtQS-0C.mjs.map +0 -1
  2625. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-aMqPM6ev.mjs +0 -25
  2626. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-aMqPM6ev.mjs.map +0 -1
  2627. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-D1D80yR3.mjs +0 -25
  2628. package/browser/fesm2022/cms-browser-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-D1D80yR3.mjs.map +0 -1
  2629. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.de-DE.i18n.data-BsNPk0cG.mjs +0 -51
  2630. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.de-DE.i18n.data-BsNPk0cG.mjs.map +0 -1
  2631. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.en-US.i18n.data-BV9AnDid.mjs +0 -50
  2632. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.en-US.i18n.data-BV9AnDid.mjs.map +0 -1
  2633. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.pl-PL.i18n.data-VTZbP69l.mjs +0 -51
  2634. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.html.pl-PL.i18n.data-VTZbP69l.mjs.map +0 -1
  2635. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.de-DE.i18n.data-DLWhi5lI.mjs +0 -21
  2636. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.de-DE.i18n.data-DLWhi5lI.mjs.map +0 -1
  2637. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.en-US.i18n.data-B5vaympv.mjs +0 -21
  2638. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.en-US.i18n.data-B5vaympv.mjs.map +0 -1
  2639. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.pl-PL.i18n.data-eSpfHb7u.mjs +0 -21
  2640. package/browser/fesm2022/cms-browser-taon-related-post-chooser.component.ts.pl-PL.i18n.data-eSpfHb7u.mjs.map +0 -1
  2641. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.de-DE.i18n.data-4S1imZUX.mjs +0 -35
  2642. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.de-DE.i18n.data-4S1imZUX.mjs.map +0 -1
  2643. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.en-US.i18n.data-bIYJXCtW.mjs +0 -35
  2644. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.en-US.i18n.data-bIYJXCtW.mjs.map +0 -1
  2645. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-Do9n0Gxn.mjs +0 -36
  2646. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-Do9n0Gxn.mjs.map +0 -1
  2647. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.de-DE.i18n.data-DMxbsPFR.mjs +0 -55
  2648. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.de-DE.i18n.data-DMxbsPFR.mjs.map +0 -1
  2649. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.en-US.i18n.data-DU5zG1X1.mjs +0 -55
  2650. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.en-US.i18n.data-DU5zG1X1.mjs.map +0 -1
  2651. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-C6nS0We7.mjs +0 -55
  2652. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-C6nS0We7.mjs.map +0 -1
  2653. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.de-DE.i18n.data-CqciMyPt.mjs +0 -31
  2654. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.de-DE.i18n.data-CqciMyPt.mjs.map +0 -1
  2655. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.en-US.i18n.data-CZpsjVOU.mjs +0 -31
  2656. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.en-US.i18n.data-CZpsjVOU.mjs.map +0 -1
  2657. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.pl-PL.i18n.data-bcDy_z0-.mjs +0 -31
  2658. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.html.pl-PL.i18n.data-bcDy_z0-.mjs.map +0 -1
  2659. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.de-DE.i18n.data-C2LoW3lN.mjs +0 -31
  2660. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.de-DE.i18n.data-C2LoW3lN.mjs.map +0 -1
  2661. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.en-US.i18n.data-DP1mJztz.mjs +0 -31
  2662. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.en-US.i18n.data-DP1mJztz.mjs.map +0 -1
  2663. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.pl-PL.i18n.data-CKgBITdj.mjs +0 -31
  2664. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-course-contents.component.ts.pl-PL.i18n.data-CKgBITdj.mjs.map +0 -1
  2665. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-90yrFKjF.mjs +0 -55
  2666. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-90yrFKjF.mjs.map +0 -1
  2667. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-CH71xm4B.mjs +0 -55
  2668. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-CH71xm4B.mjs.map +0 -1
  2669. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-Df2DdA5N.mjs +0 -55
  2670. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-Df2DdA5N.mjs.map +0 -1
  2671. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.de-DE.i18n.data-CAFFTK-X.mjs +0 -376
  2672. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.de-DE.i18n.data-CAFFTK-X.mjs.map +0 -1
  2673. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.en-US.i18n.data-mH65cs_6.mjs +0 -375
  2674. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.en-US.i18n.data-mH65cs_6.mjs.map +0 -1
  2675. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.pl-PL.i18n.data-BU3G_LCm.mjs +0 -376
  2676. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.html.pl-PL.i18n.data-BU3G_LCm.mjs.map +0 -1
  2677. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.de-DE.i18n.data-cQQWKnwI.mjs +0 -192
  2678. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.de-DE.i18n.data-cQQWKnwI.mjs.map +0 -1
  2679. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.en-US.i18n.data-CZ3219rw.mjs +0 -188
  2680. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.en-US.i18n.data-CZ3219rw.mjs.map +0 -1
  2681. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.pl-PL.i18n.data-3odfuhvt.mjs +0 -192
  2682. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-post.component.ts.pl-PL.i18n.data-3odfuhvt.mjs.map +0 -1
  2683. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-D9Z519ap.mjs +0 -49
  2684. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-D9Z519ap.mjs.map +0 -1
  2685. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-f1LMnypn.mjs +0 -49
  2686. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-f1LMnypn.mjs.map +0 -1
  2687. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-t4gu8Pak.mjs +0 -25
  2688. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-t4gu8Pak.mjs.map +0 -1
  2689. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-JlG6ZQo_.mjs +0 -25
  2690. package/browser-prod/fesm2022/cms-browser-prod-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-JlG6ZQo_.mjs.map +0 -1
  2691. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.de-DE.i18n.data-Dv2W9o7g.mjs +0 -51
  2692. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.de-DE.i18n.data-Dv2W9o7g.mjs.map +0 -1
  2693. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.en-US.i18n.data-dk9lHW62.mjs +0 -50
  2694. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.en-US.i18n.data-dk9lHW62.mjs.map +0 -1
  2695. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.pl-PL.i18n.data-BHGjfdPv.mjs +0 -51
  2696. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.html.pl-PL.i18n.data-BHGjfdPv.mjs.map +0 -1
  2697. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.de-DE.i18n.data-Cs-byi87.mjs +0 -21
  2698. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.de-DE.i18n.data-Cs-byi87.mjs.map +0 -1
  2699. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.en-US.i18n.data-CNpn80st.mjs +0 -21
  2700. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.en-US.i18n.data-CNpn80st.mjs.map +0 -1
  2701. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.pl-PL.i18n.data-BQ-wAONd.mjs +0 -21
  2702. package/browser-prod/fesm2022/cms-browser-prod-taon-related-post-chooser.component.ts.pl-PL.i18n.data-BQ-wAONd.mjs.map +0 -1
  2703. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.de-DE.i18n.data-D2bKsNoS.mjs +0 -35
  2704. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.de-DE.i18n.data-D2bKsNoS.mjs.map +0 -1
  2705. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.en-US.i18n.data-nw5h-4Th.mjs +0 -35
  2706. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.en-US.i18n.data-nw5h-4Th.mjs.map +0 -1
  2707. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-DWPxduFo.mjs +0 -36
  2708. package/websql/fesm2022/cms-websql-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-DWPxduFo.mjs.map +0 -1
  2709. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.de-DE.i18n.data-DkSppX5j.mjs +0 -55
  2710. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.de-DE.i18n.data-DkSppX5j.mjs.map +0 -1
  2711. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.en-US.i18n.data-DaYr8I_Z.mjs +0 -55
  2712. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.en-US.i18n.data-DaYr8I_Z.mjs.map +0 -1
  2713. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-C6_Aqc3M.mjs +0 -55
  2714. package/websql/fesm2022/cms-websql-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-C6_Aqc3M.mjs.map +0 -1
  2715. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.de-DE.i18n.data-C7w7bI4c.mjs +0 -31
  2716. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.de-DE.i18n.data-C7w7bI4c.mjs.map +0 -1
  2717. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.en-US.i18n.data-B0x36jpK.mjs +0 -31
  2718. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.en-US.i18n.data-B0x36jpK.mjs.map +0 -1
  2719. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.pl-PL.i18n.data-2drjM21N.mjs +0 -31
  2720. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.html.pl-PL.i18n.data-2drjM21N.mjs.map +0 -1
  2721. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.de-DE.i18n.data-CL2w5q-S.mjs +0 -31
  2722. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.de-DE.i18n.data-CL2w5q-S.mjs.map +0 -1
  2723. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.en-US.i18n.data-DleMuJeD.mjs +0 -31
  2724. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.en-US.i18n.data-DleMuJeD.mjs.map +0 -1
  2725. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.pl-PL.i18n.data-DgkzL0Vq.mjs +0 -31
  2726. package/websql/fesm2022/cms-websql-taon-cms-course-contents.component.ts.pl-PL.i18n.data-DgkzL0Vq.mjs.map +0 -1
  2727. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-CKCKZi29.mjs +0 -55
  2728. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-CKCKZi29.mjs.map +0 -1
  2729. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-DUh-u4-P.mjs +0 -55
  2730. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-DUh-u4-P.mjs.map +0 -1
  2731. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-juzvMnde.mjs +0 -55
  2732. package/websql/fesm2022/cms-websql-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-juzvMnde.mjs.map +0 -1
  2733. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.de-DE.i18n.data-DJcuFwI4.mjs +0 -376
  2734. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.de-DE.i18n.data-DJcuFwI4.mjs.map +0 -1
  2735. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.en-US.i18n.data-DqG-6paf.mjs +0 -375
  2736. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.en-US.i18n.data-DqG-6paf.mjs.map +0 -1
  2737. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.pl-PL.i18n.data-okZz6YGc.mjs +0 -376
  2738. package/websql/fesm2022/cms-websql-taon-cms-post.component.html.pl-PL.i18n.data-okZz6YGc.mjs.map +0 -1
  2739. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.de-DE.i18n.data-KbNFIOV8.mjs +0 -192
  2740. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.de-DE.i18n.data-KbNFIOV8.mjs.map +0 -1
  2741. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.en-US.i18n.data-CIeHDfiP.mjs +0 -188
  2742. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.en-US.i18n.data-CIeHDfiP.mjs.map +0 -1
  2743. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.pl-PL.i18n.data-bze_EsKd.mjs +0 -192
  2744. package/websql/fesm2022/cms-websql-taon-cms-post.component.ts.pl-PL.i18n.data-bze_EsKd.mjs.map +0 -1
  2745. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-UXy-sMFK.mjs +0 -49
  2746. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-UXy-sMFK.mjs.map +0 -1
  2747. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-B5lnW5fC.mjs +0 -49
  2748. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-B5lnW5fC.mjs.map +0 -1
  2749. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-B7blUYSz.mjs +0 -25
  2750. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-B7blUYSz.mjs.map +0 -1
  2751. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-DusaGJ-_.mjs +0 -25
  2752. package/websql/fesm2022/cms-websql-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-DusaGJ-_.mjs.map +0 -1
  2753. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.de-DE.i18n.data-B8kwe4XH.mjs +0 -51
  2754. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.de-DE.i18n.data-B8kwe4XH.mjs.map +0 -1
  2755. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.en-US.i18n.data-DsxIoc3-.mjs +0 -50
  2756. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.en-US.i18n.data-DsxIoc3-.mjs.map +0 -1
  2757. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.pl-PL.i18n.data-KGkZHK6U.mjs +0 -51
  2758. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.html.pl-PL.i18n.data-KGkZHK6U.mjs.map +0 -1
  2759. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.de-DE.i18n.data-B-AefZ-Q.mjs +0 -21
  2760. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.de-DE.i18n.data-B-AefZ-Q.mjs.map +0 -1
  2761. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.en-US.i18n.data-D5CUfAg0.mjs +0 -21
  2762. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.en-US.i18n.data-D5CUfAg0.mjs.map +0 -1
  2763. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.pl-PL.i18n.data-DlY8NCht.mjs +0 -21
  2764. package/websql/fesm2022/cms-websql-taon-related-post-chooser.component.ts.pl-PL.i18n.data-DlY8NCht.mjs.map +0 -1
  2765. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.de-DE.i18n.data-MIIrwTKe.mjs +0 -35
  2766. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.de-DE.i18n.data-MIIrwTKe.mjs.map +0 -1
  2767. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.en-US.i18n.data-CAzMj6mG.mjs +0 -35
  2768. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.en-US.i18n.data-CAzMj6mG.mjs.map +0 -1
  2769. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-9SU8SXqe.mjs +0 -36
  2770. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-backoffice.routes.ts.pl-PL.i18n.data-9SU8SXqe.mjs.map +0 -1
  2771. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.de-DE.i18n.data-pBodiDom.mjs +0 -55
  2772. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.de-DE.i18n.data-pBodiDom.mjs.map +0 -1
  2773. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.en-US.i18n.data-C-KaCnmB.mjs +0 -55
  2774. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.en-US.i18n.data-C-KaCnmB.mjs.map +0 -1
  2775. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-DVvCS_w8.mjs +0 -55
  2776. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-backoffice.component.html.pl-PL.i18n.data-DVvCS_w8.mjs.map +0 -1
  2777. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.de-DE.i18n.data-DwXg_q7j.mjs +0 -31
  2778. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.de-DE.i18n.data-DwXg_q7j.mjs.map +0 -1
  2779. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.en-US.i18n.data-BPUBq0Bt.mjs +0 -31
  2780. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.en-US.i18n.data-BPUBq0Bt.mjs.map +0 -1
  2781. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.pl-PL.i18n.data-8KVZPVJ1.mjs +0 -31
  2782. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.html.pl-PL.i18n.data-8KVZPVJ1.mjs.map +0 -1
  2783. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.de-DE.i18n.data-CjwirhHF.mjs +0 -31
  2784. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.de-DE.i18n.data-CjwirhHF.mjs.map +0 -1
  2785. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.en-US.i18n.data-B3xqVTaa.mjs +0 -31
  2786. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.en-US.i18n.data-B3xqVTaa.mjs.map +0 -1
  2787. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.pl-PL.i18n.data-B9cHH0RN.mjs +0 -31
  2788. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-course-contents.component.ts.pl-PL.i18n.data-B9cHH0RN.mjs.map +0 -1
  2789. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-Bd1YmeXl.mjs +0 -55
  2790. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.de-DE.i18n.data-Bd1YmeXl.mjs.map +0 -1
  2791. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-BTSFy-ow.mjs +0 -55
  2792. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.en-US.i18n.data-BTSFy-ow.mjs.map +0 -1
  2793. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-C2f14xE4.mjs +0 -55
  2794. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data-C2f14xE4.mjs.map +0 -1
  2795. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.de-DE.i18n.data-BFSHH9Im.mjs +0 -376
  2796. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.de-DE.i18n.data-BFSHH9Im.mjs.map +0 -1
  2797. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.en-US.i18n.data-BiMl_Fi4.mjs +0 -375
  2798. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.en-US.i18n.data-BiMl_Fi4.mjs.map +0 -1
  2799. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.pl-PL.i18n.data-x-2YNBm3.mjs +0 -376
  2800. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.html.pl-PL.i18n.data-x-2YNBm3.mjs.map +0 -1
  2801. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.de-DE.i18n.data-BqvaPHXJ.mjs +0 -192
  2802. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.de-DE.i18n.data-BqvaPHXJ.mjs.map +0 -1
  2803. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.en-US.i18n.data-CyzBbAcG.mjs +0 -188
  2804. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.en-US.i18n.data-CyzBbAcG.mjs.map +0 -1
  2805. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.pl-PL.i18n.data-C8bVvJ1M.mjs +0 -192
  2806. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-post.component.ts.pl-PL.i18n.data-C8bVvJ1M.mjs.map +0 -1
  2807. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-DYJ4Tqv5.mjs +0 -49
  2808. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.html.de-DE.i18n.data-DYJ4Tqv5.mjs.map +0 -1
  2809. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-8omoF6EK.mjs +0 -49
  2810. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.html.pl-PL.i18n.data-8omoF6EK.mjs.map +0 -1
  2811. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-BdztQJJr.mjs +0 -25
  2812. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.ts.de-DE.i18n.data-BdztQJJr.mjs.map +0 -1
  2813. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-DHQaIyy0.mjs +0 -25
  2814. package/websql-prod/fesm2022/cms-websql-prod-taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data-DHQaIyy0.mjs.map +0 -1
  2815. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.de-DE.i18n.data-BnUmcqxu.mjs +0 -51
  2816. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.de-DE.i18n.data-BnUmcqxu.mjs.map +0 -1
  2817. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.en-US.i18n.data-BI5d-l_9.mjs +0 -50
  2818. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.en-US.i18n.data-BI5d-l_9.mjs.map +0 -1
  2819. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.pl-PL.i18n.data-HkdHjxON.mjs +0 -51
  2820. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.html.pl-PL.i18n.data-HkdHjxON.mjs.map +0 -1
  2821. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.de-DE.i18n.data-C0OgfgMU.mjs +0 -21
  2822. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.de-DE.i18n.data-C0OgfgMU.mjs.map +0 -1
  2823. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.en-US.i18n.data-Bq84gw3j.mjs +0 -21
  2824. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.en-US.i18n.data-Bq84gw3j.mjs.map +0 -1
  2825. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.pl-PL.i18n.data-BZu7gvGb.mjs +0 -21
  2826. package/websql-prod/fesm2022/cms-websql-prod-taon-related-post-chooser.component.ts.pl-PL.i18n.data-BZu7gvGb.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cms-websql-prod.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-application-hook/taon-cms-application-hook.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-application-hooks.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/migrations/1792506757808_applicaitonHooks.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.validation.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-taxonomy.validation.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content-storage.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-upload-progress.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.config.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-template-variables.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-thumbnail.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-editable.directive.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/index.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/cms-websql-prod.ts"],"sourcesContent":["import {\n Column,\n JoinColumn,\n OneToOne,\n PrimaryGeneratedColumn,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql-prod';\n\nimport type { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\nimport { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\n\n@TaonEntity({\n className: 'TaonCmsApplicationHookEntity',\n createTable: true,\n})\nexport class TaonCmsApplicationHookEntity extends TaonBaseEntity<TaonCmsApplicationHookEntity> {\n @PrimaryGeneratedColumn()\n id: number;\n\n @Column({ type: 'varchar', unique: true })\n hook: TaonCmsApplicationHook;\n\n @Column({ type: 'integer', nullable: true, unique: true })\n contentId: number | null;\n\n @OneToOne(\n () => TaonCmsContentEntity,\n content => content.applicationHook,\n { nullable: true, onDelete: 'SET NULL' },\n )\n @JoinColumn({ name: 'contentId', referencedColumnName: 'id' })\n content: TaonCmsContentEntity | null;\n}\n","import { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\n\nexport enum TaonCmsContentType {\n Normal = 'normal',\n Video = 'video',\n Audio = 'audio',\n Attachment = 'attachment',\n}\n\nexport enum TaonCmsContentState {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport interface TaonCmsContentFields {\n type: TaonCmsContentType;\n title: string;\n slug: string;\n body: string | null;\n videoKey: string | null;\n audioKey: string | null;\n attachmentKey: string | null;\n thumbnailKey: string | null;\n excerpt: string | null;\n categoryId: number | null;\n authorUserId: number | null;\n status: 'draft' | 'published' | 'archived';\n publishedAt: Date | null;\n applyPermissionsToRelatedPosts: boolean;\n}\n\nexport interface TaonCmsPermissionConfiguration {\n permissions: TaonPermissionEntity[];\n source: { id: number; title: string } | null;\n}\n\nexport interface TaonCmsCreateContent\n extends\n Pick<TaonCmsContentFields, 'title' | 'slug'>,\n Partial<Omit<TaonCmsContentFields, 'title' | 'slug'>> {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n applicationHook?: TaonCmsApplicationHook | null;\n}\n\nexport interface TaonCmsUpdateContent extends Partial<TaonCmsContentFields> {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n applicationHook?: TaonCmsApplicationHook | null;\n expectedVersion: number;\n}\n\nexport interface TaonCmsRestoreContent {\n revisionNumber: number;\n expectedVersion: number;\n}\n\nexport interface TaonCmsContentSnapshot extends TaonCmsContentFields {\n tagIds: number[];\n relatedPostIds?: number[];\n permissionIds: number[];\n}\nimport type { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\n","//#region imports\nimport { Column, JoinTable, ManyToMany, OneToOne, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\n\nimport { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\n\nimport { TaonCmsContentDefaultsValues } from './taon-cms-content.constants';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentEntity',\n createTable: true,\n})\nexport class TaonCmsContentEntity extends TaonBaseEntity<TaonCmsContentEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'varchar', default: TaonCmsContentType.Normal })\n //#endregion\n type: TaonCmsContentType = TaonCmsContentType.Normal;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n title: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @ManyToMany(() => TaonCmsContentEntity)\n @JoinTable({\n name: 'taon_cms_related_posts',\n joinColumn: { name: 'contentId', referencedColumnName: 'id' },\n inverseJoinColumn: { name: 'relatedPostId', referencedColumnName: 'id' },\n })\n //#endregion\n relatedPosts: TaonCmsContentEntity[];\n\n //#region @websql\n @OneToOne(\n () => TaonCmsApplicationHookEntity,\n applicationHook => applicationHook.content,\n )\n //#endregion\n applicationHook: TaonCmsApplicationHookEntity | null;\n\n //#region @websql\n @ManyToMany(() => TaonPermissionEntity)\n @JoinTable({\n name: 'taon_cms_content_permissions',\n joinColumn: { name: 'contentId', referencedColumnName: 'id' },\n inverseJoinColumn: { name: 'permissionId', referencedColumnName: 'id' },\n })\n //#endregion\n permissions: TaonPermissionEntity[];\n\n //#region @websql\n @Column({ type: 'boolean', default: false })\n //#endregion\n applyPermissionsToRelatedPosts: boolean = false;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n excerpt: string | null;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n body: string | null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n videoKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n audioKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n attachmentKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n thumbnailKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n categoryId: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n authorUserId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar', default: 'draft' })\n //#endregion\n status: string;\n // draft | published | archived\n\n //#region @websql\n @Column({ type: 'datetime', nullable: true })\n //#endregion\n publishedAt: Date | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}","export const TaonCmsApplicationHook = {\n HOME_HERO: 'home-hero',\n HOME_FEATURED_POST: 'home-featured-post',\n SHOP_PROMOTION: 'shop-promotion',\n LOGIN_INFO: 'login-info',\n FOOTER_ABOUT: 'footer-about',\n} as const;\n\nexport type TaonCmsApplicationHook =\n (typeof TaonCmsApplicationHook)[keyof typeof TaonCmsApplicationHook];\n","import { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport { TaonBaseMigration, TaonMigration, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName } from 'taon/websql-prod';\nimport { QueryRunner, Table } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\n\n//#region Migration class for context \"CmsContext\"\n@TaonMigration({\n className: 'CmsContext_1792506757808_applicaitonHooks',\n})\nexport class CmsContext_1792506757808_applicaitonHooks extends TaonBaseMigration {\n APPLICATION_HOOK_TABLE = ClassHelpers__NS__getName(TaonCmsApplicationHookEntity);\n\n CONTENT_TABLE = ClassHelpers__NS__getName(TaonCmsContentEntity);\n\n //#region up\n async up(queryRunner: QueryRunner): Promise<any> {\n await queryRunner.startTransaction();\n try {\n if (!(await queryRunner.hasTable(this.APPLICATION_HOOK_TABLE))) {\n await queryRunner.createTable(\n new Table({\n name: this.APPLICATION_HOOK_TABLE,\n columns: [\n {\n name: 'id',\n type: 'integer',\n isPrimary: true,\n isGenerated: true,\n generationStrategy: 'increment',\n },\n { name: 'hook', type: 'varchar', isUnique: true },\n {\n name: 'contentId',\n type: 'integer',\n isNullable: true,\n isUnique: true,\n },\n ],\n foreignKeys: [\n {\n columnNames: ['contentId'],\n referencedTableName: this.CONTENT_TABLE,\n referencedColumnNames: ['id'],\n onDelete: 'SET NULL',\n },\n ],\n }),\n true,\n );\n }\n\n await this.persistApplicationHooks(queryRunner);\n await queryRunner.commitTransaction();\n } catch (error) {\n console.error('Error in migration:', error);\n await queryRunner.rollbackTransaction();\n throw error;\n }\n }\n //#endregion\n\n //#region down\n async down(queryRunner: QueryRunner): Promise<any> {\n if (await queryRunner.hasTable(this.APPLICATION_HOOK_TABLE)) {\n await queryRunner.dropTable(this.APPLICATION_HOOK_TABLE, true);\n }\n }\n //#endregion\n\n protected getApplicationHooks(): Record<string, string> {\n return TaonCmsApplicationHook;\n }\n\n private async persistApplicationHooks(\n queryRunner: QueryRunner,\n ): Promise<void> {\n const repository = queryRunner.manager.getRepository(\n TaonCmsApplicationHookEntity,\n );\n for (const hook of Object.values(this.getApplicationHooks())) {\n if (!(await repository.findOneBy({ hook: hook as any }))) {\n await repository.save(\n repository.create({ hook: hook as any, contentId: null }),\n );\n }\n }\n }\n}\n//#endregion","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CmsContext_1792506757808_applicaitonHooks } from './1792506757808_applicaitonHooks';\nexport { CmsContext_1792506757808_applicaitonHooks } from './1792506757808_applicaitonHooks';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_CmsContext = {\n /* 20-10-2026 16:32:37 */ CmsContext_1792506757808_applicaitonHooks,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';\n","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.cms';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/cms';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.23';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","//#region tnp-helpers cli template\nimport { UtilsJson__NS__AttrJsoncProp, UtilsJson__NS__getAtrributiesFromJsonWithComments, UtilsJson__NS__getAttributiesFromComment, UtilsJson__NS__getValue, UtilsJson__NS__readJson, UtilsJson__NS__readJsonWithComments, UtilsJson__NS__setValue, UtilsJson__NS__validateLodashPath } from 'tnp-core/websql-prod';\nimport { BaseCommandLineFeature, Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-helpers/websql-prod';\n/* */ \n//#endregion\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n helloWorldFromGlobalArg() {\n console.log('hello world from global argument!');\n this._exit(0);\n }\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson__NS__getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","//#region imports\nimport { Column, CustomColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsCategoryDefaultsValues } from './taon-cms-category.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsCategoryEntity',\n createTable: true,\n})\nexport class TaonCmsCategoryEntity extends TaonBaseAbstractEntity<TaonCmsCategoryEntity> {\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n parentCategoryId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n name: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n description: string | null;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n sortOrder: number;\n}","import { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentFields } from './taon-cms-content.models';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n\nexport function contentError(message: string, status = 400): never {\n Taon__NS__error({ message, status });\n throw new Error(message);\n}\n\nexport function requireContentId(value: number, name = 'contentId'): void {\n if (!Number.isSafeInteger(value) || value <= 0) {\n contentError(`${name} must be a positive integer.`);\n }\n}\n\nexport function requireContentVersion(\n value: number,\n name = 'expectedVersion',\n): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n contentError(`${name} must be a non-negative integer.`);\n }\n}\n\nexport function validateContentInput(\n input: Partial<TaonCmsContentFields> & {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n },\n creating = false,\n): void {\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n contentError('Content must be an object.');\n }\n if (\n input.type !== undefined &&\n !Object.values(TaonCmsContentType).includes(input.type)\n ) {\n contentError('type must be normal, video, audio, or attachment.');\n }\n for (const field of ['title', 'slug'] as const) {\n if (creating || input[field] !== undefined) {\n if (typeof input[field] !== 'string' || !input[field].trim()) {\n contentError(`${field} must be a non-empty string.`);\n }\n }\n }\n for (const field of [\n 'body',\n 'excerpt',\n 'videoKey',\n 'audioKey',\n 'attachmentKey',\n 'thumbnailKey',\n ] as const) {\n if (\n input[field] !== undefined &&\n input[field] !== null &&\n typeof input[field] !== 'string'\n ) {\n contentError(`${field} must be a string or null.`);\n }\n }\n for (const field of ['categoryId', 'authorUserId'] as const) {\n if (input[field] !== undefined && input[field] !== null) {\n requireContentId(input[field], field);\n }\n }\n if (\n input.applyPermissionsToRelatedPosts !== undefined &&\n typeof input.applyPermissionsToRelatedPosts !== 'boolean'\n ) {\n contentError('applyPermissionsToRelatedPosts must be a boolean.');\n }\n if (\n input.status !== undefined &&\n !['draft', 'published', 'archived'].includes(input.status)\n ) {\n contentError('status must be draft, published, or archived.');\n }\n if (input.publishedAt !== undefined && input.publishedAt !== null) {\n if (\n !(\n input.publishedAt instanceof Date ||\n typeof input.publishedAt === 'string'\n ) ||\n Number.isNaN(new Date(input.publishedAt).getTime())\n ) {\n contentError('publishedAt must be a valid date or null.');\n }\n }\n for (const field of ['tagIds', 'relatedPostIds', 'permissionIds'] as const) {\n const ids = input[field];\n if (ids !== undefined) {\n if (!Array.isArray(ids)) {\n contentError(`${field} must be an array.`);\n }\n for (const id of ids) {\n requireContentId(\n id,\n field === 'tagIds'\n ? 'tagId'\n : field === 'relatedPostIds'\n ? 'relatedPostId'\n : 'permissionId',\n );\n }\n }\n }\n}","import { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nconst t = Translation.for('src/lib/taon-cms-category/taon-cms-taxonomy.validation.ts', {\"src/lib/taon-cms-category/taon-cms-category.controller.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-category.controller.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-category.controller.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-category.controller.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-category/taon-cms-category.repository.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-category.repository.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-category.repository.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-category.repository.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-category/taon-cms-taxonomy.validation.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonCmsTaxonomyFields {\n name: string;\n slug: string;\n description: string | null;\n}\n\nexport interface TaonCmsCategoryFields extends TaonCmsTaxonomyFields {\n parentCategoryId: number | null;\n sortOrder: number;\n}\n\nexport function validateTaxonomy(input: TaonCmsTaxonomyFields): void {\n if (\n !input ||\n typeof input.name !== 'string' ||\n !input.name.trim() ||\n typeof input.slug !== 'string' ||\n !input.slug.trim() ||\n (input.description !== null && typeof input.description !== 'string')\n ) {\n contentError(\n t.gettext('Name, slug, and a valid description are required.'),\n );\n }\n}\n\nexport function validateCategoryHierarchy(\n id: number | null,\n parentId: number | null,\n categories: { id: number; parentCategoryId: number | null }[],\n): void {\n const visited = new Set<number>();\n if (id !== null) {\n visited.add(id);\n }\n let current = parentId;\n while (current !== null) {\n if (visited.has(current)) {\n contentError(t.gettext('A category cannot be its own ancestor.'));\n }\n visited.add(current);\n const parent = categories.find(category => category.id === current);\n if (!parent) {\n contentError(t.gettext('The parent category does not exist.'));\n }\n current = parent.parentCategoryId;\n }\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport { requireContentId } from '../taon-cms-content/taon-cms-content.validation';\nimport {\n TaonCmsCategoryFields,\n validateCategoryHierarchy,\n validateTaxonomy,\n} from './taon-cms-taxonomy.validation';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-category/taon-cms-category.repository.ts', {\"src/lib/taon-cms-category/taon-cms-category.controller.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-category.controller.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-category.controller.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-category.controller.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-category/taon-cms-category.repository.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-category.repository.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-category.repository.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-category.repository.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-category/taon-cms-taxonomy.validation.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.de-DE.i18n.data')).default}} as any);\n\n@TaonRepository({\n className: 'TaonCmsCategoryRepository',\n})\nexport class TaonCmsCategoryRepository extends TaonBaseRepository<TaonCmsCategoryEntity> {\n entityClassResolveFn: () => typeof TaonCmsCategoryEntity = () =>\n TaonCmsCategoryEntity;\n\n async saveCategory(\n id: number | null,\n input: TaonCmsCategoryFields,\n ): Promise<TaonCmsCategoryEntity> {\n //#region @websqlFunc\n validateTaxonomy(input);\n if (!Number.isSafeInteger(input.sortOrder)) {\n contentError(t.gettext('Sort order must be an integer.'));\n }\n if (id !== null) {\n requireContentId(id);\n }\n if (input.parentCategoryId !== null) {\n requireContentId(input.parentCategoryId);\n }\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const repository = manager.getRepository(TaonCmsCategoryEntity);\n if (id !== null) {\n await this.requireCategory(id, manager);\n }\n validateCategoryHierarchy(\n id,\n input.parentCategoryId,\n await repository.find(),\n );\n const slug = input.slug.trim();\n const existing = await repository.findOneBy({ slug });\n if (existing && existing.id !== id) {\n contentError(t.gettext('This category slug is already in use.'), 409);\n }\n return repository.save(\n repository.create({\n ...(id === null ? {} : { id }),\n name: input.name.trim(),\n slug,\n description: input.description,\n sortOrder: input.sortOrder,\n parentCategoryId: input.parentCategoryId,\n }),\n );\n });\n //#endregion\n }\n\n async deleteCategory(id: number): Promise<void> {\n //#region @websqlFunc\n requireContentId(id);\n await this.connection.transaction('SERIALIZABLE', async manager => {\n await this.requireCategory(id, manager);\n const children = await manager\n .getRepository(TaonCmsCategoryEntity)\n .countBy({ parentCategoryId: id });\n const posts = await manager\n .getRepository(TaonCmsContentEntity)\n .countBy({ categoryId: id });\n if (children || posts) {\n contentError(\n t.gettext(\n 'Reassign child categories and posts before deleting this category.',\n ),\n 409,\n );\n }\n await manager.getRepository(TaonCmsCategoryEntity).delete(id);\n });\n //#endregion\n }\n\n async requireCategory(id: number, manager: EntityManager): Promise<void> {\n //#region @websqlFunc\n const category = await manager\n .getRepository<TaonCmsCategoryEntity>(this.target)\n .findOneBy({ id });\n if (!category) {\n contentError(`Category ${id} does not exist.`, 404);\n }\n //#endregion\n }\n}","//#region imports\nimport { TaonSessionRepository } from '@taon-dev/session/websql-prod';\nimport { TaonAuthContextRepository } from '@taon-dev/session/websql-prod';\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, DELETE, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryRepository } from './taon-cms-category.repository';\nimport type { TaonCmsCategoryFields } from './taon-cms-taxonomy.validation';\n//#endregion\n\n@TaonController<TaonCmsCategoryController>({\n className: 'TaonCmsCategoryController',\n allowedMethods: ['getAll', 'saveCategory', 'deleteCategory'],\n})\nexport class TaonCmsCategoryController extends TaonBaseCrudController<TaonCmsCategoryEntity> {\n entityClassResolveFn: () => typeof TaonCmsCategoryEntity = () =>\n TaonCmsCategoryEntity;\n\n taonCmsCategoryRepository = this.injectCustomRepo(TaonCmsCategoryRepository);\n\n private readonly sessions = this.injectCustomRepo(TaonSessionRepository);\n\n private readonly auth = this.injectCustomRepo(TaonAuthContextRepository);\n\n protected async beforeEachRequest({\n req,\n res,\n t,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCategoryController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n @POST()\n saveCategory(\n @Query('id') id: number | null,\n @Body() input: TaonCmsCategoryFields,\n ): Taon__NS__Response<TaonCmsCategoryEntity> {\n //#region @websqlFunc\n return () => this.taonCmsCategoryRepository.saveCategory(id ?? null, input);\n //#endregion\n }\n\n @DELETE()\n deleteCategory(@Query('id') id: number): Taon__NS__Response<void> {\n //#region @websqlFunc\n return () => this.taonCmsCategoryRepository.deleteCategory(id);\n //#endregion\n }\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsCategoryProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsCategoryProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsCategoryMiddleware',\n})\nexport class TaonCmsCategoryMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryProvider } from './taon-cms-category.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsCategorySubscriber>({\n className: 'TaonCmsCategorySubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsCategorySubscriber extends TaonBaseSubscriberForEntity {\n taonCmsCategoryProvider = this.injectProvider(TaonCmsCategoryProvider);\n listenTo(): typeof TaonCmsCategoryEntity {\n return TaonCmsCategoryEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryController } from './taon-cms-category.controller';\nimport { TaonCmsCategoryRepository } from './taon-cms-category.repository';\nimport { TaonCmsCategoryProvider } from './taon-cms-category.provider';\nimport { TaonCmsCategoryMiddleware } from './taon-cms-category.middleware';\nimport { TaonCmsCategorySubscriber } from './taon-cms-category.subscriber';\n//#endregion\n\nexport const TaonCmsCategoryAbstractContext = createContext(() => ({\n contextName: 'TaonCmsCategoryAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsCategoryEntity },\n controllers: { TaonCmsCategoryController },\n repositories: { TaonCmsCategoryRepository },\n providers: { TaonCmsCategoryProvider },\n middlewares: { TaonCmsCategoryMiddleware },\n subscribers: { TaonCmsCategorySubscriber },\n}));\n","//#region imports\nimport { Column, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsCommentDefaultsValues } from './taon-cms-comment.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsCommentEntity',\n createTable: true,\n})\nexport class TaonCmsCommentEntity extends TaonBaseEntity<TaonCmsCommentEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n parentCommentId: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n userId: number | null;\n\n //#region @websql\n @Column({ type: 'text' })\n //#endregion\n body: string;\n\n //#region @websql\n @Column({ type: 'varchar', default: 'published' })\n //#endregion\n status: string;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsCommentRepository',\n})\nexport class TaonCmsCommentRepository extends TaonBaseRepository<TaonCmsCommentEntity> {\n entityClassResolveFn: () => typeof TaonCmsCommentEntity = () => TaonCmsCommentEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentRepository } from './taon-cms-comment.repository';\n//#endregion\n\n@TaonController<TaonCmsCommentController>({\n className: 'TaonCmsCommentController',\n allowedMethods: []\n})\nexport class TaonCmsCommentController extends TaonBaseCrudController<TaonCmsCommentEntity> {\n entityClassResolveFn: () => typeof TaonCmsCommentEntity = () => TaonCmsCommentEntity;\n\n taonCmsCommentRepository = this.injectCustomRepo(TaonCmsCommentRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsCommentRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonCmsCommentController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsCommentProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsCommentProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsCommentMiddleware',\n})\nexport class TaonCmsCommentMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentProvider } from './taon-cms-comment.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsCommentSubscriber>({\n className: 'TaonCmsCommentSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsCommentSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsCommentProvider = this.injectProvider(TaonCmsCommentProvider);\n listenTo(): typeof TaonCmsCommentEntity {\n return TaonCmsCommentEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentController } from './taon-cms-comment.controller';\nimport { TaonCmsCommentRepository } from './taon-cms-comment.repository';\nimport { TaonCmsCommentProvider } from './taon-cms-comment.provider';\nimport { TaonCmsCommentMiddleware } from './taon-cms-comment.middleware';\nimport { TaonCmsCommentSubscriber } from './taon-cms-comment.subscriber';\n//#endregion\n\nexport const TaonCmsCommentAbstractContext = createContext(() => ({\n contextName: 'TaonCmsCommentAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsCommentEntity },\n controllers: { TaonCmsCommentController },\n repositories: { TaonCmsCommentRepository },\n providers: { TaonCmsCommentProvider },\n middlewares: { TaonCmsCommentMiddleware },\n subscribers: { TaonCmsCommentSubscriber },\n}));\n","//#region imports\nimport { Column, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport type { TaonCmsContentSnapshot } from '../taon-cms-content/taon-cms-content.models';\n\nimport { TaonCmsContentRevisionDefaultsValues } from './taon-cms-content-revision.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentRevisionEntity',\n createTable: true,\n})\nexport class TaonCmsContentRevisionEntity extends TaonBaseEntity<TaonCmsContentRevisionEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n revisionNumber: number;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n title: string;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n body: string | null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n snapshot: TaonCmsContentSnapshot | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n createdByUserId: number | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\n\nimport type { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsContentSnapshot } from '../taon-cms-content/taon-cms-content.models';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentRevisionRepository',\n})\nexport class TaonCmsContentRevisionRepository extends TaonBaseRepository<TaonCmsContentRevisionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentRevisionEntity = () =>\n TaonCmsContentRevisionEntity;\n\n async listForContent(\n contentId: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n return manager\n .getRepository<TaonCmsContentRevisionEntity>(this.target)\n .find({\n where: { contentId },\n order: { revisionNumber: 'DESC' },\n });\n //#endregion\n }\n\n async requireRevision(\n contentId: number,\n revisionNumber: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity> {\n //#region @websqlFunc\n const revision = await manager\n .getRepository<TaonCmsContentRevisionEntity>(this.target)\n .findOneBy({ contentId, revisionNumber });\n if (!revision) {\n contentError(\n `Revision ${revisionNumber} of content ${contentId} does not exist.`,\n 404,\n );\n }\n return revision;\n //#endregion\n }\n\n async recordContent(\n content: TaonCmsContentEntity,\n snapshot: TaonCmsContentSnapshot,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentRevisionEntity>(\n this.target,\n );\n return repository.save(\n repository.create({\n contentId: content.id,\n revisionNumber: content.version,\n version: 1,\n title: content.title,\n body: content.body,\n snapshot,\n createdByUserId: content.authorUserId,\n createdAt: new Date(),\n }),\n );\n //#endregion\n }\n}\n","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionRepository } from './taon-cms-content-revision.repository';\n//#endregion\n\n@TaonController<TaonCmsContentRevisionController>({\n className: 'TaonCmsContentRevisionController',\n allowedMethods: [],\n})\nexport class TaonCmsContentRevisionController extends TaonBaseCrudController<TaonCmsContentRevisionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentRevisionEntity = () =>\n TaonCmsContentRevisionEntity;\n\n taonCmsContentRevisionRepository = this.injectCustomRepo(\n TaonCmsContentRevisionRepository,\n );\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentRevisionProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentRevisionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentRevisionMiddleware',\n})\nexport class TaonCmsContentRevisionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionProvider } from './taon-cms-content-revision.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentRevisionSubscriber>({\n className: 'TaonCmsContentRevisionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentRevisionSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentRevisionProvider = this.injectProvider(TaonCmsContentRevisionProvider);\n listenTo(): typeof TaonCmsContentRevisionEntity {\n return TaonCmsContentRevisionEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionController } from './taon-cms-content-revision.controller';\nimport { TaonCmsContentRevisionRepository } from './taon-cms-content-revision.repository';\nimport { TaonCmsContentRevisionProvider } from './taon-cms-content-revision.provider';\nimport { TaonCmsContentRevisionMiddleware } from './taon-cms-content-revision.middleware';\nimport { TaonCmsContentRevisionSubscriber } from './taon-cms-content-revision.subscriber';\n//#endregion\n\nexport const TaonCmsContentRevisionAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentRevisionAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentRevisionEntity },\n controllers: { TaonCmsContentRevisionController },\n repositories: { TaonCmsContentRevisionRepository },\n providers: { TaonCmsContentRevisionProvider },\n middlewares: { TaonCmsContentRevisionMiddleware },\n subscribers: { TaonCmsContentRevisionSubscriber },\n}));\n","//#region imports\nimport { Column, CustomColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentTagDefaultsValues } from './taon-cms-content-tag.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentTagEntity',\n createTable: true,\n})\nexport class TaonCmsContentTagEntity extends TaonBaseAbstractEntity<TaonCmsContentTagEntity> {\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n tagId: number;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentTagRepository',\n})\nexport class TaonCmsContentTagRepository extends TaonBaseRepository<TaonCmsContentTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentTagEntity = () =>\n TaonCmsContentTagEntity;\n\n async findTagIds(\n contentId: number,\n manager: EntityManager,\n ): Promise<number[]> {\n //#region @websqlFunc\n const links = await manager\n .getRepository<TaonCmsContentTagEntity>(this.target)\n .find({ where: { contentId }, order: { tagId: 'ASC' } });\n return links.map(link => link.tagId);\n //#endregion\n }\n\n async replaceTags(\n contentId: number,\n tagIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentTagEntity>(\n this.target,\n );\n await repository.delete({ contentId });\n const links = [...new Set(tagIds)].map(tagId =>\n repository.create({ contentId, tagId }),\n );\n if (links.length) {\n await repository.save(links);\n }\n //#endregion\n }\n}\n","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagRepository } from './taon-cms-content-tag.repository';\n//#endregion\n\n@TaonController<TaonCmsContentTagController>({\n className: 'TaonCmsContentTagController',\n allowedMethods: [],\n})\nexport class TaonCmsContentTagController extends TaonBaseCrudController<TaonCmsContentTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentTagEntity = () =>\n TaonCmsContentTagEntity;\n\n taonCmsContentTagRepository = this.injectCustomRepo(\n TaonCmsContentTagRepository,\n );\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentTagProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentTagProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentTagMiddleware',\n})\nexport class TaonCmsContentTagMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagProvider } from './taon-cms-content-tag.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentTagSubscriber>({\n className: 'TaonCmsContentTagSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentTagSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentTagProvider = this.injectProvider(TaonCmsContentTagProvider);\n listenTo(): typeof TaonCmsContentTagEntity {\n return TaonCmsContentTagEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagController } from './taon-cms-content-tag.controller';\nimport { TaonCmsContentTagRepository } from './taon-cms-content-tag.repository';\nimport { TaonCmsContentTagProvider } from './taon-cms-content-tag.provider';\nimport { TaonCmsContentTagMiddleware } from './taon-cms-content-tag.middleware';\nimport { TaonCmsContentTagSubscriber } from './taon-cms-content-tag.subscriber';\n//#endregion\n\nexport const TaonCmsContentTagAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentTagAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentTagEntity },\n controllers: { TaonCmsContentTagController },\n repositories: { TaonCmsContentTagRepository },\n providers: { TaonCmsContentTagProvider },\n middlewares: { TaonCmsContentTagMiddleware },\n subscribers: { TaonCmsContentTagSubscriber },\n}));\n","//#region imports\nimport { Column, CustomColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsTagDefaultsValues } from './taon-cms-tag.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsTagEntity',\n createTable: true,\n})\nexport class TaonCmsTagEntity extends TaonBaseAbstractEntity<TaonCmsTagEntity> {\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n name: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n description: string | null;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\nimport { requireContentId } from '../taon-cms-content/taon-cms-content.validation';\nimport { TaonCmsContentTagEntity } from '../taon-cms-content-tag/taon-cms-content-tag.entity';\nimport {\n TaonCmsTaxonomyFields,\n validateTaxonomy,\n} from '../taon-cms-category/taon-cms-taxonomy.validation';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-tag/taon-cms-tag.repository.ts', {\"src/lib/taon-cms-tag/taon-cms-tag.controller.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-tag.controller.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-tag.controller.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-tag.controller.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-tag/taon-cms-tag.repository.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-tag.repository.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-tag.repository.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-tag.repository.ts.de-DE.i18n.data')).default}} as any);\n\n@TaonRepository({\n className: 'TaonCmsTagRepository',\n})\nexport class TaonCmsTagRepository extends TaonBaseRepository<TaonCmsTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsTagEntity = () => TaonCmsTagEntity;\n\n async saveTag(\n id: number | null,\n input: TaonCmsTaxonomyFields,\n ): Promise<TaonCmsTagEntity> {\n //#region @websqlFunc\n validateTaxonomy(input);\n if (id !== null) {\n requireContentId(id);\n }\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const repository = manager.getRepository(TaonCmsTagEntity);\n if (id !== null) {\n await this.requireTags([id], manager);\n }\n const name = input.name.trim();\n const slug = input.slug.trim();\n const existing = await repository.find({ where: [{ name }, { slug }] });\n if (existing.some(tag => tag.id !== id)) {\n contentError(\n t.gettext('This tag name or slug is already in use.'),\n 409,\n );\n }\n return repository.save(\n repository.create({\n ...(id === null ? {} : { id }),\n name,\n slug,\n description: input.description,\n }),\n );\n });\n //#endregion\n }\n\n async deleteTag(id: number): Promise<void> {\n //#region @websqlFunc\n requireContentId(id);\n await this.connection.transaction('SERIALIZABLE', async manager => {\n await this.requireTags([id], manager);\n if (\n await manager\n .getRepository(TaonCmsContentTagEntity)\n .countBy({ tagId: id })\n ) {\n contentError(\n t.gettext('Remove this tag from posts before deleting it.'),\n 409,\n );\n }\n await manager.getRepository(TaonCmsTagEntity).delete(id);\n });\n //#endregion\n }\n\n async requireTags(ids: number[], manager: EntityManager): Promise<void> {\n //#region @websqlFunc\n for (const id of new Set(ids)) {\n const tag = await manager\n .getRepository<TaonCmsTagEntity>(this.target)\n .findOneBy({ id });\n if (!tag) {\n contentError(`Tag ${id} does not exist.`, 404);\n }\n }\n //#endregion\n }\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonSessionRepository } from '@taon-dev/session/websql-prod';\nimport { TaonAuthContextRepository } from '@taon-dev/session/websql-prod';\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, DELETE, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport type { TaonCmsTaxonomyFields } from '../taon-cms-category/taon-cms-taxonomy.validation';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagRepository } from './taon-cms-tag.repository';\n//#endregion\n\n@TaonController<TaonCmsTagController>({\n className: 'TaonCmsTagController',\n allowedMethods: ['getAll', 'saveTag', 'deleteTag'],\n})\nexport class TaonCmsTagController extends TaonBaseCrudController<TaonCmsTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsTagEntity = () => TaonCmsTagEntity;\n\n taonCmsTagRepository = this.injectCustomRepo(TaonCmsTagRepository);\n\n private readonly sessions = this.injectCustomRepo(TaonSessionRepository);\n\n private readonly auth = this.injectCustomRepo(TaonAuthContextRepository);\n\n protected async beforeEachRequest({\n req,\n res,\n t,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsTagController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n @POST()\n saveTag(\n @Query('id') id: number | null,\n @Body() input: TaonCmsTaxonomyFields,\n ): Taon__NS__Response<TaonCmsTagEntity> {\n //#region @websqlFunc\n return () => this.taonCmsTagRepository.saveTag(id ?? null, input);\n //#endregion\n }\n\n @DELETE()\n deleteTag(@Query('id') id: number): Taon__NS__Response<void> {\n //#region @websqlFunc\n return () => this.taonCmsTagRepository.deleteTag(id);\n //#endregion\n }\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsTagRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonCmsTagController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsTagProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsTagProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsTagMiddleware',\n})\nexport class TaonCmsTagMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagProvider } from './taon-cms-tag.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsTagSubscriber>({\n className: 'TaonCmsTagSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsTagSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsTagProvider = this.injectProvider(TaonCmsTagProvider);\n listenTo(): typeof TaonCmsTagEntity {\n return TaonCmsTagEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagController } from './taon-cms-tag.controller';\nimport { TaonCmsTagRepository } from './taon-cms-tag.repository';\nimport { TaonCmsTagProvider } from './taon-cms-tag.provider';\nimport { TaonCmsTagMiddleware } from './taon-cms-tag.middleware';\nimport { TaonCmsTagSubscriber } from './taon-cms-tag.subscriber';\n//#endregion\n\nexport const TaonCmsTagAbstractContext = createContext(() => ({\n contextName: 'TaonCmsTagAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsTagEntity },\n controllers: { TaonCmsTagController },\n repositories: { TaonCmsTagRepository },\n providers: { TaonCmsTagProvider },\n middlewares: { TaonCmsTagMiddleware },\n subscribers: { TaonCmsTagSubscriber },\n}));\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { In, Raw } from 'taon-typeorm/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\nimport { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\n\nimport { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport type { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\nimport { TaonCmsCategoryRepository } from '../taon-cms-category/taon-cms-category.repository';\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionRepository } from '../taon-cms-content-revision/taon-cms-content-revision.repository';\nimport { TaonCmsContentTagRepository } from '../taon-cms-content-tag/taon-cms-content-tag.repository';\nimport { TaonCmsTagRepository } from '../taon-cms-tag/taon-cms-tag.repository';\n\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentType } from './taon-cms-content.models';\nimport type {\n TaonCmsContentFields,\n TaonCmsContentSnapshot,\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n TaonCmsPermissionConfiguration,\n} from './taon-cms-content.models';\nimport {\n contentError,\n requireContentId,\n requireContentVersion,\n validateContentInput,\n} from './taon-cms-content.validation';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentRepository',\n})\nexport class TaonCmsContentRepository extends TaonBaseRepository<TaonCmsContentEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentEntity = () =>\n TaonCmsContentEntity;\n\n private readonly taonCmsContentRevisionRepository = this.injectCustomRepo(\n TaonCmsContentRevisionRepository,\n );\n\n private readonly taonCmsContentTagRepository = this.injectCustomRepo(\n TaonCmsContentTagRepository,\n );\n\n private readonly taonCmsCategoryRepository = this.injectCustomRepo(\n TaonCmsCategoryRepository,\n );\n\n private readonly tags = this.injectCustomRepo(TaonCmsTagRepository);\n\n async listTagIds(id: number): Promise<number[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n await this.requireContent(id, manager);\n return this.taonCmsContentTagRepository.findTagIds(id, manager);\n });\n //#endregion\n }\n\n async createContent(\n input: TaonCmsCreateContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n validateContentInput(input, true);\n return this.connection.transaction('SERIALIZABLE', manager =>\n this.createContentWithManager(input, manager),\n );\n //#endregion\n }\n\n async duplicateContent(id: number): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const source = await this.requireContent(id, manager);\n const snapshot = await this.snapshotOf(source, manager);\n const configuration = await this.resolvePermissionConfiguration(\n source,\n manager,\n );\n const titleSuffix = source.title.match(/\\s+COPY(\\d+)$/i);\n const slugSuffix = source.slug.match(/-copy(\\d+)$/i);\n const baseTitle = source.title.replace(/(?:\\s+COPY\\d+)+$/i, '');\n const baseSlug = source.slug.replace(/(?:-copy\\d+)+$/i, '');\n let number =\n Math.max(Number(titleSuffix?.[1] ?? 0), Number(slugSuffix?.[1] ?? 0)) +\n 1;\n const repository = manager.getRepository<TaonCmsContentEntity>(\n this.target,\n );\n while (Number.isSafeInteger(number)) {\n const title = `${baseTitle} COPY${number}`;\n const slug = `${baseSlug}-copy${number}`;\n const existing = await repository.findOne({\n where: [{ title }, { slug }],\n });\n if (!existing) {\n return this.createContentWithManager(\n {\n ...snapshot,\n title,\n slug,\n relatedPostIds: [],\n applicationHook: null,\n // Inherited permissions become independent without related links.\n permissionIds: configuration.permissions.map(\n permission => permission.id,\n ),\n },\n manager,\n );\n }\n number += 1;\n }\n contentError('No available copy number could be generated.', 409);\n });\n //#endregion\n }\n\n private async createContentWithManager(\n input: TaonCmsCreateContent,\n manager: EntityManager,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n const fields = this.contentFields(input);\n const tagIds = [...new Set(input.tagIds ?? [])];\n const relatedPostIds = [...new Set(input.relatedPostIds ?? [])];\n const permissionIds = [...new Set(input.permissionIds ?? [])];\n await this.validateReferences(fields, tagIds, permissionIds, manager);\n await this.requireAvailableSlug(fields.slug, manager);\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n const now = new Date();\n const content = await repository.save(\n repository.create({\n ...fields,\n version: 1,\n createdAt: now,\n updatedAt: now,\n }),\n );\n await this.taonCmsContentTagRepository.replaceTags(\n content.id,\n tagIds,\n manager,\n );\n await this.replaceRelatedPosts(content.id, relatedPostIds, [], manager);\n await this.validatePermissionInheritance(manager);\n await this.replacePermissions(content.id, permissionIds, [], manager);\n await this.replaceApplicationHook(\n content.id,\n input.applicationHook ?? null,\n manager,\n );\n await this.taonCmsContentRevisionRepository.recordContent(\n content,\n { ...fields, tagIds, relatedPostIds, permissionIds },\n manager,\n );\n return this.requireContent(content.id, manager);\n //#endregion\n }\n\n async updateContent(\n id: number,\n input: TaonCmsUpdateContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n validateContentInput(input);\n requireContentVersion(input.expectedVersion);\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const current = await this.requireContent(id, manager);\n const snapshot = await this.snapshotOf(current, manager);\n const fields = this.contentFields(input, snapshot);\n const tagIds =\n input.tagIds === undefined\n ? snapshot.tagIds\n : [...new Set(input.tagIds)];\n const relatedPostIds =\n input.relatedPostIds === undefined\n ? snapshot.relatedPostIds\n : [...new Set(input.relatedPostIds)];\n const permissionIds =\n input.permissionIds === undefined\n ? snapshot.permissionIds\n : [...new Set(input.permissionIds)];\n return this.commitUpdate(\n current,\n input.expectedVersion,\n { ...fields, tagIds, relatedPostIds, permissionIds },\n manager,\n input.applicationHook,\n );\n });\n //#endregion\n }\n\n async archiveContent(\n id: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.updateContent(id, { status: 'archived', expectedVersion });\n //#endregion\n }\n\n async restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n if (!input || typeof input !== 'object') {\n contentError('Restore input must be an object.');\n }\n requireContentVersion(input.revisionNumber, 'revisionNumber');\n requireContentVersion(input.expectedVersion);\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const current = await this.requireContent(id, manager);\n const revision =\n await this.taonCmsContentRevisionRepository.requireRevision(\n id,\n input.revisionNumber,\n manager,\n );\n if (!revision.snapshot) {\n contentError(\n 'This legacy revision has no complete snapshot and cannot be restored.',\n 409,\n );\n }\n const storedSnapshot = revision.snapshot;\n const snapshotFields: (keyof TaonCmsContentSnapshot)[] = [\n 'type',\n 'title',\n 'slug',\n 'body',\n 'excerpt',\n 'categoryId',\n 'authorUserId',\n 'status',\n 'publishedAt',\n 'tagIds',\n ];\n if (snapshotFields.some(field => storedSnapshot[field] === undefined)) {\n contentError(\n 'This revision has an incomplete snapshot and cannot be restored.',\n 409,\n );\n }\n validateContentInput(revision.snapshot, true);\n const snapshot = {\n // Older complete snapshots predate primary media; preserve those keys.\n ...this.contentFields(\n revision.snapshot,\n await this.snapshotOf(current, manager),\n ),\n tagIds: revision.snapshot.tagIds,\n relatedPostIds: revision.snapshot.relatedPostIds ?? [],\n permissionIds: revision.snapshot.permissionIds ?? [],\n };\n return this.commitUpdate(\n current,\n input.expectedVersion,\n snapshot,\n manager,\n );\n });\n //#endregion\n }\n\n async listRevisions(id: number): Promise<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n await this.requireContent(id, manager);\n return this.taonCmsContentRevisionRepository.listForContent(id, manager);\n });\n //#endregion\n }\n\n async listCourses(): Promise<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n return this.connection\n .getRepository<TaonCmsContentEntity>(this.target)\n .createQueryBuilder('content')\n .innerJoin('content.relatedPosts', 'relatedPost')\n .where('content.status != :archived', { archived: 'archived' })\n .andWhere('content.thumbnailKey IS NOT NULL')\n .andWhere('content.thumbnailKey != :empty', { empty: '' })\n .distinct(true)\n .orderBy('content.id', 'ASC')\n .getMany();\n //#endregion\n }\n\n async listRelatedPosts(id: number): Promise<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(\n async manager => (await this.requireContent(id, manager)).relatedPosts,\n );\n //#endregion\n }\n\n async listPermissions(id: number): Promise<TaonPermissionEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return (await this.getPermissionConfiguration(id)).permissions;\n //#endregion\n }\n\n async getPermissionConfiguration(\n id: number,\n skipTransaction = false,\n ): Promise<TaonCmsPermissionConfiguration> {\n //#region @websqlFunc\n requireContentId(id);\n if (skipTransaction) {\n const manager = this.connection.manager;\n const post = await this.requireContent(id, manager);\n return await this.resolvePermissionConfiguration(post, manager);\n }\n return this.connection.transaction(async manager => {\n const post = await this.requireContent(id, manager);\n return await this.resolvePermissionConfiguration(post, manager);\n });\n //#endregion\n }\n\n private async resolvePermissionConfiguration(\n post: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<TaonCmsPermissionConfiguration> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n let source = post;\n const visited = new Set<number>();\n while (true) {\n if (visited.has(source.id)) {\n contentError('Permission inheritance contains a cycle.', 409);\n }\n visited.add(source.id);\n const parents = await repository.find({\n where: {\n applyPermissionsToRelatedPosts: true,\n relatedPosts: { id: source.id },\n },\n relations: { permissions: true },\n });\n if (parents.length > 1) {\n contentError(\n 'A post cannot inherit permissions from multiple sources.',\n 409,\n );\n }\n if (!parents.length) {\n return {\n permissions: source.permissions,\n source:\n source.id === post.id\n ? null\n : { id: source.id, title: source.title },\n };\n }\n source = parents[0];\n }\n //#endregion\n }\n\n private async validatePermissionInheritance(\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const parents = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .find({\n where: { applyPermissionsToRelatedPosts: true },\n relations: { relatedPosts: true },\n });\n const sources = new Map<number, number>();\n for (const parent of parents) {\n for (const child of parent.relatedPosts) {\n if (sources.has(child.id)) {\n contentError(\n `Content ${child.id} would inherit permissions from multiple sources.`,\n 409,\n );\n }\n sources.set(child.id, parent.id);\n }\n }\n for (const id of sources.keys()) {\n const visited = new Set<number>();\n let current: number | undefined = id;\n while (current !== undefined) {\n if (visited.has(current)) {\n contentError('Permission inheritance cannot contain cycles.', 409);\n }\n visited.add(current);\n current = sources.get(current);\n }\n }\n //#endregion\n }\n\n private async requireOwnPermissionEdit(\n id: number,\n permissionIds: number[],\n current: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const configuration = await this.resolvePermissionConfiguration(\n current,\n manager,\n );\n const ownIds = new Set(\n current.permissions.map(permission => permission.id),\n );\n if (\n configuration.source &&\n (ownIds.size !== new Set(permissionIds).size ||\n permissionIds.some(permissionId => !ownIds.has(permissionId)))\n ) {\n contentError(\n `Content ${id} inherits permissions; edit the source post instead.`,\n 409,\n );\n }\n //#endregion\n }\n\n async listApplicationHooks(): Promise<TaonCmsApplicationHookEntity[]> {\n //#region @websqlFunc\n return this.connection\n .getRepository(TaonCmsApplicationHookEntity)\n .find({ order: { hook: 'ASC' } });\n //#endregion\n }\n\n async getContentByHook(hook: string): Promise<string> {\n //#region @websqlFunc\n return (await this.getContentForHook(hook))?.body ?? '';\n //#endregion\n }\n\n async getContentForHook(hook: string): Promise<TaonCmsContentEntity | null> {\n //#region @websqlFunc\n if (!hook) {\n contentError('Application hook is required.');\n }\n const applicationHook = await this.connection\n .getRepository(TaonCmsApplicationHookEntity)\n .findOne({\n where: { hook: hook as TaonCmsApplicationHook },\n relations: { content: { permissions: true } },\n });\n return applicationHook?.content ?? null;\n //#endregion\n }\n\n //#region methods / media access\n async getContentBySlugForMedia(\n slug: string,\n ): Promise<TaonCmsContentEntity | null> {\n //#region @websqlFunc\n if (!slug) {\n contentError('Content slug is required.');\n }\n return this.connection\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOne({\n where: { slug },\n relations: { permissions: true },\n });\n //#endregion\n }\n\n async isPublicMediaKey(key: string): Promise<boolean> {\n //#region @websqlFunc\n const contents = await this.connection\n .getRepository<TaonCmsContentEntity>(this.target)\n .find({\n where: [\n { videoKey: key },\n { audioKey: key },\n { attachmentKey: key },\n { thumbnailKey: key },\n ],\n relations: { permissions: true },\n });\n if (!contents.length) {\n return false;\n }\n for (const content of contents) {\n if (\n content.status !== 'published' ||\n (await this.getPermissionConfiguration(content.id)).permissions.length >\n 0\n ) {\n return false;\n }\n }\n return true;\n //#endregion\n }\n //#endregion\n\n async addRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.changeRelatedPost(id, relatedPostId, expectedVersion, true);\n //#endregion\n }\n\n async deleteRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.changeRelatedPost(id, relatedPostId, expectedVersion, false);\n //#endregion\n }\n\n private async changeRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n adding: boolean,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n requireContentId(relatedPostId, 'relatedPostId');\n requireContentVersion(expectedVersion);\n if (id === relatedPostId) {\n contentError('A post cannot relate to itself.');\n }\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const current = await this.requireContent(id, manager);\n await this.requireContent(relatedPostId, manager);\n const snapshot = await this.snapshotOf(current, manager);\n const ids = snapshot.relatedPostIds ?? [];\n snapshot.relatedPostIds = adding\n ? [...new Set([...ids, relatedPostId])]\n : ids.filter(postId => postId !== relatedPostId);\n return this.commitUpdate(current, expectedVersion, snapshot, manager);\n });\n //#endregion\n }\n\n private async requireContent(\n id: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n const content = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOne({\n where: { id },\n relations: {\n relatedPosts: true,\n permissions: true,\n applicationHook: true,\n },\n });\n if (!content) {\n contentError(`Content ${id} does not exist.`, 404);\n }\n return content;\n //#endregion\n }\n\n private contentFields(\n input: Partial<TaonCmsContentFields>,\n current?: TaonCmsContentFields,\n ): TaonCmsContentFields {\n const type = input.type ?? current?.type ?? TaonCmsContentType.Normal;\n const title = input.title ?? current?.title;\n const slug = input.slug ?? current?.slug;\n if (title === undefined || slug === undefined) {\n contentError('title and slug are required.');\n }\n const publishedAt =\n input.publishedAt === undefined\n ? (current?.publishedAt ?? null)\n : input.publishedAt;\n return {\n type,\n title,\n slug,\n body: input.body === undefined ? (current?.body ?? null) : input.body,\n videoKey:\n input.videoKey === undefined\n ? (current?.videoKey ?? null)\n : input.videoKey,\n audioKey:\n input.audioKey === undefined\n ? (current?.audioKey ?? null)\n : input.audioKey,\n attachmentKey:\n input.attachmentKey === undefined\n ? (current?.attachmentKey ?? null)\n : input.attachmentKey,\n thumbnailKey:\n input.thumbnailKey === undefined\n ? (current?.thumbnailKey ?? null)\n : input.thumbnailKey,\n excerpt:\n input.excerpt === undefined\n ? (current?.excerpt ?? null)\n : input.excerpt,\n categoryId:\n input.categoryId === undefined\n ? (current?.categoryId ?? null)\n : input.categoryId,\n authorUserId:\n input.authorUserId === undefined\n ? (current?.authorUserId ?? null)\n : input.authorUserId,\n status: input.status ?? current?.status ?? 'draft',\n publishedAt: publishedAt === null ? null : new Date(publishedAt),\n applyPermissionsToRelatedPosts:\n input.applyPermissionsToRelatedPosts ??\n current?.applyPermissionsToRelatedPosts ??\n false,\n };\n }\n\n private async snapshotOf(\n content: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<TaonCmsContentSnapshot> {\n //#region @websqlFunc\n return {\n ...this.contentFields({\n ...content,\n status: this.contentStatus(content.status),\n }),\n tagIds: await this.taonCmsContentTagRepository.findTagIds(\n content.id,\n manager,\n ),\n relatedPostIds: content.relatedPosts.map(post => post.id),\n permissionIds: content.permissions.map(permission => permission.id),\n };\n //#endregion\n }\n\n private contentStatus(status: string): TaonCmsContentFields['status'] {\n if (status !== 'draft' && status !== 'published' && status !== 'archived') {\n contentError(`Unsupported stored content status: ${status}.`, 409);\n }\n return status;\n }\n\n private async validateReferences(\n fields: TaonCmsContentFields,\n tagIds: number[],\n permissionIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (fields.categoryId !== null) {\n await this.taonCmsCategoryRepository.requireCategory(\n fields.categoryId,\n manager,\n );\n }\n await this.tags.requireTags(tagIds, manager);\n await this.requirePermissions(permissionIds, manager);\n //#endregion\n }\n\n private async requirePermissions(\n permissionIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (!permissionIds.length) {\n return;\n }\n const permissions = await manager\n .getRepository<TaonPermissionEntity>(TaonPermissionEntity)\n .findBy({ id: In(permissionIds) });\n const foundIds = new Set(permissions.map(permission => permission.id));\n const missingId = permissionIds.find(id => !foundIds.has(id));\n if (missingId !== undefined) {\n contentError(`Permission ${missingId} does not exist.`, 404);\n }\n //#endregion\n }\n\n private async requireAvailableSlug(\n slug: string,\n manager: EntityManager,\n contentId?: number,\n ): Promise<void> {\n //#region @websqlFunc\n const existing = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOneBy({ slug });\n if (existing && existing.id !== contentId) {\n contentError(`Slug \"${slug}\" is already in use.`, 409);\n }\n //#endregion\n }\n\n private async replaceRelatedPosts(\n id: number,\n relatedPostIds: number[],\n previousIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (relatedPostIds.includes(id)) {\n contentError('A post cannot relate to itself.');\n }\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n if (relatedPostIds.length) {\n const posts = await repository.findBy({ id: In(relatedPostIds) });\n const foundIds = new Set(posts.map(post => post.id));\n const missingId = relatedPostIds.find(postId => !foundIds.has(postId));\n if (missingId !== undefined) {\n contentError(`Content ${missingId} does not exist.`, 404);\n }\n }\n const added = relatedPostIds.filter(\n postId => !previousIds.includes(postId),\n );\n const removed = previousIds.filter(\n postId => !relatedPostIds.includes(postId),\n );\n if (added.length || removed.length) {\n await repository\n .createQueryBuilder()\n .relation('relatedPosts')\n .of(id)\n .addAndRemove(added, removed);\n }\n //#endregion\n }\n\n private async replacePermissions(\n id: number,\n permissionIds: number[],\n previousIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const added = permissionIds.filter(\n permissionId => !previousIds.includes(permissionId),\n );\n const removed = previousIds.filter(\n permissionId => !permissionIds.includes(permissionId),\n );\n if (added.length || removed.length) {\n await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .createQueryBuilder()\n .relation('permissions')\n .of(id)\n .addAndRemove(added, removed);\n }\n //#endregion\n }\n\n private async replaceApplicationHook(\n contentId: number,\n hook: TaonCmsApplicationHook | null,\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const repository = manager.getRepository(TaonCmsApplicationHookEntity);\n const current = await repository.findOneBy({ contentId });\n if (hook === null) {\n if (current) {\n current.contentId = null;\n await repository.save(current);\n }\n return;\n }\n const target = await repository.findOneBy({ hook });\n if (!target) {\n contentError(`Application hook \"${hook}\" is not configured.`, 404);\n }\n if (target.contentId !== null && target.contentId !== contentId) {\n contentError(`Application hook \"${hook}\" is already in use.`, 409);\n }\n if (current?.id === target.id) {\n return;\n }\n if (current) {\n current.contentId = null;\n await repository.save(current);\n }\n target.contentId = contentId;\n await repository.save(target);\n //#endregion\n }\n\n private async commitUpdate(\n current: TaonCmsContentEntity,\n expectedVersion: number,\n snapshot: TaonCmsContentSnapshot,\n manager: EntityManager,\n applicationHook?: TaonCmsApplicationHook | null,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n if (current.version !== expectedVersion) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n await this.requireOwnPermissionEdit(\n current.id,\n snapshot.permissionIds,\n current,\n manager,\n );\n await this.validateReferences(\n snapshot,\n snapshot.tagIds,\n snapshot.permissionIds,\n manager,\n );\n await this.requireAvailableSlug(snapshot.slug, manager, current.id);\n // Preserve the first pre-API version before replacing it.\n const history = await this.taonCmsContentRevisionRepository.listForContent(\n current.id,\n manager,\n );\n if (\n !history.some(revision => revision.revisionNumber === current.version)\n ) {\n await this.taonCmsContentRevisionRepository.recordContent(\n current,\n await this.snapshotOf(current, manager),\n manager,\n );\n }\n const fields = this.contentFields(snapshot);\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n const result = await repository.update(\n { id: current.id, version: expectedVersion },\n { ...fields, version: expectedVersion + 1, updatedAt: new Date() },\n );\n if (result.affected !== 1) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n await this.taonCmsContentTagRepository.replaceTags(\n current.id,\n snapshot.tagIds,\n manager,\n );\n await this.replaceRelatedPosts(\n current.id,\n [...new Set(snapshot.relatedPostIds ?? [])],\n current.relatedPosts.map(post => post.id),\n manager,\n );\n await this.validatePermissionInheritance(manager);\n await this.replacePermissions(\n current.id,\n [...new Set(snapshot.permissionIds ?? [])],\n current.permissions.map(permission => permission.id),\n manager,\n );\n if (applicationHook !== undefined) {\n await this.replaceApplicationHook(current.id, applicationHook, manager);\n }\n const updated = await this.requireContent(current.id, manager);\n await this.taonCmsContentRevisionRepository.recordContent(\n updated,\n {\n ...fields,\n tagIds: snapshot.tagIds,\n relatedPostIds: updated.relatedPosts.map(post => post.id),\n permissionIds: updated.permissions.map(permission => permission.id),\n },\n manager,\n );\n return updated;\n //#endregion\n }\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}\n","//#region imports\nimport {\n TaonSessionProvider,\n TaonSessionRepository,\n} from '@taon-dev/session/websql-prod';\nimport { TaonAuthContextRepository } from '@taon-dev/session/websql-prod';\nimport { ExpressRequest, ExpressResponse, TaonBaseStorageController, TaonController, TaonStorageObject, TaonUploadedFile, apiPrefix, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from 'taon/websql-prod';\nimport { UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\nimport { contentError } from './taon-cms-content.validation';\n//#endregion\n\n@TaonController<TaonCmsContentStorageController>({\n className: 'TaonCmsContentStorageController',\n // allowedMethods: ['download', 'uploadFormDataToServer'],\n})\nexport class TaonCmsContentStorageController extends TaonBaseStorageController<\n {},\n TaonCmsContentStorageController\n> {\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly taonCmsContentRepository = this.injectCustomRepo(\n TaonCmsContentRepository,\n );\n\n private readonly taonSessionProvider =\n this.injectProvider(TaonSessionProvider);\n\n protected async beforeEachRequest({\n req,\n res,\n methodConfig,\n t,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsContentStorageController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async handleUploadFiles(\n files: TaonUploadedFile[],\n queryParams?: {},\n req?: ExpressRequest,\n res?: ExpressResponse,\n ): Promise<TaonStorageObject[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n afterFileUploadHook(): void {}\n\n async isMediaObjectAvailable(key: string): Promise<boolean> {\n/* */\n/* */\n return (void 0);\n }\n\n buildStorageDownloadUrl(options: {\n req: ExpressRequest;\n key: string;\n private: boolean;\n token?: string;\n download?: boolean;\n }): string {\n //#region @websqlFunc\n if (!this.ctx) {\n console.trace(`[buildStorageDownloadUrl] accessing without context`);\n return;\n }\n const isLocalhost =\n this.ctx.frontendHostUri.origin.includes('://localhost:');\n\n const urlFromMehtod = this.getThisControllerMethodFullUrl('download');\n // console.log({ urlFromMehtod });\n\n const url = new URL(urlFromMehtod);\n\n url.search = '';\n url.searchParams.set('key', options.key);\n if (options.token) {\n url.searchParams.set('token', options.token);\n }\n if (options.download) {\n url.searchParams.set('download', 'true');\n }\n return (\n `${isLocalhost ? this.ctx.uri.origin : this.ctx.frontendHostUri.origin}` +\n `${url.pathname}${url.search}`\n );\n //#endregion\n }\n\n async createStorageDownloadToken(options: {\n key: string;\n expiresAt: number;\n }): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async verifyStorageDownloadToken(options: {\n key: string;\n token: string;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async isPublicStorageKey(key: string): Promise<boolean> {\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport {\n TaonSessionRepository,\n type TaonPermissionEntity,\n} from '@taon-dev/session/websql-prod';\nimport {\n TaonAuthContextRepository,\n TaonSessionCoreAuthorization,\n} from '@taon-dev/session/websql-prod';\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, PUT, DELETE, Body, ExpressRequest, getStatusCode, HttpStatusEnum, ExpressResponse, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport type { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport type {\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n TaonCmsPermissionConfiguration,\n} from './taon-cms-content.models';\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\nimport { contentError } from './taon-cms-content.validation';\n//#endregion\n\n@TaonController<TaonCmsContentController>({\n //#region controller options\n className: 'TaonCmsContentController',\n allowedMethods: [\n 'getAll',\n 'getBy',\n 'createContent',\n 'duplicateContent',\n 'updateContent',\n 'deleteContent',\n 'restoreContent',\n 'listRevisions',\n 'listRelatedPosts',\n 'listCourses',\n 'listPermissions',\n 'getPermissionConfiguration',\n 'listApplicationHooks',\n 'getContentByHook',\n 'getPublicContentByHook',\n 'getVideoLinkBySlug',\n 'getPublicVideoLinkBySlug',\n 'getAudioLinkBySlug',\n 'getPublicAudioLinkBySlug',\n 'getAttachmentLinkBySlug',\n 'getPublicAttachmentLinkBySlug',\n 'getThumbnailLinkBySlug',\n 'getPublicThumbnailLinkBySlug',\n 'listTagIds',\n 'addRelatedPost',\n 'deleteRelatedPost',\n 'paginationQuery',\n ],\n //#endregion\n})\nexport class TaonCmsContentController extends TaonBaseCrudController<TaonCmsContentEntity> {\n //#region fields & getters\n entityClassResolveFn: () => typeof TaonCmsContentEntity = () =>\n TaonCmsContentEntity;\n\n private readonly taonCmsContentRepository = this.injectCustomRepo(\n TaonCmsContentRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly taonCmsContentStorageController = this.injectController(\n TaonCmsContentStorageController,\n );\n //#endregion\n\n //#region methods / before each request\n protected async beforeEachRequest({\n req,\n res,\n methodConfig,\n t,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsContentController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get video link by slug\n @GET()\n getVideoLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'video', false, req, t);\n //#endregion\n }\n\n //#region methods / get public video link by slug\n @GET()\n getPublicVideoLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'video', true, req, t);\n //#endregion\n }\n //#endregion\n\n //#region methods / get audio link by slug\n @GET()\n getAudioLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'audio', false, req, t);\n //#endregion\n }\n //#endregion\n\n //#region methods / get public audio link by slug\n @GET()\n getPublicAudioLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'audio', true, req, t);\n //#endregion\n }\n //#endregion\n\n //#region methods / get attachment link by slug\n @GET()\n getAttachmentLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'attachment', false, req, t);\n //#endregion\n }\n //#endregion\n\n //#region methods / get public attachment link by slug\n @GET()\n getPublicAttachmentLinkBySlug(\n @Query('slug') slug: string,\n ): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'attachment', true, req, t);\n //#endregion\n }\n //#endregion\n //#endregion\n\n //#region methods / get media link\n @GET()\n getThumbnailLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'thumbnail', false, req, t);\n //#endregion\n }\n\n @GET()\n getPublicThumbnailLinkBySlug(\n @Query('slug') slug: string,\n ): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'thumbnail', true, req, t);\n //#endregion\n }\n\n @GET()\n listCourses(): Taon__NS__Response<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listCourses();\n //#endregion\n }\n\n @GET()\n listTagIds(@Query('id') id: number): Taon__NS__Response<number[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listTagIds(id);\n //#endregion\n }\n\n private async getMediaLinkBySlug(\n slug: string,\n type: 'video' | 'audio' | 'attachment' | 'thumbnail',\n publicOnly: boolean,\n req: ExpressRequest,\n t: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsContentController>['t'],\n ): Promise<string> {\n //#region @websqlFunc\n const content =\n await this.taonCmsContentRepository.getContentBySlugForMedia(slug);\n if (!content) {\n contentError(t.gettext('Content was not found.'), 404);\n }\n const field =\n type === 'video'\n ? 'videoKey'\n : type === 'audio'\n ? 'audioKey'\n : type === 'thumbnail'\n ? 'thumbnailKey'\n : 'attachmentKey';\n const key = content![field];\n if (!key) {\n contentError(\n t.gettext('Content has no [[ type ]] media.', { type }),\n 404,\n );\n }\n if (\n !(await this.taonCmsContentStorageController.isMediaObjectAvailable(key!))\n ) {\n contentError(t.gettext('The media file was not found in storage.'), 404);\n }\n await this.requireReadAccess(content!, publicOnly, req, t);\n\n const isPrivate = !publicOnly;\n const token = isPrivate\n ? await this.taonCmsContentStorageController.createStorageDownloadToken({\n key: key!,\n expiresAt: Date.now() + 5 * 60 * 1000,\n })\n : undefined;\n return this.taonCmsContentStorageController.buildStorageDownloadUrl({\n req,\n key: key!,\n private: isPrivate,\n token,\n download: type === 'attachment',\n });\n //#endregion\n }\n\n //#region methods / require read access\n private async requireReadAccess(\n content: TaonCmsContentEntity,\n publicOnly: boolean,\n req: ExpressRequest,\n t: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsContentController>['t'],\n ): Promise<void> {\n //#region @websqlFunc\n\n const { permissions } =\n await this.taonCmsContentRepository.getPermissionConfiguration(\n content.id,\n );\n const isPublic = content.status === 'published' && permissions.length === 0;\n if (publicOnly) {\n if (!isPublic) {\n contentError(\n t.gettext('This content is not publicly accessible.'),\n 403,\n );\n }\n } else {\n await this.taonSessionRepository.throwIfNotAuthenticated({ req });\n const context = await this.taonAuthContextRepository.getContext(\n req.userId,\n req.sessionId,\n );\n const userPermissionCodes = new Set<string>(context?.permissions ?? []);\n const hasPermission = permissions.some(permission =>\n userPermissionCodes.has(permission.code),\n );\n if (!context?.isSuperUser && !isPublic && !hasPermission) {\n contentError(t.gettext('You do not have access to this content.'), 403);\n }\n }\n //#endregion\n }\n //#endregion\n //#endregion\n\n //#region methods / get by id\n @GET()\n getBySlug(@Query(`slug`) slug: string): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => {\n const model = await this.db.findOne({\n where: {\n slug,\n },\n });\n return model;\n };\n //#endregion\n }\n //#endregion\n\n //#region methods / create content\n @POST()\n createContent(\n @Body() input: TaonCmsCreateContent,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.createContent(input);\n //#endregion\n }\n //#endregion\n\n //#region methods / update content\n @PUT()\n updateContent(\n @Query('id') id: number,\n @Body() input: TaonCmsUpdateContent,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.updateContent(id, input);\n //#endregion\n }\n //#endregion\n\n @POST()\n duplicateContent(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.duplicateContent(id);\n //#endregion\n }\n\n //#region methods / delete content\n @DELETE()\n deleteContent(\n @Query('id') id: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.archiveContent(id, expectedVersion);\n //#endregion\n }\n //#endregion\n\n //#region methods / restore content\n @POST()\n restoreContent(\n @Query('id') id: number,\n @Body() input: TaonCmsRestoreContent,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.restoreContent(id, input);\n //#endregion\n }\n //#endregion\n\n //#region methods / list related posts\n @GET()\n listRelatedPosts(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listRelatedPosts(id);\n //#endregion\n }\n //#endregion\n\n //#region methods / list permissions\n @GET()\n listPermissions(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonPermissionEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listPermissions(id);\n //#endregion\n }\n //#endregion\n\n //#region methods / get permission configuration\n @GET()\n getPermissionConfiguration(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsPermissionConfiguration> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.getPermissionConfiguration(id);\n //#endregion\n }\n //#endregion\n\n //#region methods / list application hooks\n @GET()\n listApplicationHooks(): Taon__NS__Response<TaonCmsApplicationHookEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listApplicationHooks();\n //#endregion\n }\n //#endregion\n\n //#region methods / get content by hook\n @GET()\n getContentByHook(@Query('hook') hook: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n const content =\n await this.taonCmsContentRepository.getContentForHook(hook);\n if (!content) {\n return '';\n }\n await this.requireReadAccess(content, false, req, t);\n return content.body ?? '';\n };\n //#endregion\n }\n //#endregion\n\n //#region methods / get public content by hook\n @GET()\n getPublicContentByHook(@Query('hook') hook: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n const content =\n await this.taonCmsContentRepository.getContentForHook(hook);\n if (!content) {\n return '';\n }\n await this.requireReadAccess(content, true, req, t);\n return content.body ?? '';\n };\n //#endregion\n }\n //#endregion\n\n //#region methods / add related post\n @POST()\n addRelatedPost(\n @Query('id') id: number,\n @Query('relatedPostId') relatedPostId: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.addRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n );\n //#endregion\n }\n //#endregion\n\n //#region methods / delete related post\n @DELETE()\n deleteRelatedPost(\n @Query('id') id: number,\n @Query('relatedPostId') relatedPostId: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.deleteRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n );\n //#endregion\n }\n //#endregion\n\n //#region methods / list revisions\n @GET()\n listRevisions(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listRevisions(id);\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentMiddleware',\n})\nexport class TaonCmsContentMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentProvider',\n})\nexport class TaonCmsContentProvider extends TaonBaseProvider {\n public siteName: string;\n\n async _(): Promise<void> {\n if (!this.siteName) {\n throw new Error(`Please provide siteName in TaonCmsContentProvider`);\n }\n }\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentSubscriber>({\n className: 'TaonCmsContentSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);\n listenTo(): typeof TaonCmsContentEntity {\n return TaonCmsContentEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsCategoryAbstractContext } from '../taon-cms-category/taon-cms-category.abstract.context';\nimport { TaonCmsContentRevisionAbstractContext } from '../taon-cms-content-revision/taon-cms-content-revision.abstract.context';\nimport { TaonCmsContentTagAbstractContext } from '../taon-cms-content-tag/taon-cms-content-tag.abstract.context';\nimport { TaonCmsTagAbstractContext } from '../taon-cms-tag/taon-cms-tag.abstract.context';\nimport { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\n\nimport { TaonCmsContentController } from './taon-cms-content.controller';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentMiddleware } from './taon-cms-content.middleware';\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\nimport { TaonCmsContentSubscriber } from './taon-cms-content.subscriber';\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\n\n//#endregion\n\nexport const TaonCmsContentAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentAbstractContext',\n abstract: true,\n contexts: {\n TaonBaseContext,\n TaonCmsCategoryAbstractContext,\n TaonCmsTagAbstractContext,\n TaonCmsContentTagAbstractContext,\n TaonCmsContentRevisionAbstractContext,\n },\n entities: { TaonCmsApplicationHookEntity, TaonCmsContentEntity },\n controllers: { TaonCmsContentController, TaonCmsContentStorageController },\n repositories: { TaonCmsContentRepository },\n providers: { TaonCmsContentProvider },\n middlewares: { TaonCmsContentMiddleware },\n subscribers: { TaonCmsContentSubscriber },\n}));\n","//#region imports\nimport { Column, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentAssetDefaultsValues } from './taon-cms-content-asset.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentAssetEntity',\n createTable: true,\n})\nexport class TaonCmsContentAssetEntity extends TaonBaseEntity<TaonCmsContentAssetEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n contentId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n type: string;\n // image | video | audio | file\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n storageProvider: string;\n // r2 | filesystem | s3\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n bucket: string | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n key: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n originalFilename: string | null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n mimeType: string | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n size: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n durationSeconds: number | null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n metadata: Record<string, any> | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentAssetRepository',\n})\nexport class TaonCmsContentAssetRepository extends TaonBaseRepository<TaonCmsContentAssetEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentAssetEntity = () => TaonCmsContentAssetEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetRepository } from './taon-cms-content-asset.repository';\n//#endregion\n\n@TaonController<TaonCmsContentAssetController>({\n className: 'TaonCmsContentAssetController',\n allowedMethods: []\n})\nexport class TaonCmsContentAssetController extends TaonBaseCrudController<TaonCmsContentAssetEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentAssetEntity = () => TaonCmsContentAssetEntity;\n\n taonCmsContentAssetRepository = this.injectCustomRepo(TaonCmsContentAssetRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsContentAssetRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonCmsContentAssetController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentAssetProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentAssetProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentAssetMiddleware',\n})\nexport class TaonCmsContentAssetMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetProvider } from './taon-cms-content-asset.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentAssetSubscriber>({\n className: 'TaonCmsContentAssetSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentAssetSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentAssetProvider = this.injectProvider(TaonCmsContentAssetProvider);\n listenTo(): typeof TaonCmsContentAssetEntity {\n return TaonCmsContentAssetEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetController } from './taon-cms-content-asset.controller';\nimport { TaonCmsContentAssetRepository } from './taon-cms-content-asset.repository';\nimport { TaonCmsContentAssetProvider } from './taon-cms-content-asset.provider';\nimport { TaonCmsContentAssetMiddleware } from './taon-cms-content-asset.middleware';\nimport { TaonCmsContentAssetSubscriber } from './taon-cms-content-asset.subscriber';\n//#endregion\n\nexport const TaonCmsContentAssetAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentAssetAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentAssetEntity },\n controllers: { TaonCmsContentAssetController },\n repositories: { TaonCmsContentAssetRepository },\n providers: { TaonCmsContentAssetProvider },\n middlewares: { TaonCmsContentAssetMiddleware },\n subscribers: { TaonCmsContentAssetSubscriber },\n}));\n","//#region imports\nimport { Column, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentPermissionDefaultsValues } from './taon-cms-content-permission.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentPermissionEntity',\n createTable: true,\n})\nexport class TaonCmsContentPermissionEntity extends TaonBaseEntity<TaonCmsContentPermissionEntity> {\n @PrimaryGeneratedColumn()\n id: number;\n\n @Column({ type: 'integer', default: 0 })\n version: number;\n\n @Column({ type: 'integer' })\n contentId: number;\n\n @Column({ type: 'varchar' })\n type: string;\n // public | authenticated | permission | role |\n // purchase | subscription\n\n @Column({ type: 'integer', nullable: true })\n permissionId: number | null;\n\n @Column({ type: 'integer', nullable: true })\n roleId: number | null;\n\n @Column({ type: 'integer', nullable: true })\n productId: number | null;\n\n @Column({ type: 'varchar', nullable: true })\n stripePriceId: string | null;\n\n @Column({ type: 'simple-json', nullable: true })\n config: Record<string, any> | null;\n\n @Column({ type: 'datetime' })\n createdAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentPermissionRepository',\n})\nexport class TaonCmsContentPermissionRepository extends TaonBaseRepository<TaonCmsContentPermissionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentPermissionEntity = () => TaonCmsContentPermissionEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionRepository } from './taon-cms-content-permission.repository';\n//#endregion\n\n@TaonController<TaonCmsContentPermissionController>({\n className: 'TaonCmsContentPermissionController',\n allowedMethods: []\n})\nexport class TaonCmsContentPermissionController extends TaonBaseCrudController<TaonCmsContentPermissionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentPermissionEntity = () => TaonCmsContentPermissionEntity;\n\n taonCmsContentPermissionRepository = this.injectCustomRepo(TaonCmsContentPermissionRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsContentPermissionRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonCmsContentPermissionController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentPermissionProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentPermissionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentPermissionMiddleware',\n})\nexport class TaonCmsContentPermissionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionProvider } from './taon-cms-content-permission.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentPermissionSubscriber>({\n className: 'TaonCmsContentPermissionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentPermissionSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentPermissionProvider = this.injectProvider(TaonCmsContentPermissionProvider);\n listenTo(): typeof TaonCmsContentPermissionEntity {\n return TaonCmsContentPermissionEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionController } from './taon-cms-content-permission.controller';\nimport { TaonCmsContentPermissionRepository } from './taon-cms-content-permission.repository';\nimport { TaonCmsContentPermissionProvider } from './taon-cms-content-permission.provider';\nimport { TaonCmsContentPermissionMiddleware } from './taon-cms-content-permission.middleware';\nimport { TaonCmsContentPermissionSubscriber } from './taon-cms-content-permission.subscriber';\n//#endregion\n\nexport const TaonCmsContentPermissionAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentPermissionAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentPermissionEntity },\n controllers: { TaonCmsContentPermissionController },\n repositories: { TaonCmsContentPermissionRepository },\n providers: { TaonCmsContentPermissionProvider },\n middlewares: { TaonCmsContentPermissionMiddleware },\n subscribers: { TaonCmsContentPermissionSubscriber },\n}));\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { TaonSessionAbstractContext } from '@taon-dev/session/websql-prod';\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsCategoryAbstractContext } from './taon-cms-category/taon-cms-category.abstract.context';\nimport { TaonCmsCommentAbstractContext } from './taon-cms-comment/taon-cms-comment.abstract.context';\nimport { TaonCmsContentAbstractContext } from './taon-cms-content/taon-cms-content.abstract.context';\nimport { TaonCmsContentAssetAbstractContext } from './taon-cms-content-asset/taon-cms-content-asset.abstract.context';\nimport { TaonCmsContentPermissionAbstractContext } from './taon-cms-content-permission/taon-cms-content-permission.abstract.context';\nimport { TaonCmsContentRevisionAbstractContext } from './taon-cms-content-revision/taon-cms-content-revision.abstract.context';\nimport { TaonCmsContentTagAbstractContext } from './taon-cms-content-tag/taon-cms-content-tag.abstract.context';\nimport { TaonCmsTagAbstractContext } from './taon-cms-tag/taon-cms-tag.abstract.context';\n\nexport const TaonCmsAbstractContext = createContext(() => ({\n contextName: 'TaonCmsAbstractContext',\n abstract: true,\n contexts: {\n TaonCmsCategoryAbstractContext,\n TaonCmsCommentAbstractContext,\n TaonCmsContentAbstractContext,\n TaonCmsContentAssetAbstractContext,\n TaonCmsContentPermissionAbstractContext,\n TaonCmsContentRevisionAbstractContext,\n TaonCmsContentTagAbstractContext,\n TaonCmsTagAbstractContext,\n TaonSessionAbstractContext,\n },\n}));\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","import { Resource__NS__Cookies, Resource__NS__create, Resource__NS__globalInterceptors, Resource__NS__listenErrors, Resource__NS__methodsInterceptors } from 'ng2-rest/websql-prod';\nimport { Observable } from 'rxjs';\n\nconst progressCallbacks = new WeakMap<FormData, (percentage: number) => void>();\n\n// Keep Taon's middleware, retries and response decoding; replace only the\n// final Fetch transport for uploads that request browser upload events.\nexport function trackCmsUpload(\n url: string,\n body: FormData,\n onProgress: (percentage: number) => void,\n): () => void {\n const key = `cms-upload-progress-POST-${new URL(url).pathname}`;\n if (!Resource__NS__methodsInterceptors.has(key)) {\n Resource__NS__methodsInterceptors.set(key, {\n intercept: ({ req, next }) => {\n if (!(req.body instanceof FormData)) {\n return next.handle(req);\n }\n const uploadBody = req.body;\n const callback = progressCallbacks.get(uploadBody);\n if (!callback) {\n return next.handle(req);\n }\n return new Observable<Response>(subscriber => {\n const xhr = new XMLHttpRequest();\n xhr.open(req.method || 'POST', req.url);\n xhr.withCredentials = req.credentials === 'include';\n new Headers(req.headers).forEach((value, name) => {\n // The browser must supply the multipart boundary.\n if (name.toLowerCase() !== 'content-type') {\n xhr.setRequestHeader(name, value);\n }\n });\n xhr.upload.onprogress = event => {\n if (event.lengthComputable && event.total > 0) {\n callback(\n Math.min(100, Math.floor((event.loaded * 100) / event.total)),\n );\n }\n };\n xhr.onload = () => {\n const headers = new Headers();\n for (const line of xhr\n .getAllResponseHeaders()\n .trim()\n .split(/[\\r\\n]+/)) {\n const separator = line.indexOf(':');\n if (separator > 0) {\n headers.append(\n line.slice(0, separator),\n line.slice(separator + 1).trim(),\n );\n }\n }\n subscriber.next(\n new Response(\n [204, 205, 304].includes(xhr.status) ? null : xhr.responseText,\n {\n status: xhr.status,\n statusText: xhr.statusText,\n headers,\n },\n ),\n );\n subscriber.complete();\n };\n xhr.onerror = () =>\n subscriber.error(new Error('Media upload network error.'));\n xhr.ontimeout = () =>\n subscriber.error(new Error('Media upload timed out.'));\n xhr.onabort = () =>\n subscriber.error(new Error('Media upload was cancelled.'));\n const abort = () => xhr.abort();\n req.signal?.addEventListener('abort', abort, { once: true });\n if (req.signal?.aborted) {\n subscriber.error(new Error('Media upload was cancelled.'));\n } else {\n callback(0);\n xhr.send(uploadBody);\n }\n return () => {\n req.signal?.removeEventListener('abort', abort);\n if (xhr.readyState !== XMLHttpRequest.DONE) {\n xhr.abort();\n }\n };\n });\n },\n });\n }\n progressCallbacks.set(body, onProgress);\n return () => progressCallbacks.delete(body);\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { TaonBaseAngularService, TaonStorageObject, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\nimport { TaonCmsContentController } from './taon-cms-content.controller';\nimport type { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport type {\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n TaonCmsPermissionConfiguration,\n} from './taon-cms-content.models';\nimport { trackCmsUpload } from './taon-cms-upload-progress';\n\n//#endregion\n\n@Injectable()\nexport class TaonCmsContentApiService<\n HOOKS extends TaonCmsApplicationHook = TaonCmsApplicationHook,\n> extends TaonBaseAngularService {\n //#region fields & getters\n protected readonly taonCmsContentController = this.injectController(\n TaonCmsContentController,\n );\n\n protected readonly taonCmsContentStorageController = this.injectController(\n TaonCmsContentStorageController,\n );\n\n public get crudController(): TaonCmsContentController {\n return this.taonCmsContentController;\n }\n\n public get frontendUrl(): string {\n return this.ctx.frontendHostUri.origin;\n }\n\n public getPostUrl(slug: string): string {\n return `${this.frontendUrl}/posts/${encodeURIComponent(slug)}`;\n }\n //#endregion\n\n //#region API / get by id\n public async getById(id: number): Promise<TaonCmsContentEntity> {\n return (await this.taonCmsContentController.getBy(id).request()).body.json;\n }\n //#endregion\n\n //#region API / get by slug\n public async getBySlug(slug: string): Promise<TaonCmsContentEntity> {\n return (await this.taonCmsContentController.getBySlug(slug).request()).body\n .json;\n }\n //#endregion\n\n //#region API / get video link by slug\n /**\n * Get link to private video\n */\n public getVideoLinkBySlug(slug: string): Observable<string> {\n return this.taonCmsContentController\n .getVideoLinkBySlug(slug)\n .request()\n .observable.pipe(\n map(res => res.body.text),\n catchError(err => {\n console.error(err);\n return of('');\n }),\n );\n }\n //#endregion\n\n //#region API / get public video link by slug\n public async getPublicVideoLinkBySlug(slug: string): Promise<string> {\n return (\n await this.taonCmsContentController\n .getPublicVideoLinkBySlug(slug)\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / get audio link by slug\n public getAudioLinkBySlug(slug: string): Observable<string> {\n return this.taonCmsContentController\n .getAudioLinkBySlug(slug)\n .request()\n .observable.pipe(\n map(res => res.body.text),\n catchError(err => {\n console.error(err);\n return of('');\n }),\n );\n }\n //#endregion\n\n //#region API / get public audio link by slug\n public async getPublicAudioLinkBySlug(slug: string): Promise<string> {\n return (\n await this.taonCmsContentController\n .getPublicAudioLinkBySlug(slug)\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / get attachment link by slug\n public async getAttachmentLinkBySlug(slug: string): Promise<string> {\n return (\n await this.taonCmsContentController\n .getAttachmentLinkBySlug(slug)\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / get public attachment link by slug\n public async getPublicAttachmentLinkBySlug(slug: string): Promise<string> {\n return (\n await this.taonCmsContentController\n .getPublicAttachmentLinkBySlug(slug)\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / get content by hook\n public getContentByHook(hook: HOOKS): Observable<string> {\n return this.taonCmsContentController.getContentByHook(hook)\n .request!().observable.pipe(map(res => res.body.text));\n }\n //#endregion\n\n //#region API / get public content by hook\n public getPublicContentByHook(hook: HOOKS): Observable<string> {\n return this.taonCmsContentController.getPublicContentByHook(hook)\n .request!().observable.pipe(\n map(res => res.body.text),\n catchError(() => of('---')),\n );\n }\n //#endregion\n\n //#region API / list application hooks\n public listApplicationHooks(): Observable<TaonCmsApplicationHookEntity[]> {\n return this.taonCmsContentController.listApplicationHooks()\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / upload media\n public async uploadMedia(\n file: File,\n onProgress?: (percentage: number) => void,\n ): Promise<TaonStorageObject> {\n const formData = new FormData();\n formData.append('file', file);\n const stopTracking = onProgress\n ? trackCmsUpload(\n this.taonCmsContentStorageController.getThisControllerMethodFullUrl(\n 'uploadFormDataToServer',\n ),\n formData,\n onProgress,\n )\n : undefined;\n try {\n const response = await this.taonCmsContentStorageController\n .uploadFormDataToServer(formData)\n .request();\n const objects = response.body.json;\n if (!Array.isArray(objects) || objects.length !== 1 || !objects[0]?.key) {\n throw new Error('The upload did not return a media key.');\n }\n onProgress?.(100);\n return objects[0];\n } finally {\n stopTracking?.();\n }\n }\n //#endregion\n\n //#region API / list assets\n public listAssets(): Observable<TaonStorageObject[]> {\n return this.taonCmsContentStorageController\n .list({})\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / get asset url\n public async getAssetUrl(key: string): Promise<string> {\n return (\n await this.taonCmsContentStorageController\n .getPrivateUrl(key, { expiresInSeconds: 5 * 60 })\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / create content\n public listTagIds(id: number): Observable<number[]> {\n return this.taonCmsContentController\n .listTagIds(id)\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n\n public async getThumbnailLinkBySlug(\n slug: string,\n publicOnly = false,\n ): Promise<string> {\n const response = publicOnly\n ? await this.taonCmsContentController\n .getPublicThumbnailLinkBySlug(slug)\n .request()\n : await this.taonCmsContentController\n .getThumbnailLinkBySlug(slug)\n .request();\n return response.body.text;\n }\n\n public createContent(\n input: TaonCmsCreateContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.createContent(input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / duplicate content\n public duplicateContent(id: number): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.duplicateContent(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / update content\n public updateContent(\n id: number,\n input: TaonCmsUpdateContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.updateContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / delete content\n public deleteContent(\n id: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.deleteContent(id, expectedVersion)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / restore content\n public restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.restoreContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / list revisions\n public listRevisions(id: number): Observable<TaonCmsContentRevisionEntity[]> {\n return this.taonCmsContentController.listRevisions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / list related posts\n public listCourses(): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.listCourses()\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public listRelatedPosts(id: number): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.listRelatedPosts(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / list permissions\n public listPermissions(id: number): Observable<TaonPermissionEntity[]> {\n return this.taonCmsContentController.listPermissions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / get permission configuration\n public getPermissionConfiguration(\n id: number,\n ): Observable<TaonCmsPermissionConfiguration> {\n return this.taonCmsContentController.getPermissionConfiguration(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / add related post\n public addRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.addRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n ).request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / delete related post\n public deleteRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.deleteRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n ).request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / get all entites\n /**\n * TODO not good idea if manu posts - refactor later:\n * - add pagination for post selector\n */\n public get allMyEntities$(): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n //#endregion\n}","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { type TaonStorageObject, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../taon-cms-content/taon-cms-content-api.service';\n\nconst t = Translation.for('src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.ts', {\"src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-asset-preview',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule],\n styleUrl: './taon-cms-asset-preview.component.scss',\n templateUrl: './taon-cms-asset-preview.component.html',\n})\nexport class TaonCmsAssetPreviewComponent implements OnInit {\n readonly t = t.for(this);\n\n @Input({ required: true })\n asset!: TaonStorageObject;\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly url = signal('');\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n get previewKind(): 'video' | 'audio' | 'attachment' {\n const contentType = this.asset.contentType?.trim().toLowerCase();\n if (contentType?.startsWith('video/')) {\n return 'video';\n }\n if (contentType?.startsWith('audio/')) {\n return 'audio';\n }\n return 'attachment';\n }\n\n ngOnInit(): void {\n void this.reload();\n }\n\n async reload(): Promise<void> {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.error.set('');\n this.url.set('');\n try {\n const url = new URL(await this.api.getAssetUrl(this.asset.key));\n if (this.previewKind === 'attachment') {\n url.searchParams.set('download', 'true');\n }\n if (!this.destroyRef.destroyed) {\n this.url.set(url.href);\n }\n } catch (error: unknown) {\n if (!this.destroyRef.destroyed) {\n console.error(\n '[taon-cms-asset-preview] Unable to load asset URL',\n error,\n );\n this.error.set(\n this.t.gettext('The asset could not be opened. Please retry.'),\n );\n }\n } finally {\n if (!this.destroyRef.destroyed) {\n this.loading.set(false);\n }\n }\n }\n\n playbackError(): void {\n this.error.set(\n this.t.gettext(\n 'Playback failed or the preview link expired. Please retry.',\n ),\n );\n }\n}","@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading asset preview...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"loading()\"\n (click)=\"reload()\">\n {{ t.gettext('Retry preview') }}\n </button>\n}\n@if (url()) {\n @switch (previewKind) {\n @case ('video') {\n <video\n controls\n preload=\"none\"\n [src]=\"url()\"\n (error)=\"playbackError()\">\n {{ t.gettext('Your browser does not support video playback.') }}\n </video>\n }\n @case ('audio') {\n <audio\n controls\n preload=\"none\"\n [src]=\"url()\"\n (error)=\"playbackError()\">\n {{ t.gettext('Your browser does not support audio playback.') }}\n </audio>\n }\n @default {\n <a\n [href]=\"url()\"\n [attr.download]=\"asset.fileName\"\n target=\"_blank\"\n rel=\"noopener\">\n {{ asset.fileName || asset.key }}\n </a>\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { finalize, map } from 'rxjs';\nimport { type TaonStorageObject as TaonStorageObjectBase, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentApiService } from '../taon-cms-content/taon-cms-content-api.service';\n\nimport { TaonCmsAssetPreviewComponent } from './taon-cms-asset-preview.component';\n\nconst t = Translation.for('src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts', {\"src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.de-DE.i18n.data')).default}} as any);\n\ntype TaonStorageObject = TaonStorageObjectBase & { keyVisible?: string };\n\n@Component({\n selector: 'taon-cms-assets-backoffice',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButtonModule,\n TaonDatatableComponent,\n TaonCmsAssetPreviewComponent,\n ],\n providers: [TaonCmsContentApiService],\n templateUrl: './taon-cms-assets-backoffice.component.html',\n})\nexport class TaonCmsAssetsBackofficeComponent implements OnInit {\n readonly t = t.for(this);\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly assets = signal<TaonStorageObject[]>([]);\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'keyVisible', sortable: true, showExpand: true },\n { header: this.t.gettext('File Name'), field: 'fileName', sortable: true },\n {\n header: this.t.gettext('Content Type'),\n field: 'contentType',\n sortable: true,\n },\n ];\n\n ngOnInit(): void {\n this.reload();\n }\n\n reload(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.error.set('');\n this.api\n .listAssets()\n .pipe(\n map(c => c as TaonStorageObject[]),\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: assets =>\n this.assets.set(\n assets.map(c => {\n c.keyVisible = ___NS__first(c.key.split('__'));\n return c;\n }),\n ),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-assets-backoffice] Unable to load assets',\n error,\n );\n this.error.set(\n this.t.gettext('Assets could not be loaded. Please try reloading.'),\n );\n },\n });\n }\n}","<h1>{{ t.gettext('CMS assets') }}</h1>\n<button\n mat-button\n type=\"button\"\n [disabled]=\"loading()\"\n (click)=\"reload()\">\n {{ t.gettext('Reload assets') }}\n</button>\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading assets...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n\n<ng-template\n #preview\n let-asset>\n <taon-cms-asset-preview [asset]=\"asset\" />\n</ng-template>\n\n<taon-datatable\n [data]=\"assets()\"\n [columns]=\"columns\"\n [allowedColumns]=\"['key', 'fileName', 'contentType']\"\n [hideAddButton]=\"true\"\n [expansionTemplate]=\"preview\"\n searchMode=\"advanced\">\n</taon-datatable>\n","import { Routes } from '@angular/router';\n\nexport const TaonCmsAssetsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-assets-backoffice.component').then(\n m => m.TaonCmsAssetsBackofficeComponent,\n ),\n },\n];\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts', {\"src/lib/taon-cms-backoffice/taon-cms-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-cms-backoffice',\n templateUrl: './taon-cms-backoffice.component.html',\n styleUrls: ['./taon-cms-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonCmsBackofficeComponent {\n readonly t = t.for(this);\n\n componentLoaded = false;\n\n onRouteActivate(component: any): void {\n this.componentLoaded = !!component;\n }\n\n onRouteDeactivate(component: any): void {\n this.componentLoaded = false;\n }\n}","@if (!componentLoaded) {\n <code>\n {{\n t.gettext('In CMS you can manage content and settings for your website.')\n }}\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n","//namespace TaonCmsBackofficeModels\n\n//end of namespace TaonCmsBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport type { TaonAuthContextEntity } from '@taon-dev/session/websql-prod';\nimport { adminLazyRoute as adminLazyRouteBase } from '@taon-dev/ui/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\n//#endregion\n\nconst adminLazyRoute = adminLazyRouteBase<TaonAuthContextEntity>;\nconst t = Translation.for('src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts', {\"src/lib/taon-cms-backoffice/taon-cms-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\nexport const TaonCmsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-backoffice.component').then(\n m => m.TaonCmsBackofficeComponent,\n ),\n\n children: [\n adminLazyRoute({\n isDisabled: ({ context }) => {\n // console.log('context', { context });\n return !context?.hasAccess.toManageCms;\n },\n path: 'posts',\n menuItem: t.signal.gettext('Posts'),\n expandable: true,\n icon: 'edit',\n loader: () =>\n import('../index').then(m => m.TaonCmsPostsBackofficeRoutes),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => {\n // console.log('context', { context });\n return !context?.hasAccess.toManageCms;\n },\n path: 'courses',\n menuItem: t.signal.gettext('Courses'),\n expandable: false,\n icon: 'school',\n loader: () =>\n import('../index').then(\n m => m.TaonCmsCourseBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => !context?.hasAccess.toManageCms,\n path: 'assets',\n menuItem: t.signal.gettext('Assets'),\n expandable: false,\n icon: 'perm_media',\n loader: () =>\n import('../taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes').then(\n m => m.TaonCmsAssetsBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => !context?.hasAccess.toManageCms,\n path: 'categories',\n menuItem: t.signal.gettext('Categories'),\n expandable: false,\n icon: 'folder',\n loader: () =>\n import('../taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.routes').then(\n m => m.TaonCmsCategoriesBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => !context?.hasAccess.toManageCms,\n path: 'tags',\n menuItem: t.signal.gettext('Tags'),\n expandable: false,\n icon: 'label',\n loader: () =>\n import('../taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.routes').then(\n m => m.TaonCmsTagsBackofficeRoutes,\n ),\n }),\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsBackofficeRoutes;","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryController } from './taon-cms-category.controller';\nimport type { TaonCmsCategoryFields } from './taon-cms-taxonomy.validation';\n\n@Injectable()\nexport class TaonCmsCategoryApiService extends TaonBaseAngularService {\n protected readonly taonCmsCategoryController = this.injectController(\n TaonCmsCategoryController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsCategoryEntity[]> {\n return this.taonCmsCategoryController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n save(\n id: number | null,\n input: TaonCmsCategoryFields,\n ): Observable<TaonCmsCategoryEntity> {\n return this.taonCmsCategoryController\n .saveCategory(id, input)\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n\n delete(id: number): Observable<void> {\n return this.taonCmsCategoryController\n .deleteCategory(id)\n .request()\n .observable.pipe(map(() => undefined));\n }\n}","import type { TaonCmsCategoryEntity } from './taon-cms-category.entity';\n\nexport const TaonCmsCategoryDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsCategoryEntity>;","export enum TaonCmsCategoryState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsCategoryState } from './taon-cms-category.models';\n\n//namespace TaonCmsCategoryUtils\n\n export function TaonCmsCategoryUtils__NS__isActive(state: string): state is TaonCmsCategoryState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsCategoryUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentController } from './taon-cms-comment.controller';\n\n@Injectable()\nexport class TaonCmsCommentApiService extends TaonBaseAngularService {\n protected readonly taonCmsCommentController = this.injectController(TaonCmsCommentController);\n\n public get allMyEntities$(): Observable<TaonCmsCommentEntity[]> {\n return this.taonCmsCommentController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonCmsCommentController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","import type { TaonCmsCommentEntity } from './taon-cms-comment.entity';\n\nexport const TaonCmsCommentDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsCommentEntity>;","export enum TaonCmsCommentState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsCommentState } from './taon-cms-comment.models';\n\n//namespace TaonCmsCommentUtils\n\n export function TaonCmsCommentUtils__NS__isActive(state: string): state is TaonCmsCommentState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsCommentUtils\n","import { Injectable } from '@angular/core';\nimport { TaonBaseAngularService } from 'taon/websql-prod';\n\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\n\n@Injectable()\nexport class TaonCmsContentConfigService extends TaonBaseAngularService {\n taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);\n\n get siteName(): string {\n return this.taonCmsContentProvider.siteName;\n }\n}\n","import type { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n\nexport const TaonCmsContentDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n type: TaonCmsContentType.Normal,\n videoKey: null,\n audioKey: null,\n attachmentKey: null,\n thumbnailKey: null,\n} as Partial<TaonCmsContentEntity>;\n","import { TaonCmsContentState } from './taon-cms-content.models';\n\n//namespace TaonCmsContentUtils\n\n export function TaonCmsContentUtils__NS__isActive(state: string): state is TaonCmsContentState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentUtils\n","export interface TaonCmsTemplateContext {\n frontendUrl?: string | null;\n site?: { name?: string | null } | null;\n post?: {\n title?: string | null;\n url?: string | null;\n id?: number | null;\n thumbnailUrl?: string | null;\n } | null;\n}\n\nexport type TaonCmsTemplateVariable =\n | 'frontendUrl'\n | 'site.name'\n | 'currentYear'\n | 'post.title'\n | 'post.url'\n | 'post.id'\n | 'post.thumbnailUrl';\n\n/**\n * Resolves allowlisted values as HTML text/attribute data, not markup.\n * The returned HTML must still pass through the renderer's HTML sanitizer.\n */\nexport function resolveTemplateVariables(\n content: string | null | undefined,\n context: TaonCmsTemplateContext,\n): string {\n const values = new Map<string, string | number | null | undefined>([\n ['frontendUrl', context.frontendUrl],\n ['site.name', context.site?.name],\n ['currentYear', new Date().getFullYear()],\n ['post.title', context.post?.title],\n ['post.url', context.post?.url],\n ['post.id', context.post?.id],\n ['post.thumbnailUrl', context.post?.thumbnailUrl],\n ]);\n return (content ?? '').replace(\n /\\{\\{\\s*([a-zA-Z][a-zA-Z0-9]*(?:\\.[a-zA-Z][a-zA-Z0-9]*)*)\\s*\\}\\}/g,\n (placeholder: string, name: string) => {\n const value = values.get(name);\n if (value === null || value === undefined) {\n return placeholder;\n }\n return String(value)\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n },\n );\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetController } from './taon-cms-content-asset.controller';\n\n@Injectable()\nexport class TaonCmsContentAssetApiService extends TaonBaseAngularService {\n protected readonly taonCmsContentAssetController = this.injectController(\n TaonCmsContentAssetController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsContentAssetEntity[]> {\n return this.taonCmsContentAssetController.getAll()\n .request!().observable.pipe(map(res => res.body?.json));\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonCmsContentAssetController.helloWord(user)\n .request!().observable.pipe(map(res => res.responseText as string));\n }\n}","import type { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\n\nexport const TaonCmsContentAssetDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentAssetEntity>;","export enum TaonCmsContentAssetState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentAssetState } from './taon-cms-content-asset.models';\n\n//namespace TaonCmsContentAssetUtils\n\n export function TaonCmsContentAssetUtils__NS__isActive(state: string): state is TaonCmsContentAssetState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentAssetUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionController } from './taon-cms-content-permission.controller';\n\n@Injectable()\nexport class TaonCmsContentPermissionApiService extends TaonBaseAngularService {\n protected readonly taonCmsContentPermissionController = this.injectController(\n TaonCmsContentPermissionController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsContentPermissionEntity[]> {\n return this.taonCmsContentPermissionController.getAll()\n .request!().observable.pipe(map(res => res.body?.json));\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonCmsContentPermissionController.helloWord(user)\n .request!().observable.pipe(map(res => res.responseText as string));\n }\n}","import type { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\n\nexport const TaonCmsContentPermissionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentPermissionEntity>;","export enum TaonCmsContentPermissionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentPermissionState } from './taon-cms-content-permission.models';\n\n//namespace TaonCmsContentPermissionUtils\n\n export function TaonCmsContentPermissionUtils__NS__isActive(state: string): state is TaonCmsContentPermissionState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentPermissionUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentController } from '../taon-cms-content/taon-cms-content.controller';\nimport type { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsRestoreContent } from '../taon-cms-content/taon-cms-content.models';\n\nimport type { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionController } from './taon-cms-content-revision.controller';\n\n@Injectable()\nexport class TaonCmsContentRevisionApiService extends TaonBaseAngularService {\n protected readonly contentController = this.injectController(\n TaonCmsContentController,\n );\n\n protected readonly taonCmsContentRevisionController = this.injectController(\n TaonCmsContentRevisionController,\n );\n\n public listRevisions(id: number): Observable<TaonCmsContentRevisionEntity[]> {\n return this.contentController.listRevisions(id).request!().observable.pipe(\n map(res => res.body.json),\n );\n }\n\n public restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Observable<TaonCmsContentEntity> {\n return this.contentController.restoreContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public get allMyEntities$(): Observable<TaonCmsContentRevisionEntity[]> {\n return this.taonCmsContentRevisionController.getAll()\n .request!().observable.pipe(map(res => res.body?.json));\n }\n}","import type { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\n\nexport const TaonCmsContentRevisionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentRevisionEntity>;","export enum TaonCmsContentRevisionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentRevisionState } from './taon-cms-content-revision.models';\n\n//namespace TaonCmsContentRevisionUtils\n\n export function TaonCmsContentRevisionUtils__NS__isActive(state: string): state is TaonCmsContentRevisionState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentRevisionUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagController } from './taon-cms-content-tag.controller';\n\n@Injectable()\nexport class TaonCmsContentTagApiService extends TaonBaseAngularService {\n protected readonly taonCmsContentTagController = this.injectController(\n TaonCmsContentTagController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsContentTagEntity[]> {\n return this.taonCmsContentTagController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}","import type { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\n\nexport const TaonCmsContentTagDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentTagEntity>;","export enum TaonCmsContentTagState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentTagState } from './taon-cms-content-tag.models';\n\n//namespace TaonCmsContentTagUtils\n\n export function TaonCmsContentTagUtils__NS__isActive(state: string): state is TaonCmsContentTagState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentTagUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagController } from './taon-cms-tag.controller';\nimport type { TaonCmsTaxonomyFields } from '../taon-cms-category/taon-cms-taxonomy.validation';\n\n@Injectable()\nexport class TaonCmsTagApiService extends TaonBaseAngularService {\n private readonly taonCmsTagController =\n this.injectController(TaonCmsTagController);\n\n get allMyEntities$(): Observable<TaonCmsTagEntity[]> {\n return this.taonCmsTagController\n .getAll()\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n\n save(\n id: number | null,\n input: TaonCmsTaxonomyFields,\n ): Observable<TaonCmsTagEntity> {\n return this.taonCmsTagController\n .saveTag(id, input)\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n\n delete(id: number): Observable<void> {\n return this.taonCmsTagController\n .deleteTag(id)\n .request()\n .observable.pipe(map(() => undefined));\n }\n}","import type { TaonCmsTagEntity } from './taon-cms-tag.entity';\n\nexport const TaonCmsTagDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsTagEntity>;","export enum TaonCmsTagState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsTagState } from './taon-cms-tag.models';\n\n//namespace TaonCmsTagUtils\n\n export function TaonCmsTagUtils__NS__isActive(state: string): state is TaonCmsTagState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsTagUtils\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ActivatedRoute } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport {\n TaonConfirmDialogComponent,\n TaonDatatableComponent,\n} from '@taon-dev/ui/websql-prod';\nimport { Observable, finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsCategoryApiService } from '../taon-cms-category/taon-cms-category-api.service';\nimport type { TaonCmsCategoryEntity } from '../taon-cms-category/taon-cms-category.entity';\nimport type { TaonCmsCategoryFields } from '../taon-cms-category/taon-cms-taxonomy.validation';\nimport { TaonCmsTagApiService } from '../taon-cms-tag/taon-cms-tag-api.service';\nimport type { TaonCmsTagEntity } from '../taon-cms-tag/taon-cms-tag.entity';\n\nconst t = Translation.for('src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.ts', {\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.de-DE.i18n.data')).default}} as any);\ntype TaxonomyRow = TaonCmsCategoryEntity | TaonCmsTagEntity;\n\n@Component({\n selector: 'taon-cms-taxonomy-backoffice',\n templateUrl: './taon-cms-taxonomy-backoffice.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n TaonDatatableComponent,\n ],\n providers: [TaonCmsCategoryApiService, TaonCmsTagApiService],\n styles: [\n `\n :host {\n display: block;\n }\n form {\n display: grid;\n gap: 1rem;\n max-width: 640px;\n margin-block: 1.5rem;\n }\n .actions {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n `,\n ],\n})\nexport class TaonCmsTaxonomyBackofficeComponent {\n readonly t = t.for(this);\n readonly isCategory =\n inject(ActivatedRoute).snapshot.data['taxonomy'] === 'category';\n private readonly categories = inject(TaonCmsCategoryApiService);\n private readonly tags = inject(TaonCmsTagApiService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly dialog = inject(MatDialog);\n readonly rows = signal<TaxonomyRow[]>([]);\n readonly busy = signal(false);\n readonly error = signal('');\n readonly editing = signal(false);\n editingId: number | null = null;\n draft: TaonCmsCategoryFields = this.emptyDraft();\n\n readonly columns: MtxGridColumn[] = [\n { header: this.t.gettext('Name'), field: 'name', sortable: true },\n { header: this.t.gettext('Slug'), field: 'slug', sortable: true },\n ...(this.isCategory\n ? [\n {\n header: this.t.gettext('Parent Category'),\n field: 'parentName',\n sortable: true,\n },\n {\n header: this.t.gettext('Sort Order'),\n field: 'sortOrder',\n sortable: true,\n },\n ]\n : [\n {\n header: this.t.gettext('Description'),\n field: 'description',\n sortable: true,\n },\n ]),\n {\n header: this.t.gettext('Actions'),\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'edit',\n tooltip: this.t.gettext('Edit'),\n disabled: () => this.busy(),\n click: (row: TaxonomyRow) => this.edit(row),\n },\n {\n type: 'icon',\n icon: 'delete',\n tooltip: this.t.gettext('Delete'),\n disabled: () => this.busy(),\n click: (row: TaxonomyRow) => this.delete(row),\n },\n ],\n },\n ];\n\n ngOnInit(): void {\n this.reload();\n }\n\n reload(): void {\n if (this.busy()) {\n return;\n }\n const request: Observable<TaxonomyRow[]> = this.isCategory\n ? this.categories.allMyEntities$\n : this.tags.allMyEntities$;\n this.run(request, rows => this.rows.set(rows));\n }\n\n tableRows() {\n return this.rows().map(row => ({\n ...row,\n parentName:\n 'parentCategoryId' in row\n ? (this.rows().find(parent => parent.id === row.parentCategoryId)\n ?.name ?? '')\n : '',\n }));\n }\n\n parentOptions(): TaonCmsCategoryEntity[] {\n const categories = this.rows().filter(\n (row): row is TaonCmsCategoryEntity => 'parentCategoryId' in row,\n );\n return categories.filter(category => {\n const visited = new Set<number>();\n let current: TaonCmsCategoryEntity | undefined = category;\n while (current) {\n if (current.id === this.editingId || visited.has(current.id)) {\n return false;\n }\n visited.add(current.id);\n current = categories.find(\n parent => parent.id === current?.parentCategoryId,\n );\n }\n return true;\n });\n }\n\n edit(row?: TaxonomyRow): void {\n if (this.busy()) {\n return;\n }\n this.editingId = row?.id ?? null;\n this.draft = row\n ? {\n name: row.name,\n slug: row.slug,\n description: row.description,\n parentCategoryId:\n 'parentCategoryId' in row ? row.parentCategoryId : null,\n sortOrder: 'sortOrder' in row ? row.sortOrder : 0,\n }\n : this.emptyDraft();\n this.error.set('');\n this.editing.set(true);\n }\n\n save(): void {\n if (this.busy()) {\n return;\n }\n const request: Observable<TaxonomyRow> = this.isCategory\n ? this.categories.save(this.editingId, this.draft)\n : this.tags.save(this.editingId, this.draft);\n this.run(request, saved => {\n this.editing.set(false);\n this.rows.update(rows => [\n ...rows.filter(row => row.id !== saved.id),\n saved,\n ]);\n });\n }\n\n delete(row: TaxonomyRow): void {\n if (this.busy()) {\n return;\n }\n this.dialog\n .open(TaonConfirmDialogComponent, {\n data: {\n title: this.isCategory\n ? this.t.gettext('Delete category?')\n : this.t.gettext('Delete tag?'),\n message: this.t.gettext(\n 'Only unused items can be deleted. This cannot be undone.',\n ),\n confirmText: this.t.gettext('Delete'),\n },\n })\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n if (confirmed) {\n this.run(\n this.isCategory\n ? this.categories.delete(row.id)\n : this.tags.delete(row.id),\n () => {\n if (this.editingId === row.id) {\n this.editing.set(false);\n }\n this.rows.update(rows => rows.filter(item => item.id !== row.id));\n },\n );\n }\n });\n }\n\n private run<T>(request: Observable<T>, next: (value: T) => void): void {\n if (this.busy()) {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n request\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: value => {\n this.busy.set(false);\n next(value);\n },\n error: (error: unknown) => {\n console.error('[taon-cms-taxonomy] Operation failed', error);\n this.error.set(\n this.t.gettext(\n 'The operation failed. Check for duplicate names or slugs, invalid parents, or items still used by posts or child categories, then reload and try again.',\n ),\n );\n },\n });\n }\n\n private emptyDraft(): TaonCmsCategoryFields {\n return {\n name: '',\n slug: '',\n description: '',\n parentCategoryId: null,\n sortOrder: 0,\n };\n }\n}","<h1>{{ isCategory ? t.gettext('Categories') : t.gettext('Tags') }}</h1>\n<div class=\"actions\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy()\"\n (click)=\"edit()\">\n {{ isCategory ? t.gettext('Create category') : t.gettext('Create tag') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy()\"\n (click)=\"reload()\">\n {{ t.gettext('Reload') }}\n </button>\n</div>\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n@if (busy()) {\n <p role=\"status\">{{ t.gettext('Loading...') }}</p>\n}\n@if (editing()) {\n <form\n #form=\"ngForm\"\n (ngSubmit)=\"save()\">\n <h2>{{ editingId === null ? t.gettext('Create') : t.gettext('Edit') }}</h2>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Name') }}</mat-label>\n <input\n matInput\n name=\"name\"\n required\n [(ngModel)]=\"draft.name\"\n [disabled]=\"busy()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Slug') }}</mat-label>\n <input\n matInput\n name=\"slug\"\n required\n [(ngModel)]=\"draft.slug\"\n [disabled]=\"busy()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Description') }}</mat-label>\n <textarea\n matInput\n name=\"description\"\n [(ngModel)]=\"draft.description\"\n [disabled]=\"busy()\"></textarea>\n </mat-form-field>\n @if (isCategory) {\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Parent Category') }}</mat-label>\n <mat-select\n name=\"parentCategoryId\"\n [(ngModel)]=\"draft.parentCategoryId\"\n [disabled]=\"busy()\">\n <mat-option [value]=\"null\">{{ t.gettext('None') }}</mat-option>\n @for (category of parentOptions(); track category.id) {\n <mat-option [value]=\"category.id\">{{ category.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Sort Order') }}</mat-label>\n <input\n matInput\n name=\"sortOrder\"\n type=\"number\"\n step=\"1\"\n required\n [(ngModel)]=\"draft.sortOrder\"\n [disabled]=\"busy()\" />\n </mat-form-field>\n }\n <div class=\"actions\">\n <button\n mat-flat-button\n type=\"submit\"\n [disabled]=\"\n busy() || form.invalid || !draft.name.trim() || !draft.slug.trim()\n \">\n {{ t.gettext('Save') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy()\"\n (click)=\"editing.set(false)\">\n {{ t.gettext('Cancel') }}\n </button>\n </div>\n </form>\n}\n<taon-datatable\n [data]=\"tableRows()\"\n [columns]=\"columns\"\n [hideAddButton]=\"true\"\n searchMode=\"advanced\">\n</taon-datatable>\n","import { Routes } from '@angular/router';\n\nexport const TaonCmsCategoriesBackofficeRoutes: Routes = [\n {\n path: '',\n data: { taxonomy: 'category' },\n loadComponent: () =>\n import('./taon-cms-taxonomy-backoffice.component').then(\n m => m.TaonCmsTaxonomyBackofficeComponent,\n ),\n },\n];\n\nexport const TaonCmsTagsBackofficeRoutes: Routes = [\n {\n path: '',\n data: { taxonomy: 'tag' },\n loadComponent: () =>\n import('./taon-cms-taxonomy-backoffice.component').then(\n m => m.TaonCmsTaxonomyBackofficeComponent,\n ),\n },\n];\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nconst t = Translation.for('src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component.ts', {\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonCmsTaxonomyQuickCreateData {\n taxonomy: 'category' | 'tag';\n}\n\nexport interface TaonCmsTaxonomyQuickCreateResult {\n name: string;\n slug: string;\n description: string | null;\n parentCategoryId: number | null;\n sortOrder: number;\n}\n\n@Component({\n selector: 'taon-cms-taxonomy-quick-create-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n ],\n template: `\n <h2 mat-dialog-title>\n {{\n data.taxonomy === 'category'\n ? t.gettext('Add category')\n : t.gettext('Add tag')\n }}\n </h2>\n <form (ngSubmit)=\"create()\">\n <mat-dialog-content>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Name') }}</mat-label>\n <input\n matInput\n name=\"name\"\n required\n [ngModel]=\"name\"\n (ngModelChange)=\"updateName($event)\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Slug') }}</mat-label>\n <input\n matInput\n name=\"slug\"\n required\n [(ngModel)]=\"slug\"\n (input)=\"slugManuallySet = true\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Description') }}</mat-label>\n <textarea\n matInput\n name=\"description\"\n [(ngModel)]=\"description\"></textarea>\n </mat-form-field>\n </mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n <button\n mat-button\n type=\"button\"\n (click)=\"dialogRef.close()\">\n {{ t.gettext('Cancel') }}\n </button>\n <button\n mat-flat-button\n color=\"primary\"\n type=\"submit\"\n [disabled]=\"!name.trim() || !slug.trim()\">\n {{ t.gettext('Create') }}\n </button>\n </mat-dialog-actions>\n </form>\n `,\n})\nexport class TaonCmsTaxonomyQuickCreateDialogComponent {\n readonly t = t.for(this);\n\n readonly data = inject<TaonCmsTaxonomyQuickCreateData>(MAT_DIALOG_DATA);\n\n readonly dialogRef = inject<\n MatDialogRef<\n TaonCmsTaxonomyQuickCreateDialogComponent,\n TaonCmsTaxonomyQuickCreateResult\n >\n >(MatDialogRef);\n\n name = '';\n\n slug = '';\n\n description = '';\n\n slugManuallySet = false;\n\n updateName(value: string): void {\n this.name = value;\n if (!this.slugManuallySet) {\n this.slug = ___NS__kebabCase(value);\n }\n }\n\n create(): void {\n if (!this.name.trim() || !this.slug.trim()) {\n return;\n }\n this.dialogRef.close({\n name: this.name.trim(),\n slug: this.slug.trim(),\n description: this.description.trim() || null,\n parentCategoryId: null,\n sortOrder: 0,\n });\n }\n}","import { DestroyRef, Directive, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonConfirmDialogComponent } from '@taon-dev/ui/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts', {\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\n@Directive()\nexport abstract class TaonCmsPostTableActions {\n private readonly actionsTranslation = t.for(this);\n\n readonly taonCmsContentApiService = inject(TaonCmsContentApiService);\n\n readonly deleting = signal<number | null>(null);\n\n readonly duplicating = signal(false);\n\n readonly error = signal('');\n\n protected readonly destroyRef = inject(DestroyRef);\n\n protected readonly postPath: string[] = [];\n\n protected readonly backContext: 'posts' | 'courses' = 'posts';\n\n private readonly dialog = inject(MatDialog);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n readonly actionsColumn: MtxGridColumn = {\n header: this.actionsTranslation.gettext('Actions'),\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'content_copy',\n tooltip: this.actionsTranslation.gettext('Duplicate post'),\n disabled: () => this.duplicating(),\n click: (post: TaonCmsContentEntity) => this.duplicate(post),\n },\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: this.actionsTranslation.gettext('Post details'),\n click: (post: TaonCmsContentEntity) => this.openDetails(post),\n },\n {\n type: 'icon',\n icon: 'delete',\n tooltip: this.actionsTranslation.gettext('Delete (archive) post'),\n disabled: (post: TaonCmsContentEntity) =>\n post.status === 'archived' || this.deleting() !== null,\n click: (post: TaonCmsContentEntity) => this.delete(post),\n },\n ],\n };\n\n abstract reload(): void;\n\n add(): void {\n this.openPost('new');\n }\n\n openDetails(post: TaonCmsContentEntity): void {\n this.openPost(post.id);\n }\n\n private openPost(id: number | 'new'): void {\n const postsRoute = this.route.parent;\n if (!postsRoute) {\n this.error.set(\n this.actionsTranslation.gettext('The Post details route is unavailable.'),\n );\n return;\n }\n void this.router\n .navigate([...this.postPath, id], {\n relativeTo: postsRoute,\n queryParams:\n this.backContext === 'courses'\n ? { postOrigin: 'courses' }\n : undefined,\n queryParamsHandling: 'preserve',\n })\n .catch(error => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to open post',\n error,\n );\n this.error.set(\n this.actionsTranslation.gettext(\n 'The Post details route is unavailable.',\n ),\n );\n });\n }\n\n duplicate(post: TaonCmsContentEntity): void {\n if (this.duplicating()) {\n return;\n }\n this.duplicating.set(true);\n this.error.set('');\n this.taonCmsContentApiService\n .duplicateContent(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.duplicating.set(false)),\n )\n .subscribe({\n next: duplicate => this.openDetails(duplicate),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to duplicate post',\n error,\n );\n this.error.set(\n this.actionsTranslation.gettext(\n 'The post could not be duplicated. Please try again.',\n ),\n );\n },\n });\n }\n\n delete(post: TaonCmsContentEntity): void {\n if (this.deleting() !== null || post.status === 'archived') {\n return;\n }\n this.deleting.set(post.id);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: this.actionsTranslation.gettext('Delete post?'),\n message: this.actionsTranslation.gettext(\n 'This archives the post. It can be restored from its revisions.',\n ),\n confirmText: this.actionsTranslation.gettext('Delete'),\n },\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n if (!confirmed) {\n this.deleting.set(null);\n return;\n }\n this.error.set('');\n this.taonCmsContentApiService\n .deleteContent(post.id, post.version)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.deleting.set(null)),\n )\n .subscribe({\n next: () => this.reload(),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to delete post',\n error,\n );\n this.error.set(\n this.actionsTranslation.gettext(\n 'The post could not be deleted. Refresh the table before retrying.',\n ),\n );\n },\n });\n });\n }\n}","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts', {\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-course-contents',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, TaonDatatableComponent],\n templateUrl: './taon-cms-course-contents.component.html',\n})\nexport class TaonCmsCourseContentsComponent implements OnInit {\n readonly t = t.for(this);\n\n @Input({ required: true })\n course!: TaonCmsContentEntity;\n\n @Input({ required: true })\n actionsColumn!: MtxGridColumn;\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n readonly copyFeedback = signal('');\n\n columns: MtxGridColumn[] = [];\n\n ngOnInit(): void {\n this.columns = [\n { header: 'ID', field: 'id', sortable: true },\n { header: this.t.gettext('Title'), field: 'title', sortable: true },\n { header: this.t.gettext('Status'), field: 'status', sortable: true },\n this.actionsColumn,\n ];\n this.reload();\n }\n\n reload(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.error.set('');\n this.api.listRelatedPosts(this.course.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: posts =>\n this.posts.set(posts.filter(post => post.status !== 'archived')),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-course-contents] Unable to load related posts',\n error,\n );\n this.error.set(\n this.t.gettext('Course contents could not be loaded. Please retry.'),\n );\n },\n });\n }\n\n async copyCourseSlug(): Promise<void> {\n this.copyFeedback.set('');\n try {\n if (!navigator.clipboard) {\n throw new Error('Clipboard access is unavailable.');\n }\n await navigator.clipboard.writeText(this.course.slug);\n this.copyFeedback.set(this.t.gettext('Course slug copied.'));\n } catch (error: unknown) {\n console.error('[taon-cms-course-contents] Unable to copy course slug', error);\n this.copyFeedback.set(\n this.t.gettext('The course slug could not be copied.'),\n );\n }\n }\n}","<section [attr.aria-label]=\"t.gettext('Course contents')\">\n <h2>{{ t.gettext('Course contents') }}: {{ course.title }}</h2>\n <button\n mat-button\n type=\"button\"\n (click)=\"copyCourseSlug()\">\n {{ t.gettext('Copy slug: [[ slug ]]', { slug: course.slug }) }}\n </button>\n @if (copyFeedback()) {\n <p role=\"status\">{{ copyFeedback() }}</p>\n }\n @if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading course contents...') }}</p>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" (click)=\"reload()\">\n {{ t.gettext('Retry') }}\n </button>\n }\n <taon-datatable\n [pageSize]=\"posts().length || 1\"\n [data]=\"posts()\"\n [columns]=\"columns\"\n [showPaginator]=\"false\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\">\n </taon-datatable>\n</section>\n","import { TaonCmsContentType } from '../../taon-cms-content/taon-cms-content.models';\n\nexport function defaultThumbnailKey(type: TaonCmsContentType): string {\n return `cms-placeholder:${type}`;\n}\n\nexport function defaultThumbnailUrl(key: string): string | null {\n const type = Object.values(TaonCmsContentType).find(\n value => key === defaultThumbnailKey(value),\n );\n if (!type) {\n return null;\n }\n const shapes: Record<TaonCmsContentType, string> = {\n normal:\n '<path d=\"M260 126h120v112H260z M280 152h80m-80 20h80m-80 20h52\" />',\n video:\n '<rect x=\"248\" y=\"132\" width=\"144\" height=\"100\" rx=\"16\"/><path d=\"m308 158 40 24-40 24z\"/>',\n audio: '<path d=\"M280 164v40m20-60v80m20-98v116m20-98v80m20-60v40\"/>',\n attachment:\n '<path d=\"M276 124h60l32 32v84h-92z M336 124v36h32m-70 30h48m-48 22h36\"/>',\n };\n const svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"360\" viewBox=\"0 0 640 360\"><defs><linearGradient id=\"bg\" x2=\"1\" y2=\"1\"><stop stop-color=\"#eaf0ff\"/><stop offset=\"1\" stop-color=\"#e4f5f0\"/></linearGradient></defs><rect width=\"640\" height=\"360\" rx=\"24\" fill=\"url(#bg)\"/><circle cx=\"320\" cy=\"180\" r=\"112\" fill=\"#fff\" opacity=\".65\"/><g fill=\"none\" stroke=\"#52669a\" stroke-width=\"7\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${shapes[type]}</g></svg>`;\n return `data:image/svg+xml,${encodeURIComponent(svg)}`;\n}\n\nexport function visiblePixelRatio(pixels: Uint8ClampedArray): number {\n let visible = 0;\n for (let index = 0; index < pixels.length; index += 4) {\n const luminance =\n 0.2126 * pixels[index] +\n 0.7152 * pixels[index + 1] +\n 0.0722 * pixels[index + 2];\n if (luminance > 18) {\n visible += 1;\n }\n }\n return pixels.length ? visible / (pixels.length / 4) : 0;\n}\n\nfunction videoEvent(\n video: HTMLVideoElement,\n event: string,\n action: () => void,\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const cleanup = () => {\n clearTimeout(timeout);\n video.removeEventListener(event, done);\n video.removeEventListener('error', failed);\n };\n const done = () => {\n cleanup();\n resolve();\n };\n const failed = () => {\n cleanup();\n reject(new Error(video.error?.message || 'Video decoding failed.'));\n };\n const timeout = setTimeout(() => {\n cleanup();\n reject(new Error('Video decoding timed out.'));\n }, 15000);\n video.addEventListener(event, done, { once: true });\n video.addEventListener('error', failed, { once: true });\n try {\n action();\n } catch (error: unknown) {\n cleanup();\n reject(error);\n }\n });\n}\n\nexport async function generateVideoThumbnail(file: Blob): Promise<Blob> {\n const video = document.createElement('video');\n const url = URL.createObjectURL(file);\n try {\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n await videoEvent(video, 'loadeddata', () => {\n video.src = url;\n video.load();\n });\n if (!video.videoWidth || !video.videoHeight) {\n throw new Error('The video has no decodable dimensions.');\n }\n const analysis = document.createElement('canvas');\n analysis.width = 64;\n analysis.height = Math.max(\n 1,\n Math.round((64 * video.videoHeight) / video.videoWidth),\n );\n const context = analysis.getContext('2d', { willReadFrequently: true });\n if (!context) {\n throw new Error('Canvas is unavailable.');\n }\n const seek = async (time: number) => {\n if (Math.abs(video.currentTime - time) > 0.001) {\n await videoEvent(video, 'seeked', () => {\n video.currentTime = time;\n });\n }\n };\n const end = Number.isFinite(video.duration)\n ? Math.min(5, Math.max(0, video.duration - 0.01))\n : 5;\n let bestTime = 0;\n let bestRatio = -1;\n let found = false;\n for (let time = 0; time <= end; time += 0.25) {\n await seek(time);\n context.drawImage(video, 0, 0, analysis.width, analysis.height);\n const ratio = visiblePixelRatio(\n context.getImageData(0, 0, analysis.width, analysis.height).data,\n );\n if (ratio > bestRatio) {\n bestRatio = ratio;\n bestTime = time;\n }\n // Small highlights or a subject in a dark scene are enough.\n if (ratio >= 0.02) {\n found = true;\n break;\n }\n }\n if (!found) {\n await seek(bestTime);\n }\n const canvas = document.createElement('canvas');\n const scale = Math.min(1, 1280 / video.videoWidth, 720 / video.videoHeight);\n canvas.width = Math.max(1, Math.round(video.videoWidth * scale));\n canvas.height = Math.max(1, Math.round(video.videoHeight * scale));\n const output = canvas.getContext('2d');\n if (!output) {\n throw new Error('Canvas is unavailable.');\n }\n output.drawImage(video, 0, 0, canvas.width, canvas.height);\n return await new Promise<Blob>((resolve, reject) => {\n canvas.toBlob(\n blob =>\n blob\n ? resolve(blob)\n : reject(new Error('Thumbnail encoding failed.')),\n 'image/webp',\n 0.85,\n );\n });\n } finally {\n try {\n video.pause();\n video.removeAttribute('src');\n video.load();\n } finally {\n URL.revokeObjectURL(url);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { defaultThumbnailUrl } from '../taon-cms-post/taon-cms-thumbnail';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts', {\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-course-cover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule],\n templateUrl: './taon-cms-course-cover.component.html',\n styles: [`\n :host {\n display: block;\n }\n img {\n display: block;\n max-height: 50px;\n max-width: 90px;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n `],\n})\nexport class TaonCmsCourseCoverComponent implements OnInit {\n readonly t = t.for(this);\n\n @Input({ required: true })\n post!: TaonCmsContentEntity;\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly url = signal('');\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n ngOnInit(): void {\n void this.reload();\n }\n\n async reload(): Promise<void> {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.url.set('');\n this.error.set('');\n try {\n const url =\n defaultThumbnailUrl(this.post.thumbnailKey ?? '') ??\n await this.api.getThumbnailLinkBySlug(this.post.slug);\n if (!url) {\n throw new Error('The thumbnail URL is empty.');\n }\n if (!this.destroyRef.destroyed) {\n this.url.set(url);\n }\n } catch (error: unknown) {\n console.error('[taon-cms-course-cover] Unable to load thumbnail', error);\n if (!this.destroyRef.destroyed) {\n this.failed();\n }\n } finally {\n if (!this.destroyRef.destroyed) {\n this.loading.set(false);\n }\n }\n }\n\n failed(): void {\n this.url.set('');\n this.error.set(this.t.gettext('Cover unavailable. Retry'));\n }\n}","@if (url()) {\n <img [src]=\"url()\" [alt]=\"post.title\" (error)=\"failed()\" />\n}\n@if (error()) {\n <button mat-button type=\"button\" (click)=\"reload()\">{{ error() }}</button>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n TemplateRef,\n ViewChild,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostTableActions } from '../taon-cms-posts-backoffice/taon-cms-post-table-actions.directive';\n\nimport { TaonCmsCourseContentsComponent } from './taon-cms-course-contents.component';\nimport { TaonCmsCourseCoverComponent } from './taon-cms-course-cover.component';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts', {\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-course-backoffice',\n templateUrl: './taon-cms-course-backoffice.component.html',\n styleUrls: ['./taon-cms-course-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n TaonDatatableComponent,\n TaonCmsCourseContentsComponent,\n TaonCmsCourseCoverComponent,\n ],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonCmsCourseBackofficeComponent\n extends TaonCmsPostTableActions\n implements OnInit {\n readonly t = t.for(this);\n\n @ViewChild(TaonDatatableComponent)\n readonly datatable!: TaonDatatableComponent;\n\n @ViewChild('coverTemplate', { static: true })\n readonly coverTemplate!: TemplateRef<unknown>;\n\n @ViewChild('visibilityTemplate', { static: true })\n readonly visibilityTemplate!: TemplateRef<unknown>;\n\n protected override readonly postPath = ['../posts'];\n\n protected override readonly backContext = 'courses' as const;\n\n readonly courses = signal<TaonCmsContentEntity[]>([]);\n\n readonly loading = signal(false);\n\n columns: MtxGridColumn[] = [];\n\n ngOnInit(): void {\n this.columns = [\n { header: 'ID', field: 'id', sortable: true, showExpand: true },\n {\n header: this.t.gettext('Cover'),\n field: 'thumbnailKey',\n cellTemplate: this.coverTemplate,\n width: '110px',\n },\n { header: this.t.gettext('Title'), field: 'title', sortable: true },\n {\n header: this.t.gettext('Visibility'),\n field: 'status',\n sortable: true,\n cellTemplate: this.visibilityTemplate,\n },\n this.actionsColumn,\n ].map(column => ({\n ...column,\n class: (post: TaonCmsContentEntity) =>\n post?.status === 'published' ? 'cms-course-public' : 'cms-course-private',\n }));\n this.reload();\n }\n\n reload(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.error.set('');\n this.taonCmsContentApiService.listCourses()\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: courses => this.courses.set(courses),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-course-backoffice] Unable to load courses',\n error,\n );\n this.error.set(\n this.t.gettext('Courses could not be loaded. Please try reloading.'),\n );\n },\n });\n }\n}","<h1>{{ t.gettext('Courses') }}</h1>\n<h2 style=\"color: goldenrod;\">{{ t.gettext('Course is just a post with related posts and thumbnail. Any non archived post can be course.') }}</h2>\n<button mat-button type=\"button\" [disabled]=\"loading()\" (click)=\"reload()\">\n {{ t.gettext('Reload courses') }}\n</button>\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading courses...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [data]=\"courses()\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'status']\"\n tableId=\"cms-courses\"\n storeTableFilters=\"query-params\"\n [filtersTemplate]=\"filtersTemplate\"\n [hideAddButton]=\"true\"\n searchMode=\"advanced\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #coverTemplate let-post>\n <taon-cms-course-cover [post]=\"post\"></taon-cms-course-cover>\n</ng-template>\n<ng-template #visibilityTemplate let-post>\n <span class=\"visibility\">\n <mat-icon aria-hidden=\"true\">\n {{ post.status === 'published' ? 'lock_open' : 'lock' }}\n </mat-icon>\n {{ post.status === 'published' ? t.gettext('Public') : t.gettext('Private') }}\n </span>\n</ng-template>\n<ng-template #expansionTemplate let-course>\n <taon-cms-course-contents\n [course]=\"course\"\n [actionsColumn]=\"actionsColumn\">\n </taon-cms-course-contents>\n</ng-template>\n<ng-template\n #filtersTemplate\n let-filters=\"filters\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('ID') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.id\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Title') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.title\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Visibility') }}</mat-label>\n <mat-select [(ngModel)]=\"filters.status\">\n <mat-option value=\"published\">{{ t.gettext('Public') }}</mat-option>\n <mat-option value=\"draft\">{{ t.gettext('Private') }}</mat-option>\n </mat-select>\n </mat-form-field>\n</ng-template>\n","//namespace TaonCmsCourseBackofficeModels\n\n//end of namespace TaonCmsCourseBackofficeModels\n","import { Routes } from '@angular/router';\n\nexport const TaonCmsCourseBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-cms-course-backoffice.component').then(\n m => m.TaonCmsCourseBackofficeComponent,\n ),\n },\n];\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n SecurityContext,\n inject,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n selector: '[taonCmsEditable]',\n})\nexport class TaonCmsEditableDirective {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef)\n .nativeElement;\n private readonly sanitizer = inject(DomSanitizer);\n private value = '';\n private composing = false;\n\n @Input() taonCmsEditableFormat: 'text' | 'html' = 'text';\n @Input() taonCmsEditableSingleLine = false;\n @Output() readonly taonCmsEditableChange = new EventEmitter<string>();\n\n @Input()\n set taonCmsEditable(value: string) {\n if (value === this.value) {\n return;\n }\n this.value = value;\n this.render();\n }\n\n @HostListener('compositionstart')\n compositionStart(): void {\n this.composing = true;\n }\n\n @HostListener('compositionend')\n compositionEnd(): void {\n this.composing = false;\n this.onInput();\n }\n\n @HostListener('input')\n onInput(): void {\n if (this.composing) {\n return;\n }\n const text = this.element.innerText;\n this.value =\n this.taonCmsEditableFormat === 'html'\n ? this.sanitize(this.element.innerHTML)\n : this.taonCmsEditableSingleLine\n ? text.replace(/\\s*\\n\\s*/g, ' ')\n : text;\n // Remember emitted values so Angular does not rewrite the DOM/caret on input.\n this.taonCmsEditableChange.emit(this.value);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.onInput();\n this.render();\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if (this.taonCmsEditableSingleLine && event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const selection = this.element.ownerDocument.getSelection();\n if (!selection?.rangeCount || !event.clipboardData) {\n return;\n }\n const range = selection.getRangeAt(0);\n if (!this.element.contains(range.commonAncestorContainer)) {\n return;\n }\n const pasted = event.clipboardData.getData('text/plain');\n const text = this.taonCmsEditableSingleLine\n ? pasted.replace(/\\s*\\n\\s*/g, ' ')\n : pasted;\n range.deleteContents();\n const node = this.element.ownerDocument.createTextNode(text);\n range.insertNode(node);\n range.setStartAfter(node);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n this.onInput();\n }\n\n private sanitize(value: string): string {\n return this.sanitizer.sanitize(SecurityContext.HTML, value) ?? '';\n }\n\n private render(): void {\n if (this.taonCmsEditableFormat === 'html') {\n this.element.innerHTML = this.sanitize(this.value);\n } else {\n this.element.textContent = this.value;\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n HostListener,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsContentRevisionApiService } from '../../taon-cms-content-revision/taon-cms-content-revision-api.service';\nimport type { TaonCmsContentRevisionEntity } from '../../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts', {\"src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-revision-chooser.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-revision-chooser.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-revision-chooser.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-revision-chooser.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-revision-chooser.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-revision-chooser.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-revision-chooser',\n templateUrl: './taon-cms-revision-chooser.component.html',\n styleUrls: ['./taon-cms-revision-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe, MatButtonModule, MatDialogModule, MatRadioModule],\n providers: [TaonCmsContentRevisionApiService],\n})\nexport class TaonCmsRevisionChooserComponent {\n readonly t = t.for(this);\n\n readonly post = inject<TaonCmsContentEntity>(MAT_DIALOG_DATA);\n\n readonly revisions = signal<TaonCmsContentRevisionEntity[]>([]);\n\n readonly selected = signal<number | null>(null);\n\n readonly loading = signal(false);\n\n readonly applying = signal(false);\n\n readonly error = signal('');\n\n private readonly api = inject(TaonCmsContentRevisionApiService);\n\n private readonly ref = inject(\n MatDialogRef<TaonCmsRevisionChooserComponent, TaonCmsContentEntity>,\n );\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.load();\n }\n\n @HostListener('document:keydown.escape', ['$event'])\n onEscape(event: KeyboardEvent): void {\n event.stopPropagation();\n this.ref.close();\n }\n\n load(): void {\n if (this.loading() || this.applying()) {\n return;\n }\n this.selected.set(null);\n this.loading.set(true);\n this.error.set('');\n this.api\n .listRevisions(this.post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: revisions =>\n this.revisions.set(\n [...revisions].sort((a, b) => b.revisionNumber - a.revisionNumber),\n ),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-revision-chooser] Unable to load revisions',\n error,\n );\n this.error.set(\n this.t.gettext('Revisions could not be loaded. Please try again.'),\n );\n },\n });\n }\n\n apply(): void {\n const revisionNumber = this.selected();\n if (this.loading() || this.applying()) {\n return;\n }\n if (revisionNumber === null) {\n this.error.set(this.t.gettext('Select a revision to restore.'));\n return;\n }\n this.applying.set(true);\n this.error.set('');\n this.api\n .restoreContent(this.post.id, {\n revisionNumber,\n expectedVersion: this.post.version,\n })\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.applying.set(false)),\n )\n .subscribe({\n next: post => this.ref.close(post),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-revision-chooser] Unable to restore revision',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The revision could not be restored. If the post changed, close and reopen it to load its latest version.',\n ),\n );\n },\n });\n }\n\n cancel(): void {\n if (!this.applying()) {\n this.ref.close();\n }\n }\n}","<h2 mat-dialog-title>{{ t.gettext('Restore a revision') }}</h2>\n<mat-dialog-content>\n <p>\n {{\n t.gettext(\n 'Restoring replaces the post, including its status, with the selected revision.'\n )\n }}\n </p>\n @if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading revisions...') }}</p>\n } @else {\n <mat-radio-group\n [attr.aria-label]=\"t.gettext('Post revisions')\"\n [value]=\"selected()\"\n (change)=\"selected.set($event.value)\"\n [disabled]=\"applying()\">\n @for (revision of revisions(); track revision.id) {\n <mat-radio-button\n [value]=\"revision.revisionNumber\"\n [disabled]=\"!revision.snapshot\">\n <strong>{{\n t.gettext('Revision [[ revisionNumber ]]', {\n revisionNumber: revision.revisionNumber,\n })\n }}</strong>\n <span>{{ revision.createdAt | date: 'medium' }}</span>\n @if (\n revision.createdByUserId !== null &&\n revision.createdByUserId !== undefined\n ) {\n <span>{{\n t.gettext('User [[ userId ]]', {\n userId: revision.createdByUserId,\n })\n }}</span>\n }\n @if (!revision.snapshot) {\n <span>{{ t.gettext('Legacy revision - cannot be restored') }}</span>\n }\n </mat-radio-button>\n } @empty {\n <p>{{ t.gettext('No revisions are available.') }}</p>\n }\n </mat-radio-group>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"loading() || applying()\"\n (click)=\"load()\">\n {{ t.gettext('Reload revisions') }}\n </button>\n }\n @if (applying()) {\n <p role=\"status\">{{ t.gettext('Restoring...') }}</p>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"applying()\"\n (click)=\"cancel()\">\n {{ t.gettext('Cancel') }}\n </button>\n <button\n mat-flat-button\n type=\"button\"\n [disabled]=\"loading() || applying() || selected() === null\"\n (click)=\"apply()\">\n {{ t.gettext('Apply') }}\n </button>\n</mat-dialog-actions>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n\nconst t = Translation.for('src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts', {\"src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html\":{\"en-US\":async () => (await import('./i18n/taon-related-post-chooser.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-related-post-chooser.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-related-post-chooser.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonRelatedPostChooserData {\n postId?: number;\n excludedIds: number[];\n}\n\n@Component({\n selector: 'taon-related-post-chooser',\n templateUrl: './taon-related-post-chooser.component.html',\n styleUrls: ['./taon-related-post-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, MatDialogModule, MatRadioModule],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonRelatedPostChooserComponent {\n readonly t = t.for(this);\n\n readonly data = inject<TaonRelatedPostChooserData>(MAT_DIALOG_DATA);\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n readonly selected = signal<number | null>(null);\n readonly query = signal('');\n readonly loading = signal(false);\n readonly error = signal('');\n readonly filteredPosts = computed(() => {\n const query = this.query().trim().toLowerCase();\n return this.posts().filter(\n post =>\n post.id !== this.data.postId &&\n !this.data.excludedIds.includes(post.id) &&\n `${post.id} ${post.title} ${post.slug}`.toLowerCase().includes(query),\n );\n });\n\n private readonly api = inject(TaonCmsContentApiService);\n private readonly ref = inject(\n MatDialogRef<TaonRelatedPostChooserComponent, TaonCmsContentEntity>,\n );\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.load();\n }\n\n load(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.selected.set(null);\n this.error.set('');\n this.api.allMyEntities$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: posts => this.posts.set(posts),\n error: (error: unknown) => {\n console.error(\n '[taon-related-post-chooser] Unable to load posts',\n error,\n );\n this.error.set(\n this.t.gettext('Posts could not be loaded. Please try again.'),\n );\n },\n });\n }\n\n search(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.query.set(event.target.value);\n this.selected.set(null);\n }\n }\n\n choose(): void {\n if (this.loading() || this.error()) {\n return;\n }\n const post = this.filteredPosts().find(post => post.id === this.selected());\n if (!post) {\n this.error.set(this.t.gettext('Select a related post.'));\n return;\n }\n this.ref.close(post);\n }\n\n cancel(): void {\n this.ref.close();\n }\n}","<h2 mat-dialog-title>{{ t.gettext('Add related post') }}</h2>\n<mat-dialog-content>\n <label class=\"search-field\">\n <span>{{ t.gettext('Search posts') }}</span>\n <input\n type=\"search\"\n [attr.aria-label]=\"t.gettext('Search posts by ID, title or slug')\"\n [value]=\"query()\"\n [disabled]=\"loading()\"\n (input)=\"search($event)\" />\n </label>\n @if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading posts...') }}</p>\n } @else if (error()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ error() }}\n </p>\n <button\n mat-button\n type=\"button\"\n (click)=\"load()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <mat-radio-group\n [attr.aria-label]=\"t.gettext('Related post')\"\n [value]=\"selected()\"\n (change)=\"selected.set($event.value)\">\n @for (post of filteredPosts(); track post.id) {\n <mat-radio-button [value]=\"post.id\">\n #{{ post.id }} - {{ post.title }}\n <span class=\"slug\">{{ post.slug }}</span>\n </mat-radio-button>\n } @empty {\n <p>{{ t.gettext('No matching posts available.') }}</p>\n }\n </mat-radio-group>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button\n mat-button\n type=\"button\"\n (click)=\"cancel()\">\n {{ t.gettext('Cancel') }}\n </button>\n <button\n mat-flat-button\n type=\"button\"\n [disabled]=\"loading() || !!error() || selected() === null\"\n (click)=\"choose()\">\n {{ t.gettext('Add related post') }}\n </button>\n</mat-dialog-actions>\n","//#region imports\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n ViewChild,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonPermissionApiService } from '@taon-dev/session/websql-prod';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\nimport { TaonConfirmDialogComponent } from '@taon-dev/ui/websql-prod';\nimport { Editor, NgxEditorModule, toHTML } from 'ngx-editor';\nimport type { Toolbar } from 'ngx-editor';\nimport {\n Observable,\n Subscription,\n finalize,\n firstValueFrom,\n forkJoin,\n from,\n of,\n switchMap,\n take,\n} from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport type { TaonCmsApplicationHookEntity } from '../../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport type { TaonCmsApplicationHook } from '../../taon-cms-application-hooks';\nimport { TaonCmsCategoryApiService } from '../../taon-cms-category/taon-cms-category-api.service';\nimport type { TaonCmsCategoryEntity } from '../../taon-cms-category/taon-cms-category.entity';\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport { TaonCmsContentConfigService } from '../../taon-cms-content/taon-cms-content.config.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsUpdateContent } from '../../taon-cms-content/taon-cms-content.models';\nimport { TaonCmsContentType } from '../../taon-cms-content/taon-cms-content.models';\nimport { resolveTemplateVariables } from '../../taon-cms-content/taon-cms-template-variables';\nimport type { TaonCmsTemplateVariable } from '../../taon-cms-content/taon-cms-template-variables';\nimport { TaonCmsTagApiService } from '../../taon-cms-tag/taon-cms-tag-api.service';\nimport type { TaonCmsTagEntity } from '../../taon-cms-tag/taon-cms-tag.entity';\nimport { TaonCmsTaxonomyQuickCreateDialogComponent } from '../../taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component';\nimport { TaonCmsRevisionChooserComponent } from '../taon-cms-revision-chooser/taon-cms-revision-chooser.component';\nimport { TaonRelatedPostChooserComponent } from '../taon-related-post-chooser/taon-related-post-chooser.component';\nimport type { TaonRelatedPostChooserData } from '../taon-related-post-chooser/taon-related-post-chooser.component';\n\nimport { TaonCmsEditableDirective } from './taon-cms-editable.directive';\nimport type { TaonCmsPostDraft, TaonCmsPostMode } from './taon-cms-post.models';\nimport {\n defaultThumbnailKey,\n defaultThumbnailUrl,\n generateVideoThumbnail,\n} from './taon-cms-thumbnail';\nimport { NgTemplateOutlet } from '@angular/common';\n\n//#endregion\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts', {\"src/lib/taon-posts/taon-cms-post/taon-cms-post.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-post.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-post',\n templateUrl: './taon-cms-post.component.html',\n styleUrls: ['./taon-cms-post.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButtonModule,\n MatCheckboxModule,\n MatCardModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatTabsModule,\n NgxEditorModule,\n MatChipsModule,\n MatProgressBarModule,\n MatRadioModule,\n MatSelectModule,\n TaonCmsEditableDirective,\n NgTemplateOutlet,\n ],\n providers: [\n TaonCmsContentApiService,\n TaonCmsContentConfigService,\n TaonPermissionApiService,\n TaonCmsCategoryApiService,\n TaonCmsTagApiService,\n ],\n})\nexport class TaonCmsPostComponent implements AfterViewInit {\n readonly t = t.for(this);\n\n //#region fields and getters\n readonly post = input<TaonCmsContentEntity | null>(null);\n\n readonly mode = model<TaonCmsPostMode>('view');\n\n readonly changed = output<TaonCmsContentEntity>();\n\n readonly deleted = output<TaonCmsContentEntity>();\n\n readonly duplicated = output<TaonCmsContentEntity>();\n\n readonly cancelled = output<void>();\n\n readonly actionButtonsTemplate = output<TemplateRef<unknown>>();\n\n @ViewChild('actionButtonsTemplate')\n private readonly actionButtonsTemplateRef?: TemplateRef<unknown>;\n\n readonly currentPost = signal<TaonCmsContentEntity | null>(null);\n\n readonly placeholderShortIntro = this.t.signal.gettext(\n 'A short introduction...',\n );\n\n readonly placeholderTitle = this.t.signal.gettext('Title');\n\n readonly placeholderTellYourStory =\n this.t.signal.gettext('Tell your story...');\n\n readonly draft = signal<TaonCmsPostDraft>({\n type: TaonCmsContentType.Normal,\n title: '',\n slug: '',\n excerpt: '',\n body: '',\n videoKey: null,\n audioKey: null,\n attachmentKey: null,\n thumbnailKey: null,\n categoryId: null,\n tagIds: [],\n });\n\n readonly postTypes = [\n {\n value: TaonCmsContentType.Normal,\n label: this.t.gettext('Normal post'),\n },\n { value: TaonCmsContentType.Video, label: this.t.gettext('Video post') },\n { value: TaonCmsContentType.Audio, label: this.t.gettext('Audio post') },\n {\n value: TaonCmsContentType.Attachment,\n label: this.t.gettext('Attachment post'),\n },\n ];\n\n private readonly mediaAttachments = [\n {\n type: TaonCmsContentType.Video,\n key: 'videoKey',\n heading: this.t.gettext('Video Attachment'),\n uploadLabel: this.t.gettext('Upload video'),\n accept: 'video/*',\n },\n {\n type: TaonCmsContentType.Audio,\n key: 'audioKey',\n heading: this.t.gettext('Audio Attachment'),\n uploadLabel: this.t.gettext('Upload audio'),\n accept: 'audio/*',\n },\n {\n type: TaonCmsContentType.Attachment,\n key: 'attachmentKey',\n heading: this.t.gettext('File Attachment'),\n uploadLabel: this.t.gettext('Upload file'),\n accept: '',\n },\n ] as const;\n\n readonly mediaAttachment = computed(() =>\n this.mediaAttachments.find(media => media.type === this.draft().type),\n );\n\n readonly busy = signal(false);\n\n readonly thumbnailPreviewUrl = signal('');\n\n readonly thumbnailError = signal('');\n\n private readonly thumbnailReference = computed(\n () => this.draft().thumbnailKey,\n );\n\n private readonly thumbnailSlug = computed(() => this.draft().slug);\n\n readonly taxonomyLoading = signal(false);\n\n readonly taxonomyError = signal('');\n\n readonly categories = signal<TaonCmsCategoryEntity[]>([]);\n\n readonly tags = signal<TaonCmsTagEntity[]>([]);\n\n readonly tagSearch = signal('');\n\n readonly filteredTags = computed(() => {\n const query = this.tagSearch().trim().toLowerCase();\n return this.tags().filter(\n tag =>\n !this.draft().tagIds.includes(tag.id) &&\n `${tag.name} ${tag.slug}`.toLowerCase().includes(query),\n );\n });\n\n readonly selectedTags = computed(() =>\n this.tags().filter(tag => this.draft().tagIds.includes(tag.id)),\n );\n\n private readonly categoryApi = inject(TaonCmsCategoryApiService);\n\n private readonly tagApi = inject(TaonCmsTagApiService);\n\n private taxonomyLoad?: Subscription;\n\n private editorSession = 0;\n\n private thumbnailObjectUrl = '';\n\n private readonly stagedThumbnail = signal<{\n key: string | null;\n url: string;\n } | null>(null);\n\n readonly uploading = signal(false);\n\n readonly uploadProgress = signal(0);\n\n readonly mediaPreviewUrl = signal('');\n\n readonly mediaPreviewLoading = signal(false);\n\n readonly mediaPreviewError = signal('');\n\n private readonly mediaFileNames = signal<Record<string, string>>({});\n\n private readonly uploadedMediaPreview = signal<{\n key: string;\n url: string;\n fileName: string;\n } | null>(null);\n\n private mediaPreviewRequest = 0;\n\n private mediaPreviewSignature = '';\n\n private slugManuallySet = false;\n\n readonly dialogOpen = signal(false);\n\n readonly error = signal('');\n\n readonly relatedPosts = signal<TaonCmsContentEntity[]>([]);\n\n readonly relatedPostsLoading = signal(false);\n\n readonly relatedPostsError = signal('');\n\n readonly applicationHooks = signal<TaonCmsApplicationHookEntity[]>([]);\n\n readonly applicationHooksLoading = signal(false);\n\n readonly applicationHooksError = signal('');\n\n readonly useAsApplicationHook = signal(false);\n\n readonly selectedApplicationHook = signal<TaonCmsApplicationHook | null>(\n null,\n );\n\n readonly permissions = signal<TaonPermissionEntity[]>([]);\n\n readonly applyPermissionsToRelatedPosts = signal(false);\n\n readonly permissionSource = signal<{ id: number; title: string } | null>(\n null,\n );\n\n readonly permissionsLoading = signal(false);\n\n readonly permissionsError = signal('');\n\n readonly permissionOptions = signal<TaonPermissionEntity[]>([]);\n\n readonly permissionOptionsLoading = signal(false);\n\n readonly permissionOptionsError = signal('');\n\n readonly selectedPermissionId = signal<number | null>(null);\n\n readonly availablePermissions = computed(() => {\n const assignedIds = new Set(\n this.permissions().map(permission => permission.id),\n );\n return this.permissionOptions().filter(\n permission => !assignedIds.has(permission.id),\n );\n });\n\n readonly editing = computed(\n () => this.mode() === 'edit' || this.mode() === 'add',\n );\n\n readonly canSave = computed(\n () =>\n !!this.draft().title.trim() &&\n !!this.draft().slug.trim() &&\n !this.relatedPostsLoading() &&\n !this.relatedPostsError() &&\n !this.applicationHooksLoading() &&\n !this.applicationHooksError() &&\n (!this.useAsApplicationHook() || !!this.selectedApplicationHook()) &&\n !this.permissionsLoading() &&\n !this.permissionsError() &&\n !this.taxonomyLoading() &&\n !this.taxonomyError(),\n );\n\n readonly canPublish = computed(() => {\n const post = this.currentPost();\n return !!post && post.status !== 'published';\n });\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly contentConfig = inject(TaonCmsContentConfigService);\n\n readonly contentTab = signal(0);\n\n readonly contentEditor = signal<Editor | null>(null);\n\n readonly rawContent =\n viewChild<ElementRef<HTMLTextAreaElement>>('rawContent');\n\n private loadingEditorContent = false;\n\n readonly contentToolbar: Toolbar = [\n [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],\n ['bold', 'italic', 'underline', 'strike'],\n ['ordered_list', 'bullet_list'],\n ['blockquote', 'code'],\n ['link', 'image'],\n ['text_color', 'background_color'],\n ['align_left', 'align_center', 'align_right', 'align_justify'],\n ['horizontal_rule', 'format_clear'],\n ['undo', 'redo'],\n ];\n\n readonly resolvedBody = computed(() => {\n const draft = this.draft();\n return resolveTemplateVariables(draft.body, {\n frontendUrl: this.api.frontendUrl,\n site: { name: this.contentConfig.siteName },\n post: {\n title: draft.title,\n url: draft.slug ? this.api.getPostUrl(draft.slug) : null,\n id: this.currentPost()?.id,\n thumbnailUrl: this.thumbnailPreviewUrl() || null,\n },\n });\n });\n\n private readonly permissionApi = inject(TaonPermissionApiService);\n\n private readonly dialog = inject(MatDialog);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private relatedPostsLoad?: Subscription;\n\n private applicationHooksLoad?: Subscription;\n\n private permissionsLoad?: Subscription;\n //#endregion\n\n ngAfterViewInit(): void {\n if (this.actionButtonsTemplateRef) {\n this.actionButtonsTemplate.emit(this.actionButtonsTemplateRef);\n }\n }\n\n //#region constructor\n constructor() {\n const editor = new Editor({\n attributes: {\n 'aria-label': this.t.gettext('Post body'),\n style: 'min-height: 20rem',\n },\n });\n\n this.contentEditor.set(editor);\n\n const editorChanges = editor.valueChanges.subscribe(document => {\n if (!this.editing() || this.loadingEditorContent) {\n return;\n }\n\n this.updateDraft('body', toHTML(document, editor.schema));\n });\n\n // React to post input changes.\n effect(() => {\n const post = this.post();\n\n untracked(() => {\n this.setPost(post);\n\n // Synchronize editor only because the POST changed externally.\n this.loadingEditorContent = true;\n\n try {\n editor.setContent(this.draft().body);\n } finally {\n this.loadingEditorContent = false;\n }\n });\n });\n\n // Enable/disable editor without recreating it.\n effect(() => {\n const disabled = this.busy() || this.dialogOpen() || !this.editing();\n\n editor.view.setProps({\n editable: () => !disabled,\n });\n });\n\n // Load edit-mode dependencies.\n effect(() => {\n if (this.editing()) {\n untracked(() => {\n this.loadApplicationHooks();\n this.loadPermissionOptions();\n this.loadTaxonomy();\n });\n }\n });\n\n // Thumbnail preview handling.\n effect(onCleanup => {\n const key = this.thumbnailReference();\n const editing = this.editing();\n const slug = editing ? '' : this.thumbnailSlug();\n const staged = this.stagedThumbnail();\n\n let active = true;\n\n onCleanup(() => {\n active = false;\n });\n\n this.thumbnailError.set('');\n this.thumbnailPreviewUrl.set('');\n\n if (staged && staged.key === key) {\n this.thumbnailPreviewUrl.set(staged.url);\n return;\n }\n\n if (!key) {\n return;\n }\n\n const placeholder = defaultThumbnailUrl(key);\n\n if (placeholder) {\n this.thumbnailPreviewUrl.set(placeholder);\n return;\n }\n\n if (!editing && !slug) {\n return;\n }\n\n const load = async () => {\n if (editing) {\n return this.api.getAssetUrl(key);\n }\n\n try {\n return await this.api.getThumbnailLinkBySlug(slug, true);\n } catch {\n return this.api.getThumbnailLinkBySlug(slug);\n }\n };\n\n void load()\n .then(url => {\n if (active && !this.destroyRef.destroyed) {\n this.thumbnailPreviewUrl.set(url);\n }\n })\n .catch((error: unknown) => {\n console.error('[taon-cms-post] Unable to load thumbnail', error);\n\n if (active && !this.destroyRef.destroyed) {\n this.thumbnailError.set(\n this.t.gettext('The thumbnail could not be loaded.'),\n );\n }\n });\n });\n\n // Media preview handling.\n effect(() => {\n const media = this.mediaAttachment();\n const key = media ? this.draft()[media.key] : null;\n\n const slug = this.draft().slug;\n const editing = this.editing();\n\n const viewing = !!this.currentPost() && this.mode() !== 'add';\n\n const stagedPreview = this.uploadedMediaPreview();\n\n if ((!editing && !viewing) || !media || !key) {\n this.mediaPreviewSignature = '';\n this.mediaPreviewRequest += 1;\n this.mediaPreviewUrl.set('');\n this.mediaPreviewLoading.set(false);\n this.mediaPreviewError.set('');\n return;\n }\n\n if (stagedPreview?.key === key) {\n const signature = `upload:${key}:${stagedPreview.url}`;\n\n if (signature === this.mediaPreviewSignature) {\n return;\n }\n\n this.mediaPreviewSignature = signature;\n this.mediaPreviewRequest += 1;\n\n this.mediaPreviewUrl.set(stagedPreview.url);\n\n this.mediaPreviewLoading.set(false);\n this.mediaPreviewError.set('');\n\n return;\n }\n\n if (!slug) {\n this.mediaPreviewSignature = '';\n this.mediaPreviewRequest += 1;\n this.mediaPreviewUrl.set('');\n this.mediaPreviewLoading.set(false);\n this.mediaPreviewError.set('');\n return;\n }\n\n const signature = `${this.mode()}:${media.type}:${slug}:${key}`;\n\n if (signature === this.mediaPreviewSignature) {\n return;\n }\n\n this.mediaPreviewSignature = signature;\n\n const requestId = ++this.mediaPreviewRequest;\n\n this.mediaPreviewUrl.set('');\n this.mediaPreviewLoading.set(true);\n this.mediaPreviewError.set('');\n\n const getLink = editing\n ? this.getMediaLink(slug, media.type)\n : this.getMediaLinkForView(slug, media.type);\n\n void getLink\n .then(url => {\n if (\n requestId === this.mediaPreviewRequest &&\n !this.destroyRef.destroyed\n ) {\n this.mediaPreviewUrl.set(url);\n }\n })\n .catch((error: unknown) => {\n console.error('[taon-cms-post] Unable to load media preview', error);\n\n if (\n requestId === this.mediaPreviewRequest &&\n !this.destroyRef.destroyed\n ) {\n this.mediaPreviewError.set(\n this.t.gettext(\n 'Media preview could not be loaded. Please reopen the editor to try again.',\n ),\n );\n }\n })\n .finally(() => {\n if (\n requestId === this.mediaPreviewRequest &&\n !this.destroyRef.destroyed\n ) {\n this.mediaPreviewLoading.set(false);\n }\n });\n });\n\n // Destroy ngx-editor ONLY when this component is actually destroyed.\n this.destroyRef.onDestroy(() => {\n editorChanges.unsubscribe();\n editor.destroy();\n\n if (this.contentEditor() === editor) {\n this.contentEditor.set(null);\n }\n\n this.releaseThumbnailPreview();\n });\n }\n //#endregion\n\n //#region methods / load related posts\n loadTaxonomy(preserveSelectedTags = false): void {\n this.taxonomyLoad?.unsubscribe();\n const session = this.editorSession;\n const postId = this.currentPost()?.id;\n this.taxonomyLoading.set(true);\n this.taxonomyError.set('');\n this.taxonomyLoad = forkJoin({\n categories: this.categoryApi.allMyEntities$,\n tags: this.tagApi.allMyEntities$,\n tagIds: postId ? this.api.listTagIds(postId) : of([] as number[]),\n })\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.taxonomyLoading.set(false)),\n )\n .subscribe({\n next: result => {\n if (session === this.editorSession) {\n this.categories.set(\n result.categories.sort(\n (a, b) =>\n a.sortOrder - b.sortOrder || a.name.localeCompare(b.name),\n ),\n );\n this.tags.set(result.tags);\n if (!preserveSelectedTags) {\n this.updateDraft('tagIds', result.tagIds);\n }\n }\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load categories and tags',\n error,\n );\n this.taxonomyError.set(\n this.t.gettext(\n 'Categories and tags could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n\n addTag(id: number): void {\n if (!this.draft().tagIds.includes(id)) {\n this.updateDraft('tagIds', [...this.draft().tagIds, id]);\n }\n }\n\n removeTag(id: number): void {\n this.updateDraft(\n 'tagIds',\n this.draft().tagIds.filter(selected => selected !== id),\n );\n }\n\n filterTags(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.tagSearch.set(event.target.value);\n }\n }\n\n createTaxonomy(taxonomy: 'category' | 'tag'): void {\n if (this.busy() || this.dialogOpen()) {\n return;\n }\n\n this.dialogOpen.set(true);\n this.taxonomyError.set('');\n const ref = this.dialog.open<\n TaonCmsTaxonomyQuickCreateDialogComponent,\n { taxonomy: 'category' | 'tag' },\n {\n name: string;\n slug: string;\n description: string | null;\n parentCategoryId: number | null;\n sortOrder: number;\n }\n >(TaonCmsTaxonomyQuickCreateDialogComponent, {\n data: { taxonomy },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(fields => {\n if (!fields) {\n this.dialogOpen.set(false);\n return;\n }\n\n const request =\n taxonomy === 'category'\n ? this.categoryApi.save(null, fields)\n : this.tagApi.save(null, fields);\n request\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.dialogOpen.set(false)),\n )\n .subscribe({\n next: saved => {\n if (taxonomy === 'category') {\n this.updateDraft('categoryId', saved.id);\n } else {\n this.addTag(saved.id);\n }\n this.loadTaxonomy(true);\n },\n error: (error: unknown) => {\n console.error(\n `[taon-cms-post] Unable to create ${taxonomy}`,\n error,\n );\n this.taxonomyError.set(\n taxonomy === 'category'\n ? this.t.gettext(\n 'The category could not be created. Please try again.',\n )\n : this.t.gettext(\n 'The tag could not be created. Please try again.',\n ),\n );\n },\n });\n });\n }\n\n applyDefaultThumbnail(): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n this.releaseThumbnailPreview();\n this.stagedThumbnail.set(null);\n this.updateDraft('thumbnailKey', defaultThumbnailKey(this.draft().type));\n }\n\n async thumbnailSelected(event: Event): Promise<void> {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n const input = event.target;\n const file = input.files?.[0];\n input.value = '';\n if (!file || !this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n if (!file.type.startsWith('image/')) {\n this.error.set(\n this.t.gettext('Please select an image for the thumbnail.'),\n );\n return;\n }\n this.busy.set(true);\n this.error.set('');\n try {\n await this.storeThumbnail(file, this.editorSession);\n } catch (error: unknown) {\n console.error('[taon-cms-post] Unable to upload thumbnail', error);\n this.error.set(\n this.t.gettext(\n 'The thumbnail could not be uploaded. Please try again.',\n ),\n );\n } finally {\n this.busy.set(false);\n }\n }\n\n private async storeThumbnail(file: File, session: number): Promise<void> {\n if (session !== this.editorSession || this.destroyRef.destroyed) {\n return;\n }\n const previousPreview = this.thumbnailPreviewUrl();\n const previousStaged = this.stagedThumbnail();\n const preview = URL.createObjectURL(file);\n this.stagedThumbnail.set({ key: this.draft().thumbnailKey, url: preview });\n this.thumbnailPreviewUrl.set(preview);\n try {\n const object = await this.api.uploadMedia(file);\n if (session === this.editorSession && !this.destroyRef.destroyed) {\n this.releaseThumbnailPreview();\n this.thumbnailObjectUrl = preview;\n this.stagedThumbnail.set({ key: object.key, url: preview });\n this.updateDraft('thumbnailKey', object.key);\n }\n } catch (error: unknown) {\n if (session === this.editorSession) {\n this.stagedThumbnail.set(previousStaged);\n this.thumbnailPreviewUrl.set(previousPreview);\n }\n throw error;\n } finally {\n if (this.thumbnailObjectUrl !== preview) {\n URL.revokeObjectURL(preview);\n }\n }\n }\n\n private releaseThumbnailPreview(): void {\n if (this.thumbnailObjectUrl) {\n URL.revokeObjectURL(this.thumbnailObjectUrl);\n this.thumbnailObjectUrl = '';\n }\n }\n\n loadRelatedPosts(): void {\n if (this.busy() || this.relatedPostsLoading()) {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.relatedPostsLoading.set(true);\n this.relatedPostsError.set('');\n this.relatedPostsLoad = this.api\n .listRelatedPosts(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.relatedPostsLoading.set(false)),\n )\n .subscribe({\n next: posts => this.relatedPosts.set(posts),\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to load related posts', error);\n this.relatedPostsError.set(\n this.t.gettext(\n 'Related posts could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n //#endregion\n\n //#region methods / add related post\n addRelatedPost(): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading() ||\n this.relatedPostsError()\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonRelatedPostChooserComponent,\n TaonRelatedPostChooserData,\n TaonCmsContentEntity\n >(TaonRelatedPostChooserComponent, {\n data: {\n postId: this.currentPost()?.id,\n excludedIds: this.relatedPosts().map(post => post.id),\n },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(post => {\n this.dialogOpen.set(false);\n if (\n post &&\n post.id !== this.currentPost()?.id &&\n !this.relatedPosts().some(related => related.id === post.id)\n ) {\n this.relatedPosts.update(posts => [...posts, post]);\n }\n });\n }\n //#endregion\n\n //#region methods / add as child of\n addAsChildOf(): void {\n const post = this.currentPost();\n if (\n !this.editing() ||\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading()\n ) {\n return;\n }\n\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonRelatedPostChooserComponent,\n TaonRelatedPostChooserData,\n TaonCmsContentEntity\n >(TaonRelatedPostChooserComponent, {\n data: { postId: post.id, excludedIds: [] },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(parent => {\n this.dialogOpen.set(false);\n if (!parent || !this.currentPost()) {\n return;\n }\n\n this.busy.set(true);\n this.error.set('');\n this.api\n .addRelatedPost(parent.id, post.id, parent.version)\n .pipe(\n switchMap(() => from(this.api.getById(post.id))),\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: refreshedPost => {\n this.currentPost.set(refreshedPost);\n this.permissionsLoad?.unsubscribe();\n this.permissionsLoading.set(false);\n this.loadPermissions();\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to make post a child',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The parent post could not be changed. Please try again.',\n ),\n );\n },\n });\n });\n }\n //#endregion\n\n //#region methods / remove related post\n removeRelatedPost(id: number): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading() ||\n this.relatedPostsError()\n ) {\n return;\n }\n this.relatedPosts.update(posts => posts.filter(post => post.id !== id));\n }\n //#endregion\n\n //#region methods / application hooks\n loadApplicationHooks(): void {\n if (this.applicationHooksLoading()) {\n return;\n }\n this.applicationHooksLoading.set(true);\n this.applicationHooksError.set('');\n this.applicationHooksLoad = this.api\n .listApplicationHooks()\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.applicationHooksLoading.set(false)),\n )\n .subscribe({\n next: hooks => {\n this.applicationHooks.set(hooks);\n this.setApplicationHookSelection(this.currentPost(), hooks);\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load application hooks',\n error,\n );\n this.applicationHooksError.set(\n this.t.gettext(\n 'Application hooks could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n\n setUseAsApplicationHook(enabled: boolean): void {\n this.useAsApplicationHook.set(enabled);\n }\n\n applicationHookInUseByAnotherPost(\n applicationHook: TaonCmsApplicationHookEntity,\n ): boolean {\n return (\n applicationHook.contentId !== null &&\n applicationHook.contentId !== this.currentPost()?.id\n );\n }\n\n applicationHookLabel(hook: TaonCmsApplicationHook): string {\n return hook.split('-').join('_').toUpperCase();\n }\n //#endregion\n\n //#region methods / load permissions\n loadPermissions(): void {\n if (this.permissionsLoading()) {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.permissionsLoading.set(true);\n this.permissionsError.set('');\n this.permissionsLoad = this.api\n .getPermissionConfiguration(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.permissionsLoading.set(false)),\n )\n .subscribe({\n next: configuration => {\n this.permissions.set(configuration.permissions);\n this.permissionSource.set(configuration.source);\n },\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to load permissions', error);\n this.permissionsError.set(\n this.t.gettext(\n 'Permissions could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n //#endregion\n\n //#region methods / add permission\n addPermission(): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.permissionSource() ||\n this.permissionsLoading() ||\n this.permissionsError()\n ) {\n return;\n }\n const permissionId = this.selectedPermissionId();\n const permission = this.availablePermissions().find(\n item => item.id === permissionId,\n );\n if (permission) {\n this.permissions.update(permissions => [...permissions, permission]);\n this.selectedPermissionId.set(null);\n }\n }\n //#endregion\n\n //#region methods / remove permission\n removePermission(id: number): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.permissionSource() ||\n this.permissionsLoading() ||\n this.permissionsError()\n ) {\n return;\n }\n this.permissions.update(items =>\n items.filter(permission => permission.id !== id),\n );\n }\n //#endregion\n\n //#region methods / load permission options\n loadPermissionOptions(): void {\n if (\n this.permissionOptionsLoading() ||\n this.permissionOptions().length > 0\n ) {\n return;\n }\n this.permissionOptionsLoading.set(true);\n this.permissionOptionsError.set('');\n this.permissionApi.allMyEntities$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.permissionOptionsLoading.set(false)),\n )\n .subscribe({\n next: permissions => this.permissionOptions.set(permissions),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load permission options',\n error,\n );\n this.permissionOptionsError.set(\n this.t.gettext(\n 'Available permissions could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n //#endregion\n\n //#region methods / update draft\n updateRawContent(event: Event): void {\n if (event.target instanceof HTMLTextAreaElement) {\n this.updateDraft('body', event.target.value);\n }\n }\n\n insertVariable(variable: TaonCmsTemplateVariable): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n const text = `{{${variable}}}`;\n if (this.contentTab() === 1) {\n const textarea = this.rawContent()?.nativeElement;\n if (textarea) {\n textarea.setRangeText(\n text,\n textarea.selectionStart,\n textarea.selectionEnd,\n 'end',\n );\n this.updateDraft('body', textarea.value);\n textarea.focus();\n }\n } else if (this.contentTab() === 0) {\n const editor = this.contentEditor();\n editor?.commands.insertText(text).exec();\n editor?.view.focus();\n }\n }\n\n updateDraft<K extends keyof TaonCmsPostDraft>(\n field: K,\n value: TaonCmsPostDraft[K],\n ): void {\n if (\n field === 'title' &&\n this.mode() === 'add' &&\n !this.slugManuallySet &&\n !this.draft().slug\n ) {\n const title = String(value);\n this.draft.update(draft => ({\n ...draft,\n title,\n slug: ___NS__kebabCase(title),\n }));\n return;\n }\n this.draft.update(draft => ({ ...draft, [field]: value }));\n }\n //#endregion\n\n //#region methods / file selected\n async fileSelected(event: Event): Promise<void> {\n if (!(event.target instanceof HTMLInputElement)) {\n this.error.set(this.t.gettext('Unable to read the selected media file.'));\n return;\n }\n const input = event.target;\n const file = input.files?.[0];\n if (!file) {\n return;\n }\n const media = this.mediaAttachment();\n if (!media || !this.editing() || this.busy() || this.dialogOpen()) {\n input.value = '';\n return;\n }\n const session = this.editorSession;\n this.busy.set(true);\n this.uploading.set(true);\n this.uploadProgress.set(0);\n this.error.set('');\n try {\n const object = await this.api.uploadMedia(file, percentage => {\n if (!this.destroyRef.destroyed) {\n this.uploadProgress.set(percentage);\n }\n });\n if (!this.destroyRef.destroyed && this.editorSession === session) {\n const fileName = object.fileName || file.name;\n this.mediaFileNames.update(names => ({\n ...names,\n [object.key]: fileName,\n }));\n if (object.downloadUrl) {\n this.uploadedMediaPreview.set({\n key: object.key,\n url: this.uploadedMediaUrl(object.downloadUrl, media.type),\n fileName,\n });\n }\n this.updateDraft(media.key, object.key);\n if (media.type === TaonCmsContentType.Video) {\n try {\n const blob = await generateVideoThumbnail(file);\n const extension = blob.type === 'image/webp' ? 'webp' : 'png';\n await this.storeThumbnail(\n new File([blob], `thumbnail.${extension}`, { type: blob.type }),\n session,\n );\n } catch (error: unknown) {\n console.error(\n '[taon-cms-post] Unable to generate thumbnail',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The video was uploaded, but its thumbnail could not be generated. Upload a thumbnail or apply a default placeholder.',\n ),\n );\n }\n }\n }\n } catch (error: unknown) {\n console.error('[taon-cms-post] Unable to upload media', error);\n this.error.set(\n this.t.gettext('The media could not be uploaded. Please try again.'),\n );\n } finally {\n this.busy.set(false);\n this.uploading.set(false);\n this.uploadProgress.set(0);\n input.value = '';\n }\n }\n //#endregion\n\n //#region methods / remove media\n removeMedia(): void {\n const media = this.mediaAttachment();\n if (!media || !this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n this.uploadedMediaPreview.set(null);\n this.updateDraft(media.key, null);\n }\n //#endregion\n\n //#region methods / uploaded media URL\n private uploadedMediaUrl(url: string, type: TaonCmsContentType): string {\n if (type !== TaonCmsContentType.Attachment) {\n return url;\n }\n const parsedUrl = new URL(url);\n parsedUrl.searchParams.set('download', 'true');\n return parsedUrl.href;\n }\n //#endregion\n\n //#region methods / get media link\n private getMediaLink(\n slug: string,\n type: TaonCmsContentType,\n ): Promise<string> {\n switch (type) {\n case TaonCmsContentType.Video:\n return firstValueFrom(this.api.getVideoLinkBySlug(slug));\n case TaonCmsContentType.Audio:\n return firstValueFrom(this.api.getAudioLinkBySlug(slug));\n case TaonCmsContentType.Attachment:\n return this.api.getAttachmentLinkBySlug(slug);\n default:\n return Promise.reject(new Error('This post type has no media.'));\n }\n }\n //#endregion\n\n //#region methods / get media link for viewing\n private async getMediaLinkForView(\n slug: string,\n type: TaonCmsContentType,\n ): Promise<string> {\n try {\n switch (type) {\n case TaonCmsContentType.Video:\n return await this.api.getPublicVideoLinkBySlug(slug);\n case TaonCmsContentType.Audio:\n return await this.api.getPublicAudioLinkBySlug(slug);\n case TaonCmsContentType.Attachment:\n return await this.api.getPublicAttachmentLinkBySlug(slug);\n default:\n throw new Error('This post type has no media.');\n }\n } catch {\n return this.getMediaLink(slug, type);\n }\n }\n //#endregion\n\n //#region methods / media file name\n mediaFileName(key: string): string {\n const fileName = this.mediaFileNames()[key];\n if (fileName) {\n return fileName;\n }\n const uploaded = this.uploadedMediaPreview();\n if (uploaded?.key === key) {\n return uploaded.fileName;\n }\n const storedName = key.split('/').pop() || key;\n return storedName.replace(/^[0-9a-f-]{36}__/i, '');\n }\n //#endregion\n\n //#region methods / update slug\n updateSlug(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.slugManuallySet = true;\n this.updateDraft('slug', event.target.value);\n }\n }\n //#endregion\n\n //#region methods / edit\n edit(): void {\n if (this.mode() !== 'view' || this.busy() || this.dialogOpen()) {\n return;\n }\n if (!this.requirePost()) {\n return;\n }\n this.error.set('');\n this.mode.set('edit');\n }\n //#endregion\n\n //#region methods / cancel\n cancel(): void {\n if (this.busy() || this.dialogOpen()) {\n return;\n }\n this.setPost(this.currentPost());\n this.error.set('');\n if (this.editing()) {\n this.mode.set('view');\n }\n this.cancelled.emit();\n }\n //#endregion\n\n //#region methods / save\n save(): void {\n if (this.busy() || this.dialogOpen() || !this.editing()) {\n return;\n }\n if (!this.canSave()) {\n this.error.set(this.t.gettext('A title and slug are required.'));\n return;\n }\n if (this.mode() === 'add') {\n this.persist(\n this.api.createContent({\n ...this.draft(),\n relatedPostIds: this.relatedPosts().map(post => post.id),\n permissionIds: this.permissions().map(permission => permission.id),\n applyPermissionsToRelatedPosts: this.applyPermissionsToRelatedPosts(),\n applicationHook: this.useAsApplicationHook()\n ? this.selectedApplicationHook()\n : null,\n }),\n );\n } else {\n const post = this.requirePost();\n if (post) {\n this.persist(this.api.updateContent(post.id, this.updateInput(post)));\n }\n }\n }\n //#endregion\n\n //#region methods / publish\n publish(): void {\n if (\n this.busy() ||\n this.dialogOpen() ||\n !this.canPublish() ||\n this.mode() === 'view-clean' ||\n this.mode() === 'add'\n ) {\n return;\n }\n if (this.editing() && !this.canSave()) {\n this.error.set(this.t.gettext('A title and slug are required.'));\n return;\n }\n const post = this.requirePost();\n if (post) {\n this.persist(\n this.api.updateContent(post.id, {\n ...(this.editing()\n ? this.updateInput(post)\n : { expectedVersion: post.version }),\n status: 'published',\n publishedAt: new Date(),\n }),\n );\n }\n }\n //#endregion\n\n //#region methods / unpublish\n unpublish(): void {\n const post = this.currentPost();\n if (\n !post ||\n post.status !== 'published' ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean' ||\n this.mode() === 'add'\n ) {\n return;\n }\n this.persist(\n this.api.updateContent(post.id, {\n expectedVersion: post.version,\n status: 'draft',\n }),\n );\n }\n //#endregion\n\n //#region methods / revert\n revert(): void {\n const post = this.requirePost();\n if (\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean'\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonCmsRevisionChooserComponent,\n TaonCmsContentEntity,\n TaonCmsContentEntity\n >(TaonCmsRevisionChooserComponent, {\n data: post,\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(restored => {\n this.dialogOpen.set(false);\n if (restored) {\n this.acceptPost(restored);\n }\n });\n }\n //#endregion\n\n //#region methods / delete\n delete(): void {\n const post = this.requirePost();\n if (\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean'\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: this.t.gettext('Delete post?'),\n message: this.t.gettext(\n 'This archives the post. It can be restored from its revisions.',\n ),\n confirmText: this.t.gettext('Delete'),\n },\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n this.dialogOpen.set(false);\n if (confirmed) {\n this.persist(this.api.deleteContent(post.id, post.version), true);\n }\n });\n }\n //#endregion\n\n //#region methods / duplicate\n duplicate(): void {\n if (this.busy() || this.dialogOpen() || this.mode() === 'view-clean') {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n this.api\n .duplicateContent(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: duplicate => this.duplicated.emit(duplicate),\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to duplicate post', error);\n this.error.set(\n this.t.gettext(\n 'The post could not be duplicated. Please try again.',\n ),\n );\n },\n });\n }\n //#endregion\n\n //#region methods / update input\n private updateInput(post: TaonCmsContentEntity): TaonCmsUpdateContent {\n return {\n ...this.draft(),\n relatedPostIds: this.relatedPosts().map(related => related.id),\n ...(this.permissionSource()\n ? {}\n : {\n permissionIds: this.permissions().map(permission => permission.id),\n }),\n applyPermissionsToRelatedPosts: this.applyPermissionsToRelatedPosts(),\n applicationHook: this.useAsApplicationHook()\n ? this.selectedApplicationHook()\n : null,\n expectedVersion: post.version,\n };\n }\n //#endregion\n\n //#region methods / require post\n private requirePost(): TaonCmsContentEntity | null {\n const post = this.currentPost();\n if (!post) {\n this.error.set(this.t.gettext('No post is loaded.'));\n }\n return post;\n }\n //#endregion\n\n //#region methods / set post\n private setPost(post: TaonCmsContentEntity | null): void {\n this.editorSession += 1;\n this.taxonomyLoad?.unsubscribe();\n this.taxonomyLoading.set(false);\n this.taxonomyError.set('');\n this.releaseThumbnailPreview();\n this.stagedThumbnail.set(null);\n this.tagSearch.set('');\n this.relatedPostsLoad?.unsubscribe();\n this.applicationHooksLoad?.unsubscribe();\n this.permissionsLoad?.unsubscribe();\n this.relatedPostsLoading.set(false);\n this.relatedPostsError.set('');\n this.applicationHooksLoading.set(false);\n this.applicationHooksError.set('');\n this.permissionsLoading.set(false);\n this.permissionsError.set('');\n this.uploadedMediaPreview.set(null);\n this.mediaPreviewSignature = '';\n this.mediaPreviewRequest += 1;\n this.currentPost.set(post);\n this.slugManuallySet = Boolean(post);\n this.relatedPosts.set(post?.relatedPosts ?? []);\n this.permissions.set(post?.permissions ?? []);\n this.permissionSource.set(null);\n this.applyPermissionsToRelatedPosts.set(\n post?.applyPermissionsToRelatedPosts ?? false,\n );\n this.selectedPermissionId.set(null);\n this.setApplicationHookSelection(post, this.applicationHooks());\n this.draft.set({\n type: post?.type ?? TaonCmsContentType.Normal,\n title: post?.title ?? '',\n slug: post?.slug ?? '',\n excerpt: post?.excerpt ?? '',\n body: post?.body ?? '',\n videoKey: post?.videoKey ?? null,\n audioKey: post?.audioKey ?? null,\n attachmentKey: post?.attachmentKey ?? null,\n thumbnailKey: post?.thumbnailKey ?? null,\n categoryId: post?.categoryId ?? null,\n tagIds: [],\n });\n if (\n post &&\n post.relatedPosts === undefined &&\n this.mode() !== 'view-clean'\n ) {\n this.loadRelatedPosts();\n }\n if (post && this.mode() !== 'view-clean') {\n this.loadPermissions();\n }\n if (this.editing()) {\n this.loadTaxonomy();\n }\n }\n //#endregion\n\n private setApplicationHookSelection(\n post: TaonCmsContentEntity | null,\n hooks: TaonCmsApplicationHookEntity[],\n ): void {\n const assignedHook =\n post?.applicationHook !== undefined\n ? post.applicationHook?.hook\n : hooks.find(applicationHook => applicationHook.contentId === post?.id)\n ?.hook;\n this.useAsApplicationHook.set(!!assignedHook);\n this.selectedApplicationHook.set(assignedHook ?? null);\n }\n\n //#region methods / accept post\n private acceptPost(post: TaonCmsContentEntity): void {\n this.setPost(post);\n this.error.set('');\n this.mode.set('view');\n this.changed.emit(post);\n }\n //#endregion\n\n //#region methods / persist\n private persist(\n request: Observable<TaonCmsContentEntity>,\n deleting = false,\n ): void {\n if (this.busy() || this.dialogOpen() || this.mode() === 'view-clean') {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n request\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: post => {\n this.acceptPost(post);\n if (deleting) {\n this.deleted.emit(post);\n }\n },\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to save post', error);\n this.error.set(\n this.t.gettext(\n 'The post could not be saved. Check the slug and your connection. If another user changed it, close and reopen the post before retrying.',\n ),\n );\n },\n });\n }\n //#endregion\n}","@if (mode() !== 'view-clean') {\n <ng-template #actionButtonsTemplate>\n <div class=\"buttons\">\n @if (editing()) {\n <button\n mat-flat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || !canSave()\"\n (click)=\"save()\">\n {{ mode() === 'add' ? t.gettext('Add') : t.gettext('Save') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"cancel()\">\n {{ t.gettext('Cancel') }}\n </button>\n } @else if (currentPost()) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"edit()\">\n <mat-icon>edit</mat-icon> {{ t.gettext('Edit') }}\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button\n mat-flat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\"\n (click)=\"publish()\">\n {{ t.gettext('Publish') }}\n </button>\n } @else {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"unpublish()\">\n {{ t.gettext('Unpublish') }}\n </button>\n }\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"revert()\">\n <mat-icon>history</mat-icon> {{ t.gettext('Revert') }}\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"delete()\">\n <mat-icon>delete</mat-icon> {{ t.gettext('Delete') }}\n </button>\n }\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"duplicate()\">\n <mat-icon>content_copy</mat-icon> {{ t.gettext('Duplicate') }}\n </button>\n }\n </div>\n </ng-template>\n <header class=\"post-actions\">\n <span class=\"post-status\">{{\n mode() === 'add' ? t.gettext('New draft') : currentPost()?.status\n }}</span>\n <ng-container [ngTemplateOutlet]=\"actionButtonsTemplate\" />\n @if (busy()) {\n <span role=\"status\">{{\n uploading()\n ? t.gettext('Uploading... ') + uploadProgress() + '%'\n : t.gettext('Saving...')\n }}</span>\n }\n </header>\n @if (error()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ error() }}\n </p>\n }\n}\n\n<article\n class=\"post-article\"\n [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-tab-group animationDuration=\"0ms\">\n <mat-tab [label]=\"t.gettext('CONTENT')\">\n <mat-radio-group\n class=\"post-type-selector\"\n [attr.aria-label]=\"t.gettext('Post type')\"\n [value]=\"draft().type\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"updateDraft('type', $event.value)\">\n @for (type of postTypes; track type.value) {\n <mat-radio-button [value]=\"type.value\">{{\n type.label\n }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n [attr.aria-label]=\"t.gettext('Post title')\"\n aria-required=\"true\"\n [attr.data-placeholder]=\"placeholderTitle()\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditableSingleLine]=\"true\"\n [taonCmsEditable]=\"draft().title\"\n (taonCmsEditableChange)=\"updateDraft('title', $event)\"></div>\n <div\n class=\"post-excerpt editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n [attr.aria-label]=\"t.gettext('Post excerpt')\"\n aria-multiline=\"true\"\n [attr.data-placeholder]=\"placeholderShortIntro()\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <section class=\"post-content-editor\">\n <mat-tab-group\n [selectedIndex]=\"contentTab()\"\n (selectedIndexChange)=\"contentTab.set($event)\"\n [preserveContent]=\"true\"\n animationDuration=\"0ms\">\n <mat-tab [label]=\"t.gettext('Editor')\">\n @if (contentEditor(); as editor) {\n <ngx-editor-menu\n [editor]=\"editor\"\n [toolbar]=\"contentToolbar\"\n [disabled]=\"busy() || dialogOpen()\" />\n <ngx-editor\n [editor]=\"editor\"\n [placeholder]=\"placeholderTellYourStory()\" />\n }\n </mat-tab>\n <mat-tab [label]=\"t.gettext('Raw')\">\n <textarea\n #rawContent\n class=\"raw-content\"\n [attr.aria-label]=\"t.gettext('Post body HTML')\"\n [value]=\"draft().body\"\n [disabled]=\"busy() || dialogOpen()\"\n (input)=\"updateRawContent($event)\"\n spellcheck=\"false\"></textarea>\n </mat-tab>\n <mat-tab [label]=\"t.gettext('Preview')\">\n <div\n class=\"post-body content-preview\"\n [innerHTML]=\"resolvedBody()\"></div>\n </mat-tab>\n </mat-tab-group>\n @if (contentTab() !== 2) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || !contentEditor()\"\n [matMenuTriggerFor]=\"variableMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n {{ t.gettext('Insert variable') }}\n </button>\n }\n <mat-menu #variableMenu=\"matMenu\">\n <button mat-menu-item [matMenuTriggerFor]=\"siteVariableMenu\">\n {{ t.gettext('Site') }}\n </button>\n <button mat-menu-item [matMenuTriggerFor]=\"postVariableMenu\">\n {{ t.gettext('Post') }}\n </button>\n </mat-menu>\n <mat-menu #siteVariableMenu=\"matMenu\">\n <button mat-menu-item (click)=\"insertVariable('frontendUrl')\">\n {{ t.gettext('Frontend URL') }}\n </button>\n <button mat-menu-item (click)=\"insertVariable('site.name')\">\n {{ t.gettext('Site name') }}\n </button>\n <button mat-menu-item (click)=\"insertVariable('currentYear')\">\n {{ t.gettext('Current year') }}\n </button>\n </mat-menu>\n <mat-menu #postVariableMenu=\"matMenu\">\n <button mat-menu-item (click)=\"insertVariable('post.title')\">\n {{ t.gettext('Post title') }}\n </button>\n <button mat-menu-item (click)=\"insertVariable('post.url')\">\n {{ t.gettext('Post URL') }}\n </button>\n <button mat-menu-item (click)=\"insertVariable('post.id')\">\n {{ t.gettext('Post ID') }}\n </button>\n <button mat-menu-item (click)=\"insertVariable('post.thumbnailUrl')\">\n {{ t.gettext('Post Thumbnail URL') }}\n </button>\n </mat-menu>\n </section>\n <label class=\"slug-field\">\n <span>{{ t.gettext('URL slug') }}</span>\n <input\n [attr.aria-label]=\"t.gettext('URL slug')\"\n [value]=\"draft().slug\"\n [disabled]=\"busy() || dialogOpen()\"\n (input)=\"updateSlug($event)\"\n [placeholder]=\"t.gettext('my-post')\" />\n </label>\n </mat-tab>\n <mat-tab [label]=\"t.gettext('SETTINGS')\">\n <div class=\"post-settings\">\n @if (mediaAttachment(); as media) {\n <mat-card class=\"post-setting-card\">\n <section\n class=\"media-attachment\"\n aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (uploading()) {\n <mat-progress-bar\n mode=\"determinate\"\n [value]=\"uploadProgress()\"\n [attr.aria-label]=\"t.gettext('Media upload progress')\" />\n }\n @if (draft()[media.key]; as key) {\n @if (mediaPreviewLoading()) {\n <p role=\"status\">{{ t.gettext('Loading media preview...') }}</p>\n }\n @if (mediaPreviewError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ mediaPreviewError() }}\n </p>\n }\n @if (media.type === 'video' && mediaPreviewUrl()) {\n <video\n controls\n preload=\"none\"\n [src]=\"mediaPreviewUrl()\">\n {{ t.gettext('Your browser does not support video playback.') }}\n </video>\n } @else if (media.type === 'audio' && mediaPreviewUrl()) {\n <audio\n controls\n preload=\"none\"\n [src]=\"mediaPreviewUrl()\">\n {{ t.gettext('Your browser does not support audio playback.') }}\n </audio>\n } @else if (media.type === 'attachment' && mediaPreviewUrl()) {\n <p>\n {{\n t.gettext('Attached file: [[ fileName ]]', {\n fileName: mediaFileName(key),\n })\n }}\n <a\n [href]=\"mediaPreviewUrl()\"\n target=\"_blank\"\n rel=\"noopener\"\n >{{ t.gettext('Download or open') }}</a\n >\n </p>\n }\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"mediaInput.click()\">\n {{ t.gettext('Replace') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"removeMedia()\">\n {{ t.gettext('Remove') }}\n </button>\n } @else {\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"mediaInput.click()\">\n {{ media.uploadLabel }}\n </button>\n }\n </section>\n </mat-card>\n }\n <mat-card class=\"post-setting-card\">\n <section\n class=\"post-thumbnail\"\n aria-labelledby=\"thumbnail-heading\">\n <h2 id=\"thumbnail-heading\">{{ t.gettext('Thumbnail') }}</h2>\n @if (thumbnailPreviewUrl()) {\n <img\n class=\"thumbnail-preview\"\n [src]=\"thumbnailPreviewUrl()\"\n [alt]=\"t.gettext('Post thumbnail')\" />\n } @else {\n <p>{{ t.gettext('No thumbnail selected.') }}</p>\n }\n @if (thumbnailError()) {\n <p role=\"alert\">{{ thumbnailError() }}</p>\n }\n <input\n #thumbnailInput\n hidden\n type=\"file\"\n accept=\"image/*\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"thumbnailSelected($event)\" />\n <div class=\"buttons\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"thumbnailInput.click()\">\n {{ t.gettext('Upload Thumbnail') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"applyDefaultThumbnail()\">\n {{ t.gettext('Apply Default Placeholder') }}\n </button>\n </div>\n </section>\n </mat-card>\n <mat-card class=\"post-setting-card\">\n <section\n class=\"post-taxonomy\"\n aria-labelledby=\"category-heading\">\n <h2 id=\"category-heading\">{{ t.gettext('Category / Tags') }}</h2>\n @if (taxonomyLoading()) {\n <p role=\"status\">{{ t.gettext('Loading categories and tags...') }}</p>\n }\n @if (taxonomyError()) {\n <p role=\"alert\">{{ taxonomyError() }}</p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy()\"\n (click)=\"loadTaxonomy()\">\n {{ t.gettext('Try again') }}\n </button>\n }\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Category') }}</mat-label>\n <mat-select\n [value]=\"draft().categoryId\"\n [disabled]=\"\n busy() || dialogOpen() || taxonomyLoading() || !!taxonomyError()\n \"\n (selectionChange)=\"updateDraft('categoryId', $event.value)\">\n <mat-option [value]=\"null\">{{ t.gettext('None') }}</mat-option>\n @for (category of categories(); track category.id) {\n <mat-option [value]=\"category.id\">{{ category.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <h3>{{ t.gettext('Tags') }}</h3>\n <mat-chip-set [attr.aria-label]=\"t.gettext('Selected tags')\">\n @for (tag of selectedTags(); track tag.id) {\n <mat-chip\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\"\n (removed)=\"removeTag(tag.id)\">\n {{ tag.name }}\n <button\n matChipRemove\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\"\n [attr.aria-label]=\"\n t.gettext('Remove tag [[ name ]]', { name: tag.name })\n \">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip>\n }\n </mat-chip-set>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Search tags') }}</mat-label>\n <input\n matInput\n [value]=\"tagSearch()\"\n (input)=\"filterTags($event)\"\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Add tag') }}</mat-label>\n <mat-select\n [value]=\"null\"\n [disabled]=\"\n busy() || dialogOpen() || taxonomyLoading() || !!taxonomyError()\n \"\n (selectionChange)=\"addTag($event.value)\">\n @for (tag of filteredTags(); track tag.id) {\n <mat-option [value]=\"tag.id\">{{ tag.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <div class=\"buttons\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\"\n (click)=\"createTaxonomy('category')\">\n <mat-icon>add</mat-icon> {{ t.gettext('Add category') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\"\n (click)=\"createTaxonomy('tag')\">\n <mat-icon>add</mat-icon> {{ t.gettext('Add tag') }}\n </button>\n </div>\n </section>\n </mat-card>\n <mat-card class=\"post-setting-card\">\n <section\n class=\"related-posts\"\n aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">{{ t.gettext('Related posts') }}</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">{{ t.gettext('Loading related posts...') }}</p>\n } @else if (relatedPostsError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ relatedPostsError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"loadRelatedPosts()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button\n mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"\n t.gettext('Remove related post [[ title ]]', {\n title: post.title,\n })\n \"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>{{ t.gettext('No related posts yet.') }}</li>\n }\n </ul>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> {{ t.gettext('Add related post') }}\n </button>\n @if (currentPost()) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"addAsChildOf()\">\n <mat-icon>account_tree</mat-icon>\n {{ t.gettext('Add as child of') }}\n </button>\n }\n }\n </section>\n </mat-card>\n\n @if (!mediaAttachment()) {\n <mat-card class=\"post-setting-card\">\n <section\n class=\"application-hook\"\n aria-labelledby=\"application-hook-heading\">\n <h2 id=\"application-hook-heading\">\n {{ t.gettext('Hooks') }}\n </h2>\n @if (applicationHooksLoading()) {\n <p role=\"status\">{{ t.gettext('Loading application hooks...') }}</p>\n } @else if (applicationHooksError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ applicationHooksError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"loadApplicationHooks()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <mat-checkbox\n [checked]=\"useAsApplicationHook()\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"setUseAsApplicationHook($event.checked)\">\n {{ t.gettext('Use as application hook') }}\n </mat-checkbox>\n @if (useAsApplicationHook()) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\">\n <mat-label>{{ t.gettext('Application Hook') }}</mat-label>\n <mat-select\n [value]=\"selectedApplicationHook()\"\n [disabled]=\"busy() || dialogOpen()\"\n (selectionChange)=\"selectedApplicationHook.set($event.value)\">\n @for (\n applicationHook of applicationHooks();\n track applicationHook.id\n ) {\n <mat-option\n [value]=\"applicationHook.hook\"\n [disabled]=\"\n applicationHookInUseByAnotherPost(applicationHook)\n \">\n {{ applicationHookLabel(applicationHook.hook) }}\n @if (applicationHookInUseByAnotherPost(applicationHook)) {\n {{\n t.gettext('(in use by post # [[ postId ]])', {\n postId: applicationHook.contentId,\n })\n }}\n }\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">{{\n t.gettext('No application hooks configured')\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n }\n </section>\n </mat-card>\n }\n <mat-card class=\"post-setting-card\">\n <section\n class=\"post-permissions\"\n aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">{{ t.gettext('Permissions') }}</h2>\n @if (permissionSource(); as source) {\n <p role=\"note\">\n {{\n t.gettext(\n 'Permissions are inherited from # [[ postId ]] - [[ title ]]. Edit the source post to change them.',\n { postId: source.id, title: source.title }\n )\n }}\n </p>\n }\n @if (permissionsLoading()) {\n <p role=\"status\">{{ t.gettext('Loading assigned permissions...') }}</p>\n } @else if (permissionsError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ permissionsError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"loadPermissions()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button\n mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"\n t.gettext('Remove permission [[ name ]]', {\n name: permission.name,\n })\n \"\n [disabled]=\"busy() || dialogOpen() || !!permissionSource()\"\n (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>{{ t.gettext('No permissions assigned.') }}</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ permissionOptionsError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (click)=\"loadPermissionOptions()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field\n class=\"w-full\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\">\n <mat-label>{{ t.gettext('Permission') }}</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"\n busy() ||\n dialogOpen() ||\n permissionOptionsLoading() ||\n !!permissionSource()\n \"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (\n permission of availablePermissions();\n track permission.id\n ) {\n <mat-option [value]=\"permission.id\"\n >{{ permission.name }} ({{ permission.code }})</mat-option\n >\n } @empty {\n <mat-option [disabled]=\"true\">{{\n t.gettext('No permissions available')\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"\n busy() ||\n dialogOpen() ||\n !selectedPermissionId() ||\n !!permissionSource()\n \"\n (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> {{ t.gettext('Assign permission') }}\n </button>\n </div>\n }\n }\n @if (!permissionSource()) {\n <mat-checkbox\n [checked]=\"applyPermissionsToRelatedPosts()\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"applyPermissionsToRelatedPosts.set($event.checked)\">\n {{ t.gettext('Apply permissions to related posts') }}\n </mat-checkbox>\n }\n </section>\n </mat-card>\n </div>\n </mat-tab>\n </mat-tab-group>\n } @else if (currentPost(); as post) {\n @if (thumbnailPreviewUrl()) {\n <img\n class=\"thumbnail-preview\"\n [src]=\"thumbnailPreviewUrl()\"\n [alt]=\"t.gettext('Post thumbnail')\" />\n }\n @if (thumbnailError()) {\n <p role=\"alert\">{{ thumbnailError() }}</p>\n }\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div\n class=\"post-body\"\n [innerHTML]=\"resolvedBody()\"></div>\n @if (mediaAttachment(); as media) {\n @if (draft()[media.key]; as key) {\n @if (mediaPreviewLoading()) {\n <p role=\"status\">{{ t.gettext('Loading media...') }}</p>\n } @else if (mediaPreviewError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ mediaPreviewError() }}\n </p>\n } @else if (media.type === 'video' && mediaPreviewUrl()) {\n <video\n controls\n preload=\"none\"\n [poster]=\"thumbnailPreviewUrl() || null\"\n [src]=\"mediaPreviewUrl()\">\n {{ t.gettext('Your browser does not support video playback.') }}\n </video>\n } @else if (media.type === 'audio' && mediaPreviewUrl()) {\n <audio\n controls\n preload=\"none\"\n [poster]=\"thumbnailPreviewUrl() || null\"\n [src]=\"mediaPreviewUrl()\">\n {{ t.gettext('Your browser does not support audio playback.') }}\n </audio>\n } @else if (media.type === 'attachment' && mediaPreviewUrl()) {\n <p>\n {{\n t.gettext('Attached file: [[ fileName ]]', {\n fileName: mediaFileName(key),\n })\n }}\n <a\n [href]=\"mediaPreviewUrl()\"\n target=\"_blank\"\n rel=\"noopener\"\n >{{ t.gettext('Download or open') }}</a\n >\n </p>\n }\n }\n }\n } @else {\n <p role=\"status\">{{ t.gettext('No post is loaded.') }}</p>\n }\n</article>\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonCmsPostRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-post.component').then(m => m.TaonCmsPostComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsPostRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsPostRoutes;","import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, map } from 'rxjs';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonAdminContentFooterService } from '@taon-dev/ui/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostComponent } from '../taon-cms-post/taon-cms-post.component';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts', {\"src/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-details-page.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-details-page.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-details-page.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-post-details-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, MatButtonModule, TaonCmsPostComponent],\n template: `\n @if (page$ | async; as page) {\n <a\n mat-button\n (click)=\"goBack(page.fromCourses)\"\n >{{\n page.fromCourses\n ? t.gettext('Back to Courses')\n : t.gettext('Back to Posts')\n }}</a\n >\n <taon-cms-post\n [post]=\"page.post\"\n [mode]=\"page.create ? 'add' : 'view'\"\n (changed)=\"onChanged($event, page.create)\"\n (duplicated)=\"openPost($event)\"\n (cancelled)=\"onCancelled(page.create)\"\n (actionButtonsTemplate)=\"setFooterTemplate($event)\" />\n }\n `,\n})\nexport class TaonCmsPostDetailsPageComponent {\n readonly t = t.for(this);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n private readonly contentFooterService = inject(\n TaonAdminContentFooterService,\n );\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly page$ = combineLatest([\n this.route.data,\n this.route.queryParamMap,\n ]).pipe(\n map(([data, queryParams]) => ({\n create: data['createPost'] === true,\n post: (data['post'] as TaonCmsContentEntity | undefined) ?? null,\n fromCourses: queryParams.get('postOrigin') === 'courses',\n })),\n );\n\n constructor() {\n this.destroyRef.onDestroy(() => this.contentFooterService.setTemplate());\n }\n\n setFooterTemplate(template: TemplateRef<unknown>): void {\n this.contentFooterService.setTemplate(template);\n }\n\n goBack(fromCourses: boolean): void {\n void this.router\n .navigate([fromCourses ? '../../courses' : '../'], {\n relativeTo: this.route,\n queryParams: { postOrigin: null },\n queryParamsHandling: 'merge',\n })\n .catch(error => {\n console.error('[taon-cms-post-details-page] Unable to navigate back', error);\n });\n }\n\n onChanged(post: TaonCmsContentEntity, create: boolean): void {\n if (create) {\n this.openPost(post);\n }\n }\n\n openPost(post: TaonCmsContentEntity): void {\n void this.router\n .navigate(['../', post.id], {\n relativeTo: this.route,\n queryParamsHandling: 'preserve',\n })\n .catch(error => {\n console.error('[taon-cms-post-details-page] Unable to open post', error);\n });\n }\n\n onCancelled(create: boolean): void {\n if (create) {\n void this.router\n .navigate(['../'], {\n relativeTo: this.route,\n queryParamsHandling: 'preserve',\n })\n .catch(error => {\n console.error(\n '[taon-cms-post-details-page] Unable to cancel post creation',\n error,\n );\n });\n }\n }\n}","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewChild,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostTableActions } from './taon-cms-post-table-actions.directive';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts', {\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-cms-posts-backoffice',\n templateUrl: './taon-cms-posts-backoffice.component.html',\n styleUrls: ['./taon-cms-posts-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n TaonDatatableComponent,\n ],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonCmsPostsBackofficeComponent extends TaonCmsPostTableActions {\n readonly t = t.for(this);\n\n @ViewChild(TaonDatatableComponent)\n readonly datatable!: TaonDatatableComponent;\n\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n\n readonly loading = signal(false);\n\n public get crud() {\n return this.taonCmsContentApiService.crudController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true },\n { header: this.t.gettext('Title'), field: 'title', sortable: true },\n { header: this.t.gettext('Slug'), field: 'slug', sortable: true },\n { header: this.t.gettext('Status'), field: 'status', sortable: true },\n this.actionsColumn,\n ];\n\n reload(): void {\n this.datatable.reload();\n }\n\n ngAfterViewInit(): void {\n this.reload();\n }\n}","<h1>{{ t.gettext('CMS posts') }}</h1>\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading posts...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'slug', 'status']\"\n tableId=\"cms-posts\"\n storeTableFilters=\"query-params\"\n [filtersTemplate]=\"filtersTemplate\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\">\n</taon-datatable>\n<ng-template\n #filtersTemplate\n let-filters=\"filters\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('ID') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.id\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Title') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.title\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Slug') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.slug\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Status') }}</mat-label>\n <mat-select [(ngModel)]=\"filters.status\">\n <mat-option value=\"published\">{{ t.gettext('Published') }}</mat-option>\n <mat-option value=\"draft\">{{ t.gettext('Draft') }}</mat-option>\n <mat-option value=\"archived\">{{ t.gettext('Archived') }}</mat-option>\n </mat-select>\n </mat-form-field>\n</ng-template>\n","//namespace TaonCmsPostsBackofficeModels\n\n//end of namespace TaonCmsPostsBackofficeModels\n","//#region imports\nimport { inject } from '@angular/core';\nimport { Routes } from '@angular/router';\nimport { ResolveFn } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts', {\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\nconst resolvePost: ResolveFn<TaonCmsContentEntity> = async route => {\n const id = Number(route.paramMap.get('id'));\n if (!Number.isSafeInteger(id) || id <= 0) {\n throw new Error(t.gettext('Invalid Post ID'));\n }\n const taonCmsContentApiService = inject(TaonCmsContentApiService);\n const post = await taonCmsContentApiService.getById(id);\n if (!post) {\n throw new Error(t.gettext('Post not found'));\n }\n return post;\n};\n\nexport const TaonCmsPostsBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-cms-posts-backoffice.component').then(\n m => m.TaonCmsPostsBackofficeComponent,\n ),\n },\n {\n path: 'new',\n data: { hideInNavigation: true, createPost: true },\n loadComponent: () =>\n import('../taon-cms-post-details-page/taon-cms-post-details-page.component').then(\n m => m.TaonCmsPostDetailsPageComponent,\n ),\n },\n {\n path: ':id',\n data: { hideInNavigation: true },\n providers: [TaonCmsContentApiService],\n resolve: { post: resolvePost },\n loadComponent: () =>\n import('../taon-cms-post-details-page/taon-cms-post-details-page.component').then(\n m => m.TaonCmsPostDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonCmsPostsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsPostsBackofficeRoutes;","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './start-cli'; \nexport * from './taon-cms-application-hooks'; \nexport * from './taon-cms.abstract.context'; \nexport * from './taon-cms-application-hook/taon-cms-application-hook.entity'; \nexport * from './taon-cms-assets-backoffice/taon-cms-asset-preview.component'; // @browser\nexport * from './taon-cms-assets-backoffice/taon-cms-assets-backoffice.component'; // @browser\nexport * from './taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes'; // @browser\nexport * from './taon-cms-backoffice/taon-cms-backoffice.component'; // @browser\nexport * from './taon-cms-backoffice/taon-cms-backoffice.models'; \nexport * from './taon-cms-backoffice/taon-cms-backoffice.routes'; // @browser\nexport * from './taon-cms-category/taon-cms-category-api.service'; // @browser\nexport * from './taon-cms-category/taon-cms-category.abstract.context'; \nexport * from './taon-cms-category/taon-cms-category.constants'; \nexport * from './taon-cms-category/taon-cms-category.controller'; \nexport * from './taon-cms-category/taon-cms-category.entity'; \nexport * from './taon-cms-category/taon-cms-category.middleware'; \nexport * from './taon-cms-category/taon-cms-category.models'; \nexport * from './taon-cms-category/taon-cms-category.provider'; \nexport * from './taon-cms-category/taon-cms-category.repository'; \nexport * from './taon-cms-category/taon-cms-category.subscriber'; \nexport * from './taon-cms-category/taon-cms-category.utils'; \nexport * from './taon-cms-category/taon-cms-taxonomy.validation'; \nexport * from './taon-cms-comment/taon-cms-comment-api.service'; // @browser\nexport * from './taon-cms-comment/taon-cms-comment.abstract.context'; \nexport * from './taon-cms-comment/taon-cms-comment.constants'; \nexport * from './taon-cms-comment/taon-cms-comment.controller'; \nexport * from './taon-cms-comment/taon-cms-comment.entity'; \nexport * from './taon-cms-comment/taon-cms-comment.middleware'; \nexport * from './taon-cms-comment/taon-cms-comment.models'; \nexport * from './taon-cms-comment/taon-cms-comment.provider'; \nexport * from './taon-cms-comment/taon-cms-comment.repository'; \nexport * from './taon-cms-comment/taon-cms-comment.subscriber'; \nexport * from './taon-cms-comment/taon-cms-comment.utils'; \nexport * from './taon-cms-content/taon-cms-content-api.service'; // @browser\nexport * from './taon-cms-content/taon-cms-content-storage.controller'; \nexport * from './taon-cms-content/taon-cms-content.abstract.context'; \nexport * from './taon-cms-content/taon-cms-content.config.service'; // @browser\nexport * from './taon-cms-content/taon-cms-content.constants'; \nexport * from './taon-cms-content/taon-cms-content.controller'; \nexport * from './taon-cms-content/taon-cms-content.entity'; \nexport * from './taon-cms-content/taon-cms-content.middleware'; \nexport * from './taon-cms-content/taon-cms-content.models'; \nexport * from './taon-cms-content/taon-cms-content.provider'; \nexport * from './taon-cms-content/taon-cms-content.repository'; \nexport * from './taon-cms-content/taon-cms-content.subscriber'; \nexport * from './taon-cms-content/taon-cms-content.utils'; \nexport * from './taon-cms-content/taon-cms-content.validation'; \nexport * from './taon-cms-content/taon-cms-template-variables'; \nexport * from './taon-cms-content/taon-cms-upload-progress'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset-api.service'; // @browser\nexport * from './taon-cms-content-asset/taon-cms-content-asset.abstract.context'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.constants'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.controller'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.entity'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.middleware'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.models'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.provider'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.repository'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.subscriber'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.utils'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission-api.service'; // @browser\nexport * from './taon-cms-content-permission/taon-cms-content-permission.abstract.context'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.constants'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.controller'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.entity'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.middleware'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.models'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.provider'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.repository'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.subscriber'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.utils'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision-api.service'; // @browser\nexport * from './taon-cms-content-revision/taon-cms-content-revision.abstract.context'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.constants'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.controller'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.entity'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.middleware'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.models'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.provider'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.repository'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.subscriber'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.utils'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag-api.service'; // @browser\nexport * from './taon-cms-content-tag/taon-cms-content-tag.abstract.context'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.constants'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.controller'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.entity'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.middleware'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.models'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.provider'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.repository'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.subscriber'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.utils'; \nexport * from './taon-cms-tag/taon-cms-tag-api.service'; // @browser\nexport * from './taon-cms-tag/taon-cms-tag.abstract.context'; \nexport * from './taon-cms-tag/taon-cms-tag.constants'; \nexport * from './taon-cms-tag/taon-cms-tag.controller'; \nexport * from './taon-cms-tag/taon-cms-tag.entity'; \nexport * from './taon-cms-tag/taon-cms-tag.middleware'; \nexport * from './taon-cms-tag/taon-cms-tag.models'; \nexport * from './taon-cms-tag/taon-cms-tag.provider'; \nexport * from './taon-cms-tag/taon-cms-tag.repository'; \nexport * from './taon-cms-tag/taon-cms-tag.subscriber'; \nexport * from './taon-cms-tag/taon-cms-tag.utils'; \nexport * from './taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component'; // @browser\nexport * from './taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.routes'; // @browser\nexport * from './taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component'; // @browser\nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component'; // @browser\nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.models'; \nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.routes'; // @browser\nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component'; // @browser\nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-editable.directive'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post.component'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post.models'; \nexport * from './taon-posts/taon-cms-post/taon-cms-post.routes'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-thumbnail'; \nexport * from './taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models'; \nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes'; // @browser\nexport * from './taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component'; // @browser\nexport * from './taon-posts/taon-related-post-chooser/taon-related-post-chooser.component'; // @browser","export * from './migrations';\n/* */\nexport * from './index._auto-generated_';\nexport * from './taon-cms-application-hooks';\n/* */ \nexport default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["t","map","adminLazyRouteBase","i1","i4","i2","i3","i6","i5","i12","i13"],"mappings":"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"}
1
+ {"version":3,"file":"cms-websql-prod.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-application-hook/taon-cms-application-hook.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-application-hooks.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/migrations/1792506757808_applicaitonHooks.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/migrations/1793664000000_postVersionLinks.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.validation.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-taxonomy.validation.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment-blocked-phrase.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment-blocked-user.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment-spam-report.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment-vote.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content-storage.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.entity.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.repository.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.controller.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.provider.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.middleware.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-upload-progress.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-category/taon-cms-category.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comment.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.config.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-content.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content/taon-cms-template-variables.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-asset/taon-cms-content-asset.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-permission/taon-cms-content-permission.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-revision/taon-cms-content-revision.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-content-tag/taon-cms-content-tag.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag-api.service.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.constants.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-tag/taon-cms-tag.utils.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-thumbnail.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-editable.directive.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post/taon-cms-post.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.html","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/lib/index.ts","../../../tmp-libs-for-dist-websql-prod/cms/projects/cms/src/cms-websql-prod.ts"],"sourcesContent":["import {\n Column,\n JoinColumn,\n OneToOne,\n PrimaryGeneratedColumn,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql-prod';\n\nimport type { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\nimport { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\n\n@TaonEntity({\n className: 'TaonCmsApplicationHookEntity',\n createTable: true,\n})\nexport class TaonCmsApplicationHookEntity extends TaonBaseEntity<TaonCmsApplicationHookEntity> {\n @PrimaryGeneratedColumn()\n id: number;\n\n @Column({ type: 'varchar', unique: true })\n hook: TaonCmsApplicationHook;\n\n @Column({ type: 'integer', nullable: true, unique: true })\n contentId: number | null;\n\n @OneToOne(\n () => TaonCmsContentEntity,\n content => content.applicationHook,\n { nullable: true, onDelete: 'SET NULL' },\n )\n @JoinColumn({ name: 'contentId', referencedColumnName: 'id' })\n content: TaonCmsContentEntity | null;\n}\n","import { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\nimport type { TaonCmsContentEntity } from './taon-cms-content.entity';\n\nexport enum TaonCmsContentType {\n Normal = 'normal',\n Video = 'video',\n Audio = 'audio',\n Attachment = 'attachment',\n}\n\nexport enum TaonCmsContentState {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport interface TaonCmsContentFields {\n type: TaonCmsContentType;\n title: string;\n slug: string;\n body: string | null;\n videoKey: string | null;\n audioKey: string | null;\n attachmentKey: string | null;\n thumbnailKey: string | null;\n excerpt: string | null;\n categoryId: number | null;\n authorUserId: number | null;\n status: 'draft' | 'published' | 'archived';\n publishedAt: Date | null;\n applyPermissionsToRelatedPosts: boolean;\n applyVisibilityToRelatedPosts: boolean;\n}\n\nexport interface TaonCmsPermissionConfiguration {\n permissions: TaonPermissionEntity[];\n source: { id: number; title: string } | null;\n}\n\nexport interface TaonCmsVisibilityConfiguration {\n status: TaonCmsContentFields['status'];\n source: { id: number; title: string } | null;\n}\n\nexport type TaonCmsPostVersionKind = 'public' | 'private';\n\nexport interface TaonCmsPostVersionLinks {\n publicVersionPost: TaonCmsContentEntity | null;\n privateVersionPost: TaonCmsContentEntity | null;\n}\n\nexport interface TaonCmsCreateContent\n extends\n Pick<TaonCmsContentFields, 'title' | 'slug'>,\n Partial<Omit<TaonCmsContentFields, 'title' | 'slug'>> {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n applicationHook?: TaonCmsApplicationHook | null;\n}\n\nexport interface TaonCmsUpdateContent extends Partial<TaonCmsContentFields> {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n applicationHook?: TaonCmsApplicationHook | null;\n expectedVersion: number;\n}\n\nexport interface TaonCmsRestoreContent {\n revisionNumber: number;\n expectedVersion: number;\n}\n\nexport interface TaonCmsContentSnapshot extends TaonCmsContentFields {\n tagIds: number[];\n relatedPostIds?: number[];\n permissionIds: number[];\n}\nimport type { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\n","//#region imports\nimport { Column, JoinTable, ManyToMany, OneToOne, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\n\nimport { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\n\nimport { TaonCmsContentDefaultsValues } from './taon-cms-content.constants';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentEntity',\n createTable: true,\n})\nexport class TaonCmsContentEntity extends TaonBaseEntity<TaonCmsContentEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'varchar', default: TaonCmsContentType.Normal })\n //#endregion\n type: TaonCmsContentType = TaonCmsContentType.Normal;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n title: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n publicVersionPostId: number | null = null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n privateVersionPostId: number | null = null;\n\n //#region @websql\n @ManyToMany(() => TaonCmsContentEntity)\n @JoinTable({\n name: 'taon_cms_related_posts',\n joinColumn: { name: 'contentId', referencedColumnName: 'id' },\n inverseJoinColumn: { name: 'relatedPostId', referencedColumnName: 'id' },\n })\n //#endregion\n relatedPosts: TaonCmsContentEntity[];\n\n //#region @websql\n @OneToOne(\n () => TaonCmsApplicationHookEntity,\n applicationHook => applicationHook.content,\n )\n //#endregion\n applicationHook: TaonCmsApplicationHookEntity | null;\n\n //#region @websql\n @ManyToMany(() => TaonPermissionEntity)\n @JoinTable({\n name: 'taon_cms_content_permissions',\n joinColumn: { name: 'contentId', referencedColumnName: 'id' },\n inverseJoinColumn: { name: 'permissionId', referencedColumnName: 'id' },\n })\n //#endregion\n permissions: TaonPermissionEntity[];\n\n //#region @websql\n @Column({ type: 'boolean', default: false })\n //#endregion\n applyPermissionsToRelatedPosts: boolean = false;\n\n //#region @websql\n @Column({ type: 'boolean', default: false })\n //#endregion\n applyVisibilityToRelatedPosts: boolean = false;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n excerpt: string | null;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n body: string | null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n videoKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n audioKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n attachmentKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n thumbnailKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n categoryId: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n authorUserId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar', default: 'draft' })\n //#endregion\n status: string;\n // draft | published | archived\n\n //#region @websql\n @Column({ type: 'datetime', nullable: true })\n //#endregion\n publishedAt: Date | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}","export const TaonCmsApplicationHook = {\n HOME_HERO: 'home-hero',\n HOME_FEATURED_POST: 'home-featured-post',\n SHOP_PROMOTION: 'shop-promotion',\n LOGIN_INFO: 'login-info',\n FOOTER_ABOUT: 'footer-about',\n} as const;\n\nexport type TaonCmsApplicationHook =\n (typeof TaonCmsApplicationHook)[keyof typeof TaonCmsApplicationHook];\n","import { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport { TaonBaseMigration, TaonMigration, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName } from 'taon/websql-prod';\nimport { QueryRunner, Table } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\n\n//#region Migration class for context \"CmsContext\"\n@TaonMigration({\n className: 'CmsContext_1792506757808_applicaitonHooks',\n})\nexport class CmsContext_1792506757808_applicaitonHooks extends TaonBaseMigration {\n APPLICATION_HOOK_TABLE = ClassHelpers__NS__getName(TaonCmsApplicationHookEntity);\n\n CONTENT_TABLE = ClassHelpers__NS__getName(TaonCmsContentEntity);\n\n //#region up\n async up(queryRunner: QueryRunner): Promise<any> {\n await queryRunner.startTransaction();\n try {\n if (!(await queryRunner.hasTable(this.APPLICATION_HOOK_TABLE))) {\n await queryRunner.createTable(\n new Table({\n name: this.APPLICATION_HOOK_TABLE,\n columns: [\n {\n name: 'id',\n type: 'integer',\n isPrimary: true,\n isGenerated: true,\n generationStrategy: 'increment',\n },\n { name: 'hook', type: 'varchar', isUnique: true },\n {\n name: 'contentId',\n type: 'integer',\n isNullable: true,\n isUnique: true,\n },\n ],\n foreignKeys: [\n {\n columnNames: ['contentId'],\n referencedTableName: this.CONTENT_TABLE,\n referencedColumnNames: ['id'],\n onDelete: 'SET NULL',\n },\n ],\n }),\n true,\n );\n }\n\n await this.persistApplicationHooks(queryRunner);\n await queryRunner.commitTransaction();\n } catch (error) {\n console.error('Error in migration:', error);\n await queryRunner.rollbackTransaction();\n throw error;\n }\n }\n //#endregion\n\n //#region down\n async down(queryRunner: QueryRunner): Promise<any> {\n if (await queryRunner.hasTable(this.APPLICATION_HOOK_TABLE)) {\n await queryRunner.dropTable(this.APPLICATION_HOOK_TABLE, true);\n }\n }\n //#endregion\n\n protected getApplicationHooks(): Record<string, string> {\n return TaonCmsApplicationHook;\n }\n\n private async persistApplicationHooks(\n queryRunner: QueryRunner,\n ): Promise<void> {\n const repository = queryRunner.manager.getRepository(\n TaonCmsApplicationHookEntity,\n );\n for (const hook of Object.values(this.getApplicationHooks())) {\n if (!(await repository.findOneBy({ hook: hook as any }))) {\n await repository.save(\n repository.create({ hook: hook as any, contentId: null }),\n );\n }\n }\n }\n}\n//#endregion","import { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport { TaonBaseMigration, TaonMigration, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName } from 'taon/websql-prod';\nimport { QueryRunner, TableColumn } from 'taon-typeorm/websql-prod';\n\n@TaonMigration({\n className: 'CmsContext_1793664000000_postVersionLinks',\n})\nexport class CmsContext_1793664000000_postVersionLinks extends TaonBaseMigration {\n async up(queryRunner: QueryRunner): Promise<void> {\n const table = ClassHelpers__NS__getName(TaonCmsContentEntity);\n for (const name of ['publicVersionPostId', 'privateVersionPostId']) {\n if (!(await queryRunner.hasColumn(table, name))) {\n await queryRunner.addColumn(\n table,\n new TableColumn({\n name,\n type: 'integer',\n isNullable: true,\n }),\n );\n }\n }\n }\n\n async down(queryRunner: QueryRunner): Promise<void> {\n const table = ClassHelpers__NS__getName(TaonCmsContentEntity);\n for (const name of ['privateVersionPostId', 'publicVersionPostId']) {\n if (await queryRunner.hasColumn(table, name)) {\n await queryRunner.dropColumn(table, name);\n }\n }\n }\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CmsContext_1792506757808_applicaitonHooks } from './1792506757808_applicaitonHooks';\nimport { CmsContext_1793664000000_postVersionLinks } from './1793664000000_postVersionLinks';\nexport { CmsContext_1792506757808_applicaitonHooks } from './1792506757808_applicaitonHooks';\nexport { CmsContext_1793664000000_postVersionLinks } from './1793664000000_postVersionLinks';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_CmsContext = {\n /* 20-10-2026 16:32:37 */ CmsContext_1792506757808_applicaitonHooks,\n /* 03-11-2026 01:00:00 */ CmsContext_1793664000000_postVersionLinks,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';\n","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.cms';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/cms';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.24';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","//#region tnp-helpers cli template\nimport { UtilsJson__NS__AttrJsoncProp, UtilsJson__NS__getAtrributiesFromJsonWithComments, UtilsJson__NS__getAttributiesFromComment, UtilsJson__NS__getValue, UtilsJson__NS__readJson, UtilsJson__NS__readJsonWithComments, UtilsJson__NS__setValue, UtilsJson__NS__validateLodashPath } from 'tnp-core/websql-prod';\nimport { BaseCommandLineFeature, Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-helpers/websql-prod';\n/* */ \n//#endregion\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n helloWorldFromGlobalArg() {\n console.log('hello world from global argument!');\n this._exit(0);\n }\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson__NS__getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","//#region imports\nimport { Column, CustomColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsCategoryDefaultsValues } from './taon-cms-category.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsCategoryEntity',\n createTable: true,\n})\nexport class TaonCmsCategoryEntity extends TaonBaseAbstractEntity<TaonCmsCategoryEntity> {\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n parentCategoryId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n name: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n description: string | null;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n sortOrder: number;\n}","import { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentFields } from './taon-cms-content.models';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n\nexport function contentError(message: string, status = 400): never {\n Taon__NS__error({ message, status });\n throw new Error(message);\n}\n\nexport function requireContentId(value: number, name = 'contentId'): void {\n if (!Number.isSafeInteger(value) || value <= 0) {\n contentError(`${name} must be a positive integer.`);\n }\n}\n\nexport function requireContentVersion(\n value: number,\n name = 'expectedVersion',\n): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n contentError(`${name} must be a non-negative integer.`);\n }\n}\n\nexport function validateContentInput(\n input: Partial<TaonCmsContentFields> & {\n tagIds?: number[];\n relatedPostIds?: number[];\n permissionIds?: number[];\n },\n creating = false,\n): void {\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n contentError('Content must be an object.');\n }\n if (\n input.type !== undefined &&\n !Object.values(TaonCmsContentType).includes(input.type)\n ) {\n contentError('type must be normal, video, audio, or attachment.');\n }\n for (const field of ['title', 'slug'] as const) {\n if (creating || input[field] !== undefined) {\n if (typeof input[field] !== 'string' || !input[field].trim()) {\n contentError(`${field} must be a non-empty string.`);\n }\n }\n }\n for (const field of [\n 'body',\n 'excerpt',\n 'videoKey',\n 'audioKey',\n 'attachmentKey',\n 'thumbnailKey',\n ] as const) {\n if (\n input[field] !== undefined &&\n input[field] !== null &&\n typeof input[field] !== 'string'\n ) {\n contentError(`${field} must be a string or null.`);\n }\n }\n for (const field of ['categoryId', 'authorUserId'] as const) {\n if (input[field] !== undefined && input[field] !== null) {\n requireContentId(input[field], field);\n }\n }\n if (\n input.applyPermissionsToRelatedPosts !== undefined &&\n typeof input.applyPermissionsToRelatedPosts !== 'boolean'\n ) {\n contentError('applyPermissionsToRelatedPosts must be a boolean.');\n }\n if (\n input.applyVisibilityToRelatedPosts !== undefined &&\n typeof input.applyVisibilityToRelatedPosts !== 'boolean'\n ) {\n contentError('applyVisibilityToRelatedPosts must be a boolean.');\n }\n if (\n input.status !== undefined &&\n !['draft', 'published', 'archived'].includes(input.status)\n ) {\n contentError('status must be draft, published, or archived.');\n }\n if (input.publishedAt !== undefined && input.publishedAt !== null) {\n if (\n !(\n input.publishedAt instanceof Date ||\n typeof input.publishedAt === 'string'\n ) ||\n Number.isNaN(new Date(input.publishedAt).getTime())\n ) {\n contentError('publishedAt must be a valid date or null.');\n }\n }\n for (const field of ['tagIds', 'relatedPostIds', 'permissionIds'] as const) {\n const ids = input[field];\n if (ids !== undefined) {\n if (!Array.isArray(ids)) {\n contentError(`${field} must be an array.`);\n }\n for (const id of ids) {\n requireContentId(\n id,\n field === 'tagIds'\n ? 'tagId'\n : field === 'relatedPostIds'\n ? 'relatedPostId'\n : 'permissionId',\n );\n }\n }\n }\n}","import { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nconst t = Translation.for('src/lib/taon-cms-category/taon-cms-taxonomy.validation.ts', {\"src/lib/taon-cms-category/taon-cms-category.controller.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-category.controller.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-category.controller.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-category.controller.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-category/taon-cms-category.repository.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-category.repository.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-category.repository.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-category.repository.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-category/taon-cms-taxonomy.validation.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonCmsTaxonomyFields {\n name: string;\n slug: string;\n description: string | null;\n}\n\nexport interface TaonCmsCategoryFields extends TaonCmsTaxonomyFields {\n parentCategoryId: number | null;\n sortOrder: number;\n}\n\nexport function validateTaxonomy(input: TaonCmsTaxonomyFields): void {\n if (\n !input ||\n typeof input.name !== 'string' ||\n !input.name.trim() ||\n typeof input.slug !== 'string' ||\n !input.slug.trim() ||\n (input.description !== null && typeof input.description !== 'string')\n ) {\n contentError(\n t.gettext('Name, slug, and a valid description are required.'),\n );\n }\n}\n\nexport function validateCategoryHierarchy(\n id: number | null,\n parentId: number | null,\n categories: { id: number; parentCategoryId: number | null }[],\n): void {\n const visited = new Set<number>();\n if (id !== null) {\n visited.add(id);\n }\n let current = parentId;\n while (current !== null) {\n if (visited.has(current)) {\n contentError(t.gettext('A category cannot be its own ancestor.'));\n }\n visited.add(current);\n const parent = categories.find(category => category.id === current);\n if (!parent) {\n contentError(t.gettext('The parent category does not exist.'));\n }\n current = parent.parentCategoryId;\n }\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport { requireContentId } from '../taon-cms-content/taon-cms-content.validation';\nimport {\n TaonCmsCategoryFields,\n validateCategoryHierarchy,\n validateTaxonomy,\n} from './taon-cms-taxonomy.validation';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-category/taon-cms-category.repository.ts', {\"src/lib/taon-cms-category/taon-cms-category.controller.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-category.controller.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-category.controller.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-category.controller.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-category/taon-cms-category.repository.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-category.repository.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-category.repository.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-category.repository.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-category/taon-cms-taxonomy.validation.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy.validation.ts.de-DE.i18n.data')).default}} as any);\n\n@TaonRepository({\n className: 'TaonCmsCategoryRepository',\n})\nexport class TaonCmsCategoryRepository extends TaonBaseRepository<TaonCmsCategoryEntity> {\n entityClassResolveFn: () => typeof TaonCmsCategoryEntity = () =>\n TaonCmsCategoryEntity;\n\n async saveCategory(\n id: number | null,\n input: TaonCmsCategoryFields,\n ): Promise<TaonCmsCategoryEntity> {\n //#region @websqlFunc\n validateTaxonomy(input);\n if (!Number.isSafeInteger(input.sortOrder)) {\n contentError(t.gettext('Sort order must be an integer.'));\n }\n if (id !== null) {\n requireContentId(id);\n }\n if (input.parentCategoryId !== null) {\n requireContentId(input.parentCategoryId);\n }\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const repository = manager.getRepository(TaonCmsCategoryEntity);\n if (id !== null) {\n await this.requireCategory(id, manager);\n }\n validateCategoryHierarchy(\n id,\n input.parentCategoryId,\n await repository.find(),\n );\n const slug = input.slug.trim();\n const existing = await repository.findOneBy({ slug });\n if (existing && existing.id !== id) {\n contentError(t.gettext('This category slug is already in use.'), 409);\n }\n return repository.save(\n repository.create({\n ...(id === null ? {} : { id }),\n name: input.name.trim(),\n slug,\n description: input.description,\n sortOrder: input.sortOrder,\n parentCategoryId: input.parentCategoryId,\n }),\n );\n });\n //#endregion\n }\n\n async deleteCategory(id: number): Promise<void> {\n //#region @websqlFunc\n requireContentId(id);\n await this.connection.transaction('SERIALIZABLE', async manager => {\n await this.requireCategory(id, manager);\n const children = await manager\n .getRepository(TaonCmsCategoryEntity)\n .countBy({ parentCategoryId: id });\n const posts = await manager\n .getRepository(TaonCmsContentEntity)\n .countBy({ categoryId: id });\n if (children || posts) {\n contentError(\n t.gettext(\n 'Reassign child categories and posts before deleting this category.',\n ),\n 409,\n );\n }\n await manager.getRepository(TaonCmsCategoryEntity).delete(id);\n });\n //#endregion\n }\n\n async requireCategory(id: number, manager: EntityManager): Promise<void> {\n //#region @websqlFunc\n const category = await manager\n .getRepository<TaonCmsCategoryEntity>(this.target)\n .findOneBy({ id });\n if (!category) {\n contentError(`Category ${id} does not exist.`, 404);\n }\n //#endregion\n }\n}","//#region imports\nimport { TaonSessionRepository } from '@taon-dev/session/websql-prod';\nimport { TaonAuthContextRepository } from '@taon-dev/session/websql-prod';\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, DELETE, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryRepository } from './taon-cms-category.repository';\nimport type { TaonCmsCategoryFields } from './taon-cms-taxonomy.validation';\n//#endregion\n\n@TaonController<TaonCmsCategoryController>({\n className: 'TaonCmsCategoryController',\n allowedMethods: ['getAll', 'saveCategory', 'deleteCategory'],\n})\nexport class TaonCmsCategoryController extends TaonBaseCrudController<TaonCmsCategoryEntity> {\n entityClassResolveFn: () => typeof TaonCmsCategoryEntity = () =>\n TaonCmsCategoryEntity;\n\n taonCmsCategoryRepository = this.injectCustomRepo(TaonCmsCategoryRepository);\n\n private readonly sessions = this.injectCustomRepo(TaonSessionRepository);\n\n private readonly auth = this.injectCustomRepo(TaonAuthContextRepository);\n\n protected async beforeEachRequest({\n req,\n res,\n t,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCategoryController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n @POST()\n saveCategory(\n @Query('id') id: number | null,\n @Body() input: TaonCmsCategoryFields,\n ): Taon__NS__Response<TaonCmsCategoryEntity> {\n //#region @websqlFunc\n return () => this.taonCmsCategoryRepository.saveCategory(id ?? null, input);\n //#endregion\n }\n\n @DELETE()\n deleteCategory(@Query('id') id: number): Taon__NS__Response<void> {\n //#region @websqlFunc\n return () => this.taonCmsCategoryRepository.deleteCategory(id);\n //#endregion\n }\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsCategoryProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsCategoryProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsCategoryMiddleware',\n})\nexport class TaonCmsCategoryMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryProvider } from './taon-cms-category.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsCategorySubscriber>({\n className: 'TaonCmsCategorySubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsCategorySubscriber extends TaonBaseSubscriberForEntity {\n taonCmsCategoryProvider = this.injectProvider(TaonCmsCategoryProvider);\n listenTo(): typeof TaonCmsCategoryEntity {\n return TaonCmsCategoryEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryController } from './taon-cms-category.controller';\nimport { TaonCmsCategoryRepository } from './taon-cms-category.repository';\nimport { TaonCmsCategoryProvider } from './taon-cms-category.provider';\nimport { TaonCmsCategoryMiddleware } from './taon-cms-category.middleware';\nimport { TaonCmsCategorySubscriber } from './taon-cms-category.subscriber';\n//#endregion\n\nexport const TaonCmsCategoryAbstractContext = createContext(() => ({\n contextName: 'TaonCmsCategoryAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsCategoryEntity },\n controllers: { TaonCmsCategoryController },\n repositories: { TaonCmsCategoryRepository },\n providers: { TaonCmsCategoryProvider },\n middlewares: { TaonCmsCategoryMiddleware },\n subscribers: { TaonCmsCategorySubscriber },\n}));\n","//#region imports\nimport { Column, CreateDateColumn, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, UpdateDateColumn, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsCommentDefaultsValues } from './taon-cms-comment.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsCommentEntity',\n createTable: true,\n})\nexport class TaonCmsCommentEntity extends TaonBaseEntity<TaonCmsCommentEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n parentCommentId: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n userId: number | null;\n\n //#region @websql\n @Column({ type: 'text' })\n //#endregion\n body: string;\n\n //#region @websql\n @Column({ type: 'varchar', default: 'published' })\n //#endregion\n status: string;\n\n //#region @websql\n @CreateDateColumn()\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @UpdateDateColumn()\n //#endregion\n updatedAt: Date;\n}","//#region imports\nimport { Column, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport type { TaonCmsContentSnapshot } from '../taon-cms-content/taon-cms-content.models';\n\nimport { TaonCmsContentRevisionDefaultsValues } from './taon-cms-content-revision.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentRevisionEntity',\n createTable: true,\n})\nexport class TaonCmsContentRevisionEntity extends TaonBaseEntity<TaonCmsContentRevisionEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n revisionNumber: number;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n title: string;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n body: string | null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n snapshot: TaonCmsContentSnapshot | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n createdByUserId: number | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\n\nimport type { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsContentSnapshot } from '../taon-cms-content/taon-cms-content.models';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentRevisionRepository',\n})\nexport class TaonCmsContentRevisionRepository extends TaonBaseRepository<TaonCmsContentRevisionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentRevisionEntity = () =>\n TaonCmsContentRevisionEntity;\n\n async listForContent(\n contentId: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n return manager\n .getRepository<TaonCmsContentRevisionEntity>(this.target)\n .find({\n where: { contentId },\n order: { revisionNumber: 'DESC' },\n });\n //#endregion\n }\n\n async requireRevision(\n contentId: number,\n revisionNumber: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity> {\n //#region @websqlFunc\n const revision = await manager\n .getRepository<TaonCmsContentRevisionEntity>(this.target)\n .findOneBy({ contentId, revisionNumber });\n if (!revision) {\n contentError(\n `Revision ${revisionNumber} of content ${contentId} does not exist.`,\n 404,\n );\n }\n return revision;\n //#endregion\n }\n\n async recordContent(\n content: TaonCmsContentEntity,\n snapshot: TaonCmsContentSnapshot,\n manager: EntityManager,\n ): Promise<TaonCmsContentRevisionEntity> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentRevisionEntity>(\n this.target,\n );\n return repository.save(\n repository.create({\n contentId: content.id,\n revisionNumber: content.version,\n version: 1,\n title: content.title,\n body: content.body,\n snapshot,\n createdByUserId: content.authorUserId,\n createdAt: new Date(),\n }),\n );\n //#endregion\n }\n}\n","//#region imports\nimport { Column, CustomColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentTagDefaultsValues } from './taon-cms-content-tag.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentTagEntity',\n createTable: true,\n})\nexport class TaonCmsContentTagEntity extends TaonBaseAbstractEntity<TaonCmsContentTagEntity> {\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n contentId: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n tagId: number;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentTagRepository',\n})\nexport class TaonCmsContentTagRepository extends TaonBaseRepository<TaonCmsContentTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentTagEntity = () =>\n TaonCmsContentTagEntity;\n\n async findTagIds(\n contentId: number,\n manager: EntityManager,\n ): Promise<number[]> {\n //#region @websqlFunc\n const links = await manager\n .getRepository<TaonCmsContentTagEntity>(this.target)\n .find({ where: { contentId }, order: { tagId: 'ASC' } });\n return links.map(link => link.tagId);\n //#endregion\n }\n\n async replaceTags(\n contentId: number,\n tagIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentTagEntity>(\n this.target,\n );\n await repository.delete({ contentId });\n const links = [...new Set(tagIds)].map(tagId =>\n repository.create({ contentId, tagId }),\n );\n if (links.length) {\n await repository.save(links);\n }\n //#endregion\n }\n}\n","//#region imports\nimport { Column, CustomColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsTagDefaultsValues } from './taon-cms-tag.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsTagEntity',\n createTable: true,\n})\nexport class TaonCmsTagEntity extends TaonBaseAbstractEntity<TaonCmsTagEntity> {\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n name: string;\n\n //#region @websql\n @Column({ type: 'varchar', unique: true })\n //#endregion\n slug: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n description: string | null;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\nimport { requireContentId } from '../taon-cms-content/taon-cms-content.validation';\nimport { TaonCmsContentTagEntity } from '../taon-cms-content-tag/taon-cms-content-tag.entity';\nimport {\n TaonCmsTaxonomyFields,\n validateTaxonomy,\n} from '../taon-cms-category/taon-cms-taxonomy.validation';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-tag/taon-cms-tag.repository.ts', {\"src/lib/taon-cms-tag/taon-cms-tag.controller.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-tag.controller.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-tag.controller.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-tag.controller.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-tag/taon-cms-tag.repository.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-tag.repository.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-tag.repository.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-tag.repository.ts.de-DE.i18n.data')).default}} as any);\n\n@TaonRepository({\n className: 'TaonCmsTagRepository',\n})\nexport class TaonCmsTagRepository extends TaonBaseRepository<TaonCmsTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsTagEntity = () => TaonCmsTagEntity;\n\n async saveTag(\n id: number | null,\n input: TaonCmsTaxonomyFields,\n ): Promise<TaonCmsTagEntity> {\n //#region @websqlFunc\n validateTaxonomy(input);\n if (id !== null) {\n requireContentId(id);\n }\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const repository = manager.getRepository(TaonCmsTagEntity);\n if (id !== null) {\n await this.requireTags([id], manager);\n }\n const name = input.name.trim();\n const slug = input.slug.trim();\n const existing = await repository.find({ where: [{ name }, { slug }] });\n if (existing.some(tag => tag.id !== id)) {\n contentError(\n t.gettext('This tag name or slug is already in use.'),\n 409,\n );\n }\n return repository.save(\n repository.create({\n ...(id === null ? {} : { id }),\n name,\n slug,\n description: input.description,\n }),\n );\n });\n //#endregion\n }\n\n async deleteTag(id: number): Promise<void> {\n //#region @websqlFunc\n requireContentId(id);\n await this.connection.transaction('SERIALIZABLE', async manager => {\n await this.requireTags([id], manager);\n if (\n await manager\n .getRepository(TaonCmsContentTagEntity)\n .countBy({ tagId: id })\n ) {\n contentError(\n t.gettext('Remove this tag from posts before deleting it.'),\n 409,\n );\n }\n await manager.getRepository(TaonCmsTagEntity).delete(id);\n });\n //#endregion\n }\n\n async requireTags(ids: number[], manager: EntityManager): Promise<void> {\n //#region @websqlFunc\n for (const id of new Set(ids)) {\n const tag = await manager\n .getRepository<TaonCmsTagEntity>(this.target)\n .findOneBy({ id });\n if (!tag) {\n contentError(`Tag ${id} does not exist.`, 404);\n }\n }\n //#endregion\n }\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { Column, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentAssetDefaultsValues } from './taon-cms-content-asset.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentAssetEntity',\n createTable: true,\n})\nexport class TaonCmsContentAssetEntity extends TaonBaseEntity<TaonCmsContentAssetEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id: number;\n\n //#region @websql\n @Column({ type: 'integer', default: 0 })\n //#endregion\n version: number;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n contentId: number | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n type: string;\n // image | video | audio | file\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n storageProvider: string;\n // r2 | filesystem | s3\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n bucket: string | null;\n\n //#region @websql\n @Column({ type: 'varchar' })\n //#endregion\n key: string;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n originalFilename: string | null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n mimeType: string | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n size: number | null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n durationSeconds: number | null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n metadata: Record<string, any> | null;\n\n //#region @websql\n @Column({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { In, Raw } from 'taon-typeorm/websql-prod';\nimport type { EntityManager } from 'taon-typeorm/websql-prod';\nimport { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\n\nimport { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport type { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\nimport { TaonCmsCategoryRepository } from '../taon-cms-category/taon-cms-category.repository';\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionRepository } from '../taon-cms-content-revision/taon-cms-content-revision.repository';\nimport { TaonCmsContentTagRepository } from '../taon-cms-content-tag/taon-cms-content-tag.repository';\nimport { TaonCmsTagRepository } from '../taon-cms-tag/taon-cms-tag.repository';\nimport { TaonCmsContentAssetEntity } from '../taon-cms-content-asset/taon-cms-content-asset.entity';\n\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentType } from './taon-cms-content.models';\nimport type {\n TaonCmsContentFields,\n TaonCmsContentSnapshot,\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n TaonCmsPermissionConfiguration,\n TaonCmsPostVersionKind,\n TaonCmsPostVersionLinks,\n TaonCmsVisibilityConfiguration,\n} from './taon-cms-content.models';\nimport {\n contentError,\n requireContentId,\n requireContentVersion,\n validateContentInput,\n} from './taon-cms-content.validation';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentRepository',\n})\nexport class TaonCmsContentRepository extends TaonBaseRepository<TaonCmsContentEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentEntity = () =>\n TaonCmsContentEntity;\n\n private readonly taonCmsContentRevisionRepository = this.injectCustomRepo(\n TaonCmsContentRevisionRepository,\n );\n\n private readonly taonCmsContentTagRepository = this.injectCustomRepo(\n TaonCmsContentTagRepository,\n );\n\n private readonly taonCmsCategoryRepository = this.injectCustomRepo(\n TaonCmsCategoryRepository,\n );\n\n private readonly tags = this.injectCustomRepo(TaonCmsTagRepository);\n\n async listTagIds(id: number): Promise<number[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n await this.requireContent(id, manager);\n return this.taonCmsContentTagRepository.findTagIds(id, manager);\n });\n //#endregion\n }\n\n async getVisibilityConfiguration(\n id: number,\n ): Promise<TaonCmsVisibilityConfiguration> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n const content = await this.requireContent(id, manager);\n return this.resolveVisibilityConfiguration(content, manager);\n });\n //#endregion\n }\n\n async createContent(\n input: TaonCmsCreateContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n validateContentInput(input, true);\n return this.connection.transaction('SERIALIZABLE', manager =>\n this.createContentWithManager(input, manager),\n );\n //#endregion\n }\n\n private async resolveVisibilityConfiguration(\n post: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<TaonCmsVisibilityConfiguration> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n let childId = post.id;\n const visited = new Set<number>([childId]);\n while (true) {\n const parents = await repository.find({\n where: { relatedPosts: { id: childId } },\n });\n if (parents.length > 1) {\n contentError('A post cannot have multiple parent posts.', 409);\n }\n const parent = parents[0];\n if (!parent) {\n return { status: this.contentStatus(post.status), source: null };\n }\n if (visited.has(parent.id)) {\n contentError('Related posts cannot contain circular relationships.', 409);\n }\n visited.add(parent.id);\n if (parent.applyVisibilityToRelatedPosts) {\n return {\n status: this.contentStatus(parent.status),\n source: { id: parent.id, title: parent.title },\n };\n }\n childId = parent.id;\n }\n //#endregion\n }\n\n async duplicateContent(\n id: number,\n includeChildren: boolean,\n copyStorageObject: (key: string) => Promise<string>,\n deleteStorageObject: (key: string) => Promise<void>,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n const copiedKeys: string[] = [];\n try {\n return await this.connection.transaction(\n 'SERIALIZABLE',\n async manager => {\n const processed = new Set<number>();\n const duplicateNode = async (\n source: TaonCmsContentEntity,\n inheritedStatus?: TaonCmsContentFields['status'],\n ): Promise<TaonCmsContentEntity> => {\n if (processed.has(source.id)) {\n contentError(\n 'The related post hierarchy contains a cycle or duplicate post.',\n 409,\n );\n }\n processed.add(source.id);\n const sourcePost = await this.requireContent(source.id, manager);\n const snapshot = await this.snapshotOf(sourcePost, manager);\n const configuration = await this.resolvePermissionConfiguration(\n sourcePost,\n manager,\n );\n const children: TaonCmsContentEntity[] = [];\n const status = inheritedStatus ?? snapshot.status;\n const descendantStatus =\n inheritedStatus ??\n (snapshot.applyVisibilityToRelatedPosts ? status : undefined);\n if (includeChildren) {\n for (const child of sourcePost.relatedPosts ?? []) {\n children.push(await duplicateNode(child, descendantStatus));\n }\n }\n const titleAndSlug = await this.nextCopyTitleAndSlug(\n sourcePost.title,\n sourcePost.slug,\n manager,\n );\n const copiedSnapshot = { ...snapshot, status };\n const copiedAssetKeys = new Map<string, string>();\n for (const field of [\n 'videoKey',\n 'audioKey',\n 'attachmentKey',\n 'thumbnailKey',\n ] as const) {\n const key = copiedSnapshot[field];\n if (key && !key.startsWith('cms-placeholder:')) {\n let copiedKey = copiedAssetKeys.get(key);\n if (!copiedKey) {\n copiedKey = await copyStorageObject(key);\n copiedKeys.push(copiedKey);\n copiedAssetKeys.set(key, copiedKey);\n }\n copiedSnapshot[field] = copiedKey;\n }\n }\n const duplicate = await this.createContentWithManager(\n {\n ...copiedSnapshot,\n ...titleAndSlug,\n relatedPostIds: children.map(child => child.id),\n applicationHook: null,\n permissionIds: configuration.permissions.map(\n permission => permission.id,\n ),\n },\n manager,\n );\n const assetRepository =\n manager.getRepository<TaonCmsContentAssetEntity>(\n TaonCmsContentAssetEntity,\n );\n const sourceAssets = await assetRepository.find({\n where: { contentId: sourcePost.id },\n });\n for (const asset of sourceAssets) {\n const copiedKey = copiedAssetKeys.get(asset.key);\n if (!copiedKey) {\n continue;\n }\n await assetRepository.save(\n assetRepository.create({\n version: 1,\n contentId: duplicate.id,\n type: asset.type,\n storageProvider: asset.storageProvider,\n bucket: asset.bucket,\n key: copiedKey,\n originalFilename: asset.originalFilename,\n mimeType: asset.mimeType,\n size: asset.size,\n durationSeconds: asset.durationSeconds,\n metadata: asset.metadata,\n createdAt: new Date(),\n }),\n );\n }\n return duplicate;\n };\n return duplicateNode(await this.requireContent(id, manager));\n },\n );\n } catch (error) {\n const cleanupErrors: unknown[] = [];\n for (const key of copiedKeys.reverse()) {\n try {\n await deleteStorageObject(key);\n } catch (cleanupError) {\n cleanupErrors.push(cleanupError);\n }\n }\n if (cleanupErrors.length) {\n console.error(\n '[taon-cms-content] Unable to clean up duplicated media',\n cleanupErrors,\n );\n contentError(\n 'Post duplication failed and one or more copied asset files could not be removed.',\n 500,\n );\n }\n throw error;\n }\n //#endregion\n }\n\n private async nextCopyTitleAndSlug(\n title: string,\n slug: string,\n manager: EntityManager,\n ): Promise<{ title: string; slug: string }> {\n const titleSuffix = title.match(/\\s+COPY(\\d+)$/i);\n const slugSuffix = slug.match(/-copy(\\d+)$/i);\n const baseTitle = title.replace(/(?:\\s+COPY\\d+)+$/i, '');\n const baseSlug = slug.replace(/(?:-copy\\d+)+$/i, '');\n let number =\n Math.max(Number(titleSuffix?.[1] ?? 0), Number(slugSuffix?.[1] ?? 0)) +\n 1;\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n while (Number.isSafeInteger(number)) {\n const copyTitle = `${baseTitle} COPY${number}`;\n const copySlug = `${baseSlug}-copy${number}`;\n const existing = await repository.findOne({\n where: [{ title: copyTitle }, { slug: copySlug }],\n });\n if (!existing) {\n return { title: copyTitle, slug: copySlug };\n }\n number += 1;\n }\n contentError('No available copy number could be generated.', 409);\n }\n\n private async createContentWithManager(\n input: TaonCmsCreateContent,\n manager: EntityManager,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n const fields = this.contentFields(input);\n if (fields.status === 'published' && fields.publishedAt === null) {\n fields.publishedAt = new Date();\n }\n const tagIds = [...new Set(input.tagIds ?? [])];\n const relatedPostIds = [...new Set(input.relatedPostIds ?? [])];\n const permissionIds = [...new Set(input.permissionIds ?? [])];\n await this.validateReferences(fields, tagIds, permissionIds, manager);\n await this.requireAvailableSlug(fields.slug, manager);\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n const now = new Date();\n const content = await repository.save(\n repository.create({\n ...fields,\n version: 1,\n createdAt: now,\n updatedAt: now,\n }),\n );\n await this.taonCmsContentTagRepository.replaceTags(\n content.id,\n tagIds,\n manager,\n );\n await this.replaceRelatedPosts(content.id, relatedPostIds, [], manager);\n if (fields.applyVisibilityToRelatedPosts && relatedPostIds.length) {\n await this.propagateVisibilityToRelatedPosts(\n content.id,\n fields.status,\n manager,\n new Set([content.id]),\n );\n }\n await this.validatePermissionInheritance(manager);\n await this.replacePermissions(content.id, permissionIds, [], manager);\n await this.replaceApplicationHook(\n content.id,\n input.applicationHook ?? null,\n manager,\n );\n await this.taonCmsContentRevisionRepository.recordContent(\n content,\n { ...fields, tagIds, relatedPostIds, permissionIds },\n manager,\n );\n return this.requireContent(content.id, manager);\n //#endregion\n }\n\n async updateContent(\n id: number,\n input: TaonCmsUpdateContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n validateContentInput(input);\n requireContentVersion(input.expectedVersion);\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const current = await this.requireContent(id, manager);\n const snapshot = await this.snapshotOf(current, manager);\n const visibility = await this.resolveVisibilityConfiguration(\n current,\n manager,\n );\n if (\n input.status !== undefined &&\n visibility.source &&\n input.status !== visibility.status\n ) {\n contentError(\n 'Visibility is inherited from a parent post and cannot be changed here.',\n 409,\n );\n }\n const fields = this.contentFields(input, snapshot);\n if (visibility.source) {\n fields.status = visibility.status;\n }\n if (\n input.status === 'published' &&\n snapshot.status !== 'published' &&\n input.publishedAt === undefined\n ) {\n fields.publishedAt = new Date();\n }\n const tagIds =\n input.tagIds === undefined\n ? snapshot.tagIds\n : [...new Set(input.tagIds)];\n const relatedPostIds =\n input.relatedPostIds === undefined\n ? snapshot.relatedPostIds\n : [...new Set(input.relatedPostIds)];\n const permissionIds =\n input.permissionIds === undefined\n ? snapshot.permissionIds\n : [...new Set(input.permissionIds)];\n return this.commitUpdate(\n current,\n input.expectedVersion,\n { ...fields, tagIds, relatedPostIds, permissionIds },\n manager,\n input.applicationHook,\n );\n });\n //#endregion\n }\n\n async archiveContent(\n id: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.updateContent(id, { status: 'archived', expectedVersion });\n //#endregion\n }\n\n async permanentlyDeleteContent(\n id: number,\n expectedVersion: number,\n deleteStorageObject: (key: string) => Promise<void>,\n ): Promise<void> {\n //#region @websqlFunc\n requireContentId(id);\n requireContentVersion(expectedVersion);\n const assetKeys = await this.connection.transaction(\n 'SERIALIZABLE',\n async manager => {\n const content = await this.requireContent(id, manager);\n if (content.version !== expectedVersion) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n if (content.status !== 'archived') {\n contentError('Only archived posts can be permanently deleted.', 409);\n }\n const repository = manager.getRepository<TaonCmsContentEntity>(\n this.target,\n );\n const assetRepository =\n manager.getRepository<TaonCmsContentAssetEntity>(\n TaonCmsContentAssetEntity,\n );\n const assetKeys = [\n content.videoKey,\n content.audioKey,\n content.attachmentKey,\n content.thumbnailKey,\n ].filter(\n (key): key is string =>\n !!key && !key.startsWith('cms-placeholder:'),\n );\n const unusedAssetKeys: string[] = [];\n for (const key of new Set(assetKeys)) {\n const references = await repository.find({\n where: [\n { videoKey: key },\n { audioKey: key },\n { attachmentKey: key },\n { thumbnailKey: key },\n ],\n });\n const assetReferences = await assetRepository.find({\n where: { key },\n });\n if (\n !references.some(reference => reference.id !== id) &&\n !assetReferences.some(asset => asset.contentId !== id)\n ) {\n unusedAssetKeys.push(key);\n }\n }\n if (content.relatedPosts?.length) {\n await repository\n .createQueryBuilder()\n .relation('relatedPosts')\n .of(id)\n .remove(content.relatedPosts.map(post => post.id));\n }\n const parents = await repository.find({\n where: { relatedPosts: { id } },\n });\n for (const parent of parents) {\n await repository\n .createQueryBuilder()\n .relation('relatedPosts')\n .of(parent.id)\n .remove(id);\n }\n const versionPosts = await repository.find({\n where: [{ publicVersionPostId: id }, { privateVersionPostId: id }],\n });\n for (const versionPost of versionPosts) {\n if (versionPost.publicVersionPostId === id) {\n versionPost.publicVersionPostId = null;\n }\n if (versionPost.privateVersionPostId === id) {\n versionPost.privateVersionPostId = null;\n }\n versionPost.version += 1;\n versionPost.updatedAt = new Date();\n await repository.save(versionPost);\n }\n await this.taonCmsContentTagRepository.replaceTags(\n id,\n [],\n manager,\n );\n await this.replacePermissions(\n id,\n [],\n content.permissions.map(permission => permission.id),\n manager,\n );\n await this.replaceApplicationHook(id, null, manager);\n await assetRepository.delete({ contentId: id });\n await manager\n .getRepository<TaonCmsContentRevisionEntity>(\n this.taonCmsContentRevisionRepository.target,\n )\n .delete({ contentId: id });\n await repository.delete({ id });\n return unusedAssetKeys;\n },\n );\n const cleanupErrors: unknown[] = [];\n for (const key of assetKeys) {\n try {\n await deleteStorageObject(key);\n } catch (error) {\n cleanupErrors.push(error);\n }\n }\n if (cleanupErrors.length) {\n console.error(\n '[taon-cms-content] Unable to clean up permanently deleted assets',\n cleanupErrors,\n );\n contentError(\n 'The post was deleted, but one or more asset files could not be removed.',\n 500,\n );\n }\n //#endregion\n }\n\n async restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n if (!input || typeof input !== 'object') {\n contentError('Restore input must be an object.');\n }\n requireContentVersion(input.revisionNumber, 'revisionNumber');\n requireContentVersion(input.expectedVersion);\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const current = await this.requireContent(id, manager);\n const revision =\n await this.taonCmsContentRevisionRepository.requireRevision(\n id,\n input.revisionNumber,\n manager,\n );\n if (!revision.snapshot) {\n contentError(\n 'This legacy revision has no complete snapshot and cannot be restored.',\n 409,\n );\n }\n const storedSnapshot = revision.snapshot;\n const snapshotFields: (keyof TaonCmsContentSnapshot)[] = [\n 'type',\n 'title',\n 'slug',\n 'body',\n 'excerpt',\n 'categoryId',\n 'authorUserId',\n 'status',\n 'publishedAt',\n 'tagIds',\n ];\n if (snapshotFields.some(field => storedSnapshot[field] === undefined)) {\n contentError(\n 'This revision has an incomplete snapshot and cannot be restored.',\n 409,\n );\n }\n validateContentInput(revision.snapshot, true);\n const snapshot = {\n // Older complete snapshots predate primary media; preserve those keys.\n ...this.contentFields(\n revision.snapshot,\n await this.snapshotOf(current, manager),\n ),\n tagIds: revision.snapshot.tagIds,\n relatedPostIds: revision.snapshot.relatedPostIds ?? [],\n permissionIds: revision.snapshot.permissionIds ?? [],\n };\n return this.commitUpdate(\n current,\n input.expectedVersion,\n snapshot,\n manager,\n );\n });\n //#endregion\n }\n\n async listRevisions(id: number): Promise<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n await this.requireContent(id, manager);\n return this.taonCmsContentRevisionRepository.listForContent(id, manager);\n });\n //#endregion\n }\n\n async listCourses(): Promise<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n return this.connection\n .getRepository<TaonCmsContentEntity>(this.target)\n .createQueryBuilder('content')\n .innerJoin('content.relatedPosts', 'relatedPost')\n .where('content.status != :archived', { archived: 'archived' })\n .andWhere('content.thumbnailKey IS NOT NULL')\n .andWhere('content.thumbnailKey != :empty', { empty: '' })\n .distinct(true)\n .orderBy('content.id', 'ASC')\n .getMany();\n //#endregion\n }\n\n async listRelatedPosts(id: number): Promise<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(\n async manager => (await this.requireContent(id, manager)).relatedPosts,\n );\n //#endregion\n }\n\n async getParentPost(id: number): Promise<TaonCmsContentEntity | null> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n const parents = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .find({\n where: { relatedPosts: { id } },\n order: { id: 'ASC' },\n });\n if (parents.length > 1) {\n contentError('A post cannot have multiple parent posts.', 409);\n }\n return parents[0] ?? null;\n });\n //#endregion\n }\n\n async getPostVersions(id: number): Promise<TaonCmsPostVersionLinks> {\n //#region @websqlFunc\n requireContentId(id);\n return this.connection.transaction(async manager => {\n const repository = manager.getRepository<TaonCmsContentEntity>(\n this.target,\n );\n const post = await this.requireContent(id, manager);\n const [publicVersionPost, privateVersionPost] = await Promise.all([\n post.publicVersionPostId\n ? repository.findOneBy({ id: post.publicVersionPostId })\n : null,\n post.privateVersionPostId\n ? repository.findOneBy({ id: post.privateVersionPostId })\n : null,\n ]);\n const validPublicVersion = Boolean(\n publicVersionPost &&\n publicVersionPost.privateVersionPostId === post.id &&\n publicVersionPost.publicVersionPostId === null,\n );\n const validPrivateVersion = Boolean(\n privateVersionPost &&\n privateVersionPost.publicVersionPostId === post.id &&\n privateVersionPost.privateVersionPostId === null,\n );\n let staleLinksRemoved = false;\n if (post.publicVersionPostId && !validPublicVersion) {\n post.publicVersionPostId = null;\n staleLinksRemoved = true;\n }\n if (post.privateVersionPostId && !validPrivateVersion) {\n post.privateVersionPostId = null;\n staleLinksRemoved = true;\n }\n if (staleLinksRemoved) {\n await repository.update(id, {\n publicVersionPostId: post.publicVersionPostId,\n privateVersionPostId: post.privateVersionPostId,\n version: post.version + 1,\n updatedAt: new Date(),\n });\n }\n return {\n publicVersionPost: validPublicVersion ? publicVersionPost : null,\n privateVersionPost: validPrivateVersion ? privateVersionPost : null,\n };\n });\n //#endregion\n }\n\n async listPermissions(id: number): Promise<TaonPermissionEntity[]> {\n //#region @websqlFunc\n requireContentId(id);\n return (await this.getPermissionConfiguration(id)).permissions;\n //#endregion\n }\n\n async getPermissionConfiguration(\n id: number,\n skipTransaction = false,\n ): Promise<TaonCmsPermissionConfiguration> {\n //#region @websqlFunc\n requireContentId(id);\n if (skipTransaction) {\n const manager = this.connection.manager;\n const post = await this.requireContent(id, manager);\n return await this.resolvePermissionConfiguration(post, manager);\n }\n return this.connection.transaction(async manager => {\n const post = await this.requireContent(id, manager);\n return await this.resolvePermissionConfiguration(post, manager);\n });\n //#endregion\n }\n\n private async resolvePermissionConfiguration(\n post: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<TaonCmsPermissionConfiguration> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n let source = post;\n const visited = new Set<number>();\n while (true) {\n if (visited.has(source.id)) {\n contentError('Permission inheritance contains a cycle.', 409);\n }\n visited.add(source.id);\n const parents = await repository.find({\n where: {\n applyPermissionsToRelatedPosts: true,\n relatedPosts: { id: source.id },\n },\n relations: { permissions: true },\n });\n if (parents.length > 1) {\n contentError(\n 'A post cannot inherit permissions from multiple sources.',\n 409,\n );\n }\n if (!parents.length) {\n return {\n permissions: source.permissions,\n source:\n source.id === post.id\n ? null\n : { id: source.id, title: source.title },\n };\n }\n source = parents[0];\n }\n //#endregion\n }\n\n private async validatePermissionInheritance(\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const parents = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .find({\n where: { applyPermissionsToRelatedPosts: true },\n relations: { relatedPosts: true },\n });\n const sources = new Map<number, number>();\n for (const parent of parents) {\n for (const child of parent.relatedPosts) {\n if (sources.has(child.id)) {\n contentError(\n `Content ${child.id} would inherit permissions from multiple sources.`,\n 409,\n );\n }\n sources.set(child.id, parent.id);\n }\n }\n for (const id of sources.keys()) {\n const visited = new Set<number>();\n let current: number | undefined = id;\n while (current !== undefined) {\n if (visited.has(current)) {\n contentError('Permission inheritance cannot contain cycles.', 409);\n }\n visited.add(current);\n current = sources.get(current);\n }\n }\n //#endregion\n }\n\n private async requireOwnPermissionEdit(\n id: number,\n permissionIds: number[],\n current: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const configuration = await this.resolvePermissionConfiguration(\n current,\n manager,\n );\n const ownIds = new Set(\n current.permissions.map(permission => permission.id),\n );\n if (\n configuration.source &&\n (ownIds.size !== new Set(permissionIds).size ||\n permissionIds.some(permissionId => !ownIds.has(permissionId)))\n ) {\n contentError(\n `Content ${id} inherits permissions; edit the source post instead.`,\n 409,\n );\n }\n //#endregion\n }\n\n async listApplicationHooks(): Promise<TaonCmsApplicationHookEntity[]> {\n //#region @websqlFunc\n return this.connection\n .getRepository(TaonCmsApplicationHookEntity)\n .find({ order: { hook: 'ASC' } });\n //#endregion\n }\n\n async getContentByHook(hook: string): Promise<string> {\n //#region @websqlFunc\n return (await this.getContentForHook(hook))?.body ?? '';\n //#endregion\n }\n\n async getContentForHook(hook: string): Promise<TaonCmsContentEntity | null> {\n //#region @websqlFunc\n if (!hook) {\n contentError('Application hook is required.');\n }\n const applicationHook = await this.connection\n .getRepository(TaonCmsApplicationHookEntity)\n .findOne({\n where: { hook: hook as TaonCmsApplicationHook },\n relations: { content: { permissions: true } },\n });\n return applicationHook?.content ?? null;\n //#endregion\n }\n\n //#region methods / media access\n async getContentBySlugForMedia(\n slug: string,\n ): Promise<TaonCmsContentEntity | null> {\n //#region @websqlFunc\n if (!slug) {\n contentError('Content slug is required.');\n }\n return this.connection\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOne({\n where: { slug },\n relations: { permissions: true },\n });\n //#endregion\n }\n\n async isPublicMediaKey(key: string): Promise<boolean> {\n //#region @websqlFunc\n const contents = await this.connection\n .getRepository<TaonCmsContentEntity>(this.target)\n .find({\n where: [\n { videoKey: key },\n { audioKey: key },\n { attachmentKey: key },\n { thumbnailKey: key },\n ],\n relations: { permissions: true },\n });\n if (!contents.length) {\n return false;\n }\n for (const content of contents) {\n if (\n content.status !== 'published' ||\n (await this.getPermissionConfiguration(content.id)).permissions.length >\n 0\n ) {\n return false;\n }\n }\n return true;\n //#endregion\n }\n //#endregion\n\n async addRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.changeRelatedPost(id, relatedPostId, expectedVersion, true);\n //#endregion\n }\n\n async deleteRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n return this.changeRelatedPost(id, relatedPostId, expectedVersion, false);\n //#endregion\n }\n\n async linkVersionPost(\n id: number,\n versionPostId: number,\n kind: TaonCmsPostVersionKind,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n requireContentId(versionPostId, 'versionPostId');\n requireContentVersion(expectedVersion);\n if (kind !== 'public' && kind !== 'private') {\n contentError('The post version kind is invalid.');\n }\n if (id === versionPostId) {\n contentError('A post cannot be its own version.');\n }\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const repository = manager.getRepository<TaonCmsContentEntity>(\n this.target,\n );\n const post = await this.requireContent(id, manager);\n const versionPost = await this.requireContent(versionPostId, manager);\n if (post.version !== expectedVersion) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n const versionStatusAllowed =\n kind === 'public'\n ? versionPost.status === 'published' &&\n (post.status === 'draft' || post.status === 'archived')\n : (versionPost.status === 'draft' ||\n versionPost.status === 'archived') &&\n post.status === 'published';\n if (!versionStatusAllowed) {\n contentError('The selected post is not eligible for this version link.');\n }\n\n const currentVersionId =\n kind === 'public'\n ? post.publicVersionPostId\n : post.privateVersionPostId;\n const oppositeVersionId =\n kind === 'public'\n ? post.privateVersionPostId\n : post.publicVersionPostId;\n const reciprocalVersionId =\n kind === 'public'\n ? versionPost.privateVersionPostId\n : versionPost.publicVersionPostId;\n const oppositeReciprocalVersionId =\n kind === 'public'\n ? versionPost.publicVersionPostId\n : versionPost.privateVersionPostId;\n if (oppositeVersionId !== null) {\n contentError('This post is already linked to a different version.', 409);\n }\n if (\n (reciprocalVersionId !== null &&\n reciprocalVersionId !== post.id) ||\n oppositeReciprocalVersionId !== null\n ) {\n contentError('The selected post is already linked to another pair.', 409);\n }\n if (currentVersionId === versionPost.id) {\n return post;\n }\n\n const currentVersion = currentVersionId\n ? await repository.findOneBy({ id: currentVersionId })\n : null;\n if (currentVersion) {\n const oldReciprocal =\n kind === 'public'\n ? currentVersion.privateVersionPostId\n : currentVersion.publicVersionPostId;\n if (oldReciprocal !== post.id) {\n contentError('The existing post version link is conflicting.', 409);\n }\n await repository.update(currentVersion.id, {\n ...(kind === 'public'\n ? { privateVersionPostId: null }\n : { publicVersionPostId: null }),\n version: currentVersion.version + 1,\n updatedAt: new Date(),\n });\n }\n\n const now = new Date();\n await repository.update(post.id, {\n ...(kind === 'public'\n ? { publicVersionPostId: versionPost.id }\n : { privateVersionPostId: versionPost.id }),\n version: post.version + 1,\n updatedAt: now,\n });\n await repository.update(versionPost.id, {\n ...(kind === 'public'\n ? { privateVersionPostId: post.id }\n : { publicVersionPostId: post.id }),\n version: versionPost.version + 1,\n updatedAt: now,\n });\n return this.requireContent(post.id, manager);\n });\n //#endregion\n }\n\n async removeVersionPost(\n id: number,\n kind: TaonCmsPostVersionKind,\n expectedVersion: number,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n requireContentVersion(expectedVersion);\n if (kind !== 'public' && kind !== 'private') {\n contentError('The post version kind is invalid.');\n }\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const repository = manager.getRepository<TaonCmsContentEntity>(\n this.target,\n );\n const post = await this.requireContent(id, manager);\n if (post.version !== expectedVersion) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n const canEditVersion =\n kind === 'public'\n ? post.status === 'draft' || post.status === 'archived'\n : post.status === 'published';\n if (!canEditVersion) {\n contentError(\n 'Version editing is disabled for the current post status.',\n 409,\n );\n }\n const versionPostId =\n kind === 'public'\n ? post.publicVersionPostId\n : post.privateVersionPostId;\n if (!versionPostId) {\n return post;\n }\n const versionPost = await repository.findOneBy({ id: versionPostId });\n if (versionPost) {\n const reciprocalVersionId =\n kind === 'public'\n ? versionPost.privateVersionPostId\n : versionPost.publicVersionPostId;\n if (reciprocalVersionId !== post.id) {\n contentError('The post version link is conflicting.', 409);\n }\n await repository.update(versionPost.id, {\n ...(kind === 'public'\n ? { privateVersionPostId: null }\n : { publicVersionPostId: null }),\n version: versionPost.version + 1,\n updatedAt: new Date(),\n });\n }\n await repository.update(post.id, {\n ...(kind === 'public'\n ? { publicVersionPostId: null }\n : { privateVersionPostId: null }),\n version: post.version + 1,\n updatedAt: new Date(),\n });\n return this.requireContent(post.id, manager);\n });\n //#endregion\n }\n\n private async changeRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n adding: boolean,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n requireContentId(id);\n requireContentId(relatedPostId, 'relatedPostId');\n requireContentVersion(expectedVersion);\n if (id === relatedPostId) {\n contentError('A post cannot relate to itself.');\n }\n return this.connection.transaction('SERIALIZABLE', async manager => {\n const current = await this.requireContent(id, manager);\n await this.requireContent(relatedPostId, manager);\n const snapshot = await this.snapshotOf(current, manager);\n const ids = snapshot.relatedPostIds ?? [];\n snapshot.relatedPostIds = adding\n ? [...new Set([...ids, relatedPostId])]\n : ids.filter(postId => postId !== relatedPostId);\n return this.commitUpdate(current, expectedVersion, snapshot, manager);\n });\n //#endregion\n }\n\n private async requireContent(\n id: number,\n manager: EntityManager,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n const content = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOne({\n where: { id },\n relations: {\n relatedPosts: true,\n permissions: true,\n applicationHook: true,\n },\n });\n if (!content) {\n contentError(`Content ${id} does not exist.`, 404);\n }\n return content;\n //#endregion\n }\n\n private contentFields(\n input: Partial<TaonCmsContentFields>,\n current?: TaonCmsContentFields,\n ): TaonCmsContentFields {\n const type = input.type ?? current?.type ?? TaonCmsContentType.Normal;\n const title = input.title ?? current?.title;\n const slug = input.slug ?? current?.slug;\n if (title === undefined || slug === undefined) {\n contentError('title and slug are required.');\n }\n const publishedAt =\n input.publishedAt === undefined\n ? (current?.publishedAt ?? null)\n : input.publishedAt;\n return {\n type,\n title,\n slug,\n body: input.body === undefined ? (current?.body ?? null) : input.body,\n videoKey:\n input.videoKey === undefined\n ? (current?.videoKey ?? null)\n : input.videoKey,\n audioKey:\n input.audioKey === undefined\n ? (current?.audioKey ?? null)\n : input.audioKey,\n attachmentKey:\n input.attachmentKey === undefined\n ? (current?.attachmentKey ?? null)\n : input.attachmentKey,\n thumbnailKey:\n input.thumbnailKey === undefined\n ? (current?.thumbnailKey ?? null)\n : input.thumbnailKey,\n excerpt:\n input.excerpt === undefined\n ? (current?.excerpt ?? null)\n : input.excerpt,\n categoryId:\n input.categoryId === undefined\n ? (current?.categoryId ?? null)\n : input.categoryId,\n authorUserId:\n input.authorUserId === undefined\n ? (current?.authorUserId ?? null)\n : input.authorUserId,\n status: input.status ?? current?.status ?? 'draft',\n publishedAt: publishedAt === null ? null : new Date(publishedAt),\n applyPermissionsToRelatedPosts:\n input.applyPermissionsToRelatedPosts ??\n current?.applyPermissionsToRelatedPosts ??\n false,\n applyVisibilityToRelatedPosts:\n input.applyVisibilityToRelatedPosts ??\n current?.applyVisibilityToRelatedPosts ??\n false,\n };\n }\n\n private async snapshotOf(\n content: TaonCmsContentEntity,\n manager: EntityManager,\n ): Promise<TaonCmsContentSnapshot> {\n //#region @websqlFunc\n return {\n ...this.contentFields({\n ...content,\n status: this.contentStatus(content.status),\n }),\n tagIds: await this.taonCmsContentTagRepository.findTagIds(\n content.id,\n manager,\n ),\n relatedPostIds: content.relatedPosts.map(post => post.id),\n permissionIds: content.permissions.map(permission => permission.id),\n };\n //#endregion\n }\n\n private contentStatus(status: string): TaonCmsContentFields['status'] {\n if (status !== 'draft' && status !== 'published' && status !== 'archived') {\n contentError(`Unsupported stored content status: ${status}.`, 409);\n }\n return status;\n }\n\n private async validateReferences(\n fields: TaonCmsContentFields,\n tagIds: number[],\n permissionIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (fields.categoryId !== null) {\n await this.taonCmsCategoryRepository.requireCategory(\n fields.categoryId,\n manager,\n );\n }\n await this.tags.requireTags(tagIds, manager);\n await this.requirePermissions(permissionIds, manager);\n //#endregion\n }\n\n private async requirePermissions(\n permissionIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (!permissionIds.length) {\n return;\n }\n const permissions = await manager\n .getRepository<TaonPermissionEntity>(TaonPermissionEntity)\n .findBy({ id: In(permissionIds) });\n const foundIds = new Set(permissions.map(permission => permission.id));\n const missingId = permissionIds.find(id => !foundIds.has(id));\n if (missingId !== undefined) {\n contentError(`Permission ${missingId} does not exist.`, 404);\n }\n //#endregion\n }\n\n private async requireAvailableSlug(\n slug: string,\n manager: EntityManager,\n contentId?: number,\n ): Promise<void> {\n //#region @websqlFunc\n const existing = await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .findOneBy({ slug });\n if (existing && existing.id !== contentId) {\n contentError(`Slug \"${slug}\" is already in use.`, 409);\n }\n //#endregion\n }\n\n private async replaceRelatedPosts(\n id: number,\n relatedPostIds: number[],\n previousIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n if (relatedPostIds.includes(id)) {\n contentError('A post cannot relate to itself.');\n }\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n if (relatedPostIds.length) {\n const posts = await repository.findBy({ id: In(relatedPostIds) });\n const foundIds = new Set(posts.map(post => post.id));\n const missingId = relatedPostIds.find(postId => !foundIds.has(postId));\n if (missingId !== undefined) {\n contentError(`Content ${missingId} does not exist.`, 404);\n }\n }\n const added = relatedPostIds.filter(\n postId => !previousIds.includes(postId),\n );\n const removed = previousIds.filter(\n postId => !relatedPostIds.includes(postId),\n );\n for (const relatedPostId of added) {\n const parents = await repository.find({\n where: { relatedPosts: { id: relatedPostId } },\n select: { id: true },\n });\n if (parents.some(parent => parent.id !== id)) {\n contentError('A post cannot have multiple parent posts.', 409);\n }\n if (await this.relatedPostPathExists(relatedPostId, id, manager)) {\n contentError('Related posts cannot contain circular relationships.', 409);\n }\n }\n if (added.length || removed.length) {\n await repository\n .createQueryBuilder()\n .relation('relatedPosts')\n .of(id)\n .addAndRemove(added, removed);\n }\n //#endregion\n }\n\n private async relatedPostPathExists(\n startId: number,\n targetId: number,\n manager: EntityManager,\n ): Promise<boolean> {\n //#region @websqlFunc\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n const pending = [startId];\n const visited = new Set<number>();\n while (pending.length) {\n const currentId = pending.pop();\n if (currentId === undefined) {\n continue;\n }\n if (currentId === targetId) {\n return true;\n }\n if (visited.has(currentId)) {\n continue;\n }\n visited.add(currentId);\n const current = await repository.findOne({\n where: { id: currentId },\n relations: { relatedPosts: true },\n });\n pending.push(...(current?.relatedPosts ?? []).map(post => post.id));\n }\n return false;\n //#endregion\n }\n\n private async replacePermissions(\n id: number,\n permissionIds: number[],\n previousIds: number[],\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const added = permissionIds.filter(\n permissionId => !previousIds.includes(permissionId),\n );\n const removed = previousIds.filter(\n permissionId => !permissionIds.includes(permissionId),\n );\n if (added.length || removed.length) {\n await manager\n .getRepository<TaonCmsContentEntity>(this.target)\n .createQueryBuilder()\n .relation('permissions')\n .of(id)\n .addAndRemove(added, removed);\n }\n //#endregion\n }\n\n private async replaceApplicationHook(\n contentId: number,\n hook: TaonCmsApplicationHook | null,\n manager: EntityManager,\n ): Promise<void> {\n //#region @websqlFunc\n const repository = manager.getRepository(TaonCmsApplicationHookEntity);\n const current = await repository.findOneBy({ contentId });\n if (hook === null) {\n if (current) {\n current.contentId = null;\n await repository.save(current);\n }\n return;\n }\n const target = await repository.findOneBy({ hook });\n if (!target) {\n contentError(`Application hook \"${hook}\" is not configured.`, 404);\n }\n if (target.contentId !== null && target.contentId !== contentId) {\n contentError(`Application hook \"${hook}\" is already in use.`, 409);\n }\n if (current?.id === target.id) {\n return;\n }\n if (current) {\n current.contentId = null;\n await repository.save(current);\n }\n target.contentId = contentId;\n await repository.save(target);\n //#endregion\n }\n\n private async commitUpdate(\n current: TaonCmsContentEntity,\n expectedVersion: number,\n snapshot: TaonCmsContentSnapshot,\n manager: EntityManager,\n applicationHook?: TaonCmsApplicationHook | null,\n propagateVisibility = true,\n ): Promise<TaonCmsContentEntity> {\n //#region @websqlFunc\n if (current.version !== expectedVersion) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n await this.requireOwnPermissionEdit(\n current.id,\n snapshot.permissionIds,\n current,\n manager,\n );\n await this.validateReferences(\n snapshot,\n snapshot.tagIds,\n snapshot.permissionIds,\n manager,\n );\n await this.requireAvailableSlug(snapshot.slug, manager, current.id);\n // Preserve the first pre-API version before replacing it.\n const history = await this.taonCmsContentRevisionRepository.listForContent(\n current.id,\n manager,\n );\n if (\n !history.some(revision => revision.revisionNumber === current.version)\n ) {\n await this.taonCmsContentRevisionRepository.recordContent(\n current,\n await this.snapshotOf(current, manager),\n manager,\n );\n }\n const fields = this.contentFields(snapshot);\n const repository = manager.getRepository<TaonCmsContentEntity>(this.target);\n const result = await repository.update(\n { id: current.id, version: expectedVersion },\n { ...fields, version: expectedVersion + 1, updatedAt: new Date() },\n );\n if (result.affected !== 1) {\n contentError('Content has changed. Reload it before editing.', 409);\n }\n await this.taonCmsContentTagRepository.replaceTags(\n current.id,\n snapshot.tagIds,\n manager,\n );\n await this.replaceRelatedPosts(\n current.id,\n [...new Set(snapshot.relatedPostIds ?? [])],\n current.relatedPosts.map(post => post.id),\n manager,\n );\n await this.validatePermissionInheritance(manager);\n await this.replacePermissions(\n current.id,\n [...new Set(snapshot.permissionIds ?? [])],\n current.permissions.map(permission => permission.id),\n manager,\n );\n if (applicationHook !== undefined) {\n await this.replaceApplicationHook(current.id, applicationHook, manager);\n }\n const updated = await this.requireContent(current.id, manager);\n await this.taonCmsContentRevisionRepository.recordContent(\n updated,\n {\n ...fields,\n tagIds: snapshot.tagIds,\n relatedPostIds: updated.relatedPosts.map(post => post.id),\n permissionIds: updated.permissions.map(permission => permission.id),\n },\n manager,\n );\n if (propagateVisibility) {\n const visibility = await this.resolveVisibilityConfiguration(\n updated,\n manager,\n );\n if (snapshot.applyVisibilityToRelatedPosts || visibility.source) {\n await this.propagateVisibilityToRelatedPosts(\n updated.id,\n snapshot.status,\n manager,\n new Set([updated.id]),\n );\n }\n }\n return updated;\n //#endregion\n }\n\n private async propagateVisibilityToRelatedPosts(\n parentId: number,\n status: TaonCmsContentFields['status'],\n manager: EntityManager,\n visited: Set<number>,\n ): Promise<void> {\n //#region @websqlFunc\n const parent = await this.requireContent(parentId, manager);\n for (const relatedPost of parent.relatedPosts ?? []) {\n if (visited.has(relatedPost.id)) {\n contentError(\n 'Related posts cannot contain circular relationships.',\n 409,\n );\n }\n visited.add(relatedPost.id);\n const child = await this.requireContent(relatedPost.id, manager);\n if (child.status !== status) {\n const snapshot = await this.snapshotOf(child, manager);\n const previousStatus = snapshot.status;\n snapshot.status = status;\n if (status === 'published' && previousStatus !== 'published') {\n snapshot.publishedAt = new Date();\n }\n await this.commitUpdate(\n child,\n child.version,\n snapshot,\n manager,\n undefined,\n false,\n );\n }\n await this.propagateVisibilityToRelatedPosts(\n child.id,\n status,\n manager,\n visited,\n );\n }\n //#endregion\n }\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}\n","import {\n Column,\n CreateDateColumn,\n Index,\n PrimaryGeneratedColumn,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql-prod';\n\n@TaonEntity({\n className: 'TaonCmsCommentBlockedPhraseEntity',\n createTable: true,\n})\n//#region @websql\n@Index(['normalizedPhrase'], { unique: true })\n//#endregion\nexport class TaonCmsCommentBlockedPhraseEntity extends TaonBaseEntity<TaonCmsCommentBlockedPhraseEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id!: number;\n\n //#region @websql\n @Column({ type: 'varchar', length: 500 })\n //#endregion\n phrase!: string;\n\n //#region @websql\n @Column({ type: 'varchar', length: 500 })\n //#endregion\n normalizedPhrase!: string;\n\n //#region @websql\n @CreateDateColumn()\n //#endregion\n createdAt!: Date;\n}\n","import {\n Column,\n CreateDateColumn,\n Index,\n PrimaryGeneratedColumn,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql-prod';\n\n@TaonEntity({\n className: 'TaonCmsCommentBlockedUserEntity',\n createTable: true,\n})\n//#region @websql\n@Index(['userId'], { unique: true })\n//#endregion\nexport class TaonCmsCommentBlockedUserEntity extends TaonBaseEntity<TaonCmsCommentBlockedUserEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id!: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n userId!: number;\n\n //#region @websql\n @CreateDateColumn()\n //#endregion\n createdAt!: Date;\n}\n","import {\n Column,\n CreateDateColumn,\n Index,\n PrimaryGeneratedColumn,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql-prod';\n\n@TaonEntity({\n className: 'TaonCmsCommentSpamReportEntity',\n createTable: true,\n})\n//#region @websql\n@Index(['commentId', 'userId'], { unique: true })\n//#endregion\nexport class TaonCmsCommentSpamReportEntity extends TaonBaseEntity<TaonCmsCommentSpamReportEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id!: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n commentId!: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n userId!: number;\n\n //#region @websql\n @CreateDateColumn()\n //#endregion\n createdAt!: Date;\n}\n","import {\n Column,\n CreateDateColumn,\n Index,\n PrimaryGeneratedColumn,\n TaonBaseEntity,\n TaonEntity,\n} from 'taon/websql-prod';\n\n@TaonEntity({\n className: 'TaonCmsCommentVoteEntity',\n createTable: true,\n})\n//#region @websql\n@Index(['commentId', 'userId'], { unique: true })\n//#endregion\nexport class TaonCmsCommentVoteEntity extends TaonBaseEntity<TaonCmsCommentVoteEntity> {\n //#region @websql\n @PrimaryGeneratedColumn()\n //#endregion\n id!: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n commentId!: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n userId!: number;\n\n //#region @websql\n @Column({ type: 'integer' })\n //#endregion\n value!: -1 | 1;\n\n //#region @websql\n @CreateDateColumn()\n //#endregion\n createdAt!: Date;\n}\n","//#region imports\nimport { Body, DELETE, GET, HttpStatusEnum, POST, Query, TaonBaseCrudController, TaonController, getStatusCode, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport {\n TaonAuthContextRepository,\n TaonSessionRepository,\n TaonSessionUserEntity,\n} from '@taon-dev/session/websql-prod';\n\nimport { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsContentRepository } from '../taon-cms-content/taon-cms-content.repository';\n\nimport { TaonCmsCommentBlockedPhraseEntity } from './taon-cms-comment-blocked-phrase.entity';\nimport { TaonCmsCommentBlockedUserEntity } from './taon-cms-comment-blocked-user.entity';\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentSpamReportEntity } from './taon-cms-comment-spam-report.entity';\nimport { TaonCmsCommentVoteEntity } from './taon-cms-comment-vote.entity';\n//#endregion\n\ninterface CreateCommentInput {\n contentId: number;\n body: string;\n}\n\ninterface VoteInput {\n commentId: number;\n value: -1 | 1;\n}\n\ninterface BlockedUserInput {\n userId: number;\n blocked: boolean;\n}\n\nexport interface CommentListItem extends TaonCmsCommentEntity {\n voteScore: number;\n upvotes: number;\n downvotes: number;\n spamReports: number;\n currentUserVote: -1 | 1 | 0;\n currentUserReported: boolean;\n postTitle: string;\n postSlug: string;\n authorName: string;\n}\n\n@TaonController<TaonCmsCommentController>({\n className: 'TaonCmsCommentController',\n allowedMethods: [\n 'getComments',\n 'createComment',\n 'deleteComment',\n 'voteComment',\n 'reportSpam',\n 'getCommentsBackoffice',\n 'getBlockedUsers',\n 'setBlockedUser',\n 'getBlockedPhrases',\n 'addBlockedPhrase',\n 'deleteBlockedPhrase',\n ],\n})\nexport class TaonCmsCommentController extends TaonBaseCrudController<TaonCmsCommentEntity> {\n entityClassResolveFn: () => typeof TaonCmsCommentEntity = () =>\n TaonCmsCommentEntity;\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly posts = this.injectCustomRepo(TaonCmsContentRepository);\n\n private repository<T>(entity: { new (): T }) {\n return this.ctx.connection.manager.getRepository(entity);\n }\n\n private async requireAuthenticated(\n req: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCommentController>['req'],\n res: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCommentController>['res'],\n t: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCommentController>['t'],\n ): Promise<number> {\n //#region @websqlFunc\n await this.taonSessionRepository.throwIfNotAuthenticated({ req, res });\n const userId = Number(req.userId);\n if (!Number.isSafeInteger(userId) || userId <= 0) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.UNAUTHORIZED),\n message: t.gettext('Authentication is required to comment.'),\n });\n }\n return userId;\n //#endregion\n }\n\n private async requireCmsManager(\n req: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCommentController>['req'],\n t: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCommentController>['t'],\n ): Promise<void> {\n //#region @websqlFunc\n\n await this.taonSessionRepository.throwIfNotAuthenticated({ req });\n const context = await this.taonAuthContextRepository.getContext(\n req.userId,\n req.sessionId,\n );\n if (!context?.hasAccess?.toManageCms) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.FORBIDDEN),\n message: t.gettext(\"You can't manage CMS comments.\"),\n });\n }\n //#endregion\n }\n\n @GET()\n getComments(\n @Query('contentId') contentId: number,\n ): Taon__NS__Response<CommentListItem[]> {\n //#region @websqlFunc\n return async (req, res, { t }) => {\n const id = Number(contentId);\n if (!Number.isSafeInteger(id) || id <= 0) {\n return [];\n }\n const post = await this.repository(TaonCmsContentEntity).findOne({\n where: { id },\n });\n if (!post) {\n return [];\n }\n await this.requirePostReadAccess(post, req, res, t);\n const currentUserId = Number(req.userId) || 0;\n const comments = await this.db.find({\n where: { contentId: id, status: 'published' },\n order: { createdAt: 'ASC' },\n });\n return this.withModerationData(comments, currentUserId);\n };\n //#endregion\n }\n\n @POST()\n createComment(\n @Body() input: CreateCommentInput,\n ): Taon__NS__Response<CommentListItem> {\n //#region @websqlFunc\n return async (req, res, { t }) => {\n const userId = await this.requireAuthenticated(req, res, t);\n const contentId = Number(input?.contentId);\n const body = typeof input?.body === 'string' ? input.body.trim() : '';\n if (!Number.isSafeInteger(contentId) || contentId <= 0 || !body) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.BAD_REQUEST),\n message: t.gettext('A post and comment text are required.'),\n });\n }\n if (body.length > 500) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.BAD_REQUEST),\n message: t.gettext('Comments cannot exceed 500 characters.'),\n });\n }\n\n const post = await this.repository(TaonCmsContentEntity).findOne({\n where: { id: contentId },\n });\n if (!post) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.NOT_FOUND),\n message: t.gettext('The post was not found.'),\n });\n }\n await this.requirePostReadAccess(post, req, res, t);\n\n const blockedUser = await this.repository(\n TaonCmsCommentBlockedUserEntity,\n ).findOne({ where: { userId } });\n if (blockedUser) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.FORBIDDEN),\n message: t.gettext('Your account is not allowed to comment.'),\n });\n }\n\n const blockedPhrases = await this.repository(\n TaonCmsCommentBlockedPhraseEntity,\n ).find();\n const lowerBody = body.toLowerCase();\n if (\n blockedPhrases.some(phrase =>\n lowerBody.includes(phrase.normalizedPhrase),\n )\n ) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.BAD_REQUEST),\n message: t.gettext('Your comment contains a blocked word or phrase.'),\n });\n }\n\n const dayStart = new Date();\n dayStart.setHours(0, 0, 0, 0);\n const tomorrow = new Date(dayStart);\n tomorrow.setDate(tomorrow.getDate() + 1);\n const commentsToday = await this.db\n .createQueryBuilder('comment')\n .where('comment.userId = :userId', { userId })\n .andWhere('comment.createdAt >= :dayStart', { dayStart })\n .andWhere('comment.createdAt < :tomorrow', { tomorrow })\n .getCount();\n if (commentsToday >= 50) {\n Taon__NS__error({\n status: 429,\n message: t.gettext(\n 'You have reached the limit of 50 comments per day.',\n ),\n });\n }\n\n const comment = await this.db.save(\n this.db.create({\n contentId,\n parentCommentId: null,\n userId,\n body,\n status: 'published',\n }),\n );\n return (await this.withModerationData([comment], userId))[0];\n };\n //#endregion\n }\n\n @DELETE()\n deleteComment(@Query('id') commentId: number): Taon__NS__Response<boolean> {\n //#region @websqlFunc\n return async (req, res, { t }) => {\n const userId = await this.requireAuthenticated(req, res, t);\n const comment = await this.db.findOne({ where: { id: commentId } });\n if (!comment) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.NOT_FOUND),\n message: t.gettext('The comment was not found.'),\n });\n }\n const context = await this.taonAuthContextRepository.getContext(\n req.userId,\n req.sessionId,\n );\n if (comment.userId !== userId && !context?.hasAccess?.toManageCms) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.FORBIDDEN),\n message: t.gettext('You are not allowed to delete this comment.'),\n });\n }\n await this.repository(TaonCmsCommentVoteEntity).delete({ commentId });\n await this.repository(TaonCmsCommentSpamReportEntity).delete({\n commentId,\n });\n await this.db.remove(comment);\n return true;\n };\n //#endregion\n }\n\n @POST()\n voteComment(@Body() input: VoteInput): Taon__NS__Response<CommentListItem> {\n //#region @websqlFunc\n return async (req, res, { t }) => {\n const userId = await this.requireAuthenticated(req, res, t);\n if (\n !Number.isSafeInteger(Number(input?.commentId)) ||\n (input.value !== -1 && input.value !== 1)\n ) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.BAD_REQUEST),\n message: t.gettext('Choose a valid comment vote.'),\n });\n }\n const commentId = Number(input.commentId);\n const comment = await this.db.findOne({ where: { id: commentId } });\n if (!comment) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.NOT_FOUND),\n message: t.gettext('The comment was not found.'),\n });\n }\n const post = await this.repository(TaonCmsContentEntity).findOne({\n where: { id: comment.contentId },\n });\n if (!post) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.NOT_FOUND),\n message: t.gettext('The post was not found.'),\n });\n }\n await this.requirePostReadAccess(post, req, res, t);\n const votes = this.repository(TaonCmsCommentVoteEntity);\n const existing = await votes.findOne({ where: { commentId, userId } });\n if (existing?.value === input.value) {\n await votes.remove(existing);\n } else if (existing) {\n existing.value = input.value;\n await votes.save(existing);\n } else {\n await votes.save(\n votes.create({ commentId, userId, value: input.value }),\n );\n }\n return (await this.withModerationData([comment], userId))[0];\n };\n //#endregion\n }\n\n @POST()\n reportSpam(@Body('commentId') commentId: number): Taon__NS__Response<boolean> {\n //#region @websqlFunc\n return async (req, res, { t }) => {\n const userId = await this.requireAuthenticated(req, res, t);\n const id = Number(commentId);\n if (!Number.isSafeInteger(id) || id <= 0) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.BAD_REQUEST),\n message: t.gettext('A valid comment is required.'),\n });\n }\n const comment = await this.db.findOne({ where: { id } });\n if (!comment) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.NOT_FOUND),\n message: t.gettext('The comment was not found.'),\n });\n }\n const post = await this.repository(TaonCmsContentEntity).findOne({\n where: { id: comment.contentId },\n });\n if (!post) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.NOT_FOUND),\n message: t.gettext('The post was not found.'),\n });\n }\n await this.requirePostReadAccess(post, req, res, t);\n const reports = this.repository(TaonCmsCommentSpamReportEntity);\n const existing = await reports.findOne({\n where: { commentId: id, userId },\n });\n if (!existing) {\n await reports.save(reports.create({ commentId: id, userId }));\n }\n return true;\n };\n //#endregion\n }\n\n @GET()\n getCommentsBackoffice(\n @Query('pageNumber') pageNumber = 1,\n @Query('pageSize') pageSize = 10,\n @Query('id') id?: string,\n @Query('text') text?: string,\n @Query('author') author?: string,\n ): Taon__NS__Response<{ items: CommentListItem[]; total: number }> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n await this.requireCmsManager(req, t);\n const page = Math.max(1, Number(pageNumber) || 1);\n const size = Math.min(100, Math.max(1, Number(pageSize) || 10));\n const query = this.db.createQueryBuilder('comment');\n if (id?.trim()) {\n const commentId = Number(id.trim());\n query.andWhere('comment.id = :id', {\n id: Number.isSafeInteger(commentId) && commentId > 0 ? commentId : -1,\n });\n }\n if (text?.trim()) {\n query.andWhere('LOWER(comment.body) LIKE :text', {\n text: `%${text.trim().toLowerCase()}%`,\n });\n }\n if (author?.trim()) {\n query\n .leftJoin(\n TaonSessionUserEntity,\n 'sessionUser',\n 'sessionUser.id = comment.userId',\n )\n .andWhere(\n '(LOWER(sessionUser.username) LIKE :author OR CAST(comment.userId AS TEXT) LIKE :author)',\n { author: `%${author.trim().toLowerCase()}%` },\n );\n }\n query.orderBy('comment.createdAt', 'DESC');\n query.skip((page - 1) * size).take(size);\n const [comments, total] = await query.getManyAndCount();\n return {\n items: await this.withModerationData(comments, Number(req.userId) || 0),\n total,\n };\n };\n //#endregion\n }\n\n @GET()\n getBlockedUsers(): Taon__NS__Response<TaonCmsCommentBlockedUserEntity[]> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n await this.requireCmsManager(req, t);\n return this.repository(TaonCmsCommentBlockedUserEntity).find({\n order: { createdAt: 'DESC' },\n });\n };\n //#endregion\n }\n\n @POST()\n setBlockedUser(@Body() input: BlockedUserInput): Taon__NS__Response<boolean> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n await this.requireCmsManager(req, t);\n const userId = Number(input?.userId);\n if (\n !Number.isSafeInteger(userId) ||\n userId <= 0 ||\n typeof input?.blocked !== 'boolean'\n ) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.BAD_REQUEST),\n message: t.gettext(\n 'A valid user ID and blocked status are required.',\n ),\n });\n }\n if (input.blocked) {\n const user = await this.repository(TaonSessionUserEntity).findOne({\n where: { id: userId },\n });\n if (!user) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.NOT_FOUND),\n message: t.gettext('The user was not found.'),\n });\n }\n }\n const blockedUsers = this.repository(TaonCmsCommentBlockedUserEntity);\n const existing = await blockedUsers.findOne({ where: { userId } });\n if (input.blocked && !existing) {\n await blockedUsers.save(blockedUsers.create({ userId }));\n } else if (!input.blocked && existing) {\n await blockedUsers.remove(existing);\n }\n return true;\n };\n //#endregion\n }\n\n @GET()\n getBlockedPhrases(): Taon__NS__Response<TaonCmsCommentBlockedPhraseEntity[]> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n await this.requireCmsManager(req, t);\n return this.repository(TaonCmsCommentBlockedPhraseEntity).find({\n order: { phrase: 'ASC' },\n });\n };\n //#endregion\n }\n\n @POST()\n addBlockedPhrase(\n @Body('phrase') phrase: string,\n ): Taon__NS__Response<TaonCmsCommentBlockedPhraseEntity> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n await this.requireCmsManager(req, t);\n const normalizedPhrase =\n typeof phrase === 'string' ? phrase.trim().toLowerCase() : '';\n const displayPhrase = typeof phrase === 'string' ? phrase.trim() : '';\n if (!displayPhrase || displayPhrase.length > 500) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.BAD_REQUEST),\n message: t.gettext(\n 'Enter a word or phrase of at most 500 characters.',\n ),\n });\n }\n const phrases = this.repository(TaonCmsCommentBlockedPhraseEntity);\n const existing = await phrases.findOne({ where: { normalizedPhrase } });\n if (existing) {\n return existing;\n }\n return phrases.save(\n phrases.create({ phrase: displayPhrase, normalizedPhrase }),\n );\n };\n //#endregion\n }\n\n @DELETE()\n deleteBlockedPhrase(@Query('id') id: number): Taon__NS__Response<boolean> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n await this.requireCmsManager(req, t);\n const phrase = await this.repository(\n TaonCmsCommentBlockedPhraseEntity,\n ).findOne({ where: { id } });\n if (!phrase) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.NOT_FOUND),\n message: t.gettext('The blocked phrase was not found.'),\n });\n }\n await this.repository(TaonCmsCommentBlockedPhraseEntity).remove(phrase);\n return true;\n };\n //#endregion\n }\n\n private async requirePostReadAccess(\n post: TaonCmsContentEntity,\n req: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCommentController>['req'],\n res: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCommentController>['res'],\n t: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsCommentController>['t'],\n ): Promise<void> {\n //#region @websqlFunc\n const { permissions } = await this.posts.getPermissionConfiguration(\n post.id,\n true,\n );\n const isPublic = post.status === 'published' && permissions.length === 0;\n if (isPublic) {\n return;\n }\n await this.taonSessionRepository.throwIfNotAuthenticated({ req, res });\n const context = await this.taonAuthContextRepository.getContext(\n req.userId,\n req.sessionId,\n );\n const userPermissions = new Set(context?.permissions ?? []);\n if (\n !context?.isSuperUser &&\n !permissions.some(permission => userPermissions.has(permission.code))\n ) {\n Taon__NS__error({\n status: getStatusCode(HttpStatusEnum.FORBIDDEN),\n message: t.gettext('You do not have access to this post.'),\n });\n }\n //#endregion\n }\n\n private async withModerationData(\n comments: TaonCmsCommentEntity[],\n currentUserId: number,\n ): Promise<CommentListItem[]> {\n //#region @websqlFunc\n const voteRepository = this.repository(TaonCmsCommentVoteEntity);\n const reportRepository = this.repository(TaonCmsCommentSpamReportEntity);\n return Promise.all(\n comments.map(async comment => {\n const [votes, reports, post, user] = await Promise.all([\n voteRepository.find({ where: { commentId: comment.id } }),\n reportRepository.find({ where: { commentId: comment.id } }),\n this.repository(TaonCmsContentEntity).findOne({\n where: { id: comment.contentId },\n }),\n this.repository(TaonSessionUserEntity).findOne({\n where: { id: comment.userId },\n }),\n ]);\n const upvotes = votes.filter(vote => vote.value === 1).length;\n const downvotes = votes.filter(vote => vote.value === -1).length;\n return Object.assign(new TaonCmsCommentEntity(), comment, {\n upvotes,\n downvotes,\n voteScore: upvotes - downvotes,\n spamReports: reports.length,\n currentUserVote:\n votes.find(vote => vote.userId === currentUserId)?.value ?? 0,\n currentUserReported: reports.some(\n report => report.userId === currentUserId,\n ),\n postTitle: post?.title ?? '',\n postSlug: post?.slug ?? '',\n authorName: user?.username?.trim() || `User #${comment.userId}`,\n }) as CommentListItem;\n }),\n );\n //#endregion\n }\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsCommentRepository',\n})\nexport class TaonCmsCommentRepository extends TaonBaseRepository<TaonCmsCommentEntity> {\n entityClassResolveFn: () => typeof TaonCmsCommentEntity = () => TaonCmsCommentEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsCommentProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsCommentProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsCommentMiddleware',\n})\nexport class TaonCmsCommentMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentProvider } from './taon-cms-comment.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsCommentSubscriber>({\n className: 'TaonCmsCommentSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsCommentSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsCommentProvider = this.injectProvider(TaonCmsCommentProvider);\n listenTo(): typeof TaonCmsCommentEntity {\n return TaonCmsCommentEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport { TaonCmsCommentController } from './taon-cms-comment.controller';\nimport { TaonCmsCommentRepository } from './taon-cms-comment.repository';\nimport { TaonCmsCommentProvider } from './taon-cms-comment.provider';\nimport { TaonCmsCommentMiddleware } from './taon-cms-comment.middleware';\nimport { TaonCmsCommentSubscriber } from './taon-cms-comment.subscriber';\nimport { TaonCmsCommentVoteEntity } from './taon-cms-comment-vote.entity';\nimport { TaonCmsCommentSpamReportEntity } from './taon-cms-comment-spam-report.entity';\nimport { TaonCmsCommentBlockedUserEntity } from './taon-cms-comment-blocked-user.entity';\nimport { TaonCmsCommentBlockedPhraseEntity } from './taon-cms-comment-blocked-phrase.entity';\n//#endregion\n\nexport const TaonCmsCommentAbstractContext = createContext(() => ({\n contextName: 'TaonCmsCommentAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: {\n TaonCmsCommentEntity,\n TaonCmsCommentVoteEntity,\n TaonCmsCommentSpamReportEntity,\n TaonCmsCommentBlockedUserEntity,\n TaonCmsCommentBlockedPhraseEntity,\n },\n controllers: { TaonCmsCommentController },\n repositories: { TaonCmsCommentRepository },\n providers: { TaonCmsCommentProvider },\n middlewares: { TaonCmsCommentMiddleware },\n subscribers: { TaonCmsCommentSubscriber },\n}));\n","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionRepository } from './taon-cms-content-revision.repository';\n//#endregion\n\n@TaonController<TaonCmsContentRevisionController>({\n className: 'TaonCmsContentRevisionController',\n allowedMethods: [],\n})\nexport class TaonCmsContentRevisionController extends TaonBaseCrudController<TaonCmsContentRevisionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentRevisionEntity = () =>\n TaonCmsContentRevisionEntity;\n\n taonCmsContentRevisionRepository = this.injectCustomRepo(\n TaonCmsContentRevisionRepository,\n );\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentRevisionProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentRevisionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentRevisionMiddleware',\n})\nexport class TaonCmsContentRevisionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionProvider } from './taon-cms-content-revision.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentRevisionSubscriber>({\n className: 'TaonCmsContentRevisionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentRevisionSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentRevisionProvider = this.injectProvider(TaonCmsContentRevisionProvider);\n listenTo(): typeof TaonCmsContentRevisionEntity {\n return TaonCmsContentRevisionEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionController } from './taon-cms-content-revision.controller';\nimport { TaonCmsContentRevisionRepository } from './taon-cms-content-revision.repository';\nimport { TaonCmsContentRevisionProvider } from './taon-cms-content-revision.provider';\nimport { TaonCmsContentRevisionMiddleware } from './taon-cms-content-revision.middleware';\nimport { TaonCmsContentRevisionSubscriber } from './taon-cms-content-revision.subscriber';\n//#endregion\n\nexport const TaonCmsContentRevisionAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentRevisionAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentRevisionEntity },\n controllers: { TaonCmsContentRevisionController },\n repositories: { TaonCmsContentRevisionRepository },\n providers: { TaonCmsContentRevisionProvider },\n middlewares: { TaonCmsContentRevisionMiddleware },\n subscribers: { TaonCmsContentRevisionSubscriber },\n}));\n","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagRepository } from './taon-cms-content-tag.repository';\n//#endregion\n\n@TaonController<TaonCmsContentTagController>({\n className: 'TaonCmsContentTagController',\n allowedMethods: [],\n})\nexport class TaonCmsContentTagController extends TaonBaseCrudController<TaonCmsContentTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentTagEntity = () =>\n TaonCmsContentTagEntity;\n\n taonCmsContentTagRepository = this.injectCustomRepo(\n TaonCmsContentTagRepository,\n );\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentTagProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentTagProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentTagMiddleware',\n})\nexport class TaonCmsContentTagMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagProvider } from './taon-cms-content-tag.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentTagSubscriber>({\n className: 'TaonCmsContentTagSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentTagSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentTagProvider = this.injectProvider(TaonCmsContentTagProvider);\n listenTo(): typeof TaonCmsContentTagEntity {\n return TaonCmsContentTagEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagController } from './taon-cms-content-tag.controller';\nimport { TaonCmsContentTagRepository } from './taon-cms-content-tag.repository';\nimport { TaonCmsContentTagProvider } from './taon-cms-content-tag.provider';\nimport { TaonCmsContentTagMiddleware } from './taon-cms-content-tag.middleware';\nimport { TaonCmsContentTagSubscriber } from './taon-cms-content-tag.subscriber';\n//#endregion\n\nexport const TaonCmsContentTagAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentTagAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentTagEntity },\n controllers: { TaonCmsContentTagController },\n repositories: { TaonCmsContentTagRepository },\n providers: { TaonCmsContentTagProvider },\n middlewares: { TaonCmsContentTagMiddleware },\n subscribers: { TaonCmsContentTagSubscriber },\n}));\n","//#region imports\nimport { TaonSessionRepository } from '@taon-dev/session/websql-prod';\nimport { TaonAuthContextRepository } from '@taon-dev/session/websql-prod';\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, DELETE, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport type { TaonCmsTaxonomyFields } from '../taon-cms-category/taon-cms-taxonomy.validation';\nimport { contentError } from '../taon-cms-content/taon-cms-content.validation';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagRepository } from './taon-cms-tag.repository';\n//#endregion\n\n@TaonController<TaonCmsTagController>({\n className: 'TaonCmsTagController',\n allowedMethods: ['getAll', 'saveTag', 'deleteTag'],\n})\nexport class TaonCmsTagController extends TaonBaseCrudController<TaonCmsTagEntity> {\n entityClassResolveFn: () => typeof TaonCmsTagEntity = () => TaonCmsTagEntity;\n\n taonCmsTagRepository = this.injectCustomRepo(TaonCmsTagRepository);\n\n private readonly sessions = this.injectCustomRepo(TaonSessionRepository);\n\n private readonly auth = this.injectCustomRepo(TaonAuthContextRepository);\n\n protected async beforeEachRequest({\n req,\n res,\n t,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsTagController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n @POST()\n saveTag(\n @Query('id') id: number | null,\n @Body() input: TaonCmsTaxonomyFields,\n ): Taon__NS__Response<TaonCmsTagEntity> {\n //#region @websqlFunc\n return () => this.taonCmsTagRepository.saveTag(id ?? null, input);\n //#endregion\n }\n\n @DELETE()\n deleteTag(@Query('id') id: number): Taon__NS__Response<void> {\n //#region @websqlFunc\n return () => this.taonCmsTagRepository.deleteTag(id);\n //#endregion\n }\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsTagRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonCmsTagController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsTagProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsTagProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsTagMiddleware',\n})\nexport class TaonCmsTagMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagProvider } from './taon-cms-tag.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsTagSubscriber>({\n className: 'TaonCmsTagSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsTagSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsTagProvider = this.injectProvider(TaonCmsTagProvider);\n listenTo(): typeof TaonCmsTagEntity {\n return TaonCmsTagEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagController } from './taon-cms-tag.controller';\nimport { TaonCmsTagRepository } from './taon-cms-tag.repository';\nimport { TaonCmsTagProvider } from './taon-cms-tag.provider';\nimport { TaonCmsTagMiddleware } from './taon-cms-tag.middleware';\nimport { TaonCmsTagSubscriber } from './taon-cms-tag.subscriber';\n//#endregion\n\nexport const TaonCmsTagAbstractContext = createContext(() => ({\n contextName: 'TaonCmsTagAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsTagEntity },\n controllers: { TaonCmsTagController },\n repositories: { TaonCmsTagRepository },\n providers: { TaonCmsTagProvider },\n middlewares: { TaonCmsTagMiddleware },\n subscribers: { TaonCmsTagSubscriber },\n}));\n","//#region imports\nimport {\n TaonSessionProvider,\n TaonSessionRepository,\n} from '@taon-dev/session/websql-prod';\nimport { TaonAuthContextRepository } from '@taon-dev/session/websql-prod';\nimport { ExpressRequest, ExpressResponse, TaonBaseStorageController, TaonController, TaonStorageObject, TaonUploadedFile, apiPrefix, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\nimport { contentError } from './taon-cms-content.validation';\n//#endregion\n\n@TaonController<TaonCmsContentStorageController>({\n className: 'TaonCmsContentStorageController',\n // allowedMethods: ['download', 'uploadFormDataToServer'],\n})\nexport class TaonCmsContentStorageController extends TaonBaseStorageController<\n {},\n TaonCmsContentStorageController\n> {\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly taonCmsContentRepository = this.injectCustomRepo(\n TaonCmsContentRepository,\n );\n\n private readonly taonSessionProvider =\n this.injectProvider(TaonSessionProvider);\n\n protected async beforeEachRequest({\n req,\n res,\n methodConfig,\n t,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsContentStorageController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async handleUploadFiles(\n files: TaonUploadedFile[],\n queryParams?: {},\n req?: ExpressRequest,\n res?: ExpressResponse,\n ): Promise<TaonStorageObject[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n afterFileUploadHook(): void {}\n\n async isMediaObjectAvailable(key: string): Promise<boolean> {\n/* */\n/* */\n return (void 0);\n }\n\n async copyMediaObjectForDuplication(sourceKey: string): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async deleteMediaObjectForDuplication(key: string): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n buildStorageDownloadUrl(options: {\n req: ExpressRequest;\n key: string;\n private: boolean;\n token?: string;\n download?: boolean;\n }): string {\n //#region @websqlFunc\n if (!this.ctx) {\n console.trace(`[buildStorageDownloadUrl] accessing without context`);\n return;\n }\n const isLocalhost =\n this.ctx.frontendHostUri.origin.includes('://localhost:');\n\n const urlFromMehtod = this.getThisControllerMethodFullUrl('download');\n // console.log({ urlFromMehtod });\n\n const url = new URL(urlFromMehtod);\n\n url.search = '';\n url.searchParams.set('key', options.key);\n if (options.token) {\n url.searchParams.set('token', options.token);\n }\n if (options.download) {\n url.searchParams.set('download', 'true');\n }\n return (\n `${isLocalhost ? this.ctx.uri.origin : this.ctx.frontendHostUri.origin}` +\n `${url.pathname}${url.search}`\n );\n //#endregion\n }\n\n async createStorageDownloadToken(options: {\n key: string;\n expiresAt: number;\n }): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async verifyStorageDownloadToken(options: {\n key: string;\n token: string;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async isPublicStorageKey(key: string): Promise<boolean> {\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport {\n TaonSessionRepository,\n type TaonPermissionEntity,\n} from '@taon-dev/session/websql-prod';\nimport {\n TaonAuthContextRepository,\n TaonSessionCoreAuthorization,\n} from '@taon-dev/session/websql-prod';\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, PUT, DELETE, Body, ExpressRequest, getStatusCode, HttpStatusEnum, ExpressResponse, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonStreamResponseOptions, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport type { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport type {\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n TaonCmsPermissionConfiguration,\n TaonCmsPostVersionKind,\n TaonCmsPostVersionLinks,\n TaonCmsVisibilityConfiguration,\n} from './taon-cms-content.models';\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\nimport { contentError } from './taon-cms-content.validation';\n//#endregion\n\n@TaonController<TaonCmsContentController>({\n //#region controller options\n className: 'TaonCmsContentController',\n allowedMethods: [\n 'getAll',\n 'getBy',\n 'getPublicBySlug',\n 'createContent',\n 'duplicateContent',\n 'permanentlyDeleteContent',\n 'updateContent',\n 'deleteContent',\n 'restoreContent',\n 'listRevisions',\n 'listRelatedPosts',\n 'getParentPost',\n 'getVisibilityConfiguration',\n 'getPostVersions',\n 'listCourses',\n 'listPermissions',\n 'getPermissionConfiguration',\n 'listApplicationHooks',\n 'getContentByHook',\n 'getPublicContentByHook',\n 'getVideoLinkBySlug',\n 'getPublicVideoLinkBySlug',\n 'getAudioLinkBySlug',\n 'getPublicAudioLinkBySlug',\n 'getAttachmentLinkBySlug',\n 'getPublicAttachmentLinkBySlug',\n 'getThumbnailLinkBySlug',\n 'getPublicThumbnailLinkBySlug',\n 'listTagIds',\n 'addRelatedPost',\n 'deleteRelatedPost',\n 'linkVersionPost',\n 'removeVersionPost',\n 'paginationQuery',\n ],\n //#endregion\n})\nexport class TaonCmsContentController extends TaonBaseCrudController<TaonCmsContentEntity> {\n //#region fields & getters\n entityClassResolveFn: () => typeof TaonCmsContentEntity = () =>\n TaonCmsContentEntity;\n\n private readonly taonCmsContentRepository = this.injectCustomRepo(\n TaonCmsContentRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly taonCmsContentStorageController = this.injectController(\n TaonCmsContentStorageController,\n );\n //#endregion\n\n //#region methods / before each request\n protected async beforeEachRequest({\n req,\n res,\n methodConfig,\n t,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsContentController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get video link by slug\n @GET()\n getVideoLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'video', false, req, t);\n //#endregion\n }\n\n //#region methods / get public video link by slug\n @GET()\n getPublicVideoLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'video', true, req, t);\n //#endregion\n }\n //#endregion\n\n //#region methods / get audio link by slug\n @GET()\n getAudioLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'audio', false, req, t);\n //#endregion\n }\n //#endregion\n\n //#region methods / get public audio link by slug\n @GET()\n getPublicAudioLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'audio', true, req, t);\n //#endregion\n }\n //#endregion\n\n //#region methods / get attachment link by slug\n @GET()\n getAttachmentLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'attachment', false, req, t);\n //#endregion\n }\n //#endregion\n\n //#region methods / get public attachment link by slug\n @GET()\n getPublicAttachmentLinkBySlug(\n @Query('slug') slug: string,\n ): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'attachment', true, req, t);\n //#endregion\n }\n //#endregion\n //#endregion\n\n //#region methods / get media link\n @GET()\n getThumbnailLinkBySlug(@Query('slug') slug: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'thumbnail', false, req, t);\n //#endregion\n }\n\n @GET()\n getPublicThumbnailLinkBySlug(\n @Query('slug') slug: string,\n ): Taon__NS__Response<string> {\n //#region @websqlFunc\n return (req, _res, { t }) =>\n this.getMediaLinkBySlug(slug, 'thumbnail', true, req, t);\n //#endregion\n }\n\n @GET()\n listCourses(): Taon__NS__Response<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listCourses();\n //#endregion\n }\n\n @GET()\n listTagIds(@Query('id') id: number): Taon__NS__Response<number[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listTagIds(id);\n //#endregion\n }\n\n private async getMediaLinkBySlug(\n slug: string,\n type: 'video' | 'audio' | 'attachment' | 'thumbnail',\n publicOnly: boolean,\n req: ExpressRequest,\n t: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsContentController>['t'],\n ): Promise<string> {\n //#region @websqlFunc\n const content =\n await this.taonCmsContentRepository.getContentBySlugForMedia(slug);\n if (!content) {\n contentError(t.gettext('Content was not found.'), 404);\n }\n const field =\n type === 'video'\n ? 'videoKey'\n : type === 'audio'\n ? 'audioKey'\n : type === 'thumbnail'\n ? 'thumbnailKey'\n : 'attachmentKey';\n const key = content![field];\n if (!key) {\n contentError(\n t.gettext('Content has no [[ type ]] media.', { type }),\n 404,\n );\n }\n if (\n !(await this.taonCmsContentStorageController.isMediaObjectAvailable(key!))\n ) {\n contentError(t.gettext('The media file was not found in storage.'), 404);\n }\n await this.requireReadAccess(content!, publicOnly, req, t);\n\n const isPrivate = !publicOnly;\n const token = isPrivate\n ? await this.taonCmsContentStorageController.createStorageDownloadToken({\n key: key!,\n expiresAt: Date.now() + 5 * 60 * 1000,\n })\n : undefined;\n return this.taonCmsContentStorageController.buildStorageDownloadUrl({\n req,\n key: key!,\n private: isPrivate,\n token,\n download: type === 'attachment',\n });\n //#endregion\n }\n\n //#region methods / require read access\n private async requireReadAccess(\n content: TaonCmsContentEntity,\n publicOnly: boolean,\n req: ExpressRequest,\n t: Models__NS__TaonCtrlBeforeEachRequestParams<TaonCmsContentController>['t'],\n ): Promise<void> {\n //#region @websqlFunc\n\n const { permissions } =\n await this.taonCmsContentRepository.getPermissionConfiguration(\n content.id,\n );\n const isPublic = content.status === 'published' && permissions.length === 0;\n if (publicOnly) {\n if (!isPublic) {\n contentError(\n t.gettext('This content is not publicly accessible.'),\n 403,\n );\n }\n } else {\n await this.taonSessionRepository.throwIfNotAuthenticated({ req });\n const context = await this.taonAuthContextRepository.getContext(\n req.userId,\n req.sessionId,\n );\n const userPermissionCodes = new Set<string>(context?.permissions ?? []);\n const hasPermission = permissions.some(permission =>\n userPermissionCodes.has(permission.code),\n );\n if (!context?.isSuperUser && !isPublic && !hasPermission) {\n contentError(t.gettext('You do not have access to this content.'), 403);\n }\n }\n //#endregion\n }\n //#endregion\n //#endregion\n\n //#region methods / get by id\n @GET()\n getBySlug(@Query(`slug`) slug: string): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => {\n const model = await this.db.findOne({\n where: {\n slug,\n },\n });\n return model;\n };\n //#endregion\n }\n //#endregion\n\n @GET()\n getPublicBySlug(\n @Query('slug') slug: string,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n const normalizedSlug = typeof slug === 'string' ? slug.trim() : '';\n if (!normalizedSlug || normalizedSlug.length > 255) {\n contentError(t.gettext('The post slug is invalid.'), 400);\n }\n const post =\n await this.taonCmsContentRepository.getContentBySlugForMedia(\n normalizedSlug,\n );\n if (!post) {\n contentError(t.gettext('The post was not found.'), 404);\n }\n await this.requireReadAccess(post, true, req, t);\n return Object.assign(new TaonCmsContentEntity(), post, {\n permissions: [],\n relatedPosts: [],\n applicationHook: null,\n });\n };\n //#endregion\n }\n //#endregion\n\n //#region methods / create content\n @POST()\n createContent(\n @Body() input: TaonCmsCreateContent,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.createContent(input);\n //#endregion\n }\n //#endregion\n\n //#region methods / update content\n @PUT()\n updateContent(\n @Query('id') id: number,\n @Body() input: TaonCmsUpdateContent,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.updateContent(id, input);\n //#endregion\n }\n //#endregion\n\n @POST()\n duplicateContent(\n @Query('id') id: number,\n @Query('includeChildren') includeChildren = false,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.duplicateContent(\n id,\n includeChildren,\n key =>\n this.taonCmsContentStorageController.copyMediaObjectForDuplication(\n key,\n ),\n key =>\n this.taonCmsContentStorageController.deleteMediaObjectForDuplication(\n key,\n ),\n );\n //#endregion\n }\n\n @DELETE()\n permanentlyDeleteContent(\n @Query('id') id: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<boolean> {\n //#region @websqlFunc\n return async () => {\n await this.taonCmsContentRepository.permanentlyDeleteContent(\n id,\n expectedVersion,\n key =>\n this.taonCmsContentStorageController.deleteMediaObjectForDuplication(\n key,\n ),\n );\n return true;\n };\n //#endregion\n }\n\n //#region methods / delete content\n @DELETE()\n deleteContent(\n @Query('id') id: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.archiveContent(id, expectedVersion);\n //#endregion\n }\n //#endregion\n\n //#region methods / restore content\n @POST()\n restoreContent(\n @Query('id') id: number,\n @Body() input: TaonCmsRestoreContent,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.restoreContent(id, input);\n //#endregion\n }\n //#endregion\n\n //#region methods / list related posts\n @GET()\n listRelatedPosts(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsContentEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listRelatedPosts(id);\n //#endregion\n }\n //#endregion\n\n @GET()\n getParentPost(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsContentEntity | null> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.getParentPost(id);\n //#endregion\n }\n\n @GET()\n getVisibilityConfiguration(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsVisibilityConfiguration> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.getVisibilityConfiguration(id);\n //#endregion\n }\n\n @GET()\n getPostVersions(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsPostVersionLinks> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.getPostVersions(id);\n //#endregion\n }\n\n //#region methods / list permissions\n @GET()\n listPermissions(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonPermissionEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listPermissions(id);\n //#endregion\n }\n //#endregion\n\n //#region methods / get permission configuration\n @GET()\n getPermissionConfiguration(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsPermissionConfiguration> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.getPermissionConfiguration(id);\n //#endregion\n }\n //#endregion\n\n //#region methods / list application hooks\n @GET()\n listApplicationHooks(): Taon__NS__Response<TaonCmsApplicationHookEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listApplicationHooks();\n //#endregion\n }\n //#endregion\n\n //#region methods / get content by hook\n @GET()\n getContentByHook(@Query('hook') hook: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n const content =\n await this.taonCmsContentRepository.getContentForHook(hook);\n if (!content) {\n return '';\n }\n await this.requireReadAccess(content, false, req, t);\n return content.body ?? '';\n };\n //#endregion\n }\n //#endregion\n\n //#region methods / get public content by hook\n @GET()\n getPublicContentByHook(@Query('hook') hook: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, _res, { t }) => {\n const content =\n await this.taonCmsContentRepository.getContentForHook(hook);\n if (!content) {\n return '';\n }\n await this.requireReadAccess(content, true, req, t);\n return content.body ?? '';\n };\n //#endregion\n }\n //#endregion\n\n //#region methods / add related post\n @POST()\n addRelatedPost(\n @Query('id') id: number,\n @Query('relatedPostId') relatedPostId: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.addRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n );\n //#endregion\n }\n //#endregion\n\n //#region methods / delete related post\n @DELETE()\n deleteRelatedPost(\n @Query('id') id: number,\n @Query('relatedPostId') relatedPostId: number,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.deleteRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n );\n //#endregion\n }\n //#endregion\n\n @POST()\n linkVersionPost(\n @Query('id') id: number,\n @Query('versionPostId') versionPostId: number,\n @Query('kind') kind: TaonCmsPostVersionKind,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.linkVersionPost(\n id,\n versionPostId,\n kind,\n expectedVersion,\n );\n //#endregion\n }\n\n @DELETE()\n removeVersionPost(\n @Query('id') id: number,\n @Query('kind') kind: TaonCmsPostVersionKind,\n @Query('expectedVersion') expectedVersion: number,\n ): Taon__NS__Response<TaonCmsContentEntity> {\n //#region @websqlFunc\n return async () =>\n this.taonCmsContentRepository.removeVersionPost(\n id,\n kind,\n expectedVersion,\n );\n //#endregion\n }\n\n //#region methods / list revisions\n @GET()\n listRevisions(\n @Query('id') id: number,\n ): Taon__NS__Response<TaonCmsContentRevisionEntity[]> {\n //#region @websqlFunc\n return async () => this.taonCmsContentRepository.listRevisions(id);\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentMiddleware',\n})\nexport class TaonCmsContentMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentProvider',\n})\nexport class TaonCmsContentProvider extends TaonBaseProvider {\n public siteName: string;\n\n async _(): Promise<void> {\n if (!this.siteName) {\n throw new Error(`Please provide siteName in TaonCmsContentProvider`);\n }\n }\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentSubscriber>({\n className: 'TaonCmsContentSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);\n listenTo(): typeof TaonCmsContentEntity {\n return TaonCmsContentEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsCategoryAbstractContext } from '../taon-cms-category/taon-cms-category.abstract.context';\nimport { TaonCmsContentRevisionAbstractContext } from '../taon-cms-content-revision/taon-cms-content-revision.abstract.context';\nimport { TaonCmsContentTagAbstractContext } from '../taon-cms-content-tag/taon-cms-content-tag.abstract.context';\nimport { TaonCmsTagAbstractContext } from '../taon-cms-tag/taon-cms-tag.abstract.context';\nimport { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\n\nimport { TaonCmsContentController } from './taon-cms-content.controller';\nimport { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentMiddleware } from './taon-cms-content.middleware';\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\nimport { TaonCmsContentRepository } from './taon-cms-content.repository';\nimport { TaonCmsContentSubscriber } from './taon-cms-content.subscriber';\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\n\n//#endregion\n\nexport const TaonCmsContentAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentAbstractContext',\n abstract: true,\n contexts: {\n TaonBaseContext,\n TaonCmsCategoryAbstractContext,\n TaonCmsTagAbstractContext,\n TaonCmsContentTagAbstractContext,\n TaonCmsContentRevisionAbstractContext,\n },\n entities: { TaonCmsApplicationHookEntity, TaonCmsContentEntity },\n controllers: { TaonCmsContentController, TaonCmsContentStorageController },\n repositories: { TaonCmsContentRepository },\n providers: { TaonCmsContentProvider },\n middlewares: { TaonCmsContentMiddleware },\n subscribers: { TaonCmsContentSubscriber },\n}));\n","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentAssetRepository',\n})\nexport class TaonCmsContentAssetRepository extends TaonBaseRepository<TaonCmsContentAssetEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentAssetEntity = () => TaonCmsContentAssetEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetRepository } from './taon-cms-content-asset.repository';\n//#endregion\n\n@TaonController<TaonCmsContentAssetController>({\n className: 'TaonCmsContentAssetController',\n allowedMethods: []\n})\nexport class TaonCmsContentAssetController extends TaonBaseCrudController<TaonCmsContentAssetEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentAssetEntity = () => TaonCmsContentAssetEntity;\n\n taonCmsContentAssetRepository = this.injectCustomRepo(TaonCmsContentAssetRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsContentAssetRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonCmsContentAssetController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentAssetProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentAssetProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentAssetMiddleware',\n})\nexport class TaonCmsContentAssetMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetProvider } from './taon-cms-content-asset.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentAssetSubscriber>({\n className: 'TaonCmsContentAssetSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentAssetSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentAssetProvider = this.injectProvider(TaonCmsContentAssetProvider);\n listenTo(): typeof TaonCmsContentAssetEntity {\n return TaonCmsContentAssetEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetController } from './taon-cms-content-asset.controller';\nimport { TaonCmsContentAssetRepository } from './taon-cms-content-asset.repository';\nimport { TaonCmsContentAssetProvider } from './taon-cms-content-asset.provider';\nimport { TaonCmsContentAssetMiddleware } from './taon-cms-content-asset.middleware';\nimport { TaonCmsContentAssetSubscriber } from './taon-cms-content-asset.subscriber';\n//#endregion\n\nexport const TaonCmsContentAssetAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentAssetAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentAssetEntity },\n controllers: { TaonCmsContentAssetController },\n repositories: { TaonCmsContentAssetRepository },\n providers: { TaonCmsContentAssetProvider },\n middlewares: { TaonCmsContentAssetMiddleware },\n subscribers: { TaonCmsContentAssetSubscriber },\n}));\n","//#region imports\nimport { Column, CustomColumn, PrimaryGeneratedColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentPermissionDefaultsValues } from './taon-cms-content-permission.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonCmsContentPermissionEntity',\n createTable: true,\n})\nexport class TaonCmsContentPermissionEntity extends TaonBaseEntity<TaonCmsContentPermissionEntity> {\n @PrimaryGeneratedColumn()\n id: number;\n\n @Column({ type: 'integer', default: 0 })\n version: number;\n\n @Column({ type: 'integer' })\n contentId: number;\n\n @Column({ type: 'varchar' })\n type: string;\n // public | authenticated | permission | role |\n // purchase | subscription\n\n @Column({ type: 'integer', nullable: true })\n permissionId: number | null;\n\n @Column({ type: 'integer', nullable: true })\n roleId: number | null;\n\n @Column({ type: 'integer', nullable: true })\n productId: number | null;\n\n @Column({ type: 'varchar', nullable: true })\n stripePriceId: string | null;\n\n @Column({ type: 'simple-json', nullable: true })\n config: Record<string, any> | null;\n\n @Column({ type: 'datetime' })\n createdAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonCmsContentPermissionRepository',\n})\nexport class TaonCmsContentPermissionRepository extends TaonBaseRepository<TaonCmsContentPermissionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentPermissionEntity = () => TaonCmsContentPermissionEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionRepository } from './taon-cms-content-permission.repository';\n//#endregion\n\n@TaonController<TaonCmsContentPermissionController>({\n className: 'TaonCmsContentPermissionController',\n allowedMethods: []\n})\nexport class TaonCmsContentPermissionController extends TaonBaseCrudController<TaonCmsContentPermissionEntity> {\n entityClassResolveFn: () => typeof TaonCmsContentPermissionEntity = () => TaonCmsContentPermissionEntity;\n\n taonCmsContentPermissionRepository = this.injectCustomRepo(TaonCmsContentPermissionRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonCmsContentPermissionRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonCmsContentPermissionController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Injectable } from '@angular/core';\n//#endregion\n\n@TaonProvider({\n className: 'TaonCmsContentPermissionProvider',\n})\n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonCmsContentPermissionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonCmsContentPermissionMiddleware',\n})\nexport class TaonCmsContentPermissionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionProvider } from './taon-cms-content-permission.provider';\n//#endregion\n\n@TaonSubscriber<TaonCmsContentPermissionSubscriber>({\n className: 'TaonCmsContentPermissionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonCmsContentPermissionSubscriber extends TaonBaseSubscriberForEntity {\n taonCmsContentPermissionProvider = this.injectProvider(TaonCmsContentPermissionProvider);\n listenTo(): typeof TaonCmsContentPermissionEntity {\n return TaonCmsContentPermissionEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionController } from './taon-cms-content-permission.controller';\nimport { TaonCmsContentPermissionRepository } from './taon-cms-content-permission.repository';\nimport { TaonCmsContentPermissionProvider } from './taon-cms-content-permission.provider';\nimport { TaonCmsContentPermissionMiddleware } from './taon-cms-content-permission.middleware';\nimport { TaonCmsContentPermissionSubscriber } from './taon-cms-content-permission.subscriber';\n//#endregion\n\nexport const TaonCmsContentPermissionAbstractContext = createContext(() => ({\n contextName: 'TaonCmsContentPermissionAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonCmsContentPermissionEntity },\n controllers: { TaonCmsContentPermissionController },\n repositories: { TaonCmsContentPermissionRepository },\n providers: { TaonCmsContentPermissionProvider },\n middlewares: { TaonCmsContentPermissionMiddleware },\n subscribers: { TaonCmsContentPermissionSubscriber },\n}));\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { TaonSessionAbstractContext } from '@taon-dev/session/websql-prod';\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonCmsCategoryAbstractContext } from './taon-cms-category/taon-cms-category.abstract.context';\nimport { TaonCmsCommentAbstractContext } from './taon-cms-comment/taon-cms-comment.abstract.context';\nimport { TaonCmsContentAbstractContext } from './taon-cms-content/taon-cms-content.abstract.context';\nimport { TaonCmsContentAssetAbstractContext } from './taon-cms-content-asset/taon-cms-content-asset.abstract.context';\nimport { TaonCmsContentPermissionAbstractContext } from './taon-cms-content-permission/taon-cms-content-permission.abstract.context';\nimport { TaonCmsContentRevisionAbstractContext } from './taon-cms-content-revision/taon-cms-content-revision.abstract.context';\nimport { TaonCmsContentTagAbstractContext } from './taon-cms-content-tag/taon-cms-content-tag.abstract.context';\nimport { TaonCmsTagAbstractContext } from './taon-cms-tag/taon-cms-tag.abstract.context';\n\nexport const TaonCmsAbstractContext = createContext(() => ({\n contextName: 'TaonCmsAbstractContext',\n abstract: true,\n contexts: {\n TaonCmsCategoryAbstractContext,\n TaonCmsCommentAbstractContext,\n TaonCmsContentAbstractContext,\n TaonCmsContentAssetAbstractContext,\n TaonCmsContentPermissionAbstractContext,\n TaonCmsContentRevisionAbstractContext,\n TaonCmsContentTagAbstractContext,\n TaonCmsTagAbstractContext,\n TaonSessionAbstractContext,\n },\n}));\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","import { Resource__NS__Cookies, Resource__NS__create, Resource__NS__globalInterceptors, Resource__NS__listenErrors, Resource__NS__methodsInterceptors } from 'ng2-rest/websql-prod';\nimport { Observable } from 'rxjs';\n\nconst progressCallbacks = new WeakMap<FormData, (percentage: number) => void>();\n\n// Keep Taon's middleware, retries and response decoding; replace only the\n// final Fetch transport for uploads that request browser upload events.\nexport function trackCmsUpload(\n url: string,\n body: FormData,\n onProgress: (percentage: number) => void,\n): () => void {\n const key = `cms-upload-progress-POST-${new URL(url).pathname}`;\n if (!Resource__NS__methodsInterceptors.has(key)) {\n Resource__NS__methodsInterceptors.set(key, {\n intercept: ({ req, next }) => {\n if (!(req.body instanceof FormData)) {\n return next.handle(req);\n }\n const uploadBody = req.body;\n const callback = progressCallbacks.get(uploadBody);\n if (!callback) {\n return next.handle(req);\n }\n return new Observable<Response>(subscriber => {\n const xhr = new XMLHttpRequest();\n xhr.open(req.method || 'POST', req.url);\n xhr.withCredentials = req.credentials === 'include';\n new Headers(req.headers).forEach((value, name) => {\n // The browser must supply the multipart boundary.\n if (name.toLowerCase() !== 'content-type') {\n xhr.setRequestHeader(name, value);\n }\n });\n xhr.upload.onprogress = event => {\n if (event.lengthComputable && event.total > 0) {\n callback(\n Math.min(100, Math.floor((event.loaded * 100) / event.total)),\n );\n }\n };\n xhr.onload = () => {\n const headers = new Headers();\n for (const line of xhr\n .getAllResponseHeaders()\n .trim()\n .split(/[\\r\\n]+/)) {\n const separator = line.indexOf(':');\n if (separator > 0) {\n headers.append(\n line.slice(0, separator),\n line.slice(separator + 1).trim(),\n );\n }\n }\n subscriber.next(\n new Response(\n [204, 205, 304].includes(xhr.status) ? null : xhr.responseText,\n {\n status: xhr.status,\n statusText: xhr.statusText,\n headers,\n },\n ),\n );\n subscriber.complete();\n };\n xhr.onerror = () =>\n subscriber.error(new Error('Media upload network error.'));\n xhr.ontimeout = () =>\n subscriber.error(new Error('Media upload timed out.'));\n xhr.onabort = () =>\n subscriber.error(new Error('Media upload was cancelled.'));\n const abort = () => xhr.abort();\n req.signal?.addEventListener('abort', abort, { once: true });\n if (req.signal?.aborted) {\n subscriber.error(new Error('Media upload was cancelled.'));\n } else {\n callback(0);\n xhr.send(uploadBody);\n }\n return () => {\n req.signal?.removeEventListener('abort', abort);\n if (xhr.readyState !== XMLHttpRequest.DONE) {\n xhr.abort();\n }\n };\n });\n },\n });\n }\n progressCallbacks.set(body, onProgress);\n return () => progressCallbacks.delete(body);\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { TaonBaseAngularService, TaonStorageObject, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsApplicationHookEntity } from '../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport { TaonCmsApplicationHook } from '../taon-cms-application-hooks';\nimport type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nimport { TaonCmsContentStorageController } from './taon-cms-content-storage.controller';\nimport { TaonCmsContentController } from './taon-cms-content.controller';\nimport type { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport type {\n TaonCmsCreateContent,\n TaonCmsRestoreContent,\n TaonCmsUpdateContent,\n TaonCmsPermissionConfiguration,\n TaonCmsPostVersionKind,\n TaonCmsPostVersionLinks,\n TaonCmsVisibilityConfiguration,\n} from './taon-cms-content.models';\nimport { trackCmsUpload } from './taon-cms-upload-progress';\n\n//#endregion\n\n@Injectable()\nexport class TaonCmsContentApiService<\n HOOKS extends TaonCmsApplicationHook = TaonCmsApplicationHook,\n> extends TaonBaseAngularService {\n //#region fields & getters\n protected readonly taonCmsContentController = this.injectController(\n TaonCmsContentController,\n );\n\n protected readonly taonCmsContentStorageController = this.injectController(\n TaonCmsContentStorageController,\n );\n\n public get crudController(): TaonCmsContentController {\n return this.taonCmsContentController;\n }\n\n public get frontendUrl(): string {\n return this.ctx.frontendHostUri.origin;\n }\n\n public getPostUrl(slug: string): string {\n return `${this.frontendUrl}/posts/${encodeURIComponent(slug)}`;\n }\n //#endregion\n\n //#region API / get by id\n public async getById(id: number): Promise<TaonCmsContentEntity> {\n return (await this.taonCmsContentController.getBy(id).request()).body.json;\n }\n //#endregion\n\n //#region API / get by slug\n public async getBySlug(slug: string): Promise<TaonCmsContentEntity> {\n return (await this.taonCmsContentController.getBySlug(slug).request()).body\n .json;\n }\n //#endregion\n\n public async getPublicBySlug(slug: string): Promise<TaonCmsContentEntity> {\n const response = await this.taonCmsContentController\n .getPublicBySlug(slug)\n .request!();\n if (response.statusCode >= 400 || !response.body?.json) {\n throw new Error(response.responseText || 'The post could not be loaded.');\n }\n return response.body.json;\n }\n\n //#region API / get video link by slug\n /**\n * Get link to private video\n */\n public getVideoLinkBySlug(slug: string): Observable<string> {\n return this.taonCmsContentController\n .getVideoLinkBySlug(slug)\n .request()\n .observable.pipe(\n map(res => res.body.text),\n catchError(err => {\n console.error(err);\n return of('');\n }),\n );\n }\n //#endregion\n\n //#region API / get public video link by slug\n public async getPublicVideoLinkBySlug(slug: string): Promise<string> {\n return (\n await this.taonCmsContentController\n .getPublicVideoLinkBySlug(slug)\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / get audio link by slug\n public getAudioLinkBySlug(slug: string): Observable<string> {\n return this.taonCmsContentController\n .getAudioLinkBySlug(slug)\n .request()\n .observable.pipe(\n map(res => res.body.text),\n catchError(err => {\n console.error(err);\n return of('');\n }),\n );\n }\n //#endregion\n\n //#region API / get public audio link by slug\n public async getPublicAudioLinkBySlug(slug: string): Promise<string> {\n return (\n await this.taonCmsContentController\n .getPublicAudioLinkBySlug(slug)\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / get attachment link by slug\n public async getAttachmentLinkBySlug(slug: string): Promise<string> {\n return (\n await this.taonCmsContentController\n .getAttachmentLinkBySlug(slug)\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / get public attachment link by slug\n public async getPublicAttachmentLinkBySlug(slug: string): Promise<string> {\n return (\n await this.taonCmsContentController\n .getPublicAttachmentLinkBySlug(slug)\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / get content by hook\n public getContentByHook(hook: HOOKS): Observable<string> {\n return this.taonCmsContentController.getContentByHook(hook)\n .request!().observable.pipe(map(res => res.body.text));\n }\n //#endregion\n\n //#region API / get public content by hook\n public getPublicContentByHook(hook: HOOKS): Observable<string> {\n return this.taonCmsContentController.getPublicContentByHook(hook)\n .request!().observable.pipe(\n map(res => res.body.text),\n catchError(() => of('---')),\n );\n }\n //#endregion\n\n //#region API / list application hooks\n public listApplicationHooks(): Observable<TaonCmsApplicationHookEntity[]> {\n return this.taonCmsContentController.listApplicationHooks()\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / upload media\n public async uploadMedia(\n file: File,\n onProgress?: (percentage: number) => void,\n ): Promise<TaonStorageObject> {\n const formData = new FormData();\n formData.append('file', file);\n const stopTracking = onProgress\n ? trackCmsUpload(\n this.taonCmsContentStorageController.getThisControllerMethodFullUrl(\n 'uploadFormDataToServer',\n ),\n formData,\n onProgress,\n )\n : undefined;\n try {\n const response = await this.taonCmsContentStorageController\n .uploadFormDataToServer(formData)\n .request();\n const objects = response.body.json;\n if (!Array.isArray(objects) || objects.length !== 1 || !objects[0]?.key) {\n throw new Error('The upload did not return a media key.');\n }\n onProgress?.(100);\n return objects[0];\n } finally {\n stopTracking?.();\n }\n }\n //#endregion\n\n //#region API / list assets\n public listAssets(): Observable<TaonStorageObject[]> {\n return this.taonCmsContentStorageController\n .list({})\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / get asset url\n public async getAssetUrl(key: string): Promise<string> {\n return (\n await this.taonCmsContentStorageController\n .getPrivateUrl(key, { expiresInSeconds: 5 * 60 })\n .request()\n ).body.text;\n }\n //#endregion\n\n //#region API / create content\n public listTagIds(id: number): Observable<number[]> {\n return this.taonCmsContentController\n .listTagIds(id)\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n\n public async getThumbnailLinkBySlug(\n slug: string,\n publicOnly = false,\n ): Promise<string> {\n const response = publicOnly\n ? await this.taonCmsContentController\n .getPublicThumbnailLinkBySlug(slug)\n .request()\n : await this.taonCmsContentController\n .getThumbnailLinkBySlug(slug)\n .request();\n return response.body.text;\n }\n\n public createContent(\n input: TaonCmsCreateContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.createContent(input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / duplicate content\n public duplicateContent(\n id: number,\n includeChildren = false,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.duplicateContent(id, includeChildren)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / update content\n public updateContent(\n id: number,\n input: TaonCmsUpdateContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.updateContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / delete content\n public deleteContent(\n id: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.deleteContent(id, expectedVersion)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n public permanentlyDeleteContent(\n id: number,\n expectedVersion: number,\n ): Observable<boolean> {\n return this.taonCmsContentController\n .permanentlyDeleteContent(id, expectedVersion)\n .request!()\n .observable.pipe(map(res => res.body.json));\n }\n\n //#region API / restore content\n public restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.restoreContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / list revisions\n public listRevisions(id: number): Observable<TaonCmsContentRevisionEntity[]> {\n return this.taonCmsContentController.listRevisions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / list related posts\n public listCourses(): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.listCourses()\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public listRelatedPosts(id: number): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.listRelatedPosts(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n public async getParentPost(\n id: number,\n ): Promise<TaonCmsContentEntity | null> {\n return (\n await this.taonCmsContentController.getParentPost(id).request()\n ).body.json;\n }\n\n public async getVisibilityConfiguration(\n id: number,\n ): Promise<TaonCmsVisibilityConfiguration> {\n return (\n await this.taonCmsContentController\n .getVisibilityConfiguration(id)\n .request()\n ).body.json;\n }\n\n public async getPostVersions(\n id: number,\n ): Promise<TaonCmsPostVersionLinks> {\n return (\n await this.taonCmsContentController.getPostVersions(id).request()\n ).body.json;\n }\n\n //#region API / list permissions\n public listPermissions(id: number): Observable<TaonPermissionEntity[]> {\n return this.taonCmsContentController.listPermissions(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / get permission configuration\n public getPermissionConfiguration(\n id: number,\n ): Observable<TaonCmsPermissionConfiguration> {\n return this.taonCmsContentController.getPermissionConfiguration(id)\n .request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / add related post\n public addRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.addRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n ).request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n //#region API / delete related post\n public deleteRelatedPost(\n id: number,\n relatedPostId: number,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController.deleteRelatedPost(\n id,\n relatedPostId,\n expectedVersion,\n ).request!().observable.pipe(map(res => res.body.json));\n }\n //#endregion\n\n public linkVersionPost(\n id: number,\n versionPostId: number,\n kind: TaonCmsPostVersionKind,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController\n .linkVersionPost(id, versionPostId, kind, expectedVersion)\n .request!()\n .observable.pipe(map(res => res.body.json));\n }\n\n public removeVersionPost(\n id: number,\n kind: TaonCmsPostVersionKind,\n expectedVersion: number,\n ): Observable<TaonCmsContentEntity> {\n return this.taonCmsContentController\n .removeVersionPost(id, kind, expectedVersion)\n .request!()\n .observable.pipe(map(res => res.body.json));\n }\n\n //#region API / get all entites\n /**\n * TODO not good idea if manu posts - refactor later:\n * - add pagination for post selector\n */\n public get allMyEntities$(): Observable<TaonCmsContentEntity[]> {\n return this.taonCmsContentController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n //#endregion\n}","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { type TaonStorageObject, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../taon-cms-content/taon-cms-content-api.service';\n\nconst t = Translation.for('src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.ts', {\"src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-asset-preview',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule],\n styleUrl: './taon-cms-asset-preview.component.scss',\n templateUrl: './taon-cms-asset-preview.component.html',\n})\nexport class TaonCmsAssetPreviewComponent implements OnInit {\n readonly t = t.for(this);\n\n @Input({ required: true })\n asset!: TaonStorageObject;\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly url = signal('');\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n get previewKind(): 'video' | 'audio' | 'attachment' {\n const contentType = this.asset.contentType?.trim().toLowerCase();\n if (contentType?.startsWith('video/')) {\n return 'video';\n }\n if (contentType?.startsWith('audio/')) {\n return 'audio';\n }\n return 'attachment';\n }\n\n ngOnInit(): void {\n void this.reload();\n }\n\n async reload(): Promise<void> {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.error.set('');\n this.url.set('');\n try {\n const url = new URL(await this.api.getAssetUrl(this.asset.key));\n if (this.previewKind === 'attachment') {\n url.searchParams.set('download', 'true');\n }\n if (!this.destroyRef.destroyed) {\n this.url.set(url.href);\n }\n } catch (error: unknown) {\n if (!this.destroyRef.destroyed) {\n console.error(\n '[taon-cms-asset-preview] Unable to load asset URL',\n error,\n );\n this.error.set(\n this.t.gettext('The asset could not be opened. Please retry.'),\n );\n }\n } finally {\n if (!this.destroyRef.destroyed) {\n this.loading.set(false);\n }\n }\n }\n\n playbackError(): void {\n this.error.set(\n this.t.gettext(\n 'Playback failed or the preview link expired. Please retry.',\n ),\n );\n }\n}","@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading asset preview...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"loading()\"\n (click)=\"reload()\">\n {{ t.gettext('Retry preview') }}\n </button>\n}\n@if (url()) {\n @switch (previewKind) {\n @case ('video') {\n <video\n controls\n preload=\"metadata\"\n [src]=\"url()\"\n (error)=\"playbackError()\">\n {{ t.gettext('Your browser does not support video playback.') }}\n </video>\n }\n @case ('audio') {\n <audio\n controls\n preload=\"none\"\n [src]=\"url()\"\n (error)=\"playbackError()\">\n {{ t.gettext('Your browser does not support audio playback.') }}\n </audio>\n }\n @default {\n <a\n [href]=\"url()\"\n [attr.download]=\"asset.fileName\"\n target=\"_blank\"\n rel=\"noopener\">\n {{ asset.fileName || asset.key }}\n </a>\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { finalize, map } from 'rxjs';\nimport { type TaonStorageObject as TaonStorageObjectBase, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonCmsContentApiService } from '../taon-cms-content/taon-cms-content-api.service';\n\nimport { TaonCmsAssetPreviewComponent } from './taon-cms-asset-preview.component';\n\nconst t = Translation.for('src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts', {\"src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-asset-preview.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-asset-preview.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-asset-preview.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-assets-backoffice.component.ts.de-DE.i18n.data')).default}} as any);\n\ntype TaonStorageObject = TaonStorageObjectBase & { keyVisible?: string };\n\n@Component({\n selector: 'taon-cms-assets-backoffice',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButtonModule,\n TaonDatatableComponent,\n TaonCmsAssetPreviewComponent,\n ],\n providers: [TaonCmsContentApiService],\n templateUrl: './taon-cms-assets-backoffice.component.html',\n})\nexport class TaonCmsAssetsBackofficeComponent implements OnInit {\n readonly t = t.for(this);\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly assets = signal<TaonStorageObject[]>([]);\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'keyVisible', sortable: true, showExpand: true },\n { header: this.t.gettext('File Name'), field: 'fileName', sortable: true },\n {\n header: this.t.gettext('Content Type'),\n field: 'contentType',\n sortable: true,\n },\n ];\n\n ngOnInit(): void {\n this.reload();\n }\n\n reload(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.error.set('');\n this.api\n .listAssets()\n .pipe(\n map(c => c as TaonStorageObject[]),\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: assets =>\n this.assets.set(\n assets.map(c => {\n c.keyVisible = ___NS__first(c.key.split('__'));\n return c;\n }),\n ),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-assets-backoffice] Unable to load assets',\n error,\n );\n this.error.set(\n this.t.gettext('Assets could not be loaded. Please try reloading.'),\n );\n },\n });\n }\n}","<h1>{{ t.gettext('CMS assets') }}</h1>\n<button\n mat-button\n type=\"button\"\n [disabled]=\"loading()\"\n (click)=\"reload()\">\n {{ t.gettext('Reload assets') }}\n</button>\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading assets...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n\n<ng-template\n #preview\n let-asset>\n <taon-cms-asset-preview [asset]=\"asset\" />\n</ng-template>\n\n<taon-datatable\n [data]=\"assets()\"\n [columns]=\"columns\"\n [allowedColumns]=\"['key', 'fileName', 'contentType']\"\n [hideAddButton]=\"true\"\n [expansionTemplate]=\"preview\"\n searchMode=\"advanced\">\n</taon-datatable>\n","import { Routes } from '@angular/router';\n\nexport const TaonCmsAssetsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-assets-backoffice.component').then(\n m => m.TaonCmsAssetsBackofficeComponent,\n ),\n },\n];\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts', {\"src/lib/taon-cms-backoffice/taon-cms-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-cms-backoffice',\n templateUrl: './taon-cms-backoffice.component.html',\n styleUrls: ['./taon-cms-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonCmsBackofficeComponent {\n readonly t = t.for(this);\n\n componentLoaded = false;\n\n onRouteActivate(component: any): void {\n this.componentLoaded = !!component;\n }\n\n onRouteDeactivate(component: any): void {\n this.componentLoaded = false;\n }\n}","@if (!componentLoaded) {\n <code>\n {{\n t.gettext('In CMS you can manage content and settings for your website.')\n }}\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n","//namespace TaonCmsBackofficeModels\n\n//end of namespace TaonCmsBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport type { TaonAuthContextEntity } from '@taon-dev/session/websql-prod';\nimport { adminLazyRoute as adminLazyRouteBase } from '@taon-dev/ui/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\n//#endregion\n\nconst adminLazyRoute = adminLazyRouteBase<TaonAuthContextEntity>;\nconst t = Translation.for('src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts', {\"src/lib/taon-cms-backoffice/taon-cms-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-backoffice/taon-cms-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-backoffice/taon-cms-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\nexport const TaonCmsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-backoffice.component').then(\n m => m.TaonCmsBackofficeComponent,\n ),\n\n children: [\n adminLazyRoute({\n isDisabled: ({ context }) => {\n // console.log('context', { context });\n return !context?.hasAccess.toManageCms;\n },\n path: 'posts',\n menuItem: t.signal.gettext('Posts'),\n expandable: true,\n icon: 'edit',\n loader: () =>\n import('../index').then(m => m.TaonCmsPostsBackofficeRoutes),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => {\n // console.log('context', { context });\n return !context?.hasAccess.toManageCms;\n },\n path: 'courses',\n menuItem: t.signal.gettext('Courses'),\n expandable: false,\n icon: 'school',\n loader: () =>\n import('../index').then(\n m => m.TaonCmsCourseBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => {\n // console.log('context', { context });\n return !context?.hasAccess.toManageCms;\n },\n path: 'comments',\n menuItem: t.signal.gettext('Comments'),\n expandable: true,\n icon: 'comment',\n loader: () =>\n import('../index').then(\n m => m.TaonCmsCommentsBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => !context?.hasAccess.toManageCms,\n path: 'assets',\n menuItem: t.signal.gettext('Assets'),\n expandable: false,\n icon: 'perm_media',\n loader: () =>\n import('../taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes').then(\n m => m.TaonCmsAssetsBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => !context?.hasAccess.toManageCms,\n path: 'categories',\n menuItem: t.signal.gettext('Categories'),\n expandable: false,\n icon: 'folder',\n loader: () =>\n import('../taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.routes').then(\n m => m.TaonCmsCategoriesBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n isDisabled: ({ context }) => !context?.hasAccess.toManageCms,\n path: 'tags',\n menuItem: t.signal.gettext('Tags'),\n expandable: false,\n icon: 'label',\n loader: () =>\n import('../taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.routes').then(\n m => m.TaonCmsTagsBackofficeRoutes,\n ),\n }),\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsBackofficeRoutes;","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsCategoryEntity } from './taon-cms-category.entity';\nimport { TaonCmsCategoryController } from './taon-cms-category.controller';\nimport type { TaonCmsCategoryFields } from './taon-cms-taxonomy.validation';\n\n@Injectable()\nexport class TaonCmsCategoryApiService extends TaonBaseAngularService {\n protected readonly taonCmsCategoryController = this.injectController(\n TaonCmsCategoryController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsCategoryEntity[]> {\n return this.taonCmsCategoryController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n save(\n id: number | null,\n input: TaonCmsCategoryFields,\n ): Observable<TaonCmsCategoryEntity> {\n return this.taonCmsCategoryController\n .saveCategory(id, input)\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n\n delete(id: number): Observable<void> {\n return this.taonCmsCategoryController\n .deleteCategory(id)\n .request()\n .observable.pipe(map(() => undefined));\n }\n}","import type { TaonCmsCategoryEntity } from './taon-cms-category.entity';\n\nexport const TaonCmsCategoryDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsCategoryEntity>;","export enum TaonCmsCategoryState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsCategoryState } from './taon-cms-category.models';\n\n//namespace TaonCmsCategoryUtils\n\n export function TaonCmsCategoryUtils__NS__isActive(state: string): state is TaonCmsCategoryState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsCategoryUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsCommentEntity } from './taon-cms-comment.entity';\nimport {\n TaonCmsCommentController,\n type CommentListItem,\n} from './taon-cms-comment.controller';\n\n@Injectable()\nexport class TaonCmsCommentApiService extends TaonBaseAngularService {\n protected readonly taonCmsCommentController = this.injectController(\n TaonCmsCommentController,\n );\n\n async getComments(contentId: number): Promise<CommentListItem[]> {\n const response =\n await this.taonCmsCommentController.getComments(contentId).request!();\n if (response.statusCode >= 400) {\n throw new Error(response.responseText || 'Unable to load comments.');\n }\n return response.body?.json ?? [];\n }\n\n async createComment(\n contentId: number,\n body: string,\n ): Promise<CommentListItem> {\n const response = await this.taonCmsCommentController.createComment({\n contentId,\n body,\n }).request!();\n if (response.statusCode >= 400 || !response.body?.json) {\n throw new Error(response.responseText || 'Unable to add the comment.');\n }\n return response.body.json;\n }\n\n async deleteComment(id: number): Promise<void> {\n const response =\n await this.taonCmsCommentController.deleteComment(id).request!();\n if (response.statusCode >= 400) {\n throw new Error(response.responseText || 'Unable to delete the comment.');\n }\n }\n\n async vote(id: number, value: -1 | 1): Promise<CommentListItem> {\n const response = await this.taonCmsCommentController.voteComment({\n commentId: id,\n value,\n }).request!();\n if (response.statusCode >= 400 || !response.body?.json) {\n throw new Error(\n response.responseText || 'Unable to vote on the comment.',\n );\n }\n return response.body.json;\n }\n\n async reportSpam(id: number): Promise<void> {\n const response =\n await this.taonCmsCommentController.reportSpam(id).request!();\n if (response.statusCode >= 400) {\n throw new Error(response.responseText || 'Unable to report the comment.');\n }\n }\n\n async getCommentsBackoffice(filters: {\n pageNumber: number;\n pageSize: number;\n id?: string;\n text?: string;\n author?: string;\n }): Promise<{ items: CommentListItem[]; total: number }> {\n const response = await this.taonCmsCommentController.getCommentsBackoffice(\n filters.pageNumber,\n filters.pageSize,\n filters.id,\n filters.text,\n filters.author,\n ).request!();\n if (response.statusCode >= 400 || !response.body?.json) {\n throw new Error(response.responseText || 'Unable to load CMS comments.');\n }\n return response.body.json;\n }\n\n async getBlockedUsers(): Promise<{ id: number; userId: number }[]> {\n const response =\n await this.taonCmsCommentController.getBlockedUsers().request!();\n if (response.statusCode >= 400) {\n throw new Error(response.responseText || 'Unable to load blocked users.');\n }\n return response.body?.json ?? [];\n }\n\n async setBlockedUser(userId: number, blocked: boolean): Promise<void> {\n const response = await this.taonCmsCommentController.setBlockedUser({\n userId,\n blocked,\n }).request!();\n if (response.statusCode >= 400) {\n throw new Error(\n response.responseText || 'Unable to update comment access.',\n );\n }\n }\n\n async getBlockedPhrases(): Promise<{ id: number; phrase: string }[]> {\n const response =\n await this.taonCmsCommentController.getBlockedPhrases().request!();\n if (response.statusCode >= 400) {\n throw new Error(\n response.responseText || 'Unable to load blocked phrases.',\n );\n }\n return response.body?.json ?? [];\n }\n\n async addBlockedPhrase(phrase: string): Promise<void> {\n const response =\n await this.taonCmsCommentController.addBlockedPhrase(phrase).request!();\n if (response.statusCode >= 400) {\n throw new Error(\n response.responseText || 'Unable to add the blocked phrase.',\n );\n }\n }\n\n async deleteBlockedPhrase(id: number): Promise<void> {\n const response =\n await this.taonCmsCommentController.deleteBlockedPhrase(id).request!();\n if (response.statusCode >= 400) {\n throw new Error(\n response.responseText || 'Unable to delete the blocked phrase.',\n );\n }\n }\n\n public get allMyEntities$(): Observable<TaonCmsCommentEntity[]> {\n return this.taonCmsCommentController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}","import type { TaonCmsCommentEntity } from './taon-cms-comment.entity';\n\nexport const TaonCmsCommentDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsCommentEntity>;","export enum TaonCmsCommentState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsCommentState } from './taon-cms-comment.models';\n\n//namespace TaonCmsCommentUtils\n\n export function TaonCmsCommentUtils__NS__isActive(state: string): state is TaonCmsCommentState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsCommentUtils\n","import { AsyncPipe, DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonSessionApiService } from '@taon-dev/session/websql-prod';\nimport type { TaonAuthContextEntity } from '@taon-dev/session/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsCommentApiService } from './taon-cms-comment-api.service';\nimport type { CommentListItem } from './taon-cms-comment.controller';\n\nconst t = Translation.for('src/lib/taon-cms-comment/taon-cms-comments.component.ts', {\"src/lib/taon-cms-comment/taon-cms-comment.controller.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comment.controller.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comment.controller.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comment.controller.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-comment/taon-cms-comments.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-comment/taon-cms-comments.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-comments',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, DatePipe, MatButtonModule],\n providers: [TaonCmsCommentApiService, TaonSessionApiService],\n templateUrl: './taon-cms-comments.component.html',\n styleUrl: './taon-cms-comments.component.scss',\n})\nexport class TaonCmsCommentsComponent {\n readonly t = t.for(this);\n\n readonly contentId = input<number | null>(null);\n\n private readonly api = inject(TaonCmsCommentApiService);\n\n private readonly sessionApi = inject(TaonSessionApiService);\n\n readonly context$ = this.sessionApi.context();\n\n readonly comments = signal<CommentListItem[]>([]);\n\n readonly body = signal('');\n\n readonly loading = signal(false);\n\n readonly saving = signal(false);\n\n readonly error = signal('');\n\n constructor() {\n effect(() => {\n const contentId = this.contentId();\n if (contentId) {\n void this.load(contentId);\n }\n });\n }\n\n setBody(event: Event): void {\n this.body.set((event.target as HTMLTextAreaElement).value.slice(0, 500));\n }\n\n async submit(event: Event): Promise<void> {\n event.preventDefault();\n const contentId = this.contentId();\n if (!contentId || !this.body().trim() || this.saving()) {\n return;\n }\n this.saving.set(true);\n this.error.set('');\n try {\n const created = await this.api.createComment(contentId, this.body());\n this.comments.update(comments => [...comments, created]);\n this.body.set('');\n } catch (error) {\n console.error('[taon-cms-comments] Unable to create comment', error);\n this.error.set(\n error instanceof Error\n ? error.message\n : this.t.gettext('Unable to add the comment.'),\n );\n } finally {\n this.saving.set(false);\n }\n }\n\n async vote(comment: CommentListItem, value: -1 | 1): Promise<void> {\n this.error.set('');\n try {\n this.replace(await this.api.vote(comment.id, value));\n } catch (error) {\n console.error('[taon-cms-comments] Unable to vote on comment', error);\n this.error.set(\n error instanceof Error\n ? error.message\n : this.t.gettext('Unable to vote on the comment.'),\n );\n }\n }\n\n async report(comment: CommentListItem): Promise<void> {\n this.error.set('');\n try {\n await this.api.reportSpam(comment.id);\n this.replace({\n ...comment,\n currentUserReported: true,\n spamReports: comment.spamReports + 1,\n } as any);\n } catch (error) {\n console.error('[taon-cms-comments] Unable to report comment', error);\n this.error.set(\n error instanceof Error\n ? error.message\n : this.t.gettext('Unable to report the comment.'),\n );\n }\n }\n\n async remove(comment: CommentListItem): Promise<void> {\n this.error.set('');\n try {\n await this.api.deleteComment(comment.id);\n this.comments.update(comments =>\n comments.filter(item => item.id !== comment.id),\n );\n } catch (error) {\n console.error('[taon-cms-comments] Unable to delete comment', error);\n this.error.set(\n error instanceof Error\n ? error.message\n : this.t.gettext('Unable to delete the comment.'),\n );\n }\n }\n\n canDelete(\n comment: CommentListItem,\n context: TaonAuthContextEntity | null | undefined,\n ): boolean {\n return (\n Number(context?.user?.id) === comment.userId ||\n !!context?.hasAccess?.toManageCms\n );\n }\n\n private async load(contentId: number): Promise<void> {\n this.loading.set(true);\n this.error.set('');\n try {\n this.comments.set(await this.api.getComments(contentId));\n } catch (error) {\n console.error('[taon-cms-comments] Unable to load comments', error);\n this.error.set(\n error instanceof Error\n ? error.message\n : this.t.gettext('Unable to load comments.'),\n );\n } finally {\n this.loading.set(false);\n }\n }\n\n private replace(comment: CommentListItem): void {\n this.comments.update(items =>\n items.map(item => (item.id === comment.id ? comment : item)),\n );\n }\n}","<section\n class=\"taon-cms-comments\"\n aria-labelledby=\"taon-comments-title\">\n <h2 id=\"taon-comments-title\">{{ t.gettext('Comments') }}</h2>\n @if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading comments...') }}</p>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n }\n @if ((context$ | async)?.user) {\n <form (submit)=\"submit($event)\">\n <label>\n {{ t.gettext('Add a comment') }}\n <textarea\n maxlength=\"500\"\n [value]=\"body()\"\n (input)=\"setBody($event)\"></textarea>\n </label>\n <p>\n {{\n t.gettext('Characters remaining: [[ count ]]', {\n count: 500 - body().length,\n })\n }}\n </p>\n <button\n mat-flat-button\n type=\"submit\"\n [disabled]=\"saving() || !body().trim()\">\n {{ t.gettext('Comment') }}\n </button>\n </form>\n } @else {\n <p>{{ t.gettext('Sign in to add a comment or vote.') }}</p>\n }\n <div class=\"taon-cms-comments__list\">\n @for (comment of comments(); track comment.id) {\n <article class=\"taon-cms-comment\">\n <header>\n <strong>{{ comment.authorName }}</strong>\n <time [attr.datetime]=\"comment.createdAt\">\n {{ comment.createdAt | date: 'medium' }}\n </time>\n </header>\n <p class=\"taon-cms-comment__body\">{{ comment.body }}</p>\n @if ((context$ | async)?.user) {\n <div class=\"taon-cms-comment__actions\">\n @if (comment.currentUserVote === 1) {\n <span>{{ t.gettext('Your vote: Upvote') }}</span>\n } @else if (comment.currentUserVote === -1) {\n <span>{{ t.gettext('Your vote: Downvote') }}</span>\n }\n <button\n mat-button\n type=\"button\"\n (click)=\"vote(comment, 1)\">\n {{ t.gettext('Upvote') }} ({{ comment.upvotes }})\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"vote(comment, -1)\">\n {{ t.gettext('Downvote') }} ({{ comment.downvotes }})\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"comment.currentUserReported\"\n (click)=\"report(comment)\">\n {{\n comment.currentUserReported\n ? t.gettext('Reported')\n : t.gettext('Report spam')\n }}\n ({{ comment.spamReports }})\n </button>\n @if (canDelete(comment, context$ | async)) {\n <button\n mat-button\n type=\"button\"\n (click)=\"remove(comment)\">\n {{ t.gettext('Delete') }}\n </button>\n }\n </div>\n }\n </article>\n } @empty {\n @if (!loading()) {\n <p>{{ t.gettext('No comments yet.') }}</p>\n }\n }\n </div>\n</section>\n","import { Injectable } from '@angular/core';\nimport { TaonBaseAngularService } from 'taon/websql-prod';\n\nimport { TaonCmsContentProvider } from './taon-cms-content.provider';\n\n@Injectable()\nexport class TaonCmsContentConfigService extends TaonBaseAngularService {\n taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);\n\n get siteName(): string {\n return this.taonCmsContentProvider.siteName;\n }\n}\n","import type { TaonCmsContentEntity } from './taon-cms-content.entity';\nimport { TaonCmsContentType } from './taon-cms-content.models';\n\nexport const TaonCmsContentDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n type: TaonCmsContentType.Normal,\n videoKey: null,\n audioKey: null,\n attachmentKey: null,\n thumbnailKey: null,\n} as Partial<TaonCmsContentEntity>;\n","import { TaonCmsContentState } from './taon-cms-content.models';\n\n//namespace TaonCmsContentUtils\n\n export function TaonCmsContentUtils__NS__isActive(state: string): state is TaonCmsContentState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentUtils\n","export interface TaonCmsTemplateContext {\n frontendUrl?: string | null;\n site?: { name?: string | null } | null;\n post?: {\n title?: string | null;\n url?: string | null;\n id?: number | null;\n thumbnailUrl?: string | null;\n } | null;\n}\n\nexport type TaonCmsTemplateVariable =\n | 'frontendUrl'\n | 'site.name'\n | 'currentYear'\n | 'post.title'\n | 'post.url'\n | 'post.id'\n | 'post.thumbnailUrl';\n\n/**\n * Resolves allowlisted values as HTML text/attribute data, not markup.\n * The returned HTML must still pass through the renderer's HTML sanitizer.\n */\nexport function resolveTemplateVariables(\n content: string | null | undefined,\n context: TaonCmsTemplateContext,\n): string {\n const values = new Map<string, string | number | null | undefined>([\n ['frontendUrl', context.frontendUrl],\n ['site.name', context.site?.name],\n ['currentYear', new Date().getFullYear()],\n ['post.title', context.post?.title],\n ['post.url', context.post?.url],\n ['post.id', context.post?.id],\n ['post.thumbnailUrl', context.post?.thumbnailUrl],\n ]);\n return (content ?? '').replace(\n /\\{\\{\\s*([a-zA-Z][a-zA-Z0-9]*(?:\\.[a-zA-Z][a-zA-Z0-9]*)*)\\s*\\}\\}/g,\n (placeholder: string, name: string) => {\n const value = values.get(name);\n if (value === null || value === undefined) {\n return placeholder;\n }\n return String(value)\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n },\n );\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\nimport { TaonCmsContentAssetController } from './taon-cms-content-asset.controller';\n\n@Injectable()\nexport class TaonCmsContentAssetApiService extends TaonBaseAngularService {\n protected readonly taonCmsContentAssetController = this.injectController(\n TaonCmsContentAssetController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsContentAssetEntity[]> {\n return this.taonCmsContentAssetController.getAll()\n .request!().observable.pipe(map(res => res.body?.json));\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonCmsContentAssetController.helloWord(user)\n .request!().observable.pipe(map(res => res.responseText as string));\n }\n}","import type { TaonCmsContentAssetEntity } from './taon-cms-content-asset.entity';\n\nexport const TaonCmsContentAssetDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentAssetEntity>;","export enum TaonCmsContentAssetState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentAssetState } from './taon-cms-content-asset.models';\n\n//namespace TaonCmsContentAssetUtils\n\n export function TaonCmsContentAssetUtils__NS__isActive(state: string): state is TaonCmsContentAssetState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentAssetUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\nimport { TaonCmsContentPermissionController } from './taon-cms-content-permission.controller';\n\n@Injectable()\nexport class TaonCmsContentPermissionApiService extends TaonBaseAngularService {\n protected readonly taonCmsContentPermissionController = this.injectController(\n TaonCmsContentPermissionController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsContentPermissionEntity[]> {\n return this.taonCmsContentPermissionController.getAll()\n .request!().observable.pipe(map(res => res.body?.json));\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonCmsContentPermissionController.helloWord(user)\n .request!().observable.pipe(map(res => res.responseText as string));\n }\n}","import type { TaonCmsContentPermissionEntity } from './taon-cms-content-permission.entity';\n\nexport const TaonCmsContentPermissionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentPermissionEntity>;","export enum TaonCmsContentPermissionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentPermissionState } from './taon-cms-content-permission.models';\n\n//namespace TaonCmsContentPermissionUtils\n\n export function TaonCmsContentPermissionUtils__NS__isActive(state: string): state is TaonCmsContentPermissionState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentPermissionUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentController } from '../taon-cms-content/taon-cms-content.controller';\nimport type { TaonCmsContentEntity } from '../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsRestoreContent } from '../taon-cms-content/taon-cms-content.models';\n\nimport type { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\nimport { TaonCmsContentRevisionController } from './taon-cms-content-revision.controller';\n\n@Injectable()\nexport class TaonCmsContentRevisionApiService extends TaonBaseAngularService {\n protected readonly contentController = this.injectController(\n TaonCmsContentController,\n );\n\n protected readonly taonCmsContentRevisionController = this.injectController(\n TaonCmsContentRevisionController,\n );\n\n public listRevisions(id: number): Observable<TaonCmsContentRevisionEntity[]> {\n return this.contentController.listRevisions(id).request!().observable.pipe(\n map(res => res.body.json),\n );\n }\n\n public restoreContent(\n id: number,\n input: TaonCmsRestoreContent,\n ): Observable<TaonCmsContentEntity> {\n return this.contentController.restoreContent(id, input)\n .request!().observable.pipe(map(res => res.body.json));\n }\n\n public get allMyEntities$(): Observable<TaonCmsContentRevisionEntity[]> {\n return this.taonCmsContentRevisionController.getAll()\n .request!().observable.pipe(map(res => res.body?.json));\n }\n}","import type { TaonCmsContentRevisionEntity } from './taon-cms-content-revision.entity';\n\nexport const TaonCmsContentRevisionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentRevisionEntity>;","export enum TaonCmsContentRevisionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentRevisionState } from './taon-cms-content-revision.models';\n\n//namespace TaonCmsContentRevisionUtils\n\n export function TaonCmsContentRevisionUtils__NS__isActive(state: string): state is TaonCmsContentRevisionState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentRevisionUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\nimport { TaonCmsContentTagController } from './taon-cms-content-tag.controller';\n\n@Injectable()\nexport class TaonCmsContentTagApiService extends TaonBaseAngularService {\n protected readonly taonCmsContentTagController = this.injectController(\n TaonCmsContentTagController,\n );\n\n public get allMyEntities$(): Observable<TaonCmsContentTagEntity[]> {\n return this.taonCmsContentTagController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n}","import type { TaonCmsContentTagEntity } from './taon-cms-content-tag.entity';\n\nexport const TaonCmsContentTagDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsContentTagEntity>;","export enum TaonCmsContentTagState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsContentTagState } from './taon-cms-content-tag.models';\n\n//namespace TaonCmsContentTagUtils\n\n export function TaonCmsContentTagUtils__NS__isActive(state: string): state is TaonCmsContentTagState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsContentTagUtils\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsTagEntity } from './taon-cms-tag.entity';\nimport { TaonCmsTagController } from './taon-cms-tag.controller';\nimport type { TaonCmsTaxonomyFields } from '../taon-cms-category/taon-cms-taxonomy.validation';\n\n@Injectable()\nexport class TaonCmsTagApiService extends TaonBaseAngularService {\n private readonly taonCmsTagController =\n this.injectController(TaonCmsTagController);\n\n get allMyEntities$(): Observable<TaonCmsTagEntity[]> {\n return this.taonCmsTagController\n .getAll()\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n\n save(\n id: number | null,\n input: TaonCmsTaxonomyFields,\n ): Observable<TaonCmsTagEntity> {\n return this.taonCmsTagController\n .saveTag(id, input)\n .request()\n .observable.pipe(map(res => res.body.json));\n }\n\n delete(id: number): Observable<void> {\n return this.taonCmsTagController\n .deleteTag(id)\n .request()\n .observable.pipe(map(() => undefined));\n }\n}","import type { TaonCmsTagEntity } from './taon-cms-tag.entity';\n\nexport const TaonCmsTagDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonCmsTagEntity>;","export enum TaonCmsTagState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonCmsTagState } from './taon-cms-tag.models';\n\n//namespace TaonCmsTagUtils\n\n export function TaonCmsTagUtils__NS__isActive(state: string): state is TaonCmsTagState {\n return state === 'active';\n }\n\n//end of namespace TaonCmsTagUtils\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ActivatedRoute } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport {\n TaonConfirmDialogComponent,\n TaonDatatableComponent,\n} from '@taon-dev/ui/websql-prod';\nimport { Observable, finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsCategoryApiService } from '../taon-cms-category/taon-cms-category-api.service';\nimport type { TaonCmsCategoryEntity } from '../taon-cms-category/taon-cms-category.entity';\nimport type { TaonCmsCategoryFields } from '../taon-cms-category/taon-cms-taxonomy.validation';\nimport { TaonCmsTagApiService } from '../taon-cms-tag/taon-cms-tag-api.service';\nimport type { TaonCmsTagEntity } from '../taon-cms-tag/taon-cms-tag.entity';\n\nconst t = Translation.for('src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.ts', {\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.de-DE.i18n.data')).default}} as any);\ntype TaxonomyRow = TaonCmsCategoryEntity | TaonCmsTagEntity;\n\n@Component({\n selector: 'taon-cms-taxonomy-backoffice',\n templateUrl: './taon-cms-taxonomy-backoffice.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n TaonDatatableComponent,\n ],\n providers: [TaonCmsCategoryApiService, TaonCmsTagApiService],\n styles: [\n `\n :host {\n display: block;\n }\n form {\n display: grid;\n gap: 1rem;\n max-width: 640px;\n margin-block: 1.5rem;\n }\n .actions {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n `,\n ],\n})\nexport class TaonCmsTaxonomyBackofficeComponent {\n readonly t = t.for(this);\n readonly isCategory =\n inject(ActivatedRoute).snapshot.data['taxonomy'] === 'category';\n private readonly categories = inject(TaonCmsCategoryApiService);\n private readonly tags = inject(TaonCmsTagApiService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly dialog = inject(MatDialog);\n readonly rows = signal<TaxonomyRow[]>([]);\n readonly busy = signal(false);\n readonly error = signal('');\n readonly editing = signal(false);\n editingId: number | null = null;\n draft: TaonCmsCategoryFields = this.emptyDraft();\n\n readonly columns: MtxGridColumn[] = [\n { header: this.t.gettext('Name'), field: 'name', sortable: true },\n { header: this.t.gettext('Slug'), field: 'slug', sortable: true },\n ...(this.isCategory\n ? [\n {\n header: this.t.gettext('Parent Category'),\n field: 'parentName',\n sortable: true,\n },\n {\n header: this.t.gettext('Sort Order'),\n field: 'sortOrder',\n sortable: true,\n },\n ]\n : [\n {\n header: this.t.gettext('Description'),\n field: 'description',\n sortable: true,\n },\n ]),\n {\n header: this.t.gettext('Actions'),\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'edit',\n tooltip: this.t.gettext('Edit'),\n disabled: () => this.busy(),\n click: (row: TaxonomyRow) => this.edit(row),\n },\n {\n type: 'icon',\n icon: 'delete',\n tooltip: this.t.gettext('Delete'),\n disabled: () => this.busy(),\n click: (row: TaxonomyRow) => this.delete(row),\n },\n ],\n },\n ];\n\n ngOnInit(): void {\n this.reload();\n }\n\n reload(): void {\n if (this.busy()) {\n return;\n }\n const request: Observable<TaxonomyRow[]> = this.isCategory\n ? this.categories.allMyEntities$\n : this.tags.allMyEntities$;\n this.run(request, rows => this.rows.set(rows));\n }\n\n tableRows() {\n return this.rows().map(row => ({\n ...row,\n parentName:\n 'parentCategoryId' in row\n ? (this.rows().find(parent => parent.id === row.parentCategoryId)\n ?.name ?? '')\n : '',\n }));\n }\n\n parentOptions(): TaonCmsCategoryEntity[] {\n const categories = this.rows().filter(\n (row): row is TaonCmsCategoryEntity => 'parentCategoryId' in row,\n );\n return categories.filter(category => {\n const visited = new Set<number>();\n let current: TaonCmsCategoryEntity | undefined = category;\n while (current) {\n if (current.id === this.editingId || visited.has(current.id)) {\n return false;\n }\n visited.add(current.id);\n current = categories.find(\n parent => parent.id === current?.parentCategoryId,\n );\n }\n return true;\n });\n }\n\n edit(row?: TaxonomyRow): void {\n if (this.busy()) {\n return;\n }\n this.editingId = row?.id ?? null;\n this.draft = row\n ? {\n name: row.name,\n slug: row.slug,\n description: row.description,\n parentCategoryId:\n 'parentCategoryId' in row ? row.parentCategoryId : null,\n sortOrder: 'sortOrder' in row ? row.sortOrder : 0,\n }\n : this.emptyDraft();\n this.error.set('');\n this.editing.set(true);\n }\n\n save(): void {\n if (this.busy()) {\n return;\n }\n const request: Observable<TaxonomyRow> = this.isCategory\n ? this.categories.save(this.editingId, this.draft)\n : this.tags.save(this.editingId, this.draft);\n this.run(request, saved => {\n this.editing.set(false);\n this.rows.update(rows => [\n ...rows.filter(row => row.id !== saved.id),\n saved,\n ]);\n });\n }\n\n delete(row: TaxonomyRow): void {\n if (this.busy()) {\n return;\n }\n this.dialog\n .open(TaonConfirmDialogComponent, {\n data: {\n title: this.isCategory\n ? this.t.gettext('Delete category?')\n : this.t.gettext('Delete tag?'),\n message: this.t.gettext(\n 'Only unused items can be deleted. This cannot be undone.',\n ),\n confirmText: this.t.gettext('Delete'),\n },\n })\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n if (confirmed) {\n this.run(\n this.isCategory\n ? this.categories.delete(row.id)\n : this.tags.delete(row.id),\n () => {\n if (this.editingId === row.id) {\n this.editing.set(false);\n }\n this.rows.update(rows => rows.filter(item => item.id !== row.id));\n },\n );\n }\n });\n }\n\n private run<T>(request: Observable<T>, next: (value: T) => void): void {\n if (this.busy()) {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n request\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: value => {\n this.busy.set(false);\n next(value);\n },\n error: (error: unknown) => {\n console.error('[taon-cms-taxonomy] Operation failed', error);\n this.error.set(\n this.t.gettext(\n 'The operation failed. Check for duplicate names or slugs, invalid parents, or items still used by posts or child categories, then reload and try again.',\n ),\n );\n },\n });\n }\n\n private emptyDraft(): TaonCmsCategoryFields {\n return {\n name: '',\n slug: '',\n description: '',\n parentCategoryId: null,\n sortOrder: 0,\n };\n }\n}","<h1>{{ isCategory ? t.gettext('Categories') : t.gettext('Tags') }}</h1>\n<div class=\"actions\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy()\"\n (click)=\"edit()\">\n {{ isCategory ? t.gettext('Create category') : t.gettext('Create tag') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy()\"\n (click)=\"reload()\">\n {{ t.gettext('Reload') }}\n </button>\n</div>\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n@if (busy()) {\n <p role=\"status\">{{ t.gettext('Loading...') }}</p>\n}\n@if (editing()) {\n <form\n #form=\"ngForm\"\n (ngSubmit)=\"save()\">\n <h2>{{ editingId === null ? t.gettext('Create') : t.gettext('Edit') }}</h2>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Name') }}</mat-label>\n <input\n matInput\n name=\"name\"\n required\n [(ngModel)]=\"draft.name\"\n [disabled]=\"busy()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Slug') }}</mat-label>\n <input\n matInput\n name=\"slug\"\n required\n [(ngModel)]=\"draft.slug\"\n [disabled]=\"busy()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Description') }}</mat-label>\n <textarea\n matInput\n name=\"description\"\n [(ngModel)]=\"draft.description\"\n [disabled]=\"busy()\"></textarea>\n </mat-form-field>\n @if (isCategory) {\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Parent Category') }}</mat-label>\n <mat-select\n name=\"parentCategoryId\"\n [(ngModel)]=\"draft.parentCategoryId\"\n [disabled]=\"busy()\">\n <mat-option [value]=\"null\">{{ t.gettext('None') }}</mat-option>\n @for (category of parentOptions(); track category.id) {\n <mat-option [value]=\"category.id\">{{ category.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Sort Order') }}</mat-label>\n <input\n matInput\n name=\"sortOrder\"\n type=\"number\"\n step=\"1\"\n required\n [(ngModel)]=\"draft.sortOrder\"\n [disabled]=\"busy()\" />\n </mat-form-field>\n }\n <div class=\"actions\">\n <button\n mat-flat-button\n type=\"submit\"\n [disabled]=\"\n busy() || form.invalid || !draft.name.trim() || !draft.slug.trim()\n \">\n {{ t.gettext('Save') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy()\"\n (click)=\"editing.set(false)\">\n {{ t.gettext('Cancel') }}\n </button>\n </div>\n </form>\n}\n<taon-datatable\n [data]=\"tableRows()\"\n [columns]=\"columns\"\n [hideAddButton]=\"true\"\n searchMode=\"advanced\">\n</taon-datatable>\n","import { Routes } from '@angular/router';\n\nexport const TaonCmsCategoriesBackofficeRoutes: Routes = [\n {\n path: '',\n data: { taxonomy: 'category' },\n loadComponent: () =>\n import('./taon-cms-taxonomy-backoffice.component').then(\n m => m.TaonCmsTaxonomyBackofficeComponent,\n ),\n },\n];\n\nexport const TaonCmsTagsBackofficeRoutes: Routes = [\n {\n path: '',\n data: { taxonomy: 'tag' },\n loadComponent: () =>\n import('./taon-cms-taxonomy-backoffice.component').then(\n m => m.TaonCmsTaxonomyBackofficeComponent,\n ),\n },\n];\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nconst t = Translation.for('src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component.ts', {\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-taxonomy-quick-create-dialog.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonCmsTaxonomyQuickCreateData {\n taxonomy: 'category' | 'tag';\n}\n\nexport interface TaonCmsTaxonomyQuickCreateResult {\n name: string;\n slug: string;\n description: string | null;\n parentCategoryId: number | null;\n sortOrder: number;\n}\n\n@Component({\n selector: 'taon-cms-taxonomy-quick-create-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n ],\n template: `\n <h2 mat-dialog-title>\n {{\n data.taxonomy === 'category'\n ? t.gettext('Add category')\n : t.gettext('Add tag')\n }}\n </h2>\n <form (ngSubmit)=\"create()\">\n <mat-dialog-content>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Name') }}</mat-label>\n <input\n matInput\n name=\"name\"\n required\n [ngModel]=\"name\"\n (ngModelChange)=\"updateName($event)\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Slug') }}</mat-label>\n <input\n matInput\n name=\"slug\"\n required\n [(ngModel)]=\"slug\"\n (input)=\"slugManuallySet = true\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Description') }}</mat-label>\n <textarea\n matInput\n name=\"description\"\n [(ngModel)]=\"description\"></textarea>\n </mat-form-field>\n </mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n <button\n mat-button\n type=\"button\"\n (click)=\"dialogRef.close()\">\n {{ t.gettext('Cancel') }}\n </button>\n <button\n mat-flat-button\n color=\"primary\"\n type=\"submit\"\n [disabled]=\"!name.trim() || !slug.trim()\">\n {{ t.gettext('Create') }}\n </button>\n </mat-dialog-actions>\n </form>\n `,\n})\nexport class TaonCmsTaxonomyQuickCreateDialogComponent {\n readonly t = t.for(this);\n\n readonly data = inject<TaonCmsTaxonomyQuickCreateData>(MAT_DIALOG_DATA);\n\n readonly dialogRef = inject<\n MatDialogRef<\n TaonCmsTaxonomyQuickCreateDialogComponent,\n TaonCmsTaxonomyQuickCreateResult\n >\n >(MatDialogRef);\n\n name = '';\n\n slug = '';\n\n description = '';\n\n slugManuallySet = false;\n\n updateName(value: string): void {\n this.name = value;\n if (!this.slugManuallySet) {\n this.slug = ___NS__kebabCase(value);\n }\n }\n\n create(): void {\n if (!this.name.trim() || !this.slug.trim()) {\n return;\n }\n this.dialogRef.close({\n name: this.name.trim(),\n slug: this.slug.trim(),\n description: this.description.trim() || null,\n parentCategoryId: null,\n sortOrder: 0,\n });\n }\n}","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.ts', {\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-cms-comments-backoffice',\n templateUrl: './taon-cms-comments-backoffice.component.html',\n styleUrls: ['./taon-cms-comments-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonCmsCommentsBackofficeComponent {\n t = t.for(this);\n}","<router-outlet></router-outlet>","//namespace TaonCmsCommentsBackofficeModels\n\n//end of namespace TaonCmsCommentsBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.ts', {\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\nexport const TaonCmsCommentsBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-comments-backoffice.component').then(\n m => m.TaonCmsCommentsBackofficeComponent,\n ),\n\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'all-preview',\n },\n adminLazyRoute({\n path: 'all-preview',\n menuItem: t.signal.gettext('All comments'),\n icon: 'preview',\n expandable: false,\n loader: () =>\n import('./taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes').then(\n c => c.TaonCmsCommentsAllPreviewBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n path: 'blocked',\n menuItem: t.signal.gettext('Blocked Users'),\n icon: 'voice_over_off',\n expandable: false,\n loader: () =>\n import('./taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes').then(\n c => c.TaonCmsCommentsBlockedUsersRoutes,\n ),\n }),\n\n adminLazyRoute({\n path: 'filters',\n menuItem: t.signal.gettext('Filters'),\n icon: 'text_ad_off',\n expandable: false,\n loader: () =>\n import('./taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes').then(\n c => c.TaonCmsCommentsFiltersSettingsRoutes,\n ),\n }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsCommentsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsCommentsBackofficeRoutes;","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.ts', {\"src/lib/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-post/taon-cms-post.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-post.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonCmsPostChoiceDialogData<T extends string> {\n title: string;\n options: { value: T; label: string }[];\n selected: T;\n}\n\n@Component({\n selector: 'taon-cms-post-choice-dialog',\n templateUrl: './taon-cms-post-choice-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatButtonModule, MatDialogModule, MatRadioModule],\n})\nexport class TaonCmsPostChoiceDialogComponent<T extends string> {\n readonly t = t.for(this);\n\n readonly data =\n inject<TaonCmsPostChoiceDialogData<T>>(MAT_DIALOG_DATA);\n\n private readonly dialogRef =\n inject<MatDialogRef<TaonCmsPostChoiceDialogComponent<T>, T>>(\n MatDialogRef,\n );\n\n selected = this.data.selected;\n\n confirm(): void {\n this.dialogRef.close(this.selected);\n }\n\n cancel(): void {\n this.dialogRef.close();\n }\n}","<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content>\n <mat-radio-group [(ngModel)]=\"selected\" [attr.aria-label]=\"data.title\">\n @for (option of data.options; track option.value) {\n <mat-radio-button [value]=\"option.value\">\n {{ option.label }}\n </mat-radio-button>\n }\n </mat-radio-group>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" (click)=\"cancel()\">\n {{ t.gettext('Cancel') }}\n </button>\n <button mat-flat-button type=\"button\" (click)=\"confirm()\">\n {{ t.gettext('OK') }}\n </button>\n</mat-dialog-actions>\n","import { DestroyRef, Directive, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonConfirmDialogComponent } from '@taon-dev/ui/websql-prod';\nimport { finalize, take } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostChoiceDialogComponent } from '../taon-cms-post/taon-cms-post-choice-dialog.component';\nimport type { TaonCmsPostChoiceDialogData } from '../taon-cms-post/taon-cms-post-choice-dialog.component';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts', {\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\n@Directive()\nexport abstract class TaonCmsPostTableActions {\n private readonly actionsTranslation = t.for(this);\n\n readonly taonCmsContentApiService = inject(TaonCmsContentApiService);\n\n readonly deleting = signal<number | null>(null);\n\n readonly duplicating = signal(false);\n\n readonly error = signal('');\n\n protected readonly destroyRef = inject(DestroyRef);\n\n protected readonly postPath: string[] = [];\n\n protected readonly backContext: 'posts' | 'courses' = 'posts';\n\n private readonly dialog = inject(MatDialog);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n readonly actionsColumn: MtxGridColumn = {\n header: this.actionsTranslation.gettext('Actions'),\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'content_copy',\n tooltip: this.actionsTranslation.gettext('Duplicate post'),\n disabled: () => this.duplicating(),\n click: (post: TaonCmsContentEntity) => this.duplicate(post),\n },\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: this.actionsTranslation.gettext('Post details'),\n click: (post: TaonCmsContentEntity) => this.openDetails(post),\n },\n {\n type: 'icon',\n icon: 'delete',\n tooltip: this.actionsTranslation.gettext(\n 'Archive or permanently delete post',\n ),\n disabled: () => this.deleting() !== null,\n click: (post: TaonCmsContentEntity) => this.delete(post),\n },\n ],\n };\n\n abstract reload(): void;\n\n add(): void {\n this.openPost('new');\n }\n\n openDetails(post: TaonCmsContentEntity): void {\n this.openPost(post.id);\n }\n\n private openPost(id: number | 'new'): void {\n const postsRoute = this.route.parent;\n if (!postsRoute) {\n this.error.set(\n this.actionsTranslation.gettext(\n 'The Post details route is unavailable.',\n ),\n );\n return;\n }\n void this.router\n .navigate([...this.postPath, id], {\n relativeTo: postsRoute,\n queryParams:\n this.backContext === 'courses'\n ? { postOrigin: 'courses' }\n : undefined,\n queryParamsHandling: 'preserve',\n })\n .catch(error => {\n console.error('[taon-cms-posts-backoffice] Unable to open post', error);\n this.error.set(\n this.actionsTranslation.gettext(\n 'The Post details route is unavailable.',\n ),\n );\n });\n }\n\n duplicate(post: TaonCmsContentEntity): void {\n if (this.duplicating()) {\n return;\n }\n this.duplicating.set(true);\n this.error.set('');\n this.taonCmsContentApiService\n .listRelatedPosts(post.id)\n .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: children => {\n if (!children.length) {\n this.runDuplication(post, false);\n return;\n }\n const ref = this.dialog.open<\n TaonCmsPostChoiceDialogComponent<'single' | 'hierarchy'>,\n TaonCmsPostChoiceDialogData<'single' | 'hierarchy'>,\n 'single' | 'hierarchy'\n >(TaonCmsPostChoiceDialogComponent, {\n data: {\n title: this.actionsTranslation.gettext('Duplicate post'),\n options: [\n {\n value: 'single',\n label: this.actionsTranslation.gettext(\n 'Duplicate only this post',\n ),\n },\n {\n value: 'hierarchy',\n label: this.actionsTranslation.gettext(\n 'Duplicate this post and its children',\n ),\n },\n ],\n selected: 'single',\n },\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(choice => {\n if (!choice) {\n this.duplicating.set(false);\n return;\n }\n this.runDuplication(post, choice === 'hierarchy');\n });\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to load children for duplication',\n error,\n );\n this.error.set(\n this.actionsTranslation.gettext(\n 'The post could not be duplicated. Please try again.',\n ),\n );\n this.duplicating.set(false);\n },\n });\n }\n\n private runDuplication(\n post: TaonCmsContentEntity,\n includeChildren: boolean,\n ): void {\n this.taonCmsContentApiService\n .duplicateContent(post.id, includeChildren)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.duplicating.set(false)),\n )\n .subscribe({\n next: duplicate => this.openDetails(duplicate),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to duplicate post',\n error,\n );\n this.error.set(\n this.actionsTranslation.gettext(\n 'The post could not be duplicated. Please try again.',\n ),\n );\n },\n });\n }\n\n delete(post: TaonCmsContentEntity): void {\n if (this.deleting() !== null) {\n return;\n }\n this.deleting.set(post.id);\n const archived = post.status === 'archived';\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: archived\n ? this.actionsTranslation.gettext('Permanently delete post?')\n : this.actionsTranslation.gettext('Archive post?'),\n message: archived\n ? this.actionsTranslation.gettext(\n 'This permanently deletes the post and its assets. This action cannot be undone.',\n )\n : this.actionsTranslation.gettext(\n 'This archives the post. It can be restored from its revisions.',\n ),\n confirmText: archived\n ? this.actionsTranslation.gettext('Permanently delete')\n : this.actionsTranslation.gettext('Delete'),\n },\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n if (!confirmed) {\n this.deleting.set(null);\n return;\n }\n this.error.set('');\n if (archived) {\n this.taonCmsContentApiService\n .permanentlyDeleteContent(post.id, post.version)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.deleting.set(null)),\n )\n .subscribe({\n next: () => this.reload(),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to delete post',\n error,\n );\n this.error.set(\n this.actionsTranslation.gettext(\n 'The post could not be deleted. Refresh the table before retrying.',\n ),\n );\n },\n });\n } else {\n this.taonCmsContentApiService\n .deleteContent(post.id, post.version)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.deleting.set(null)),\n )\n .subscribe({\n next: () => this.reload(),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-posts-backoffice] Unable to delete post',\n error,\n );\n this.error.set(\n this.actionsTranslation.gettext(\n 'The post could not be deleted. Refresh the table before retrying.',\n ),\n );\n },\n });\n }\n });\n }\n}","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n output,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts', {\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-course-contents',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, TaonDatatableComponent],\n templateUrl: './taon-cms-course-contents.component.html',\n})\nexport class TaonCmsCourseContentsComponent implements OnInit {\n readonly t = t.for(this);\n\n @Input({ required: true })\n course!: TaonCmsContentEntity;\n\n @Input({ required: true })\n actionsColumn!: MtxGridColumn;\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n readonly copyFeedback = signal('');\n\n readonly versionLinks = signal<{\n publicVersionPost: TaonCmsContentEntity | null;\n privateVersionPost: TaonCmsContentEntity | null;\n } | null>(null);\n\n readonly versionLinksError = signal('');\n\n readonly editPostRequested = output<TaonCmsContentEntity>();\n\n columns: MtxGridColumn[] = [];\n\n ngOnInit(): void {\n this.columns = [\n { header: 'ID', field: 'id', sortable: true },\n { header: this.t.gettext('Title'), field: 'title', sortable: true },\n { header: this.t.gettext('Status'), field: 'status', sortable: true },\n this.actionsColumn,\n ];\n this.reload();\n void this.loadVersionLinks();\n }\n\n private async loadVersionLinks(): Promise<void> {\n this.versionLinksError.set('');\n try {\n this.versionLinks.set(await this.api.getPostVersions(this.course.id));\n } catch (error: unknown) {\n console.error(\n '[taon-cms-course-contents] Unable to load course version links',\n error,\n );\n this.versionLinksError.set(\n this.t.gettext('Course version links could not be loaded.'),\n );\n }\n }\n\n requestPostEditor(event: Event, post: TaonCmsContentEntity): void {\n event.preventDefault();\n this.editPostRequested.emit(post);\n }\n\n reload(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.error.set('');\n this.api.listRelatedPosts(this.course.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: posts =>\n this.posts.set(posts.filter(post => post.status !== 'archived')),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-course-contents] Unable to load related posts',\n error,\n );\n this.error.set(\n this.t.gettext('Course contents could not be loaded. Please retry.'),\n );\n },\n });\n }\n\n async copyCourseSlug(): Promise<void> {\n this.copyFeedback.set('');\n try {\n if (!navigator.clipboard) {\n throw new Error('Clipboard access is unavailable.');\n }\n await navigator.clipboard.writeText(this.course.slug);\n this.copyFeedback.set(this.t.gettext('Course slug copied.'));\n } catch (error: unknown) {\n console.error('[taon-cms-course-contents] Unable to copy course slug', error);\n this.copyFeedback.set(\n this.t.gettext('The course slug could not be copied.'),\n );\n }\n }\n}","<section [attr.aria-label]=\"t.gettext('Course contents')\">\n <h2>{{ t.gettext('Course contents') }}: {{ course.title }}</h2>\n <button\n mat-button\n type=\"button\"\n (click)=\"copyCourseSlug()\">\n {{ t.gettext('Copy slug: [[ slug ]]', { slug: course.slug }) }}\n </button>\n @if (copyFeedback()) {\n <p role=\"status\">{{ copyFeedback() }}</p>\n }\n @if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading course contents...') }}</p>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" (click)=\"reload()\">\n {{ t.gettext('Retry') }}\n </button>\n }\n @if (versionLinksError()) {\n <p role=\"alert\">{{ versionLinksError() }}</p>\n }\n @if (versionLinks()?.privateVersionPost; as privateVersionPost) {\n <p>\n {{ t.gettext('Link to private version of this course:') }}\n <a\n href=\"#\"\n (click)=\"requestPostEditor($event, privateVersionPost)\">\n {{ privateVersionPost.title }} [{{ privateVersionPost.slug }}]\n </a>\n </p>\n }\n @if (versionLinks()?.publicVersionPost; as publicVersionPost) {\n <p>\n {{ t.gettext('Link to public version of this course:') }}\n <a\n href=\"#\"\n (click)=\"requestPostEditor($event, publicVersionPost)\">\n {{ publicVersionPost.title }} [{{ publicVersionPost.slug }}]\n </a>\n </p>\n }\n <taon-datatable\n [pageSize]=\"posts().length || 1\"\n [data]=\"posts()\"\n [columns]=\"columns\"\n [showPaginator]=\"false\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\">\n </taon-datatable>\n</section>\n","import { TaonCmsContentType } from '../../taon-cms-content/taon-cms-content.models';\n\nexport function defaultThumbnailKey(type: TaonCmsContentType): string {\n return `cms-placeholder:${type}`;\n}\n\nexport function defaultThumbnailUrl(key: string): string | null {\n const type = Object.values(TaonCmsContentType).find(\n value => key === defaultThumbnailKey(value),\n );\n if (!type) {\n return null;\n }\n const shapes: Record<TaonCmsContentType, string> = {\n normal:\n '<path d=\"M260 126h120v112H260z M280 152h80m-80 20h80m-80 20h52\" />',\n video:\n '<rect x=\"248\" y=\"132\" width=\"144\" height=\"100\" rx=\"16\"/><path d=\"m308 158 40 24-40 24z\"/>',\n audio: '<path d=\"M280 164v40m20-60v80m20-98v116m20-98v80m20-60v40\"/>',\n attachment:\n '<path d=\"M276 124h60l32 32v84h-92z M336 124v36h32m-70 30h48m-48 22h36\"/>',\n };\n const svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"360\" viewBox=\"0 0 640 360\"><defs><linearGradient id=\"bg\" x2=\"1\" y2=\"1\"><stop stop-color=\"#eaf0ff\"/><stop offset=\"1\" stop-color=\"#e4f5f0\"/></linearGradient></defs><rect width=\"640\" height=\"360\" rx=\"24\" fill=\"url(#bg)\"/><circle cx=\"320\" cy=\"180\" r=\"112\" fill=\"#fff\" opacity=\".65\"/><g fill=\"none\" stroke=\"#52669a\" stroke-width=\"7\" stroke-linecap=\"round\" stroke-linejoin=\"round\">${shapes[type]}</g></svg>`;\n return `data:image/svg+xml,${encodeURIComponent(svg)}`;\n}\n\nexport function visiblePixelRatio(pixels: Uint8ClampedArray): number {\n let visible = 0;\n for (let index = 0; index < pixels.length; index += 4) {\n const luminance =\n 0.2126 * pixels[index] +\n 0.7152 * pixels[index + 1] +\n 0.0722 * pixels[index + 2];\n if (luminance > 18) {\n visible += 1;\n }\n }\n return pixels.length ? visible / (pixels.length / 4) : 0;\n}\n\nfunction videoEvent(\n video: HTMLVideoElement,\n event: string,\n action: () => void,\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const cleanup = () => {\n clearTimeout(timeout);\n video.removeEventListener(event, done);\n video.removeEventListener('error', failed);\n };\n const done = () => {\n cleanup();\n resolve();\n };\n const failed = () => {\n cleanup();\n reject(new Error(video.error?.message || 'Video decoding failed.'));\n };\n const timeout = setTimeout(() => {\n cleanup();\n reject(new Error('Video decoding timed out.'));\n }, 15000);\n video.addEventListener(event, done, { once: true });\n video.addEventListener('error', failed, { once: true });\n try {\n action();\n } catch (error: unknown) {\n cleanup();\n reject(error);\n }\n });\n}\n\nexport async function generateVideoThumbnail(file: Blob): Promise<Blob> {\n const video = document.createElement('video');\n const url = URL.createObjectURL(file);\n try {\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n await videoEvent(video, 'loadeddata', () => {\n video.src = url;\n video.load();\n });\n if (!video.videoWidth || !video.videoHeight) {\n throw new Error('The video has no decodable dimensions.');\n }\n const analysis = document.createElement('canvas');\n analysis.width = 64;\n analysis.height = Math.max(\n 1,\n Math.round((64 * video.videoHeight) / video.videoWidth),\n );\n const context = analysis.getContext('2d', { willReadFrequently: true });\n if (!context) {\n throw new Error('Canvas is unavailable.');\n }\n const seek = async (time: number) => {\n if (Math.abs(video.currentTime - time) > 0.001) {\n await videoEvent(video, 'seeked', () => {\n video.currentTime = time;\n });\n }\n };\n const end = Number.isFinite(video.duration)\n ? Math.min(5, Math.max(0, video.duration - 0.01))\n : 5;\n let bestTime = 0;\n let bestRatio = -1;\n let found = false;\n for (let time = 0; time <= end; time += 0.25) {\n await seek(time);\n context.drawImage(video, 0, 0, analysis.width, analysis.height);\n const ratio = visiblePixelRatio(\n context.getImageData(0, 0, analysis.width, analysis.height).data,\n );\n if (ratio > bestRatio) {\n bestRatio = ratio;\n bestTime = time;\n }\n // Small highlights or a subject in a dark scene are enough.\n if (ratio >= 0.02) {\n found = true;\n break;\n }\n }\n if (!found) {\n await seek(bestTime);\n }\n const canvas = document.createElement('canvas');\n const scale = Math.min(1, 1280 / video.videoWidth, 720 / video.videoHeight);\n canvas.width = Math.max(1, Math.round(video.videoWidth * scale));\n canvas.height = Math.max(1, Math.round(video.videoHeight * scale));\n const output = canvas.getContext('2d');\n if (!output) {\n throw new Error('Canvas is unavailable.');\n }\n output.drawImage(video, 0, 0, canvas.width, canvas.height);\n return await new Promise<Blob>((resolve, reject) => {\n canvas.toBlob(\n blob =>\n blob\n ? resolve(blob)\n : reject(new Error('Thumbnail encoding failed.')),\n 'image/webp',\n 0.85,\n );\n });\n } finally {\n try {\n video.pause();\n video.removeAttribute('src');\n video.load();\n } finally {\n URL.revokeObjectURL(url);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { defaultThumbnailUrl } from '../taon-cms-post/taon-cms-thumbnail';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts', {\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-course-cover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule],\n templateUrl: './taon-cms-course-cover.component.html',\n styles: [`\n :host {\n display: block;\n }\n img {\n display: block;\n max-height: 50px;\n max-width: 90px;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n `],\n})\nexport class TaonCmsCourseCoverComponent implements OnInit {\n readonly t = t.for(this);\n\n @Input({ required: true })\n post!: TaonCmsContentEntity;\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly url = signal('');\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n ngOnInit(): void {\n void this.reload();\n }\n\n async reload(): Promise<void> {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.url.set('');\n this.error.set('');\n try {\n const url =\n defaultThumbnailUrl(this.post.thumbnailKey ?? '') ??\n await this.api.getThumbnailLinkBySlug(this.post.slug);\n if (!url) {\n throw new Error('The thumbnail URL is empty.');\n }\n if (!this.destroyRef.destroyed) {\n this.url.set(url);\n }\n } catch (error: unknown) {\n console.error('[taon-cms-course-cover] Unable to load thumbnail', error);\n if (!this.destroyRef.destroyed) {\n this.failed();\n }\n } finally {\n if (!this.destroyRef.destroyed) {\n this.loading.set(false);\n }\n }\n }\n\n failed(): void {\n this.url.set('');\n this.error.set(this.t.gettext('Cover unavailable. Retry'));\n }\n}","@if (url()) {\n <img [src]=\"url()\" [alt]=\"post.title\" (error)=\"failed()\" />\n}\n@if (error()) {\n <button mat-button type=\"button\" (click)=\"reload()\">{{ error() }}</button>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n TemplateRef,\n ViewChild,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostTableActions } from '../taon-cms-posts-backoffice/taon-cms-post-table-actions.directive';\n\nimport { TaonCmsCourseContentsComponent } from './taon-cms-course-contents.component';\nimport { TaonCmsCourseCoverComponent } from './taon-cms-course-cover.component';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts', {\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-contents.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-course-cover.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-course-backoffice',\n templateUrl: './taon-cms-course-backoffice.component.html',\n styleUrls: ['./taon-cms-course-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n TaonDatatableComponent,\n TaonCmsCourseContentsComponent,\n TaonCmsCourseCoverComponent,\n ],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonCmsCourseBackofficeComponent\n extends TaonCmsPostTableActions\n implements OnInit {\n readonly t = t.for(this);\n\n @ViewChild(TaonDatatableComponent)\n readonly datatable!: TaonDatatableComponent;\n\n @ViewChild('coverTemplate', { static: true })\n readonly coverTemplate!: TemplateRef<unknown>;\n\n @ViewChild('visibilityTemplate', { static: true })\n readonly visibilityTemplate!: TemplateRef<unknown>;\n\n protected override readonly postPath = ['../posts'];\n\n protected override readonly backContext = 'courses' as const;\n\n readonly courses = signal<TaonCmsContentEntity[]>([]);\n\n readonly loading = signal(false);\n\n columns: MtxGridColumn[] = [];\n\n ngOnInit(): void {\n this.columns = [\n { header: 'ID', field: 'id', sortable: true, showExpand: true },\n {\n header: this.t.gettext('Cover'),\n field: 'thumbnailKey',\n cellTemplate: this.coverTemplate,\n width: '110px',\n },\n { header: this.t.gettext('Title'), field: 'title', sortable: true },\n {\n header: this.t.gettext('Visibility'),\n field: 'status',\n sortable: true,\n cellTemplate: this.visibilityTemplate,\n },\n this.actionsColumn,\n ].map(column => ({\n ...column,\n class: (post: TaonCmsContentEntity) =>\n post?.status === 'published' ? 'cms-course-public' : 'cms-course-private',\n }));\n this.reload();\n }\n\n reload(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.error.set('');\n this.taonCmsContentApiService.listCourses()\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: courses => this.courses.set(courses),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-course-backoffice] Unable to load courses',\n error,\n );\n this.error.set(\n this.t.gettext('Courses could not be loaded. Please try reloading.'),\n );\n },\n });\n }\n}","<h1>{{ t.gettext('Courses') }}</h1>\n<h2 style=\"color: goldenrod;\">{{ t.gettext('Course is just a post with related posts and thumbnail. Any non archived post can be course.') }}</h2>\n<button mat-button type=\"button\" [disabled]=\"loading()\" (click)=\"reload()\">\n {{ t.gettext('Reload courses') }}\n</button>\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading courses...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [data]=\"courses()\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'status']\"\n tableId=\"cms-courses\"\n storeTableFilters=\"query-params\"\n [filtersTemplate]=\"filtersTemplate\"\n [hideAddButton]=\"true\"\n searchMode=\"advanced\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #coverTemplate let-post>\n <taon-cms-course-cover [post]=\"post\"></taon-cms-course-cover>\n</ng-template>\n<ng-template #visibilityTemplate let-post>\n <span class=\"visibility\">\n <mat-icon aria-hidden=\"true\">\n {{ post.status === 'published' ? 'lock_open' : 'lock' }}\n </mat-icon>\n {{ post.status === 'published' ? t.gettext('Public') : t.gettext('Private') }}\n </span>\n</ng-template>\n<ng-template #expansionTemplate let-course>\n <taon-cms-course-contents\n [course]=\"course\"\n [actionsColumn]=\"actionsColumn\"\n (editPostRequested)=\"openDetails($event)\">\n </taon-cms-course-contents>\n</ng-template>\n<ng-template\n #filtersTemplate\n let-filters=\"filters\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('ID') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.id\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Title') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.title\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Visibility') }}</mat-label>\n <mat-select [(ngModel)]=\"filters.status\">\n <mat-option value=\"published\">{{ t.gettext('Public') }}</mat-option>\n <mat-option value=\"draft\">{{ t.gettext('Private') }}</mat-option>\n </mat-select>\n </mat-form-field>\n</ng-template>\n","//namespace TaonCmsCourseBackofficeModels\n\n//end of namespace TaonCmsCourseBackofficeModels\n","import { Routes } from '@angular/router';\n\nexport const TaonCmsCourseBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-cms-course-backoffice.component').then(\n m => m.TaonCmsCourseBackofficeComponent,\n ),\n },\n];\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n SecurityContext,\n inject,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n selector: '[taonCmsEditable]',\n})\nexport class TaonCmsEditableDirective {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef)\n .nativeElement;\n private readonly sanitizer = inject(DomSanitizer);\n private value = '';\n private composing = false;\n\n @Input() taonCmsEditableFormat: 'text' | 'html' = 'text';\n @Input() taonCmsEditableSingleLine = false;\n @Output() readonly taonCmsEditableChange = new EventEmitter<string>();\n\n @Input()\n set taonCmsEditable(value: string) {\n if (value === this.value) {\n return;\n }\n this.value = value;\n this.render();\n }\n\n @HostListener('compositionstart')\n compositionStart(): void {\n this.composing = true;\n }\n\n @HostListener('compositionend')\n compositionEnd(): void {\n this.composing = false;\n this.onInput();\n }\n\n @HostListener('input')\n onInput(): void {\n if (this.composing) {\n return;\n }\n const text = this.element.innerText;\n this.value =\n this.taonCmsEditableFormat === 'html'\n ? this.sanitize(this.element.innerHTML)\n : this.taonCmsEditableSingleLine\n ? text.replace(/\\s*\\n\\s*/g, ' ')\n : text;\n // Remember emitted values so Angular does not rewrite the DOM/caret on input.\n this.taonCmsEditableChange.emit(this.value);\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.onInput();\n this.render();\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if (this.taonCmsEditableSingleLine && event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n const selection = this.element.ownerDocument.getSelection();\n if (!selection?.rangeCount || !event.clipboardData) {\n return;\n }\n const range = selection.getRangeAt(0);\n if (!this.element.contains(range.commonAncestorContainer)) {\n return;\n }\n const pasted = event.clipboardData.getData('text/plain');\n const text = this.taonCmsEditableSingleLine\n ? pasted.replace(/\\s*\\n\\s*/g, ' ')\n : pasted;\n range.deleteContents();\n const node = this.element.ownerDocument.createTextNode(text);\n range.insertNode(node);\n range.setStartAfter(node);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n this.onInput();\n }\n\n private sanitize(value: string): string {\n return this.sanitizer.sanitize(SecurityContext.HTML, value) ?? '';\n }\n\n private render(): void {\n if (this.taonCmsEditableFormat === 'html') {\n this.element.innerHTML = this.sanitize(this.value);\n } else {\n this.element.textContent = this.value;\n }\n }\n}\n","import { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n HostListener,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsContentRevisionApiService } from '../../taon-cms-content-revision/taon-cms-content-revision-api.service';\nimport type { TaonCmsContentRevisionEntity } from '../../taon-cms-content-revision/taon-cms-content-revision.entity';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts', {\"src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-revision-chooser.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-revision-chooser.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-revision-chooser.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-revision-chooser.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-revision-chooser.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-revision-chooser.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-revision-chooser',\n templateUrl: './taon-cms-revision-chooser.component.html',\n styleUrls: ['./taon-cms-revision-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe, MatButtonModule, MatDialogModule, MatRadioModule],\n providers: [TaonCmsContentRevisionApiService],\n})\nexport class TaonCmsRevisionChooserComponent {\n readonly t = t.for(this);\n\n readonly post = inject<TaonCmsContentEntity>(MAT_DIALOG_DATA);\n\n readonly revisions = signal<TaonCmsContentRevisionEntity[]>([]);\n\n readonly selected = signal<number | null>(null);\n\n readonly loading = signal(false);\n\n readonly applying = signal(false);\n\n readonly error = signal('');\n\n private readonly api = inject(TaonCmsContentRevisionApiService);\n\n private readonly ref = inject(\n MatDialogRef<TaonCmsRevisionChooserComponent, TaonCmsContentEntity>,\n );\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.load();\n }\n\n @HostListener('document:keydown.escape', ['$event'])\n onEscape(event: KeyboardEvent): void {\n event.stopPropagation();\n this.ref.close();\n }\n\n load(): void {\n if (this.loading() || this.applying()) {\n return;\n }\n this.selected.set(null);\n this.loading.set(true);\n this.error.set('');\n this.api\n .listRevisions(this.post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: revisions =>\n this.revisions.set(\n [...revisions].sort((a, b) => b.revisionNumber - a.revisionNumber),\n ),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-revision-chooser] Unable to load revisions',\n error,\n );\n this.error.set(\n this.t.gettext('Revisions could not be loaded. Please try again.'),\n );\n },\n });\n }\n\n apply(): void {\n const revisionNumber = this.selected();\n if (this.loading() || this.applying()) {\n return;\n }\n if (revisionNumber === null) {\n this.error.set(this.t.gettext('Select a revision to restore.'));\n return;\n }\n this.applying.set(true);\n this.error.set('');\n this.api\n .restoreContent(this.post.id, {\n revisionNumber,\n expectedVersion: this.post.version,\n })\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.applying.set(false)),\n )\n .subscribe({\n next: post => this.ref.close(post),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-revision-chooser] Unable to restore revision',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The revision could not be restored. If the post changed, close and reopen it to load its latest version.',\n ),\n );\n },\n });\n }\n\n cancel(): void {\n if (!this.applying()) {\n this.ref.close();\n }\n }\n}","<h2 mat-dialog-title>{{ t.gettext('Restore a revision') }}</h2>\n<mat-dialog-content>\n <p>\n {{\n t.gettext(\n 'Restoring replaces the post, including its status, with the selected revision.'\n )\n }}\n </p>\n @if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading revisions...') }}</p>\n } @else {\n <mat-radio-group\n [attr.aria-label]=\"t.gettext('Post revisions')\"\n [value]=\"selected()\"\n (change)=\"selected.set($event.value)\"\n [disabled]=\"applying()\">\n @for (revision of revisions(); track revision.id) {\n <mat-radio-button\n [value]=\"revision.revisionNumber\"\n [disabled]=\"!revision.snapshot\">\n <strong>{{\n t.gettext('Revision [[ revisionNumber ]]', {\n revisionNumber: revision.revisionNumber,\n })\n }}</strong>\n <span>{{ revision.createdAt | date: 'medium' }}</span>\n @if (\n revision.createdByUserId !== null &&\n revision.createdByUserId !== undefined\n ) {\n <span>{{\n t.gettext('User [[ userId ]]', {\n userId: revision.createdByUserId,\n })\n }}</span>\n }\n @if (!revision.snapshot) {\n <span>{{ t.gettext('Legacy revision - cannot be restored') }}</span>\n }\n </mat-radio-button>\n } @empty {\n <p>{{ t.gettext('No revisions are available.') }}</p>\n }\n </mat-radio-group>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"loading() || applying()\"\n (click)=\"load()\">\n {{ t.gettext('Reload revisions') }}\n </button>\n }\n @if (applying()) {\n <p role=\"status\">{{ t.gettext('Restoring...') }}</p>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"applying()\"\n (click)=\"cancel()\">\n {{ t.gettext('Cancel') }}\n </button>\n <button\n mat-flat-button\n type=\"button\"\n [disabled]=\"loading() || applying() || selected() === null\"\n (click)=\"apply()\">\n {{ t.gettext('Apply') }}\n </button>\n</mat-dialog-actions>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { finalize } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n\nconst t = Translation.for('src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts', {\"src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html\":{\"en-US\":async () => (await import('./i18n/taon-related-post-chooser.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-related-post-chooser.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-related-post-chooser.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-related-post-chooser.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-related-post-chooser.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-related-post-chooser.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonRelatedPostChooserData {\n postId?: number;\n excludedIds: number[];\n eligibleStatuses?: string[];\n dialogTitle?: string;\n confirmLabel?: string;\n selectionLabel?: string;\n selectionError?: string;\n}\n\n@Component({\n selector: 'taon-related-post-chooser',\n templateUrl: './taon-related-post-chooser.component.html',\n styleUrls: ['./taon-related-post-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButtonModule, MatDialogModule, MatRadioModule],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonRelatedPostChooserComponent {\n readonly t = t.for(this);\n\n readonly data = inject<TaonRelatedPostChooserData>(MAT_DIALOG_DATA);\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n readonly selected = signal<number | null>(null);\n readonly query = signal('');\n readonly loading = signal(false);\n readonly error = signal('');\n readonly filteredPosts = computed(() => {\n const query = this.query().trim().toLowerCase();\n return this.posts().filter(\n post =>\n post.id !== this.data.postId &&\n !this.data.excludedIds.includes(post.id) &&\n (!this.data.eligibleStatuses ||\n this.data.eligibleStatuses.includes(post.status)) &&\n `${post.id} ${post.title} ${post.slug}`.toLowerCase().includes(query),\n );\n });\n\n private readonly api = inject(TaonCmsContentApiService);\n private readonly ref = inject(\n MatDialogRef<TaonRelatedPostChooserComponent, TaonCmsContentEntity>,\n );\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.load();\n }\n\n load(): void {\n if (this.loading()) {\n return;\n }\n this.loading.set(true);\n this.selected.set(null);\n this.error.set('');\n this.api.allMyEntities$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.loading.set(false)),\n )\n .subscribe({\n next: posts => this.posts.set(posts),\n error: (error: unknown) => {\n console.error(\n '[taon-related-post-chooser] Unable to load posts',\n error,\n );\n this.error.set(\n this.t.gettext('Posts could not be loaded. Please try again.'),\n );\n },\n });\n }\n\n search(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.query.set(event.target.value);\n this.selected.set(null);\n }\n }\n\n choose(): void {\n if (this.loading() || this.error()) {\n return;\n }\n const post = this.filteredPosts().find(post => post.id === this.selected());\n if (!post) {\n this.error.set(\n this.data.selectionError ?? this.t.gettext('Select a related post.'),\n );\n return;\n }\n this.ref.close(post);\n }\n\n cancel(): void {\n this.ref.close();\n }\n}","<h2 mat-dialog-title>{{ data.dialogTitle ?? t.gettext('Add related post') }}</h2>\n<mat-dialog-content>\n <label class=\"search-field\">\n <span>{{ t.gettext('Search posts') }}</span>\n <input\n type=\"search\"\n [attr.aria-label]=\"t.gettext('Search posts by ID, title or slug')\"\n [value]=\"query()\"\n [disabled]=\"loading()\"\n (input)=\"search($event)\" />\n </label>\n @if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading posts...') }}</p>\n } @else if (error()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ error() }}\n </p>\n <button\n mat-button\n type=\"button\"\n (click)=\"load()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <mat-radio-group\n [attr.aria-label]=\"data.selectionLabel ?? t.gettext('Related post')\"\n [value]=\"selected()\"\n (change)=\"selected.set($event.value)\">\n @for (post of filteredPosts(); track post.id) {\n <mat-radio-button [value]=\"post.id\">\n #{{ post.id }} - {{ post.title }}\n <span class=\"slug\">{{ post.slug }}</span>\n </mat-radio-button>\n } @empty {\n <p>{{ t.gettext('No matching posts available.') }}</p>\n }\n </mat-radio-group>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button\n mat-button\n type=\"button\"\n (click)=\"cancel()\">\n {{ t.gettext('Cancel') }}\n </button>\n <button\n mat-flat-button\n type=\"button\"\n [disabled]=\"loading() || !!error() || selected() === null\"\n (click)=\"choose()\">\n {{ data.confirmLabel ?? t.gettext('Add related post') }}\n </button>\n</mat-dialog-actions>\n","//#region imports\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n ViewChild,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonPermissionApiService } from '@taon-dev/session/websql-prod';\nimport type { TaonPermissionEntity } from '@taon-dev/session/websql-prod';\nimport { TaonConfirmDialogComponent } from '@taon-dev/ui/websql-prod';\nimport { Editor, NgxEditorModule, toHTML } from 'ngx-editor';\nimport type { Toolbar } from 'ngx-editor';\nimport {\n Observable,\n Subscription,\n finalize,\n firstValueFrom,\n forkJoin,\n from,\n of,\n switchMap,\n take,\n} from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport type { TaonCmsApplicationHookEntity } from '../../taon-cms-application-hook/taon-cms-application-hook.entity';\nimport type { TaonCmsApplicationHook } from '../../taon-cms-application-hooks';\nimport { TaonCmsCategoryApiService } from '../../taon-cms-category/taon-cms-category-api.service';\nimport type { TaonCmsCategoryEntity } from '../../taon-cms-category/taon-cms-category.entity';\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport { TaonCmsContentConfigService } from '../../taon-cms-content/taon-cms-content.config.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport type { TaonCmsUpdateContent } from '../../taon-cms-content/taon-cms-content.models';\nimport type { TaonCmsContentFields } from '../../taon-cms-content/taon-cms-content.models';\nimport type {\n TaonCmsPostVersionKind,\n TaonCmsPostVersionLinks,\n} from '../../taon-cms-content/taon-cms-content.models';\nimport { TaonCmsContentType } from '../../taon-cms-content/taon-cms-content.models';\nimport { resolveTemplateVariables } from '../../taon-cms-content/taon-cms-template-variables';\nimport type { TaonCmsTemplateVariable } from '../../taon-cms-content/taon-cms-template-variables';\nimport { TaonCmsTagApiService } from '../../taon-cms-tag/taon-cms-tag-api.service';\nimport type { TaonCmsTagEntity } from '../../taon-cms-tag/taon-cms-tag.entity';\nimport { TaonCmsTaxonomyQuickCreateDialogComponent } from '../../taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component';\nimport { TaonCmsRevisionChooserComponent } from '../taon-cms-revision-chooser/taon-cms-revision-chooser.component';\nimport { TaonRelatedPostChooserComponent } from '../taon-related-post-chooser/taon-related-post-chooser.component';\nimport type { TaonRelatedPostChooserData } from '../taon-related-post-chooser/taon-related-post-chooser.component';\nimport {\n TaonCmsPostChoiceDialogComponent,\n} from './taon-cms-post-choice-dialog.component';\nimport type { TaonCmsPostChoiceDialogData } from './taon-cms-post-choice-dialog.component';\n\nimport { TaonCmsEditableDirective } from './taon-cms-editable.directive';\nimport { TaonCmsCommentsComponent } from '../../taon-cms-comment/taon-cms-comments.component';\nimport type { TaonCmsPostDraft, TaonCmsPostMode } from './taon-cms-post.models';\nimport {\n defaultThumbnailKey,\n defaultThumbnailUrl,\n generateVideoThumbnail,\n} from './taon-cms-thumbnail';\nimport { NgTemplateOutlet } from '@angular/common';\n\n//#endregion\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts', {\"src/lib/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-choice-dialog.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-post/taon-cms-post.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-post.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-post/taon-cms-post.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-post',\n templateUrl: './taon-cms-post.component.html',\n styleUrls: ['./taon-cms-post.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButtonModule,\n MatCheckboxModule,\n MatCardModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatTabsModule,\n NgxEditorModule,\n MatChipsModule,\n MatProgressBarModule,\n MatRadioModule,\n MatSelectModule,\n MatTooltipModule,\n TaonCmsEditableDirective,\n TaonCmsCommentsComponent,\n NgTemplateOutlet,\n ],\n providers: [\n TaonCmsContentApiService,\n TaonCmsContentConfigService,\n TaonPermissionApiService,\n TaonCmsCategoryApiService,\n TaonCmsTagApiService,\n ],\n})\nexport class TaonCmsPostComponent implements AfterViewInit {\n readonly t = t.for(this);\n\n //#region fields and getters\n readonly post = input<TaonCmsContentEntity | null>(null);\n\n readonly mode = model<TaonCmsPostMode>('view');\n\n readonly changed = output<TaonCmsContentEntity>();\n\n readonly deleted = output<TaonCmsContentEntity>();\n\n readonly editPostRequested = output<TaonCmsContentEntity>();\n\n readonly duplicated = output<TaonCmsContentEntity>();\n\n readonly cancelled = output<void>();\n\n readonly actionButtonsTemplate = output<TemplateRef<unknown>>();\n\n @ViewChild('actionButtonsTemplate')\n private readonly actionButtonsTemplateRef?: TemplateRef<unknown>;\n\n readonly currentPost = signal<TaonCmsContentEntity | null>(null);\n\n readonly placeholderShortIntro = this.t.signal.gettext(\n 'A short introduction...',\n );\n\n readonly placeholderTitle = this.t.signal.gettext('Title');\n\n readonly visibilityInheritedTooltip = this.t.signal.gettext(\n 'Visibility inherited from parent',\n );\n\n readonly placeholderTellYourStory =\n this.t.signal.gettext('Tell your story...');\n\n readonly draft = signal<TaonCmsPostDraft>({\n type: TaonCmsContentType.Normal,\n title: '',\n slug: '',\n excerpt: '',\n body: '',\n videoKey: null,\n audioKey: null,\n attachmentKey: null,\n thumbnailKey: null,\n categoryId: null,\n tagIds: [],\n });\n\n readonly postTypes = [\n {\n value: TaonCmsContentType.Normal,\n label: this.t.gettext('Normal post'),\n },\n { value: TaonCmsContentType.Video, label: this.t.gettext('Video post') },\n { value: TaonCmsContentType.Audio, label: this.t.gettext('Audio post') },\n {\n value: TaonCmsContentType.Attachment,\n label: this.t.gettext('Attachment post'),\n },\n ];\n\n readonly currentPostType = computed(\n () =>\n this.postTypes.find(type => type.value === this.draft().type) ??\n this.postTypes[0],\n );\n\n readonly currentPostTypeIcon = computed(() => {\n switch (this.draft().type) {\n case TaonCmsContentType.Video:\n return 'video_library';\n case TaonCmsContentType.Audio:\n return 'audiotrack';\n case TaonCmsContentType.Attachment:\n return 'attach_file';\n default:\n return 'article';\n }\n });\n\n private readonly mediaAttachments = [\n {\n type: TaonCmsContentType.Video,\n key: 'videoKey',\n heading: this.t.gettext('Video Attachment'),\n uploadLabel: this.t.gettext('Upload video'),\n accept: 'video/*',\n },\n {\n type: TaonCmsContentType.Audio,\n key: 'audioKey',\n heading: this.t.gettext('Audio Attachment'),\n uploadLabel: this.t.gettext('Upload audio'),\n accept: 'audio/*',\n },\n {\n type: TaonCmsContentType.Attachment,\n key: 'attachmentKey',\n heading: this.t.gettext('File Attachment'),\n uploadLabel: this.t.gettext('Upload file'),\n accept: '',\n },\n ] as const;\n\n readonly mediaAttachment = computed(() =>\n this.mediaAttachments.find(media => media.type === this.draft().type),\n );\n\n readonly busy = signal(false);\n\n readonly thumbnailPreviewUrl = signal('');\n\n readonly thumbnailError = signal('');\n\n private readonly thumbnailReference = computed(\n () => this.draft().thumbnailKey,\n );\n\n private readonly thumbnailSlug = computed(() => this.draft().slug);\n\n readonly taxonomyLoading = signal(false);\n\n readonly taxonomyError = signal('');\n\n readonly categories = signal<TaonCmsCategoryEntity[]>([]);\n\n readonly tags = signal<TaonCmsTagEntity[]>([]);\n\n readonly tagSearch = signal('');\n\n readonly filteredTags = computed(() => {\n const query = this.tagSearch().trim().toLowerCase();\n return this.tags().filter(\n tag =>\n !this.draft().tagIds.includes(tag.id) &&\n `${tag.name} ${tag.slug}`.toLowerCase().includes(query),\n );\n });\n\n readonly selectedTags = computed(() =>\n this.tags().filter(tag => this.draft().tagIds.includes(tag.id)),\n );\n\n private readonly categoryApi = inject(TaonCmsCategoryApiService);\n\n private readonly tagApi = inject(TaonCmsTagApiService);\n\n private taxonomyLoad?: Subscription;\n\n private editorSession = 0;\n\n private thumbnailObjectUrl = '';\n\n private readonly stagedThumbnail = signal<{\n key: string | null;\n url: string;\n } | null>(null);\n\n readonly uploading = signal(false);\n\n readonly uploadProgress = signal(0);\n\n readonly mediaPreviewUrl = signal('');\n\n readonly mediaPreviewLoading = signal(false);\n\n readonly mediaPreviewError = signal('');\n\n private readonly mediaFileNames = signal<Record<string, string>>({});\n\n private readonly uploadedMediaPreview = signal<{\n key: string;\n url: string;\n fileName: string;\n } | null>(null);\n\n private mediaPreviewRequest = 0;\n\n private mediaPreviewSignature = '';\n\n readonly dialogOpen = signal(false);\n\n readonly error = signal('');\n\n readonly relatedPosts = signal<TaonCmsContentEntity[]>([]);\n\n readonly relatedPostsLoading = signal(false);\n\n readonly relatedPostsError = signal('');\n\n readonly parentPost = signal<TaonCmsContentEntity | null>(null);\n\n readonly parentPostLoading = signal(false);\n\n readonly parentPostError = signal('');\n\n readonly postVersionLinks = signal<TaonCmsPostVersionLinks>({\n publicVersionPost: null,\n privateVersionPost: null,\n });\n\n readonly postVersionLinksLoading = signal(false);\n\n readonly postVersionLinksError = signal('');\n\n readonly canEditPublicVersion = computed(() => {\n const status = this.currentPost()?.status;\n return (\n (status === 'draft' || status === 'archived') &&\n !this.postVersionLinksLoading() &&\n !this.postVersionLinksError()\n );\n });\n\n readonly canEditPrivateVersion = computed(\n () =>\n this.currentPost()?.status === 'published' &&\n !this.postVersionLinksLoading() &&\n !this.postVersionLinksError(),\n );\n\n readonly applicationHooks = signal<TaonCmsApplicationHookEntity[]>([]);\n\n readonly applicationHooksLoading = signal(false);\n\n readonly applicationHooksError = signal('');\n\n readonly useAsApplicationHook = signal(false);\n\n readonly selectedApplicationHook = signal<TaonCmsApplicationHook | null>(\n null,\n );\n\n readonly permissions = signal<TaonPermissionEntity[]>([]);\n\n readonly applyPermissionsToRelatedPosts = signal(false);\n\n readonly applyVisibilityToRelatedPosts = signal(false);\n\n readonly visibilitySource = signal<{ id: number; title: string } | null>(\n null,\n );\n\n readonly visibilityLoading = signal(false);\n\n readonly visibilityError = signal(false);\n\n readonly draftStatus = signal<TaonCmsContentFields['status']>('draft');\n\n readonly subtitleEmpty = computed(() =>\n this.isEmptyContent(this.draft().excerpt),\n );\n\n readonly descriptionEmpty = computed(() =>\n this.isEmptyContent(this.draft().body),\n );\n\n readonly permissionSource = signal<{ id: number; title: string } | null>(\n null,\n );\n\n readonly permissionsLoading = signal(false);\n\n readonly permissionsError = signal('');\n\n readonly permissionOptions = signal<TaonPermissionEntity[]>([]);\n\n readonly permissionOptionsLoading = signal(false);\n\n readonly permissionOptionsError = signal('');\n\n readonly selectedPermissionId = signal<number | null>(null);\n\n readonly availablePermissions = computed(() => {\n const assignedIds = new Set(\n this.permissions().map(permission => permission.id),\n );\n return this.permissionOptions().filter(\n permission => !assignedIds.has(permission.id),\n );\n });\n\n readonly editing = computed(\n () => this.mode() === 'edit' || this.mode() === 'add',\n );\n\n readonly canSave = computed(\n () =>\n !!this.draft().title.trim() &&\n !!this.draft().slug.trim() &&\n !this.relatedPostsLoading() &&\n !this.relatedPostsError() &&\n !this.applicationHooksLoading() &&\n !this.applicationHooksError() &&\n (!this.useAsApplicationHook() || !!this.selectedApplicationHook()) &&\n !this.permissionsLoading() &&\n !this.permissionsError() &&\n !this.taxonomyLoading() &&\n !this.taxonomyError(),\n );\n\n readonly statusLabel = computed(() => {\n const status = this.mode() === 'add'\n ? this.draftStatus()\n : this.currentPost()?.status ?? 'draft';\n switch (status) {\n case 'published':\n return this.t.gettext('Status: Published');\n case 'archived':\n return this.t.gettext('Status: Archived');\n default:\n return this.t.gettext('Status: Draft');\n }\n });\n\n readonly statusControlDisabled = computed(\n () =>\n this.busy() ||\n this.dialogOpen() ||\n this.visibilityLoading() ||\n this.visibilityError() ||\n !!this.visibilitySource() ||\n (this.mode() === 'edit' && !this.canSave()),\n );\n\n private readonly api = inject(TaonCmsContentApiService);\n\n private readonly contentConfig = inject(TaonCmsContentConfigService);\n\n readonly contentTab = signal(0);\n\n readonly contentEditor = signal<Editor | null>(null);\n\n readonly rawContent =\n viewChild<ElementRef<HTMLTextAreaElement>>('rawContent');\n\n private loadingEditorContent = false;\n\n readonly contentToolbar: Toolbar = [\n [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],\n ['bold', 'italic', 'underline', 'strike'],\n ['ordered_list', 'bullet_list'],\n ['blockquote', 'code'],\n ['link', 'image'],\n ['text_color', 'background_color'],\n ['align_left', 'align_center', 'align_right', 'align_justify'],\n ['horizontal_rule', 'format_clear'],\n ['undo', 'redo'],\n ];\n\n readonly resolvedBody = computed(() => {\n const draft = this.draft();\n return resolveTemplateVariables(draft.body, {\n frontendUrl: this.api.frontendUrl,\n site: { name: this.contentConfig.siteName },\n post: {\n title: draft.title,\n url: draft.slug ? this.api.getPostUrl(draft.slug) : null,\n id: this.currentPost()?.id,\n thumbnailUrl: this.thumbnailPreviewUrl() || null,\n },\n });\n });\n\n private readonly permissionApi = inject(TaonPermissionApiService);\n\n private readonly dialog = inject(MatDialog);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private relatedPostsLoad?: Subscription;\n\n private parentPostRequest = 0;\n\n private visibilityRequest = 0;\n\n private postVersionLinksRequest = 0;\n\n private applicationHooksLoad?: Subscription;\n\n private permissionsLoad?: Subscription;\n //#endregion\n\n ngAfterViewInit(): void {\n if (this.actionButtonsTemplateRef) {\n this.actionButtonsTemplate.emit(this.actionButtonsTemplateRef);\n }\n }\n\n //#region constructor\n constructor() {\n const editor = new Editor({\n attributes: {\n 'aria-label': this.t.gettext('Post body'),\n style: 'min-height: 20rem',\n },\n });\n\n this.contentEditor.set(editor);\n\n const editorChanges = editor.valueChanges.subscribe(document => {\n if (!this.editing() || this.loadingEditorContent) {\n return;\n }\n\n this.updateDraft('body', toHTML(document, editor.schema));\n });\n\n // React to post input changes.\n effect(() => {\n const post = this.post();\n\n untracked(() => {\n this.setPost(post);\n\n // Synchronize editor only because the POST changed externally.\n this.loadingEditorContent = true;\n\n try {\n editor.setContent(this.draft().body);\n } finally {\n this.loadingEditorContent = false;\n }\n });\n });\n\n // Enable/disable editor without recreating it.\n effect(() => {\n const disabled = this.busy() || this.dialogOpen() || !this.editing();\n\n editor.view.setProps({\n editable: () => !disabled,\n });\n });\n\n // Load edit-mode dependencies.\n effect(() => {\n if (this.editing()) {\n untracked(() => {\n this.loadApplicationHooks();\n this.loadPermissionOptions();\n this.loadTaxonomy();\n });\n }\n });\n\n // Thumbnail preview handling.\n effect(onCleanup => {\n const key = this.thumbnailReference();\n const editing = this.editing();\n const slug = editing ? '' : this.thumbnailSlug();\n const staged = this.stagedThumbnail();\n\n let active = true;\n\n onCleanup(() => {\n active = false;\n });\n\n this.thumbnailError.set('');\n this.thumbnailPreviewUrl.set('');\n\n if (staged && staged.key === key) {\n this.thumbnailPreviewUrl.set(staged.url);\n return;\n }\n\n if (!key) {\n return;\n }\n\n const placeholder = defaultThumbnailUrl(key);\n\n if (placeholder) {\n this.thumbnailPreviewUrl.set(placeholder);\n return;\n }\n\n if (!editing && !slug) {\n return;\n }\n\n const load = async () => {\n if (editing) {\n return this.api.getAssetUrl(key);\n }\n\n try {\n return await this.api.getThumbnailLinkBySlug(slug, true);\n } catch {\n return this.api.getThumbnailLinkBySlug(slug);\n }\n };\n\n void load()\n .then(url => {\n if (active && !this.destroyRef.destroyed) {\n this.thumbnailPreviewUrl.set(url);\n }\n })\n .catch((error: unknown) => {\n console.error('[taon-cms-post] Unable to load thumbnail', error);\n\n if (active && !this.destroyRef.destroyed) {\n this.thumbnailError.set(\n this.t.gettext('The thumbnail could not be loaded.'),\n );\n }\n });\n });\n\n // Media preview handling.\n effect(() => {\n const media = this.mediaAttachment();\n const key = media ? this.draft()[media.key] : null;\n\n const slug = this.draft().slug;\n const editing = this.editing();\n\n const viewing = !!this.currentPost() && this.mode() !== 'add';\n\n const stagedPreview = this.uploadedMediaPreview();\n\n if ((!editing && !viewing) || !media || !key) {\n this.mediaPreviewSignature = '';\n this.mediaPreviewRequest += 1;\n this.mediaPreviewUrl.set('');\n this.mediaPreviewLoading.set(false);\n this.mediaPreviewError.set('');\n return;\n }\n\n if (stagedPreview?.key === key) {\n const signature = `upload:${key}:${stagedPreview.url}`;\n\n if (signature === this.mediaPreviewSignature) {\n return;\n }\n\n this.mediaPreviewSignature = signature;\n this.mediaPreviewRequest += 1;\n\n this.mediaPreviewUrl.set(stagedPreview.url);\n\n this.mediaPreviewLoading.set(false);\n this.mediaPreviewError.set('');\n\n return;\n }\n\n if (!slug) {\n this.mediaPreviewSignature = '';\n this.mediaPreviewRequest += 1;\n this.mediaPreviewUrl.set('');\n this.mediaPreviewLoading.set(false);\n this.mediaPreviewError.set('');\n return;\n }\n\n const signature = `${this.mode()}:${media.type}:${slug}:${key}`;\n\n if (signature === this.mediaPreviewSignature) {\n return;\n }\n\n this.mediaPreviewSignature = signature;\n\n const requestId = ++this.mediaPreviewRequest;\n\n this.mediaPreviewUrl.set('');\n this.mediaPreviewLoading.set(true);\n this.mediaPreviewError.set('');\n\n const getLink = editing\n ? this.getMediaLink(slug, media.type)\n : this.getMediaLinkForView(slug, media.type);\n\n void getLink\n .then(url => {\n if (\n requestId === this.mediaPreviewRequest &&\n !this.destroyRef.destroyed\n ) {\n this.mediaPreviewUrl.set(url);\n }\n })\n .catch((error: unknown) => {\n console.error('[taon-cms-post] Unable to load media preview', error);\n\n if (\n requestId === this.mediaPreviewRequest &&\n !this.destroyRef.destroyed\n ) {\n this.mediaPreviewError.set(\n this.t.gettext(\n 'Media preview could not be loaded. Please reopen the editor to try again.',\n ),\n );\n }\n })\n .finally(() => {\n if (\n requestId === this.mediaPreviewRequest &&\n !this.destroyRef.destroyed\n ) {\n this.mediaPreviewLoading.set(false);\n }\n });\n });\n\n // Destroy ngx-editor ONLY when this component is actually destroyed.\n this.destroyRef.onDestroy(() => {\n editorChanges.unsubscribe();\n editor.destroy();\n\n if (this.contentEditor() === editor) {\n this.contentEditor.set(null);\n }\n\n this.releaseThumbnailPreview();\n });\n }\n //#endregion\n\n //#region methods / load related posts\n loadTaxonomy(preserveSelectedTags = false): void {\n this.taxonomyLoad?.unsubscribe();\n const session = this.editorSession;\n const postId = this.currentPost()?.id;\n this.taxonomyLoading.set(true);\n this.taxonomyError.set('');\n this.taxonomyLoad = forkJoin({\n categories: this.categoryApi.allMyEntities$,\n tags: this.tagApi.allMyEntities$,\n tagIds: postId ? this.api.listTagIds(postId) : of([] as number[]),\n })\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.taxonomyLoading.set(false)),\n )\n .subscribe({\n next: result => {\n if (session === this.editorSession) {\n this.categories.set(\n result.categories.sort(\n (a, b) =>\n a.sortOrder - b.sortOrder || a.name.localeCompare(b.name),\n ),\n );\n this.tags.set(result.tags);\n if (!preserveSelectedTags) {\n this.updateDraft('tagIds', result.tagIds);\n }\n }\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load categories and tags',\n error,\n );\n this.taxonomyError.set(\n this.t.gettext(\n 'Categories and tags could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n\n addTag(id: number): void {\n if (!this.draft().tagIds.includes(id)) {\n this.updateDraft('tagIds', [...this.draft().tagIds, id]);\n }\n }\n\n removeTag(id: number): void {\n this.updateDraft(\n 'tagIds',\n this.draft().tagIds.filter(selected => selected !== id),\n );\n }\n\n filterTags(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.tagSearch.set(event.target.value);\n }\n }\n\n createTaxonomy(taxonomy: 'category' | 'tag'): void {\n if (this.busy() || this.dialogOpen()) {\n return;\n }\n\n this.dialogOpen.set(true);\n this.taxonomyError.set('');\n const ref = this.dialog.open<\n TaonCmsTaxonomyQuickCreateDialogComponent,\n { taxonomy: 'category' | 'tag' },\n {\n name: string;\n slug: string;\n description: string | null;\n parentCategoryId: number | null;\n sortOrder: number;\n }\n >(TaonCmsTaxonomyQuickCreateDialogComponent, {\n data: { taxonomy },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(fields => {\n if (!fields) {\n this.dialogOpen.set(false);\n return;\n }\n\n const request =\n taxonomy === 'category'\n ? this.categoryApi.save(null, fields)\n : this.tagApi.save(null, fields);\n request\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.dialogOpen.set(false)),\n )\n .subscribe({\n next: saved => {\n if (taxonomy === 'category') {\n this.updateDraft('categoryId', saved.id);\n } else {\n this.addTag(saved.id);\n }\n this.loadTaxonomy(true);\n },\n error: (error: unknown) => {\n console.error(\n `[taon-cms-post] Unable to create ${taxonomy}`,\n error,\n );\n this.taxonomyError.set(\n taxonomy === 'category'\n ? this.t.gettext(\n 'The category could not be created. Please try again.',\n )\n : this.t.gettext(\n 'The tag could not be created. Please try again.',\n ),\n );\n },\n });\n });\n }\n\n applyDefaultThumbnail(): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n this.releaseThumbnailPreview();\n this.stagedThumbnail.set(null);\n this.updateDraft('thumbnailKey', defaultThumbnailKey(this.draft().type));\n }\n\n async thumbnailSelected(event: Event): Promise<void> {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n const input = event.target;\n const file = input.files?.[0];\n input.value = '';\n if (!file || !this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n if (!file.type.startsWith('image/')) {\n this.error.set(\n this.t.gettext('Please select an image for the thumbnail.'),\n );\n return;\n }\n this.busy.set(true);\n this.error.set('');\n try {\n await this.storeThumbnail(file, this.editorSession);\n } catch (error: unknown) {\n console.error('[taon-cms-post] Unable to upload thumbnail', error);\n this.error.set(\n this.t.gettext(\n 'The thumbnail could not be uploaded. Please try again.',\n ),\n );\n } finally {\n this.busy.set(false);\n }\n }\n\n private async storeThumbnail(file: File, session: number): Promise<void> {\n if (session !== this.editorSession || this.destroyRef.destroyed) {\n return;\n }\n const previousPreview = this.thumbnailPreviewUrl();\n const previousStaged = this.stagedThumbnail();\n const preview = URL.createObjectURL(file);\n this.stagedThumbnail.set({ key: this.draft().thumbnailKey, url: preview });\n this.thumbnailPreviewUrl.set(preview);\n try {\n const object = await this.api.uploadMedia(file);\n if (session === this.editorSession && !this.destroyRef.destroyed) {\n this.releaseThumbnailPreview();\n this.thumbnailObjectUrl = preview;\n this.stagedThumbnail.set({ key: object.key, url: preview });\n this.updateDraft('thumbnailKey', object.key);\n }\n } catch (error: unknown) {\n if (session === this.editorSession) {\n this.stagedThumbnail.set(previousStaged);\n this.thumbnailPreviewUrl.set(previousPreview);\n }\n throw error;\n } finally {\n if (this.thumbnailObjectUrl !== preview) {\n URL.revokeObjectURL(preview);\n }\n }\n }\n\n private releaseThumbnailPreview(): void {\n if (this.thumbnailObjectUrl) {\n URL.revokeObjectURL(this.thumbnailObjectUrl);\n this.thumbnailObjectUrl = '';\n }\n }\n\n loadRelatedPosts(): void {\n if (this.busy() || this.relatedPostsLoading()) {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.relatedPostsLoading.set(true);\n this.relatedPostsError.set('');\n this.relatedPostsLoad = this.api\n .listRelatedPosts(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.relatedPostsLoading.set(false)),\n )\n .subscribe({\n next: posts => this.relatedPosts.set(posts),\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to load related posts', error);\n this.relatedPostsError.set(\n this.t.gettext(\n 'Related posts could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n //#endregion\n\n private loadParentPost(post: TaonCmsContentEntity | null): void {\n const request = ++this.parentPostRequest;\n this.parentPost.set(null);\n this.parentPostError.set('');\n if (!post) {\n this.parentPostLoading.set(false);\n return;\n }\n this.parentPostLoading.set(true);\n void this.api\n .getParentPost(post.id)\n .then(parent => {\n if (request === this.parentPostRequest) {\n this.parentPost.set(parent);\n }\n })\n .catch((error: unknown) => {\n console.error('[taon-cms-post] Unable to load parent post', error);\n if (request === this.parentPostRequest) {\n this.parentPostError.set(\n this.t.gettext('The parent post could not be loaded. Please retry.'),\n );\n }\n })\n .finally(() => {\n if (request === this.parentPostRequest) {\n this.parentPostLoading.set(false);\n }\n });\n }\n\n private loadVisibilityConfiguration(post: TaonCmsContentEntity | null): void {\n const request = ++this.visibilityRequest;\n this.visibilitySource.set(null);\n this.visibilityError.set(false);\n if (!post) {\n this.visibilityLoading.set(false);\n return;\n }\n this.visibilityLoading.set(true);\n void this.api\n .getVisibilityConfiguration(post.id)\n .then(configuration => {\n if (request === this.visibilityRequest) {\n this.visibilitySource.set(configuration.source);\n }\n })\n .catch((error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load visibility inheritance',\n error,\n );\n if (request === this.visibilityRequest) {\n this.visibilityError.set(true);\n this.error.set(\n this.t.gettext('The post visibility could not be verified.'),\n );\n }\n })\n .finally(() => {\n if (request === this.visibilityRequest) {\n this.visibilityLoading.set(false);\n }\n });\n }\n\n loadPostVersionLinks(post: TaonCmsContentEntity | null): void {\n const request = ++this.postVersionLinksRequest;\n this.postVersionLinks.set({\n publicVersionPost: null,\n privateVersionPost: null,\n });\n this.postVersionLinksError.set('');\n if (!post) {\n this.postVersionLinksLoading.set(false);\n return;\n }\n this.postVersionLinksLoading.set(true);\n void this.api\n .getPostVersions(post.id)\n .then(links => {\n if (request === this.postVersionLinksRequest) {\n this.postVersionLinks.set(links);\n }\n })\n .catch((error: unknown) => {\n console.error('[taon-cms-post] Unable to load post versions', error);\n if (request === this.postVersionLinksRequest) {\n this.postVersionLinksError.set(\n this.t.gettext(\n 'Post version links could not be loaded. Please retry.',\n ),\n );\n }\n })\n .finally(() => {\n if (request === this.postVersionLinksRequest) {\n this.postVersionLinksLoading.set(false);\n }\n });\n }\n\n requestPostEditor(event: Event, post: TaonCmsContentEntity): void {\n event.preventDefault();\n this.editPostRequested.emit(post);\n }\n\n removeParentPost(): void {\n const post = this.currentPost();\n const parent = this.parentPost();\n if (\n !this.editing() ||\n !post ||\n !parent ||\n this.busy() ||\n this.dialogOpen()\n ) {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n this.api\n .deleteRelatedPost(parent.id, post.id, parent.version)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: () => {\n this.parentPost.set(null);\n this.loadPermissions();\n },\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to remove parent post', error);\n this.error.set(\n this.t.gettext(\n 'The parent post could not be removed. Please try again.',\n ),\n );\n },\n });\n }\n\n //#region methods / add related post\n addRelatedPost(): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading() ||\n this.relatedPostsError()\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonRelatedPostChooserComponent,\n TaonRelatedPostChooserData,\n TaonCmsContentEntity\n >(TaonRelatedPostChooserComponent, {\n data: {\n postId: this.currentPost()?.id,\n excludedIds: this.relatedPosts().map(post => post.id),\n },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(post => {\n this.dialogOpen.set(false);\n if (\n post &&\n post.id !== this.currentPost()?.id &&\n !this.relatedPosts().some(related => related.id === post.id)\n ) {\n this.relatedPosts.update(posts => [...posts, post]);\n }\n });\n }\n //#endregion\n\n //#region methods / add as child of\n addAsChildOf(): void {\n const post = this.currentPost();\n if (\n !this.editing() ||\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading()\n ) {\n return;\n }\n\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonRelatedPostChooserComponent,\n TaonRelatedPostChooserData,\n TaonCmsContentEntity\n >(TaonRelatedPostChooserComponent, {\n data: { postId: post.id, excludedIds: [] },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(parent => {\n this.dialogOpen.set(false);\n if (!parent || !this.currentPost()) {\n return;\n }\n\n this.busy.set(true);\n this.error.set('');\n this.api\n .addRelatedPost(parent.id, post.id, parent.version)\n .pipe(\n switchMap(() =>\n forkJoin({\n post: from(this.api.getById(post.id)),\n parent: from(this.api.getById(parent.id)),\n }),\n ),\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: refreshed => {\n this.currentPost.set(refreshed.post);\n this.parentPost.set(refreshed.parent);\n this.permissionsLoad?.unsubscribe();\n this.permissionsLoading.set(false);\n this.loadPermissions();\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to make post a child',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The parent post could not be changed. Please try again.',\n ),\n );\n },\n });\n });\n }\n //#endregion\n\n //#region methods / remove related post\n removeRelatedPost(id: number): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.relatedPostsLoading() ||\n this.relatedPostsError()\n ) {\n return;\n }\n this.relatedPosts.update(posts => posts.filter(post => post.id !== id));\n }\n //#endregion\n\n selectVersionPost(kind: TaonCmsPostVersionKind): void {\n const post = this.currentPost();\n const canEdit =\n kind === 'public'\n ? this.canEditPublicVersion()\n : this.canEditPrivateVersion();\n if (\n !this.editing() ||\n !post ||\n !canEdit ||\n this.busy() ||\n this.dialogOpen()\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const isPublicVersion = kind === 'public';\n const ref = this.dialog.open<\n TaonRelatedPostChooserComponent,\n TaonRelatedPostChooserData,\n TaonCmsContentEntity\n >(TaonRelatedPostChooserComponent, {\n data: {\n postId: post.id,\n excludedIds: [],\n eligibleStatuses: isPublicVersion\n ? ['published']\n : ['draft', 'archived'],\n dialogTitle: isPublicVersion\n ? this.t.gettext('Select the public version post')\n : this.t.gettext('Select the private version post'),\n confirmLabel: this.t.gettext('Link post version'),\n selectionLabel: this.t.gettext('Post version'),\n selectionError: this.t.gettext('Select an eligible post version.'),\n },\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(versionPost => {\n this.dialogOpen.set(false);\n const currentPost = this.currentPost();\n if (!versionPost || !currentPost) {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n this.api\n .linkVersionPost(\n currentPost.id,\n versionPost.id,\n kind,\n currentPost.version,\n )\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: updatedPost => {\n this.currentPost.set(updatedPost);\n this.loadPostVersionLinks(updatedPost);\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to link post version',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The post version could not be linked. Reload the post and try again.',\n ),\n );\n },\n });\n });\n }\n\n removeVersionPost(kind: TaonCmsPostVersionKind): void {\n const post = this.currentPost();\n const canEdit =\n kind === 'public'\n ? this.canEditPublicVersion()\n : this.canEditPrivateVersion();\n if (\n !this.editing() ||\n !post ||\n !canEdit ||\n this.busy() ||\n this.dialogOpen()\n ) {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n this.api\n .removeVersionPost(post.id, kind, post.version)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: updatedPost => {\n this.currentPost.set(updatedPost);\n this.loadPostVersionLinks(updatedPost);\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to remove post version',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The post version could not be removed. Reload the post and try again.',\n ),\n );\n },\n });\n }\n\n //#region methods / application hooks\n loadApplicationHooks(): void {\n if (this.applicationHooksLoading()) {\n return;\n }\n this.applicationHooksLoading.set(true);\n this.applicationHooksError.set('');\n this.applicationHooksLoad = this.api\n .listApplicationHooks()\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.applicationHooksLoading.set(false)),\n )\n .subscribe({\n next: hooks => {\n this.applicationHooks.set(hooks);\n this.setApplicationHookSelection(this.currentPost(), hooks);\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load application hooks',\n error,\n );\n this.applicationHooksError.set(\n this.t.gettext(\n 'Application hooks could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n\n setUseAsApplicationHook(enabled: boolean): void {\n this.useAsApplicationHook.set(enabled);\n }\n\n applicationHookInUseByAnotherPost(\n applicationHook: TaonCmsApplicationHookEntity,\n ): boolean {\n return (\n applicationHook.contentId !== null &&\n applicationHook.contentId !== this.currentPost()?.id\n );\n }\n\n applicationHookLabel(hook: TaonCmsApplicationHook): string {\n return hook.split('-').join('_').toUpperCase();\n }\n //#endregion\n\n //#region methods / load permissions\n loadPermissions(): void {\n if (this.permissionsLoading()) {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.permissionsLoading.set(true);\n this.permissionsError.set('');\n this.permissionsLoad = this.api\n .getPermissionConfiguration(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.permissionsLoading.set(false)),\n )\n .subscribe({\n next: configuration => {\n this.permissions.set(configuration.permissions);\n this.permissionSource.set(configuration.source);\n },\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to load permissions', error);\n this.permissionsError.set(\n this.t.gettext(\n 'Permissions could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n //#endregion\n\n //#region methods / add permission\n addPermission(): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.permissionSource() ||\n this.permissionsLoading() ||\n this.permissionsError()\n ) {\n return;\n }\n const permissionId = this.selectedPermissionId();\n const permission = this.availablePermissions().find(\n item => item.id === permissionId,\n );\n if (permission) {\n this.permissions.update(permissions => [...permissions, permission]);\n this.selectedPermissionId.set(null);\n }\n }\n //#endregion\n\n //#region methods / remove permission\n removePermission(id: number): void {\n if (\n !this.editing() ||\n this.busy() ||\n this.dialogOpen() ||\n this.permissionSource() ||\n this.permissionsLoading() ||\n this.permissionsError()\n ) {\n return;\n }\n this.permissions.update(items =>\n items.filter(permission => permission.id !== id),\n );\n }\n //#endregion\n\n //#region methods / load permission options\n loadPermissionOptions(): void {\n if (\n this.permissionOptionsLoading() ||\n this.permissionOptions().length > 0\n ) {\n return;\n }\n this.permissionOptionsLoading.set(true);\n this.permissionOptionsError.set('');\n this.permissionApi.allMyEntities$\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.permissionOptionsLoading.set(false)),\n )\n .subscribe({\n next: permissions => this.permissionOptions.set(permissions),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load permission options',\n error,\n );\n this.permissionOptionsError.set(\n this.t.gettext(\n 'Available permissions could not be loaded. Please try again.',\n ),\n );\n },\n });\n }\n //#endregion\n\n //#region methods / update draft\n updateRawContent(event: Event): void {\n if (event.target instanceof HTMLTextAreaElement) {\n this.updateDraft('body', event.target.value);\n }\n }\n\n setContentTab(index: number): void {\n const editor = this.contentEditor();\n if (editor && this.contentTab() === 0 && index !== 0) {\n this.updateDraft('body', toHTML(editor.view.state.doc, editor.schema));\n }\n if (editor && index === 0) {\n this.loadingEditorContent = true;\n try {\n editor.setContent(this.draft().body);\n } finally {\n this.loadingEditorContent = false;\n }\n }\n this.contentTab.set(index);\n }\n\n insertVariable(variable: TaonCmsTemplateVariable): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n const text = `{{${variable}}}`;\n if (this.contentTab() === 1) {\n const textarea = this.rawContent()?.nativeElement;\n if (textarea) {\n textarea.setRangeText(\n text,\n textarea.selectionStart,\n textarea.selectionEnd,\n 'end',\n );\n this.updateDraft('body', textarea.value);\n textarea.focus();\n }\n } else if (this.contentTab() === 0) {\n const editor = this.contentEditor();\n editor?.commands.insertText(text).exec();\n editor?.view.focus();\n }\n }\n\n updateDraft<K extends keyof TaonCmsPostDraft>(\n field: K,\n value: TaonCmsPostDraft[K],\n ): void {\n if (field === 'title' && this.mode() === 'add') {\n const title = String(value);\n this.draft.update(draft => ({\n ...draft,\n title,\n slug: ___NS__kebabCase(title),\n }));\n return;\n }\n this.draft.update(draft => ({ ...draft, [field]: value }));\n }\n //#endregion\n\n //#region methods / file selected\n async fileSelected(event: Event): Promise<void> {\n if (!(event.target instanceof HTMLInputElement)) {\n this.error.set(this.t.gettext('Unable to read the selected media file.'));\n return;\n }\n const input = event.target;\n const file = input.files?.[0];\n if (!file) {\n return;\n }\n const media = this.mediaAttachment();\n if (!media || !this.editing() || this.busy() || this.dialogOpen()) {\n input.value = '';\n return;\n }\n const session = this.editorSession;\n this.busy.set(true);\n this.uploading.set(true);\n this.uploadProgress.set(0);\n this.error.set('');\n try {\n const object = await this.api.uploadMedia(file, percentage => {\n if (!this.destroyRef.destroyed) {\n this.uploadProgress.set(percentage);\n }\n });\n if (!this.destroyRef.destroyed && this.editorSession === session) {\n const fileName = object.fileName || file.name;\n this.mediaFileNames.update(names => ({\n ...names,\n [object.key]: fileName,\n }));\n if (object.downloadUrl) {\n this.uploadedMediaPreview.set({\n key: object.key,\n url: this.uploadedMediaUrl(object.downloadUrl, media.type),\n fileName,\n });\n }\n this.updateDraft(media.key, object.key);\n if (media.type === TaonCmsContentType.Video) {\n try {\n const blob = await generateVideoThumbnail(file);\n const extension = blob.type === 'image/webp' ? 'webp' : 'png';\n await this.storeThumbnail(\n new File([blob], `thumbnail.${extension}`, { type: blob.type }),\n session,\n );\n } catch (error: unknown) {\n console.error(\n '[taon-cms-post] Unable to generate thumbnail',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The video was uploaded, but its thumbnail could not be generated. Upload a thumbnail or apply a default placeholder.',\n ),\n );\n }\n }\n }\n } catch (error: unknown) {\n console.error('[taon-cms-post] Unable to upload media', error);\n this.error.set(\n this.t.gettext('The media could not be uploaded. Please try again.'),\n );\n } finally {\n this.busy.set(false);\n this.uploading.set(false);\n this.uploadProgress.set(0);\n input.value = '';\n }\n }\n //#endregion\n\n //#region methods / remove media\n removeMedia(): void {\n const media = this.mediaAttachment();\n if (!media || !this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n this.uploadedMediaPreview.set(null);\n this.updateDraft(media.key, null);\n }\n //#endregion\n\n //#region methods / uploaded media URL\n private uploadedMediaUrl(url: string, type: TaonCmsContentType): string {\n if (type !== TaonCmsContentType.Attachment) {\n return url;\n }\n const parsedUrl = new URL(url);\n parsedUrl.searchParams.set('download', 'true');\n return parsedUrl.href;\n }\n //#endregion\n\n //#region methods / get media link\n private getMediaLink(\n slug: string,\n type: TaonCmsContentType,\n ): Promise<string> {\n switch (type) {\n case TaonCmsContentType.Video:\n return firstValueFrom(this.api.getVideoLinkBySlug(slug));\n case TaonCmsContentType.Audio:\n return firstValueFrom(this.api.getAudioLinkBySlug(slug));\n case TaonCmsContentType.Attachment:\n return this.api.getAttachmentLinkBySlug(slug);\n default:\n return Promise.reject(new Error('This post type has no media.'));\n }\n }\n //#endregion\n\n //#region methods / get media link for viewing\n private async getMediaLinkForView(\n slug: string,\n type: TaonCmsContentType,\n ): Promise<string> {\n try {\n switch (type) {\n case TaonCmsContentType.Video:\n return await this.api.getPublicVideoLinkBySlug(slug);\n case TaonCmsContentType.Audio:\n return await this.api.getPublicAudioLinkBySlug(slug);\n case TaonCmsContentType.Attachment:\n return await this.api.getPublicAttachmentLinkBySlug(slug);\n default:\n throw new Error('This post type has no media.');\n }\n } catch {\n return this.getMediaLink(slug, type);\n }\n }\n //#endregion\n\n //#region methods / media file name\n mediaFileName(key: string): string {\n const fileName = this.mediaFileNames()[key];\n if (fileName) {\n return fileName;\n }\n const uploaded = this.uploadedMediaPreview();\n if (uploaded?.key === key) {\n return uploaded.fileName;\n }\n const storedName = key.split('/').pop() || key;\n return storedName.replace(/^[0-9a-f-]{36}__/i, '');\n }\n //#endregion\n\n //#region methods / update slug\n updateSlug(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.updateDraft('slug', event.target.value);\n }\n }\n //#endregion\n\n //#region methods / edit\n edit(): void {\n if (this.mode() !== 'view' || this.busy() || this.dialogOpen()) {\n return;\n }\n if (!this.requirePost()) {\n return;\n }\n this.error.set('');\n this.mode.set('edit');\n }\n //#endregion\n\n //#region methods / cancel\n cancel(): void {\n if (this.busy() || this.dialogOpen()) {\n return;\n }\n this.setPost(this.currentPost());\n this.error.set('');\n if (this.editing()) {\n this.mode.set('view');\n }\n this.cancelled.emit();\n }\n //#endregion\n\n //#region methods / save\n save(): void {\n if (this.busy() || this.dialogOpen() || !this.editing()) {\n return;\n }\n if (!this.canSave()) {\n this.error.set(this.t.gettext('A title and slug are required.'));\n return;\n }\n if (this.mode() === 'add') {\n this.persist(\n this.api.createContent({\n ...this.draft(),\n relatedPostIds: this.relatedPosts().map(post => post.id),\n permissionIds: this.permissions().map(permission => permission.id),\n applyPermissionsToRelatedPosts: this.applyPermissionsToRelatedPosts(),\n applyVisibilityToRelatedPosts:\n this.applyVisibilityToRelatedPosts(),\n status: this.draftStatus(),\n applicationHook: this.useAsApplicationHook()\n ? this.selectedApplicationHook()\n : null,\n }),\n );\n } else {\n const post = this.requirePost();\n if (post) {\n this.persist(this.api.updateContent(post.id, this.updateInput(post)));\n }\n }\n }\n //#endregion\n\n //#region methods / status selection\n selectStatus(): void {\n if (this.statusControlDisabled() || this.mode() === 'view-clean') {\n return;\n }\n const currentStatus = this.draftStatus();\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonCmsPostChoiceDialogComponent<TaonCmsContentFields['status']>,\n TaonCmsPostChoiceDialogData<TaonCmsContentFields['status']>,\n TaonCmsContentFields['status']\n >(TaonCmsPostChoiceDialogComponent, {\n data: {\n title: this.t.gettext('Change post status'),\n options: [\n { value: 'published', label: this.t.gettext('Published') },\n { value: 'draft', label: this.t.gettext('Draft') },\n { value: 'archived', label: this.t.gettext('Archived') },\n ],\n selected: currentStatus,\n },\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(status => {\n this.dialogOpen.set(false);\n if (!status || status === currentStatus) {\n return;\n }\n if (this.mode() === 'add') {\n this.draftStatus.set(status);\n return;\n }\n if (this.editing() && !this.canSave()) {\n this.error.set(this.t.gettext('A title and slug are required.'));\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.persist(\n this.api.updateContent(post.id, {\n ...(this.editing()\n ? this.updateInput(post)\n : { expectedVersion: post.version }),\n status,\n ...(status === 'published' && post.status !== 'published'\n ? { publishedAt: new Date() }\n : {}),\n }),\n );\n });\n }\n //#endregion\n\n //#region methods / generate placeholder text\n private isEmptyContent(value: string): boolean {\n if (/<(?:img|video|audio|iframe|object|embed|table|hr)\\b/i.test(value)) {\n return false;\n }\n return !value\n .replace(/<[^>]*>/g, '')\n .replace(/&(?:nbsp|#160|#x0*a0);/gi, ' ')\n .trim();\n }\n\n generateLoremIpsum(field: 'excerpt' | 'body'): void {\n if (!this.editing() || this.busy() || this.dialogOpen()) {\n return;\n }\n const existing = this.draft()[field] ?? '';\n if (!this.isEmptyContent(existing)) {\n return;\n }\n const title = this.draft().title.trim() || this.t.gettext('this post');\n if (field === 'excerpt') {\n this.updateDraft(\n 'excerpt',\n `Lorem ipsum dolor sit amet, ${title}; consectetur adipiscing elit.`,\n );\n return;\n }\n const description =\n `Lorem ipsum dolor sit amet, ${title}. ` +\n 'Consectetur adipiscing elit. Integer nec odio. Praesent libero. ' +\n 'Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh ' +\n 'elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce ' +\n 'nec tellus sed augue semper porta.';\n const escapedDescription = description\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;');\n this.updateDraft('body', `<p>${escapedDescription}</p>`);\n const editor = this.contentEditor();\n if (editor) {\n this.loadingEditorContent = true;\n try {\n editor.setContent(this.draft().body);\n } finally {\n this.loadingEditorContent = false;\n }\n }\n }\n //#endregion\n\n //#region methods / revert\n revert(): void {\n const post = this.requirePost();\n if (\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean'\n ) {\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonCmsRevisionChooserComponent,\n TaonCmsContentEntity,\n TaonCmsContentEntity\n >(TaonCmsRevisionChooserComponent, {\n data: post,\n width: '560px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(restored => {\n this.dialogOpen.set(false);\n if (restored) {\n this.acceptPost(restored);\n }\n });\n }\n //#endregion\n\n //#region methods / delete\n delete(): void {\n const post = this.requirePost();\n if (\n !post ||\n this.busy() ||\n this.dialogOpen() ||\n this.mode() === 'view-clean' ||\n this.mode() === 'add'\n ) {\n return;\n }\n const archived = post.status === 'archived';\n this.dialogOpen.set(true);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: archived\n ? this.t.gettext('Permanently delete post?')\n : this.t.gettext('Archive post?'),\n message: archived\n ? this.t.gettext(\n 'This permanently deletes the post and its assets. This action cannot be undone.',\n )\n : this.t.gettext(\n 'This archives the post. It can be restored from its revisions.',\n ),\n confirmText: archived\n ? this.t.gettext('Permanently delete')\n : this.t.gettext('Delete'),\n },\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(confirmed => {\n this.dialogOpen.set(false);\n if (confirmed) {\n if (!archived) {\n this.persist(this.api.deleteContent(post.id, post.version), true);\n return;\n }\n this.busy.set(true);\n this.error.set('');\n this.api\n .permanentlyDeleteContent(post.id, post.version)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: () => this.deleted.emit(post),\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to permanently delete post',\n error,\n );\n this.error.set(\n this.t.gettext(\n 'The post could not be permanently deleted. Please refresh before retrying.',\n ),\n );\n },\n });\n }\n });\n }\n //#endregion\n\n //#region methods / duplicate\n duplicate(): void {\n if (this.busy() || this.dialogOpen() || this.mode() === 'view-clean') {\n return;\n }\n const post = this.requirePost();\n if (!post) {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n this.api\n .listRelatedPosts(post.id)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n take(1),\n )\n .subscribe({\n next: children => {\n if (!children.length) {\n this.runDuplication(post, false);\n return;\n }\n this.dialogOpen.set(true);\n const ref = this.dialog.open<\n TaonCmsPostChoiceDialogComponent<'single' | 'hierarchy'>,\n TaonCmsPostChoiceDialogData<'single' | 'hierarchy'>,\n 'single' | 'hierarchy'\n >(TaonCmsPostChoiceDialogComponent, {\n data: {\n title: this.t.gettext('Duplicate post'),\n options: [\n {\n value: 'single',\n label: this.t.gettext('Duplicate only this post'),\n },\n {\n value: 'hierarchy',\n label: this.t.gettext(\n 'Duplicate this post and its children',\n ),\n },\n ],\n selected: 'single',\n },\n disableClose: true,\n });\n ref\n .afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(choice => {\n this.dialogOpen.set(false);\n if (!choice) {\n this.busy.set(false);\n return;\n }\n this.runDuplication(post, choice === 'hierarchy');\n });\n },\n error: (error: unknown) => {\n console.error(\n '[taon-cms-post] Unable to load children for duplication',\n error,\n );\n this.busy.set(false);\n this.error.set(\n this.t.gettext(\n 'The post could not be duplicated. Please try again.',\n ),\n );\n },\n });\n }\n\n private runDuplication(\n post: TaonCmsContentEntity,\n includeChildren: boolean,\n ): void {\n this.api\n .duplicateContent(post.id, includeChildren)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: duplicate => this.duplicated.emit(duplicate),\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to duplicate post', error);\n this.error.set(\n this.t.gettext(\n 'The post could not be duplicated. Please try again.',\n ),\n );\n },\n });\n }\n //#endregion\n\n //#region methods / update input\n private updateInput(post: TaonCmsContentEntity): TaonCmsUpdateContent {\n return {\n ...this.draft(),\n relatedPostIds: this.relatedPosts().map(related => related.id),\n ...(this.permissionSource()\n ? {}\n : {\n permissionIds: this.permissions().map(permission => permission.id),\n }),\n applyPermissionsToRelatedPosts: this.applyPermissionsToRelatedPosts(),\n applyVisibilityToRelatedPosts:\n this.applyVisibilityToRelatedPosts(),\n applicationHook: this.useAsApplicationHook()\n ? this.selectedApplicationHook()\n : null,\n expectedVersion: post.version,\n };\n }\n //#endregion\n\n //#region methods / require post\n private requirePost(): TaonCmsContentEntity | null {\n const post = this.currentPost();\n if (!post) {\n this.error.set(this.t.gettext('No post is loaded.'));\n }\n return post;\n }\n //#endregion\n\n //#region methods / set post\n private setPost(post: TaonCmsContentEntity | null): void {\n this.editorSession += 1;\n this.taxonomyLoad?.unsubscribe();\n this.taxonomyLoading.set(false);\n this.taxonomyError.set('');\n this.releaseThumbnailPreview();\n this.stagedThumbnail.set(null);\n this.tagSearch.set('');\n this.relatedPostsLoad?.unsubscribe();\n this.applicationHooksLoad?.unsubscribe();\n this.permissionsLoad?.unsubscribe();\n this.relatedPostsLoading.set(false);\n this.relatedPostsError.set('');\n this.applicationHooksLoading.set(false);\n this.applicationHooksError.set('');\n this.permissionsLoading.set(false);\n this.permissionsError.set('');\n this.uploadedMediaPreview.set(null);\n this.mediaPreviewSignature = '';\n this.mediaPreviewRequest += 1;\n this.currentPost.set(post);\n this.loadVisibilityConfiguration(\n post && this.mode() !== 'view-clean' ? post : null,\n );\n this.loadParentPost(\n post && this.mode() !== 'view-clean' ? post : null,\n );\n this.loadPostVersionLinks(\n post && this.mode() !== 'view-clean' ? post : null,\n );\n this.relatedPosts.set(post?.relatedPosts ?? []);\n this.permissions.set(post?.permissions ?? []);\n this.permissionSource.set(null);\n this.applyPermissionsToRelatedPosts.set(\n post?.applyPermissionsToRelatedPosts ?? false,\n );\n this.applyVisibilityToRelatedPosts.set(\n post?.applyVisibilityToRelatedPosts ?? false,\n );\n this.draftStatus.set(\n post?.status === 'published' || post?.status === 'archived'\n ? post.status\n : 'draft',\n );\n this.selectedPermissionId.set(null);\n this.setApplicationHookSelection(post, this.applicationHooks());\n this.draft.set({\n type: post?.type ?? TaonCmsContentType.Normal,\n title: post?.title ?? '',\n slug: post?.slug ?? '',\n excerpt: post?.excerpt ?? '',\n body: post?.body ?? '',\n videoKey: post?.videoKey ?? null,\n audioKey: post?.audioKey ?? null,\n attachmentKey: post?.attachmentKey ?? null,\n thumbnailKey: post?.thumbnailKey ?? null,\n categoryId: post?.categoryId ?? null,\n tagIds: [],\n });\n if (\n post &&\n post.relatedPosts === undefined &&\n this.mode() !== 'view-clean'\n ) {\n this.loadRelatedPosts();\n }\n if (post && this.mode() !== 'view-clean') {\n this.loadPermissions();\n }\n if (this.editing()) {\n this.loadTaxonomy();\n }\n }\n //#endregion\n\n private setApplicationHookSelection(\n post: TaonCmsContentEntity | null,\n hooks: TaonCmsApplicationHookEntity[],\n ): void {\n const assignedHook =\n post?.applicationHook !== undefined\n ? post.applicationHook?.hook\n : hooks.find(applicationHook => applicationHook.contentId === post?.id)\n ?.hook;\n this.useAsApplicationHook.set(!!assignedHook);\n this.selectedApplicationHook.set(assignedHook ?? null);\n }\n\n //#region methods / accept post\n private acceptPost(post: TaonCmsContentEntity): void {\n this.setPost(post);\n this.error.set('');\n this.mode.set('view');\n this.changed.emit(post);\n }\n //#endregion\n\n //#region methods / persist\n private persist(\n request: Observable<TaonCmsContentEntity>,\n deleting = false,\n ): void {\n if (this.busy() || this.dialogOpen() || this.mode() === 'view-clean') {\n return;\n }\n this.busy.set(true);\n this.error.set('');\n request\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n )\n .subscribe({\n next: post => {\n this.acceptPost(post);\n if (deleting) {\n this.deleted.emit(post);\n }\n },\n error: (error: unknown) => {\n console.error('[taon-cms-post] Unable to save post', error);\n this.error.set(\n this.t.gettext(\n 'The post could not be saved. Check the slug and your connection. If another user changed it, close and reopen the post before retrying.',\n ),\n );\n },\n });\n }\n //#endregion\n}","@if (mode() !== 'view-clean') {\n <ng-template #actionButtonsTemplate>\n <div class=\"buttons\">\n @if (editing()) {\n <button\n mat-flat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || !canSave()\"\n (click)=\"save()\">\n {{ mode() === 'add' ? t.gettext('Add') : t.gettext('Save') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"cancel()\">\n {{ t.gettext('Cancel') }}\n </button>\n } @else if (currentPost()) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"edit()\">\n <mat-icon>edit</mat-icon> {{ t.gettext('Edit') }}\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"revert()\">\n <mat-icon>history</mat-icon> {{ t.gettext('Revert') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"delete()\">\n <mat-icon>delete</mat-icon> {{ t.gettext('Delete') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"duplicate()\">\n <mat-icon>content_copy</mat-icon> {{ t.gettext('Duplicate') }}\n </button>\n }\n </div>\n </ng-template>\n <header class=\"post-actions\">\n @if (visibilitySource(); as source) {\n <span\n class=\"post-status\"\n tabindex=\"0\"\n [matTooltip]=\"visibilityInheritedTooltip()\"\n [attr.aria-label]=\"visibilityInheritedTooltip()\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"true\">\n {{ statusLabel() }}\n </button>\n </span>\n } @else {\n <button\n class=\"post-status\"\n mat-button\n type=\"button\"\n [disabled]=\"statusControlDisabled()\"\n (click)=\"selectStatus()\">\n {{ statusLabel() }}\n </button>\n }\n <ng-container [ngTemplateOutlet]=\"actionButtonsTemplate\" />\n @if (busy()) {\n <span role=\"status\">{{\n uploading()\n ? t.gettext('Uploading... ') + uploadProgress() + '%'\n : t.gettext('Saving...')\n }}</span>\n }\n </header>\n @if (error()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ error() }}\n </p>\n }\n}\n\n<article\n class=\"post-article\"\n [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-tab-group animationDuration=\"0ms\">\n <mat-tab [label]=\"t.gettext('CONTENT')\">\n <mat-accordion class=\"post-type-accordion\">\n <mat-expansion-panel #postTypePanel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon>{{ currentPostTypeIcon() }}</mat-icon>\n {{\n t.gettext('Current post type: [[ postType ]]', {\n postType: currentPostType().label,\n })\n }}\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mat-radio-group\n class=\"post-type-selector\"\n [attr.aria-label]=\"t.gettext('Post type')\"\n [value]=\"draft().type\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"updateDraft('type', $event.value)\">\n @for (type of postTypes; track type.value) {\n <mat-radio-button\n [value]=\"type.value\"\n (click)=\"postTypePanel.close()\"\n >{{ type.label }}</mat-radio-button\n >\n }\n </mat-radio-group>\n </mat-expansion-panel>\n </mat-accordion>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n [attr.aria-label]=\"t.gettext('Post title')\"\n aria-required=\"true\"\n [attr.data-placeholder]=\"placeholderTitle()\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditableSingleLine]=\"true\"\n [taonCmsEditable]=\"draft().title\"\n (taonCmsEditableChange)=\"updateDraft('title', $event)\"></div>\n @if (subtitleEmpty()) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"generateLoremIpsum('excerpt')\">\n {{ t.gettext('Generate Lorem Ipsum') }}\n </button>\n }\n <div\n class=\"post-excerpt editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n [attr.aria-label]=\"t.gettext('Post excerpt')\"\n aria-multiline=\"true\"\n [attr.data-placeholder]=\"placeholderShortIntro()\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n @if (descriptionEmpty()) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"generateLoremIpsum('body')\">\n {{ t.gettext('Generate Lorem Ipsum') }}\n </button>\n }\n <section class=\"post-content-editor\">\n <mat-tab-group\n [selectedIndex]=\"contentTab()\"\n (selectedIndexChange)=\"setContentTab($event)\"\n [preserveContent]=\"true\"\n animationDuration=\"0ms\">\n <mat-tab [label]=\"t.gettext('Editor')\">\n @if (contentEditor(); as editor) {\n <ngx-editor-menu\n [editor]=\"editor\"\n [toolbar]=\"contentToolbar\"\n [disabled]=\"busy() || dialogOpen()\" />\n <ngx-editor\n [editor]=\"editor\"\n [placeholder]=\"placeholderTellYourStory()\" />\n }\n </mat-tab>\n <mat-tab [label]=\"t.gettext('Raw')\">\n <textarea\n #rawContent\n class=\"raw-content\"\n [attr.aria-label]=\"t.gettext('Post body HTML')\"\n [value]=\"draft().body\"\n [disabled]=\"busy() || dialogOpen()\"\n (input)=\"updateRawContent($event)\"\n spellcheck=\"false\"></textarea>\n </mat-tab>\n <mat-tab [label]=\"t.gettext('Preview')\">\n <div\n class=\"post-body content-preview\"\n [innerHTML]=\"resolvedBody()\"></div>\n </mat-tab>\n </mat-tab-group>\n @if (contentTab() !== 2) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || !contentEditor()\"\n [matMenuTriggerFor]=\"variableMenu\"\n [matMenuTriggerRestoreFocus]=\"false\">\n {{ t.gettext('Insert variable') }}\n </button>\n }\n <mat-menu #variableMenu=\"matMenu\">\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"siteVariableMenu\">\n {{ t.gettext('Site') }}\n </button>\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"postVariableMenu\">\n {{ t.gettext('Post') }}\n </button>\n </mat-menu>\n <mat-menu #siteVariableMenu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"insertVariable('frontendUrl')\">\n {{ t.gettext('Frontend URL') }}\n </button>\n <button\n mat-menu-item\n (click)=\"insertVariable('site.name')\">\n {{ t.gettext('Site name') }}\n </button>\n <button\n mat-menu-item\n (click)=\"insertVariable('currentYear')\">\n {{ t.gettext('Current year') }}\n </button>\n </mat-menu>\n <mat-menu #postVariableMenu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"insertVariable('post.title')\">\n {{ t.gettext('Post title') }}\n </button>\n <button\n mat-menu-item\n (click)=\"insertVariable('post.url')\">\n {{ t.gettext('Post URL') }}\n </button>\n <button\n mat-menu-item\n (click)=\"insertVariable('post.id')\">\n {{ t.gettext('Post ID') }}\n </button>\n <button\n mat-menu-item\n (click)=\"insertVariable('post.thumbnailUrl')\">\n {{ t.gettext('Post Thumbnail URL') }}\n </button>\n </mat-menu>\n </section>\n <label class=\"slug-field\">\n <span>{{ t.gettext('URL slug') }}</span>\n <input\n [attr.aria-label]=\"t.gettext('URL slug')\"\n [value]=\"draft().slug\"\n [disabled]=\"busy() || dialogOpen()\"\n (input)=\"updateSlug($event)\"\n [placeholder]=\"t.gettext('my-post')\" />\n </label>\n </mat-tab>\n <mat-tab [label]=\"t.gettext('SETTINGS')\">\n <div class=\"post-settings\">\n @if (mediaAttachment(); as media) {\n <mat-card class=\"post-setting-card\">\n <section\n class=\"media-attachment\"\n aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (uploading()) {\n <mat-progress-bar\n mode=\"determinate\"\n [value]=\"uploadProgress()\"\n [attr.aria-label]=\"t.gettext('Media upload progress')\" />\n }\n @if (draft()[media.key]; as key) {\n @if (mediaPreviewLoading()) {\n <p role=\"status\">\n {{ t.gettext('Loading media preview...') }}\n </p>\n }\n @if (mediaPreviewError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ mediaPreviewError() }}\n </p>\n }\n @if (media.type === 'video' && mediaPreviewUrl()) {\n <video\n controls\n preload=\"metadata\"\n [src]=\"mediaPreviewUrl()\">\n {{\n t.gettext(\n 'Your browser does not support video playback.'\n )\n }}\n </video>\n } @else if (media.type === 'audio' && mediaPreviewUrl()) {\n <audio\n controls\n preload=\"metadata\"\n [src]=\"mediaPreviewUrl()\">\n {{\n t.gettext(\n 'Your browser does not support audio playback.'\n )\n }}\n </audio>\n } @else if (\n media.type === 'attachment' && mediaPreviewUrl()\n ) {\n <p>\n {{\n t.gettext('Attached file: [[ fileName ]]', {\n fileName: mediaFileName(key),\n })\n }}\n <a\n [href]=\"mediaPreviewUrl()\"\n target=\"_blank\"\n rel=\"noopener\"\n >{{ t.gettext('Download or open') }}</a\n >\n </p>\n }\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"mediaInput.click()\">\n {{ t.gettext('Replace') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"removeMedia()\">\n {{ t.gettext('Remove') }}\n </button>\n } @else {\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"mediaInput.click()\">\n {{ media.uploadLabel }}\n </button>\n }\n </section>\n </mat-card>\n }\n <mat-card class=\"post-setting-card\">\n <section\n class=\"post-thumbnail\"\n aria-labelledby=\"thumbnail-heading\">\n <h2 id=\"thumbnail-heading\">{{ t.gettext('Thumbnail') }}</h2>\n @if (thumbnailPreviewUrl()) {\n <img\n class=\"thumbnail-preview\"\n [src]=\"thumbnailPreviewUrl()\"\n [alt]=\"t.gettext('Post thumbnail')\" />\n } @else {\n <p>{{ t.gettext('No thumbnail selected.') }}</p>\n }\n @if (thumbnailError()) {\n <p role=\"alert\">{{ thumbnailError() }}</p>\n }\n <input\n #thumbnailInput\n hidden\n type=\"file\"\n accept=\"image/*\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"thumbnailSelected($event)\" />\n <div class=\"buttons\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"thumbnailInput.click()\">\n {{ t.gettext('Upload Thumbnail') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"applyDefaultThumbnail()\">\n {{ t.gettext('Apply Default Placeholder') }}\n </button>\n </div>\n </section>\n </mat-card>\n <mat-card class=\"post-setting-card\">\n <section\n class=\"post-taxonomy\"\n aria-labelledby=\"category-heading\">\n <h2 id=\"category-heading\">{{ t.gettext('Category / Tags') }}</h2>\n @if (taxonomyLoading()) {\n <p role=\"status\">\n {{ t.gettext('Loading categories and tags...') }}\n </p>\n }\n @if (taxonomyError()) {\n <p role=\"alert\">{{ taxonomyError() }}</p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy()\"\n (click)=\"loadTaxonomy()\">\n {{ t.gettext('Try again') }}\n </button>\n }\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Category') }}</mat-label>\n <mat-select\n [value]=\"draft().categoryId\"\n [disabled]=\"\n busy() ||\n dialogOpen() ||\n taxonomyLoading() ||\n !!taxonomyError()\n \"\n (selectionChange)=\"updateDraft('categoryId', $event.value)\">\n <mat-option [value]=\"null\">{{\n t.gettext('None')\n }}</mat-option>\n @for (category of categories(); track category.id) {\n <mat-option [value]=\"category.id\">{{\n category.name\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <h3>{{ t.gettext('Tags') }}</h3>\n <mat-chip-set [attr.aria-label]=\"t.gettext('Selected tags')\">\n @for (tag of selectedTags(); track tag.id) {\n <mat-chip\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\"\n (removed)=\"removeTag(tag.id)\">\n {{ tag.name }}\n <button\n matChipRemove\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\"\n [attr.aria-label]=\"\n t.gettext('Remove tag [[ name ]]', { name: tag.name })\n \">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip>\n }\n </mat-chip-set>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Search tags') }}</mat-label>\n <input\n matInput\n [value]=\"tagSearch()\"\n (input)=\"filterTags($event)\"\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Add tag') }}</mat-label>\n <mat-select\n [value]=\"null\"\n [disabled]=\"\n busy() ||\n dialogOpen() ||\n taxonomyLoading() ||\n !!taxonomyError()\n \"\n (selectionChange)=\"addTag($event.value)\">\n @for (tag of filteredTags(); track tag.id) {\n <mat-option [value]=\"tag.id\">{{ tag.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <div class=\"buttons\">\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\"\n (click)=\"createTaxonomy('category')\">\n <mat-icon>add</mat-icon> {{ t.gettext('Add category') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || taxonomyLoading()\"\n (click)=\"createTaxonomy('tag')\">\n <mat-icon>add</mat-icon> {{ t.gettext('Add tag') }}\n </button>\n </div>\n </section>\n </mat-card>\n <mat-card class=\"post-setting-card\">\n <section\n class=\"parent-post\"\n aria-labelledby=\"parent-post-heading\">\n <h2 id=\"parent-post-heading\">{{ t.gettext('Parent Post') }}</h2>\n @if (parentPostLoading()) {\n <p role=\"status\">{{ t.gettext('Loading parent post...') }}</p>\n } @else if (parentPostError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ parentPostError() }}\n </p>\n } @else if (parentPost(); as parent) {\n <p>\n <a\n href=\"#\"\n (click)=\"requestPostEditor($event, parent)\">\n {{ parent.title }}\n </a>\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"removeParentPost()\">\n <mat-icon>link_off</mat-icon>\n {{ t.gettext('Remove from parent') }}\n </button>\n } @else {\n <p>{{ t.gettext('No parent added') }}</p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen() || !currentPost()\"\n (click)=\"addAsChildOf()\">\n <mat-icon>account_tree</mat-icon>\n @if (currentPost()) {\n {{ t.gettext('Add as a child') }}\n } @else {\n {{\n t.gettext(\n 'Add as a child (disabled — please save the post first)'\n )\n }}\n }\n </button>\n }\n </section>\n </mat-card>\n <mat-card class=\"post-setting-card\">\n <section\n class=\"related-posts\"\n aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">\n {{ t.gettext('Related posts') }}\n </h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">{{ t.gettext('Loading related posts...') }}</p>\n } @else if (relatedPostsError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ relatedPostsError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"loadRelatedPosts()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>\n #{{ post.id }} -\n <a\n href=\"#\"\n (click)=\"requestPostEditor($event, post)\">\n {{ post.title }}\n </a>\n </span>\n <button\n mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"\n t.gettext('Remove related post [[ title ]]', {\n title: post.title,\n })\n \"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>{{ t.gettext('No related posts yet.') }}</li>\n }\n </ul>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> {{ t.gettext('Add related post') }}\n </button>\n }\n <mat-checkbox\n [checked]=\"applyVisibilityToRelatedPosts()\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"applyVisibilityToRelatedPosts.set($event.checked)\">\n {{ t.gettext('Apply visibility to related posts') }}\n </mat-checkbox>\n </section>\n </mat-card>\n <mat-card class=\"post-setting-card\">\n <section\n class=\"post-version-links\"\n aria-labelledby=\"post-version-links-heading\">\n <h2 id=\"post-version-links-heading\">\n {{ t.gettext('Post versions') }}\n </h2>\n @if (!currentPost()) {\n <p role=\"note\">\n {{\n t.gettext('Save the post first to manage version links.')\n }}\n </p>\n }\n @if (postVersionLinksLoading()) {\n <p role=\"status\">{{ t.gettext('Loading post versions...') }}</p>\n }\n @if (postVersionLinksError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ postVersionLinksError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"loadPostVersionLinks(currentPost())\">\n {{ t.gettext('Try again') }}\n </button>\n }\n <div class=\"post-version-link\">\n <h3>{{ t.gettext('Public post version') }}</h3>\n @if (postVersionLinks().publicVersionPost; as versionPost) {\n <p>\n <a\n href=\"#\"\n (click)=\"requestPostEditor($event, versionPost)\">\n {{ versionPost.title }}\n </a>\n [{{ versionPost.slug }}]\n </p>\n @if (canEditPublicVersion()) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"selectVersionPost('public')\">\n {{ t.gettext('Replace public version') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"removeVersionPost('public')\">\n {{ t.gettext('Remove public version') }}\n </button>\n } @else {\n <p>\n {{\n t.gettext(\n 'Version editing is disabled for the current post status.'\n )\n }}\n </p>\n }\n } @else {\n @if (!postVersionLinksLoading() && !postVersionLinksError()) {\n <p>{{ t.gettext('No public post version linked.') }}</p>\n }\n @if (\n currentPost() &&\n !postVersionLinksLoading() &&\n !postVersionLinksError() &&\n !canEditPublicVersion()\n ) {\n <p>\n {{\n t.gettext(\n 'Version editing is disabled for the current post status.'\n )\n }}\n </p>\n }\n <button\n mat-button\n type=\"button\"\n [disabled]=\"\n busy() || dialogOpen() || !canEditPublicVersion()\n \"\n (click)=\"selectVersionPost('public')\">\n <mat-icon>add</mat-icon>\n {{ t.gettext('Add public post version') }}\n </button>\n }\n </div>\n <div class=\"post-version-link\">\n <h3>{{ t.gettext('Private post version') }}</h3>\n @if (postVersionLinks().privateVersionPost; as versionPost) {\n <p>\n <a\n href=\"#\"\n (click)=\"requestPostEditor($event, versionPost)\">\n {{ versionPost.title }}\n </a>\n [{{ versionPost.slug }}]\n </p>\n @if (canEditPrivateVersion()) {\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"selectVersionPost('private')\">\n {{ t.gettext('Replace private version') }}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"removeVersionPost('private')\">\n {{ t.gettext('Remove private version') }}\n </button>\n } @else {\n <p>\n {{\n t.gettext(\n 'Version editing is disabled for the current post status.'\n )\n }}\n </p>\n }\n } @else {\n @if (!postVersionLinksLoading() && !postVersionLinksError()) {\n <p>{{ t.gettext('No private post version linked.') }}</p>\n }\n @if (\n currentPost() &&\n !postVersionLinksLoading() &&\n !postVersionLinksError() &&\n !canEditPrivateVersion()\n ) {\n <p>\n {{\n t.gettext(\n 'Version editing is disabled for the current post status.'\n )\n }}\n </p>\n }\n <button\n mat-button\n type=\"button\"\n [disabled]=\"\n busy() || dialogOpen() || !canEditPrivateVersion()\n \"\n (click)=\"selectVersionPost('private')\">\n <mat-icon>add</mat-icon>\n {{ t.gettext('Add private post version') }}\n </button>\n }\n </div>\n </section>\n </mat-card>\n\n @if (!mediaAttachment()) {\n <mat-card class=\"post-setting-card\">\n <section\n class=\"application-hook\"\n aria-labelledby=\"application-hook-heading\">\n <h2 id=\"application-hook-heading\">\n {{ t.gettext('Hooks') }}\n </h2>\n @if (applicationHooksLoading()) {\n <p role=\"status\">\n {{ t.gettext('Loading application hooks...') }}\n </p>\n } @else if (applicationHooksError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ applicationHooksError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"loadApplicationHooks()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <mat-checkbox\n [checked]=\"useAsApplicationHook()\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"setUseAsApplicationHook($event.checked)\">\n {{ t.gettext('Use as application hook') }}\n </mat-checkbox>\n @if (useAsApplicationHook()) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\">\n <mat-label>{{ t.gettext('Application Hook') }}</mat-label>\n <mat-select\n [value]=\"selectedApplicationHook()\"\n [disabled]=\"busy() || dialogOpen()\"\n (selectionChange)=\"\n selectedApplicationHook.set($event.value)\n \">\n @for (\n applicationHook of applicationHooks();\n track applicationHook.id\n ) {\n <mat-option\n [value]=\"applicationHook.hook\"\n [disabled]=\"\n applicationHookInUseByAnotherPost(applicationHook)\n \">\n {{ applicationHookLabel(applicationHook.hook) }}\n @if (\n applicationHookInUseByAnotherPost(applicationHook)\n ) {\n {{\n t.gettext('(in use by post # [[ postId ]])', {\n postId: applicationHook.contentId,\n })\n }}\n }\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">{{\n t.gettext('No application hooks configured')\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n }\n </section>\n </mat-card>\n }\n <mat-card class=\"post-setting-card\">\n <section\n class=\"post-permissions\"\n aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">\n {{ t.gettext('Permissions') }}\n </h2>\n @if (permissionSource(); as source) {\n <p role=\"note\">\n {{\n t.gettext(\n 'Permissions are inherited from # [[ postId ]] - [[ title ]]. Edit the source post to change them.',\n { postId: source.id, title: source.title }\n )\n }}\n </p>\n }\n @if (permissionsLoading()) {\n <p role=\"status\">\n {{ t.gettext('Loading assigned permissions...') }}\n </p>\n } @else if (permissionsError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ permissionsError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"busy() || dialogOpen()\"\n (click)=\"loadPermissions()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button\n mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"\n t.gettext('Remove permission [[ name ]]', {\n name: permission.name,\n })\n \"\n [disabled]=\"\n busy() || dialogOpen() || !!permissionSource()\n \"\n (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>{{ t.gettext('No permissions assigned.') }}</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ permissionOptionsError() }}\n </p>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"\n busy() || dialogOpen() || permissionOptionsLoading()\n \"\n (click)=\"loadPermissionOptions()\">\n {{ t.gettext('Try again') }}\n </button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field\n class=\"w-full\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\">\n <mat-label>{{ t.gettext('Permission') }}</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"\n busy() ||\n dialogOpen() ||\n permissionOptionsLoading() ||\n !!permissionSource()\n \"\n (selectionChange)=\"\n selectedPermissionId.set($event.value)\n \">\n @for (\n permission of availablePermissions();\n track permission.id\n ) {\n <mat-option [value]=\"permission.id\"\n >{{ permission.name }} ({{\n permission.code\n }})</mat-option\n >\n } @empty {\n <mat-option [disabled]=\"true\">{{\n t.gettext('No permissions available')\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"\n busy() ||\n dialogOpen() ||\n !selectedPermissionId() ||\n !!permissionSource()\n \"\n (click)=\"addPermission()\">\n <mat-icon>add</mat-icon>\n {{ t.gettext('Assign permission') }}\n </button>\n </div>\n }\n }\n @if (!permissionSource()) {\n <mat-checkbox\n [checked]=\"applyPermissionsToRelatedPosts()\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"applyPermissionsToRelatedPosts.set($event.checked)\">\n {{ t.gettext('Apply permissions to related posts') }}\n </mat-checkbox>\n }\n </section>\n </mat-card>\n </div>\n </mat-tab>\n </mat-tab-group>\n } @else if (currentPost(); as post) {\n @if (thumbnailPreviewUrl()) {\n <img\n class=\"thumbnail-preview\"\n [src]=\"thumbnailPreviewUrl()\"\n [alt]=\"t.gettext('Post thumbnail')\" />\n }\n @if (thumbnailError()) {\n <p role=\"alert\">{{ thumbnailError() }}</p>\n }\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div\n class=\"post-body\"\n [innerHTML]=\"resolvedBody()\"></div>\n @if (mediaAttachment(); as media) {\n @if (draft()[media.key]; as key) {\n @if (mediaPreviewLoading()) {\n <p role=\"status\">{{ t.gettext('Loading media...') }}</p>\n } @else if (mediaPreviewError()) {\n <p\n class=\"error\"\n role=\"alert\">\n {{ mediaPreviewError() }}\n </p>\n } @else if (media.type === 'video' && mediaPreviewUrl()) {\n <video\n controls\n preload=\"metadata\"\n [attr.controlsList]=\"\n currentPost()?.status === 'archived' ||\n currentPost()?.status === 'draft'\n ? 'nodownload noremoteplayback'\n : null\n \"\n [poster]=\"thumbnailPreviewUrl() || null\"\n [src]=\"mediaPreviewUrl()\">\n {{ t.gettext('Your browser does not support video playback.') }}\n </video>\n } @else if (media.type === 'audio' && mediaPreviewUrl()) {\n <audio\n controls\n preload=\"metadata\"\n [attr.controlsList]=\"\n currentPost()?.status === 'archived' ||\n currentPost()?.status === 'draft'\n ? 'nodownload noremoteplayback'\n : null\n \"\n [src]=\"mediaPreviewUrl()\">\n {{ t.gettext('Your browser does not support audio playback.') }}\n </audio>\n } @else if (media.type === 'attachment' && mediaPreviewUrl()) {\n <p>\n {{\n t.gettext('Attached file: [[ fileName ]]', {\n fileName: mediaFileName(key),\n })\n }}\n <a\n [href]=\"mediaPreviewUrl()\"\n target=\"_blank\"\n rel=\"noopener\"\n >{{ t.gettext('Download or open') }}</a\n >\n </p>\n }\n }\n }\n @if (mode() === 'view-clean') {\n <taon-cms-comments [contentId]=\"post.id\" class=\"w-full\" />\n }\n } @else {\n <p role=\"status\">{{ t.gettext('No post is loaded.') }}</p>\n }\n</article>\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonCmsPostRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-post.component').then(m => m.TaonCmsPostComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsPostRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsPostRoutes;","import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, map } from 'rxjs';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { TaonAdminContentFooterService } from '@taon-dev/ui/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostComponent } from '../taon-cms-post/taon-cms-post.component';\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts', {\"src/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-details-page.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-details-page.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-details-page.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-cms-post-details-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, MatButtonModule, TaonCmsPostComponent],\n template: `\n @if (page$ | async; as page) {\n <a\n mat-button\n (click)=\"goBack(page.fromCourses)\"\n >{{\n page.fromCourses\n ? t.gettext('Back to Courses')\n : t.gettext('Back to Posts')\n }}</a\n >\n <taon-cms-post\n [post]=\"page.post\"\n [mode]=\"page.create ? 'add' : 'view'\"\n (changed)=\"onChanged($event, page.create)\"\n (duplicated)=\"openPost($event)\"\n (editPostRequested)=\"openPost($event)\"\n (cancelled)=\"onCancelled(page.create)\"\n (actionButtonsTemplate)=\"setFooterTemplate($event)\" />\n }\n `,\n})\nexport class TaonCmsPostDetailsPageComponent {\n readonly t = t.for(this);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n private readonly contentFooterService = inject(\n TaonAdminContentFooterService,\n );\n\n private readonly destroyRef = inject(DestroyRef);\n\n readonly page$ = combineLatest([\n this.route.data,\n this.route.queryParamMap,\n ]).pipe(\n map(([data, queryParams]) => ({\n create: data['createPost'] === true,\n post: (data['post'] as TaonCmsContentEntity | undefined) ?? null,\n fromCourses: queryParams.get('postOrigin') === 'courses',\n })),\n );\n\n constructor() {\n this.destroyRef.onDestroy(() => this.contentFooterService.setTemplate());\n }\n\n setFooterTemplate(template: TemplateRef<unknown>): void {\n this.contentFooterService.setTemplate(template);\n }\n\n goBack(fromCourses: boolean): void {\n void this.router\n .navigate([fromCourses ? '../../courses' : '../'], {\n relativeTo: this.route,\n queryParams: { postOrigin: null },\n queryParamsHandling: 'merge',\n })\n .catch(error => {\n console.error('[taon-cms-post-details-page] Unable to navigate back', error);\n });\n }\n\n onChanged(post: TaonCmsContentEntity, create: boolean): void {\n if (create) {\n this.openPost(post);\n }\n }\n\n openPost(post: TaonCmsContentEntity): void {\n void this.router\n .navigate(['../', post.id], {\n relativeTo: this.route,\n queryParamsHandling: 'preserve',\n })\n .catch(error => {\n console.error('[taon-cms-post-details-page] Unable to open post', error);\n });\n }\n\n onCancelled(create: boolean): void {\n if (create) {\n void this.router\n .navigate(['../'], {\n relativeTo: this.route,\n queryParamsHandling: 'preserve',\n })\n .catch(error => {\n console.error(\n '[taon-cms-post-details-page] Unable to cancel post creation',\n error,\n );\n });\n }\n }\n}","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewChild,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\nimport { TaonCmsPostTableActions } from './taon-cms-post-table-actions.directive';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts', {\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-cms-posts-backoffice',\n templateUrl: './taon-cms-posts-backoffice.component.html',\n styleUrls: ['./taon-cms-posts-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n TaonDatatableComponent,\n ],\n providers: [TaonCmsContentApiService],\n})\nexport class TaonCmsPostsBackofficeComponent extends TaonCmsPostTableActions {\n readonly t = t.for(this);\n\n @ViewChild(TaonDatatableComponent)\n readonly datatable!: TaonDatatableComponent;\n\n readonly posts = signal<TaonCmsContentEntity[]>([]);\n\n readonly loading = signal(false);\n\n public get crud() {\n return this.taonCmsContentApiService.crudController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true },\n { header: this.t.gettext('Title'), field: 'title', sortable: true },\n { header: this.t.gettext('Slug'), field: 'slug', sortable: true },\n { header: this.t.gettext('Status'), field: 'status', sortable: true },\n this.actionsColumn,\n ];\n\n reload(): void {\n this.datatable.reload();\n }\n\n ngAfterViewInit(): void {\n this.reload();\n }\n}","<h1>{{ t.gettext('CMS posts') }}</h1>\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading posts...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'slug', 'status']\"\n tableId=\"cms-posts\"\n storeTableFilters=\"query-params\"\n [filtersTemplate]=\"filtersTemplate\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\">\n</taon-datatable>\n<ng-template\n #filtersTemplate\n let-filters=\"filters\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('ID') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.id\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Title') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.title\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Slug') }}</mat-label>\n <input\n matInput\n [(ngModel)]=\"filters.slug\"\n (keyup.enter)=\"datatable.applyAdvancedFilters()\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ t.gettext('Status') }}</mat-label>\n <mat-select [(ngModel)]=\"filters.status\">\n <mat-option value=\"published\">{{ t.gettext('Published') }}</mat-option>\n <mat-option value=\"draft\">{{ t.gettext('Draft') }}</mat-option>\n <mat-option value=\"archived\">{{ t.gettext('Archived') }}</mat-option>\n </mat-select>\n </mat-form-field>\n</ng-template>\n","//namespace TaonCmsPostsBackofficeModels\n\n//end of namespace TaonCmsPostsBackofficeModels\n","//#region imports\nimport { inject } from '@angular/core';\nimport { Routes } from '@angular/router';\nimport { ResolveFn } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonCmsContentApiService } from '../../taon-cms-content/taon-cms-content-api.service';\nimport type { TaonCmsContentEntity } from '../../taon-cms-content/taon-cms-content.entity';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts', {\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-post-table-actions.directive.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-posts-backoffice.routes.ts.de-DE.i18n.data')).default}} as any);\n\nconst resolvePost: ResolveFn<TaonCmsContentEntity> = async route => {\n const id = Number(route.paramMap.get('id'));\n if (!Number.isSafeInteger(id) || id <= 0) {\n throw new Error(t.gettext('Invalid Post ID'));\n }\n const taonCmsContentApiService = inject(TaonCmsContentApiService);\n const post = await taonCmsContentApiService.getById(id);\n if (!post) {\n throw new Error(t.gettext('Post not found'));\n }\n return post;\n};\n\nexport const TaonCmsPostsBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-cms-posts-backoffice.component').then(\n m => m.TaonCmsPostsBackofficeComponent,\n ),\n },\n {\n path: 'new',\n data: { hideInNavigation: true, createPost: true },\n loadComponent: () =>\n import('../taon-cms-post-details-page/taon-cms-post-details-page.component').then(\n m => m.TaonCmsPostDetailsPageComponent,\n ),\n },\n {\n path: ':id',\n data: { hideInNavigation: true },\n providers: [TaonCmsContentApiService],\n resolve: { post: resolvePost },\n loadComponent: () =>\n import('../taon-cms-post-details-page/taon-cms-post-details-page.component').then(\n m => m.TaonCmsPostDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonCmsPostsBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsPostsBackofficeRoutes;","//#region imports\nimport { AsyncPipe, DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterLink } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { TaonCmsCommentApiService } from '../../taon-cms-comment-api.service';\nimport type { CommentListItem } from '../../taon-cms-comment.controller';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.ts', {\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-all-preview-backoffice.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-all-preview-backoffice.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-all-preview-backoffice.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-all-preview-backoffice.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-all-preview-backoffice.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-all-preview-backoffice.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-cms-comments-all-preview-backoffice',\n templateUrl: './taon-cms-comments-all-preview-backoffice.component.html',\n styleUrls: ['./taon-cms-comments-all-preview-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, DatePipe, FormsModule, MatButtonModule, RouterLink, TaonDatatableComponent],\n providers: [TaonCmsCommentApiService],\n})\nexport class TaonCmsCommentsAllPreviewBackofficeComponent implements OnInit {\n t = t.for(this);\n\n private readonly api = inject(TaonCmsCommentApiService);\n\n readonly comments = signal<CommentListItem[]>([]);\n\n readonly pageNumber = signal(1);\n\n readonly pageSize = 10;\n\n readonly total = signal(0);\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n readonly idFilter = signal('');\n\n readonly textFilter = signal('');\n\n readonly authorFilter = signal('');\n\n readonly columns: MtxGridColumn[] = [\n { header: this.t.gettext('ID'), field: 'id', sortable: true, showExpand: true },\n { header: this.t.gettext('Author'), field: 'authorName' },\n {\n header: this.t.gettext('Comment'),\n field: 'body',\n formatter: (comment: CommentListItem) =>\n comment.body.length > 120 ? `${comment.body.slice(0, 120)}...` : comment.body,\n },\n { header: this.t.gettext('Post'), field: 'postTitle' },\n { header: this.t.gettext('Created date'), field: 'createdAt' },\n { header: this.t.gettext('Vote score'), field: 'voteScore' },\n { header: this.t.gettext('Spam reports'), field: 'spamReports' },\n ];\n\n ngOnInit(): void {\n void this.reload();\n }\n\n async reload(): Promise<void> {\n this.loading.set(true);\n this.error.set('');\n try {\n const result = await this.api.getCommentsBackoffice({\n pageNumber: this.pageNumber(),\n pageSize: this.pageSize,\n id: this.idFilter(),\n text: this.textFilter(),\n author: this.authorFilter(),\n });\n this.comments.set(result.items);\n this.total.set(result.total);\n } catch (error) {\n console.error('[cms-comments-backoffice] Unable to load comments', error);\n this.error.set(error instanceof Error ? error.message : this.t.gettext('Comments could not be loaded.'));\n } finally {\n this.loading.set(false);\n }\n }\n\n applyFilters(): void {\n this.pageNumber.set(1);\n void this.reload();\n }\n\n previousPage(): void {\n if (this.pageNumber() > 1) {\n this.pageNumber.update(page => page - 1);\n void this.reload();\n }\n }\n\n nextPage(): void {\n if (this.pageNumber() * this.pageSize < this.total()) {\n this.pageNumber.update(page => page + 1);\n void this.reload();\n }\n }\n\n async delete(comment: CommentListItem): Promise<void> {\n try {\n await this.api.deleteComment(comment.id);\n await this.reload();\n } catch (error) {\n console.error('[cms-comments-backoffice] Unable to delete comment', error);\n this.error.set(error instanceof Error ? error.message : this.t.gettext('The comment could not be deleted.'));\n }\n }\n}","<h1>{{ t.gettext('CMS comments') }}</h1>\n<form (submit)=\"$event.preventDefault(); applyFilters()\">\n <label>\n {{ t.gettext('ID') }}\n <input [ngModel]=\"idFilter()\" (ngModelChange)=\"idFilter.set($event)\" name=\"id\" />\n </label>\n <label>\n {{ t.gettext('Text in comment') }}\n <input [ngModel]=\"textFilter()\" (ngModelChange)=\"textFilter.set($event)\" name=\"text\" />\n </label>\n <label>\n {{ t.gettext('Author') }}\n <input [ngModel]=\"authorFilter()\" (ngModelChange)=\"authorFilter.set($event)\" name=\"author\" />\n </label>\n <button mat-button type=\"submit\">{{ t.gettext('Apply filters') }}</button>\n</form>\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading comments...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<ng-template #expanded let-comment>\n <section>\n <p><strong>{{ t.gettext('Full comment') }}:</strong> {{ comment.body }}</p>\n <p>{{ t.gettext('Author') }}: {{ comment.authorName }}</p>\n <p>{{ t.gettext('Created') }}: {{ comment.createdAt | date: 'medium' }}</p>\n <p>\n {{ t.gettext('Post') }}:\n <a [routerLink]=\"['../../posts', comment.contentId]\">{{ comment.postTitle }}</a>\n </p>\n <p>{{ t.gettext('Votes') }}: {{ comment.upvotes }} / {{ comment.downvotes }} ({{ comment.voteScore }})</p>\n <p>{{ t.gettext('Spam reports') }}: {{ comment.spamReports }}</p>\n <button mat-button color=\"warn\" type=\"button\" (click)=\"delete(comment)\">\n {{ t.gettext('Delete comment') }}\n </button>\n </section>\n</ng-template>\n<taon-datatable\n [data]=\"comments()\"\n [columns]=\"columns\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n [expansionTemplate]=\"expanded\"\n searchMode=\"simple\">\n</taon-datatable>\n<nav aria-label=\"Comment pages\">\n <button mat-button type=\"button\" [disabled]=\"pageNumber() <= 1 || loading()\" (click)=\"previousPage()\">\n {{ t.gettext('Previous') }}\n </button>\n <span>{{ t.gettext('Page [[ page ]]', { page: pageNumber() }) }}</span>\n <button mat-button type=\"button\" [disabled]=\"pageNumber() * pageSize >= total() || loading()\" (click)=\"nextPage()\">\n {{ t.gettext('Next') }}\n </button>\n</nav>","//namespace TaonCmsCommentsAllPreviewBackofficeModels\n\n//end of namespace TaonCmsCommentsAllPreviewBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonCmsCommentsAllPreviewBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-comments-all-preview-backoffice.component').then(m => m.TaonCmsCommentsAllPreviewBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsCommentsAllPreviewBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsCommentsAllPreviewBackofficeRoutes;","import { ChangeDetectionStrategy, Component, OnInit, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TaonCmsCommentApiService } from '../../taon-cms-comment-api.service';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.ts', {\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-blocked-users.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-blocked-users.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-blocked-users.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-blocked-users.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-blocked-users.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-blocked-users.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-cms-comments-blocked-users',\n templateUrl: './taon-cms-comments-blocked-users.component.html',\n styleUrls: ['./taon-cms-comments-blocked-users.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatButtonModule],\n providers: [TaonCmsCommentApiService],\n})\nexport class TaonCmsBlockedUsersBackofficeComponent implements OnInit {\n readonly t = t.for(this);\n\n private readonly api = inject(TaonCmsCommentApiService);\n\n readonly blockedUsers = signal<{ id: number; userId: number }[]>([]);\n\n readonly userId = signal('');\n\n readonly page = signal(1);\n\n readonly pageSize = 10;\n\n readonly error = signal('');\n\n readonly loading = signal(false);\n\n ngOnInit(): void {\n void this.reload();\n }\n\n get visibleUsers(): { id: number; userId: number }[] {\n const start = (this.page() - 1) * this.pageSize;\n return this.blockedUsers().slice(start, start + this.pageSize);\n }\n\n async reload(): Promise<void> {\n this.loading.set(true);\n this.error.set('');\n try {\n this.blockedUsers.set(await this.api.getBlockedUsers());\n } catch (error) {\n console.error('[cms-comment-blocked-users] Unable to load users', error);\n this.error.set(error instanceof Error ? error.message : this.t.gettext('Blocked users could not be loaded.'));\n } finally {\n this.loading.set(false);\n }\n }\n\n async block(): Promise<void> {\n const id = Number(this.userId());\n if (!Number.isSafeInteger(id) || id <= 0) {\n this.error.set(this.t.gettext('Enter a valid user ID.'));\n return;\n }\n await this.change(id, true);\n }\n\n async unblock(userId: number): Promise<void> {\n await this.change(userId, false);\n }\n\n async changePage(amount: number): Promise<void> {\n const next = this.page() + amount;\n const max = Math.max(1, Math.ceil(this.blockedUsers().length / this.pageSize));\n if (next >= 1 && next <= max) {\n this.page.set(next);\n }\n }\n\n private async change(userId: number, blocked: boolean): Promise<void> {\n this.error.set('');\n try {\n await this.api.setBlockedUser(userId, blocked);\n this.userId.set('');\n await this.reload();\n } catch (error) {\n console.error('[cms-comment-blocked-users] Unable to change user status', error);\n this.error.set(error instanceof Error ? error.message : this.t.gettext('Comment access could not be updated.'));\n }\n }\n}","<h1>{{ t.gettext('Comment-blocked users') }}</h1>\n<p>{{ t.gettext('Blocking comments here does not block Session sign-in.') }}</p>\n<form (submit)=\"$event.preventDefault(); block()\">\n <label>\n {{ t.gettext('User ID') }}\n <input [ngModel]=\"userId()\" (ngModelChange)=\"userId.set($event)\" name=\"userId\" />\n </label>\n <button mat-flat-button type=\"submit\" [disabled]=\"loading()\">{{ t.gettext('Block commenting') }}</button>\n</form>\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading blocked users...') }}</p>\n}\n<table>\n <thead>\n <tr><th>{{ t.gettext('User ID') }}</th><th>{{ t.gettext('Actions') }}</th></tr>\n </thead>\n <tbody>\n @for (user of visibleUsers; track user.id) {\n <tr>\n <td>{{ user.userId }}</td>\n <td><button mat-button type=\"button\" (click)=\"unblock(user.userId)\">{{ t.gettext('Activate commenting') }}</button></td>\n </tr>\n } @empty {\n <tr><td colspan=\"2\">{{ t.gettext('No users are blocked from commenting.') }}</td></tr>\n }\n </tbody>\n</table>\n<nav aria-label=\"Blocked user pages\">\n <button mat-button type=\"button\" [disabled]=\"page() <= 1\" (click)=\"changePage(-1)\">{{ t.gettext('Previous') }}</button>\n <span>{{ t.gettext('Page [[ page ]]', { page: page() }) }}</span>\n <button mat-button type=\"button\" [disabled]=\"page() * pageSize >= blockedUsers().length\" (click)=\"changePage(1)\">{{ t.gettext('Next') }}</button>\n</nav>","//namespace TaonCmsCommentsBlockedUsersModels\n\n//end of namespace TaonCmsCommentsBlockedUsersModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonCmsCommentsBlockedUsersRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-comments-blocked-users.component').then(m => m.TaonCmsBlockedUsersBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsCommentsBlockedUsersRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsCommentsBlockedUsersRoutes;","import { ChangeDetectionStrategy, Component, OnInit, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TaonCmsCommentApiService } from '../../taon-cms-comment-api.service';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.ts', {\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.html\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-filters-settings.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-filters-settings.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-filters-settings.component.html.de-DE.i18n.data')).default},\"src/lib/taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-cms-comments-filters-settings.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-cms-comments-filters-settings.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-cms-comments-filters-settings.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-cms-comments-filters-settings',\n templateUrl: './taon-cms-comments-filters-settings.component.html',\n styleUrls: ['./taon-cms-comments-filters-settings.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, MatButtonModule],\n providers: [TaonCmsCommentApiService],\n})\nexport class TaonCmsCommentsFiltersSettingsComponent implements OnInit {\n readonly t = t.for(this);\n\n private readonly api = inject(TaonCmsCommentApiService);\n\n readonly phrases = signal<{ id: number; phrase: string }[]>([]);\n\n readonly phrase = signal('');\n\n readonly error = signal('');\n\n readonly loading = signal(false);\n\n ngOnInit(): void {\n void this.reload();\n }\n\n async reload(): Promise<void> {\n this.loading.set(true);\n this.error.set('');\n try {\n this.phrases.set(await this.api.getBlockedPhrases());\n } catch (error) {\n console.error('[cms-comment-filters] Unable to load blocked phrases', error);\n this.error.set(error instanceof Error ? error.message : this.t.gettext('Blocked phrases could not be loaded.'));\n } finally {\n this.loading.set(false);\n }\n }\n\n async add(): Promise<void> {\n const phrase = this.phrase().trim();\n if (!phrase) {\n return;\n }\n this.error.set('');\n try {\n await this.api.addBlockedPhrase(phrase);\n this.phrase.set('');\n await this.reload();\n } catch (error) {\n console.error('[cms-comment-filters] Unable to add blocked phrase', error);\n this.error.set(error instanceof Error ? error.message : this.t.gettext('The phrase could not be added.'));\n }\n }\n\n async remove(id: number): Promise<void> {\n this.error.set('');\n try {\n await this.api.deleteBlockedPhrase(id);\n await this.reload();\n } catch (error) {\n console.error('[cms-comment-filters] Unable to delete blocked phrase', error);\n this.error.set(error instanceof Error ? error.message : this.t.gettext('The phrase could not be deleted.'));\n }\n }\n}","<h1>{{ t.gettext('Comment filters') }}</h1>\n<p>{{ t.gettext('Comments containing any configured word or phrase are rejected.') }}</p>\n<form (submit)=\"$event.preventDefault(); add()\">\n <label>\n {{ t.gettext('Blocked word or phrase') }}\n <input [ngModel]=\"phrase()\" (ngModelChange)=\"phrase.set($event)\" name=\"phrase\" />\n </label>\n <button mat-flat-button type=\"submit\" [disabled]=\"loading() || !phrase().trim()\">{{ t.gettext('Add') }}</button>\n</form>\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading blocked phrases...') }}</p>\n}\n<ul>\n @for (item of phrases(); track item.id) {\n <li>\n {{ item.phrase }}\n <button mat-button type=\"button\" (click)=\"remove(item.id)\">{{ t.gettext('Delete') }}</button>\n </li>\n } @empty {\n <li>{{ t.gettext('No blocked words or phrases configured.') }}</li>\n }\n</ul>","//namespace TaonCmsCommentsFiltersSettingsModels\n\n//end of namespace TaonCmsCommentsFiltersSettingsModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonCmsCommentsFiltersSettingsRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-cms-comments-filters-settings.component').then(m => m.TaonCmsCommentsFiltersSettingsComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonCmsCommentsFiltersSettingsRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonCmsCommentsFiltersSettingsRoutes;","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './start-cli'; \nexport * from './taon-cms-application-hooks'; \nexport * from './taon-cms.abstract.context'; \nexport * from './taon-cms-application-hook/taon-cms-application-hook.entity'; \nexport * from './taon-cms-assets-backoffice/taon-cms-asset-preview.component'; // @browser\nexport * from './taon-cms-assets-backoffice/taon-cms-assets-backoffice.component'; // @browser\nexport * from './taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes'; // @browser\nexport * from './taon-cms-backoffice/taon-cms-backoffice.component'; // @browser\nexport * from './taon-cms-backoffice/taon-cms-backoffice.models'; \nexport * from './taon-cms-backoffice/taon-cms-backoffice.routes'; // @browser\nexport * from './taon-cms-category/taon-cms-category-api.service'; // @browser\nexport * from './taon-cms-category/taon-cms-category.abstract.context'; \nexport * from './taon-cms-category/taon-cms-category.constants'; \nexport * from './taon-cms-category/taon-cms-category.controller'; \nexport * from './taon-cms-category/taon-cms-category.entity'; \nexport * from './taon-cms-category/taon-cms-category.middleware'; \nexport * from './taon-cms-category/taon-cms-category.models'; \nexport * from './taon-cms-category/taon-cms-category.provider'; \nexport * from './taon-cms-category/taon-cms-category.repository'; \nexport * from './taon-cms-category/taon-cms-category.subscriber'; \nexport * from './taon-cms-category/taon-cms-category.utils'; \nexport * from './taon-cms-category/taon-cms-taxonomy.validation'; \nexport * from './taon-cms-comment/taon-cms-comment-api.service'; // @browser\nexport * from './taon-cms-comment/taon-cms-comment-blocked-phrase.entity'; \nexport * from './taon-cms-comment/taon-cms-comment-blocked-user.entity'; \nexport * from './taon-cms-comment/taon-cms-comment-spam-report.entity'; \nexport * from './taon-cms-comment/taon-cms-comment-vote.entity'; \nexport * from './taon-cms-comment/taon-cms-comment.abstract.context'; \nexport * from './taon-cms-comment/taon-cms-comment.constants'; \nexport * from './taon-cms-comment/taon-cms-comment.controller'; \nexport * from './taon-cms-comment/taon-cms-comment.entity'; \nexport * from './taon-cms-comment/taon-cms-comment.middleware'; \nexport * from './taon-cms-comment/taon-cms-comment.models'; \nexport * from './taon-cms-comment/taon-cms-comment.provider'; \nexport * from './taon-cms-comment/taon-cms-comment.repository'; \nexport * from './taon-cms-comment/taon-cms-comment.subscriber'; \nexport * from './taon-cms-comment/taon-cms-comment.utils'; \nexport * from './taon-cms-comment/taon-cms-comments.component'; // @browser\nexport * from './taon-cms-content/taon-cms-content-api.service'; // @browser\nexport * from './taon-cms-content/taon-cms-content-storage.controller'; \nexport * from './taon-cms-content/taon-cms-content.abstract.context'; \nexport * from './taon-cms-content/taon-cms-content.config.service'; // @browser\nexport * from './taon-cms-content/taon-cms-content.constants'; \nexport * from './taon-cms-content/taon-cms-content.controller'; \nexport * from './taon-cms-content/taon-cms-content.entity'; \nexport * from './taon-cms-content/taon-cms-content.middleware'; \nexport * from './taon-cms-content/taon-cms-content.models'; \nexport * from './taon-cms-content/taon-cms-content.provider'; \nexport * from './taon-cms-content/taon-cms-content.repository'; \nexport * from './taon-cms-content/taon-cms-content.subscriber'; \nexport * from './taon-cms-content/taon-cms-content.utils'; \nexport * from './taon-cms-content/taon-cms-content.validation'; \nexport * from './taon-cms-content/taon-cms-template-variables'; \nexport * from './taon-cms-content/taon-cms-upload-progress'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset-api.service'; // @browser\nexport * from './taon-cms-content-asset/taon-cms-content-asset.abstract.context'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.constants'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.controller'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.entity'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.middleware'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.models'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.provider'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.repository'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.subscriber'; \nexport * from './taon-cms-content-asset/taon-cms-content-asset.utils'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission-api.service'; // @browser\nexport * from './taon-cms-content-permission/taon-cms-content-permission.abstract.context'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.constants'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.controller'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.entity'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.middleware'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.models'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.provider'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.repository'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.subscriber'; \nexport * from './taon-cms-content-permission/taon-cms-content-permission.utils'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision-api.service'; // @browser\nexport * from './taon-cms-content-revision/taon-cms-content-revision.abstract.context'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.constants'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.controller'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.entity'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.middleware'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.models'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.provider'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.repository'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.subscriber'; \nexport * from './taon-cms-content-revision/taon-cms-content-revision.utils'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag-api.service'; // @browser\nexport * from './taon-cms-content-tag/taon-cms-content-tag.abstract.context'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.constants'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.controller'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.entity'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.middleware'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.models'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.provider'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.repository'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.subscriber'; \nexport * from './taon-cms-content-tag/taon-cms-content-tag.utils'; \nexport * from './taon-cms-tag/taon-cms-tag-api.service'; // @browser\nexport * from './taon-cms-tag/taon-cms-tag.abstract.context'; \nexport * from './taon-cms-tag/taon-cms-tag.constants'; \nexport * from './taon-cms-tag/taon-cms-tag.controller'; \nexport * from './taon-cms-tag/taon-cms-tag.entity'; \nexport * from './taon-cms-tag/taon-cms-tag.middleware'; \nexport * from './taon-cms-tag/taon-cms-tag.models'; \nexport * from './taon-cms-tag/taon-cms-tag.provider'; \nexport * from './taon-cms-tag/taon-cms-tag.repository'; \nexport * from './taon-cms-tag/taon-cms-tag.subscriber'; \nexport * from './taon-cms-tag/taon-cms-tag.utils'; \nexport * from './taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.component'; // @browser\nexport * from './taon-cms-taxonomy-backoffice/taon-cms-taxonomy-backoffice.routes'; // @browser\nexport * from './taon-cms-taxonomy-backoffice/taon-cms-taxonomy-quick-create-dialog.component'; // @browser\nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.component'; // @browser\nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.models'; \nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-backoffice.routes'; // @browser\nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.component'; // @browser\nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.models'; \nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-backoffice.routes'; // @browser\nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-contents.component'; // @browser\nexport * from './taon-posts/taon-cms-course-backoffice/taon-cms-course-cover.component'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-editable.directive'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post-choice-dialog.component'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post.component'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-post.models'; \nexport * from './taon-posts/taon-cms-post/taon-cms-post.routes'; // @browser\nexport * from './taon-posts/taon-cms-post/taon-cms-thumbnail'; \nexport * from './taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-post-table-actions.directive'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component'; // @browser\nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models'; \nexport * from './taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes'; // @browser\nexport * from './taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component'; // @browser\nexport * from './taon-posts/taon-related-post-chooser/taon-related-post-chooser.component'; // @browser\nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.component'; // @browser\nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.models'; \nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-all-preview-backoffice/taon-cms-comments-all-preview-backoffice.routes'; // @browser\nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.component'; // @browser\nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.models'; \nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-blocked-users/taon-cms-comments-blocked-users.routes'; // @browser\nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.component'; // @browser\nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.models'; \nexport * from './taon-cms-comment/taon-cms-comments-backoffice/taon-cms-comments-filters-settings/taon-cms-comments-filters-settings.routes'; // @browser","export * from './migrations';\n/* */\nexport * from './index._auto-generated_';\nexport * from './taon-cms-application-hooks';\n/* */ \nexport default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["t","map","adminLazyRouteBase","i1","i4","i2","i3","adminLazyRoute","i6","i5","i13","i14"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,cAA4C,CAAA;;AAE5F,UAAA,CAAA;AADC,IAAA,sBAAsB,EAAE;;AACd,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAGX,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;AACb,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAG7B,UAAA,CAAA;AADC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;AACjC,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAQzB,UAAA,CAAA;IANC,QAAQ,CACP,MAAM,oBAAoB,EAC1B,OAAO,IAAI,OAAO,CAAC,eAAe,EAClC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CACzC;IACA,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;8BACrD,oBAAoB;AAAQ,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAhB1B,4BAA4B,GAAA,UAAA,CAAA;AAJxC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,8BAA8B;AACzC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,4BAA4B,CAiBxC;;IC9BW;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AAC3B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;IAOlB;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;;ACD/B;AAMO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAAoC,CAAA;AAAvE,IAAA,WAAA,GAAA;;;AAcL,QAAA,IAAA,CAAA,IAAI,GAAuB,kBAAkB,CAAC,MAAM;;QAepD,IAAA,CAAA,mBAAmB,GAAkB,IAAI;;QAKzC,IAAA,CAAA,oBAAoB,GAAkB,IAAI;;QAiC1C,IAAA,CAAA,8BAA8B,GAAY,KAAK;;QAK/C,IAAA,CAAA,6BAA6B,GAAY,KAAK;;QAe9C,IAAA,CAAA,QAAQ,GAAkB,IAAI;;QAK9B,IAAA,CAAA,QAAQ,GAAkB,IAAI;;QAK9B,IAAA,CAAA,aAAa,GAAkB,IAAI;;QAKnC,IAAA,CAAA,YAAY,GAAkB,IAAI;IAgCpC;;AAlIE,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKX,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEvB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,MAAM,EAAE;;;;AAEV,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKrD,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEb,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAKd,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;;AAE5B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAED,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,KAAA,CAAA,CAAA;AAK1C,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEA,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,KAAA,CAAA,CAAA;AAU3C,UAAA,CAAA;AAPC,IAAA,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACtC,IAAA,SAAS,CAAC;AACT,QAAA,IAAI,EAAE,wBAAwB;QAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE;QAC7D,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,oBAAoB,EAAE,IAAI,EAAE;KACzE;;;;AAEoC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAQrC,UAAA,CAAA;AALC,IAAA,QAAQ,CACP,MAAM,4BAA4B,EAClC,eAAe,IAAI,eAAe,CAAC,OAAO;;;8BAG3B,4BAA4B;AAAQ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAUrD,UAAA,CAAA;AAPC,IAAA,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACtC,IAAA,SAAS,CAAC;AACT,QAAA,IAAI,EAAE,8BAA8B;QACpC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE;QAC7D,iBAAiB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,EAAE;KACxE;;;;AAEmC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAKpC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;;;;AAEK,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,gCAAA,EAAA,KAAA,CAAA,CAAA;AAKhD,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;;;;AAEI,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,+BAAA,EAAA,KAAA,CAAA,CAAA;AAK/C,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEjB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKvB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEpB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKpB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEP,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA;AAKpC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAER,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAKnC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEjB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAK1B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEf,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAK5B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;;;;AAE9B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAMf,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;;;8BAE/B,IAAI;AAAQ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAKzB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AArIL,oBAAoB,GAAA,UAAA,CAAA;AAJhC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,oBAAoB,CAsIhC;;ACrJM,MAAM,sBAAsB,GAAG;AACpC,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,kBAAkB,EAAE,oBAAoB;AACxC,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,YAAY,EAAE,cAAc;;;ACE9B;AAIO,IAAM,yCAAyC,GAA/C,MAAM,yCAA0C,SAAQ,iBAAiB,CAAA;AAAzE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,sBAAsB,GAAG,yBAAyB,CAAC,4BAA4B,CAAC;AAEhF,QAAA,IAAA,CAAA,aAAa,GAAG,yBAAyB,CAAC,oBAAoB,CAAC;IA2EjE;;IAxEE,MAAM,EAAE,CAAC,WAAwB,EAAA;AAC/B,QAAA,MAAM,WAAW,CAAC,gBAAgB,EAAE;AACpC,QAAA,IAAI;AACF,YAAA,IAAI,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE;AAC9D,gBAAA,MAAM,WAAW,CAAC,WAAW,CAC3B,IAAI,KAAK,CAAC;oBACR,IAAI,EAAE,IAAI,CAAC,sBAAsB;AACjC,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,SAAS,EAAE,IAAI;AACf,4BAAA,WAAW,EAAE,IAAI;AACjB,4BAAA,kBAAkB,EAAE,WAAW;AAChC,yBAAA;wBACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjD,wBAAA;AACE,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,UAAU,EAAE,IAAI;AAChB,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA;AACF,qBAAA;AACD,oBAAA,WAAW,EAAE;AACX,wBAAA;4BACE,WAAW,EAAE,CAAC,WAAW,CAAC;4BAC1B,mBAAmB,EAAE,IAAI,CAAC,aAAa;4BACvC,qBAAqB,EAAE,CAAC,IAAI,CAAC;AAC7B,4BAAA,QAAQ,EAAE,UAAU;AACrB,yBAAA;AACF,qBAAA;iBACF,CAAC,EACF,IAAI,CACL;YACH;AAEA,YAAA,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;AAC/C,YAAA,MAAM,WAAW,CAAC,iBAAiB,EAAE;QACvC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC;AAC3C,YAAA,MAAM,WAAW,CAAC,mBAAmB,EAAE;AACvC,YAAA,MAAM,KAAK;QACb;IACF;;;IAIA,MAAM,IAAI,CAAC,WAAwB,EAAA;QACjC,IAAI,MAAM,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;YAC3D,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC;QAChE;IACF;;IAGU,mBAAmB,GAAA;AAC3B,QAAA,OAAO,sBAAsB;IAC/B;IAEQ,MAAM,uBAAuB,CACnC,WAAwB,EAAA;QAExB,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CAClD,4BAA4B,CAC7B;AACD,QAAA,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE;AAC5D,YAAA,IAAI,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAW,EAAE,CAAC,CAAC,EAAE;AACxD,gBAAA,MAAM,UAAU,CAAC,IAAI,CACnB,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAC1D;YACH;QACF;IACF;;AA7EW,yCAAyC,GAAA,UAAA,CAAA;AAHrD,IAAA,aAAa,CAAC;AACb,QAAA,SAAS,EAAE,2CAA2C;KACvD;AACY,CAAA,EAAA,yCAAyC,CA8ErD;AACD;;ACnFO,IAAM,yCAAyC,GAA/C,MAAM,yCAA0C,SAAQ,iBAAiB,CAAA;IAC9E,MAAM,EAAE,CAAC,WAAwB,EAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,yBAAyB,CAAC,oBAAoB,CAAC;QAC7D,KAAK,MAAM,IAAI,IAAI,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,EAAE;AAClE,YAAA,IAAI,EAAE,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE;gBAC/C,MAAM,WAAW,CAAC,SAAS,CACzB,KAAK,EACL,IAAI,WAAW,CAAC;oBACd,IAAI;AACJ,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAC,CACH;YACH;QACF;IACF;IAEA,MAAM,IAAI,CAAC,WAAwB,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,yBAAyB,CAAC,oBAAoB,CAAC;QAC7D,KAAK,MAAM,IAAI,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,EAAE;YAClE,IAAI,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;gBAC5C,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;YAC3C;QACF;IACF;;AAxBW,yCAAyC,GAAA,UAAA,CAAA;AAHrD,IAAA,aAAa,CAAC;AACb,QAAA,SAAS,EAAE,2CAA2C;KACvD;AACY,CAAA,EAAA,yCAAyC,CAyBrD;;AChCD;AAKA;AACO,MAAM,iCAAiC,GAAG;AAC/C,8BAA0B,yCAAyC;AACnE,8BAA0B,yCAAyC;;AAErE;;ACVA;;ACAA;AACA;;AAEG;AACI,MAAM,wBAAwB,GAAG;AACxC;;AAEG;AACI,MAAM,MAAM,GAAG;AACtB;;AAEG;AACI,MAAM,eAAe,GAAG;AAC/B;;AAEG;AACI,MAAM,gBAAgB,GAAG;AAChC;;AAEG;AACI,MAAM,4BAA4B,GAAG;AAC5C;;AAEG;AACI,MAAM,uBAAuB,GAAG;AAMvC;;AC9BA;AAGA;AACA;AAEA;AACA;;;;;AAKG;AACH,MAAM,OAAQ,SAAQ,sBAA0B,CAAA;AAC9C;;AAEG;IACI,CAAC,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,CAAsB,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE;IACd;AAEA;;;AAGG;IACH,uBAAuB,GAAA;AACrB,QAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC;AAChD,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACf;AACD;AACD;AAEA;AACA;;AAEG;AACH,MAAM,QAAS,SAAQ,sBAErB,CAAA;AACA;;AAEG;IACI,CAAC,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,iCAAA,CAAmC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE;IACd;AAEA;;AAEG;IACI,kBAAkB,GAAA;AACvB,QAAA,MAAM,GAAG,GAAG,uBAAuB,CACjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EACpC,SAAS,EACT;AACE,YAAA,YAAY,EAAE,eAAe;AAC9B,SAAA,CACF;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAA,CAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACf;AACD;AACD;AAEA;;;;AAIG;AACI,eAAe,QAAQ,CAC5B,KAAe,EACf,QAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BhB,IAAA,QAAQ,KAAK,CAAC;AAChB;;AClGA;AAMO,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,sBAA6C,CAAA;;AAItF,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEX,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;AAKhC,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEd,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;;AAE5B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEhB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAK3B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAErB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAxBP,qBAAqB,GAAA,UAAA,CAAA;AAJjC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,qBAAqB,CAyBjC;;SC/Be,YAAY,CAAC,OAAe,EAAE,MAAM,GAAG,GAAG,EAAA;AACxD,IAAA,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACpC,IAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AAC1B;SAEgB,gBAAgB,CAAC,KAAa,EAAE,IAAI,GAAG,WAAW,EAAA;AAChE,IAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AAC9C,QAAA,YAAY,CAAC,CAAA,EAAG,IAAI,CAAA,4BAAA,CAA8B,CAAC;IACrD;AACF;SAEgB,qBAAqB,CACnC,KAAa,EACb,IAAI,GAAG,iBAAiB,EAAA;AAExB,IAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;AAC7C,QAAA,YAAY,CAAC,CAAA,EAAG,IAAI,CAAA,gCAAA,CAAkC,CAAC;IACzD;AACF;SAEgB,oBAAoB,CAClC,KAIC,EACD,QAAQ,GAAG,KAAK,EAAA;AAEhB,IAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC/D,YAAY,CAAC,4BAA4B,CAAC;IAC5C;AACA,IAAA,IACE,KAAK,CAAC,IAAI,KAAK,SAAS;AACxB,QAAA,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EACvD;QACA,YAAY,CAAC,mDAAmD,CAAC;IACnE;IACA,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,CAAU,EAAE;QAC9C,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;AAC1C,YAAA,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;AAC5D,gBAAA,YAAY,CAAC,CAAA,EAAG,KAAK,CAAA,4BAAA,CAA8B,CAAC;YACtD;QACF;IACF;IACA,KAAK,MAAM,KAAK,IAAI;QAClB,MAAM;QACN,SAAS;QACT,UAAU;QACV,UAAU;QACV,eAAe;QACf,cAAc;AACN,KAAA,EAAE;AACV,QAAA,IACE,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS;AAC1B,YAAA,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI;AACrB,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,EAChC;AACA,YAAA,YAAY,CAAC,CAAA,EAAG,KAAK,CAAA,0BAAA,CAA4B,CAAC;QACpD;IACF;IACA,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,cAAc,CAAU,EAAE;AAC3D,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;YACvD,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QACvC;IACF;AACA,IAAA,IACE,KAAK,CAAC,8BAA8B,KAAK,SAAS;AAClD,QAAA,OAAO,KAAK,CAAC,8BAA8B,KAAK,SAAS,EACzD;QACA,YAAY,CAAC,mDAAmD,CAAC;IACnE;AACA,IAAA,IACE,KAAK,CAAC,6BAA6B,KAAK,SAAS;AACjD,QAAA,OAAO,KAAK,CAAC,6BAA6B,KAAK,SAAS,EACxD;QACA,YAAY,CAAC,kDAAkD,CAAC;IAClE;AACA,IAAA,IACE,KAAK,CAAC,MAAM,KAAK,SAAS;AAC1B,QAAA,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAC1D;QACA,YAAY,CAAC,+CAA+C,CAAC;IAC/D;AACA,IAAA,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE;AACjE,QAAA,IACE,EACE,KAAK,CAAC,WAAW,YAAY,IAAI;AACjC,YAAA,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CACtC;AACD,YAAA,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,EACnD;YACA,YAAY,CAAC,2CAA2C,CAAC;QAC3D;IACF;IACA,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAU,EAAE;AAC1E,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACvB,gBAAA,YAAY,CAAC,CAAA,EAAG,KAAK,CAAA,kBAAA,CAAoB,CAAC;YAC5C;AACA,YAAA,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;AACpB,gBAAA,gBAAgB,CACd,EAAE,EACF,KAAK,KAAK;AACR,sBAAE;sBACA,KAAK,KAAK;AACV,0BAAE;0BACA,cAAc,CACrB;YACH;QACF;IACF;AACF;;AChHA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,2DAA2D,EAAE,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAajqC,SAAU,gBAAgB,CAAC,KAA4B,EAAA;AAC3D,IAAA,IACE,CAAC,KAAK;AACN,QAAA,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC9B,QAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,QAAA,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC9B,QAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,SAAC,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,EACrE;QACA,YAAY,CACVA,GAAC,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAC/D;IACH;AACF;SAEgB,yBAAyB,CACvC,EAAiB,EACjB,QAAuB,EACvB,UAA6D,EAAA;AAE7D,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU;AACjC,IAAA,IAAI,EAAE,KAAK,IAAI,EAAE;AACf,QAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACjB;IACA,IAAI,OAAO,GAAG,QAAQ;AACtB,IAAA,OAAO,OAAO,KAAK,IAAI,EAAE;AACvB,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACxB,YAAY,CAACA,GAAC,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QACnE;AACA,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AACpB,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC;QACnE,IAAI,CAAC,MAAM,EAAE;YACX,YAAY,CAACA,GAAC,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAChE;AACA,QAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB;IACnC;AACF;;ACtCA;AAEA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,2DAA2D,EAAE,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gFAAwD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAKhqC,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kBAAyC,CAAA;AAAjF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAuC,MACzD,qBAAqB;IAgFzB;AA9EE,IAAA,MAAM,YAAY,CAChB,EAAiB,EACjB,KAA4B,EAAA;;QAG5B,gBAAgB,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YAC1C,YAAY,CAACA,GAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC3D;AACA,QAAA,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,gBAAgB,CAAC,EAAE,CAAC;QACtB;AACA,QAAA,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI,EAAE;AACnC,YAAA,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC1C;AACA,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YACjE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC;AAC/D,YAAA,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC;YACzC;AACA,YAAA,yBAAyB,CACvB,EAAE,EACF,KAAK,CAAC,gBAAgB,EACtB,MAAM,UAAU,CAAC,IAAI,EAAE,CACxB;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;YACrD,IAAI,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE;gBAClC,YAAY,CAACA,GAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,EAAE,GAAG,CAAC;YACvE;AACA,YAAA,OAAO,UAAU,CAAC,IAAI,CACpB,UAAU,CAAC,MAAM,CAAC;AAChB,gBAAA,IAAI,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAC9B,gBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;gBACvB,IAAI;gBACJ,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;AACzC,aAAA,CAAC,CACH;AACH,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,cAAc,CAAC,EAAU,EAAA;;QAE7B,gBAAgB,CAAC,EAAE,CAAC;AACpB,QAAA,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YAChE,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM;iBACpB,aAAa,CAAC,qBAAqB;AACnC,iBAAA,OAAO,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM;iBACjB,aAAa,CAAC,oBAAoB;AAClC,iBAAA,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC9B,YAAA,IAAI,QAAQ,IAAI,KAAK,EAAE;gBACrB,YAAY,CACVA,GAAC,CAAC,OAAO,CACP,oEAAoE,CACrE,EACD,GAAG,CACJ;YACH;YACA,MAAM,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/D,QAAA,CAAC,CAAC;;IAEJ;AAEA,IAAA,MAAM,eAAe,CAAC,EAAU,EAAE,OAAsB,EAAA;;QAEtD,MAAM,QAAQ,GAAG,MAAM;AACpB,aAAA,aAAa,CAAwB,IAAI,CAAC,MAAM;AAChD,aAAA,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,YAAY,CAAC,CAAA,SAAA,EAAY,EAAE,kBAAkB,EAAE,GAAG,CAAC;QACrD;;IAEF;;AAjFW,yBAAyB,GAAA,UAAA,CAAA;AAHrC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,2BAA2B;KACvC;AACY,CAAA,EAAA,yBAAyB,CAkFrC;;AC9FD;AAMO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,sBAA6C,CAAA;AAArF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAuC,MACzD,qBAAqB;AAEvB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;AAE3D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAEvD,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;IAgC1E;IA9BY,MAAM,iBAAiB,CAAC,EAChC,GAAG,EACH,GAAG,EACH,CAAC,GACsE,EAAA;;;;;;;AAOvE,QAAA,QAAQ,KAAK,CAAC;IAChB;IAGA,YAAY,CACG,EAAiB,EACtB,KAA4B,EAAA;;AAGpC,QAAA,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,KAAK,CAAC;;IAE7E;AAGA,IAAA,cAAc,CAAc,EAAU,EAAA;;QAEpC,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;;IAEhE;;AAdA,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACX,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAKR,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AACO,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAI1B,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;AAvCU,yBAAyB,GAAA,UAAA,CAAA;AAJrC,IAAA,cAAc,CAA4B;AACzC,QAAA,SAAS,EAAE,2BAA2B;AACtC,QAAA,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC;KAC7D;AACY,CAAA,EAAA,yBAAyB,CAwCrC;;ACrDD;AAQO,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,gBAAgB,CAAA;8GAAhD,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA;;AAAvB,uBAAuB,GAAA,UAAA,CAAA;AANnC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,yBAAyB;KACrC;;AAIY,CAAA,EAAA,uBAAuB,CAInC;2FAJY,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAFnC;;;ACPD;AAKO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kBAAkB,CAAA;;AAApD,yBAAyB,GAAA,UAAA,CAAA;AAHrC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,2BAA2B;KACvC;AACY,CAAA,EAAA,yBAAyB,CAA8B;;ACJpE;AAMO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,2BAA2B,CAAA;AAAnE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC;IAIxE;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,qBAAqB;IAC9B;;AAJW,yBAAyB,GAAA,UAAA,CAAA;AAJrC,IAAA,cAAc,CAA4B;AACzC,QAAA,SAAS,EAAE,2BAA2B;;KAEvC;AACY,CAAA,EAAA,yBAAyB,CAKrC;;ACfD;AASA;MAEa,8BAA8B,GAAG,aAAa,CAAC,OAAO;AACjE,IAAA,WAAW,EAAE,gCAAgC;AAC7C,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,qBAAqB,EAAE;IACnC,WAAW,EAAE,EAAE,yBAAyB,EAAE;IAC1C,YAAY,EAAE,EAAE,yBAAyB,EAAE;IAC3C,SAAS,EAAE,EAAE,uBAAuB,EAAE;IACtC,WAAW,EAAE,EAAE,yBAAyB,EAAE;IAC1C,WAAW,EAAE,EAAE,yBAAyB,EAAE;AAC3C,CAAA,CAAC;;AChBF;AAMO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAAoC,CAAA;;AAI5E,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKX,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEvB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAET,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKlB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAErB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKtB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;;;;AAEX,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE;;;;AAElC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKf,UAAA,CAAA;AAFC,IAAA,gBAAgB;;;8BAEN,IAAI;AAAC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,gBAAgB;;;8BAEN,IAAI;AAAC,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AA5CL,oBAAoB,GAAA,UAAA,CAAA;AAJhC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,oBAAoB,CA6ChC;;ACjDD;AAMO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,cAA4C,CAAA;;AAI5F,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEZ,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKX,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEvB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAET,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKlB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEJ,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,KAAA,CAAA,CAAA;AAKvB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEb,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAKd,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEpB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKpB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEP,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAKxC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AA5CL,4BAA4B,GAAA,UAAA,CAAA;AAJxC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,8BAA8B;AACzC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,4BAA4B,CA6CxC;;AChDD;AAKO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,kBAAgD,CAAA;AAA/F,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA8C,MAChE,4BAA4B;IA0DhC;AAxDE,IAAA,MAAM,cAAc,CAClB,SAAiB,EACjB,OAAsB,EAAA;;AAGtB,QAAA,OAAO;AACJ,aAAA,aAAa,CAA+B,IAAI,CAAC,MAAM;AACvD,aAAA,IAAI,CAAC;YACJ,KAAK,EAAE,EAAE,SAAS,EAAE;AACpB,YAAA,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;AAClC,SAAA,CAAC;;IAEN;AAEA,IAAA,MAAM,eAAe,CACnB,SAAiB,EACjB,cAAsB,EACtB,OAAsB,EAAA;;QAGtB,MAAM,QAAQ,GAAG,MAAM;AACpB,aAAA,aAAa,CAA+B,IAAI,CAAC,MAAM;AACvD,aAAA,SAAS,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE;YACb,YAAY,CACV,YAAY,cAAc,CAAA,YAAA,EAAe,SAAS,CAAA,gBAAA,CAAkB,EACpE,GAAG,CACJ;QACH;AACA,QAAA,OAAO,QAAQ;;IAEjB;AAEA,IAAA,MAAM,aAAa,CACjB,OAA6B,EAC7B,QAAgC,EAChC,OAAsB,EAAA;;QAGtB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;AACD,QAAA,OAAO,UAAU,CAAC,IAAI,CACpB,UAAU,CAAC,MAAM,CAAC;YAChB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,cAAc,EAAE,OAAO,CAAC,OAAO;AAC/B,YAAA,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ;YACR,eAAe,EAAE,OAAO,CAAC,YAAY;YACrC,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,SAAA,CAAC,CACH;;IAEH;;AA3DW,gCAAgC,GAAA,UAAA,CAAA;AAH5C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,kCAAkC;KAC9C;AACY,CAAA,EAAA,gCAAgC,CA4D5C;;ACtED;AAMO,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,sBAA+C,CAAA;;AAI1F,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAET,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKlB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEb,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AATH,uBAAuB,GAAA,UAAA,CAAA;AAJnC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,uBAAuB,CAUnC;;ACfD;AAKO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,kBAA2C,CAAA;AAArF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAyC,MAC3D,uBAAuB;IAgC3B;AA9BE,IAAA,MAAM,UAAU,CACd,SAAiB,EACjB,OAAsB,EAAA;;QAGtB,MAAM,KAAK,GAAG,MAAM;AACjB,aAAA,aAAa,CAA0B,IAAI,CAAC,MAAM;AAClD,aAAA,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;AAC1D,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;;IAEtC;AAEA,IAAA,MAAM,WAAW,CACf,SAAiB,EACjB,MAAgB,EAChB,OAAsB,EAAA;;QAGtB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;QACD,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAC1C,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CACxC;AACD,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B;;IAEF;;AAjCW,2BAA2B,GAAA,UAAA,CAAA;AAHvC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,6BAA6B;KACzC;AACY,CAAA,EAAA,2BAA2B,CAkCvC;;ACxCD;AAMO,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,sBAAwC,CAAA;;AAI5E,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;;AAE5B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;;AAE5B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEhB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAdhB,gBAAgB,GAAA,UAAA,CAAA;AAJ5B,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,gBAAgB,CAe5B;;ACXD;AAEA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,iDAAiD,EAAE,EAAC,iDAAiD,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,EAAC,iDAAiD,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAKvvB,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,kBAAoC,CAAA;AAAvE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAkC,MAAM,gBAAgB;IAmF9E;AAjFE,IAAA,MAAM,OAAO,CACX,EAAiB,EACjB,KAA4B,EAAA;;QAG5B,gBAAgB,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,gBAAgB,CAAC,EAAE,CAAC;QACtB;AACA,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YACjE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC;AAC1D,YAAA,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;YACvC;YACA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACvE,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;gBACvC,YAAY,CACVA,GAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC,EACrD,GAAG,CACJ;YACH;AACA,YAAA,OAAO,UAAU,CAAC,IAAI,CACpB,UAAU,CAAC,MAAM,CAAC;AAChB,gBAAA,IAAI,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBAC9B,IAAI;gBACJ,IAAI;gBACJ,WAAW,EAAE,KAAK,CAAC,WAAW;AAC/B,aAAA,CAAC,CACH;AACH,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,SAAS,CAAC,EAAU,EAAA;;QAExB,gBAAgB,CAAC,EAAE,CAAC;AACpB,QAAA,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YAChE,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;AACrC,YAAA,IACE,MAAM;iBACH,aAAa,CAAC,uBAAuB;iBACrC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACzB;gBACA,YAAY,CACVA,GAAC,CAAC,OAAO,CAAC,gDAAgD,CAAC,EAC3D,GAAG,CACJ;YACH;YACA,MAAM,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1D,QAAA,CAAC,CAAC;;IAEJ;AAEA,IAAA,MAAM,WAAW,CAAC,GAAa,EAAE,OAAsB,EAAA;;QAErD,KAAK,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,GAAG,GAAG,MAAM;AACf,iBAAA,aAAa,CAAmB,IAAI,CAAC,MAAM;AAC3C,iBAAA,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,YAAY,CAAC,CAAA,IAAA,EAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC;YAChD;QACF;;IAEF;AAEA;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAnFW,oBAAoB,GAAA,UAAA,CAAA;AAHhC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,sBAAsB;KAClC;AACY,CAAA,EAAA,oBAAoB,CAoFhC;;ACrGD;AAMO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,cAAyC,CAAA;;AAItF,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEZ,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKX,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEvB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAElB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKzB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEd,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAMb,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEH,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAMxB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAErB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKtB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEf,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;AAKZ,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEX,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;AAKhC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEnB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAKxB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEvB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKpB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEV,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAKrC,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAEjB,IAAI;AAAC,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAlEL,yBAAyB,GAAA,UAAA,CAAA;AAJrC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,2BAA2B;AACtC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,yBAAyB,CAmErC;;AC5CD;AAKO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAwC,CAAA;AAA/E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAsC,MACxD,oBAAoB;AAEL,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,CAAC,gBAAgB,CACvE,gCAAgC,CACjC;AAEgB,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CAClE,2BAA2B,CAC5B;AAEgB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAChE,yBAAyB,CAC1B;AAEgB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;IAi/CrE;IA/+CE,MAAM,UAAU,CAAC,EAAU,EAAA;;QAEzB,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACtC,OAAO,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC;AACjE,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,0BAA0B,CAC9B,EAAU,EAAA;;QAGV,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACtD,OAAO,IAAI,CAAC,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC;AAC9D,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,aAAa,CACjB,KAA2B,EAAA;;AAG3B,QAAA,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,IACxD,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAC9C;;IAEH;AAEQ,IAAA,MAAM,8BAA8B,CAC1C,IAA0B,EAC1B,OAAsB,EAAA;;QAGtB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;AAC3E,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,EAAE;QACrB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,EAAE;AACX,YAAA,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;gBACpC,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;AACzC,aAAA,CAAC;AACF,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,YAAY,CAAC,2CAA2C,EAAE,GAAG,CAAC;YAChE;AACA,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YAClE;YACA,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AAC1B,gBAAA,YAAY,CAAC,sDAAsD,EAAE,GAAG,CAAC;YAC3E;AACA,YAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AACtB,YAAA,IAAI,MAAM,CAAC,6BAA6B,EAAE;gBACxC,OAAO;oBACL,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;AACzC,oBAAA,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;iBAC/C;YACH;AACA,YAAA,OAAO,GAAG,MAAM,CAAC,EAAE;QACrB;;IAEF;IAEA,MAAM,gBAAgB,CACpB,EAAU,EACV,eAAwB,EACxB,iBAAmD,EACnD,mBAAmD,EAAA;;QAGnD,gBAAgB,CAAC,EAAE,CAAC;QACpB,MAAM,UAAU,GAAa,EAAE;AAC/B,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CACtC,cAAc,EACd,OAAM,OAAO,KAAG;AACd,gBAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU;gBACnC,MAAM,aAAa,GAAG,OACpB,MAA4B,EAC5B,eAAgD,KACf;oBACjC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AAC5B,wBAAA,YAAY,CACV,gEAAgE,EAChE,GAAG,CACJ;oBACH;AACA,oBAAA,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AACxB,oBAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;oBAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;oBAC3D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAC7D,UAAU,EACV,OAAO,CACR;oBACD,MAAM,QAAQ,GAA2B,EAAE;AAC3C,oBAAA,MAAM,MAAM,GAAG,eAAe,IAAI,QAAQ,CAAC,MAAM;oBACjD,MAAM,gBAAgB,GACpB,eAAe;AACf,yBAAC,QAAQ,CAAC,6BAA6B,GAAG,MAAM,GAAG,SAAS,CAAC;oBAC/D,IAAI,eAAe,EAAE;wBACnB,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,YAAY,IAAI,EAAE,EAAE;4BACjD,QAAQ,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;wBAC7D;oBACF;AACA,oBAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAClD,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,IAAI,EACf,OAAO,CACR;oBACD,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;AAC9C,oBAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB;oBACjD,KAAK,MAAM,KAAK,IAAI;wBAClB,UAAU;wBACV,UAAU;wBACV,eAAe;wBACf,cAAc;AACN,qBAAA,EAAE;AACV,wBAAA,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC;wBACjC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;4BAC9C,IAAI,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;4BACxC,IAAI,CAAC,SAAS,EAAE;AACd,gCAAA,SAAS,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC;AACxC,gCAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,gCAAA,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;4BACrC;AACA,4BAAA,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS;wBACnC;oBACF;AACA,oBAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACnD;AACE,wBAAA,GAAG,cAAc;AACjB,wBAAA,GAAG,YAAY;AACf,wBAAA,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;AAC/C,wBAAA,eAAe,EAAE,IAAI;AACrB,wBAAA,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAC1C,UAAU,IAAI,UAAU,CAAC,EAAE,CAC5B;qBACF,EACD,OAAO,CACR;oBACD,MAAM,eAAe,GACnB,OAAO,CAAC,aAAa,CACnB,yBAAyB,CAC1B;AACH,oBAAA,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC;AAC9C,wBAAA,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;AACpC,qBAAA,CAAC;AACF,oBAAA,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;wBAChC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;wBAChD,IAAI,CAAC,SAAS,EAAE;4BACd;wBACF;AACA,wBAAA,MAAM,eAAe,CAAC,IAAI,CACxB,eAAe,CAAC,MAAM,CAAC;AACrB,4BAAA,OAAO,EAAE,CAAC;4BACV,SAAS,EAAE,SAAS,CAAC,EAAE;4BACvB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,eAAe,EAAE,KAAK,CAAC,eAAe;4BACtC,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,4BAAA,GAAG,EAAE,SAAS;4BACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;4BACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,eAAe,EAAE,KAAK,CAAC,eAAe;4BACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,yBAAA,CAAC,CACH;oBACH;AACA,oBAAA,OAAO,SAAS;AAClB,gBAAA,CAAC;AACD,gBAAA,OAAO,aAAa,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9D,YAAA,CAAC,CACF;QACH;QAAE,OAAO,KAAK,EAAE;YACd,MAAM,aAAa,GAAc,EAAE;YACnC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE;AACtC,gBAAA,IAAI;AACF,oBAAA,MAAM,mBAAmB,CAAC,GAAG,CAAC;gBAChC;gBAAE,OAAO,YAAY,EAAE;AACrB,oBAAA,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;gBAClC;YACF;AACA,YAAA,IAAI,aAAa,CAAC,MAAM,EAAE;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,wDAAwD,EACxD,aAAa,CACd;AACD,gBAAA,YAAY,CACV,kFAAkF,EAClF,GAAG,CACJ;YACH;AACA,YAAA,MAAM,KAAK;QACb;;IAEF;AAEQ,IAAA,MAAM,oBAAoB,CAChC,KAAa,EACb,IAAY,EACZ,OAAsB,EAAA;QAEtB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACpD,IAAI,MAAM,GACR,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,YAAA,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;AAC3E,QAAA,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;AACnC,YAAA,MAAM,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,KAAA,EAAQ,MAAM,EAAE;AAC9C,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,QAAQ,CAAA,KAAA,EAAQ,MAAM,EAAE;AAC5C,YAAA,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;AACxC,gBAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAClD,aAAA,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7C;YACA,MAAM,IAAI,CAAC;QACb;AACA,QAAA,YAAY,CAAC,8CAA8C,EAAE,GAAG,CAAC;IACnE;AAEQ,IAAA,MAAM,wBAAwB,CACpC,KAA2B,EAC3B,OAAsB,EAAA;;QAGtB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE;AAChE,YAAA,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE;QACjC;AACA,QAAA,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAC/C,QAAA,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AAC/D,QAAA,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;AAC7D,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC;QACrE,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;AAC3E,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CACnC,UAAU,CAAC,MAAM,CAAC;AAChB,YAAA,GAAG,MAAM;AACT,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,SAAS,EAAE,GAAG;AACf,SAAA,CAAC,CACH;AACD,QAAA,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAChD,OAAO,CAAC,EAAE,EACV,MAAM,EACN,OAAO,CACR;AACD,QAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC;QACvE,IAAI,MAAM,CAAC,6BAA6B,IAAI,cAAc,CAAC,MAAM,EAAE;YACjE,MAAM,IAAI,CAAC,iCAAiC,CAC1C,OAAO,CAAC,EAAE,EACV,MAAM,CAAC,MAAM,EACb,OAAO,EACP,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CACtB;QACH;AACA,QAAA,MAAM,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC;AACjD,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,CAAC;AACrE,QAAA,MAAM,IAAI,CAAC,sBAAsB,CAC/B,OAAO,CAAC,EAAE,EACV,KAAK,CAAC,eAAe,IAAI,IAAI,EAC7B,OAAO,CACR;QACD,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,CACvD,OAAO,EACP,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,EACpD,OAAO,CACR;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;;IAEjD;AAEA,IAAA,MAAM,aAAa,CACjB,EAAU,EACV,KAA2B,EAAA;;QAG3B,gBAAgB,CAAC,EAAE,CAAC;QACpB,oBAAoB,CAAC,KAAK,CAAC;AAC3B,QAAA,qBAAqB,CAAC,KAAK,CAAC,eAAe,CAAC;AAC5C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;YACxD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAC1D,OAAO,EACP,OAAO,CACR;AACD,YAAA,IACE,KAAK,CAAC,MAAM,KAAK,SAAS;AAC1B,gBAAA,UAAU,CAAC,MAAM;AACjB,gBAAA,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAClC;AACA,gBAAA,YAAY,CACV,wEAAwE,EACxE,GAAG,CACJ;YACH;YACA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;AAClD,YAAA,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,gBAAA,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;YACnC;AACA,YAAA,IACE,KAAK,CAAC,MAAM,KAAK,WAAW;gBAC5B,QAAQ,CAAC,MAAM,KAAK,WAAW;AAC/B,gBAAA,KAAK,CAAC,WAAW,KAAK,SAAS,EAC/B;AACA,gBAAA,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE;YACjC;AACA,YAAA,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,KAAK;kBACb,QAAQ,CAAC;kBACT,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChC,YAAA,MAAM,cAAc,GAClB,KAAK,CAAC,cAAc,KAAK;kBACrB,QAAQ,CAAC;kBACT,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACxC,YAAA,MAAM,aAAa,GACjB,KAAK,CAAC,aAAa,KAAK;kBACpB,QAAQ,CAAC;kBACT,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC,YAAY,CACtB,OAAO,EACP,KAAK,CAAC,eAAe,EACrB,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,EACpD,OAAO,EACP,KAAK,CAAC,eAAe,CACtB;AACH,QAAA,CAAC,CAAC;;IAEJ;AAEA,IAAA,MAAM,cAAc,CAClB,EAAU,EACV,eAAuB,EAAA;;AAGvB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;;IAExE;AAEA,IAAA,MAAM,wBAAwB,CAC5B,EAAU,EACV,eAAuB,EACvB,mBAAmD,EAAA;;QAGnD,gBAAgB,CAAC,EAAE,CAAC;QACpB,qBAAqB,CAAC,eAAe,CAAC;AACtC,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CACjD,cAAc,EACd,OAAM,OAAO,KAAG;YACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;AACtD,YAAA,IAAI,OAAO,CAAC,OAAO,KAAK,eAAe,EAAE;AACvC,gBAAA,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC;YACrE;AACA,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AACjC,gBAAA,YAAY,CAAC,iDAAiD,EAAE,GAAG,CAAC;YACtE;YACA,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;YACD,MAAM,eAAe,GACnB,OAAO,CAAC,aAAa,CACnB,yBAAyB,CAC1B;AACH,YAAA,MAAM,SAAS,GAAG;AAChB,gBAAA,OAAO,CAAC,QAAQ;AAChB,gBAAA,OAAO,CAAC,QAAQ;AAChB,gBAAA,OAAO,CAAC,aAAa;AACrB,gBAAA,OAAO,CAAC,YAAY;AACrB,aAAA,CAAC,MAAM,CACN,CAAC,GAAG,KACF,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAC/C;YACD,MAAM,eAAe,GAAa,EAAE;YACpC,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE;AACpC,gBAAA,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;AACvC,oBAAA,KAAK,EAAE;wBACL,EAAE,QAAQ,EAAE,GAAG,EAAE;wBACjB,EAAE,QAAQ,EAAE,GAAG,EAAE;wBACjB,EAAE,aAAa,EAAE,GAAG,EAAE;wBACtB,EAAE,YAAY,EAAE,GAAG,EAAE;AACtB,qBAAA;AACF,iBAAA,CAAC;AACF,gBAAA,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC;oBACjD,KAAK,EAAE,EAAE,GAAG,EAAE;AACf,iBAAA,CAAC;AACF,gBAAA,IACE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;AAClD,oBAAA,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE,CAAC,EACtD;AACA,oBAAA,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B;YACF;AACA,YAAA,IAAI,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE;AAChC,gBAAA,MAAM;AACH,qBAAA,kBAAkB;qBAClB,QAAQ,CAAC,cAAc;qBACvB,EAAE,CAAC,EAAE;AACL,qBAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD;AACA,YAAA,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;AACpC,gBAAA,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE;AAChC,aAAA,CAAC;AACF,YAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,gBAAA,MAAM;AACH,qBAAA,kBAAkB;qBAClB,QAAQ,CAAC,cAAc;AACvB,qBAAA,EAAE,CAAC,MAAM,CAAC,EAAE;qBACZ,MAAM,CAAC,EAAE,CAAC;YACf;AACA,YAAA,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;AACzC,gBAAA,KAAK,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC;AACnE,aAAA,CAAC;AACF,YAAA,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;AACtC,gBAAA,IAAI,WAAW,CAAC,mBAAmB,KAAK,EAAE,EAAE;AAC1C,oBAAA,WAAW,CAAC,mBAAmB,GAAG,IAAI;gBACxC;AACA,gBAAA,IAAI,WAAW,CAAC,oBAAoB,KAAK,EAAE,EAAE;AAC3C,oBAAA,WAAW,CAAC,oBAAoB,GAAG,IAAI;gBACzC;AACA,gBAAA,WAAW,CAAC,OAAO,IAAI,CAAC;AACxB,gBAAA,WAAW,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE;AAClC,gBAAA,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YACpC;AACA,YAAA,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAChD,EAAE,EACF,EAAE,EACF,OAAO,CACR;YACD,MAAM,IAAI,CAAC,kBAAkB,CAC3B,EAAE,EACF,EAAE,EACF,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,EACpD,OAAO,CACR;YACD,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;YACpD,MAAM,eAAe,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAC/C,YAAA,MAAM;AACH,iBAAA,aAAa,CACZ,IAAI,CAAC,gCAAgC,CAAC,MAAM;AAE7C,iBAAA,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAC5B,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;AAC/B,YAAA,OAAO,eAAe;AACxB,QAAA,CAAC,CACF;QACD,MAAM,aAAa,GAAc,EAAE;AACnC,QAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AAC3B,YAAA,IAAI;AACF,gBAAA,MAAM,mBAAmB,CAAC,GAAG,CAAC;YAChC;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B;QACF;AACA,QAAA,IAAI,aAAa,CAAC,MAAM,EAAE;AACxB,YAAA,OAAO,CAAC,KAAK,CACX,kEAAkE,EAClE,aAAa,CACd;AACD,YAAA,YAAY,CACV,yEAAyE,EACzE,GAAG,CACJ;QACH;;IAEF;AAEA,IAAA,MAAM,cAAc,CAClB,EAAU,EACV,KAA4B,EAAA;;QAG5B,gBAAgB,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACvC,YAAY,CAAC,kCAAkC,CAAC;QAClD;AACA,QAAA,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAC7D,QAAA,qBAAqB,CAAC,KAAK,CAAC,eAAe,CAAC;AAC5C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;AACtD,YAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,gCAAgC,CAAC,eAAe,CACzD,EAAE,EACF,KAAK,CAAC,cAAc,EACpB,OAAO,CACR;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACtB,gBAAA,YAAY,CACV,uEAAuE,EACvE,GAAG,CACJ;YACH;AACA,YAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ;AACxC,YAAA,MAAM,cAAc,GAAqC;gBACvD,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,MAAM;gBACN,SAAS;gBACT,YAAY;gBACZ,cAAc;gBACd,QAAQ;gBACR,aAAa;gBACb,QAAQ;aACT;AACD,YAAA,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,EAAE;AACrE,gBAAA,YAAY,CACV,kEAAkE,EAClE,GAAG,CACJ;YACH;AACA,YAAA,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7C,YAAA,MAAM,QAAQ,GAAG;;AAEf,gBAAA,GAAG,IAAI,CAAC,aAAa,CACnB,QAAQ,CAAC,QAAQ,EACjB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CACxC;AACD,gBAAA,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;AAChC,gBAAA,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE;AACtD,gBAAA,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE;aACrD;AACD,YAAA,OAAO,IAAI,CAAC,YAAY,CACtB,OAAO,EACP,KAAK,CAAC,eAAe,EACrB,QAAQ,EACR,OAAO,CACR;AACH,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,aAAa,CAAC,EAAU,EAAA;;QAE5B,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACtC,OAAO,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;AAC1E,QAAA,CAAC,CAAC;;IAEJ;AAEA,IAAA,MAAM,WAAW,GAAA;;QAEf,OAAO,IAAI,CAAC;AACT,aAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;aAC/C,kBAAkB,CAAC,SAAS;AAC5B,aAAA,SAAS,CAAC,sBAAsB,EAAE,aAAa;aAC/C,KAAK,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;aAC7D,QAAQ,CAAC,kCAAkC;aAC3C,QAAQ,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;aACxD,QAAQ,CAAC,IAAI;AACb,aAAA,OAAO,CAAC,YAAY,EAAE,KAAK;AAC3B,aAAA,OAAO,EAAE;;IAEd;IAEA,MAAM,gBAAgB,CAAC,EAAU,EAAA;;QAE/B,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAChC,OAAM,OAAO,KAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,CACvE;;IAEH;IAEA,MAAM,aAAa,CAAC,EAAU,EAAA;;QAE5B,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,OAAO,GAAG,MAAM;AACnB,iBAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,iBAAA,IAAI,CAAC;AACJ,gBAAA,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE;AAC/B,gBAAA,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;AACrB,aAAA,CAAC;AACJ,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,YAAY,CAAC,2CAA2C,EAAE,GAAG,CAAC;YAChE;AACA,YAAA,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI;AAC3B,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,eAAe,CAAC,EAAU,EAAA;;QAE9B,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACnD,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAChE,gBAAA,IAAI,CAAC;AACH,sBAAE,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,mBAAmB,EAAE;AACvD,sBAAE,IAAI;AACR,gBAAA,IAAI,CAAC;AACH,sBAAE,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE;AACxD,sBAAE,IAAI;AACT,aAAA,CAAC;AACF,YAAA,MAAM,kBAAkB,GAAG,OAAO,CAChC,iBAAiB;AACf,gBAAA,iBAAiB,CAAC,oBAAoB,KAAK,IAAI,CAAC,EAAE;AAClD,gBAAA,iBAAiB,CAAC,mBAAmB,KAAK,IAAI,CACjD;AACD,YAAA,MAAM,mBAAmB,GAAG,OAAO,CACjC,kBAAkB;AAChB,gBAAA,kBAAkB,CAAC,mBAAmB,KAAK,IAAI,CAAC,EAAE;AAClD,gBAAA,kBAAkB,CAAC,oBAAoB,KAAK,IAAI,CACnD;YACD,IAAI,iBAAiB,GAAG,KAAK;AAC7B,YAAA,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,kBAAkB,EAAE;AACnD,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;gBAC/B,iBAAiB,GAAG,IAAI;YAC1B;AACA,YAAA,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,mBAAmB,EAAE;AACrD,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;gBAChC,iBAAiB,GAAG,IAAI;YAC1B;YACA,IAAI,iBAAiB,EAAE;AACrB,gBAAA,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE;oBAC1B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;oBAC7C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;AAC/C,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC;oBACzB,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,iBAAA,CAAC;YACJ;YACA,OAAO;gBACL,iBAAiB,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,IAAI;gBAChE,kBAAkB,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,IAAI;aACpE;AACH,QAAA,CAAC,CAAC;;IAEJ;IAEA,MAAM,eAAe,CAAC,EAAU,EAAA;;QAE9B,gBAAgB,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,EAAE,WAAW;;IAEhE;AAEA,IAAA,MAAM,0BAA0B,CAC9B,EAAU,EACV,eAAe,GAAG,KAAK,EAAA;;QAGvB,gBAAgB,CAAC,EAAE,CAAC;QACpB,IAAI,eAAe,EAAE;AACnB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;YACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACnD,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,OAAO,CAAC;QACjE;QACA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAM,OAAO,KAAG;YACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACnD,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,OAAO,CAAC;AACjE,QAAA,CAAC,CAAC;;IAEJ;AAEQ,IAAA,MAAM,8BAA8B,CAC1C,IAA0B,EAC1B,OAAsB,EAAA;;QAGtB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;QAC3E,IAAI,MAAM,GAAG,IAAI;AACjB,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU;QACjC,OAAO,IAAI,EAAE;YACX,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AAC1B,gBAAA,YAAY,CAAC,0CAA0C,EAAE,GAAG,CAAC;YAC/D;AACA,YAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AACtB,YAAA,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;AACpC,gBAAA,KAAK,EAAE;AACL,oBAAA,8BAA8B,EAAE,IAAI;AACpC,oBAAA,YAAY,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;AAChC,iBAAA;AACD,gBAAA,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;AACjC,aAAA,CAAC;AACF,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,YAAY,CACV,0DAA0D,EAC1D,GAAG,CACJ;YACH;AACA,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACnB,OAAO;oBACL,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,oBAAA,MAAM,EACJ,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AACjB,0BAAE;AACF,0BAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;iBAC7C;YACH;AACA,YAAA,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;QACrB;;IAEF;IAEQ,MAAM,6BAA6B,CACzC,OAAsB,EAAA;;QAGtB,MAAM,OAAO,GAAG,MAAM;AACnB,aAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,aAAA,IAAI,CAAC;AACJ,YAAA,KAAK,EAAE,EAAE,8BAA8B,EAAE,IAAI,EAAE;AAC/C,YAAA,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;AAClC,SAAA,CAAC;AACJ,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB;AACzC,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,YAAY,EAAE;gBACvC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;oBACzB,YAAY,CACV,WAAW,KAAK,CAAC,EAAE,CAAA,iDAAA,CAAmD,EACtE,GAAG,CACJ;gBACH;gBACA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YAClC;QACF;QACA,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;AAC/B,YAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU;YACjC,IAAI,OAAO,GAAuB,EAAE;AACpC,YAAA,OAAO,OAAO,KAAK,SAAS,EAAE;AAC5B,gBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACxB,oBAAA,YAAY,CAAC,+CAA+C,EAAE,GAAG,CAAC;gBACpE;AACA,gBAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AACpB,gBAAA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAChC;QACF;;IAEF;IAEQ,MAAM,wBAAwB,CACpC,EAAU,EACV,aAAuB,EACvB,OAA6B,EAC7B,OAAsB,EAAA;;QAGtB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAC7D,OAAO,EACP,OAAO,CACR;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,CACrD;QACD,IACE,aAAa,CAAC,MAAM;aACnB,MAAM,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI;AAC1C,gBAAA,aAAa,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAChE;AACA,YAAA,YAAY,CACV,CAAA,QAAA,EAAW,EAAE,sDAAsD,EACnE,GAAG,CACJ;QACH;;IAEF;AAEA,IAAA,MAAM,oBAAoB,GAAA;;QAExB,OAAO,IAAI,CAAC;aACT,aAAa,CAAC,4BAA4B;aAC1C,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;;IAErC;IAEA,MAAM,gBAAgB,CAAC,IAAY,EAAA;;AAEjC,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;;IAEzD;IAEA,MAAM,iBAAiB,CAAC,IAAY,EAAA;;QAElC,IAAI,CAAC,IAAI,EAAE;YACT,YAAY,CAAC,+BAA+B,CAAC;QAC/C;AACA,QAAA,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;aAChC,aAAa,CAAC,4BAA4B;AAC1C,aAAA,OAAO,CAAC;AACP,YAAA,KAAK,EAAE,EAAE,IAAI,EAAE,IAA8B,EAAE;YAC/C,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;AAC9C,SAAA,CAAC;AACJ,QAAA,OAAO,eAAe,EAAE,OAAO,IAAI,IAAI;;IAEzC;;IAGA,MAAM,wBAAwB,CAC5B,IAAY,EAAA;;QAGZ,IAAI,CAAC,IAAI,EAAE;YACT,YAAY,CAAC,2BAA2B,CAAC;QAC3C;QACA,OAAO,IAAI,CAAC;AACT,aAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,aAAA,OAAO,CAAC;YACP,KAAK,EAAE,EAAE,IAAI,EAAE;AACf,YAAA,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;AACjC,SAAA,CAAC;;IAEN;IAEA,MAAM,gBAAgB,CAAC,GAAW,EAAA;;AAEhC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AACzB,aAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,aAAA,IAAI,CAAC;AACJ,YAAA,KAAK,EAAE;gBACL,EAAE,QAAQ,EAAE,GAAG,EAAE;gBACjB,EAAE,QAAQ,EAAE,GAAG,EAAE;gBACjB,EAAE,aAAa,EAAE,GAAG,EAAE;gBACtB,EAAE,YAAY,EAAE,GAAG,EAAE;AACtB,aAAA;AACD,YAAA,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;AACjC,SAAA,CAAC;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC9B,YAAA,IACE,OAAO,CAAC,MAAM,KAAK,WAAW;AAC9B,gBAAA,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM;AACpE,oBAAA,CAAC,EACH;AACA,gBAAA,OAAO,KAAK;YACd;QACF;AACA,QAAA,OAAO,IAAI;;IAEb;;AAGA,IAAA,MAAM,cAAc,CAClB,EAAU,EACV,aAAqB,EACrB,eAAuB,EAAA;;AAGvB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC;;IAEzE;AAEA,IAAA,MAAM,iBAAiB,CACrB,EAAU,EACV,aAAqB,EACrB,eAAuB,EAAA;;AAGvB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC;;IAE1E;IAEA,MAAM,eAAe,CACnB,EAAU,EACV,aAAqB,EACrB,IAA4B,EAC5B,eAAuB,EAAA;;QAGvB,gBAAgB,CAAC,EAAE,CAAC;AACpB,QAAA,gBAAgB,CAAC,aAAa,EAAE,eAAe,CAAC;QAChD,qBAAqB,CAAC,eAAe,CAAC;QACtC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;YAC3C,YAAY,CAAC,mCAAmC,CAAC;QACnD;AACA,QAAA,IAAI,EAAE,KAAK,aAAa,EAAE;YACxB,YAAY,CAAC,mCAAmC,CAAC;QACnD;AACA,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YACjE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;AACrE,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,EAAE;AACpC,gBAAA,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC;YACrE;AACA,YAAA,MAAM,oBAAoB,GACxB,IAAI,KAAK;AACP,kBAAE,WAAW,CAAC,MAAM,KAAK,WAAW;qBACjC,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;AACxD,kBAAE,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO;AAC7B,oBAAA,WAAW,CAAC,MAAM,KAAK,UAAU;AACnC,oBAAA,IAAI,CAAC,MAAM,KAAK,WAAW;YACjC,IAAI,CAAC,oBAAoB,EAAE;gBACzB,YAAY,CAAC,0DAA0D,CAAC;YAC1E;AAEA,YAAA,MAAM,gBAAgB,GACpB,IAAI,KAAK;kBACL,IAAI,CAAC;AACP,kBAAE,IAAI,CAAC,oBAAoB;AAC/B,YAAA,MAAM,iBAAiB,GACrB,IAAI,KAAK;kBACL,IAAI,CAAC;AACP,kBAAE,IAAI,CAAC,mBAAmB;AAC9B,YAAA,MAAM,mBAAmB,GACvB,IAAI,KAAK;kBACL,WAAW,CAAC;AACd,kBAAE,WAAW,CAAC,mBAAmB;AACrC,YAAA,MAAM,2BAA2B,GAC/B,IAAI,KAAK;kBACL,WAAW,CAAC;AACd,kBAAE,WAAW,CAAC,oBAAoB;AACtC,YAAA,IAAI,iBAAiB,KAAK,IAAI,EAAE;AAC9B,gBAAA,YAAY,CAAC,qDAAqD,EAAE,GAAG,CAAC;YAC1E;YACA,IACE,CAAC,mBAAmB,KAAK,IAAI;AAC3B,gBAAA,mBAAmB,KAAK,IAAI,CAAC,EAAE;gBACjC,2BAA2B,KAAK,IAAI,EACpC;AACA,gBAAA,YAAY,CAAC,sDAAsD,EAAE,GAAG,CAAC;YAC3E;AACA,YAAA,IAAI,gBAAgB,KAAK,WAAW,CAAC,EAAE,EAAE;AACvC,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,cAAc,GAAG;kBACnB,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE;kBACnD,IAAI;YACR,IAAI,cAAc,EAAE;AAClB,gBAAA,MAAM,aAAa,GACjB,IAAI,KAAK;sBACL,cAAc,CAAC;AACjB,sBAAE,cAAc,CAAC,mBAAmB;AACxC,gBAAA,IAAI,aAAa,KAAK,IAAI,CAAC,EAAE,EAAE;AAC7B,oBAAA,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC;gBACrE;AACA,gBAAA,MAAM,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE;oBACzC,IAAI,IAAI,KAAK;AACX,0BAAE,EAAE,oBAAoB,EAAE,IAAI;AAC9B,0BAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AAClC,oBAAA,OAAO,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC;oBACnC,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,iBAAA,CAAC;YACJ;AAEA,YAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,YAAA,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;gBAC/B,IAAI,IAAI,KAAK;AACX,sBAAE,EAAE,mBAAmB,EAAE,WAAW,CAAC,EAAE;sBACrC,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;AAC7C,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC;AACzB,gBAAA,SAAS,EAAE,GAAG;AACf,aAAA,CAAC;AACF,YAAA,MAAM,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE;gBACtC,IAAI,IAAI,KAAK;AACX,sBAAE,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;sBAC/B,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AACrC,gBAAA,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,CAAC;AAChC,gBAAA,SAAS,EAAE,GAAG;AACf,aAAA,CAAC;YACF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;AAC9C,QAAA,CAAC,CAAC;;IAEJ;AAEA,IAAA,MAAM,iBAAiB,CACrB,EAAU,EACV,IAA4B,EAC5B,eAAuB,EAAA;;QAGvB,gBAAgB,CAAC,EAAE,CAAC;QACpB,qBAAqB,CAAC,eAAe,CAAC;QACtC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;YAC3C,YAAY,CAAC,mCAAmC,CAAC;QACnD;AACA,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YACjE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,IAAI,CAAC,MAAM,CACZ;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;AACnD,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,eAAe,EAAE;AACpC,gBAAA,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC;YACrE;AACA,YAAA,MAAM,cAAc,GAClB,IAAI,KAAK;kBACL,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK;AAC7C,kBAAE,IAAI,CAAC,MAAM,KAAK,WAAW;YACjC,IAAI,CAAC,cAAc,EAAE;AACnB,gBAAA,YAAY,CACV,0DAA0D,EAC1D,GAAG,CACJ;YACH;AACA,YAAA,MAAM,aAAa,GACjB,IAAI,KAAK;kBACL,IAAI,CAAC;AACP,kBAAE,IAAI,CAAC,oBAAoB;YAC/B,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;YACrE,IAAI,WAAW,EAAE;AACf,gBAAA,MAAM,mBAAmB,GACvB,IAAI,KAAK;sBACL,WAAW,CAAC;AACd,sBAAE,WAAW,CAAC,mBAAmB;AACrC,gBAAA,IAAI,mBAAmB,KAAK,IAAI,CAAC,EAAE,EAAE;AACnC,oBAAA,YAAY,CAAC,uCAAuC,EAAE,GAAG,CAAC;gBAC5D;AACA,gBAAA,MAAM,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE;oBACtC,IAAI,IAAI,KAAK;AACX,0BAAE,EAAE,oBAAoB,EAAE,IAAI;AAC9B,0BAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AAClC,oBAAA,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,CAAC;oBAChC,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;gBAC/B,IAAI,IAAI,KAAK;AACX,sBAAE,EAAE,mBAAmB,EAAE,IAAI;AAC7B,sBAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AACnC,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,aAAA,CAAC;YACF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;AAC9C,QAAA,CAAC,CAAC;;IAEJ;IAEQ,MAAM,iBAAiB,CAC7B,EAAU,EACV,aAAqB,EACrB,eAAuB,EACvB,MAAe,EAAA;;QAGf,gBAAgB,CAAC,EAAE,CAAC;AACpB,QAAA,gBAAgB,CAAC,aAAa,EAAE,eAAe,CAAC;QAChD,qBAAqB,CAAC,eAAe,CAAC;AACtC,QAAA,IAAI,EAAE,KAAK,aAAa,EAAE;YACxB,YAAY,CAAC,iCAAiC,CAAC;QACjD;AACA,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC;YACtD,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC;YACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;AACxD,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,IAAI,EAAE;YACzC,QAAQ,CAAC,cAAc,GAAG;AACxB,kBAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,aAAa,CAAC,CAAC;AACtC,kBAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,aAAa,CAAC;AAClD,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC;AACvE,QAAA,CAAC,CAAC;;IAEJ;AAEQ,IAAA,MAAM,cAAc,CAC1B,EAAU,EACV,OAAsB,EAAA;;QAGtB,MAAM,OAAO,GAAG,MAAM;AACnB,aAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,aAAA,OAAO,CAAC;YACP,KAAK,EAAE,EAAE,EAAE,EAAE;AACb,YAAA,SAAS,EAAE;AACT,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,eAAe,EAAE,IAAI;AACtB,aAAA;AACF,SAAA,CAAC;QACJ,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,YAAY,CAAC,CAAA,QAAA,EAAW,EAAE,kBAAkB,EAAE,GAAG,CAAC;QACpD;AACA,QAAA,OAAO,OAAO;;IAEhB;IAEQ,aAAa,CACnB,KAAoC,EACpC,OAA8B,EAAA;AAE9B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,IAAI,IAAI,kBAAkB,CAAC,MAAM;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE,KAAK;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,IAAI;QACxC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;YAC7C,YAAY,CAAC,8BAA8B,CAAC;QAC9C;AACA,QAAA,MAAM,WAAW,GACf,KAAK,CAAC,WAAW,KAAK;AACpB,eAAG,OAAO,EAAE,WAAW,IAAI,IAAI;AAC/B,cAAE,KAAK,CAAC,WAAW;QACvB,OAAO;YACL,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI;AACrE,YAAA,QAAQ,EACN,KAAK,CAAC,QAAQ,KAAK;AACjB,mBAAG,OAAO,EAAE,QAAQ,IAAI,IAAI;kBAC1B,KAAK,CAAC,QAAQ;AACpB,YAAA,QAAQ,EACN,KAAK,CAAC,QAAQ,KAAK;AACjB,mBAAG,OAAO,EAAE,QAAQ,IAAI,IAAI;kBAC1B,KAAK,CAAC,QAAQ;AACpB,YAAA,aAAa,EACX,KAAK,CAAC,aAAa,KAAK;AACtB,mBAAG,OAAO,EAAE,aAAa,IAAI,IAAI;kBAC/B,KAAK,CAAC,aAAa;AACzB,YAAA,YAAY,EACV,KAAK,CAAC,YAAY,KAAK;AACrB,mBAAG,OAAO,EAAE,YAAY,IAAI,IAAI;kBAC9B,KAAK,CAAC,YAAY;AACxB,YAAA,OAAO,EACL,KAAK,CAAC,OAAO,KAAK;AAChB,mBAAG,OAAO,EAAE,OAAO,IAAI,IAAI;kBACzB,KAAK,CAAC,OAAO;AACnB,YAAA,UAAU,EACR,KAAK,CAAC,UAAU,KAAK;AACnB,mBAAG,OAAO,EAAE,UAAU,IAAI,IAAI;kBAC5B,KAAK,CAAC,UAAU;AACtB,YAAA,YAAY,EACV,KAAK,CAAC,YAAY,KAAK;AACrB,mBAAG,OAAO,EAAE,YAAY,IAAI,IAAI;kBAC9B,KAAK,CAAC,YAAY;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO,EAAE,MAAM,IAAI,OAAO;AAClD,YAAA,WAAW,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC;YAChE,8BAA8B,EAC5B,KAAK,CAAC,8BAA8B;AACpC,gBAAA,OAAO,EAAE,8BAA8B;gBACvC,KAAK;YACP,6BAA6B,EAC3B,KAAK,CAAC,6BAA6B;AACnC,gBAAA,OAAO,EAAE,6BAA6B;gBACtC,KAAK;SACR;IACH;AAEQ,IAAA,MAAM,UAAU,CACtB,OAA6B,EAC7B,OAAsB,EAAA;;QAGtB,OAAO;YACL,GAAG,IAAI,CAAC,aAAa,CAAC;AACpB,gBAAA,GAAG,OAAO;gBACV,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;aAC3C,CAAC;AACF,YAAA,MAAM,EAAE,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,CACvD,OAAO,CAAC,EAAE,EACV,OAAO,CACR;AACD,YAAA,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AACzD,YAAA,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC;SACpE;;IAEH;AAEQ,IAAA,aAAa,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,UAAU,EAAE;AACzE,YAAA,YAAY,CAAC,CAAA,mCAAA,EAAsC,MAAM,GAAG,EAAE,GAAG,CAAC;QACpE;AACA,QAAA,OAAO,MAAM;IACf;IAEQ,MAAM,kBAAkB,CAC9B,MAA4B,EAC5B,MAAgB,EAChB,aAAuB,EACvB,OAAsB,EAAA;;AAGtB,QAAA,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAClD,MAAM,CAAC,UAAU,EACjB,OAAO,CACR;QACH;QACA,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;QAC5C,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC;;IAEvD;AAEQ,IAAA,MAAM,kBAAkB,CAC9B,aAAuB,EACvB,OAAsB,EAAA;;AAGtB,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACzB;QACF;QACA,MAAM,WAAW,GAAG,MAAM;aACvB,aAAa,CAAuB,oBAAoB;aACxD,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;AACpC,QAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACtE,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7D,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,YAAA,YAAY,CAAC,CAAA,WAAA,EAAc,SAAS,kBAAkB,EAAE,GAAG,CAAC;QAC9D;;IAEF;AAEQ,IAAA,MAAM,oBAAoB,CAChC,IAAY,EACZ,OAAsB,EACtB,SAAkB,EAAA;;QAGlB,MAAM,QAAQ,GAAG,MAAM;AACpB,aAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,aAAA,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;QACtB,IAAI,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;AACzC,YAAA,YAAY,CAAC,CAAA,MAAA,EAAS,IAAI,sBAAsB,EAAE,GAAG,CAAC;QACxD;;IAEF;IAEQ,MAAM,mBAAmB,CAC/B,EAAU,EACV,cAAwB,EACxB,WAAqB,EACrB,OAAsB,EAAA;;AAGtB,QAAA,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC/B,YAAY,CAAC,iCAAiC,CAAC;QACjD;QACA,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;AAC3E,QAAA,IAAI,cAAc,CAAC,MAAM,EAAE;AACzB,YAAA,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;AACjE,YAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,YAAA,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtE,YAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,gBAAA,YAAY,CAAC,CAAA,QAAA,EAAW,SAAS,kBAAkB,EAAE,GAAG,CAAC;YAC3D;QACF;AACA,QAAA,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CACjC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxC;AACD,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAChC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC3C;AACD,QAAA,KAAK,MAAM,aAAa,IAAI,KAAK,EAAE;AACjC,YAAA,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;gBACpC,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE;AAC9C,gBAAA,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;AACrB,aAAA,CAAC;AACF,YAAA,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC5C,gBAAA,YAAY,CAAC,2CAA2C,EAAE,GAAG,CAAC;YAChE;AACA,YAAA,IAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE;AAChE,gBAAA,YAAY,CAAC,sDAAsD,EAAE,GAAG,CAAC;YAC3E;QACF;QACA,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAClC,YAAA,MAAM;AACH,iBAAA,kBAAkB;iBAClB,QAAQ,CAAC,cAAc;iBACvB,EAAE,CAAC,EAAE;AACL,iBAAA,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;QACjC;;IAEF;AAEQ,IAAA,MAAM,qBAAqB,CACjC,OAAe,EACf,QAAgB,EAChB,OAAsB,EAAA;;QAGtB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;AAC3E,QAAA,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU;AACjC,QAAA,OAAO,OAAO,CAAC,MAAM,EAAE;AACrB,YAAA,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;AAC/B,YAAA,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B;YACF;AACA,YAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;AAC1B,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC1B;YACF;AACA,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AACtB,YAAA,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;AACvC,gBAAA,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;AACxB,gBAAA,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;AAClC,aAAA,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE;AACA,QAAA,OAAO,KAAK;;IAEd;IAEQ,MAAM,kBAAkB,CAC9B,EAAU,EACV,aAAuB,EACvB,WAAqB,EACrB,OAAsB,EAAA;;AAGtB,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAChC,YAAY,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CACpD;AACD,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAChC,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CACtD;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAClC,YAAA,MAAM;AACH,iBAAA,aAAa,CAAuB,IAAI,CAAC,MAAM;AAC/C,iBAAA,kBAAkB;iBAClB,QAAQ,CAAC,aAAa;iBACtB,EAAE,CAAC,EAAE;AACL,iBAAA,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;QACjC;;IAEF;AAEQ,IAAA,MAAM,sBAAsB,CAClC,SAAiB,EACjB,IAAmC,EACnC,OAAsB,EAAA;;QAGtB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;AACzD,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,OAAO,EAAE;AACX,gBAAA,OAAO,CAAC,SAAS,GAAG,IAAI;AACxB,gBAAA,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAChC;YACA;QACF;QACA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,YAAY,CAAC,CAAA,kBAAA,EAAqB,IAAI,sBAAsB,EAAE,GAAG,CAAC;QACpE;AACA,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;AAC/D,YAAA,YAAY,CAAC,CAAA,kBAAA,EAAqB,IAAI,sBAAsB,EAAE,GAAG,CAAC;QACpE;QACA,IAAI,OAAO,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;YAC7B;QACF;QACA,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,SAAS,GAAG,IAAI;AACxB,YAAA,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAChC;AACA,QAAA,MAAM,CAAC,SAAS,GAAG,SAAS;AAC5B,QAAA,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;;IAE/B;AAEQ,IAAA,MAAM,YAAY,CACxB,OAA6B,EAC7B,eAAuB,EACvB,QAAgC,EAChC,OAAsB,EACtB,eAA+C,EAC/C,mBAAmB,GAAG,IAAI,EAAA;;AAG1B,QAAA,IAAI,OAAO,CAAC,OAAO,KAAK,eAAe,EAAE;AACvC,YAAA,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC;QACrE;AACA,QAAA,MAAM,IAAI,CAAC,wBAAwB,CACjC,OAAO,CAAC,EAAE,EACV,QAAQ,CAAC,aAAa,EACtB,OAAO,EACP,OAAO,CACR;AACD,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAC3B,QAAQ,EACR,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,aAAa,EACtB,OAAO,CACR;AACD,QAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;;AAEnE,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,cAAc,CACxE,OAAO,CAAC,EAAE,EACV,OAAO,CACR;AACD,QAAA,IACE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,EACtE;YACA,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,CACvD,OAAO,EACP,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EACvC,OAAO,CACR;QACH;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAuB,IAAI,CAAC,MAAM,CAAC;AAC3E,QAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CACpC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAC5C,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CACnE;AACD,QAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE;AACzB,YAAA,YAAY,CAAC,gDAAgD,EAAE,GAAG,CAAC;QACrE;AACA,QAAA,MAAM,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAChD,OAAO,CAAC,EAAE,EACV,QAAQ,CAAC,MAAM,EACf,OAAO,CACR;AACD,QAAA,MAAM,IAAI,CAAC,mBAAmB,CAC5B,OAAO,CAAC,EAAE,EACV,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,EAC3C,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,EACzC,OAAO,CACR;AACD,QAAA,MAAM,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC;AACjD,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAC3B,OAAO,CAAC,EAAE,EACV,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,EAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,EACpD,OAAO,CACR;AACD,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AACjC,YAAA,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC;QACzE;AACA,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;AAC9D,QAAA,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,CACvD,OAAO,EACP;AACE,YAAA,GAAG,MAAM;YACT,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,YAAA,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AACzD,YAAA,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC;SACpE,EACD,OAAO,CACR;QACD,IAAI,mBAAmB,EAAE;YACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAC1D,OAAO,EACP,OAAO,CACR;YACD,IAAI,QAAQ,CAAC,6BAA6B,IAAI,UAAU,CAAC,MAAM,EAAE;gBAC/D,MAAM,IAAI,CAAC,iCAAiC,CAC1C,OAAO,CAAC,EAAE,EACV,QAAQ,CAAC,MAAM,EACf,OAAO,EACP,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CACtB;YACH;QACF;AACA,QAAA,OAAO,OAAO;;IAEhB;IAEQ,MAAM,iCAAiC,CAC7C,QAAgB,EAChB,MAAsC,EACtC,OAAsB,EACtB,OAAoB,EAAA;;QAGpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3D,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE;YACnD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;AAC/B,gBAAA,YAAY,CACV,sDAAsD,EACtD,GAAG,CACJ;YACH;AACA,YAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AAC3B,YAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC;AAChE,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;gBAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;AACtD,gBAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM;AACtC,gBAAA,QAAQ,CAAC,MAAM,GAAG,MAAM;gBACxB,IAAI,MAAM,KAAK,WAAW,IAAI,cAAc,KAAK,WAAW,EAAE;AAC5D,oBAAA,QAAQ,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE;gBACnC;AACA,gBAAA,MAAM,IAAI,CAAC,YAAY,CACrB,KAAK,EACL,KAAK,CAAC,OAAO,EACb,QAAQ,EACR,OAAO,EACP,SAAS,EACT,KAAK,CACN;YACH;AACA,YAAA,MAAM,IAAI,CAAC,iCAAiC,CAC1C,KAAK,CAAC,EAAE,EACR,MAAM,EACN,OAAO,EACP,OAAO,CACR;QACH;;IAEF;AAEA;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAhgDW,wBAAwB,GAAA,UAAA,CAAA;AAHpC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,0BAA0B;KACtC;AACY,CAAA,EAAA,wBAAwB,CAigDpC;;ACxhDM,IAAM,iCAAiC,GAAvC,MAAM,iCAAkC,SAAQ,cAAiD,CAAA;;AAItG,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEX,CAAA,EAAA,iCAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKZ,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;;;;AAExB,CAAA,EAAA,iCAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;;;;AAEd,CAAA,EAAA,iCAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;AAK1B,UAAA,CAAA;AAFC,IAAA,gBAAgB;;;8BAEL,IAAI;AAAC,CAAA,EAAA,iCAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAnBN,iCAAiC,GAAA,UAAA,CAAA;AAP7C,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,mCAAmC;AAC9C,QAAA,WAAW,EAAE,IAAI;KAClB;;;IAEA,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;AAEhC,CAAA,EAAA,iCAAiC,CAoB7C;;ACpBM,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,cAA+C,CAAA;;AAIlG,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEX,CAAA,EAAA,+BAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKZ,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEX,CAAA,EAAA,+BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,gBAAgB;;;8BAEL,IAAI;AAAC,CAAA,EAAA,+BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAdN,+BAA+B,GAAA,UAAA,CAAA;AAP3C,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,iCAAiC;AAC5C,QAAA,WAAW,EAAE,IAAI;KAClB;;;IAEA,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;AAEtB,CAAA,EAAA,+BAA+B,CAe3C;;ACfM,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,cAA8C,CAAA;;AAIhG,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEX,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKZ,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAER,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKnB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEX,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,gBAAgB;;;8BAEL,IAAI;AAAC,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAnBN,8BAA8B,GAAA,UAAA,CAAA;AAP1C,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,gCAAgC;AAC3C,QAAA,WAAW,EAAE,IAAI;KAClB;;;AAEA,IAAA,KAAK,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;AAEnC,CAAA,EAAA,8BAA8B,CAoB1C;;ACpBM,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,cAAwC,CAAA;;AAIpF,UAAA,CAAA;AAFC,IAAA,sBAAsB;;;;AAEX,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAKZ,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAER,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKnB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEX,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;;;;AAEZ,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAKf,UAAA,CAAA;AAFC,IAAA,gBAAgB;;;8BAEL,IAAI;AAAC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAxBN,wBAAwB,GAAA,UAAA,CAAA;AAPpC,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,WAAW,EAAE,IAAI;KAClB;;;AAEA,IAAA,KAAK,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;AAEnC,CAAA,EAAA,wBAAwB,CAyBpC;;ACoBM,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,sBAA4C,CAAA;AAAnF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAsC,MACxD,oBAAoB;AAEL,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAC5D,qBAAqB,CACtB;AAEgB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAChE,yBAAyB,CAC1B;AAEgB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;IAugB1E;AArgBU,IAAA,UAAU,CAAI,MAAqB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;IAC1D;AAEQ,IAAA,MAAM,oBAAoB,CAChC,GAAiF,EACjF,GAAiF,EACjF,CAA6E,EAAA;;AAG7E,QAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AAChD,YAAA,eAAe,CAAC;AACd,gBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC;AAClD,gBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,wCAAwC,CAAC;AAC7D,aAAA,CAAC;QACJ;AACA,QAAA,OAAO,MAAM;;IAEf;AAEQ,IAAA,MAAM,iBAAiB,CAC7B,GAAiF,EACjF,CAA6E,EAAA;;QAI7E,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,CAAC;AACjE,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAC7D,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,SAAS,CACd;AACD,QAAA,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE;AACpC,YAAA,eAAe,CAAC;AACd,gBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,gBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC;AACrD,aAAA,CAAC;QACJ;;IAEF;AAGA,IAAA,WAAW,CACW,SAAiB,EAAA;;QAGrC,OAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAI;AAC/B,YAAA,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACxC,gBAAA,OAAO,EAAE;YACX;YACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;gBAC/D,KAAK,EAAE,EAAE,EAAE,EAAE;AACd,aAAA,CAAC;YACF,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,OAAO,EAAE;YACX;AACA,YAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;gBAClC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;AAC7C,gBAAA,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;AAC5B,aAAA,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;AACzD,QAAA,CAAC;;IAEH;AAGA,IAAA,aAAa,CACH,KAAyB,EAAA;;QAGjC,OAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;YAC1C,MAAM,IAAI,GAAG,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;AACrE,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAC/D,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC;AACjD,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC;AAC5D,iBAAA,CAAC;YACJ;AACA,YAAA,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;AACrB,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC;AACjD,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,wCAAwC,CAAC;AAC7D,iBAAA,CAAC;YACJ;YAEA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAC/D,gBAAA,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;AACzB,aAAA,CAAC;YACF,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;AAC9C,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAEnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CACvC,+BAA+B,CAChC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;YAChC,IAAI,WAAW,EAAE;AACf,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,yCAAyC,CAAC;AAC9D,iBAAA,CAAC;YACJ;AAEA,YAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAC1C,iCAAiC,CAClC,CAAC,IAAI,EAAE;AACR,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE;AACpC,YAAA,IACE,cAAc,CAAC,IAAI,CAAC,MAAM,IACxB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAC5C,EACD;AACA,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC;AACjD,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,iDAAiD,CAAC;AACtE,iBAAA,CAAC;YACJ;AAEA,YAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE;YAC3B,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;YACnC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACxC,YAAA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;iBAC9B,kBAAkB,CAAC,SAAS;AAC5B,iBAAA,KAAK,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE;AAC5C,iBAAA,QAAQ,CAAC,gCAAgC,EAAE,EAAE,QAAQ,EAAE;AACvD,iBAAA,QAAQ,CAAC,+BAA+B,EAAE,EAAE,QAAQ,EAAE;AACtD,iBAAA,QAAQ,EAAE;AACb,YAAA,IAAI,aAAa,IAAI,EAAE,EAAE;AACvB,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAChB,oDAAoD,CACrD;AACF,iBAAA,CAAC;YACJ;AAEA,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAChC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;gBACb,SAAS;AACT,gBAAA,eAAe,EAAE,IAAI;gBACrB,MAAM;gBACN,IAAI;AACJ,gBAAA,MAAM,EAAE,WAAW;AACpB,aAAA,CAAC,CACH;AACD,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9D,QAAA,CAAC;;IAEH;AAGA,IAAA,aAAa,CAAc,SAAiB,EAAA;;QAE1C,OAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3D,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;AACjD,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAC7D,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,SAAS,CACd;AACD,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE;AACjE,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,6CAA6C,CAAC;AAClE,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;YACrE,MAAM,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC;gBAC3D,SAAS;AACV,aAAA,CAAC;YACF,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7B,YAAA,OAAO,IAAI;AACb,QAAA,CAAC;;IAEH;AAGA,IAAA,WAAW,CAAS,KAAgB,EAAA;;QAElC,OAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3D,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC/C,iBAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,EACzC;AACA,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC;AACjD,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;AACnD,iBAAA,CAAC;YACJ;YACA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AACzC,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;AACjD,iBAAA,CAAC;YACJ;YACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAC/D,gBAAA,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE;AACjC,aAAA,CAAC;YACF,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;AAC9C,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;AACvD,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;YACtE,IAAI,QAAQ,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;AACnC,gBAAA,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC9B;iBAAO,IAAI,QAAQ,EAAE;AACnB,gBAAA,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AAC5B,gBAAA,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC5B;iBAAO;gBACL,MAAM,KAAK,CAAC,IAAI,CACd,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CACxD;YACH;AACA,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9D,QAAA,CAAC;;IAEH;AAGA,IAAA,UAAU,CAAoB,SAAiB,EAAA;;QAE7C,OAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAI;AAC/B,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3D,YAAA,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACxC,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC;AACjD,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;AACnD,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;AACjD,iBAAA,CAAC;YACJ;YACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAC/D,gBAAA,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE;AACjC,aAAA,CAAC;YACF,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;AAC9C,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC;AAC/D,YAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;AACrC,gBAAA,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE;AACjC,aAAA,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/D;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC;;IAEH;IAGA,qBAAqB,CACE,UAAA,GAAa,CAAC,EAChB,QAAA,GAAW,EAAE,EACnB,EAAW,EACT,IAAa,EACX,MAAe,EAAA;;QAGhC,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;YAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;AACpC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC;AACnD,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;gBACd,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AACnC,gBAAA,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE;AACjC,oBAAA,EAAE,EAAE,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;AACtE,iBAAA,CAAC;YACJ;AACA,YAAA,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE;AAChB,gBAAA,KAAK,CAAC,QAAQ,CAAC,gCAAgC,EAAE;oBAC/C,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG;AACvC,iBAAA,CAAC;YACJ;AACA,YAAA,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE;gBAClB;AACG,qBAAA,QAAQ,CACP,qBAAqB,EACrB,aAAa,EACb,iCAAiC;AAElC,qBAAA,QAAQ,CACP,yFAAyF,EACzF,EAAE,MAAM,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA,CAAA,CAAG,EAAE,CAC/C;YACL;AACA,YAAA,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;AAC1C,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACxC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;YACvD,OAAO;AACL,gBAAA,KAAK,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvE,KAAK;aACN;AACH,QAAA,CAAC;;IAEH;IAGA,eAAe,GAAA;;QAEb,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;YAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC;AAC3D,gBAAA,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;AAC7B,aAAA,CAAC;AACJ,QAAA,CAAC;;IAEH;AAGA,IAAA,cAAc,CAAS,KAAuB,EAAA;;QAE5C,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;YAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;AACpC,YAAA,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AAC7B,gBAAA,MAAM,IAAI,CAAC;AACX,gBAAA,OAAO,KAAK,EAAE,OAAO,KAAK,SAAS,EACnC;AACA,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC;AACjD,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAChB,kDAAkD,CACnD;AACF,iBAAA,CAAC;YACJ;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC;AAChE,oBAAA,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;AACtB,iBAAA,CAAC;gBACF,IAAI,CAAC,IAAI,EAAE;AACT,oBAAA,eAAe,CAAC;AACd,wBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,wBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;AAC9C,qBAAA,CAAC;gBACJ;YACF;YACA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC;AACrE,YAAA,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;AAClE,YAAA,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE;AAC9B,gBAAA,MAAM,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D;AAAO,iBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE;AACrC,gBAAA,MAAM,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;YACrC;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC;;IAEH;IAGA,iBAAiB,GAAA;;QAEf,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;YAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC;AAC7D,gBAAA,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AACzB,aAAA,CAAC;AACJ,QAAA,CAAC;;IAEH;AAGA,IAAA,gBAAgB,CACE,MAAc,EAAA;;QAG9B,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;YAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;YACpC,MAAM,gBAAgB,GACpB,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;AAC/D,YAAA,MAAM,aAAa,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACrE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,GAAG,EAAE;AAChD,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC;AACjD,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAChB,mDAAmD,CACpD;AACF,iBAAA,CAAC;YACJ;YACA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,iCAAiC,CAAC;AAClE,YAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,CAAC;YACvE,IAAI,QAAQ,EAAE;AACZ,gBAAA,OAAO,QAAQ;YACjB;AACA,YAAA,OAAO,OAAO,CAAC,IAAI,CACjB,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAC5D;AACH,QAAA,CAAC;;IAEH;AAGA,IAAA,mBAAmB,CAAc,EAAU,EAAA;;QAEzC,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;YAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAClC,iCAAiC,CAClC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,eAAe,CAAC;AACd,oBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC;AACxD,iBAAA,CAAC;YACJ;YACA,MAAM,IAAI,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACvE,YAAA,OAAO,IAAI;AACb,QAAA,CAAC;;IAEH;IAEQ,MAAM,qBAAqB,CACjC,IAA0B,EAC1B,GAAiF,EACjF,GAAiF,EACjF,CAA6E,EAAA;;AAG7E,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACjE,IAAI,CAAC,EAAE,EACP,IAAI,CACL;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QACxE,IAAI,QAAQ,EAAE;YACZ;QACF;AACA,QAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtE,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAC7D,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,SAAS,CACd;QACD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;QAC3D,IACE,CAAC,OAAO,EAAE,WAAW;AACrB,YAAA,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EACrE;AACA,YAAA,eAAe,CAAC;AACd,gBAAA,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;AAC/C,gBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC;AAC3D,aAAA,CAAC;QACJ;;IAEF;AAEQ,IAAA,MAAM,kBAAkB,CAC9B,QAAgC,EAChC,aAAqB,EAAA;;QAGrB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC;AACxE,QAAA,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,OAAM,OAAO,KAAG;AAC3B,YAAA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACrD,gBAAA,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACzD,gBAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AAC3D,gBAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAC5C,oBAAA,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE;iBACjC,CAAC;AACF,gBAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC;AAC7C,oBAAA,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE;iBAC9B,CAAC;AACH,aAAA,CAAC;AACF,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM;AAC7D,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;YAChE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,oBAAoB,EAAE,EAAE,OAAO,EAAE;gBACxD,OAAO;gBACP,SAAS;gBACT,SAAS,EAAE,OAAO,GAAG,SAAS;gBAC9B,WAAW,EAAE,OAAO,CAAC,MAAM;AAC3B,gBAAA,eAAe,EACb,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,EAAE,KAAK,IAAI,CAAC;AAC/D,gBAAA,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAC/B,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,CAC1C;AACD,gBAAA,SAAS,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;AAC5B,gBAAA,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AAC1B,gBAAA,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAA,MAAA,EAAS,OAAO,CAAC,MAAM,CAAA,CAAE;AAChE,aAAA,CAAoB;QACvB,CAAC,CAAC,CACH;;IAEH;;AAzdA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,WAAW,CAAC,CAAA;;;;AAuBpB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;IAEJ,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAuFR,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AACM,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AA6BzB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;IACM,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AA8ClB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,CAAA;;;;AAsC5B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,YAAY,CAAC,CAAA;AACnB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;AACjB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;AACb,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;;;;AAwCjB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;;;;AAUL,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;IACS,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAsCrB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;;;;AAUL,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,CAAA;;;;AA0BhB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AACY,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAiB/B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,IAAA,CAAA;AAzcU,wBAAwB,GAAA,UAAA,CAAA;AAhBpC,IAAA,cAAc,CAA2B;AACxC,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,cAAc,EAAE;YACd,aAAa;YACb,eAAe;YACf,eAAe;YACf,aAAa;YACb,YAAY;YACZ,uBAAuB;YACvB,iBAAiB;YACjB,gBAAgB;YAChB,mBAAmB;YACnB,kBAAkB;YAClB,qBAAqB;AACtB,SAAA;KACF;AACY,CAAA,EAAA,wBAAwB,CAmhBpC;;AC3kBD;AAKO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAwC,CAAA;AAA/E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAsC,MAAM,oBAAoB;IAetF;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,wBAAwB,GAAA,UAAA,CAAA;AAHpC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,0BAA0B;KACtC;AACY,CAAA,EAAA,wBAAwB,CAgBpC;;ACtBD;AAQO,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,gBAAgB,CAAA;8GAA/C,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;AAAtB,sBAAsB,GAAA,UAAA,CAAA;AANlC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,wBAAwB;KACpC;;AAIY,CAAA,EAAA,sBAAsB,CAIlC;2FAJY,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAFlC;;;ACPD;AAKO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAkB,CAAA;;AAAnD,wBAAwB,GAAA,UAAA,CAAA;AAHpC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,0BAA0B;KACtC;AACY,CAAA,EAAA,wBAAwB,CAA8B;;ACJnE;AAMO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAA2B,CAAA;AAAlE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC;IAItE;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,oBAAoB;IAC7B;;AAJW,wBAAwB,GAAA,UAAA,CAAA;AAJpC,IAAA,cAAc,CAA2B;AACxC,QAAA,SAAS,EAAE,0BAA0B;;KAEtC;AACY,CAAA,EAAA,wBAAwB,CAKpC;;ACfD;AAaA;MAEa,6BAA6B,GAAG,aAAa,CAAC,OAAO;AAChE,IAAA,WAAW,EAAE,+BAA+B;AAC5C,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;AAC7B,IAAA,QAAQ,EAAE;QACR,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,+BAA+B;QAC/B,iCAAiC;AAClC,KAAA;IACD,WAAW,EAAE,EAAE,wBAAwB,EAAE;IACzC,YAAY,EAAE,EAAE,wBAAwB,EAAE;IAC1C,SAAS,EAAE,EAAE,sBAAsB,EAAE;IACrC,WAAW,EAAE,EAAE,wBAAwB,EAAE;IACzC,WAAW,EAAE,EAAE,wBAAwB,EAAE;AAC1C,CAAA,CAAC;;ACzBF;AAMO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,sBAAoD,CAAA;AAAnG,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA8C,MAChE,4BAA4B;AAE9B,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,CAAC,gBAAgB,CACtD,gCAAgC,CACjC;IACH;;AAPa,gCAAgC,GAAA,UAAA,CAAA;AAJ5C,IAAA,cAAc,CAAmC;AAChD,QAAA,SAAS,EAAE,kCAAkC;AAC7C,QAAA,cAAc,EAAE,EAAE;KACnB;AACY,CAAA,EAAA,gCAAgC,CAO5C;;ACfD;AAQO,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,gBAAgB,CAAA;8GAAvD,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA9B,8BAA8B,EAAA,CAAA,CAAA;;AAA9B,8BAA8B,GAAA,UAAA,CAAA;AAN1C,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,gCAAgC;KAC5C;;AAIY,CAAA,EAAA,8BAA8B,CAI1C;2FAJY,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAF1C;;;ACPD;AAKO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,kBAAkB,CAAA;;AAA3D,gCAAgC,GAAA,UAAA,CAAA;AAH5C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,kCAAkC;KAC9C;AACY,CAAA,EAAA,gCAAgC,CAA8B;;ACJ3E;AAMO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,2BAA2B,CAAA;AAA1E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,CAAC,cAAc,CAAC,8BAA8B,CAAC;IAItF;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,4BAA4B;IACrC;;AAJW,gCAAgC,GAAA,UAAA,CAAA;AAJ5C,IAAA,cAAc,CAAmC;AAChD,QAAA,SAAS,EAAE,kCAAkC;;KAE9C;AACY,CAAA,EAAA,gCAAgC,CAK5C;;ACfD;AASA;MAEa,qCAAqC,GAAG,aAAa,CAAC,OAAO;AACxE,IAAA,WAAW,EAAE,uCAAuC;AACpD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,4BAA4B,EAAE;IAC1C,WAAW,EAAE,EAAE,gCAAgC,EAAE;IACjD,YAAY,EAAE,EAAE,gCAAgC,EAAE;IAClD,SAAS,EAAE,EAAE,8BAA8B,EAAE;IAC7C,WAAW,EAAE,EAAE,gCAAgC,EAAE;IACjD,WAAW,EAAE,EAAE,gCAAgC,EAAE;AAClD,CAAA,CAAC;;ACfF;AAMO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,sBAA+C,CAAA;AAAzF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAyC,MAC3D,uBAAuB;AAEzB,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CACjD,2BAA2B,CAC5B;IACH;;AAPa,2BAA2B,GAAA,UAAA,CAAA;AAJvC,IAAA,cAAc,CAA8B;AAC3C,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,cAAc,EAAE,EAAE;KACnB;AACY,CAAA,EAAA,2BAA2B,CAOvC;;ACfD;AAQO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,gBAAgB,CAAA;8GAAlD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA;;AAAzB,yBAAyB,GAAA,UAAA,CAAA;AANrC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,2BAA2B;KACvC;;AAIY,CAAA,EAAA,yBAAyB,CAIrC;2FAJY,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAFrC;;;ACPD;AAKO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,kBAAkB,CAAA;;AAAtD,2BAA2B,GAAA,UAAA,CAAA;AAHvC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,6BAA6B;KACzC;AACY,CAAA,EAAA,2BAA2B,CAA8B;;ACJtE;AAMO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,2BAA2B,CAAA;AAArE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC;IAI5E;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,uBAAuB;IAChC;;AAJW,2BAA2B,GAAA,UAAA,CAAA;AAJvC,IAAA,cAAc,CAA8B;AAC3C,QAAA,SAAS,EAAE,6BAA6B;;KAEzC;AACY,CAAA,EAAA,2BAA2B,CAKvC;;ACfD;AASA;MAEa,gCAAgC,GAAG,aAAa,CAAC,OAAO;AACnE,IAAA,WAAW,EAAE,kCAAkC;AAC/C,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,uBAAuB,EAAE;IACrC,WAAW,EAAE,EAAE,2BAA2B,EAAE;IAC5C,YAAY,EAAE,EAAE,2BAA2B,EAAE;IAC7C,SAAS,EAAE,EAAE,yBAAyB,EAAE;IACxC,WAAW,EAAE,EAAE,2BAA2B,EAAE;IAC5C,WAAW,EAAE,EAAE,2BAA2B,EAAE;AAC7C,CAAA,CAAC;;;ACVF;AAMO,IAAM,oBAAoB,GAAA,sBAAA,GAA1B,MAAM,oBAAqB,SAAQ,sBAAwC,CAAA;AAA3E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAkC,MAAM,gBAAgB;AAE5E,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AAEjD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAEvD,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;;IAoD1E;IAlDY,MAAM,iBAAiB,CAAC,EAChC,GAAG,EACH,GAAG,EACH,CAAC,GACiE,EAAA;;;;;;;AAOlE,QAAA,QAAQ,KAAK,CAAC;IAChB;IAGA,OAAO,CACQ,EAAiB,EACtB,KAA4B,EAAA;;AAGpC,QAAA,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,KAAK,CAAC;;IAEnE;AAGA,IAAA,SAAS,CAAc,EAAU,EAAA;;QAE/B,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;;IAEtD;;AAGA;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,EAAE;YAC1D,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,SAAS,yBAAyB,CAAC,sBAAoB,CAAC;sBAC3E,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAjCA,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACX,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAKR,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AACE,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAIrB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAOD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAzDU,oBAAoB,GAAA,sBAAA,GAAA,UAAA,CAAA;AAJhC,IAAA,cAAc,CAAuB;AACpC,QAAA,SAAS,EAAE,sBAAsB;AACjC,QAAA,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;KACnD;AACY,CAAA,EAAA,oBAAoB,CA2DhC;;ACxED;AAQO,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAgB,CAAA;8GAA3C,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAlB,kBAAkB,EAAA,CAAA,CAAA;;AAAlB,kBAAkB,GAAA,UAAA,CAAA;AAN9B,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,oBAAoB;KAChC;;AAIY,CAAA,EAAA,kBAAkB,CAI9B;2FAJY,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAF9B;;;ACPD;AAKO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,kBAAkB,CAAA;;AAA/C,oBAAoB,GAAA,UAAA,CAAA;AAHhC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,sBAAsB;KAClC;AACY,CAAA,EAAA,oBAAoB,CAA8B;;ACJ/D;AAMO,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,2BAA2B,CAAA;AAA9D,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;IAI9D;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,gBAAgB;IACzB;;AAJW,oBAAoB,GAAA,UAAA,CAAA;AAJhC,IAAA,cAAc,CAAuB;AACpC,QAAA,SAAS,EAAE,sBAAsB;;KAElC;AACY,CAAA,EAAA,oBAAoB,CAKhC;;ACfD;AASA;MAEa,yBAAyB,GAAG,aAAa,CAAC,OAAO;AAC5D,IAAA,WAAW,EAAE,2BAA2B;AACxC,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,gBAAgB,EAAE;IAC9B,WAAW,EAAE,EAAE,oBAAoB,EAAE;IACrC,YAAY,EAAE,EAAE,oBAAoB,EAAE;IACtC,SAAS,EAAE,EAAE,kBAAkB,EAAE;IACjC,WAAW,EAAE,EAAE,oBAAoB,EAAE;IACrC,WAAW,EAAE,EAAE,oBAAoB,EAAE;AACtC,CAAA,CAAC;;ACVF;AAMO,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,yBAGpD,CAAA;AAHM,IAAA,WAAA,GAAA;;AAIY,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAC5D,qBAAqB,CACtB;AAEgB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAChE,yBAAyB,CAC1B;AAEgB,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAC/D,wBAAwB,CACzB;AAEgB,QAAA,IAAA,CAAA,mBAAmB,GAClC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC;IAwM5C;IAtMY,MAAM,iBAAiB,CAAC,EAChC,GAAG,EACH,GAAG,EACH,YAAY,EACZ,CAAC,GAC4E,EAAA;;;;;;;;;;;;;;;;;AAiB7E,QAAA,QAAQ,KAAK,CAAC;IAChB;IAEU,MAAM,iBAAiB,CAC/B,KAAyB,EACzB,WAAgB,EAChB,GAAoB,EACpB,GAAqB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCrB,QAAA,QAAQ,KAAK,CAAC;IAChB;AAEA,IAAA,mBAAmB,KAAU;IAE7B,MAAM,sBAAsB,CAAC,GAAW,EAAA;;;AAGtC,QAAA,QAAQ,KAAK,CAAC;IAChB;IAEA,MAAM,6BAA6B,CAAC,SAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BnD,QAAA,QAAQ,KAAK,CAAC;IAChB;IAEA,MAAM,+BAA+B,CAAC,GAAW,EAAA;;;AAG/C,QAAA,QAAQ,KAAK,CAAC;IAChB;AAEA,IAAA,uBAAuB,CAAC,OAMvB,EAAA;;AAEC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,CAAA,mDAAA,CAAqD,CAAC;YACpE;QACF;AACA,QAAA,MAAM,WAAW,GACf,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;QAE3D,MAAM,aAAa,GAAG,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC;;AAGrE,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC;AAElC,QAAA,GAAG,CAAC,MAAM,GAAG,EAAE;QACf,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AACxC,QAAA,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;QAC9C;AACA,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;QAC1C;QACA,QACE,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAA,CAAE;YACxE,CAAA,EAAG,GAAG,CAAC,QAAQ,CAAA,EAAG,GAAG,CAAC,MAAM,CAAA,CAAE;;IAGlC;IAEA,MAAM,0BAA0B,CAAC,OAGhC,EAAA;;;;;;;;;;;;;;;;;AAiBC,QAAA,QAAQ,KAAK,CAAC;IAChB;IAEU,MAAM,0BAA0B,CAAC,OAG1C,EAAA;;;;;;;;;;;;;;;;AAgBC,QAAA,QAAQ,KAAK,CAAC;IAChB;IAEU,MAAM,kBAAkB,CAAC,GAAW,EAAA;;;AAG5C,QAAA,QAAQ,KAAK,CAAC;IAChB;;AAxNW,+BAA+B,GAAA,UAAA,CAAA;AAJ3C,IAAA,cAAc,CAAkC;AAC/C,QAAA,SAAS,EAAE,iCAAiC;;KAE7C;AACY,CAAA,EAAA,+BAA+B,CAyN3C;;AC9MD;AA2CO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,sBAA4C,CAAA;AAAnF,IAAA,WAAA,GAAA;;;AAEL,QAAA,IAAA,CAAA,oBAAoB,GAAsC,MACxD,oBAAoB;AAEL,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAC/D,wBAAwB,CACzB;AAEgB,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAC5D,qBAAqB,CACtB;AAEgB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAChE,yBAAyB,CAC1B;AAEgB,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,CAAC,gBAAgB,CACtE,+BAA+B,CAChC;;IA0iBH;;;IAtiBY,MAAM,iBAAiB,CAAC,EAChC,GAAG,EACH,GAAG,EACH,YAAY,EACZ,CAAC,GACqE,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCtE,QAAA,QAAQ,KAAK,CAAC;IAChB;;;AAKA,IAAA,kBAAkB,CAAgB,IAAY,EAAA;;QAE5C,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;;IAEzD;;AAIA,IAAA,wBAAwB,CAAgB,IAAY,EAAA;;QAElD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;;IAExD;;;AAKA,IAAA,kBAAkB,CAAgB,IAAY,EAAA;;QAE5C,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;;IAEzD;;;AAKA,IAAA,wBAAwB,CAAgB,IAAY,EAAA;;QAElD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;;IAExD;;;AAKA,IAAA,uBAAuB,CAAgB,IAAY,EAAA;;QAEjD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;;IAE9D;;;AAKA,IAAA,6BAA6B,CACZ,IAAY,EAAA;;QAG3B,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;;IAE7D;;;;AAMA,IAAA,sBAAsB,CAAgB,IAAY,EAAA;;QAEhD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;;IAE7D;AAGA,IAAA,4BAA4B,CACX,IAAY,EAAA;;QAG3B,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;;IAE5D;IAGA,WAAW,GAAA;;QAET,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;;IAEhE;AAGA,IAAA,UAAU,CAAc,EAAU,EAAA;;AAEhC,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;;IAEjE;IAEQ,MAAM,kBAAkB,CAC9B,IAAY,EACZ,IAAoD,EACpD,UAAmB,EACnB,GAAmB,EACnB,CAA6E,EAAA;;QAG7E,MAAM,OAAO,GACX,MAAM,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,IAAI,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE;YACZ,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,GAAG,CAAC;QACxD;AACA,QAAA,MAAM,KAAK,GACT,IAAI,KAAK;AACP,cAAE;cACA,IAAI,KAAK;AACT,kBAAE;kBACA,IAAI,KAAK;AACT,sBAAE;sBACA,eAAe;AACzB,QAAA,MAAM,GAAG,GAAG,OAAQ,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,YAAY,CACV,CAAC,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,EACvD,GAAG,CACJ;QACH;AACA,QAAA,IACE,EAAE,MAAM,IAAI,CAAC,+BAA+B,CAAC,sBAAsB,CAAC,GAAI,CAAC,CAAC,EAC1E;YACA,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC,EAAE,GAAG,CAAC;QAC1E;AACA,QAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;AAE1D,QAAA,MAAM,SAAS,GAAG,CAAC,UAAU;QAC7B,MAAM,KAAK,GAAG;AACZ,cAAE,MAAM,IAAI,CAAC,+BAA+B,CAAC,0BAA0B,CAAC;AACpE,gBAAA,GAAG,EAAE,GAAI;gBACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;aACtC;cACD,SAAS;AACb,QAAA,OAAO,IAAI,CAAC,+BAA+B,CAAC,uBAAuB,CAAC;YAClE,GAAG;AACH,YAAA,GAAG,EAAE,GAAI;AACT,YAAA,OAAO,EAAE,SAAS;YAClB,KAAK;YACL,QAAQ,EAAE,IAAI,KAAK,YAAY;AAChC,SAAA,CAAC;;IAEJ;;IAGQ,MAAM,iBAAiB,CAC7B,OAA6B,EAC7B,UAAmB,EACnB,GAAmB,EACnB,CAA6E,EAAA;;AAI7E,QAAA,MAAM,EAAE,WAAW,EAAE,GACnB,MAAM,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,CAC5D,OAAO,CAAC,EAAE,CACX;AACH,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAC3E,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,QAAQ,EAAE;gBACb,YAAY,CACV,CAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC,EACrD,GAAG,CACJ;YACH;QACF;aAAO;YACL,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,CAAC;AACjE,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAC7D,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,SAAS,CACd;YACD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;AACvE,YAAA,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,IAC/C,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CACzC;YACD,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE;gBACxD,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,yCAAyC,CAAC,EAAE,GAAG,CAAC;YACzE;QACF;;IAEF;;;;AAMA,IAAA,SAAS,CAAgB,IAAY,EAAA;;QAEnC,OAAO,YAAW;YAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;AAClC,gBAAA,KAAK,EAAE;oBACL,IAAI;AACL,iBAAA;AACF,aAAA,CAAC;AACF,YAAA,OAAO,KAAK;AACd,QAAA,CAAC;;IAEH;;AAIA,IAAA,eAAe,CACE,IAAY,EAAA;;QAG3B,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;AAChC,YAAA,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAClE,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,GAAG,EAAE;gBAClD,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,GAAG,CAAC;YAC3D;YACA,MAAM,IAAI,GACR,MAAM,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAC1D,cAAc,CACf;YACH,IAAI,CAAC,IAAI,EAAE;gBACT,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,GAAG,CAAC;YACzD;AACA,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAChD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,oBAAoB,EAAE,EAAE,IAAI,EAAE;AACrD,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,eAAe,EAAE,IAAI;AACtB,aAAA,CAAC;AACJ,QAAA,CAAC;;IAEH;;;AAKA,IAAA,aAAa,CACH,KAA2B,EAAA;;AAGnC,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC;;IAEvE;;;IAKA,aAAa,CACE,EAAU,EACf,KAA2B,EAAA;;AAGnC,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC;;IAE3E;;AAIA,IAAA,gBAAgB,CACD,EAAU,EACG,eAAA,GAAkB,KAAK,EAAA;;AAGjD,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAC5C,EAAE,EACF,eAAe,EACf,GAAG,IACD,IAAI,CAAC,+BAA+B,CAAC,6BAA6B,CAChE,GAAG,CACJ,EACH,GAAG,IACD,IAAI,CAAC,+BAA+B,CAAC,+BAA+B,CAClE,GAAG,CACJ,CACJ;;IAEL;IAGA,wBAAwB,CACT,EAAU,EACG,eAAuB,EAAA;;QAGjD,OAAO,YAAW;YAChB,MAAM,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAC1D,EAAE,EACF,eAAe,EACf,GAAG,IACD,IAAI,CAAC,+BAA+B,CAAC,+BAA+B,CAClE,GAAG,CACJ,CACJ;AACD,YAAA,OAAO,IAAI;AACb,QAAA,CAAC;;IAEH;;IAIA,aAAa,CACE,EAAU,EACG,eAAuB,EAAA;;AAGjD,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,EAAE,eAAe,CAAC;;IAErE;;;IAKA,cAAc,CACC,EAAU,EACf,KAA4B,EAAA;;AAGpC,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;;IAE5E;;;AAKA,IAAA,gBAAgB,CACD,EAAU,EAAA;;AAGvB,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,EAAE,CAAC;;IAEvE;;AAIA,IAAA,aAAa,CACE,EAAU,EAAA;;AAGvB,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,CAAC;;IAEpE;AAGA,IAAA,0BAA0B,CACX,EAAU,EAAA;;AAGvB,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,EAAE,CAAC;;IAEhE;AAGA,IAAA,eAAe,CACA,EAAU,EAAA;;AAGvB,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC;;IAEtE;;AAIA,IAAA,eAAe,CACA,EAAU,EAAA;;AAGvB,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC;;IAEtE;;;AAKA,IAAA,0BAA0B,CACX,EAAU,EAAA;;AAGvB,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,EAAE,CAAC;;IAEhE;;;IAKA,oBAAoB,GAAA;;QAElB,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,EAAE;;IAEzE;;;AAKA,IAAA,gBAAgB,CAAgB,IAAY,EAAA;;QAE1C,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;YAChC,MAAM,OAAO,GACX,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC7D,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,OAAO,EAAE;YACX;AACA,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACpD,YAAA,OAAO,OAAO,CAAC,IAAI,IAAI,EAAE;AAC3B,QAAA,CAAC;;IAEH;;;AAKA,IAAA,sBAAsB,CAAgB,IAAY,EAAA;;QAEhD,OAAO,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAI;YAChC,MAAM,OAAO,GACX,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC7D,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,OAAO,EAAE;YACX;AACA,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACnD,YAAA,OAAO,OAAO,CAAC,IAAI,IAAI,EAAE;AAC3B,QAAA,CAAC;;IAEH;;;AAKA,IAAA,cAAc,CACC,EAAU,EACC,aAAqB,EACnB,eAAuB,EAAA;;AAGjD,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAC1C,EAAE,EACF,aAAa,EACb,eAAe,CAChB;;IAEL;;;AAKA,IAAA,iBAAiB,CACF,EAAU,EACC,aAAqB,EACnB,eAAuB,EAAA;;AAGjD,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAC7C,EAAE,EACF,aAAa,EACb,eAAe,CAChB;;IAEL;;AAIA,IAAA,eAAe,CACA,EAAU,EACC,aAAqB,EAC9B,IAA4B,EACjB,eAAuB,EAAA;;AAGjD,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAC3C,EAAE,EACF,aAAa,EACb,IAAI,EACJ,eAAe,CAChB;;IAEL;AAGA,IAAA,iBAAiB,CACF,EAAU,EACR,IAA4B,EACjB,eAAuB,EAAA;;AAGjD,QAAA,OAAO,YACL,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAC7C,EAAE,EACF,IAAI,EACJ,eAAe,CAChB;;IAEL;;AAIA,IAAA,aAAa,CACE,EAAU,EAAA;;AAGvB,QAAA,OAAO,YAAY,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,CAAC;;IAEpE;;AAtfA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACc,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAKhC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACoB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAKtC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,0BAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACc,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAKhC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACoB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAKtC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,0BAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACmB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAKrC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAMf,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,+BAAA,EAAA,IAAA,CAAA;AAMD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACkB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAKpC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAMf,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;;;;AAKL,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACM,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAItB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAgGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,CAAA,IAAA,CAAM,CAAC,CAAA;;;;AAWvB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAuBf,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;IAEJ,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAKR,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACX,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAKR,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAiB1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AAEN,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAe1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,0BAAA,EAAA,IAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AAEN,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAM1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACX,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAKR,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAMb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,4BAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAMb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,4BAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;;;;AAKL,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACY,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAY9B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACkB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;AAYpC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,eAAe,CAAC,CAAA;AACtB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAU1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AAEN,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,eAAe,CAAC,CAAA;AACtB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAU1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;AAEJ,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,eAAe,CAAC,CAAA;AACtB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;AACb,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAW1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AAEN,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,MAAM,CAAC,CAAA;AACb,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;;AAU1B,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AA3jBU,wBAAwB,GAAA,UAAA,CAAA;AAzCpC,IAAA,cAAc,CAA2B;;AAExC,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,cAAc,EAAE;YACd,QAAQ;YACR,OAAO;YACP,iBAAiB;YACjB,eAAe;YACf,kBAAkB;YAClB,0BAA0B;YAC1B,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,eAAe;YACf,kBAAkB;YAClB,eAAe;YACf,4BAA4B;YAC5B,iBAAiB;YACjB,aAAa;YACb,iBAAiB;YACjB,4BAA4B;YAC5B,sBAAsB;YACtB,kBAAkB;YAClB,wBAAwB;YACxB,oBAAoB;YACpB,0BAA0B;YAC1B,oBAAoB;YACpB,0BAA0B;YAC1B,yBAAyB;YACzB,+BAA+B;YAC/B,wBAAwB;YACxB,8BAA8B;YAC9B,YAAY;YACZ,gBAAgB;YAChB,mBAAmB;YACnB,iBAAiB;YACjB,mBAAmB;YACnB,iBAAiB;AAClB,SAAA;;KAEF;AACY,CAAA,EAAA,wBAAwB,CA6jBpC;;ACjoBD;AAKO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAkB,CAAA;;AAAnD,wBAAwB,GAAA,UAAA,CAAA;AAHpC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,0BAA0B;KACtC;AACY,CAAA,EAAA,wBAAwB,CAA8B;;ACHnE;AAKO,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,gBAAgB,CAAA;AAG1D,IAAA,MAAM,CAAC,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iDAAA,CAAmD,CAAC;QACtE;IACF;;AAPW,sBAAsB,GAAA,UAAA,CAAA;AAHlC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,wBAAwB;KACpC;AACY,CAAA,EAAA,sBAAsB,CAQlC;;ACdD;AAMO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAA2B,CAAA;AAAlE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC;IAItE;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,oBAAoB;IAC7B;;AAJW,wBAAwB,GAAA,UAAA,CAAA;AAJpC,IAAA,cAAc,CAA2B;AACxC,QAAA,SAAS,EAAE,0BAA0B;;KAEtC;AACY,CAAA,EAAA,wBAAwB,CAKpC;;ACfD;AAiBA;MAEa,6BAA6B,GAAG,aAAa,CAAC,OAAO;AAChE,IAAA,WAAW,EAAE,+BAA+B;AAC5C,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE;QACR,eAAe;QACf,8BAA8B;QAC9B,yBAAyB;QACzB,gCAAgC;QAChC,qCAAqC;AACtC,KAAA;AACD,IAAA,QAAQ,EAAE,EAAE,4BAA4B,EAAE,oBAAoB,EAAE;AAChE,IAAA,WAAW,EAAE,EAAE,wBAAwB,EAAE,+BAA+B,EAAE;IAC1E,YAAY,EAAE,EAAE,wBAAwB,EAAE;IAC1C,SAAS,EAAE,EAAE,sBAAsB,EAAE;IACrC,WAAW,EAAE,EAAE,wBAAwB,EAAE;IACzC,WAAW,EAAE,EAAE,wBAAwB,EAAE;AAC1C,CAAA,CAAC;;AC9BF;AAKO,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,kBAA6C,CAAA;AAAzF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA2C,MAAM,yBAAyB;IAehG;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,6BAA6B,GAAA,UAAA,CAAA;AAHzC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,+BAA+B;KAC3C;AACY,CAAA,EAAA,6BAA6B,CAgBzC;;;ACpBD;AAMO,IAAM,6BAA6B,GAAA,+BAAA,GAAnC,MAAM,6BAA8B,SAAQ,sBAAiD,CAAA;AAA7F,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA2C,MAAM,yBAAyB;AAE9F,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CAAC;;IAqBtF;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,EAAE;YACnE,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,SAAS,yBAAyB,CAAC,+BAA6B,CAAC;sBACpF,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,6BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAtBU,6BAA6B,GAAA,+BAAA,GAAA,UAAA,CAAA;AAJzC,IAAA,cAAc,CAAgC;AAC7C,QAAA,SAAS,EAAE,+BAA+B;AAC1C,QAAA,cAAc,EAAE;KACjB;AACY,CAAA,EAAA,6BAA6B,CAwBzC;;AChCD;AAQO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,gBAAgB,CAAA;8GAApD,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3B,2BAA2B,EAAA,CAAA,CAAA;;AAA3B,2BAA2B,GAAA,UAAA,CAAA;AANvC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,6BAA6B;KACzC;;AAIY,CAAA,EAAA,2BAA2B,CAIvC;2FAJY,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAFvC;;;ACPD;AAKO,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,kBAAkB,CAAA;;AAAxD,6BAA6B,GAAA,UAAA,CAAA;AAHzC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,+BAA+B;KAC3C;AACY,CAAA,EAAA,6BAA6B,CAA8B;;ACJxE;AAMO,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,2BAA2B,CAAA;AAAvE,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC;IAIhF;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,yBAAyB;IAClC;;AAJW,6BAA6B,GAAA,UAAA,CAAA;AAJzC,IAAA,cAAc,CAAgC;AAC7C,QAAA,SAAS,EAAE,+BAA+B;;KAE3C;AACY,CAAA,EAAA,6BAA6B,CAKzC;;ACfD;AASA;MAEa,kCAAkC,GAAG,aAAa,CAAC,OAAO;AACrE,IAAA,WAAW,EAAE,oCAAoC;AACjD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,yBAAyB,EAAE;IACvC,WAAW,EAAE,EAAE,6BAA6B,EAAE;IAC9C,YAAY,EAAE,EAAE,6BAA6B,EAAE;IAC/C,SAAS,EAAE,EAAE,2BAA2B,EAAE;IAC1C,WAAW,EAAE,EAAE,6BAA6B,EAAE;IAC9C,WAAW,EAAE,EAAE,6BAA6B,EAAE;AAC/C,CAAA,CAAC;;AChBF;AAMO,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,cAA8C,CAAA;;AAEhG,UAAA,CAAA;AADC,IAAA,sBAAsB,EAAE;;AACd,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAGX,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;AACxB,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAGhB,UAAA,CAAA;AADC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;AACV,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAGlB,UAAA,CAAA;AADC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;AACf,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKb,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AAChB,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAG5B,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACtB,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAGtB,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACnB,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAGzB,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACf,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA;AAG7B,UAAA,CAAA;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AACb,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAGnC,UAAA,CAAA;AADC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BAClB,IAAI;AAAC,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AA/BL,8BAA8B,GAAA,UAAA,CAAA;AAJ1C,IAAA,UAAU,CAAC;AACV,QAAA,SAAS,EAAE,gCAAgC;AAC3C,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,8BAA8B,CAgC1C;;ACtCD;AAKO,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,kBAAkD,CAAA;AAAnG,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAgD,MAAM,8BAA8B;IAe1G;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,kCAAkC,GAAA,UAAA,CAAA;AAH9C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,oCAAoC;KAChD;AACY,CAAA,EAAA,kCAAkC,CAgB9C;;;ACpBD;AAMO,IAAM,kCAAkC,GAAA,oCAAA,GAAxC,MAAM,kCAAmC,SAAQ,sBAAsD,CAAA;AAAvG,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAgD,MAAM,8BAA8B;AAExG,QAAA,IAAA,CAAA,kCAAkC,GAAG,IAAI,CAAC,gBAAgB,CAAC,kCAAkC,CAAC;;IAqBhG;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,kCAAkC,CAAC,sBAAsB,EAAE;YACxE,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,SAAS,yBAAyB,CAAC,oCAAkC,CAAC;sBACzF,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,kCAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAtBU,kCAAkC,GAAA,oCAAA,GAAA,UAAA,CAAA;AAJ9C,IAAA,cAAc,CAAqC;AAClD,QAAA,SAAS,EAAE,oCAAoC;AAC/C,QAAA,cAAc,EAAE;KACjB;AACY,CAAA,EAAA,kCAAkC,CAwB9C;;AChCD;AAQO,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,gBAAgB,CAAA;8GAAzD,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhC,gCAAgC,EAAA,CAAA,CAAA;;AAAhC,gCAAgC,GAAA,UAAA,CAAA;AAN5C,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,kCAAkC;KAC9C;;AAIY,CAAA,EAAA,gCAAgC,CAI5C;2FAJY,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAF5C;;;ACPD;AAKO,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,kBAAkB,CAAA;;AAA7D,kCAAkC,GAAA,UAAA,CAAA;AAH9C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,oCAAoC;KAChD;AACY,CAAA,EAAA,kCAAkC,CAA8B;;ACJ7E;AAMO,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,2BAA2B,CAAA;AAA5E,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,CAAC,cAAc,CAAC,gCAAgC,CAAC;IAI1F;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,8BAA8B;IACvC;;AAJW,kCAAkC,GAAA,UAAA,CAAA;AAJ9C,IAAA,cAAc,CAAqC;AAClD,QAAA,SAAS,EAAE,oCAAoC;;KAEhD;AACY,CAAA,EAAA,kCAAkC,CAK9C;;ACfD;AASA;MAEa,uCAAuC,GAAG,aAAa,CAAC,OAAO;AAC1E,IAAA,WAAW,EAAE,yCAAyC;AACtD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,8BAA8B,EAAE;IAC5C,WAAW,EAAE,EAAE,kCAAkC,EAAE;IACnD,YAAY,EAAE,EAAE,kCAAkC,EAAE;IACpD,SAAS,EAAE,EAAE,gCAAgC,EAAE;IAC/C,WAAW,EAAE,EAAE,kCAAkC,EAAE;IACnD,WAAW,EAAE,EAAE,kCAAkC,EAAE;AACpD,CAAA,CAAC;;ACrBF;MAaa,sBAAsB,GAAG,aAAa,CAAC,OAAO;AACzD,IAAA,WAAW,EAAE,wBAAwB;AACrC,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE;QACR,8BAA8B;QAC9B,6BAA6B;QAC7B,6BAA6B;QAC7B,kCAAkC;QAClC,uCAAuC;QACvC,qCAAqC;QACrC,gCAAgC;QAChC,yBAAyB;QACzB,0BAA0B;AAC3B,KAAA;AACF,CAAA,CAAC;AAEF;;AC1BA,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA0C;AAE/E;AACA;SACgB,cAAc,CAC5B,GAAW,EACX,IAAc,EACd,UAAwC,EAAA;IAExC,MAAM,GAAG,GAAG,CAAA,yBAAA,EAA4B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA,CAAE;IAC/D,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC/C,QAAA,iCAAiC,CAAC,GAAG,CAAC,GAAG,EAAE;YACzC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAI;gBAC3B,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,QAAQ,CAAC,EAAE;AACnC,oBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACzB;AACA,gBAAA,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI;gBAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;gBAClD,IAAI,CAAC,QAAQ,EAAE;AACb,oBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACzB;AACA,gBAAA,OAAO,IAAI,UAAU,CAAW,UAAU,IAAG;AAC3C,oBAAA,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE;AAChC,oBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;oBACvC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,WAAW,KAAK,SAAS;AACnD,oBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,KAAI;;AAE/C,wBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE;AACzC,4BAAA,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;wBACnC;AACF,oBAAA,CAAC,CAAC;AACF,oBAAA,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,IAAG;wBAC9B,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;4BAC7C,QAAQ,CACN,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAC9D;wBACH;AACF,oBAAA,CAAC;AACD,oBAAA,GAAG,CAAC,MAAM,GAAG,MAAK;AAChB,wBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;wBAC7B,KAAK,MAAM,IAAI,IAAI;AAChB,6BAAA,qBAAqB;AACrB,6BAAA,IAAI;AACJ,6BAAA,KAAK,CAAC,SAAS,CAAC,EAAE;4BACnB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACnC,4BAAA,IAAI,SAAS,GAAG,CAAC,EAAE;gCACjB,OAAO,CAAC,MAAM,CACZ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CACjC;4BACH;wBACF;AACA,wBAAA,UAAU,CAAC,IAAI,CACb,IAAI,QAAQ,CACV,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,YAAY,EAC9D;4BACE,MAAM,EAAE,GAAG,CAAC,MAAM;4BAClB,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1B,OAAO;AACR,yBAAA,CACF,CACF;wBACD,UAAU,CAAC,QAAQ,EAAE;AACvB,oBAAA,CAAC;AACD,oBAAA,GAAG,CAAC,OAAO,GAAG,MACZ,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC5D,oBAAA,GAAG,CAAC,SAAS,GAAG,MACd,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AACxD,oBAAA,GAAG,CAAC,OAAO,GAAG,MACZ,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAC5D,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE;AAC/B,oBAAA,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5D,oBAAA,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;wBACvB,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAC5D;yBAAO;wBACL,QAAQ,CAAC,CAAC,CAAC;AACX,wBAAA,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;oBACtB;AACA,oBAAA,OAAO,MAAK;wBACV,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;wBAC/C,IAAI,GAAG,CAAC,UAAU,KAAK,cAAc,CAAC,IAAI,EAAE;4BAC1C,GAAG,CAAC,KAAK,EAAE;wBACb;AACF,oBAAA,CAAC;AACH,gBAAA,CAAC,CAAC;YACJ,CAAC;AACF,SAAA,CAAC;IACJ;AACA,IAAA,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;IACvC,OAAO,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C;;AC7FA;AAyBA;AAGM,MAAO,wBAEX,SAAQ,sBAAsB,CAAA;AAHhC,IAAA,WAAA,GAAA;;;AAKqB,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CACjE,wBAAwB,CACzB;AAEkB,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,CAAC,gBAAgB,CACxE,+BAA+B,CAChC;AAqYF,IAAA;AAnYC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB;IACtC;AAEA,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM;IACxC;AAEO,IAAA,UAAU,CAAC,IAAY,EAAA;QAC5B,OAAO,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,OAAA,EAAU,kBAAkB,CAAC,IAAI,CAAC,CAAA,CAAE;IAChE;;;IAIO,MAAM,OAAO,CAAC,EAAU,EAAA;AAC7B,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,IAAI;IAC5E;;;IAIO,MAAM,SAAS,CAAC,IAAY,EAAA;AACjC,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;AACpE,aAAA,IAAI;IACT;;IAGO,MAAM,eAAe,CAAC,IAAY,EAAA;AACvC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;aACzB,eAAe,CAAC,IAAI;AACpB,aAAA,OAAQ,EAAE;AACb,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,+BAA+B,CAAC;QAC3E;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI;IAC3B;;AAGA;;AAEG;AACI,IAAA,kBAAkB,CAAC,IAAY,EAAA;QACpC,OAAO,IAAI,CAAC;aACT,kBAAkB,CAAC,IAAI;AACvB,aAAA,OAAO;aACP,UAAU,CAAC,IAAI,CACd,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,UAAU,CAAC,GAAG,IAAG;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAClB,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC;QACf,CAAC,CAAC,CACH;IACL;;;IAIO,MAAM,wBAAwB,CAAC,IAAY,EAAA;AAChD,QAAA,OAAO,CACL,MAAM,IAAI,CAAC;aACR,wBAAwB,CAAC,IAAI;AAC7B,aAAA,OAAO,EAAE,EACZ,IAAI,CAAC,IAAI;IACb;;;AAIO,IAAA,kBAAkB,CAAC,IAAY,EAAA;QACpC,OAAO,IAAI,CAAC;aACT,kBAAkB,CAAC,IAAI;AACvB,aAAA,OAAO;aACP,UAAU,CAAC,IAAI,CACd,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,UAAU,CAAC,GAAG,IAAG;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAClB,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC;QACf,CAAC,CAAC,CACH;IACL;;;IAIO,MAAM,wBAAwB,CAAC,IAAY,EAAA;AAChD,QAAA,OAAO,CACL,MAAM,IAAI,CAAC;aACR,wBAAwB,CAAC,IAAI;AAC7B,aAAA,OAAO,EAAE,EACZ,IAAI,CAAC,IAAI;IACb;;;IAIO,MAAM,uBAAuB,CAAC,IAAY,EAAA;AAC/C,QAAA,OAAO,CACL,MAAM,IAAI,CAAC;aACR,uBAAuB,CAAC,IAAI;AAC5B,aAAA,OAAO,EAAE,EACZ,IAAI,CAAC,IAAI;IACb;;;IAIO,MAAM,6BAA6B,CAAC,IAAY,EAAA;AACrD,QAAA,OAAO,CACL,MAAM,IAAI,CAAC;aACR,6BAA6B,CAAC,IAAI;AAClC,aAAA,OAAO,EAAE,EACZ,IAAI,CAAC,IAAI;IACb;;;AAIO,IAAA,gBAAgB,CAAC,IAAW,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,IAAI;AACvD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;AAIO,IAAA,sBAAsB,CAAC,IAAW,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,IAAI;AAC7D,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAC3B,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAC5B;IACH;;;IAIO,oBAAoB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,oBAAoB;AACtD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;AAIO,IAAA,MAAM,WAAW,CACtB,IAAU,EACV,UAAyC,EAAA;AAEzC,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/B,QAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;QAC7B,MAAM,YAAY,GAAG;AACnB,cAAE,cAAc,CACZ,IAAI,CAAC,+BAA+B,CAAC,8BAA8B,CACjE,wBAAwB,CACzB,EACD,QAAQ,EACR,UAAU;cAEZ,SAAS;AACb,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;iBACzB,sBAAsB,CAAC,QAAQ;AAC/B,iBAAA,OAAO,EAAE;AACZ,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI;YAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AACvE,gBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;YAC3D;AACA,YAAA,UAAU,GAAG,GAAG,CAAC;AACjB,YAAA,OAAO,OAAO,CAAC,CAAC,CAAC;QACnB;gBAAU;YACR,YAAY,IAAI;QAClB;IACF;;;IAIO,UAAU,GAAA;QACf,OAAO,IAAI,CAAC;aACT,IAAI,CAAC,EAAE;AACP,aAAA,OAAO;AACP,aAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C;;;IAIO,MAAM,WAAW,CAAC,GAAW,EAAA;AAClC,QAAA,OAAO,CACL,MAAM,IAAI,CAAC;aACR,aAAa,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE;AAC/C,aAAA,OAAO,EAAE,EACZ,IAAI,CAAC,IAAI;IACb;;;AAIO,IAAA,UAAU,CAAC,EAAU,EAAA;QAC1B,OAAO,IAAI,CAAC;aACT,UAAU,CAAC,EAAE;AACb,aAAA,OAAO;AACP,aAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C;AAEO,IAAA,MAAM,sBAAsB,CACjC,IAAY,EACZ,UAAU,GAAG,KAAK,EAAA;QAElB,MAAM,QAAQ,GAAG;AACf,cAAE,MAAM,IAAI,CAAC;iBACR,4BAA4B,CAAC,IAAI;AACjC,iBAAA,OAAO;AACZ,cAAE,MAAM,IAAI,CAAC;iBACR,sBAAsB,CAAC,IAAI;AAC3B,iBAAA,OAAO,EAAE;AAChB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI;IAC3B;AAEO,IAAA,aAAa,CAClB,KAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,KAAK;AACrD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;AAIO,IAAA,gBAAgB,CACrB,EAAU,EACV,eAAe,GAAG,KAAK,EAAA;QAEvB,OAAO,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,EAAE,EAAE,eAAe;AACtE,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;IAIO,aAAa,CAClB,EAAU,EACV,KAA2B,EAAA;QAE3B,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK;AACzD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;IAIO,aAAa,CAClB,EAAU,EACV,eAAuB,EAAA;QAEvB,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,EAAE,eAAe;AACnE,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;IAGO,wBAAwB,CAC7B,EAAU,EACV,eAAuB,EAAA;QAEvB,OAAO,IAAI,CAAC;AACT,aAAA,wBAAwB,CAAC,EAAE,EAAE,eAAe;AAC5C,aAAA,OAAQ;AACR,aAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C;;IAGO,cAAc,CACnB,EAAU,EACV,KAA4B,EAAA;QAE5B,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK;AAC1D,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;AAIO,IAAA,aAAa,CAAC,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE;AAClD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;IAIO,WAAW,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,WAAW;AAC7C,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEO,IAAA,gBAAgB,CAAC,EAAU,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,EAAE;AACrD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;IAGO,MAAM,aAAa,CACxB,EAAU,EAAA;AAEV,QAAA,OAAO,CACL,MAAM,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAC/D,IAAI,CAAC,IAAI;IACb;IAEO,MAAM,0BAA0B,CACrC,EAAU,EAAA;AAEV,QAAA,OAAO,CACL,MAAM,IAAI,CAAC;aACR,0BAA0B,CAAC,EAAE;AAC7B,aAAA,OAAO,EAAE,EACZ,IAAI,CAAC,IAAI;IACb;IAEO,MAAM,eAAe,CAC1B,EAAU,EAAA;AAEV,QAAA,OAAO,CACL,MAAM,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EACjE,IAAI,CAAC,IAAI;IACb;;AAGO,IAAA,eAAe,CAAC,EAAU,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE;AACpD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;AAIO,IAAA,0BAA0B,CAC/B,EAAU,EAAA;AAEV,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,EAAE;AAC/D,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;;;AAIO,IAAA,cAAc,CACnB,EAAU,EACV,aAAqB,EACrB,eAAuB,EAAA;AAEvB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CACjD,EAAE,EACF,aAAa,EACb,eAAe,CAChB,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD;;;AAIO,IAAA,iBAAiB,CACtB,EAAU,EACV,aAAqB,EACrB,eAAuB,EAAA;AAEvB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CACpD,EAAE,EACF,aAAa,EACb,eAAe,CAChB,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD;;AAGO,IAAA,eAAe,CACpB,EAAU,EACV,aAAqB,EACrB,IAA4B,EAC5B,eAAuB,EAAA;QAEvB,OAAO,IAAI,CAAC;aACT,eAAe,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe;AACxD,aAAA,OAAQ;AACR,aAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C;AAEO,IAAA,iBAAiB,CACtB,EAAU,EACV,IAA4B,EAC5B,eAAuB,EAAA;QAEvB,OAAO,IAAI,CAAC;AACT,aAAA,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe;AAC3C,aAAA,OAAQ;AACR,aAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C;;AAGA;;;AAGG;AACH,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACtE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;8GA7YW,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;;ACZD,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,wEAAwE,EAAE,EAAC,0EAA0E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,EAAC,wEAAwE,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,EAAC,8EAA8E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,4EAA4E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MASxqD,4BAA4B,CAAA;AAPzC,IAAA,WAAA,GAAA;AAQW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAKP,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEtC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,EAAE,+CAAC;AAEhB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAwD5B,IAAA;AAtDC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;AAChE,QAAA,IAAI,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE;AACrC,YAAA,OAAO,OAAO;QAChB;AACA,QAAA,IAAI,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE;AACrC,YAAA,OAAO,OAAO;QAChB;AACA,QAAA,OAAO,YAAY;IACrB;IAEA,QAAQ,GAAA;AACN,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB;QACF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAChB,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/D,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;gBACrC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;YAC1C;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YACxB;QACF;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC9B,gBAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAC/D;YACH;QACF;gBAAU;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC9B,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB;QACF;IACF;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,4DAA4D,CAC7D,CACF;IACH;8GArEW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBzC,iiCA4CA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAId,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,mBACjB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,iiCAAA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA;;sBAOzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;AEN3B,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,4EAA4E,EAAE,EAAC,0EAA0E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,EAAC,wEAAwE,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,EAAC,8EAA8E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,4EAA4E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAe5qD,gCAAgC,CAAA;AAX7C,IAAA,WAAA,GAAA;AAYW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEP,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEtC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAsB,EAAE,kDAAC;AAExC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAElB,QAAA,IAAA,CAAA,OAAO,GAAoB;AAClC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;AACvE,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC1E,YAAA;gBACE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;AACtC,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,QAAQ,EAAE,IAAI;AACf,aAAA;SACF;AAsCF,IAAA;IApCC,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,EAAE;IACf;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB;QACF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC;AACF,aAAA,UAAU;AACV,aAAA,IAAI,CACHC,KAAG,CAAC,CAAC,IAAI,CAAwB,CAAC,EAClC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,MAAM,IACV,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,IAAG;AACb,gBAAA,CAAC,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9C,gBAAA,OAAO,CAAC;AACV,YAAA,CAAC,CAAC,CACH;AACH,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,oDAAoD,EACpD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mDAAmD,CAAC,CACpE;YACH,CAAC;AACF,SAAA,CAAC;IACN;8GA1DW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,SAAA,EAHhC,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjCvC,8pBA6BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAI,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,4BAA4B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKnB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAX5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,eAAA,EACrB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,eAAe;wBACf,sBAAsB;wBACtB,4BAA4B;qBAC7B,EAAA,SAAA,EACU,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,8pBAAA,EAAA;;;;;;;;AE/BhC,MAAM,6BAA6B,GAAW;AACnD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,iFAAgD,CAAC,IAAI,CACnD,CAAC,IAAI,CAAC,CAAC,gCAAgC,CACxC;AACJ,KAAA;;;;;;;;ACTH;AAMA;AAEA,MAAMD,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,8DAA8D,EAAE,EAAC,gEAAgE,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,EAAC,8DAA8D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,8EAAsD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,8EAAsD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,8EAAsD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAS3qC,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;AAQW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAExB,IAAA,CAAA,eAAe,GAAG,KAAK;AASxB,IAAA;AAPC,IAAA,eAAe,CAAC,SAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS;IACpC;AAEA,IAAA,iBAAiB,CAAC,SAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;IAC9B;8GAXW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBvC,gRAWA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIuB,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEtB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,gRAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEfpC;AAEA;;ACKA;AAEA,MAAM,cAAc,IAAGE,gBAAyC,CAAA;AAChE,MAAMF,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,2DAA2D,EAAE,EAAC,gEAAgE,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,EAAC,8DAA8D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,8EAAsD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,8EAAsD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,8EAAsD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAE9qC,MAAM,uBAAuB,GAAW;AAC7C,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,2EAAyC,CAAC,IAAI,CAC5C,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAClC;AAEH,QAAA,QAAQ,EAAE;AACR,YAAA,cAAc,CAAC;AACb,gBAAA,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;;AAE1B,oBAAA,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW;gBACxC,CAAC;AACD,gBAAA,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAEA,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AACnC,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,MAAM,EAAE,MACN,uDAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,4BAA4B,CAAC;aAC/D,CAAC;AACF,YAAA,cAAc,CAAC;AACb,gBAAA,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;;AAE1B,oBAAA,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW;gBACxC,CAAC;AACD,gBAAA,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAEA,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACrC,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,MAAM,EAAE,MACN,uDAAkB,CAAC,IAAI,CACrB,CAAC,IAAI,CAAC,CAAC,6BAA6B,CACrC;aACJ,CAAC;AACF,YAAA,cAAc,CAAC;AACb,gBAAA,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;;AAE1B,oBAAA,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW;gBACxC,CAAC;AACD,gBAAA,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAEA,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AACtC,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,MACN,uDAAkB,CAAC,IAAI,CACrB,CAAC,IAAI,CAAC,CAAC,+BAA+B,CACvC;aACJ,CAAC;AACF,YAAA,cAAc,CAAC;AACb,gBAAA,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW;AAC5D,gBAAA,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAEA,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AACpC,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,MAAM,EAAE,MACN,8EAAyE,CAAC,IAAI,CAC5E,CAAC,IAAI,CAAC,CAAC,6BAA6B,CACrC;aACJ,CAAC;AACF,YAAA,cAAc,CAAC;AACb,gBAAA,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW;AAC5D,gBAAA,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAEA,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AACxC,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,MAAM,EAAE,MACN,gFAA6E,CAAC,IAAI,CAChF,CAAC,IAAI,CAAC,CAAC,iCAAiC,CACzC;aACJ,CAAC;AACF,YAAA,cAAc,CAAC;AACb,gBAAA,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW;AAC5D,gBAAA,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAEA,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAClC,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,MACN,gFAA6E,CAAC,IAAI,CAChF,CAAC,IAAI,CAAC,CAAC,2BAA2B,CACnC;aACJ,CAAC;;;;;;;;;AASH,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;ACrGM,MAAO,yBAA0B,SAAQ,sBAAsB,CAAA;AADrE,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAClE,yBAAyB,CAC1B;AAwBF,IAAA;AAtBC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACvE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;IAEA,IAAI,CACF,EAAiB,EACjB,KAA4B,EAAA;QAE5B,OAAO,IAAI,CAAC;AACT,aAAA,YAAY,CAAC,EAAE,EAAE,KAAK;AACtB,aAAA,OAAO;AACP,aAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,OAAO,IAAI,CAAC;aACT,cAAc,CAAC,EAAE;AACjB,aAAA,OAAO;aACP,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC;IAC1C;8GA1BW,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;;ACPM,MAAM,6BAA6B,GAAG;AAC3C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;ACEhC;AAEQ,SAAU,kCAAkC,CAAC,KAAa,EAAA;IAC9D,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACIM,MAAO,wBAAyB,SAAQ,sBAAsB,CAAA;AADpE,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CACjE,wBAAwB,CACzB;AAmIF,IAAA;IAjIC,MAAM,WAAW,CAAC,SAAiB,EAAA;AACjC,QAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAQ,EAAE;AACvE,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,0BAA0B,CAAC;QACtE;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;IAClC;AAEA,IAAA,MAAM,aAAa,CACjB,SAAiB,EACjB,IAAY,EAAA;QAEZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC;YACjE,SAAS;YACT,IAAI;SACL,CAAC,CAAC,OAAQ,EAAE;AACb,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,4BAA4B,CAAC;QACxE;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI;IAC3B;IAEA,MAAM,aAAa,CAAC,EAAU,EAAA;AAC5B,QAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAQ,EAAE;AAClE,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,+BAA+B,CAAC;QAC3E;IACF;AAEA,IAAA,MAAM,IAAI,CAAC,EAAU,EAAE,KAAa,EAAA;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC;AAC/D,YAAA,SAAS,EAAE,EAAE;YACb,KAAK;SACN,CAAC,CAAC,OAAQ,EAAE;AACb,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YACtD,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,YAAY,IAAI,gCAAgC,CAC1D;QACH;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI;IAC3B;IAEA,MAAM,UAAU,CAAC,EAAU,EAAA;AACzB,QAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAQ,EAAE;AAC/D,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,+BAA+B,CAAC;QAC3E;IACF;IAEA,MAAM,qBAAqB,CAAC,OAM3B,EAAA;AACC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CACxE,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,MAAM,CACf,CAAC,OAAQ,EAAE;AACZ,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,8BAA8B,CAAC;QAC1E;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI;IAC3B;AAEA,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,CAAC,OAAQ,EAAE;AAClE,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,+BAA+B,CAAC;QAC3E;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;IAClC;AAEA,IAAA,MAAM,cAAc,CAAC,MAAc,EAAE,OAAgB,EAAA;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC;YAClE,MAAM;YACN,OAAO;SACR,CAAC,CAAC,OAAQ,EAAE;AACb,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,YAAY,IAAI,kCAAkC,CAC5D;QACH;IACF;AAEA,IAAA,MAAM,iBAAiB,GAAA;AACrB,QAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC,OAAQ,EAAE;AACpE,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,YAAY,IAAI,iCAAiC,CAC3D;QACH;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;IAClC;IAEA,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAQ,EAAE;AACzE,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,YAAY,IAAI,mCAAmC,CAC7D;QACH;IACF;IAEA,MAAM,mBAAmB,CAAC,EAAU,EAAA;AAClC,QAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,OAAQ,EAAE;AACxE,QAAA,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,YAAY,IAAI,sCAAsC,CAChE;QACH;IACF;AAEA,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACtE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;8GArIW,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;;ACTM,MAAM,4BAA4B,GAAG;AAC1C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;;ACE/B;AAEQ,SAAU,iCAAiC,CAAC,KAAa,EAAA;IAC7D,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACUA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,yDAAyD,EAAE,EAAC,yDAAyD,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+EAAuD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+EAAuD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+EAAuD,CAAC,EAAE,OAAO,EAAC,EAAC,2DAA2D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,iFAAyD,CAAC,EAAE,OAAO,EAAC,EAAC,yDAAyD,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+EAAuD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+EAAuD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+EAAuD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAUjpC,wBAAwB,CAAA;AAqBnC,IAAA,WAAA,GAAA;AApBS,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEf,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;AAE9B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEtC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAElD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAEpC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAoB,EAAE,oDAAC;AAExC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,EAAE,gDAAC;AAEjB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEvB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,kDAAC;AAEtB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;QAGzB,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;YAClC,IAAI,SAAS,EAAE;AACb,gBAAA,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,MAA8B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1E;IAEA,MAAM,MAAM,CAAC,KAAY,EAAA;QACvB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACtD;QACF;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACpE,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACpE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,KAAK,YAAY;kBACb,KAAK,CAAC;kBACN,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CACjD;QACH;gBAAU;AACR,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB;IACF;AAEA,IAAA,MAAM,IAAI,CAAC,OAAwB,EAAE,KAAa,EAAA;AAChD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC;AACrE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,KAAK,YAAY;kBACb,KAAK,CAAC;kBACN,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CACrD;QACH;IACF;IAEA,MAAM,MAAM,CAAC,OAAwB,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC;AACX,gBAAA,GAAG,OAAO;AACV,gBAAA,mBAAmB,EAAE,IAAI;AACzB,gBAAA,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC;AAC9B,aAAA,CAAC;QACX;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACpE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,KAAK,YAAY;kBACb,KAAK,CAAC;kBACN,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CACpD;QACH;IACF;IAEA,MAAM,MAAM,CAAC,OAAwB,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAC3B,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAChD;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACpE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,KAAK,YAAY;kBACb,KAAK,CAAC;kBACN,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CACpD;QACH;IACF;IAEA,SAAS,CACP,OAAwB,EACxB,OAAiD,EAAA;AAEjD,QAAA,QACE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM;AAC5C,YAAA,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW;IAErC;IAEQ,MAAM,IAAI,CAAC,SAAiB,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1D;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC;AACnE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,KAAK,YAAY;kBACb,KAAK,CAAC;kBACN,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAC/C;QACH;gBAAU;AACR,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB;IACF;AAEQ,IAAA,OAAO,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,IACxB,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAC7D;IACH;8GA3IW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAJxB,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxB9D,mhGA+FA,EAAA,MAAA,EAAA,CAAA,qWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxEiC,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAApC,SAAS,yCAAE,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKlB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,mBACZ,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAA,SAAA,EACpC,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,EAAA,QAAA,EAAA,mhGAAA,EAAA,MAAA,EAAA,CAAA,qWAAA,CAAA,EAAA;;;AElBxD,MAAO,2BAA4B,SAAQ,sBAAsB,CAAA;AADvE,IAAA,WAAA,GAAA;;AAEE,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC;AAKrE,IAAA;AAHC,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ;IAC7C;8GALW,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3B,2BAA2B,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACFM,MAAM,4BAA4B,GAAG;AAC1C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,kBAAkB,CAAC,MAAM;AAC/B,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,YAAY,EAAE,IAAI;;;ACTpB;AAEQ,SAAU,iCAAiC,CAAC,KAAa,EAAA;IAC7D,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACYA;;;AAGG;AACG,SAAU,wBAAwB,CACtC,OAAkC,EAClC,OAA+B,EAAA;AAE/B,IAAA,MAAM,MAAM,GAAG,IAAI,GAAG,CAA6C;AACjE,QAAA,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC;AACpC,QAAA,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;QACjC,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACzC,QAAA,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AACnC,QAAA,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC/B,QAAA,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7B,QAAA,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;AAClD,KAAA,CAAC;AACF,IAAA,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAC5B,kEAAkE,EAClE,CAAC,WAAmB,EAAE,IAAY,KAAI;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,YAAA,OAAO,WAAW;QACpB;QACA,OAAO,MAAM,CAAC,KAAK;AAChB,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO;AACrB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,aAAA,OAAO,CAAC,IAAI,EAAE,QAAQ;AACtB,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AAC3B,IAAA,CAAC,CACF;AACH;;AC3CM,MAAO,6BAA8B,SAAQ,sBAAsB,CAAA;AADzE,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,CAAC,gBAAgB,CACtE,6BAA6B,CAC9B;AAWF,IAAA;AATC,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,MAAM;AAC7C,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D;AAEO,IAAA,UAAU,CAAC,IAAY,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,IAAI;AACrD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CAAC;IACvE;8GAbW,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA7B,6BAA6B,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC;;;ACNM,MAAM,iCAAiC,GAAG;AAC/C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;;ACEpC;AAEQ,SAAU,sCAAsC,CAAC,KAAa,EAAA;IAClE,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACCM,MAAO,kCAAmC,SAAQ,sBAAsB,CAAA;AAD9E,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,kCAAkC,GAAG,IAAI,CAAC,gBAAgB,CAC3E,kCAAkC,CACnC;AAWF,IAAA;AATC,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,kCAAkC,CAAC,MAAM;AAClD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D;AAEO,IAAA,UAAU,CAAC,IAAY,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,IAAI;AAC1D,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CAAC;IACvE;8GAbW,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAlC,kCAAkC,EAAA,CAAA,CAAA;;2FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAD9C;;;ACNM,MAAM,sCAAsC,GAAG;AACpD,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,6BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,6BAA6B,KAA7B,6BAA6B,GAAA,EAAA,CAAA,CAAA;;ACEzC;AAEQ,SAAU,2CAA2C,CAAC,KAAa,EAAA;IACvE,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACKM,MAAO,gCAAiC,SAAQ,sBAAsB,CAAA;AAD5E,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAC1D,wBAAwB,CACzB;AAEkB,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,CAAC,gBAAgB,CACzE,gCAAgC,CACjC;AAoBF,IAAA;AAlBQ,IAAA,aAAa,CAAC,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACxE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B;IACH;IAEO,cAAc,CACnB,EAAU,EACV,KAA4B,EAAA;QAE5B,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK;AACnD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEA,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,gCAAgC,CAAC,MAAM;AAChD,aAAA,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D;8GA1BW,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhC,gCAAgC,EAAA,CAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAD5C;;;ACVM,MAAM,oCAAoC,GAAG;AAClD,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,GAAA,EAAA,CAAA,CAAA;;ACEvC;AAEQ,SAAU,yCAAyC,CAAC,KAAa,EAAA;IACrE,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACCM,MAAO,2BAA4B,SAAQ,sBAAsB,CAAA;AADvE,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,CACpE,2BAA2B,CAC5B;AAOF,IAAA;AALC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACzE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;8GATW,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3B,2BAA2B,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACNM,MAAM,+BAA+B,GAAG;AAC7C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,sBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,GAAA,EAAA,CAAA,CAAA;;ACElC;AAEQ,SAAU,oCAAoC,CAAC,KAAa,EAAA;IAChE,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACEM,MAAO,oBAAqB,SAAQ,sBAAsB,CAAA;AADhE,IAAA,WAAA,GAAA;;AAEmB,QAAA,IAAA,CAAA,oBAAoB,GACnC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AAyB9C,IAAA;AAvBC,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC;AACT,aAAA,MAAM;AACN,aAAA,OAAO;AACP,aAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C;IAEA,IAAI,CACF,EAAiB,EACjB,KAA4B,EAAA;QAE5B,OAAO,IAAI,CAAC;AACT,aAAA,OAAO,CAAC,EAAE,EAAE,KAAK;AACjB,aAAA,OAAO;AACP,aAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,OAAO,IAAI,CAAC;aACT,SAAS,CAAC,EAAE;AACZ,aAAA,OAAO;aACP,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC;IAC1C;8GA1BW,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;ACPM,MAAM,wBAAwB,GAAG;AACtC,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ICLA;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;ACE3B;AAEQ,SAAU,6BAA6B,CAAC,KAAa,EAAA;IACzD,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACsBA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,gFAAgF,EAAE,EAAC,kFAAkF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,4FAAoE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,4FAAoE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,4FAAoE,CAAC,EAAE,OAAO,EAAC,EAAC,gFAAgF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,yFAAyF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mGAA2E,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mGAA2E,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mGAA2E,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAmCp3C,kCAAkC,CAAA;AAhC/C,IAAA,WAAA,GAAA;AAiCW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACf,QAAA,IAAA,CAAA,UAAU,GACjB,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,UAAU;AAChD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC9C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAgB,EAAE,gDAAC;AAChC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK,gDAAC;AACpB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAClB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;QAChC,IAAA,CAAA,SAAS,GAAkB,IAAI;AAC/B,QAAA,IAAA,CAAA,KAAK,GAA0B,IAAI,CAAC,UAAU,EAAE;AAEvC,QAAA,IAAA,CAAA,OAAO,GAAoB;AAClC,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjE,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACjE,IAAI,IAAI,CAAC;AACP,kBAAE;AACE,oBAAA;wBACE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACzC,wBAAA,KAAK,EAAE,YAAY;AACnB,wBAAA,QAAQ,EAAE,IAAI;AACf,qBAAA;AACD,oBAAA;wBACE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACpC,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,QAAQ,EAAE,IAAI;AACf,qBAAA;AACF;AACH,kBAAE;AACE,oBAAA;wBACE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AACrC,wBAAA,KAAK,EAAE,aAAa;AACpB,wBAAA,QAAQ,EAAE,IAAI;AACf,qBAAA;iBACF,CAAC;AACN,YAAA;gBACE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;AACjC,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA;AACE,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/B,wBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;wBAC3B,KAAK,EAAE,CAAC,GAAgB,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5C,qBAAA;AACD,oBAAA;AACE,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACjC,wBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;wBAC3B,KAAK,EAAE,CAAC,GAAgB,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAC9C,qBAAA;AACF,iBAAA;AACF,aAAA;SACF;AAyJF,IAAA;IAvJC,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,EAAE;IACf;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACf;QACF;AACA,QAAA,MAAM,OAAO,GAA8B,IAAI,CAAC;AAC9C,cAAE,IAAI,CAAC,UAAU,CAAC;AAClB,cAAE,IAAI,CAAC,IAAI,CAAC,cAAc;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD;IAEA,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK;AAC7B,YAAA,GAAG,GAAG;YACN,UAAU,EACR,kBAAkB,IAAI;mBACjB,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,gBAAgB;sBAC1D,IAAI,IAAI,EAAE;AAChB,kBAAE,EAAE;AACT,SAAA,CAAC,CAAC;IACL;IAEA,aAAa,GAAA;AACX,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CACnC,CAAC,GAAG,KAAmC,kBAAkB,IAAI,GAAG,CACjE;AACD,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAG;AAClC,YAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU;YACjC,IAAI,OAAO,GAAsC,QAAQ;YACzD,OAAO,OAAO,EAAE;AACd,gBAAA,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAC5D,oBAAA,OAAO,KAAK;gBACd;AACA,gBAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;AACvB,gBAAA,OAAO,GAAG,UAAU,CAAC,IAAI,CACvB,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,gBAAgB,CAClD;YACH;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IAAI,CAAC,GAAiB,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACf;QACF;QACA,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI;QAChC,IAAI,CAAC,KAAK,GAAG;AACX,cAAE;gBACE,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;AAC5B,gBAAA,gBAAgB,EACd,kBAAkB,IAAI,GAAG,GAAG,GAAG,CAAC,gBAAgB,GAAG,IAAI;AACzD,gBAAA,SAAS,EAAE,WAAW,IAAI,GAAG,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC;AAClD;AACH,cAAE,IAAI,CAAC,UAAU,EAAE;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACf;QACF;AACA,QAAA,MAAM,OAAO,GAA4B,IAAI,CAAC;AAC5C,cAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK;AACjD,cAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAG;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI;AACvB,gBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC1C,KAAK;AACN,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,MAAM,CAAC,GAAgB,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACf;QACF;AACA,QAAA,IAAI,CAAC;aACF,IAAI,CAAC,0BAA0B,EAAE;AAChC,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC;sBACR,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB;sBACjC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;gBACjC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CACrB,0DAA0D,CAC3D;gBACD,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACtC,aAAA;SACF;AACA,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,SAAS,IAAG;YACrB,IAAI,SAAS,EAAE;AACb,gBAAA,IAAI,CAAC,GAAG,CACN,IAAI,CAAC;sBACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC/B,sBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAC5B,MAAK;oBACH,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,EAAE,EAAE;AAC7B,wBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;oBACzB;oBACA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;AACnE,gBAAA,CAAC,CACF;YACH;AACF,QAAA,CAAC,CAAC;IACN;IAEQ,GAAG,CAAI,OAAsB,EAAE,IAAwB,EAAA;AAC7D,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACf;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB;aACG,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAG;AACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC;YACb,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC;AAC5D,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,yJAAyJ,CAC1J,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;IAEQ,UAAU,GAAA;QAChB,OAAO;AACL,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,SAAS,EAAE,CAAC;SACb;IACH;8GAnNW,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,2EApBlC,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,0BC7C9D,0gGAwGA,EAAA,MAAA,EAAA,CAAA,sIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlEI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,eAAe,mXACf,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,otBACf,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAsBb,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAhC9C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAAA,eAAA,EAEvB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,WAAW;wBACX,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,eAAe;wBACf,sBAAsB;AACvB,qBAAA,EAAA,SAAA,EACU,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,0gGAAA,EAAA,MAAA,EAAA,CAAA,sIAAA,CAAA,EAAA;;;;;;;;AE3CvD,MAAM,iCAAiC,GAAW;AACvD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;AAC9B,QAAA,aAAa,EAAE,MACb,mFAAkD,CAAC,IAAI,CACrD,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAC1C;AACJ,KAAA;;AAGI,MAAM,2BAA2B,GAAW;AACjD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;AACzB,QAAA,aAAa,EAAE,MACb,mFAAkD,CAAC,IAAI,CACrD,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAC1C;AACJ,KAAA;;;;;;;;;ACPH,MAAMJ,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,yFAAyF,EAAE,EAAC,kFAAkF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,4FAAoE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,4FAAoE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,4FAAoE,CAAC,EAAE,OAAO,EAAC,EAAC,gFAAgF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,yFAAyF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mGAA2E,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mGAA2E,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mGAA2E,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MA8E73C,yCAAyC,CAAA;AAhEtD,IAAA,WAAA,GAAA;AAiEW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEf,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAiC,eAAe,CAAC;AAE9D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAKzB,YAAY,CAAC;QAEf,IAAA,CAAA,IAAI,GAAG,EAAE;QAET,IAAA,CAAA,IAAI,GAAG,EAAE;QAET,IAAA,CAAA,WAAW,GAAG,EAAE;QAEhB,IAAA,CAAA,eAAe,GAAG,KAAK;AAqBxB,IAAA;AAnBC,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC;QACrC;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YAC1C;QACF;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACnB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACtB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,IAAI;AAC5C,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,SAAS,EAAE,CAAC;AACb,SAAA,CAAC;IACJ;8GAtCW,yCAAyC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yCAAyC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtD1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA1DC,WAAW,+yCACX,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,kBAAkB,0SAClB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAwDL,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBAhErD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;oBACjD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,eAAe;wBACf,eAAe;wBACf,kBAAkB;wBAClB,cAAc;AACf,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDT,EAAA,CAAA;AACF,iBAAA;;;AC3FD;AAMA;AAEA,MAAMN,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,iGAAiG,EAAE,EAAC,iGAAiG,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,8FAA8F,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAS/8B,kCAAkC,CAAA;AAP/C,IAAA,WAAA,GAAA;AAQE,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAChB,IAAA;8GAFY,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB/C,iCAA+B,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDeR,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEtB,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAP9C,SAAS;+BACE,kCAAkC,EAAA,eAAA,EAG3B,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEfpC;AAEA;;ACGA;AAEA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,8FAA8F,EAAE,EAAC,iGAAiG,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,8FAA8F,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAEl9B,MAAM,+BAA+B,GAAW;AACrD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,mFAAkD,CAAC,IAAI,CACrD,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAC1C;AAEH,QAAA,QAAQ,EAAE;AACR,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,UAAU,EAAE,aAAa;AAC1B,aAAA;AACD,YAAAO,gBAAc,CAAC;AACb,gBAAA,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAEP,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;AAC1C,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,MAAM,EAAE,MACN,0FAAoG,CAAC,IAAI,CACvG,CAAC,IAAI,CAAC,CAAC,yCAAyC,CACjD;aACJ,CAAC;AACF,YAAAO,gBAAc,CAAC;AACb,gBAAA,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAEP,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;AAC3C,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,MAAM,EAAE,MACN,kFAAkF,CAAC,IAAI,CACrF,CAAC,IAAI,CAAC,CAAC,iCAAiC,CACzC;aACJ,CAAC;AAEF,YAAAO,gBAAc,CAAC;AACb,gBAAA,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAEP,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACrC,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,MAAM,EAAE,MACN,qFAAwF,CAAC,IAAI,CAC3F,CAAC,IAAI,CAAC,CAAC,oCAAoC,CAC5C;aACJ,CAAC;AACH,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;ACnDA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,2EAA2E,EAAE,EAAC,6EAA6E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2FAAmE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2FAAmE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2FAAmE,CAAC,EAAE,OAAO,EAAC,EAAC,2EAA2E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,+DAA+D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6EAAqD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6EAAqD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6EAAqD,CAAC,EAAE,OAAO,EAAC,EAAC,6DAA6D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAcnmD,gCAAgC,CAAA;AAN7C,IAAA,WAAA,GAAA;AAOW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEf,QAAA,IAAA,CAAA,IAAI,GACX,MAAM,CAAiC,eAAe,CAAC;AAExC,QAAA,IAAA,CAAA,SAAS,GACxB,MAAM,CACJ,YAAY,CACb;AAEH,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AAS9B,IAAA;IAPC,OAAO,GAAA;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrC;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IACxB;8GAnBW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B7C,unBAkBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,WAAW,kWAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5D,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAAA,eAAA,EAEtB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,EAAA,QAAA,EAAA,unBAAA,EAAA;;;AET1E,MAAMJ,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,uFAAuF,EAAE,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,qFAAqF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,EAAC,kFAAkF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAG1tD,uBAAuB,CAAA;AAD7C,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,kBAAkB,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAExC,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAE3D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgB,IAAI,oDAAC;AAEtC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,KAAK,uDAAC;AAE3B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAER,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAE/B,IAAA,CAAA,QAAQ,GAAa,EAAE;QAEvB,IAAA,CAAA,WAAW,GAAwB,OAAO;AAE5C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAE1B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAE9B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAE/B,QAAA,IAAA,CAAA,aAAa,GAAkB;YACtC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC;AAClD,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC;AAC1D,oBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE;oBAClC,KAAK,EAAE,CAAC,IAA0B,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC5D,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC;oBACxD,KAAK,EAAE,CAAC,IAA0B,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC9D,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CACtC,oCAAoC,CACrC;oBACD,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI;oBACxC,KAAK,EAAE,CAAC,IAA0B,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzD,iBAAA;AACF,aAAA;SACF;AAkNF,IAAA;IA9MC,GAAG,GAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IACtB;AAEA,IAAA,WAAW,CAAC,IAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB;AAEQ,IAAA,QAAQ,CAAC,EAAkB,EAAA;AACjC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;QACpC,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAC7B,wCAAwC,CACzC,CACF;YACD;QACF;QACA,KAAK,IAAI,CAAC;aACP,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;AAChC,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,WAAW,EACT,IAAI,CAAC,WAAW,KAAK;AACnB,kBAAE,EAAE,UAAU,EAAE,SAAS;AACzB,kBAAE,SAAS;AACf,YAAA,mBAAmB,EAAE,UAAU;SAChC;aACA,KAAK,CAAC,KAAK,IAAG;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC;AACvE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAC7B,wCAAwC,CACzC,CACF;AACH,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,SAAS,CAAC,IAA0B,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB;QACF;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC;AACF,aAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE;AACxB,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,QAAQ,IAAG;AACf,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpB,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;oBAChC;gBACF;gBACA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,gCAAgC,EAAE;AAClC,oBAAA,IAAI,EAAE;wBACJ,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACxD,wBAAA,OAAO,EAAE;AACP,4BAAA;AACE,gCAAA,KAAK,EAAE,QAAQ;gCACf,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CACpC,0BAA0B,CAC3B;AACF,6BAAA;AACD,4BAAA;AACE,gCAAA,KAAK,EAAE,WAAW;gCAClB,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CACpC,sCAAsC,CACvC;AACF,6BAAA;AACF,yBAAA;AACD,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA;AACD,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC;gBACF;AACG,qBAAA,WAAW;AACX,qBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;qBACxC,SAAS,CAAC,MAAM,IAAG;oBAClB,IAAI,CAAC,MAAM,EAAE;AACX,wBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;wBAC3B;oBACF;oBACA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC;AACnD,gBAAA,CAAC,CAAC;YACN,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,qEAAqE,EACrE,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAC7B,qDAAqD,CACtD,CACF;AACD,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;YAC7B,CAAC;AACF,SAAA,CAAC;IACN;IAEQ,cAAc,CACpB,IAA0B,EAC1B,eAAwB,EAAA;AAExB,QAAA,IAAI,CAAC;AACF,aAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe;aACzC,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAE5C,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AAC9C,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,sDAAsD,EACtD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAC7B,qDAAqD,CACtD,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,MAAM,CAAC,IAA0B,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5B;QACF;QACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AACvD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE;sBACH,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0BAA0B;sBAC1D,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC;AACpD,gBAAA,OAAO,EAAE;sBACL,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAC7B,iFAAiF;sBAEnF,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAC7B,gEAAgE,CACjE;AACL,gBAAA,WAAW,EAAE;sBACT,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,oBAAoB;sBACpD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC9C,aAAA;AACF,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,SAAS,IAAG;YACrB,IAAI,CAAC,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBACvB;YACF;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC;qBACF,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO;qBAC9C,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAExC,qBAAA,SAAS,CAAC;AACT,oBAAA,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;AACzB,oBAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,wBAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAC7B,mEAAmE,CACpE,CACF;oBACH,CAAC;AACF,iBAAA,CAAC;YACN;iBAAO;AACL,gBAAA,IAAI,CAAC;qBACF,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO;qBACnC,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAExC,qBAAA,SAAS,CAAC;AACT,oBAAA,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE;AACzB,oBAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,wBAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAC7B,mEAAmE,CACpE,CACF;oBACH,CAAC;AACF,iBAAA,CAAC;YACN;AACF,QAAA,CAAC,CAAC;IACN;8GApQoB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAD5C;;;ACID,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,qFAAqF,EAAE,EAAC,yFAAyF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAC,qFAAqF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,EAAC,kFAAkF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAQ9nE,8BAA8B,CAAA;AAN3C,IAAA,WAAA,GAAA;AAOW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAQP,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEtC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAyB,EAAE,iDAAC;AAE1C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAElB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,EAAE,wDAAC;AAEzB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAGpB,IAAI,wDAAC;AAEN,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,EAAE,6DAAC;QAE9B,IAAA,CAAA,iBAAiB,GAAG,MAAM,EAAwB;QAE3D,IAAA,CAAA,OAAO,GAAoB,EAAE;AA0E9B,IAAA;IAxEC,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,GAAG;YACb,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC7C,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AACnE,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;AACrE,YAAA,IAAI,CAAC,aAAa;SACnB;QACD,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,KAAK,IAAI,CAAC,gBAAgB,EAAE;IAC9B;AAEQ,IAAA,MAAM,gBAAgB,GAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CACX,gEAAgE,EAChE,KAAK,CACN;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACxB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAC5D;QACH;IACF;IAEA,iBAAiB,CAAC,KAAY,EAAE,IAA0B,EAAA;QACxD,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB;QACF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;aACrC,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,KAAK,IACT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;AAClE,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,yDAAyD,EACzD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oDAAoD,CAAC,CACrE;YACH,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,MAAM,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;AACzB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;AACxB,gBAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;YACrD;AACA,YAAA,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrD,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC9D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC;AAC7E,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CACvD;QACH;IACF;8GAvGW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7B3C,+mDAoDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1BY,eAAe,oXAAE,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGtC,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;+BACE,0BAA0B,EAAA,eAAA,EACnB,uBAAuB,CAAC,MAAM,WACtC,CAAC,eAAe,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,+mDAAA,EAAA;;sBAMjD,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAGxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;AEjCrB,SAAU,mBAAmB,CAAC,IAAwB,EAAA;IAC1D,OAAO,CAAA,gBAAA,EAAmB,IAAI,CAAA,CAAE;AAClC;AAEM,SAAU,mBAAmB,CAAC,GAAW,EAAA;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CACjD,KAAK,IAAI,GAAG,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAC5C;IACD,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,IAAI;IACb;AACA,IAAA,MAAM,MAAM,GAAuC;AACjD,QAAA,MAAM,EACJ,oEAAoE;AACtE,QAAA,KAAK,EACH,2FAA2F;AAC7F,QAAA,KAAK,EAAE,8DAA8D;AACrE,QAAA,UAAU,EACR,0EAA0E;KAC7E;IACD,MAAM,GAAG,GAAG,CAAA,mbAAA,EAAsb,MAAM,CAAC,IAAI,CAAC,YAAY;AAC1d,IAAA,OAAO,sBAAsB,kBAAkB,CAAC,GAAG,CAAC,EAAE;AACxD;AAEM,SAAU,iBAAiB,CAAC,MAAyB,EAAA;IACzD,IAAI,OAAO,GAAG,CAAC;AACf,IAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACrD,QAAA,MAAM,SAAS,GACb,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AACtB,YAAA,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAC1B,YAAA,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5B,QAAA,IAAI,SAAS,GAAG,EAAE,EAAE;YAClB,OAAO,IAAI,CAAC;QACd;IACF;AACA,IAAA,OAAO,MAAM,CAAC,MAAM,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1D;AAEA,SAAS,UAAU,CACjB,KAAuB,EACvB,KAAa,EACb,MAAkB,EAAA;IAElB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;QACrC,MAAM,OAAO,GAAG,MAAK;YACnB,YAAY,CAAC,OAAO,CAAC;AACrB,YAAA,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC;AACtC,YAAA,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;AAC5C,QAAA,CAAC;QACD,MAAM,IAAI,GAAG,MAAK;AAChB,YAAA,OAAO,EAAE;AACT,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;QACD,MAAM,MAAM,GAAG,MAAK;AAClB,YAAA,OAAO,EAAE;AACT,YAAA,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,wBAAwB,CAAC,CAAC;AACrE,QAAA,CAAC;AACD,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC9B,YAAA,OAAO,EAAE;AACT,YAAA,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAChD,CAAC,EAAE,KAAK,CAAC;AACT,QAAA,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnD,QAAA,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvD,QAAA,IAAI;AACF,YAAA,MAAM,EAAE;QACV;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,EAAE;YACT,MAAM,CAAC,KAAK,CAAC;QACf;AACF,IAAA,CAAC,CAAC;AACJ;AAEO,eAAe,sBAAsB,CAAC,IAAU,EAAA;IACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACrC,IAAA,IAAI;AACF,QAAA,KAAK,CAAC,KAAK,GAAG,IAAI;AAClB,QAAA,KAAK,CAAC,WAAW,GAAG,IAAI;AACxB,QAAA,KAAK,CAAC,OAAO,GAAG,MAAM;AACtB,QAAA,MAAM,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,MAAK;AACzC,YAAA,KAAK,CAAC,GAAG,GAAG,GAAG;YACf,KAAK,CAAC,IAAI,EAAE;AACd,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;QAC3D;QACA,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACjD,QAAA,QAAQ,CAAC,KAAK,GAAG,EAAE;QACnB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CACxB,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,CACxD;AACD,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;QAC3C;AACA,QAAA,MAAM,IAAI,GAAG,OAAO,IAAY,KAAI;AAClC,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,KAAK,EAAE;AAC9C,gBAAA,MAAM,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAK;AACrC,oBAAA,KAAK,CAAC,WAAW,GAAG,IAAI;AAC1B,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;AACxC,cAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;cAC9C,CAAC;QACL,IAAI,QAAQ,GAAG,CAAC;AAChB,QAAA,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,KAAK,GAAG,KAAK;AACjB,QAAA,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE;AAC5C,YAAA,MAAM,IAAI,CAAC,IAAI,CAAC;AAChB,YAAA,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC/D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CACjE;AACD,YAAA,IAAI,KAAK,GAAG,SAAS,EAAE;gBACrB,SAAS,GAAG,KAAK;gBACjB,QAAQ,GAAG,IAAI;YACjB;;AAEA,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;gBACjB,KAAK,GAAG,IAAI;gBACZ;YACF;QACF;QACA,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,IAAI,CAAC,QAAQ,CAAC;QACtB;QACA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC;QAC3E,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;QAC3C;AACA,QAAA,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QAC1D,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AACjD,YAAA,MAAM,CAAC,MAAM,CACX,IAAI,IACF;AACE,kBAAE,OAAO,CAAC,IAAI;AACd,kBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,EACrD,YAAY,EACZ,IAAI,CACL;AACH,QAAA,CAAC,CAAC;IACJ;YAAU;AACR,QAAA,IAAI;YACF,KAAK,CAAC,KAAK,EAAE;AACb,YAAA,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC;YAC5B,KAAK,CAAC,IAAI,EAAE;QACd;gBAAU;AACR,YAAA,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;QAC1B;IACF;AACF;;AC7IA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,kFAAkF,EAAE,EAAC,yFAAyF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAC,qFAAqF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,EAAC,kFAAkF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAqB3nE,2BAA2B,CAAA;AAnBxC,IAAA,WAAA,GAAA;AAoBW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAKP,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEtC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,EAAE,+CAAC;AAEhB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAuC5B,IAAA;IArCC,QAAQ,GAAA;AACN,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB;QACF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,GAAG,GACP,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;AACjD,gBAAA,MAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACvD,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;YAChD;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC9B,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACnB;QACF;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC;AACxE,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,MAAM,EAAE;YACf;QACF;gBAAU;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC9B,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB;QACF;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5D;8GApDW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCxC,+LAMA,EAAA,MAAA,EAAA,CAAA,mHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDgBY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAgBd,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAnBvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,mBAChB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,+LAAA,EAAA,MAAA,EAAA,CAAA,mHAAA,CAAA,EAAA;;sBAmBzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;AEb3B,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,uFAAuF,EAAE,EAAC,yFAAyF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,0FAAkE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAC,qFAAqF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sFAA8D,CAAC,EAAE,OAAO,EAAC,EAAC,kFAAkF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,mFAA2D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAoBvoE,MAAO,gCACX,SAAQ,uBAAuB,CAAA;AAnBjC,IAAA,WAAA,GAAA;;AAqBW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAWI,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,UAAU,CAAC;QAEvB,IAAA,CAAA,WAAW,GAAG,SAAkB;AAEnD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAyB,EAAE,mDAAC;AAE5C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;QAEhC,IAAA,CAAA,OAAO,GAAoB,EAAE;AAmD9B,IAAA;IAjDC,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;AAC/D,YAAA;gBACE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AAC/B,gBAAA,KAAK,EAAE,cAAc;gBACrB,YAAY,EAAE,IAAI,CAAC,aAAa;AAChC,gBAAA,KAAK,EAAE,OAAO;AACf,aAAA;AACD,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AACnE,YAAA;gBACE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACpC,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI,CAAC,kBAAkB;AACtC,aAAA;AACD,YAAA,IAAI,CAAC,aAAa;AACnB,SAAA,CAAC,GAAG,CAAC,MAAM,KAAK;AACf,YAAA,GAAG,MAAM;AACT,YAAA,KAAK,EAAE,CAAC,IAA0B,KAChC,IAAI,EAAE,MAAM,KAAK,WAAW,GAAG,mBAAmB,GAAG,oBAAoB;AAC5E,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE;IACf;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB;QACF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW;aACtC,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1C,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,qDAAqD,EACrD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oDAAoD,CAAC,CACrE;YACH,CAAC;AACF,SAAA,CAAC;IACN;8GAxEW,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,SAAA,EAFhC,CAAC,wBAAwB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAO1B,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrDnC,i0EAiEA,EAAA,MAAA,EAAA,CAAA,sNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED7BI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,eAAe,mXACf,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,8BAA8B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC9B,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIlB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAlB5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,WAAW;wBACX,eAAe;wBACf,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,sBAAsB;wBACtB,8BAA8B;wBAC9B,2BAA2B;qBAC5B,EAAA,SAAA,EACU,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,i0EAAA,EAAA,MAAA,EAAA,CAAA,sNAAA,CAAA,EAAA;;sBAOpC,SAAS;uBAAC,sBAAsB;;sBAGhC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAG3C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;;;;;;AE3DnD;AAEA;;ACAO,MAAM,6BAA6B,GAAW;AACnD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,aAAa,EAAE,MACb,iFAAgD,CAAC,IAAI,CACnD,CAAC,IAAI,CAAC,CAAC,gCAAgC,CACxC;AACJ,KAAA;;;MCKU,wBAAwB,CAAA;AAHrC,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAA0B,UAAU;AAClE,aAAA,aAAa;AACC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAA,CAAA,KAAK,GAAG,EAAE;QACV,IAAA,CAAA,SAAS,GAAG,KAAK;QAEhB,IAAA,CAAA,qBAAqB,GAAoB,MAAM;QAC/C,IAAA,CAAA,yBAAyB,GAAG,KAAK;AACvB,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU;AAuFtE,IAAA;IArFC,IACI,eAAe,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YACxB;QACF;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,MAAM,EAAE;IACf;IAGA,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;IAGA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,OAAO,EAAE;IAChB;IAGA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;AACnC,QAAA,IAAI,CAAC,KAAK;YACR,IAAI,CAAC,qBAAqB,KAAK;kBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;kBACpC,IAAI,CAAC;sBACH,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG;sBAC7B,IAAI;;QAEZ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7C;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,MAAM,EAAE;IACf;AAGA,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC5B,IAAI,IAAI,CAAC,yBAAyB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAC3D,KAAK,CAAC,cAAc,EAAE;QACxB;IACF;AAGA,IAAA,OAAO,CAAC,KAAqB,EAAA;QAC3B,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE;QAC3D,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAClD;QACF;QACA,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;YACzD;QACF;QACA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;AACxD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC;cACd,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG;cAC/B,MAAM;QACV,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;AAC5D,QAAA,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;AACtB,QAAA,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;AACzB,QAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpB,SAAS,CAAC,eAAe,EAAE;AAC3B,QAAA,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;IAChB;AAEQ,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;IACnE;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,MAAM,EAAE;AACzC,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACpD;aAAO;YACL,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK;QACvC;IACF;8GA/FW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA;;sBAQE;;sBACA;;sBACA;;sBAEA;;sBASA,YAAY;uBAAC,kBAAkB;;sBAK/B,YAAY;uBAAC,gBAAgB;;sBAM7B,YAAY;uBAAC,OAAO;;sBAgBpB,YAAY;uBAAC,MAAM;;sBAMnB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;sBAOlC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AClDnC,MAAMR,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,qFAAqF,EAAE,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,qFAAqF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAU76B,+BAA+B,CAAA;AAuB1C,IAAA,WAAA,GAAA;AAtBS,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEf,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAuB,eAAe,CAAC;AAEpD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAiC,EAAE,qDAAC;AAEtD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgB,IAAI,oDAAC;AAEtC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,oDAAC;AAExB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAEV,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAE9C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,EAC3B,YAAmE,EACpE;AAEgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAG9C,IAAI,CAAC,IAAI,EAAE;IACb;AAGA,IAAA,QAAQ,CAAC,KAAoB,EAAA;QAC3B,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;IAClB;IAEA,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACrC;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC;AACF,aAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC1B,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,SAAS,IACb,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,CACnE;AACH,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,sDAAsD,EACtD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CACnE;YACH,CAAC;AACF,SAAA,CAAC;IACN;IAEA,KAAK,GAAA;AACH,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE;QACtC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACrC;QACF;AACA,QAAA,IAAI,cAAc,KAAK,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAC/D;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC;AACF,aAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YAC5B,cAAc;AACd,YAAA,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;SACnC;aACA,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEzC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,wDAAwD,EACxD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,0GAA0G,CAC3G,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;QAClB;IACF;8GAvGW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAF/B,CAAC,gCAAgC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjC/C,yvEA4EA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED5CsB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,olBAA1D,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,mBAGpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,EAAA,SAAA,EAC1D,CAAC,gCAAgC,CAAC,EAAA,QAAA,EAAA,yvEAAA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA;;sBA6B5C,YAAY;uBAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC;;;AEvCrD,MAAML,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,qFAAqF,EAAE,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,qFAAqF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAoB76B,+BAA+B,CAAA;AA2B1C,IAAA,WAAA,GAAA;AA1BS,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEf,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA6B,eAAe,CAAC;AAC1D,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAyB,EAAE,iDAAC;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgB,IAAI,oDAAC;AACtC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAClB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AACvB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAClB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/C,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CACxB,IAAI,IACF,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;gBAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxC,iBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAC1B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,CAAA,EAAG,IAAI,CAAC,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxE;AACH,QAAA,CAAC,yDAAC;AAEe,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACtC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,EAC3B,YAAmE,EACpE;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAG9C,IAAI,CAAC,IAAI,EAAE;IACb;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB;QACF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC;aACN,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACpC,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,kDAAkD,EAClD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAC/D;YACH,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,MAAM,CAAC,KAAY,EAAA;AACjB,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB;IACF;IAEA,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YAClC;QACF;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3E,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CACrE;YACD;QACF;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACtB;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;IAClB;8GAhFW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,SAAA,EAF/B,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzCvC,uqDAwDA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhBY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAG/C,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,WACtC,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,EAAA,SAAA,EAChD,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,uqDAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA;;;AEzCvC;AA4FA;AAEA,MAAMN,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,6DAA6D,EAAE,EAAC,6EAA6E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2FAAmE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2FAAmE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2FAAmE,CAAC,EAAE,OAAO,EAAC,EAAC,2EAA2E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,+DAA+D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6EAAqD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6EAAqD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6EAAqD,CAAC,EAAE,OAAO,EAAC,EAAC,6DAA6D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,2EAAmD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAmCrlD,oBAAoB,CAAA;;IAmY/B,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;QAChE;IACF;;AAGA,IAAA,WAAA,GAAA;AAzYS,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;;AAGf,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA8B,IAAI,gDAAC;AAE/C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkB,MAAM,gDAAC;QAErC,IAAA,CAAA,OAAO,GAAG,MAAM,EAAwB;QAExC,IAAA,CAAA,OAAO,GAAG,MAAM,EAAwB;QAExC,IAAA,CAAA,iBAAiB,GAAG,MAAM,EAAwB;QAElD,IAAA,CAAA,UAAU,GAAG,MAAM,EAAwB;QAE3C,IAAA,CAAA,SAAS,GAAG,MAAM,EAAQ;QAE1B,IAAA,CAAA,qBAAqB,GAAG,MAAM,EAAwB;AAKtD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAA8B,IAAI,uDAAC;QAEvD,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CACpD,yBAAyB,CAC1B;QAEQ,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAEjD,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CACzD,kCAAkC,CACnC;QAEQ,IAAA,CAAA,wBAAwB,GAC/B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;QAEpC,IAAA,CAAA,KAAK,GAAG,MAAM,CAAmB;YACxC,IAAI,EAAE,kBAAkB,CAAC,MAAM;AAC/B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,MAAM,EAAE,EAAE;AACX,SAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEO,QAAA,IAAA,CAAA,SAAS,GAAG;AACnB,YAAA;gBACE,KAAK,EAAE,kBAAkB,CAAC,MAAM;gBAChC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AACrC,aAAA;AACD,YAAA,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACxE,YAAA,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACxE,YAAA;gBACE,KAAK,EAAE,kBAAkB,CAAC,UAAU;gBACpC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACzC,aAAA;SACF;QAEQ,IAAA,CAAA,eAAe,GAAG,QAAQ,CACjC,MACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;AAC7D,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,2DACpB;AAEQ,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AAC3C,YAAA,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI;gBACvB,KAAK,kBAAkB,CAAC,KAAK;AAC3B,oBAAA,OAAO,eAAe;gBACxB,KAAK,kBAAkB,CAAC,KAAK;AAC3B,oBAAA,OAAO,YAAY;gBACrB,KAAK,kBAAkB,CAAC,UAAU;AAChC,oBAAA,OAAO,aAAa;AACtB,gBAAA;AACE,oBAAA,OAAO,SAAS;;AAEtB,QAAA,CAAC,+DAAC;AAEe,QAAA,IAAA,CAAA,gBAAgB,GAAG;AAClC,YAAA;gBACE,IAAI,EAAE,kBAAkB,CAAC,KAAK;AAC9B,gBAAA,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBAC3C,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;AAC3C,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,kBAAkB,CAAC,KAAK;AAC9B,gBAAA,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBAC3C,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;AAC3C,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,kBAAkB,CAAC,UAAU;AACnC,gBAAA,GAAG,EAAE,eAAe;gBACpB,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBAC1C,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AAC1C,gBAAA,MAAM,EAAE,EAAE;AACX,aAAA;SACO;AAED,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACtE;AAEQ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK,gDAAC;AAEpB,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,EAAE,+DAAC;AAEhC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,EAAE,0DAAC;AAEnB,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAC5C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,8DAChC;AAEgB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,yDAAC;AAEzD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK,2DAAC;AAE/B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,EAAE,yDAAC;AAE1B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,EAAE,sDAAC;AAEhD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAqB,EAAE,gDAAC;AAErC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,EAAE,qDAAC;AAEtB,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YACnD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CACvB,GAAG,IACD,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AACrC,gBAAA,CAAA,EAAG,GAAG,CAAC,IAAI,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1D;AACH,QAAA,CAAC,wDAAC;AAEO,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAC/B,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,wDAChE;AAEgB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAE/C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAI9C,IAAA,CAAA,aAAa,GAAG,CAAC;QAEjB,IAAA,CAAA,kBAAkB,GAAG,EAAE;AAEd,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAG/B,IAAI,2DAAC;AAEN,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;AAEzB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,CAAC,0DAAC;AAE1B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,EAAE,2DAAC;AAE5B,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,KAAK,+DAAC;AAEnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,EAAE,6DAAC;AAEtB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAyB,EAAE,0DAAC;AAEnD,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAIpC,IAAI,gEAAC;QAEP,IAAA,CAAA,mBAAmB,GAAG,CAAC;QAEvB,IAAA,CAAA,qBAAqB,GAAG,EAAE;AAEzB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,sDAAC;AAE1B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAElB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAyB,EAAE,wDAAC;AAEjD,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,KAAK,+DAAC;AAEnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,EAAE,6DAAC;AAE9B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA8B,IAAI,sDAAC;AAEtD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,6DAAC;AAEjC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,EAAE,2DAAC;QAE5B,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAA0B;AAC1D,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,kBAAkB,EAAE,IAAI;AACzB,SAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEO,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,KAAK,mEAAC;AAEvC,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,EAAE,iEAAC;AAElC,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM;YACzC,QACE,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,UAAU;gBAC5C,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC/B,gBAAA,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAEjC,QAAA,CAAC,gEAAC;AAEO,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CACvC,MACE,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,KAAK,WAAW;YAC1C,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC/B,YAAA,CAAC,IAAI,CAAC,qBAAqB,EAAE,iEAChC;AAEQ,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAiC,EAAE,4DAAC;AAE7D,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,KAAK,mEAAC;AAEvC,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,EAAE,iEAAC;AAElC,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,KAAK,gEAAC;AAEpC,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CACvC,IAAI,mEACL;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAyB,EAAE,uDAAC;AAEhD,QAAA,IAAA,CAAA,8BAA8B,GAAG,MAAM,CAAC,KAAK,0EAAC;AAE9C,QAAA,IAAA,CAAA,6BAA6B,GAAG,MAAM,CAAC,KAAK,yEAAC;AAE7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAChC,IAAI,4DACL;AAEQ,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,6DAAC;AAEjC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK,2DAAC;AAE/B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAiC,OAAO,uDAAC;AAE7D,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,yDAC1C;AAEQ,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,4DACvC;AAEQ,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAChC,IAAI,4DACL;AAEQ,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,KAAK,8DAAC;AAElC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,EAAE,4DAAC;AAE7B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAyB,EAAE,6DAAC;AAEtD,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,KAAK,oEAAC;AAExC,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,EAAE,kEAAC;AAEnC,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAgB,IAAI,gEAAC;AAElD,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;YAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,CACpD;YACD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CACpC,UAAU,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAC9C;AACH,QAAA,CAAC,gEAAC;QAEO,IAAA,CAAA,OAAO,GAAG,QAAQ,CACzB,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,mDACtD;AAEQ,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CACzB,MACE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;YAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;YAC1B,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC/B,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAC7B,aAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClE,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,CAAC,IAAI,CAAC,aAAa,EAAE,mDACxB;AAEQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AACnC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK;AAC7B,kBAAE,IAAI,CAAC,WAAW;kBAChB,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,IAAI,OAAO;YACzC,QAAQ,MAAM;AACZ,gBAAA,KAAK,WAAW;oBACd,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;AAC5C,gBAAA,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAC3C,gBAAA;oBACE,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;;AAE5C,QAAA,CAAC,uDAAC;QAEO,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CACvC,MACE,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACzB,aAAC,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,iEAC9C;AAEgB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEtC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,2BAA2B,CAAC;AAE3D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,CAAC,sDAAC;AAEtB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAgB,IAAI,yDAAC;AAE3C,QAAA,IAAA,CAAA,UAAU,GACjB,SAAS,CAAkC,YAAY,sDAAC;QAElD,IAAA,CAAA,oBAAoB,GAAG,KAAK;AAE3B,QAAA,IAAA,CAAA,cAAc,GAAY;AACjC,YAAA,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;AACnD,YAAA,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;YACzC,CAAC,cAAc,EAAE,aAAa,CAAC;YAC/B,CAAC,YAAY,EAAE,MAAM,CAAC;YACtB,CAAC,MAAM,EAAE,OAAO,CAAC;YACjB,CAAC,YAAY,EAAE,kBAAkB,CAAC;AAClC,YAAA,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,CAAC;YAC9D,CAAC,iBAAiB,EAAE,cAAc,CAAC;YACnC,CAAC,MAAM,EAAE,MAAM,CAAC;SACjB;AAEQ,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,OAAO,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE;AAC1C,gBAAA,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW;gBACjC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC3C,gBAAA,IAAI,EAAE;oBACJ,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI;AACxD,oBAAA,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;AAC1B,oBAAA,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI;AACjD,iBAAA;AACF,aAAA,CAAC;AACJ,QAAA,CAAC,wDAAC;AAEe,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEhD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAE1B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAIxC,IAAA,CAAA,iBAAiB,GAAG,CAAC;QAErB,IAAA,CAAA,iBAAiB,GAAG,CAAC;QAErB,IAAA,CAAA,uBAAuB,GAAG,CAAC;AAejC,QAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AACxB,YAAA,UAAU,EAAE;gBACV,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;AACzC,gBAAA,KAAK,EAAE,mBAAmB;AAC3B,aAAA;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;QAE9B,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,IAAG;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAChD;YACF;AAEA,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3D,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YAExB,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;;AAGlB,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAEhC,gBAAA,IAAI;oBACF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;gBACtC;wBAAU;AACR,oBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;gBACnC;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAEpE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnB,gBAAA,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC1B,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;gBAClB,SAAS,CAAC,MAAK;oBACb,IAAI,CAAC,oBAAoB,EAAE;oBAC3B,IAAI,CAAC,qBAAqB,EAAE;oBAC5B,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,SAAS,IAAG;AACjB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;AAChD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE;YAErC,IAAI,MAAM,GAAG,IAAI;YAEjB,SAAS,CAAC,MAAK;gBACb,MAAM,GAAG,KAAK;AAChB,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAEhC,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE;gBAChC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;gBACxC;YACF;YAEA,IAAI,CAAC,GAAG,EAAE;gBACR;YACF;AAEA,YAAA,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC;YAE5C,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC;gBACzC;YACF;AAEA,YAAA,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;gBACrB;YACF;AAEA,YAAA,MAAM,IAAI,GAAG,YAAW;gBACtB,IAAI,OAAO,EAAE;oBACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC;gBAClC;AAEA,gBAAA,IAAI;oBACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC1D;AAAE,gBAAA,MAAM;oBACN,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC9C;AACF,YAAA,CAAC;AAED,YAAA,KAAK,IAAI;iBACN,IAAI,CAAC,GAAG,IAAG;gBACV,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AACxC,oBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;gBACnC;AACF,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;gBAEhE,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AACxC,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CACrD;gBACH;AACF,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,YAAA,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;YAElD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI;AAC9B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAE9B,YAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK;AAE7D,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAEjD,YAAA,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE;AAC5C,gBAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE;AAC/B,gBAAA,IAAI,CAAC,mBAAmB,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B;YACF;AAEA,YAAA,IAAI,aAAa,EAAE,GAAG,KAAK,GAAG,EAAE;gBAC9B,MAAM,SAAS,GAAG,CAAA,OAAA,EAAU,GAAG,IAAI,aAAa,CAAC,GAAG,CAAA,CAAE;AAEtD,gBAAA,IAAI,SAAS,KAAK,IAAI,CAAC,qBAAqB,EAAE;oBAC5C;gBACF;AAEA,gBAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS;AACtC,gBAAA,IAAI,CAAC,mBAAmB,IAAI,CAAC;gBAE7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC;AAE3C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAE9B;YACF;YAEA,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE;AAC/B,gBAAA,IAAI,CAAC,mBAAmB,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B;YACF;AAEA,YAAA,MAAM,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,GAAG,EAAE;AAE/D,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,qBAAqB,EAAE;gBAC5C;YACF;AAEA,YAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS;AAEtC,YAAA,MAAM,SAAS,GAAG,EAAE,IAAI,CAAC,mBAAmB;AAE5C,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAE9B,MAAM,OAAO,GAAG;kBACZ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;kBAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;AAE9C,YAAA,KAAK;iBACF,IAAI,CAAC,GAAG,IAAG;AACV,gBAAA,IACE,SAAS,KAAK,IAAI,CAAC,mBAAmB;AACtC,oBAAA,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAC1B;AACA,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC/B;AACF,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;AAEpE,gBAAA,IACE,SAAS,KAAK,IAAI,CAAC,mBAAmB;AACtC,oBAAA,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAC1B;AACA,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACxB,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,2EAA2E,CAC5E,CACF;gBACH;AACF,YAAA,CAAC;iBACA,OAAO,CAAC,MAAK;AACZ,gBAAA,IACE,SAAS,KAAK,IAAI,CAAC,mBAAmB;AACtC,oBAAA,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAC1B;AACA,oBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;gBACrC;AACF,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;;AAGF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;YAC7B,aAAa,CAAC,WAAW,EAAE;YAC3B,MAAM,CAAC,OAAO,EAAE;AAEhB,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM,EAAE;AACnC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B;YAEA,IAAI,CAAC,uBAAuB,EAAE;AAChC,QAAA,CAAC,CAAC;IACJ;;;IAIA,YAAY,CAAC,oBAAoB,GAAG,KAAK,EAAA;AACvC,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;AACrC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC3B,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc;AAC3C,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;AAChC,YAAA,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC;SAClE;aACE,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEhD,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,MAAM,IAAG;AACb,gBAAA,IAAI,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE;AAClC,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,MAAM,CAAC,UAAU,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,CAAC,KACH,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC5D,CACF;oBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC1B,IAAI,CAAC,oBAAoB,EAAE;wBACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;oBAC3C;gBACF;YACF,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,oDAAoD,EACpD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,4DAA4D,CAC7D,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1D;IACF;AAEA,IAAA,SAAS,CAAC,EAAU,EAAA;QAClB,IAAI,CAAC,WAAW,CACd,QAAQ,EACR,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,CAAC,CACxD;IACH;AAEA,IAAA,UAAU,CAAC,KAAY,EAAA;AACrB,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;YAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACxC;IACF;AAEA,IAAA,cAAc,CAAC,QAA4B,EAAA;QACzC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACpC;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAU1B,yCAAyC,EAAE;YAC3C,IAAI,EAAE,EAAE,QAAQ,EAAE;AAClB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;QAEF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAG;YAClB,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1B;YACF;AAEA,YAAA,MAAM,OAAO,GACX,QAAQ,KAAK;kBACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;kBAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;YACpC;iBACG,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAE3C,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,KAAK,IAAG;AACZ,oBAAA,IAAI,QAAQ,KAAK,UAAU,EAAE;wBAC3B,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC1C;yBAAO;AACL,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvB;AACA,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACzB,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,KAAc,KAAI;oBACxB,OAAO,CAAC,KAAK,CACX,CAAA,iCAAA,EAAoC,QAAQ,CAAA,CAAE,EAC9C,KAAK,CACN;AACD,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,QAAQ,KAAK;0BACT,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,sDAAsD;0BAExD,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,iDAAiD,CAClD,CACN;gBACH,CAAC;AACF,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEA,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACvD;QACF;QACA,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1E;IAEA,MAAM,iBAAiB,CAAC,KAAY,EAAA;QAClC,IAAI,EAAE,KAAK,CAAC,MAAM,YAAY,gBAAgB,CAAC,EAAE;YAC/C;QACF;AACA,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7B,QAAA,KAAK,CAAC,KAAK,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YAChE;QACF;QACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAC5D;YACD;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;QACrD;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAClE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,wDAAwD,CACzD,CACF;QACH;gBAAU;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;IACF;AAEQ,IAAA,MAAM,cAAc,CAAC,IAAU,EAAE,OAAe,EAAA;AACtD,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC/D;QACF;AACA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAClD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1E,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC;AACrC,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;AAC/C,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBAChE,IAAI,CAAC,uBAAuB,EAAE;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,GAAG,OAAO;AACjC,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;gBAC3D,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC;YAC9C;QACF;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE;AAClC,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;AACxC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC;YAC/C;AACA,YAAA,MAAM,KAAK;QACb;gBAAU;AACR,YAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,OAAO,EAAE;AACvC,gBAAA,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;YAC9B;QACF;IACF;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC5C,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;QAC9B;IACF;IAEA,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;YAC7C;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AACA,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC1B,aAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE;aACxB,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEpD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3C,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACpE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACxB,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,sDAAsD,CACvD,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;;AAGQ,IAAA,cAAc,CAAC,IAAiC,EAAA;AACtD,QAAA,MAAM,OAAO,GAAG,EAAE,IAAI,CAAC,iBAAiB;AACxC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;YACjC;QACF;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,KAAK,IAAI,CAAC;AACP,aAAA,aAAa,CAAC,IAAI,CAAC,EAAE;aACrB,IAAI,CAAC,MAAM,IAAG;AACb,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACtC,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B;AACF,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,KAAc,KAAI;AACxB,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAClE,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACtC,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CACtB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oDAAoD,CAAC,CACrE;YACH;AACF,QAAA,CAAC;aACA,OAAO,CAAC,MAAK;AACZ,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACtC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;YACnC;AACF,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,2BAA2B,CAAC,IAAiC,EAAA;AACnE,QAAA,MAAM,OAAO,GAAG,EAAE,IAAI,CAAC,iBAAiB;AACxC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;YACjC;QACF;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,KAAK,IAAI,CAAC;AACP,aAAA,0BAA0B,CAAC,IAAI,CAAC,EAAE;aAClC,IAAI,CAAC,aAAa,IAAG;AACpB,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,iBAAiB,EAAE;gBACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;YACjD;AACF,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,KAAc,KAAI;AACxB,YAAA,OAAO,CAAC,KAAK,CACX,uDAAuD,EACvD,KAAK,CACN;AACD,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACtC,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAC7D;YACH;AACF,QAAA,CAAC;aACA,OAAO,CAAC,MAAK;AACZ,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACtC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;YACnC;AACF,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,oBAAoB,CAAC,IAAiC,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG,EAAE,IAAI,CAAC,uBAAuB;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;AACxB,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,kBAAkB,EAAE,IAAI;AACzB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC;YACvC;QACF;AACA,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC,KAAK,IAAI,CAAC;AACP,aAAA,eAAe,CAAC,IAAI,CAAC,EAAE;aACvB,IAAI,CAAC,KAAK,IAAG;AACZ,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,uBAAuB,EAAE;AAC5C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YAClC;AACF,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,KAAc,KAAI;AACxB,YAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACpE,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,uBAAuB,EAAE;AAC5C,gBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAC5B,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,uDAAuD,CACxD,CACF;YACH;AACF,QAAA,CAAC;aACA,OAAO,CAAC,MAAK;AACZ,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,uBAAuB,EAAE;AAC5C,gBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC;YACzC;AACF,QAAA,CAAC,CAAC;IACN;IAEA,iBAAiB,CAAC,KAAY,EAAE,IAA0B,EAAA;QACxD,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;IAEA,gBAAgB,GAAA;AACd,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AAChC,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,CAAC,IAAI;AACL,YAAA,CAAC,MAAM;YACP,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,IAAI,CAAC,UAAU,EAAE,EACjB;YACA;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC;AACF,aAAA,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO;aACpD,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB,IAAI,CAAC,eAAe,EAAE;YACxB,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC;AACpE,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,yDAAyD,CAC1D,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;;IAGA,cAAc,GAAA;AACZ,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,EAAE,EACxB;YACA;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,+BAA+B,EAAE;AACjC,YAAA,IAAI,EAAE;AACJ,gBAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;AAC9B,gBAAA,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AACtD,aAAA;AACD,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,IAAI,IAAG;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,IACE,IAAI;gBACJ,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;gBAClC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAC5D;AACA,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;YACrD;AACF,QAAA,CAAC,CAAC;IACN;;;IAIA,YAAY,GAAA;AACV,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,CAAC,IAAI;YACL,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,mBAAmB,EAAE,EAC1B;YACA;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,+BAA+B,EAAE;YACjC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;AAC1C,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;gBAClC;YACF;AAEA,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC;AACF,iBAAA,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO;AACjD,iBAAA,IAAI,CACH,SAAS,CAAC,MACR,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrC,gBAAA,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aAC1C,CAAC,CACH,EACD,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,SAAS,IAAG;oBAChB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;AACrC,oBAAA,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE;AACnC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;oBAClC,IAAI,CAAC,eAAe,EAAE;gBACxB,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,oBAAA,OAAO,CAAC,KAAK,CACX,6CAA6C,EAC7C,KAAK,CACN;AACD,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,yDAAyD,CAC1D,CACF;gBACH,CAAC;AACF,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;IACN;;;AAIA,IAAA,iBAAiB,CAAC,EAAU,EAAA;AAC1B,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,EAAE,EACxB;YACA;QACF;QACA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE;;AAGA,IAAA,iBAAiB,CAAC,IAA4B,EAAA;AAC5C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,MAAM,OAAO,GACX,IAAI,KAAK;AACP,cAAE,IAAI,CAAC,oBAAoB;AAC3B,cAAE,IAAI,CAAC,qBAAqB,EAAE;AAClC,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,CAAC,IAAI;AACL,YAAA,CAAC,OAAO;YACR,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,IAAI,CAAC,UAAU,EAAE,EACjB;YACA;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,MAAM,eAAe,GAAG,IAAI,KAAK,QAAQ;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,+BAA+B,EAAE;AACjC,YAAA,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,EAAE;AACf,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,gBAAgB,EAAE;sBACd,CAAC,WAAW;AACd,sBAAE,CAAC,OAAO,EAAE,UAAU,CAAC;AACzB,gBAAA,WAAW,EAAE;sBACT,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC;sBAC/C,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC;gBACrD,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBACjD,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC9C,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC;AACnE,aAAA;AACD,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,WAAW,IAAG;AACvB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE;gBAChC;YACF;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC;AACF,iBAAA,eAAe,CACd,WAAW,CAAC,EAAE,EACd,WAAW,CAAC,EAAE,EACd,IAAI,EACJ,WAAW,CAAC,OAAO;iBAEpB,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW,IAAG;AAClB,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;AACjC,oBAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;gBACxC,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,oBAAA,OAAO,CAAC,KAAK,CACX,6CAA6C,EAC7C,KAAK,CACN;AACD,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,sEAAsE,CACvE,CACF;gBACH,CAAC;AACF,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,iBAAiB,CAAC,IAA4B,EAAA;AAC5C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,MAAM,OAAO,GACX,IAAI,KAAK;AACP,cAAE,IAAI,CAAC,oBAAoB;AAC3B,cAAE,IAAI,CAAC,qBAAqB,EAAE;AAClC,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,CAAC,IAAI;AACL,YAAA,CAAC,OAAO;YACR,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,IAAI,CAAC,UAAU,EAAE,EACjB;YACA;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC;aACF,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO;aAC7C,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,WAAW,IAAG;AAClB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;AACjC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;YACxC,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,+CAA+C,EAC/C,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,uEAAuE,CACxE,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;;IAGA,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAClC;QACF;AACA,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAC9B,aAAA,oBAAoB;aACpB,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAExD,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAG;AACZ,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAChC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC;YAC7D,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,kDAAkD,EAClD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAC5B,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,0DAA0D,CAC3D,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;AAEA,IAAA,uBAAuB,CAAC,OAAgB,EAAA;AACtC,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;IACxC;AAEA,IAAA,iCAAiC,CAC/B,eAA6C,EAAA;AAE7C,QAAA,QACE,eAAe,CAAC,SAAS,KAAK,IAAI;YAClC,eAAe,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;IAExD;AAEA,IAAA,oBAAoB,CAAC,IAA4B,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;IAChD;;;IAIA,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;YAC7B;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AACA,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AACzB,aAAA,0BAA0B,CAAC,IAAI,CAAC,EAAE;aAClC,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEnD,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,aAAa,IAAG;gBACpB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC;gBAC/C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;YACjD,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAClE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACvB,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,oDAAoD,CACrD,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;;;IAIA,aAAa,GAAA;AACX,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,EAAE,EACvB;YACA;QACF;AACA,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAChD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACjD,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,CACjC;QACD,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;QACrC;IACF;;;AAIA,IAAA,gBAAgB,CAAC,EAAU,EAAA;AACzB,QAAA,IACE,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,EAAE,EACvB;YACA;QACF;QACA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAC3B,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CACjD;IACH;;;IAIA,qBAAqB,GAAA;QACnB,IACE,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC,EACnC;YACA;QACF;AACA,QAAA,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC;aAChB,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEzD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC;AAC5D,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAC7B,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,8DAA8D,CAC/D,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;;;AAIA,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAC3B,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,mBAAmB,EAAE;YAC/C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C;IACF;AAEA,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;AACnC,QAAA,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;YACpD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE;AACA,QAAA,IAAI,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAChC,YAAA,IAAI;gBACF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;YACtC;oBAAU;AACR,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;YACnC;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;AAEA,IAAA,cAAc,CAAC,QAAiC,EAAA;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACvD;QACF;AACA,QAAA,MAAM,IAAI,GAAG,CAAA,EAAA,EAAK,QAAQ,IAAI;AAC9B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa;YACjD,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,CAAC,YAAY,CACnB,IAAI,EACJ,QAAQ,CAAC,cAAc,EACvB,QAAQ,CAAC,YAAY,EACrB,KAAK,CACN;gBACD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC;gBACxC,QAAQ,CAAC,KAAK,EAAE;YAClB;QACF;AAAO,aAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;AAClC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;YACnC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AACxC,YAAA,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;QACtB;IACF;IAEA,WAAW,CACT,KAAQ,EACR,KAA0B,EAAA;QAE1B,IAAI,KAAK,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE;AAC9C,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK;AAC1B,gBAAA,GAAG,KAAK;gBACR,KAAK;AACL,gBAAA,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC;AAC9B,aAAA,CAAC,CAAC;YACH;QACF;QACA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5D;;;IAIA,MAAM,YAAY,CAAC,KAAY,EAAA;QAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,YAAY,gBAAgB,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;YACzE;QACF;AACA,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACjE,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;YAChB;QACF;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,IAAG;AAC3D,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC9B,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;gBACrC;AACF,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;gBAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI;gBAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,KAAK;AACnC,oBAAA,GAAG,KAAK;AACR,oBAAA,CAAC,MAAM,CAAC,GAAG,GAAG,QAAQ;AACvB,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,oBAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;wBAC5B,GAAG,EAAE,MAAM,CAAC,GAAG;AACf,wBAAA,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC;wBAC1D,QAAQ;AACT,qBAAA,CAAC;gBACJ;gBACA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;gBACvC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,KAAK,EAAE;AAC3C,oBAAA,IAAI;AACF,wBAAA,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC;AAC/C,wBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,YAAY,GAAG,MAAM,GAAG,KAAK;wBAC7D,MAAM,IAAI,CAAC,cAAc,CACvB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA,UAAA,EAAa,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAC/D,OAAO,CACR;oBACH;oBAAE,OAAO,KAAc,EAAE;AACvB,wBAAA,OAAO,CAAC,KAAK,CACX,8CAA8C,EAC9C,KAAK,CACN;AACD,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,sHAAsH,CACvH,CACF;oBACH;gBACF;YACF;QACF;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC;AAC9D,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oDAAoD,CAAC,CACrE;QACH;gBAAU;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;QAClB;IACF;;;IAIA,WAAW,GAAA;AACT,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACjE;QACF;AACA,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IACnC;;;IAIQ,gBAAgB,CAAC,GAAW,EAAE,IAAwB,EAAA;AAC5D,QAAA,IAAI,IAAI,KAAK,kBAAkB,CAAC,UAAU,EAAE;AAC1C,YAAA,OAAO,GAAG;QACZ;AACA,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;QAC9B,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;QAC9C,OAAO,SAAS,CAAC,IAAI;IACvB;;;IAIQ,YAAY,CAClB,IAAY,EACZ,IAAwB,EAAA;QAExB,QAAQ,IAAI;YACV,KAAK,kBAAkB,CAAC,KAAK;gBAC3B,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC1D,KAAK,kBAAkB,CAAC,KAAK;gBAC3B,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC1D,KAAK,kBAAkB,CAAC,UAAU;gBAChC,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC;AAC/C,YAAA;gBACE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;;IAEtE;;;AAIQ,IAAA,MAAM,mBAAmB,CAC/B,IAAY,EACZ,IAAwB,EAAA;AAExB,QAAA,IAAI;YACF,QAAQ,IAAI;gBACV,KAAK,kBAAkB,CAAC,KAAK;oBAC3B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBACtD,KAAK,kBAAkB,CAAC,KAAK;oBAC3B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBACtD,KAAK,kBAAkB,CAAC,UAAU;oBAChC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC;AAC3D,gBAAA;AACE,oBAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;;QAErD;AAAE,QAAA,MAAM;YACN,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;QACtC;IACF;;;AAIA,IAAA,aAAa,CAAC,GAAW,EAAA;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC;QAC3C,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,QAAQ;QACjB;AACA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC5C,QAAA,IAAI,QAAQ,EAAE,GAAG,KAAK,GAAG,EAAE;YACzB,OAAO,QAAQ,CAAC,QAAQ;QAC1B;AACA,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG;QAC9C,OAAO,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACpD;;;AAIA,IAAA,UAAU,CAAC,KAAY,EAAA;AACrB,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;YAC5C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C;IACF;;;IAIA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YAC9D;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACvB;;;IAIA,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACpC;QACF;QACA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QACvB;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACvB;;;IAIA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACvD;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAChE;QACF;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,OAAO,CACV,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;gBACrB,GAAG,IAAI,CAAC,KAAK,EAAE;AACf,gBAAA,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AACxD,gBAAA,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC;AAClE,gBAAA,8BAA8B,EAAE,IAAI,CAAC,8BAA8B,EAAE;AACrE,gBAAA,6BAA6B,EAC3B,IAAI,CAAC,6BAA6B,EAAE;AACtC,gBAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;AAC1B,gBAAA,eAAe,EAAE,IAAI,CAAC,oBAAoB;AACxC,sBAAE,IAAI,CAAC,uBAAuB;AAC9B,sBAAE,IAAI;AACT,aAAA,CAAC,CACH;QACH;aAAO;AACL,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;YAC/B,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE;QACF;IACF;;;IAIA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAAE;YAChE;QACF;AACA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE;AACxC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,gCAAgC,EAAE;AAClC,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;AAC3C,gBAAA,OAAO,EAAE;AACP,oBAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC1D,oBAAA,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClD,oBAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACzD,iBAAA;AACD,gBAAA,QAAQ,EAAE,aAAa;AACxB,aAAA;AACD,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,aAAa,EAAE;gBACvC;YACF;AACA,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE;AACzB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC5B;YACF;YACA,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACrC,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;gBAChE;YACF;AACA,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;YAC/B,IAAI,CAAC,IAAI,EAAE;gBACT;YACF;AACA,YAAA,IAAI,CAAC,OAAO,CACV,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9B,gBAAA,IAAI,IAAI,CAAC,OAAO;AACd,sBAAE,IAAI,CAAC,WAAW,CAAC,IAAI;sBACrB,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM;gBACN,IAAI,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK;AAC5C,sBAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;sBACzB,EAAE,CAAC;AACR,aAAA,CAAC,CACH;AACH,QAAA,CAAC,CAAC;IACN;;;AAIQ,IAAA,cAAc,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,sDAAsD,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtE,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,CAAC;AACL,aAAA,OAAO,CAAC,UAAU,EAAE,EAAE;AACtB,aAAA,OAAO,CAAC,0BAA0B,EAAE,GAAG;AACvC,aAAA,IAAI,EAAE;IACX;AAEA,IAAA,kBAAkB,CAAC,KAAyB,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACvD;QACF;QACA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAClC;QACF;QACA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;AACtE,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,WAAW,CACd,SAAS,EACT,CAAA,4BAAA,EAA+B,KAAK,CAAA,8BAAA,CAAgC,CACrE;YACD;QACF;AACA,QAAA,MAAM,WAAW,GACf,CAAA,4BAAA,EAA+B,KAAK,CAAA,EAAA,CAAI;YACxC,kEAAkE;YAClE,iEAAiE;YACjE,mEAAmE;AACnE,YAAA,oCAAoC;QACtC,MAAM,kBAAkB,GAAG;AACxB,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO;AACrB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA,GAAA,EAAM,kBAAkB,CAAA,IAAA,CAAM,CAAC;AACxD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;QACnC,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAChC,YAAA,IAAI;gBACF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;YACtC;oBAAU;AACR,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;YACnC;QACF;IACF;;;IAIA,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,IACE,CAAC,IAAI;YACL,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAC5B;YACA;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,+BAA+B,EAAE;AACjC,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,QAAQ,IAAG;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC3B;AACF,QAAA,CAAC,CAAC;IACN;;;IAIA,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,IACE,CAAC,IAAI;YACL,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY;AAC5B,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EACrB;YACA;QACF;AACA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU;AAC3C,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AACvD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE;sBACH,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B;sBACzC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;AACnC,gBAAA,OAAO,EAAE;sBACL,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,iFAAiF;sBAEnF,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,gEAAgE,CACjE;AACL,gBAAA,WAAW,EAAE;sBACT,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB;sBACnC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC7B,aAAA;AACF,SAAA,CAAC;QACF;AACG,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,SAAS,IAAG;AACrB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,QAAQ,EAAE;oBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;oBACjE;gBACF;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,gBAAA,IAAI,CAAC;qBACF,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO;qBAC9C,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,qBAAA,SAAS,CAAC;oBACT,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,oBAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,wBAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,4EAA4E,CAC7E,CACF;oBACH,CAAC;AACF,iBAAA,CAAC;YACN;AACF,QAAA,CAAC,CAAC;IACN;;;IAIA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAAE;YACpE;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC;AACF,aAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE;AACxB,aAAA,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,IAAI,CAAC,CAAC,CAAC;AAER,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,QAAQ,IAAG;AACf,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpB,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;oBAChC;gBACF;AACA,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAI1B,gCAAgC,EAAE;AAClC,oBAAA,IAAI,EAAE;wBACJ,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACvC,wBAAA,OAAO,EAAE;AACP,4BAAA;AACE,gCAAA,KAAK,EAAE,QAAQ;gCACf,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;AAClD,6BAAA;AACD,4BAAA;AACE,gCAAA,KAAK,EAAE,WAAW;gCAClB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CACnB,sCAAsC,CACvC;AACF,6BAAA;AACF,yBAAA;AACD,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA;AACD,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC;gBACF;AACG,qBAAA,WAAW;AACX,qBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;qBACxC,SAAS,CAAC,MAAM,IAAG;AAClB,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;oBAC1B,IAAI,CAAC,MAAM,EAAE;AACX,wBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;wBACpB;oBACF;oBACA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC;AACnD,gBAAA,CAAC,CAAC;YACN,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CACX,yDAAyD,EACzD,KAAK,CACN;AACD,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,qDAAqD,CACtD,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;IAEQ,cAAc,CACpB,IAA0B,EAC1B,eAAwB,EAAA;AAExB,QAAA,IAAI,CAAC;AACF,aAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe;aACzC,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;AAClD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AAChE,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,qDAAqD,CACtD,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;;;AAIQ,IAAA,WAAW,CAAC,IAA0B,EAAA;QAC5C,OAAO;YACL,GAAG,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;AAC9D,YAAA,IAAI,IAAI,CAAC,gBAAgB;AACvB,kBAAE;AACF,kBAAE;AACE,oBAAA,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC;iBACnE,CAAC;AACN,YAAA,8BAA8B,EAAE,IAAI,CAAC,8BAA8B,EAAE;AACrE,YAAA,6BAA6B,EAC3B,IAAI,CAAC,6BAA6B,EAAE;AACtC,YAAA,eAAe,EAAE,IAAI,CAAC,oBAAoB;AACxC,kBAAE,IAAI,CAAC,uBAAuB;AAC9B,kBAAE,IAAI;YACR,eAAe,EAAE,IAAI,CAAC,OAAO;SAC9B;IACH;;;IAIQ,WAAW,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACtD;AACA,QAAA,OAAO,IAAI;IACb;;;AAIQ,IAAA,OAAO,CAAC,IAAiC,EAAA;AAC/C,QAAA,IAAI,CAAC,aAAa,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE;AACpC,QAAA,IAAI,CAAC,oBAAoB,EAAE,WAAW,EAAE;AACxC,QAAA,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE;AACnC,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE;AAC/B,QAAA,IAAI,CAAC,mBAAmB,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,2BAA2B,CAC9B,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,CACnD;QACD,IAAI,CAAC,cAAc,CACjB,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,CACnD;QACD,IAAI,CAAC,oBAAoB,CACvB,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,CACnD;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,8BAA8B,CAAC,GAAG,CACrC,IAAI,EAAE,8BAA8B,IAAI,KAAK,CAC9C;QACD,IAAI,CAAC,6BAA6B,CAAC,GAAG,CACpC,IAAI,EAAE,6BAA6B,IAAI,KAAK,CAC7C;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,IAAI,EAAE,MAAM,KAAK,WAAW,IAAI,IAAI,EAAE,MAAM,KAAK;cAC7C,IAAI,CAAC;cACL,OAAO,CACZ;AACD,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC/D,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACb,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,kBAAkB,CAAC,MAAM;AAC7C,YAAA,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;AACxB,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AACtB,YAAA,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;AAC5B,YAAA,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AACtB,YAAA,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;AAChC,YAAA,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI;AAChC,YAAA,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,IAAI;AAC1C,YAAA,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,IAAI;AACxC,YAAA,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI;AACpC,YAAA,MAAM,EAAE,EAAE;AACX,SAAA,CAAC;AACF,QAAA,IACE,IAAI;YACJ,IAAI,CAAC,YAAY,KAAK,SAAS;AAC/B,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAC5B;YACA,IAAI,CAAC,gBAAgB,EAAE;QACzB;QACA,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAAE;YACxC,IAAI,CAAC,eAAe,EAAE;QACxB;AACA,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;;IAGQ,2BAA2B,CACjC,IAAiC,EACjC,KAAqC,EAAA;AAErC,QAAA,MAAM,YAAY,GAChB,IAAI,EAAE,eAAe,KAAK;AACxB,cAAE,IAAI,CAAC,eAAe,EAAE;AACxB,cAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,SAAS,KAAK,IAAI,EAAE,EAAE;AAClE,kBAAE,IAAI;QACd,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;IACxD;;AAGQ,IAAA,UAAU,CAAC,IAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;;;AAIQ,IAAA,OAAO,CACb,OAAyC,EACzC,QAAQ,GAAG,KAAK,EAAA;AAEhB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,YAAY,EAAE;YACpE;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB;aACG,IAAI,CACH,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAErC,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,IAAI,IAAG;AACX,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrB,IAAI,QAAQ,EAAE;AACZ,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzB;YACF,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC3D,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,IAAI,CAAC,CAAC,CAAC,OAAO,CACZ,yIAAyI,CAC1I,CACF;YACH,CAAC;AACF,SAAA,CAAC;IACN;8GA7nEW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EARpB;YACT,wBAAwB;YACxB,2BAA2B;YAC3B,wBAAwB;YACxB,yBAAyB;YACzB,oBAAoB;AACrB,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/HH,69zCAmkCA,EAAA,MAAA,EAAA,CAAA,qkHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED79BI,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,iBAAiB,mbACjB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,cAAc,iYACd,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,QAAA,EAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,oBAAoB,yNACpB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,2BAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,wBAAwB,qFACxB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAUP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjChC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,eAAe;wBACf,iBAAiB;wBACjB,aAAa;wBACb,kBAAkB;wBAClB,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,eAAe;wBACf,cAAc;wBACd,oBAAoB;wBACpB,cAAc;wBACd,eAAe;wBACf,gBAAgB;wBAChB,wBAAwB;wBACxB,wBAAwB;wBACxB,gBAAgB;qBACjB,EAAA,SAAA,EACU;wBACT,wBAAwB;wBACxB,2BAA2B;wBAC3B,wBAAwB;wBACxB,yBAAyB;wBACzB,oBAAoB;AACrB,qBAAA,EAAA,QAAA,EAAA,69zCAAA,EAAA,MAAA,EAAA,CAAA,qkHAAA,CAAA,EAAA;;sBAsBA,SAAS;uBAAC,uBAAuB;0DA8TW,YAAY,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;;;;;;AEhd3D;AAEO,MAAM,iBAAiB,GAAW;AACvC,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,qEAAmC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC;AAEvE,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;ACXA,MAAMX,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,uFAAuF,EAAE,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAAgE,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MA4BhhB,+BAA+B,CAAA;AAwB1C,IAAA,WAAA,GAAA;AAvBS,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEP,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAE9B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAEvB,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAC5C,6BAA6B,CAC9B;AAEgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAEvC,IAAA,CAAA,KAAK,GAAG,aAAa,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI;YACf,IAAI,CAAC,KAAK,CAAC,aAAa;AACzB,SAAA,CAAC,CAAC,IAAI,CACLC,KAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM;AAC5B,YAAA,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI;AACnC,YAAA,IAAI,EAAG,IAAI,CAAC,MAAM,CAAsC,IAAI,IAAI;YAChE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS;SACzD,CAAC,CAAC,CACJ;AAGC,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;IAC1E;AAEA,IAAA,iBAAiB,CAAC,QAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC;IACjD;AAEA,IAAA,MAAM,CAAC,WAAoB,EAAA;QACzB,KAAK,IAAI,CAAC;AACP,aAAA,QAAQ,CAAC,CAAC,WAAW,GAAG,eAAe,GAAG,KAAK,CAAC,EAAE;YACjD,UAAU,EAAE,IAAI,CAAC,KAAK;AACtB,YAAA,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;AACjC,YAAA,mBAAmB,EAAE,OAAO;SAC7B;aACA,KAAK,CAAC,KAAK,IAAG;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,KAAK,CAAC;AAC9E,QAAA,CAAC,CAAC;IACN;IAEA,SAAS,CAAC,IAA0B,EAAE,MAAe,EAAA;QACnD,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrB;IACF;AAEA,IAAA,QAAQ,CAAC,IAA0B,EAAA;QACjC,KAAK,IAAI,CAAC;aACP,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE;YAC1B,UAAU,EAAE,IAAI,CAAC,KAAK;AACtB,YAAA,mBAAmB,EAAE,UAAU;SAChC;aACA,KAAK,CAAC,KAAK,IAAG;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC;AAC1E,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,WAAW,CAAC,MAAe,EAAA;QACzB,IAAI,MAAM,EAAE;YACV,KAAK,IAAI,CAAC;AACP,iBAAA,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE;gBACjB,UAAU,EAAE,IAAI,CAAC,KAAK;AACtB,gBAAA,mBAAmB,EAAE,UAAU;aAChC;iBACA,KAAK,CAAC,KAAK,IAAG;AACb,gBAAA,OAAO,CAAC,KAAK,CACX,6DAA6D,EAC7D,KAAK,CACN;AACH,YAAA,CAAC,CAAC;QACN;IACF;8GA3EW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtBhC;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EArBoB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAhD,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAuBR,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBA1B3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;oBACtC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,oBAAoB,CAAC;AAC3D,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA;AACF,iBAAA;;;;;;;;AC7CD;AAoBA;AAEA,MAAMD,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,qFAAqF,EAAE,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,qFAAqF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,EAAC,kFAAkF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAiBxuD,MAAO,+BAAgC,SAAQ,uBAAuB,CAAA;AAf5E,IAAA,WAAA,GAAA;;AAgBW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAKf,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAyB,EAAE,iDAAC;AAE1C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAMvB,QAAA,IAAA,CAAA,OAAO,GAAoB;YAClC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC7C,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AACnE,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjE,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;AACrE,YAAA,IAAI,CAAC,aAAa;SACnB;AASF,IAAA;AAnBC,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc;IACrD;IAUA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;IACzB;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,MAAM,EAAE;IACf;8GA5BW,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,4EAF/B,CAAC,wBAAwB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAK1B,sBAAsB,uEC1CnC,krDAkDA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,eAAe,8BACf,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,otBACf,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIb,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAf3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAAA,eAAA,EAGxB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,WAAW;wBACX,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,eAAe;wBACf,sBAAsB;qBACvB,EAAA,SAAA,EACU,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,krDAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAKpC,SAAS;uBAAC,sBAAsB;;;;;;;;AE1CnC;AAEA;;ACFA;AASA;AAEA,MAAMN,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,kFAAkF,EAAE,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,uFAAuF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,yFAAiE,CAAC,EAAE,OAAO,EAAC,EAAC,qFAAqF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,uFAA+D,CAAC,EAAE,OAAO,EAAC,EAAC,kFAAkF,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,oFAA4D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAE3uD,MAAM,WAAW,GAAoC,OAAM,KAAK,KAAG;AACjE,IAAA,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CAACA,GAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C;AACA,IAAA,MAAM,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAACA,GAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9C;AACA,IAAA,OAAO,IAAI;AACb,CAAC;AAEM,MAAM,4BAA4B,GAAW;AAClD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,aAAa,EAAE,MACb,gFAA+C,CAAC,IAAI,CAClD,CAAC,IAAI,CAAC,CAAC,+BAA+B,CACvC;AACJ,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;AAClD,QAAA,aAAa,EAAE,MACb,gFAA4E,CAAC,IAAI,CAC/E,CAAC,IAAI,CAAC,CAAC,+BAA+B,CACvC;AACJ,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,IAAI,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;QAChC,SAAS,EAAE,CAAC,wBAAwB,CAAC;AACrC,QAAA,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;AAC9B,QAAA,aAAa,EAAE,MACb,gFAA4E,CAAC,IAAI,CAC/E,CAAC,IAAI,CAAC,CAAC,+BAA+B,CACvC;AACJ,KAAA;;AAGH;;;;AAIG;AACH;;AC5DA;AAYA;AAEA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,sJAAsJ,EAAE,EAAC,wJAAwJ,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wGAAgF,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wGAAgF,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wGAAgF,CAAC,EAAE,OAAO,EAAC,EAAC,sJAAsJ,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sGAA8E,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sGAA8E,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,sGAA8E,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAU1sC,4CAA4C,CAAA;AARzD,IAAA,WAAA,GAAA;AASE,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEE,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAE9C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAoB,EAAE,oDAAC;AAExC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,CAAC,sDAAC;QAEtB,IAAA,CAAA,QAAQ,GAAG,EAAE;AAEb,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,CAAC,iDAAC;AAEjB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAElB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,EAAE,oDAAC;AAErB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,EAAE,sDAAC;AAEvB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,EAAE,wDAAC;AAEzB,QAAA,IAAA,CAAA,OAAO,GAAoB;YAClC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;AAC/E,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;AACzD,YAAA;gBACE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;AACjC,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,SAAS,EAAE,CAAC,OAAwB,KAClC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,CAAA,EAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI;AAChF,aAAA;AACD,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AACtD,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AAC9D,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AAC5D,YAAA,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE;SACjE;AAuDF,IAAA;IArDC,QAAQ,GAAA;AACN,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAClD,gBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE;AACnB,gBAAA,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE;AACvB,gBAAA,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE;AAC5B,aAAA,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC;YACzE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC1G;gBAAU;AACR,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;AACxC,YAAA,KAAK,IAAI,CAAC,MAAM,EAAE;QACpB;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE;AACpD,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;AACxC,YAAA,KAAK,IAAI,CAAC,MAAM,EAAE;QACpB;IACF;IAEA,MAAM,MAAM,CAAC,OAAwB,EAAA;AACnC,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;AACxC,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;QACrB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAC9G;IACF;8GA1FW,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4CAA4C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,SAAA,EAF5C,CAAC,wBAAwB,CAAC,0BCtBvC,6qEAsDM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjC2B,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,+YAA1E,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGlB,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBARxD,SAAS;+BACE,8CAA8C,EAAA,eAAA,EAGvC,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,CAAC,EAAA,SAAA,EACrF,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,6qEAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEtBvC;AAEA;;ACCA;AAEO,MAAM,yCAAyC,GAAW;AAC/D,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,6FAA8D,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,4CAA4C,CAAC;AAE1H,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;;;;;;ACtBA,MAAML,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,oIAAoI,EAAE,EAAC,sIAAsI,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+FAAuE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+FAAuE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,+FAAuE,CAAC,EAAE,OAAO,EAAC,EAAC,oIAAoI,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6FAAqE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6FAAqE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6FAAqE,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAU9lC,sCAAsC,CAAA;AARnD,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,CAAC,GAAGA,GAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEP,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAE9C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAmC,EAAE,wDAAC;AAE3D,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,EAAE,kDAAC;AAEnB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,CAAC,gDAAC;QAEhB,IAAA,CAAA,QAAQ,GAAG,EAAE;AAEb,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAElB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAwDjC,IAAA;IAtDC,QAAQ,GAAA;AACN,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ;AAC/C,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChE;AAEA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACzD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC;YACxE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QAC/G;gBAAU;AACR,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB;IACF;AAEA,IAAA,MAAM,KAAK,GAAA;QACT,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACxD;QACF;QACA,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;IAC7B;IAEA,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAClC;IAEA,MAAM,UAAU,CAAC,MAAc,EAAA;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB;IACF;AAEQ,IAAA,MAAM,MAAM,CAAC,MAAc,EAAE,OAAgB,EAAA;AACnD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC;AAC9C,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACnB,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;QACrB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,KAAK,CAAC;YAChF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACjH;IACF;8GAtEW,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtC,sCAAsC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,SAAA,EAFtC,CAAC,wBAAwB,CAAC,0BCfvC,o/CAkCM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBM,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAG3B,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBARlD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qCAAqC,EAAA,eAAA,EAG9B,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,WAAW,EAAE,eAAe,CAAC,EAAA,SAAA,EAC5B,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,o/CAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEfvC;AAEA;;ACCA;AAEO,MAAM,iCAAiC,GAAW;AACvD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,qFAAqD,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,sCAAsC,CAAC;AAE3G,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;;;;;;ACtBA,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,0IAA0I,EAAE,EAAC,4IAA4I,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,kGAA0E,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,kGAA0E,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,kGAA0E,CAAC,EAAE,OAAO,EAAC,EAAC,0IAA0I,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gGAAwE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gGAAwE,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,gGAAwE,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;MAUloC,uCAAuC,CAAA;AARpD,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAEP,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAE9C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAmC,EAAE,mDAAC;AAEtD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,EAAE,kDAAC;AAEnB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAElB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AA6CjC,IAAA;IA3CC,QAAQ,GAAA;AACN,QAAA,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB;AAEA,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACtD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,KAAK,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACjH;gBAAU;AACR,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB;IACF;AAEA,IAAA,MAAM,GAAG,GAAA;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QACnC,IAAI,CAAC,MAAM,EAAE;YACX;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACvC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACnB,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;QACrB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC3G;IACF;IAEA,MAAM,MAAM,CAAC,EAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;AACtC,YAAA,MAAM,IAAI,CAAC,MAAM,EAAE;QACrB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC;YAC7E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAC7G;IACF;8GAvDW,uCAAuC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvC,uCAAuC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,SAAA,EAFvC,CAAC,wBAAwB,CAAC,0BCfvC,s6BAwBK,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDVO,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAG3B,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBARnD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,EAAA,eAAA,EAGjC,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,WAAW,EAAE,eAAe,CAAC,EAAA,SAAA,EAC5B,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,s6BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEfvC;AAEA;;ACCA;AAEO,MAAM,oCAAoC,GAAW;AAC1D,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,wFAAwD,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,uCAAuC,CAAC;AAE/G,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;;;;;;AC7BA;AACA;AACA;AACA;AACA;;ACAA;AACA,YAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLjB;;AAEG;;"}