@taon-dev/cms 21.0.14 → 21.0.16

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 (909) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/cms-browser.mjs +493 -134
  3. package/browser/fesm2022/cms-browser.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/browser/types/cms-browser.d.ts +297 -251
  6. package/browser-prod/fesm2022/cms-browser-prod.mjs +493 -134
  7. package/browser-prod/fesm2022/cms-browser-prod.mjs.map +1 -1
  8. package/browser-prod/package.json +1 -1
  9. package/browser-prod/types/cms-browser-prod.d.ts +297 -251
  10. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  11. package/full-dts/decorators/taon-cms-authorization.d.ts +45 -0
  12. package/full-dts/index._auto-generated_.d.ts +3 -3
  13. package/full-dts/index.d.ts +0 -1
  14. package/full-dts/migrations/{1791132517216_initial.d.ts → 1792506757808_applicaitonHooks.d.ts} +4 -2
  15. package/full-dts/migrations/migrations_index._auto-generated_.d.ts +2 -2
  16. package/full-dts/taon-cms-application-hook/taon-cms-application-hook.entity.d.ts +10 -0
  17. package/full-dts/taon-cms-application-hooks.d.ts +9 -0
  18. package/full-dts/taon-cms-category/taon-cms-category-api.service.d.ts +2 -1
  19. package/full-dts/taon-cms-comment/taon-cms-comment-api.service.d.ts +2 -1
  20. package/full-dts/{i18n/my-organization-proj.ts.en-US.i18n.data.d.ts → taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.d.ts} +2 -2
  21. package/full-dts/{i18n/my-organization-proj.ts.pl-PL.i18n.data.d.ts → taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.d.ts} +2 -3
  22. package/full-dts/taon-cms-content/i18n/taon-cms-content.translation.d.ts +5 -0
  23. package/full-dts/taon-cms-content/taon-cms-content-api.service.d.ts +12 -4
  24. package/full-dts/taon-cms-content/taon-cms-content.controller.d.ts +11 -4
  25. package/full-dts/taon-cms-content/taon-cms-content.entity.d.ts +2 -0
  26. package/full-dts/taon-cms-content/taon-cms-content.models.d.ts +4 -1
  27. package/full-dts/taon-cms-content/taon-cms-content.repository.d.ts +4 -0
  28. package/full-dts/taon-cms-content-asset/taon-cms-content-asset-api.service.d.ts +2 -1
  29. package/full-dts/taon-cms-content-permission/taon-cms-content-permission-api.service.d.ts +2 -1
  30. package/full-dts/taon-cms-content-revision/taon-cms-content-revision-api.service.d.ts +4 -2
  31. package/full-dts/taon-cms-content-tag/taon-cms-content-tag-api.service.d.ts +2 -1
  32. package/full-dts/taon-cms-tag/taon-cms-tag-api.service.d.ts +1 -5
  33. package/full-dts/taon-posts/taon-cms-post/taon-cms-post.component.d.ts +13 -0
  34. package/full-dts/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.d.ts +1 -1
  35. package/html/imports.html +3 -2
  36. package/html/lib/taon-posts/taon-cms-post/taon-cms-post.component.html +38 -0
  37. package/i18n/app.ts.en-US.i18n.data.d.ts +15 -3
  38. package/i18n/app.ts.pl-PL.i18n.data.d.ts +15 -4
  39. package/lib/build-info._auto-generated_.d.ts +1 -1
  40. package/lib/build-info._auto-generated_.js +1 -1
  41. package/lib/decorators/taon-cms-authorization.d.ts +44 -0
  42. package/lib/decorators/taon-cms-authorization.js +107 -0
  43. package/lib/decorators/taon-cms-authorization.js.map +1 -0
  44. package/lib/index._auto-generated_.d.ts +3 -3
  45. package/lib/index._auto-generated_.js +3 -3
  46. package/lib/index._auto-generated_.js.map +1 -1
  47. package/lib/index.d.ts +0 -1
  48. package/lib/index.js +0 -1
  49. package/lib/index.js.map +1 -1
  50. package/lib/migrations/1792506757808_applicaitonHooks.d.ts +9 -0
  51. package/lib/migrations/1792506757808_applicaitonHooks.js +85 -0
  52. package/lib/migrations/1792506757808_applicaitonHooks.js.map +1 -0
  53. package/lib/migrations/migrations_index._auto-generated_.d.ts +2 -2
  54. package/lib/migrations/migrations_index._auto-generated_.js +2 -2
  55. package/lib/migrations/migrations_index._auto-generated_.js.map +1 -1
  56. package/lib/package.json +1 -1
  57. package/lib/taon-cms-application-hook/taon-cms-application-hook.entity.d.ts +9 -0
  58. package/lib/taon-cms-application-hook/taon-cms-application-hook.entity.js +45 -0
  59. package/lib/taon-cms-application-hook/taon-cms-application-hook.entity.js.map +1 -0
  60. package/lib/taon-cms-application-hooks.d.ts +8 -0
  61. package/lib/taon-cms-application-hooks.js +11 -0
  62. package/lib/taon-cms-application-hooks.js.map +1 -0
  63. package/lib/taon-cms-backoffice/index.d.ts +1 -1
  64. package/lib/taon-cms-backoffice/index.js +2 -2
  65. package/{lib-prod/i18n/my-organization-proj.ts.en-US.i18n.data.d.ts → lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.d.ts} +2 -2
  66. package/lib/{i18n/my-organization-proj.ts.en-US.i18n.data.js → taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js} +4 -4
  67. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js.map +1 -0
  68. package/{lib-prod/i18n/my-organization-proj.ts.pl-PL.i18n.data.d.ts → lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.d.ts} +2 -3
  69. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js +15 -0
  70. package/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js.map +1 -0
  71. package/lib/taon-cms-content/i18n/taon-cms-content.translation.d.ts +4 -0
  72. package/lib/{i18n/lib.translation.js → taon-cms-content/i18n/taon-cms-content.translation.js} +1 -1
  73. package/lib/taon-cms-content/i18n/taon-cms-content.translation.js.map +1 -0
  74. package/lib/taon-cms-content/taon-cms-content.abstract.context.js +2 -1
  75. package/lib/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
  76. package/lib/taon-cms-content/taon-cms-content.controller.d.ts +11 -4
  77. package/lib/taon-cms-content/taon-cms-content.controller.js +107 -29
  78. package/lib/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  79. package/lib/taon-cms-content/taon-cms-content.entity.d.ts +2 -0
  80. package/lib/taon-cms-content/taon-cms-content.entity.js +10 -0
  81. package/lib/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  82. package/lib/taon-cms-content/taon-cms-content.models.d.ts +3 -0
  83. package/lib/taon-cms-content/taon-cms-content.repository.d.ts +4 -0
  84. package/lib/taon-cms-content/taon-cms-content.repository.js +62 -3
  85. package/lib/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  86. package/lib/taon-posts/taon-cms-post/index.d.ts +1 -1
  87. package/lib/taon-posts/taon-cms-post/index.js +2 -2
  88. package/lib/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -1
  89. package/lib/taon-posts/taon-cms-post-edit-dialog/index.js +2 -2
  90. package/lib/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -1
  91. package/lib/taon-posts/taon-cms-posts-backoffice/index.js +2 -2
  92. package/lib/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -1
  93. package/lib/taon-posts/taon-cms-revision-chooser/index.js +2 -2
  94. package/lib/taon-posts/taon-related-post-chooser/index.d.ts +1 -1
  95. package/lib/taon-posts/taon-related-post-chooser/index.js +2 -2
  96. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  97. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  98. package/lib-esm/lib/decorators/taon-cms-authorization.d.ts +44 -0
  99. package/lib-esm/lib/decorators/taon-cms-authorization.js +97 -0
  100. package/lib-esm/lib/decorators/taon-cms-authorization.js.map +1 -0
  101. package/lib-esm/lib/index._auto-generated_.d.ts +3 -3
  102. package/lib-esm/lib/index._auto-generated_.js +3 -3
  103. package/lib-esm/lib/index._auto-generated_.js.map +1 -1
  104. package/lib-esm/lib/index.d.ts +0 -1
  105. package/lib-esm/lib/index.js +0 -1
  106. package/lib-esm/lib/index.js.map +1 -1
  107. package/lib-esm/lib/migrations/{1791132517216_initial.d.ts → 1792506757808_applicaitonHooks.d.ts} +4 -2
  108. package/lib-esm/lib/migrations/1792506757808_applicaitonHooks.js +76 -0
  109. package/lib-esm/lib/migrations/1792506757808_applicaitonHooks.js.map +1 -0
  110. package/lib-esm/lib/migrations/migrations_index._auto-generated_.d.ts +2 -2
  111. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js +2 -2
  112. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js.map +1 -1
  113. package/lib-esm/lib/taon-cms-application-hook/taon-cms-application-hook.entity.d.ts +9 -0
  114. package/lib-esm/lib/taon-cms-application-hook/taon-cms-application-hook.entity.js +33 -0
  115. package/lib-esm/lib/taon-cms-application-hook/taon-cms-application-hook.entity.js.map +1 -0
  116. package/lib-esm/lib/taon-cms-application-hooks.d.ts +8 -0
  117. package/lib-esm/lib/taon-cms-application-hooks.js +8 -0
  118. package/lib-esm/lib/taon-cms-application-hooks.js.map +1 -0
  119. package/lib-esm/lib/taon-cms-backoffice/index.d.ts +1 -1
  120. package/lib-esm/lib/taon-cms-backoffice/index.js +1 -1
  121. package/lib-esm/lib/{i18n/my-organization-proj.ts.en-US.i18n.data.d.ts → taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.d.ts} +2 -2
  122. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js +13 -0
  123. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js.map +1 -0
  124. package/{lib/i18n/my-organization-proj.ts.pl-PL.i18n.data.d.ts → lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.d.ts} +2 -3
  125. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js +13 -0
  126. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js.map +1 -0
  127. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.translation.d.ts +4 -0
  128. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.translation.js +4 -0
  129. package/lib-esm/lib/taon-cms-content/i18n/taon-cms-content.translation.js.map +1 -0
  130. package/lib-esm/lib/taon-cms-content/taon-cms-content.abstract.context.js +2 -1
  131. package/lib-esm/lib/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
  132. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.d.ts +11 -4
  133. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.js +80 -2
  134. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  135. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.d.ts +2 -0
  136. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.js +11 -1
  137. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  138. package/lib-esm/lib/taon-cms-content/taon-cms-content.models.d.ts +3 -0
  139. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.d.ts +4 -0
  140. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.js +62 -3
  141. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  142. package/lib-esm/lib/taon-posts/taon-cms-post/index.d.ts +1 -1
  143. package/lib-esm/lib/taon-posts/taon-cms-post/index.js +1 -1
  144. package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -1
  145. package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.js +1 -1
  146. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -1
  147. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.js +1 -1
  148. package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -1
  149. package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.js +1 -1
  150. package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.d.ts +1 -1
  151. package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.js +1 -1
  152. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  153. package/lib-prod/build-info._auto-generated_.js +1 -1
  154. package/lib-prod/decorators/taon-cms-authorization.d.ts +44 -0
  155. package/lib-prod/decorators/taon-cms-authorization.js +97 -0
  156. package/lib-prod/decorators/taon-cms-authorization.js.map +1 -0
  157. package/lib-prod/index._auto-generated_.d.ts +3 -3
  158. package/lib-prod/index._auto-generated_.js +3 -3
  159. package/lib-prod/index._auto-generated_.js.map +1 -1
  160. package/lib-prod/index.d.ts +0 -1
  161. package/lib-prod/index.js +0 -1
  162. package/lib-prod/index.js.map +1 -1
  163. package/lib-prod/migrations/{1791132517216_initial.d.ts → 1792506757808_applicaitonHooks.d.ts} +4 -2
  164. package/lib-prod/migrations/1792506757808_applicaitonHooks.js +76 -0
  165. package/lib-prod/migrations/1792506757808_applicaitonHooks.js.map +1 -0
  166. package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +2 -2
  167. package/lib-prod/migrations/migrations_index._auto-generated_.js +2 -2
  168. package/lib-prod/migrations/migrations_index._auto-generated_.js.map +1 -1
  169. package/lib-prod/package.json +1 -1
  170. package/lib-prod/taon-cms-application-hook/taon-cms-application-hook.entity.d.ts +9 -0
  171. package/lib-prod/taon-cms-application-hook/taon-cms-application-hook.entity.js +33 -0
  172. package/lib-prod/taon-cms-application-hook/taon-cms-application-hook.entity.js.map +1 -0
  173. package/lib-prod/taon-cms-application-hooks.d.ts +8 -0
  174. package/lib-prod/taon-cms-application-hooks.js +8 -0
  175. package/lib-prod/taon-cms-application-hooks.js.map +1 -0
  176. package/lib-prod/taon-cms-backoffice/index.d.ts +1 -1
  177. package/lib-prod/taon-cms-backoffice/index.js +1 -1
  178. package/{lib/i18n/my-organization-proj.ts.en-US.i18n.data.d.ts → lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.d.ts} +2 -2
  179. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js +13 -0
  180. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.js.map +1 -0
  181. package/{lib-esm/lib/i18n/my-organization-proj.ts.pl-PL.i18n.data.d.ts → lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.d.ts} +2 -3
  182. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js +13 -0
  183. package/lib-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.js.map +1 -0
  184. package/lib-prod/taon-cms-content/i18n/taon-cms-content.translation.d.ts +4 -0
  185. package/lib-prod/taon-cms-content/i18n/taon-cms-content.translation.js +4 -0
  186. package/lib-prod/taon-cms-content/i18n/taon-cms-content.translation.js.map +1 -0
  187. package/lib-prod/taon-cms-content/taon-cms-content.abstract.context.js +2 -1
  188. package/lib-prod/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
  189. package/lib-prod/taon-cms-content/taon-cms-content.controller.d.ts +11 -4
  190. package/lib-prod/taon-cms-content/taon-cms-content.controller.js +80 -2
  191. package/lib-prod/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  192. package/lib-prod/taon-cms-content/taon-cms-content.entity.d.ts +2 -0
  193. package/lib-prod/taon-cms-content/taon-cms-content.entity.js +11 -1
  194. package/lib-prod/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  195. package/lib-prod/taon-cms-content/taon-cms-content.models.d.ts +3 -0
  196. package/lib-prod/taon-cms-content/taon-cms-content.repository.d.ts +4 -0
  197. package/lib-prod/taon-cms-content/taon-cms-content.repository.js +62 -3
  198. package/lib-prod/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  199. package/lib-prod/taon-posts/taon-cms-post/index.d.ts +1 -1
  200. package/lib-prod/taon-posts/taon-cms-post/index.js +1 -1
  201. package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -1
  202. package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.js +1 -1
  203. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -1
  204. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.js +1 -1
  205. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -1
  206. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.js +1 -1
  207. package/lib-prod/taon-posts/taon-related-post-chooser/index.d.ts +1 -1
  208. package/lib-prod/taon-posts/taon-related-post-chooser/index.js +1 -1
  209. package/package.json +1 -1
  210. package/scss/lib/taon-posts/taon-cms-post/taon-cms-post.component.scss +11 -0
  211. package/ts-source/browser-code/build-info._auto-generated_.ts +2 -2
  212. package/ts-source/browser-code/decorators/taon-cms-authorization.ts +64 -0
  213. package/ts-source/browser-code/index._auto-generated_.ts +4 -4
  214. package/ts-source/browser-code/index.scss +1 -1
  215. package/ts-source/browser-code/index.ts +1 -2
  216. package/ts-source/browser-code/migrations/1792506757808_applicaitonHooks.ts +78 -0
  217. package/ts-source/browser-code/migrations/index.ts +1 -1
  218. package/ts-source/browser-code/migrations/migrations_index._auto-generated_.ts +3 -3
  219. package/ts-source/browser-code/start-cli.ts +1 -1
  220. package/ts-source/browser-code/taon-cms-application-hook/taon-cms-application-hook.entity.ts +30 -0
  221. package/ts-source/browser-code/taon-cms-application-hooks.ts +20 -0
  222. package/ts-source/browser-code/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts +1 -1
  223. package/ts-source/browser-code/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.ts +1 -1
  224. package/ts-source/browser-code/taon-cms-backoffice/index.ts +1 -1
  225. package/ts-source/browser-code/taon-cms-backoffice/taon-cms-backoffice.component.html +1 -1
  226. package/ts-source/browser-code/taon-cms-backoffice/taon-cms-backoffice.component.scss +1 -1
  227. package/ts-source/browser-code/taon-cms-backoffice/taon-cms-backoffice.component.ts +1 -1
  228. package/ts-source/browser-code/taon-cms-backoffice/taon-cms-backoffice.models.ts +1 -1
  229. package/ts-source/browser-code/taon-cms-backoffice/taon-cms-backoffice.routes.ts +8 -2
  230. package/ts-source/browser-code/taon-cms-category/index.ts +1 -1
  231. package/ts-source/browser-code/taon-cms-category/taon-cms-category-api.service.ts +2 -2
  232. package/ts-source/browser-code/taon-cms-category/taon-cms-category.abstract.context.ts +1 -1
  233. package/ts-source/browser-code/taon-cms-category/taon-cms-category.constants.ts +1 -1
  234. package/ts-source/browser-code/taon-cms-category/taon-cms-category.controller.ts +1 -1
  235. package/ts-source/browser-code/taon-cms-category/taon-cms-category.entity.ts +1 -1
  236. package/ts-source/browser-code/taon-cms-category/taon-cms-category.middleware.ts +1 -1
  237. package/ts-source/browser-code/taon-cms-category/taon-cms-category.models.ts +1 -1
  238. package/ts-source/browser-code/taon-cms-category/taon-cms-category.provider.ts +1 -1
  239. package/ts-source/browser-code/taon-cms-category/taon-cms-category.repository.ts +1 -1
  240. package/ts-source/browser-code/taon-cms-category/taon-cms-category.subscriber.ts +1 -1
  241. package/ts-source/browser-code/taon-cms-category/taon-cms-category.utils.ts +1 -1
  242. package/ts-source/browser-code/taon-cms-comment/index.ts +1 -1
  243. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment-api.service.ts +2 -2
  244. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.abstract.context.ts +1 -1
  245. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.constants.ts +1 -1
  246. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.controller.ts +1 -1
  247. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.entity.ts +1 -1
  248. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.middleware.ts +1 -1
  249. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.models.ts +1 -1
  250. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.provider.ts +1 -1
  251. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.repository.ts +1 -1
  252. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.subscriber.ts +1 -1
  253. package/ts-source/browser-code/taon-cms-comment/taon-cms-comment.utils.ts +1 -1
  254. package/ts-source/browser-code/{i18n/my-organization-proj.ts.en-US.i18n.data.ts → taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.ts} +6 -6
  255. package/ts-source/{browser-code-prod/i18n/my-organization-proj.ts.en-US.po → browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.po} +2 -2
  256. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.ts +28 -0
  257. package/ts-source/{websql-code-prod/i18n/my-organization-proj.ts.pl-PL.po → browser-code/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.po} +3 -3
  258. package/ts-source/browser-code/taon-cms-content/i18n/taon-cms-content.translation.ts +17 -0
  259. package/ts-source/browser-code/taon-cms-content/index.ts +1 -1
  260. package/ts-source/browser-code/taon-cms-content/taon-cms-content-api.service.ts +31 -7
  261. package/ts-source/browser-code/taon-cms-content/taon-cms-content-storage.controller.ts +1 -1
  262. package/ts-source/browser-code/taon-cms-content/taon-cms-content.abstract.context.ts +3 -2
  263. package/ts-source/browser-code/taon-cms-content/taon-cms-content.config.service.ts +1 -1
  264. package/ts-source/browser-code/taon-cms-content/taon-cms-content.constants.ts +1 -1
  265. package/ts-source/browser-code/taon-cms-content/taon-cms-content.controller.ts +37 -5
  266. package/ts-source/browser-code/taon-cms-content/taon-cms-content.entity.ts +4 -2
  267. package/ts-source/browser-code/taon-cms-content/taon-cms-content.middleware.ts +1 -1
  268. package/ts-source/browser-code/taon-cms-content/taon-cms-content.models.ts +4 -1
  269. package/ts-source/browser-code/taon-cms-content/taon-cms-content.provider.ts +1 -1
  270. package/ts-source/browser-code/taon-cms-content/taon-cms-content.repository.ts +13 -2
  271. package/ts-source/browser-code/taon-cms-content/taon-cms-content.subscriber.ts +1 -1
  272. package/ts-source/browser-code/taon-cms-content/taon-cms-content.utils.ts +1 -1
  273. package/ts-source/browser-code/taon-cms-content/taon-cms-content.validation.ts +1 -1
  274. package/ts-source/browser-code/taon-cms-content-asset/index.ts +1 -1
  275. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset-api.service.ts +6 -4
  276. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.abstract.context.ts +1 -1
  277. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.constants.ts +1 -1
  278. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.controller.ts +1 -1
  279. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.entity.ts +1 -1
  280. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.middleware.ts +1 -1
  281. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.models.ts +1 -1
  282. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.provider.ts +1 -1
  283. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.repository.ts +1 -1
  284. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.subscriber.ts +1 -1
  285. package/ts-source/browser-code/taon-cms-content-asset/taon-cms-content-asset.utils.ts +1 -1
  286. package/ts-source/browser-code/taon-cms-content-permission/index.ts +1 -1
  287. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission-api.service.ts +6 -4
  288. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.abstract.context.ts +1 -1
  289. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.constants.ts +1 -1
  290. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.controller.ts +1 -1
  291. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.entity.ts +1 -1
  292. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.middleware.ts +1 -1
  293. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.models.ts +1 -1
  294. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.provider.ts +1 -1
  295. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.repository.ts +1 -1
  296. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.subscriber.ts +1 -1
  297. package/ts-source/browser-code/taon-cms-content-permission/taon-cms-content-permission.utils.ts +1 -1
  298. package/ts-source/browser-code/taon-cms-content-revision/index.ts +1 -1
  299. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision-api.service.ts +4 -5
  300. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.abstract.context.ts +1 -1
  301. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.constants.ts +1 -1
  302. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.controller.ts +1 -1
  303. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.entity.ts +1 -1
  304. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.middleware.ts +1 -1
  305. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.models.ts +1 -1
  306. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.provider.ts +1 -1
  307. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.repository.ts +1 -1
  308. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.subscriber.ts +1 -1
  309. package/ts-source/browser-code/taon-cms-content-revision/taon-cms-content-revision.utils.ts +1 -1
  310. package/ts-source/browser-code/taon-cms-content-tag/index.ts +1 -1
  311. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag-api.service.ts +2 -2
  312. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.abstract.context.ts +1 -1
  313. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.constants.ts +1 -1
  314. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.controller.ts +1 -1
  315. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.entity.ts +1 -1
  316. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.middleware.ts +1 -1
  317. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.models.ts +1 -1
  318. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.provider.ts +1 -1
  319. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.repository.ts +1 -1
  320. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.subscriber.ts +1 -1
  321. package/ts-source/browser-code/taon-cms-content-tag/taon-cms-content-tag.utils.ts +1 -1
  322. package/ts-source/browser-code/taon-cms-tag/index.ts +1 -1
  323. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag-api.service.ts +2 -8
  324. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.abstract.context.ts +1 -1
  325. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.constants.ts +1 -1
  326. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.controller.ts +1 -1
  327. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.entity.ts +1 -1
  328. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.middleware.ts +1 -1
  329. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.models.ts +1 -1
  330. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.provider.ts +1 -1
  331. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.repository.ts +1 -1
  332. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.subscriber.ts +1 -1
  333. package/ts-source/browser-code/taon-cms-tag/taon-cms-tag.utils.ts +1 -1
  334. package/ts-source/browser-code/taon-cms.abstract.context.ts +1 -1
  335. package/ts-source/browser-code/taon-posts/taon-cms-post/index.ts +1 -1
  336. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-editable.directive.ts +1 -1
  337. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post.component.html +39 -1
  338. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post.component.scss +12 -1
  339. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post.component.ts +66 -2
  340. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post.models.ts +1 -1
  341. package/ts-source/browser-code/taon-posts/taon-cms-post/taon-cms-post.routes.ts +1 -1
  342. package/ts-source/browser-code/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts +1 -1
  343. package/ts-source/browser-code/taon-posts/taon-cms-post-edit-dialog/index.ts +1 -1
  344. package/ts-source/browser-code/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.html +1 -1
  345. package/ts-source/browser-code/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.scss +1 -1
  346. package/ts-source/browser-code/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.ts +1 -1
  347. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/index.ts +1 -1
  348. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html +1 -1
  349. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.scss +1 -1
  350. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts +2 -2
  351. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.ts +1 -1
  352. package/ts-source/browser-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts +3 -4
  353. package/ts-source/browser-code/taon-posts/taon-cms-revision-chooser/index.ts +1 -1
  354. package/ts-source/browser-code/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html +1 -1
  355. package/ts-source/browser-code/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.scss +1 -1
  356. package/ts-source/browser-code/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts +1 -1
  357. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/index.ts +1 -1
  358. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +1 -1
  359. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.scss +1 -1
  360. package/ts-source/browser-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts +1 -1
  361. package/ts-source/browser-code-prod/build-info._auto-generated_.ts +2 -2
  362. package/ts-source/browser-code-prod/decorators/taon-cms-authorization.ts +64 -0
  363. package/ts-source/browser-code-prod/index._auto-generated_.ts +4 -4
  364. package/ts-source/browser-code-prod/index.scss +1 -1
  365. package/ts-source/browser-code-prod/index.ts +1 -2
  366. package/ts-source/browser-code-prod/migrations/1792506757808_applicaitonHooks.ts +78 -0
  367. package/ts-source/browser-code-prod/migrations/index.ts +1 -1
  368. package/ts-source/browser-code-prod/migrations/migrations_index._auto-generated_.ts +3 -3
  369. package/ts-source/browser-code-prod/start-cli.ts +1 -1
  370. package/ts-source/browser-code-prod/taon-cms-application-hook/taon-cms-application-hook.entity.ts +30 -0
  371. package/ts-source/browser-code-prod/taon-cms-application-hooks.ts +20 -0
  372. package/ts-source/browser-code-prod/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts +1 -1
  373. package/ts-source/browser-code-prod/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.ts +1 -1
  374. package/ts-source/browser-code-prod/taon-cms-backoffice/index.ts +1 -1
  375. package/ts-source/browser-code-prod/taon-cms-backoffice/taon-cms-backoffice.component.html +1 -1
  376. package/ts-source/browser-code-prod/taon-cms-backoffice/taon-cms-backoffice.component.scss +1 -1
  377. package/ts-source/browser-code-prod/taon-cms-backoffice/taon-cms-backoffice.component.ts +1 -1
  378. package/ts-source/browser-code-prod/taon-cms-backoffice/taon-cms-backoffice.models.ts +1 -1
  379. package/ts-source/browser-code-prod/taon-cms-backoffice/taon-cms-backoffice.routes.ts +8 -2
  380. package/ts-source/browser-code-prod/taon-cms-category/index.ts +1 -1
  381. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category-api.service.ts +2 -2
  382. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.abstract.context.ts +1 -1
  383. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.constants.ts +1 -1
  384. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.controller.ts +1 -1
  385. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.entity.ts +1 -1
  386. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.middleware.ts +1 -1
  387. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.models.ts +1 -1
  388. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.provider.ts +1 -1
  389. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.repository.ts +1 -1
  390. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.subscriber.ts +1 -1
  391. package/ts-source/browser-code-prod/taon-cms-category/taon-cms-category.utils.ts +1 -1
  392. package/ts-source/browser-code-prod/taon-cms-comment/index.ts +1 -1
  393. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment-api.service.ts +2 -2
  394. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.abstract.context.ts +1 -1
  395. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.constants.ts +1 -1
  396. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.controller.ts +1 -1
  397. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.entity.ts +1 -1
  398. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.middleware.ts +1 -1
  399. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.models.ts +1 -1
  400. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.provider.ts +1 -1
  401. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.repository.ts +1 -1
  402. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.subscriber.ts +1 -1
  403. package/ts-source/browser-code-prod/taon-cms-comment/taon-cms-comment.utils.ts +1 -1
  404. package/ts-source/{websql-code-prod/i18n/my-organization-proj.ts.en-US.i18n.data.ts → browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.ts} +6 -6
  405. package/ts-source/{websql-code-prod/i18n/my-organization-proj.ts.en-US.po → browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.po} +2 -2
  406. package/ts-source/browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.ts +28 -0
  407. package/ts-source/{browser-code/i18n/my-organization-proj.ts.pl-PL.po → browser-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.po} +3 -3
  408. package/ts-source/browser-code-prod/{i18n/lib.translation.ts → taon-cms-content/i18n/taon-cms-content.translation.ts} +4 -4
  409. package/ts-source/browser-code-prod/taon-cms-content/index.ts +1 -1
  410. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content-api.service.ts +31 -7
  411. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content-storage.controller.ts +1 -1
  412. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.abstract.context.ts +3 -2
  413. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.config.service.ts +1 -1
  414. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.constants.ts +1 -1
  415. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.controller.ts +37 -5
  416. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.entity.ts +4 -2
  417. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.middleware.ts +1 -1
  418. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.models.ts +4 -1
  419. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.provider.ts +1 -1
  420. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.repository.ts +13 -2
  421. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.subscriber.ts +1 -1
  422. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.utils.ts +1 -1
  423. package/ts-source/browser-code-prod/taon-cms-content/taon-cms-content.validation.ts +1 -1
  424. package/ts-source/browser-code-prod/taon-cms-content-asset/index.ts +1 -1
  425. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset-api.service.ts +6 -4
  426. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.abstract.context.ts +1 -1
  427. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.constants.ts +1 -1
  428. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.controller.ts +1 -1
  429. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.entity.ts +1 -1
  430. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.middleware.ts +1 -1
  431. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.models.ts +1 -1
  432. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.provider.ts +1 -1
  433. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.repository.ts +1 -1
  434. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.subscriber.ts +1 -1
  435. package/ts-source/browser-code-prod/taon-cms-content-asset/taon-cms-content-asset.utils.ts +1 -1
  436. package/ts-source/browser-code-prod/taon-cms-content-permission/index.ts +1 -1
  437. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission-api.service.ts +6 -4
  438. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.abstract.context.ts +1 -1
  439. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.constants.ts +1 -1
  440. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.controller.ts +1 -1
  441. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.entity.ts +1 -1
  442. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.middleware.ts +1 -1
  443. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.models.ts +1 -1
  444. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.provider.ts +1 -1
  445. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.repository.ts +1 -1
  446. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.subscriber.ts +1 -1
  447. package/ts-source/browser-code-prod/taon-cms-content-permission/taon-cms-content-permission.utils.ts +1 -1
  448. package/ts-source/browser-code-prod/taon-cms-content-revision/index.ts +1 -1
  449. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision-api.service.ts +4 -5
  450. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.abstract.context.ts +1 -1
  451. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.constants.ts +1 -1
  452. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.controller.ts +1 -1
  453. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.entity.ts +1 -1
  454. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.middleware.ts +1 -1
  455. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.models.ts +1 -1
  456. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.provider.ts +1 -1
  457. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.repository.ts +1 -1
  458. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.subscriber.ts +1 -1
  459. package/ts-source/browser-code-prod/taon-cms-content-revision/taon-cms-content-revision.utils.ts +1 -1
  460. package/ts-source/browser-code-prod/taon-cms-content-tag/index.ts +1 -1
  461. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag-api.service.ts +2 -2
  462. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.abstract.context.ts +1 -1
  463. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.constants.ts +1 -1
  464. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.controller.ts +1 -1
  465. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.entity.ts +1 -1
  466. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.middleware.ts +1 -1
  467. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.models.ts +1 -1
  468. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.provider.ts +1 -1
  469. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.repository.ts +1 -1
  470. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.subscriber.ts +1 -1
  471. package/ts-source/browser-code-prod/taon-cms-content-tag/taon-cms-content-tag.utils.ts +1 -1
  472. package/ts-source/browser-code-prod/taon-cms-tag/index.ts +1 -1
  473. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag-api.service.ts +2 -8
  474. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.abstract.context.ts +1 -1
  475. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.constants.ts +1 -1
  476. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.controller.ts +1 -1
  477. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.entity.ts +1 -1
  478. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.middleware.ts +1 -1
  479. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.models.ts +1 -1
  480. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.provider.ts +1 -1
  481. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.repository.ts +1 -1
  482. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.subscriber.ts +1 -1
  483. package/ts-source/browser-code-prod/taon-cms-tag/taon-cms-tag.utils.ts +1 -1
  484. package/ts-source/browser-code-prod/taon-cms.abstract.context.ts +1 -1
  485. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/index.ts +1 -1
  486. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-editable.directive.ts +1 -1
  487. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.html +39 -1
  488. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.scss +12 -1
  489. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.ts +66 -2
  490. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post.models.ts +1 -1
  491. package/ts-source/browser-code-prod/taon-posts/taon-cms-post/taon-cms-post.routes.ts +1 -1
  492. package/ts-source/browser-code-prod/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts +1 -1
  493. package/ts-source/browser-code-prod/taon-posts/taon-cms-post-edit-dialog/index.ts +1 -1
  494. package/ts-source/browser-code-prod/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.html +1 -1
  495. package/ts-source/browser-code-prod/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.scss +1 -1
  496. package/ts-source/browser-code-prod/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.ts +1 -1
  497. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/index.ts +1 -1
  498. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html +1 -1
  499. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.scss +1 -1
  500. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts +2 -2
  501. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.ts +1 -1
  502. package/ts-source/browser-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts +3 -4
  503. package/ts-source/browser-code-prod/taon-posts/taon-cms-revision-chooser/index.ts +1 -1
  504. package/ts-source/browser-code-prod/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html +1 -1
  505. package/ts-source/browser-code-prod/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.scss +1 -1
  506. package/ts-source/browser-code-prod/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts +1 -1
  507. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/index.ts +1 -1
  508. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +1 -1
  509. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.scss +1 -1
  510. package/ts-source/browser-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts +1 -1
  511. package/ts-source/websql-code/build-info._auto-generated_.ts +2 -2
  512. package/ts-source/websql-code/decorators/taon-cms-authorization.ts +93 -0
  513. package/ts-source/websql-code/index._auto-generated_.ts +4 -4
  514. package/ts-source/websql-code/index.scss +1 -1
  515. package/ts-source/websql-code/index.ts +1 -2
  516. package/ts-source/websql-code/migrations/1792506757808_applicaitonHooks.ts +78 -0
  517. package/ts-source/websql-code/migrations/index.ts +1 -1
  518. package/ts-source/websql-code/migrations/migrations_index._auto-generated_.ts +3 -3
  519. package/ts-source/websql-code/start-cli.ts +1 -1
  520. package/ts-source/websql-code/taon-cms-application-hook/taon-cms-application-hook.entity.ts +30 -0
  521. package/ts-source/websql-code/taon-cms-application-hooks.ts +20 -0
  522. package/ts-source/websql-code/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts +1 -1
  523. package/ts-source/websql-code/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.ts +1 -1
  524. package/ts-source/websql-code/taon-cms-backoffice/index.ts +1 -1
  525. package/ts-source/websql-code/taon-cms-backoffice/taon-cms-backoffice.component.html +1 -1
  526. package/ts-source/websql-code/taon-cms-backoffice/taon-cms-backoffice.component.scss +1 -1
  527. package/ts-source/websql-code/taon-cms-backoffice/taon-cms-backoffice.component.ts +1 -1
  528. package/ts-source/websql-code/taon-cms-backoffice/taon-cms-backoffice.models.ts +1 -1
  529. package/ts-source/websql-code/taon-cms-backoffice/taon-cms-backoffice.routes.ts +8 -2
  530. package/ts-source/websql-code/taon-cms-category/index.ts +1 -1
  531. package/ts-source/websql-code/taon-cms-category/taon-cms-category-api.service.ts +2 -2
  532. package/ts-source/websql-code/taon-cms-category/taon-cms-category.abstract.context.ts +1 -1
  533. package/ts-source/websql-code/taon-cms-category/taon-cms-category.constants.ts +1 -1
  534. package/ts-source/websql-code/taon-cms-category/taon-cms-category.controller.ts +1 -1
  535. package/ts-source/websql-code/taon-cms-category/taon-cms-category.entity.ts +1 -1
  536. package/ts-source/websql-code/taon-cms-category/taon-cms-category.middleware.ts +1 -1
  537. package/ts-source/websql-code/taon-cms-category/taon-cms-category.models.ts +1 -1
  538. package/ts-source/websql-code/taon-cms-category/taon-cms-category.provider.ts +1 -1
  539. package/ts-source/websql-code/taon-cms-category/taon-cms-category.repository.ts +1 -1
  540. package/ts-source/websql-code/taon-cms-category/taon-cms-category.subscriber.ts +1 -1
  541. package/ts-source/websql-code/taon-cms-category/taon-cms-category.utils.ts +1 -1
  542. package/ts-source/websql-code/taon-cms-comment/index.ts +1 -1
  543. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment-api.service.ts +2 -2
  544. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.abstract.context.ts +1 -1
  545. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.constants.ts +1 -1
  546. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.controller.ts +1 -1
  547. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.entity.ts +1 -1
  548. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.middleware.ts +1 -1
  549. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.models.ts +1 -1
  550. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.provider.ts +1 -1
  551. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.repository.ts +1 -1
  552. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.subscriber.ts +1 -1
  553. package/ts-source/websql-code/taon-cms-comment/taon-cms-comment.utils.ts +1 -1
  554. package/ts-source/{browser-code-prod/i18n/my-organization-proj.ts.en-US.i18n.data.ts → websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.ts} +6 -6
  555. package/ts-source/{browser-code/i18n/my-organization-proj.ts.en-US.po → websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.po} +2 -2
  556. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.ts +28 -0
  557. package/ts-source/websql-code/{i18n/my-organization-proj.ts.pl-PL.po → taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.po} +3 -3
  558. package/ts-source/websql-code/taon-cms-content/i18n/taon-cms-content.translation.ts +17 -0
  559. package/ts-source/websql-code/taon-cms-content/index.ts +1 -1
  560. package/ts-source/websql-code/taon-cms-content/taon-cms-content-api.service.ts +31 -7
  561. package/ts-source/websql-code/taon-cms-content/taon-cms-content-storage.controller.ts +1 -1
  562. package/ts-source/websql-code/taon-cms-content/taon-cms-content.abstract.context.ts +3 -2
  563. package/ts-source/websql-code/taon-cms-content/taon-cms-content.config.service.ts +1 -1
  564. package/ts-source/websql-code/taon-cms-content/taon-cms-content.constants.ts +1 -1
  565. package/ts-source/websql-code/taon-cms-content/taon-cms-content.controller.ts +44 -5
  566. package/ts-source/websql-code/taon-cms-content/taon-cms-content.entity.ts +5 -2
  567. package/ts-source/websql-code/taon-cms-content/taon-cms-content.middleware.ts +1 -1
  568. package/ts-source/websql-code/taon-cms-content/taon-cms-content.models.ts +4 -1
  569. package/ts-source/websql-code/taon-cms-content/taon-cms-content.provider.ts +1 -1
  570. package/ts-source/websql-code/taon-cms-content/taon-cms-content.repository.ts +58 -4
  571. package/ts-source/websql-code/taon-cms-content/taon-cms-content.subscriber.ts +1 -1
  572. package/ts-source/websql-code/taon-cms-content/taon-cms-content.utils.ts +1 -1
  573. package/ts-source/websql-code/taon-cms-content/taon-cms-content.validation.ts +1 -1
  574. package/ts-source/websql-code/taon-cms-content-asset/index.ts +1 -1
  575. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset-api.service.ts +6 -4
  576. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.abstract.context.ts +1 -1
  577. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.constants.ts +1 -1
  578. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.controller.ts +1 -1
  579. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.entity.ts +1 -1
  580. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.middleware.ts +1 -1
  581. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.models.ts +1 -1
  582. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.provider.ts +1 -1
  583. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.repository.ts +1 -1
  584. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.subscriber.ts +1 -1
  585. package/ts-source/websql-code/taon-cms-content-asset/taon-cms-content-asset.utils.ts +1 -1
  586. package/ts-source/websql-code/taon-cms-content-permission/index.ts +1 -1
  587. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission-api.service.ts +6 -4
  588. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.abstract.context.ts +1 -1
  589. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.constants.ts +1 -1
  590. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.controller.ts +1 -1
  591. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.entity.ts +1 -1
  592. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.middleware.ts +1 -1
  593. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.models.ts +1 -1
  594. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.provider.ts +1 -1
  595. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.repository.ts +1 -1
  596. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.subscriber.ts +1 -1
  597. package/ts-source/websql-code/taon-cms-content-permission/taon-cms-content-permission.utils.ts +1 -1
  598. package/ts-source/websql-code/taon-cms-content-revision/index.ts +1 -1
  599. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision-api.service.ts +4 -5
  600. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.abstract.context.ts +1 -1
  601. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.constants.ts +1 -1
  602. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.controller.ts +1 -1
  603. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.entity.ts +1 -1
  604. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.middleware.ts +1 -1
  605. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.models.ts +1 -1
  606. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.provider.ts +1 -1
  607. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.repository.ts +1 -1
  608. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.subscriber.ts +1 -1
  609. package/ts-source/websql-code/taon-cms-content-revision/taon-cms-content-revision.utils.ts +1 -1
  610. package/ts-source/websql-code/taon-cms-content-tag/index.ts +1 -1
  611. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag-api.service.ts +2 -2
  612. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.abstract.context.ts +1 -1
  613. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.constants.ts +1 -1
  614. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.controller.ts +1 -1
  615. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.entity.ts +1 -1
  616. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.middleware.ts +1 -1
  617. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.models.ts +1 -1
  618. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.provider.ts +1 -1
  619. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.repository.ts +1 -1
  620. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.subscriber.ts +1 -1
  621. package/ts-source/websql-code/taon-cms-content-tag/taon-cms-content-tag.utils.ts +1 -1
  622. package/ts-source/websql-code/taon-cms-tag/index.ts +1 -1
  623. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag-api.service.ts +2 -8
  624. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.abstract.context.ts +1 -1
  625. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.constants.ts +1 -1
  626. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.controller.ts +1 -1
  627. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.entity.ts +1 -1
  628. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.middleware.ts +1 -1
  629. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.models.ts +1 -1
  630. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.provider.ts +1 -1
  631. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.repository.ts +1 -1
  632. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.subscriber.ts +1 -1
  633. package/ts-source/websql-code/taon-cms-tag/taon-cms-tag.utils.ts +1 -1
  634. package/ts-source/websql-code/taon-cms.abstract.context.ts +1 -1
  635. package/ts-source/websql-code/taon-posts/taon-cms-post/index.ts +1 -1
  636. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-editable.directive.ts +1 -1
  637. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post.component.html +39 -1
  638. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post.component.scss +12 -1
  639. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post.component.ts +66 -2
  640. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post.models.ts +1 -1
  641. package/ts-source/websql-code/taon-posts/taon-cms-post/taon-cms-post.routes.ts +1 -1
  642. package/ts-source/websql-code/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts +1 -1
  643. package/ts-source/websql-code/taon-posts/taon-cms-post-edit-dialog/index.ts +1 -1
  644. package/ts-source/websql-code/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.html +1 -1
  645. package/ts-source/websql-code/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.scss +1 -1
  646. package/ts-source/websql-code/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.ts +1 -1
  647. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/index.ts +1 -1
  648. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html +1 -1
  649. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.scss +1 -1
  650. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts +2 -2
  651. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.ts +1 -1
  652. package/ts-source/websql-code/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts +3 -4
  653. package/ts-source/websql-code/taon-posts/taon-cms-revision-chooser/index.ts +1 -1
  654. package/ts-source/websql-code/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html +1 -1
  655. package/ts-source/websql-code/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.scss +1 -1
  656. package/ts-source/websql-code/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts +1 -1
  657. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/index.ts +1 -1
  658. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +1 -1
  659. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.scss +1 -1
  660. package/ts-source/websql-code/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts +1 -1
  661. package/ts-source/websql-code-prod/build-info._auto-generated_.ts +2 -2
  662. package/ts-source/websql-code-prod/decorators/taon-cms-authorization.ts +93 -0
  663. package/ts-source/websql-code-prod/index._auto-generated_.ts +4 -4
  664. package/ts-source/websql-code-prod/index.scss +1 -1
  665. package/ts-source/websql-code-prod/index.ts +1 -2
  666. package/ts-source/websql-code-prod/migrations/1792506757808_applicaitonHooks.ts +78 -0
  667. package/ts-source/websql-code-prod/migrations/index.ts +1 -1
  668. package/ts-source/websql-code-prod/migrations/migrations_index._auto-generated_.ts +3 -3
  669. package/ts-source/websql-code-prod/start-cli.ts +1 -1
  670. package/ts-source/websql-code-prod/taon-cms-application-hook/taon-cms-application-hook.entity.ts +30 -0
  671. package/ts-source/websql-code-prod/taon-cms-application-hooks.split-namespaces.json +4 -0
  672. package/ts-source/websql-code-prod/taon-cms-application-hooks.ts +20 -0
  673. package/ts-source/websql-code-prod/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.ts +1 -1
  674. package/ts-source/websql-code-prod/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.ts +1 -1
  675. package/ts-source/websql-code-prod/taon-cms-backoffice/index.ts +1 -1
  676. package/ts-source/websql-code-prod/taon-cms-backoffice/taon-cms-backoffice.component.html +1 -1
  677. package/ts-source/websql-code-prod/taon-cms-backoffice/taon-cms-backoffice.component.scss +1 -1
  678. package/ts-source/websql-code-prod/taon-cms-backoffice/taon-cms-backoffice.component.ts +1 -1
  679. package/ts-source/websql-code-prod/taon-cms-backoffice/taon-cms-backoffice.models.ts +1 -1
  680. package/ts-source/websql-code-prod/taon-cms-backoffice/taon-cms-backoffice.routes.ts +8 -2
  681. package/ts-source/websql-code-prod/taon-cms-category/index.ts +1 -1
  682. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category-api.service.ts +2 -2
  683. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.abstract.context.ts +1 -1
  684. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.constants.ts +1 -1
  685. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.controller.ts +1 -1
  686. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.entity.ts +1 -1
  687. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.middleware.ts +1 -1
  688. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.models.ts +1 -1
  689. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.provider.ts +1 -1
  690. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.repository.ts +1 -1
  691. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.subscriber.ts +1 -1
  692. package/ts-source/websql-code-prod/taon-cms-category/taon-cms-category.utils.ts +1 -1
  693. package/ts-source/websql-code-prod/taon-cms-comment/index.ts +1 -1
  694. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment-api.service.ts +2 -2
  695. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.abstract.context.ts +1 -1
  696. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.constants.ts +1 -1
  697. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.controller.ts +1 -1
  698. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.entity.ts +1 -1
  699. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.middleware.ts +1 -1
  700. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.models.ts +1 -1
  701. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.provider.ts +1 -1
  702. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.repository.ts +1 -1
  703. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.subscriber.ts +1 -1
  704. package/ts-source/websql-code-prod/taon-cms-comment/taon-cms-comment.utils.ts +1 -1
  705. package/ts-source/{websql-code/i18n/my-organization-proj.ts.en-US.i18n.data.ts → websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.i18n.data.ts} +6 -6
  706. package/ts-source/{websql-code/i18n/my-organization-proj.ts.en-US.po → websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.en-US.po} +2 -2
  707. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.i18n.data.ts +28 -0
  708. package/ts-source/{browser-code-prod/i18n/my-organization-proj.ts.pl-PL.po → websql-code-prod/taon-cms-content/i18n/taon-cms-content.controller.ts.pl-PL.po} +3 -3
  709. package/ts-source/websql-code-prod/taon-cms-content/i18n/taon-cms-content.translation.split-namespaces.json +4 -0
  710. package/ts-source/websql-code-prod/{i18n/lib.translation.ts → taon-cms-content/i18n/taon-cms-content.translation.ts} +4 -4
  711. package/ts-source/websql-code-prod/taon-cms-content/index.ts +1 -1
  712. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content-api.service.ts +31 -7
  713. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content-storage.controller.ts +1 -1
  714. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.abstract.context.ts +3 -2
  715. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.config.service.ts +1 -1
  716. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.constants.ts +1 -1
  717. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.controller.ts +44 -5
  718. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.entity.ts +5 -2
  719. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.middleware.ts +1 -1
  720. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.models.ts +4 -1
  721. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.provider.ts +1 -1
  722. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.repository.ts +58 -4
  723. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.subscriber.ts +1 -1
  724. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.utils.ts +1 -1
  725. package/ts-source/websql-code-prod/taon-cms-content/taon-cms-content.validation.ts +1 -1
  726. package/ts-source/websql-code-prod/taon-cms-content-asset/index.ts +1 -1
  727. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset-api.service.ts +6 -4
  728. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.abstract.context.ts +1 -1
  729. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.constants.ts +1 -1
  730. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.controller.ts +1 -1
  731. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.entity.ts +1 -1
  732. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.middleware.ts +1 -1
  733. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.models.ts +1 -1
  734. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.provider.ts +1 -1
  735. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.repository.ts +1 -1
  736. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.subscriber.ts +1 -1
  737. package/ts-source/websql-code-prod/taon-cms-content-asset/taon-cms-content-asset.utils.ts +1 -1
  738. package/ts-source/websql-code-prod/taon-cms-content-permission/index.ts +1 -1
  739. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission-api.service.ts +6 -4
  740. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.abstract.context.ts +1 -1
  741. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.constants.ts +1 -1
  742. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.controller.ts +1 -1
  743. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.entity.ts +1 -1
  744. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.middleware.ts +1 -1
  745. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.models.ts +1 -1
  746. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.provider.ts +1 -1
  747. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.repository.ts +1 -1
  748. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.subscriber.ts +1 -1
  749. package/ts-source/websql-code-prod/taon-cms-content-permission/taon-cms-content-permission.utils.ts +1 -1
  750. package/ts-source/websql-code-prod/taon-cms-content-revision/index.ts +1 -1
  751. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision-api.service.ts +4 -5
  752. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.abstract.context.ts +1 -1
  753. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.constants.ts +1 -1
  754. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.controller.ts +1 -1
  755. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.entity.ts +1 -1
  756. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.middleware.ts +1 -1
  757. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.models.ts +1 -1
  758. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.provider.ts +1 -1
  759. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.repository.ts +1 -1
  760. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.subscriber.ts +1 -1
  761. package/ts-source/websql-code-prod/taon-cms-content-revision/taon-cms-content-revision.utils.ts +1 -1
  762. package/ts-source/websql-code-prod/taon-cms-content-tag/index.ts +1 -1
  763. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag-api.service.ts +2 -2
  764. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.abstract.context.ts +1 -1
  765. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.constants.ts +1 -1
  766. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.controller.ts +1 -1
  767. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.entity.ts +1 -1
  768. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.middleware.ts +1 -1
  769. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.models.ts +1 -1
  770. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.provider.ts +1 -1
  771. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.repository.ts +1 -1
  772. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.subscriber.ts +1 -1
  773. package/ts-source/websql-code-prod/taon-cms-content-tag/taon-cms-content-tag.utils.ts +1 -1
  774. package/ts-source/websql-code-prod/taon-cms-tag/index.ts +1 -1
  775. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag-api.service.ts +2 -8
  776. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.abstract.context.ts +1 -1
  777. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.constants.ts +1 -1
  778. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.controller.ts +1 -1
  779. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.entity.ts +1 -1
  780. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.middleware.ts +1 -1
  781. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.models.ts +1 -1
  782. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.provider.ts +1 -1
  783. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.repository.ts +1 -1
  784. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.subscriber.ts +1 -1
  785. package/ts-source/websql-code-prod/taon-cms-tag/taon-cms-tag.utils.ts +1 -1
  786. package/ts-source/websql-code-prod/taon-cms.abstract.context.ts +1 -1
  787. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/index.ts +1 -1
  788. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-editable.directive.ts +1 -1
  789. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.html +39 -1
  790. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.scss +12 -1
  791. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post.component.ts +66 -2
  792. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post.models.ts +1 -1
  793. package/ts-source/websql-code-prod/taon-posts/taon-cms-post/taon-cms-post.routes.ts +1 -1
  794. package/ts-source/websql-code-prod/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.ts +1 -1
  795. package/ts-source/websql-code-prod/taon-posts/taon-cms-post-edit-dialog/index.ts +1 -1
  796. package/ts-source/websql-code-prod/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.html +1 -1
  797. package/ts-source/websql-code-prod/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.scss +1 -1
  798. package/ts-source/websql-code-prod/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.ts +1 -1
  799. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/index.ts +1 -1
  800. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html +1 -1
  801. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.scss +1 -1
  802. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.ts +2 -2
  803. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.ts +1 -1
  804. package/ts-source/websql-code-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.ts +3 -4
  805. package/ts-source/websql-code-prod/taon-posts/taon-cms-revision-chooser/index.ts +1 -1
  806. package/ts-source/websql-code-prod/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html +1 -1
  807. package/ts-source/websql-code-prod/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.scss +1 -1
  808. package/ts-source/websql-code-prod/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.ts +1 -1
  809. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/index.ts +1 -1
  810. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +1 -1
  811. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.scss +1 -1
  812. package/ts-source/websql-code-prod/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.ts +1 -1
  813. package/websql/fesm2022/cms-websql.mjs +600 -256
  814. package/websql/fesm2022/cms-websql.mjs.map +1 -1
  815. package/websql/package.json +1 -1
  816. package/websql/types/cms-websql.d.ts +297 -251
  817. package/websql-prod/fesm2022/cms-websql-prod.mjs +600 -256
  818. package/websql-prod/fesm2022/cms-websql-prod.mjs.map +1 -1
  819. package/websql-prod/package.json +1 -1
  820. package/websql-prod/types/cms-websql-prod.d.ts +297 -251
  821. package/browser/fesm2022/cms-browser-my-organization-proj.ts.en-US.i18n.data-DmmrAdFK.mjs +0 -15
  822. package/browser/fesm2022/cms-browser-my-organization-proj.ts.en-US.i18n.data-DmmrAdFK.mjs.map +0 -1
  823. package/browser/fesm2022/cms-browser-my-organization-proj.ts.pl-PL.i18n.data-DLJyp-Bj.mjs +0 -16
  824. package/browser/fesm2022/cms-browser-my-organization-proj.ts.pl-PL.i18n.data-DLJyp-Bj.mjs.map +0 -1
  825. package/browser-prod/fesm2022/cms-browser-prod-my-organization-proj.ts.en-US.i18n.data-C_wk7SeG.mjs +0 -15
  826. package/browser-prod/fesm2022/cms-browser-prod-my-organization-proj.ts.en-US.i18n.data-C_wk7SeG.mjs.map +0 -1
  827. package/browser-prod/fesm2022/cms-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-Ez3YQGdF.mjs +0 -16
  828. package/browser-prod/fesm2022/cms-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-Ez3YQGdF.mjs.map +0 -1
  829. package/full-dts/app.data.d.ts +0 -23
  830. package/full-dts/i18n/lib.translation.d.ts +0 -5
  831. package/full-dts/my-organization-proj.d.ts +0 -2
  832. package/lib/app.data.d.ts +0 -22
  833. package/lib/app.data.js +0 -23
  834. package/lib/app.data.js.map +0 -1
  835. package/lib/i18n/lib.translation.d.ts +0 -4
  836. package/lib/i18n/lib.translation.js.map +0 -1
  837. package/lib/i18n/my-organization-proj.ts.en-US.i18n.data.js.map +0 -1
  838. package/lib/i18n/my-organization-proj.ts.pl-PL.i18n.data.js +0 -16
  839. package/lib/i18n/my-organization-proj.ts.pl-PL.i18n.data.js.map +0 -1
  840. package/lib/migrations/1791132517216_initial.d.ts +0 -7
  841. package/lib/migrations/1791132517216_initial.js +0 -73
  842. package/lib/migrations/1791132517216_initial.js.map +0 -1
  843. package/lib/my-organization-proj.d.ts +0 -1
  844. package/lib/my-organization-proj.js +0 -9
  845. package/lib/my-organization-proj.js.map +0 -1
  846. package/lib-esm/lib/app.data.d.ts +0 -22
  847. package/lib-esm/lib/app.data.js +0 -20
  848. package/lib-esm/lib/app.data.js.map +0 -1
  849. package/lib-esm/lib/i18n/lib.translation.d.ts +0 -4
  850. package/lib-esm/lib/i18n/lib.translation.js +0 -4
  851. package/lib-esm/lib/i18n/lib.translation.js.map +0 -1
  852. package/lib-esm/lib/i18n/my-organization-proj.ts.en-US.i18n.data.js +0 -13
  853. package/lib-esm/lib/i18n/my-organization-proj.ts.en-US.i18n.data.js.map +0 -1
  854. package/lib-esm/lib/i18n/my-organization-proj.ts.pl-PL.i18n.data.js +0 -14
  855. package/lib-esm/lib/i18n/my-organization-proj.ts.pl-PL.i18n.data.js.map +0 -1
  856. package/lib-esm/lib/migrations/1791132517216_initial.js +0 -64
  857. package/lib-esm/lib/migrations/1791132517216_initial.js.map +0 -1
  858. package/lib-esm/lib/my-organization-proj.d.ts +0 -1
  859. package/lib-esm/lib/my-organization-proj.js +0 -6
  860. package/lib-esm/lib/my-organization-proj.js.map +0 -1
  861. package/lib-prod/app.data.d.ts +0 -22
  862. package/lib-prod/app.data.js +0 -20
  863. package/lib-prod/app.data.js.map +0 -1
  864. package/lib-prod/i18n/lib.translation.d.ts +0 -4
  865. package/lib-prod/i18n/lib.translation.js +0 -4
  866. package/lib-prod/i18n/lib.translation.js.map +0 -1
  867. package/lib-prod/i18n/my-organization-proj.ts.en-US.i18n.data.js +0 -13
  868. package/lib-prod/i18n/my-organization-proj.ts.en-US.i18n.data.js.map +0 -1
  869. package/lib-prod/i18n/my-organization-proj.ts.pl-PL.i18n.data.js +0 -14
  870. package/lib-prod/i18n/my-organization-proj.ts.pl-PL.i18n.data.js.map +0 -1
  871. package/lib-prod/migrations/1791132517216_initial.js +0 -64
  872. package/lib-prod/migrations/1791132517216_initial.js.map +0 -1
  873. package/lib-prod/my-organization-proj.d.ts +0 -1
  874. package/lib-prod/my-organization-proj.js +0 -6
  875. package/lib-prod/my-organization-proj.js.map +0 -1
  876. package/ts-source/browser-code/app.data.ts +0 -34
  877. package/ts-source/browser-code/i18n/lib.translation.ts +0 -17
  878. package/ts-source/browser-code/i18n/my-organization-proj.ts.pl-PL.i18n.data.ts +0 -29
  879. package/ts-source/browser-code/migrations/1791132517216_initial.ts +0 -47
  880. package/ts-source/browser-code/my-organization-proj.ts +0 -18
  881. package/ts-source/browser-code-prod/app.data.ts +0 -34
  882. package/ts-source/browser-code-prod/i18n/my-organization-proj.ts.pl-PL.i18n.data.ts +0 -29
  883. package/ts-source/browser-code-prod/migrations/1791132517216_initial.ts +0 -47
  884. package/ts-source/browser-code-prod/my-organization-proj.ts +0 -18
  885. package/ts-source/websql-code/app.data.ts +0 -34
  886. package/ts-source/websql-code/i18n/lib.translation.ts +0 -17
  887. package/ts-source/websql-code/i18n/my-organization-proj.ts.pl-PL.i18n.data.ts +0 -29
  888. package/ts-source/websql-code/migrations/1791132517216_initial.ts +0 -47
  889. package/ts-source/websql-code/my-organization-proj.ts +0 -18
  890. package/ts-source/websql-code-prod/app.data.ts +0 -34
  891. package/ts-source/websql-code-prod/i18n/my-organization-proj.ts.pl-PL.i18n.data.ts +0 -29
  892. package/ts-source/websql-code-prod/migrations/1791132517216_initial.ts +0 -47
  893. package/ts-source/websql-code-prod/my-organization-proj.ts +0 -18
  894. package/websql/fesm2022/cms-websql-my-organization-proj.ts.en-US.i18n.data-BnqooYnv.mjs +0 -15
  895. package/websql/fesm2022/cms-websql-my-organization-proj.ts.en-US.i18n.data-BnqooYnv.mjs.map +0 -1
  896. package/websql/fesm2022/cms-websql-my-organization-proj.ts.pl-PL.i18n.data-wMy6Ze3w.mjs +0 -16
  897. package/websql/fesm2022/cms-websql-my-organization-proj.ts.pl-PL.i18n.data-wMy6Ze3w.mjs.map +0 -1
  898. package/websql-prod/fesm2022/cms-websql-prod-my-organization-proj.ts.en-US.i18n.data-DOOojzJR.mjs +0 -15
  899. package/websql-prod/fesm2022/cms-websql-prod-my-organization-proj.ts.en-US.i18n.data-DOOojzJR.mjs.map +0 -1
  900. package/websql-prod/fesm2022/cms-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-BzVDKLrA.mjs +0 -16
  901. package/websql-prod/fesm2022/cms-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-BzVDKLrA.mjs.map +0 -1
  902. /package/ts-source/browser-code-prod/{app.data.split-namespaces.json → decorators/taon-cms-authorization.split-namespaces.json} +0 -0
  903. /package/ts-source/browser-code-prod/{i18n/lib.translation.split-namespaces.json → migrations/1792506757808_applicaitonHooks.split-namespaces.json} +0 -0
  904. /package/ts-source/browser-code-prod/{migrations/1791132517216_initial.split-namespaces.json → taon-cms-application-hook/taon-cms-application-hook.entity.split-namespaces.json} +0 -0
  905. /package/ts-source/browser-code-prod/{my-organization-proj.split-namespaces.json → taon-cms-application-hooks.split-namespaces.json} +0 -0
  906. /package/ts-source/{websql-code-prod/app.data.split-namespaces.json → browser-code-prod/taon-cms-content/i18n/taon-cms-content.translation.split-namespaces.json} +0 -0
  907. /package/ts-source/websql-code-prod/{i18n/lib.translation.split-namespaces.json → decorators/taon-cms-authorization.split-namespaces.json} +0 -0
  908. /package/ts-source/websql-code-prod/migrations/{1791132517216_initial.split-namespaces.json → 1792506757808_applicaitonHooks.split-namespaces.json} +0 -0
  909. /package/ts-source/websql-code-prod/{my-organization-proj.split-namespaces.json → taon-cms-application-hook/taon-cms-application-hook.entity.split-namespaces.json} +0 -0
@@ -1,127 +1,308 @@
1
1
  import { __decorate, __metadata, __param } from 'tslib';
2
- import { TaonAuthContextRepository, TaonPermissionEntity, TaonSessionAbstractContext, TaonPermissionApiService } from '@taon-dev/session/websql-prod';
3
- import { TaonBaseMigration, TaonMigration, TaonBaseAbstractEntity, Column, TaonEntity, Taon__NS__error, TaonBaseRepository, TaonRepository, TaonBaseCrudController, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, TaonBaseEntity, PrimaryGeneratedColumn, ClassHelpers__NS__getName, GET, Query, ManyToMany, JoinTable, POST, Body, PUT, DELETE, TaonBaseStorageController, TaonBaseAngularService } from 'taon/websql-prod';
4
- import { Translation } from '@taon-dev/i18n/websql-prod';
2
+ import { TaonBaseEntity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn, TaonEntity, ManyToMany, JoinTable, TaonBaseMigration, ClassHelpers__NS__getName, TaonMigration, TaonBaseAbstractEntity, Taon__NS__error, TaonBaseRepository, TaonRepository, TaonBaseCrudController, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, GET, Query, POST, Body, PUT, DELETE, TaonBaseStorageController, TaonBaseAngularService } from 'taon/websql-prod';
3
+ import { TaonPermissionEntity, TaonSessionCoreGroups as TaonSessionCoreGroups$1, TaonSessionCoreRoles as TaonSessionCoreRoles$1, TaonSessionCorePermissions as TaonSessionCorePermissions$1, TaonAuthContextEntity as TaonAuthContextEntity$1, TaonAuthContextHasAccess as TaonAuthContextHasAccess$1, TaonAuthContextRepository as TaonAuthContextRepository$1, MIGRATIONS_CLASSES_FOR_SessionContext, TaonSessionRepository, TaonSessionAbstractContext, TaonPermissionApiService } from '@taon-dev/session/websql-prod';
4
+ import { Table, Raw, In } from 'taon-typeorm/websql-prod';
5
5
  import { UtilsJson__NS__getValue } from 'tnp-core/websql-prod';
6
6
  import { BaseCommandLineFeature } from 'tnp-helpers/websql-prod';
7
7
  import * as i0 from '@angular/core';
8
8
  import { Injectable, ChangeDetectionStrategy, Component, inject, ElementRef, EventEmitter, SecurityContext, HostListener, Input, Output, Directive, signal, DestroyRef, computed, input, model, output, effect, untracked, viewChild, ViewChild } from '@angular/core';
9
- import { Raw, In } from 'taon-typeorm/websql-prod';
10
9
  import { MtxGrid } from '@ng-matero/extensions/grid';
11
10
  import { AsyncPipe, DatePipe } from '@angular/common';
12
11
  import { RouterOutlet, ActivatedRoute, RouterLink, Router } from '@angular/router';
13
- import { adminLazyRoute, TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/websql-prod';
14
- import { map } from 'rxjs/operators';
12
+ import { adminLazyRoute as adminLazyRoute$1, TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/websql-prod';
13
+ import { map, catchError } from 'rxjs/operators';
14
+ import { of, finalize, map as map$1, Subject, takeUntil } from 'rxjs';
15
15
  import { DomSanitizer } from '@angular/platform-browser';
16
16
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
17
17
  import * as i1 from '@angular/material/button';
18
18
  import { MatButtonModule } from '@angular/material/button';
19
+ import * as i2$1 from '@angular/material/checkbox';
20
+ import { MatCheckboxModule } from '@angular/material/checkbox';
19
21
  import * as i2 from '@angular/material/dialog';
20
22
  import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule, MatDialog } from '@angular/material/dialog';
21
- import * as i2$1 from '@angular/material/form-field';
23
+ import * as i3$1 from '@angular/material/form-field';
22
24
  import { MatFormFieldModule } from '@angular/material/form-field';
23
- import * as i3$1 from '@angular/material/icon';
25
+ import * as i4 from '@angular/material/icon';
24
26
  import { MatIconModule } from '@angular/material/icon';
25
27
  import * as i3 from '@angular/material/radio';
26
28
  import { MatRadioModule } from '@angular/material/radio';
27
- import * as i5 from '@angular/material/select';
29
+ import * as i6 from '@angular/material/select';
28
30
  import { MatSelectModule } from '@angular/material/select';
29
- import { finalize, map as map$1, Subject, takeUntil } from 'rxjs';
31
+
32
+ let TaonCmsApplicationHookEntity = class TaonCmsApplicationHookEntity extends TaonBaseEntity {
33
+ };
34
+ __decorate([
35
+ PrimaryGeneratedColumn(),
36
+ __metadata("design:type", Number)
37
+ ], TaonCmsApplicationHookEntity.prototype, "id", void 0);
38
+ __decorate([
39
+ Column({ type: 'varchar', unique: true }),
40
+ __metadata("design:type", String)
41
+ ], TaonCmsApplicationHookEntity.prototype, "hook", void 0);
42
+ __decorate([
43
+ Column({ type: 'integer', nullable: true, unique: true }),
44
+ __metadata("design:type", Number)
45
+ ], TaonCmsApplicationHookEntity.prototype, "contentId", void 0);
46
+ __decorate([
47
+ OneToOne(() => TaonCmsContentEntity, content => content.applicationHook, { nullable: true, onDelete: 'SET NULL' }),
48
+ JoinColumn({ name: 'contentId', referencedColumnName: 'id' }),
49
+ __metadata("design:type", TaonCmsContentEntity)
50
+ ], TaonCmsApplicationHookEntity.prototype, "content", void 0);
51
+ TaonCmsApplicationHookEntity = __decorate([
52
+ TaonEntity({
53
+ className: 'TaonCmsApplicationHookEntity',
54
+ createTable: true,
55
+ })
56
+ ], TaonCmsApplicationHookEntity);
57
+
58
+ var TaonCmsContentType;
59
+ (function (TaonCmsContentType) {
60
+ TaonCmsContentType["Normal"] = "normal";
61
+ TaonCmsContentType["Video"] = "video";
62
+ TaonCmsContentType["Audio"] = "audio";
63
+ TaonCmsContentType["Attachment"] = "attachment";
64
+ })(TaonCmsContentType || (TaonCmsContentType = {}));
65
+ var TaonCmsContentState;
66
+ (function (TaonCmsContentState) {
67
+ TaonCmsContentState["Active"] = "active";
68
+ TaonCmsContentState["Inactive"] = "inactive";
69
+ })(TaonCmsContentState || (TaonCmsContentState = {}));
70
+
71
+ //#endregion
72
+ let TaonCmsContentEntity = class TaonCmsContentEntity extends TaonBaseEntity {
73
+ constructor() {
74
+ super(...arguments);
75
+ //#region @websql
76
+ this.type = TaonCmsContentType.Normal;
77
+ //#region @websql
78
+ this.videoKey = null;
79
+ //#region @websql
80
+ this.audioKey = null;
81
+ //#region @websql
82
+ this.attachmentKey = null;
83
+ }
84
+ };
85
+ __decorate([
86
+ PrimaryGeneratedColumn()
87
+ //#endregion
88
+ ,
89
+ __metadata("design:type", Number)
90
+ ], TaonCmsContentEntity.prototype, "id", void 0);
91
+ __decorate([
92
+ Column({ type: 'integer', default: 0 })
93
+ //#endregion
94
+ ,
95
+ __metadata("design:type", Number)
96
+ ], TaonCmsContentEntity.prototype, "version", void 0);
97
+ __decorate([
98
+ Column({ type: 'varchar', default: TaonCmsContentType.Normal })
99
+ //#endregion
100
+ ,
101
+ __metadata("design:type", String)
102
+ ], TaonCmsContentEntity.prototype, "type", void 0);
103
+ __decorate([
104
+ Column({ type: 'varchar' })
105
+ //#endregion
106
+ ,
107
+ __metadata("design:type", String)
108
+ ], TaonCmsContentEntity.prototype, "title", void 0);
109
+ __decorate([
110
+ Column({ type: 'varchar', unique: true })
111
+ //#endregion
112
+ ,
113
+ __metadata("design:type", String)
114
+ ], TaonCmsContentEntity.prototype, "slug", void 0);
115
+ __decorate([
116
+ ManyToMany(() => TaonCmsContentEntity),
117
+ JoinTable({
118
+ name: 'taon_cms_related_posts',
119
+ joinColumn: { name: 'contentId', referencedColumnName: 'id' },
120
+ inverseJoinColumn: { name: 'relatedPostId', referencedColumnName: 'id' },
121
+ })
122
+ //#endregion
123
+ ,
124
+ __metadata("design:type", Array)
125
+ ], TaonCmsContentEntity.prototype, "relatedPosts", void 0);
126
+ __decorate([
127
+ OneToOne(() => TaonCmsApplicationHookEntity, applicationHook => applicationHook.content)
128
+ //#endregion
129
+ ,
130
+ __metadata("design:type", TaonCmsApplicationHookEntity)
131
+ ], TaonCmsContentEntity.prototype, "applicationHook", void 0);
132
+ __decorate([
133
+ ManyToMany(() => TaonPermissionEntity),
134
+ JoinTable({
135
+ name: 'taon_cms_content_permissions',
136
+ joinColumn: { name: 'contentId', referencedColumnName: 'id' },
137
+ inverseJoinColumn: { name: 'permissionId', referencedColumnName: 'id' },
138
+ })
139
+ //#endregion
140
+ ,
141
+ __metadata("design:type", Array)
142
+ ], TaonCmsContentEntity.prototype, "permissions", void 0);
143
+ __decorate([
144
+ Column({ type: 'text', nullable: true })
145
+ //#endregion
146
+ ,
147
+ __metadata("design:type", String)
148
+ ], TaonCmsContentEntity.prototype, "excerpt", void 0);
149
+ __decorate([
150
+ Column({ type: 'text', nullable: true })
151
+ //#endregion
152
+ ,
153
+ __metadata("design:type", String)
154
+ ], TaonCmsContentEntity.prototype, "body", void 0);
155
+ __decorate([
156
+ Column({ type: 'varchar', nullable: true })
157
+ //#endregion
158
+ ,
159
+ __metadata("design:type", String)
160
+ ], TaonCmsContentEntity.prototype, "videoKey", void 0);
161
+ __decorate([
162
+ Column({ type: 'varchar', nullable: true })
163
+ //#endregion
164
+ ,
165
+ __metadata("design:type", String)
166
+ ], TaonCmsContentEntity.prototype, "audioKey", void 0);
167
+ __decorate([
168
+ Column({ type: 'varchar', nullable: true })
169
+ //#endregion
170
+ ,
171
+ __metadata("design:type", String)
172
+ ], TaonCmsContentEntity.prototype, "attachmentKey", void 0);
173
+ __decorate([
174
+ Column({ type: 'integer', nullable: true })
175
+ //#endregion
176
+ ,
177
+ __metadata("design:type", Number)
178
+ ], TaonCmsContentEntity.prototype, "categoryId", void 0);
179
+ __decorate([
180
+ Column({ type: 'integer', nullable: true })
181
+ //#endregion
182
+ ,
183
+ __metadata("design:type", Number)
184
+ ], TaonCmsContentEntity.prototype, "authorUserId", void 0);
185
+ __decorate([
186
+ Column({ type: 'varchar', default: 'draft' })
187
+ //#endregion
188
+ ,
189
+ __metadata("design:type", String)
190
+ ], TaonCmsContentEntity.prototype, "status", void 0);
191
+ __decorate([
192
+ Column({ type: 'datetime', nullable: true })
193
+ //#endregion
194
+ ,
195
+ __metadata("design:type", Date)
196
+ ], TaonCmsContentEntity.prototype, "publishedAt", void 0);
197
+ __decorate([
198
+ Column({ type: 'datetime' })
199
+ //#endregion
200
+ ,
201
+ __metadata("design:type", Date)
202
+ ], TaonCmsContentEntity.prototype, "createdAt", void 0);
203
+ __decorate([
204
+ Column({ type: 'datetime' })
205
+ //#endregion
206
+ ,
207
+ __metadata("design:type", Date)
208
+ ], TaonCmsContentEntity.prototype, "updatedAt", void 0);
209
+ TaonCmsContentEntity = __decorate([
210
+ TaonEntity({
211
+ className: 'TaonCmsContentEntity',
212
+ createTable: true,
213
+ })
214
+ ], TaonCmsContentEntity);
215
+
216
+ const TaonCmsApplicationHook = {
217
+ HOME_HERO: 'home-hero',
218
+ HOME_FEATURED_POST: 'home-featured-post',
219
+ SHOP_PROMOTION: 'shop-promotion',
220
+ LOGIN_INFO: 'login-info',
221
+ FOOTER_ABOUT: 'footer-about',
222
+ };
30
223
 
31
224
  //#region Migration class for context "CmsContext"
32
- let CmsContext_1791132517216_initial = class CmsContext_1791132517216_initial extends TaonBaseMigration {
225
+ let CmsContext_1792506757808_applicaitonHooks = class CmsContext_1792506757808_applicaitonHooks extends TaonBaseMigration {
33
226
  constructor() {
34
227
  super(...arguments);
35
- this.taonAuthContextRepository = this.injectCustomRepo((TaonAuthContextRepository));
36
- //#endregion
228
+ this.APPLICATION_HOOK_TABLE = ClassHelpers__NS__getName(TaonCmsApplicationHookEntity);
229
+ this.CONTENT_TABLE = ClassHelpers__NS__getName(TaonCmsContentEntity);
37
230
  }
38
231
  //#region up
39
232
  async up(queryRunner) {
40
- // await queryRunner.startTransaction();
233
+ await queryRunner.startTransaction();
41
234
  try {
42
- // await this.taonAuthContextRepository.persistTree({
43
- // enums: {
44
- // groups: MyAppGroup,
45
- // roles: MyAppRole,
46
- // permissions: MyAppPermission,
47
- // },
48
- // tree: {
49
- // groupAndRoles: {
50
- // [MyAppGroup.Administrator]: '*',
51
- // [MyAppGroup.Customers]: [MyAppRole.BlogReader],
52
- // },
53
- // rolesAndPermissions: {
54
- // [MyAppRole.Customer]: [
55
- // MyAppPermission.AccessCourseP2,
56
- // MyAppPermission.AccessCourseP2,
57
- // ],
58
- // [MyAppRole.CustomerPremium]: '*',
59
- // },
60
- // },
61
- // });
62
- // await queryRunner.commitTransaction();
235
+ if (!(await queryRunner.hasTable(this.APPLICATION_HOOK_TABLE))) {
236
+ await queryRunner.createTable(new Table({
237
+ name: this.APPLICATION_HOOK_TABLE,
238
+ columns: [
239
+ {
240
+ name: 'id',
241
+ type: 'integer',
242
+ isPrimary: true,
243
+ isGenerated: true,
244
+ generationStrategy: 'increment',
245
+ },
246
+ { name: 'hook', type: 'varchar', isUnique: true },
247
+ {
248
+ name: 'contentId',
249
+ type: 'integer',
250
+ isNullable: true,
251
+ isUnique: true,
252
+ },
253
+ ],
254
+ foreignKeys: [
255
+ {
256
+ columnNames: ['contentId'],
257
+ referencedTableName: this.CONTENT_TABLE,
258
+ referencedColumnNames: ['id'],
259
+ onDelete: 'SET NULL',
260
+ },
261
+ ],
262
+ }), true);
263
+ }
264
+ await this.persistApplicationHooks(queryRunner);
265
+ await queryRunner.commitTransaction();
63
266
  }
64
267
  catch (error) {
65
268
  console.error('Error in migration:', error);
66
269
  await queryRunner.rollbackTransaction();
67
- }
68
- finally {
69
- await queryRunner.release();
270
+ throw error;
70
271
  }
71
272
  }
72
273
  //#endregion
73
274
  //#region down
74
275
  async down(queryRunner) {
75
- await queryRunner.startTransaction();
76
- try {
77
- await this.taonAuthContextRepository.clearRolesGroupPermissions();
78
- await queryRunner.commitTransaction();
79
- }
80
- catch (error) {
81
- console.error('Error in migration:', error);
82
- await queryRunner.rollbackTransaction();
276
+ if (await queryRunner.hasTable(this.APPLICATION_HOOK_TABLE)) {
277
+ await queryRunner.dropTable(this.APPLICATION_HOOK_TABLE, true);
83
278
  }
84
- finally {
85
- await queryRunner.release();
279
+ }
280
+ //#endregion
281
+ async persistApplicationHooks(queryRunner) {
282
+ const repository = queryRunner.manager.getRepository(TaonCmsApplicationHookEntity);
283
+ for (const hook of Object.values(TaonCmsApplicationHook)) {
284
+ if (!(await repository.findOneBy({ hook }))) {
285
+ await repository.save(repository.create({ hook, contentId: null }));
286
+ }
86
287
  }
87
288
  }
88
289
  };
89
- CmsContext_1791132517216_initial = __decorate([
290
+ CmsContext_1792506757808_applicaitonHooks = __decorate([
90
291
  TaonMigration({
91
- className: 'CmsContext_1791132517216_initial',
292
+ className: 'CmsContext_1792506757808_applicaitonHooks',
92
293
  })
93
- ], CmsContext_1791132517216_initial);
294
+ ], CmsContext_1792506757808_applicaitonHooks);
94
295
  //#endregion
95
296
 
96
297
  // THIS FILE IS GENERATED - DO NOT MODIFY
97
298
  // THIS FILE IS GENERATED - DO NOT MODIFY
98
299
  const MIGRATIONS_CLASSES_FOR_CmsContext = {
99
- /* 04-10-2026 18:48:37 */ CmsContext_1791132517216_initial,
300
+ /* 20-10-2026 16:32:37 */ CmsContext_1792506757808_applicaitonHooks,
100
301
  };
101
302
  // THIS FILE IS GENERATED - DO NOT MODIFY
102
303
 
103
304
  //@ts-nocheck
104
305
 
105
- var MyAppGroup;
106
- (function (MyAppGroup) {
107
- MyAppGroup["Administrator"] = "administrator";
108
- MyAppGroup["Customers"] = "customers";
109
- })(MyAppGroup || (MyAppGroup = {}));
110
- var MyAppRole;
111
- (function (MyAppRole) {
112
- MyAppRole["MangePosts"] = "manage-posts";
113
- MyAppRole["Customer"] = "Customer";
114
- MyAppRole["CustomerPremium"] = "CustomerPremium";
115
- MyAppRole["BlogReader"] = "BlogReader";
116
- })(MyAppRole || (MyAppRole = {}));
117
- var MyAppPermission;
118
- (function (MyAppPermission) {
119
- MyAppPermission["AccessToAllEmails"] = "AccessToAllEmails";
120
- MyAppPermission["AccessCourseP1"] = "AccessCourseP1";
121
- MyAppPermission["AccessCourseP2"] = "AccessCourseP2";
122
- MyAppPermission["AccessCoursePremium"] = "AccessCoursePremium";
123
- })(MyAppPermission || (MyAppPermission = {}));
124
-
125
306
  // THIS FILE IS GENERATED - DO NOT MODIFY
126
307
  /**
127
308
  * Autogenerated by current cli tool
@@ -146,14 +327,9 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
146
327
  /**
147
328
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
148
329
  */
149
- const CURRENT_PACKAGE_VERSION = '21.0.14';
330
+ const CURRENT_PACKAGE_VERSION = '21.0.16';
150
331
  // THIS FILE IS GENERATED - DO NOT MODIFY
151
332
 
152
- const t = Translation.for('src/lib/my-organization-proj.ts', { "src/lib/my-organization-proj.ts": { "en-US": async () => (await import('./cms-websql-prod-my-organization-proj.ts.en-US.i18n.data-DOOojzJR.mjs')).default, "pl-PL": async () => (await import('./cms-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-BzVDKLrA.mjs')).default } });
153
- function myOrgProj() {
154
- t.gettext('My Translated Company Name!');
155
- }
156
-
157
333
  //#region tnp-helpers cli template
158
334
  /* */
159
335
  //#endregion
@@ -283,19 +459,6 @@ TaonCmsCategoryEntity = __decorate([
283
459
  })
284
460
  ], TaonCmsCategoryEntity);
285
461
 
286
- var TaonCmsContentType;
287
- (function (TaonCmsContentType) {
288
- TaonCmsContentType["Normal"] = "normal";
289
- TaonCmsContentType["Video"] = "video";
290
- TaonCmsContentType["Audio"] = "audio";
291
- TaonCmsContentType["Attachment"] = "attachment";
292
- })(TaonCmsContentType || (TaonCmsContentType = {}));
293
- var TaonCmsContentState;
294
- (function (TaonCmsContentState) {
295
- TaonCmsContentState["Active"] = "active";
296
- TaonCmsContentState["Inactive"] = "inactive";
297
- })(TaonCmsContentState || (TaonCmsContentState = {}));
298
-
299
462
  function contentError(message, status = 400) {
300
463
  Taon__NS__error({ message, status });
301
464
  throw new Error(message);
@@ -1112,144 +1275,100 @@ const TaonCmsTagAbstractContext = createContext(() => ({
1112
1275
  subscribers: { TaonCmsTagSubscriber },
1113
1276
  }));
1114
1277
 
1115
- //#endregion
1116
- let TaonCmsContentEntity = class TaonCmsContentEntity extends TaonBaseEntity {
1278
+ //#region taon auth decorator
1279
+ const TaonSessionCoreGroups = {
1280
+ ...TaonSessionCoreGroups$1,
1281
+ Manager: 'manager',
1282
+ };
1283
+ const TaonSessionCoreRoles = {
1284
+ ...TaonSessionCoreRoles$1,
1285
+ /**
1286
+ * Can manage roles and permissions assigned directly to users.
1287
+ * Does NOT allow changing user groups.
1288
+ */
1289
+ PostsManager: 'posts-manager',
1290
+ };
1291
+ const TaonSessionCorePermissions = {
1292
+ ...TaonSessionCorePermissions$1,
1293
+ };
1294
+ let TaonAuthContextEntity = class TaonAuthContextEntity extends TaonAuthContextEntity$1 {
1295
+ // @ts-ignore
1296
+ get hasAccess() {
1297
+ return this.injectClass(TaonAuthContextHasAccess, this);
1298
+ }
1299
+ };
1300
+ TaonAuthContextEntity = __decorate([
1301
+ TaonEntity({
1302
+ className: 'TaonAuthContextEntity',
1303
+ createTable: false,
1304
+ })
1305
+ ], TaonAuthContextEntity);
1306
+ class TaonAuthContextHasAccess extends TaonAuthContextHasAccess$1 {
1307
+ get toManagePosts() {
1308
+ //#region @browserFunc
1309
+ return this.context.snapshoot.toManagePosts;
1310
+ //#endregion
1311
+ //#region @websqlFunc
1312
+ return (this.context.isSuperUser ||
1313
+ this.context.hasRole(TaonSessionCoreRoles.PostsManager));
1314
+ //#endregion
1315
+ }
1316
+ }
1317
+ let TaonAuthContextRepository = class TaonAuthContextRepository extends TaonAuthContextRepository$1 {
1117
1318
  constructor() {
1118
1319
  super(...arguments);
1119
- //#region @websql
1120
- this.type = TaonCmsContentType.Normal;
1121
- //#region @websql
1122
- this.videoKey = null;
1123
- //#region @websql
1124
- this.audioKey = null;
1125
- //#region @websql
1126
- this.attachmentKey = null;
1320
+ // @ts-ignore
1321
+ this.entityClassResolveFn = () => TaonAuthContextEntity;
1127
1322
  }
1128
1323
  };
1129
- __decorate([
1130
- PrimaryGeneratedColumn()
1131
- //#endregion
1132
- ,
1133
- __metadata("design:type", Number)
1134
- ], TaonCmsContentEntity.prototype, "id", void 0);
1135
- __decorate([
1136
- Column({ type: 'integer', default: 0 })
1137
- //#endregion
1138
- ,
1139
- __metadata("design:type", Number)
1140
- ], TaonCmsContentEntity.prototype, "version", void 0);
1141
- __decorate([
1142
- Column({ type: 'varchar', default: TaonCmsContentType.Normal })
1143
- //#endregion
1144
- ,
1145
- __metadata("design:type", String)
1146
- ], TaonCmsContentEntity.prototype, "type", void 0);
1147
- __decorate([
1148
- Column({ type: 'varchar' })
1149
- //#endregion
1150
- ,
1151
- __metadata("design:type", String)
1152
- ], TaonCmsContentEntity.prototype, "title", void 0);
1153
- __decorate([
1154
- Column({ type: 'varchar', unique: true })
1155
- //#endregion
1156
- ,
1157
- __metadata("design:type", String)
1158
- ], TaonCmsContentEntity.prototype, "slug", void 0);
1159
- __decorate([
1160
- ManyToMany(() => TaonCmsContentEntity),
1161
- JoinTable({
1162
- name: 'taon_cms_related_posts',
1163
- joinColumn: { name: 'contentId', referencedColumnName: 'id' },
1164
- inverseJoinColumn: { name: 'relatedPostId', referencedColumnName: 'id' },
1165
- })
1166
- //#endregion
1167
- ,
1168
- __metadata("design:type", Array)
1169
- ], TaonCmsContentEntity.prototype, "relatedPosts", void 0);
1170
- __decorate([
1171
- ManyToMany(() => TaonPermissionEntity),
1172
- JoinTable({
1173
- name: 'taon_cms_content_permissions',
1174
- joinColumn: { name: 'contentId', referencedColumnName: 'id' },
1175
- inverseJoinColumn: { name: 'permissionId', referencedColumnName: 'id' },
1324
+ TaonAuthContextRepository = __decorate([
1325
+ TaonRepository({
1326
+ className: 'TaonAuthContextRepository',
1176
1327
  })
1177
- //#endregion
1178
- ,
1179
- __metadata("design:type", Array)
1180
- ], TaonCmsContentEntity.prototype, "permissions", void 0);
1181
- __decorate([
1182
- Column({ type: 'text', nullable: true })
1183
- //#endregion
1184
- ,
1185
- __metadata("design:type", String)
1186
- ], TaonCmsContentEntity.prototype, "excerpt", void 0);
1187
- __decorate([
1188
- Column({ type: 'text', nullable: true })
1189
- //#endregion
1190
- ,
1191
- __metadata("design:type", String)
1192
- ], TaonCmsContentEntity.prototype, "body", void 0);
1193
- __decorate([
1194
- Column({ type: 'varchar', nullable: true })
1195
- //#endregion
1196
- ,
1197
- __metadata("design:type", String)
1198
- ], TaonCmsContentEntity.prototype, "videoKey", void 0);
1199
- __decorate([
1200
- Column({ type: 'varchar', nullable: true })
1201
- //#endregion
1202
- ,
1203
- __metadata("design:type", String)
1204
- ], TaonCmsContentEntity.prototype, "audioKey", void 0);
1205
- __decorate([
1206
- Column({ type: 'varchar', nullable: true })
1207
- //#endregion
1208
- ,
1209
- __metadata("design:type", String)
1210
- ], TaonCmsContentEntity.prototype, "attachmentKey", void 0);
1211
- __decorate([
1212
- Column({ type: 'integer', nullable: true })
1213
- //#endregion
1214
- ,
1215
- __metadata("design:type", Number)
1216
- ], TaonCmsContentEntity.prototype, "categoryId", void 0);
1217
- __decorate([
1218
- Column({ type: 'integer', nullable: true })
1219
- //#endregion
1220
- ,
1221
- __metadata("design:type", Number)
1222
- ], TaonCmsContentEntity.prototype, "authorUserId", void 0);
1223
- __decorate([
1224
- Column({ type: 'varchar', default: 'draft' })
1225
- //#endregion
1226
- ,
1227
- __metadata("design:type", String)
1228
- ], TaonCmsContentEntity.prototype, "status", void 0);
1229
- __decorate([
1230
- Column({ type: 'datetime', nullable: true })
1231
- //#endregion
1232
- ,
1233
- __metadata("design:type", Date)
1234
- ], TaonCmsContentEntity.prototype, "publishedAt", void 0);
1235
- __decorate([
1236
- Column({ type: 'datetime' })
1237
- //#endregion
1238
- ,
1239
- __metadata("design:type", Date)
1240
- ], TaonCmsContentEntity.prototype, "createdAt", void 0);
1241
- __decorate([
1242
- Column({ type: 'datetime' })
1243
- //#endregion
1244
- ,
1245
- __metadata("design:type", Date)
1246
- ], TaonCmsContentEntity.prototype, "updatedAt", void 0);
1247
- TaonCmsContentEntity = __decorate([
1248
- TaonEntity({
1249
- className: 'TaonCmsContentEntity',
1250
- createTable: true,
1328
+ ], TaonAuthContextRepository);
1329
+ let CmsContext_1791132517217_initial = class CmsContext_1791132517217_initial extends MIGRATIONS_CLASSES_FOR_SessionContext.SessionContext_1791132517216_initial {
1330
+ async persistTree() {
1331
+ //#region @websqlFunc
1332
+ await this.taonAuthContextRepository.persistTree({
1333
+ authorization: {
1334
+ groups: TaonSessionCoreGroups,
1335
+ roles: TaonSessionCoreRoles,
1336
+ permissions: TaonSessionCorePermissions,
1337
+ },
1338
+ tree: {
1339
+ groupAndRoles: {
1340
+ // Administrators receive all core administrative roles.
1341
+ [TaonSessionCoreGroups.Administrator]: '*',
1342
+ // Normal customers receive no administrative roles by default.
1343
+ [TaonSessionCoreGroups.Customers]: [],
1344
+ [TaonSessionCoreGroups.Manager]: [TaonSessionCoreRoles.PostsManager],
1345
+ },
1346
+ rolesAndPermissions: {
1347
+ [TaonSessionCoreRoles.AuthorizationManager]: [
1348
+ TaonSessionCorePermissions.ViewUsers,
1349
+ TaonSessionCorePermissions.ViewUserAuthorization,
1350
+ TaonSessionCorePermissions.ManageUserRoles,
1351
+ TaonSessionCorePermissions.ManageUserPermissions,
1352
+ ],
1353
+ [TaonSessionCoreRoles.PostsManager]: [],
1354
+ [TaonSessionCoreRoles.UserManager]: [
1355
+ TaonSessionCorePermissions.ViewUsers,
1356
+ TaonSessionCorePermissions.ManageUsers,
1357
+ TaonSessionCorePermissions.ViewSessions,
1358
+ TaonSessionCorePermissions.RevokeSessions,
1359
+ ],
1360
+ },
1361
+ },
1362
+ });
1363
+ //#endregion
1364
+ }
1365
+ };
1366
+ CmsContext_1791132517217_initial = __decorate([
1367
+ TaonMigration({
1368
+ className: 'CmsContext_1791132517217_initial',
1251
1369
  })
1252
- ], TaonCmsContentEntity);
1370
+ ], CmsContext_1791132517217_initial);
1371
+ //#endregion
1253
1372
 
1254
1373
  //#endregion
1255
1374
  let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRepository {
@@ -1282,6 +1401,7 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1282
1401
  await this.taonCmsContentTagRepository.replaceTags(content.id, tagIds, manager);
1283
1402
  await this.replaceRelatedPosts(content.id, relatedPostIds, [], manager);
1284
1403
  await this.replacePermissions(content.id, permissionIds, [], manager);
1404
+ await this.replaceApplicationHook(content.id, input.applicationHook ?? null, manager);
1285
1405
  await this.taonCmsContentRevisionRepository.recordContent(content, { ...fields, tagIds, relatedPostIds, permissionIds }, manager);
1286
1406
  return this.requireContent(content.id, manager);
1287
1407
  });
@@ -1305,7 +1425,7 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1305
1425
  const permissionIds = input.permissionIds === undefined
1306
1426
  ? snapshot.permissionIds
1307
1427
  : [...new Set(input.permissionIds)];
1308
- return this.commitUpdate(current, input.expectedVersion, { ...fields, tagIds, relatedPostIds, permissionIds }, manager);
1428
+ return this.commitUpdate(current, input.expectedVersion, { ...fields, tagIds, relatedPostIds, permissionIds }, manager, input.applicationHook);
1309
1429
  });
1310
1430
  //#endregion
1311
1431
  }
@@ -1377,6 +1497,27 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1377
1497
  return this.connection.transaction(async (manager) => (await this.requireContent(id, manager)).permissions);
1378
1498
  //#endregion
1379
1499
  }
1500
+ async listApplicationHooks() {
1501
+ //#region @websqlFunc
1502
+ return this.connection
1503
+ .getRepository(TaonCmsApplicationHookEntity)
1504
+ .find({ order: { hook: 'ASC' } });
1505
+ //#endregion
1506
+ }
1507
+ async getContentByHook(hook) {
1508
+ //#region @websqlFunc
1509
+ if (!hook) {
1510
+ contentError('Application hook is required.');
1511
+ }
1512
+ const applicationHook = await this.connection
1513
+ .getRepository(TaonCmsApplicationHookEntity)
1514
+ .findOne({
1515
+ where: { hook: hook },
1516
+ relations: { content: true },
1517
+ });
1518
+ return applicationHook?.content?.body ?? '';
1519
+ //#endregion
1520
+ }
1380
1521
  async addRelatedPost(id, relatedPostId, expectedVersion) {
1381
1522
  //#region @websqlFunc
1382
1523
  return this.changeRelatedPost(id, relatedPostId, expectedVersion, true);
@@ -1413,7 +1554,11 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1413
1554
  .getRepository(this.target)
1414
1555
  .findOne({
1415
1556
  where: { id },
1416
- relations: { relatedPosts: true, permissions: true },
1557
+ relations: {
1558
+ relatedPosts: true,
1559
+ permissions: true,
1560
+ applicationHook: true,
1561
+ },
1417
1562
  });
1418
1563
  if (!content) {
1419
1564
  contentError(`Content ${id} does not exist.`, 404);
@@ -1545,7 +1690,36 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1545
1690
  }
1546
1691
  //#endregion
1547
1692
  }
1548
- async commitUpdate(current, expectedVersion, snapshot, manager) {
1693
+ async replaceApplicationHook(contentId, hook, manager) {
1694
+ //#region @websqlFunc
1695
+ const repository = manager.getRepository(TaonCmsApplicationHookEntity);
1696
+ const current = await repository.findOneBy({ contentId });
1697
+ if (hook === null) {
1698
+ if (current) {
1699
+ current.contentId = null;
1700
+ await repository.save(current);
1701
+ }
1702
+ return;
1703
+ }
1704
+ const target = await repository.findOneBy({ hook });
1705
+ if (!target) {
1706
+ contentError(`Application hook "${hook}" is not configured.`, 404);
1707
+ }
1708
+ if (target.contentId !== null && target.contentId !== contentId) {
1709
+ contentError(`Application hook "${hook}" is already in use.`, 409);
1710
+ }
1711
+ if (current?.id === target.id) {
1712
+ return;
1713
+ }
1714
+ if (current) {
1715
+ current.contentId = null;
1716
+ await repository.save(current);
1717
+ }
1718
+ target.contentId = contentId;
1719
+ await repository.save(target);
1720
+ //#endregion
1721
+ }
1722
+ async commitUpdate(current, expectedVersion, snapshot, manager, applicationHook) {
1549
1723
  //#region @websqlFunc
1550
1724
  if (current.version !== expectedVersion) {
1551
1725
  contentError('Content has changed. Reload it before editing.', 409);
@@ -1566,6 +1740,9 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1566
1740
  await this.taonCmsContentTagRepository.replaceTags(current.id, snapshot.tagIds, manager);
1567
1741
  await this.replaceRelatedPosts(current.id, [...new Set(snapshot.relatedPostIds ?? [])], current.relatedPosts.map(post => post.id), manager);
1568
1742
  await this.replacePermissions(current.id, [...new Set(snapshot.permissionIds ?? [])], current.permissions.map(permission => permission.id), manager);
1743
+ if (applicationHook !== undefined) {
1744
+ await this.replaceApplicationHook(current.id, applicationHook, manager);
1745
+ }
1569
1746
  const updated = await this.requireContent(current.id, manager);
1570
1747
  await this.taonCmsContentRevisionRepository.recordContent(updated, {
1571
1748
  ...fields,
@@ -1602,7 +1779,41 @@ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCr
1602
1779
  super(...arguments);
1603
1780
  this.entityClassResolveFn = () => TaonCmsContentEntity;
1604
1781
  this.taonCmsContentRepository = this.injectCustomRepo(TaonCmsContentRepository);
1782
+ this.taonSessionRepository = this.injectCustomRepo(TaonSessionRepository);
1783
+ this.taonAuthContextRepository = this.injectCustomRepo(TaonAuthContextRepository);
1605
1784
  }
1785
+ async beforeEachRequest({ req, res, methodConfig, t, }) {
1786
+ /* */
1787
+ /* */
1788
+ /* */
1789
+ /* */
1790
+ /* */
1791
+ /* */
1792
+ /* */
1793
+ /* */
1794
+ /* */
1795
+ /* */
1796
+ /* */
1797
+ /* */
1798
+ /* */
1799
+ /* */
1800
+ /* */
1801
+ return (void 0);
1802
+ }
1803
+ //#region get by id
1804
+ getBySlug(slug) {
1805
+ //#region @websqlFunc
1806
+ return async () => {
1807
+ const model = await this.db.findOne({
1808
+ where: {
1809
+ slug,
1810
+ },
1811
+ });
1812
+ return model;
1813
+ };
1814
+ //#endregion
1815
+ }
1816
+ //#endregion
1606
1817
  createContent(input) {
1607
1818
  //#region @websqlFunc
1608
1819
  return async () => this.taonCmsContentRepository.createContent(input);
@@ -1633,6 +1844,21 @@ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCr
1633
1844
  return async () => this.taonCmsContentRepository.listPermissions(id);
1634
1845
  //#endregion
1635
1846
  }
1847
+ listApplicationHooks() {
1848
+ //#region @websqlFunc
1849
+ return async () => this.taonCmsContentRepository.listApplicationHooks();
1850
+ //#endregion
1851
+ }
1852
+ getContentByHook(hook) {
1853
+ //#region @websqlFunc
1854
+ return async () => this.taonCmsContentRepository.getContentByHook(hook);
1855
+ //#endregion
1856
+ }
1857
+ getPublicContentByHook(hook) {
1858
+ //#region @websqlFunc
1859
+ return async () => this.taonCmsContentRepository.getContentByHook(hook);
1860
+ //#endregion
1861
+ }
1636
1862
  addRelatedPost(id, relatedPostId, expectedVersion) {
1637
1863
  //#region @websqlFunc
1638
1864
  return async () => this.taonCmsContentRepository.addRelatedPost(id, relatedPostId, expectedVersion);
@@ -1649,6 +1875,13 @@ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCr
1649
1875
  //#endregion
1650
1876
  }
1651
1877
  };
1878
+ __decorate([
1879
+ GET(),
1880
+ __param(0, Query(`slug`)),
1881
+ __metadata("design:type", Function),
1882
+ __metadata("design:paramtypes", [String]),
1883
+ __metadata("design:returntype", Object)
1884
+ ], TaonCmsContentController.prototype, "getBySlug", null);
1652
1885
  __decorate([
1653
1886
  POST(),
1654
1887
  __param(0, Body()),
@@ -1694,6 +1927,26 @@ __decorate([
1694
1927
  __metadata("design:paramtypes", [Number]),
1695
1928
  __metadata("design:returntype", Object)
1696
1929
  ], TaonCmsContentController.prototype, "listPermissions", null);
1930
+ __decorate([
1931
+ GET(),
1932
+ __metadata("design:type", Function),
1933
+ __metadata("design:paramtypes", []),
1934
+ __metadata("design:returntype", Object)
1935
+ ], TaonCmsContentController.prototype, "listApplicationHooks", null);
1936
+ __decorate([
1937
+ GET(),
1938
+ __param(0, Query('hook')),
1939
+ __metadata("design:type", Function),
1940
+ __metadata("design:paramtypes", [String]),
1941
+ __metadata("design:returntype", Object)
1942
+ ], TaonCmsContentController.prototype, "getContentByHook", null);
1943
+ __decorate([
1944
+ GET(),
1945
+ __param(0, Query('hook')),
1946
+ __metadata("design:type", Function),
1947
+ __metadata("design:paramtypes", [String]),
1948
+ __metadata("design:returntype", Object)
1949
+ ], TaonCmsContentController.prototype, "getPublicContentByHook", null);
1697
1950
  __decorate([
1698
1951
  POST(),
1699
1952
  __param(0, Query('id')),
@@ -1732,9 +1985,12 @@ TaonCmsContentController = __decorate([
1732
1985
  'listRevisions',
1733
1986
  'listRelatedPosts',
1734
1987
  'listPermissions',
1988
+ 'listApplicationHooks',
1989
+ 'getContentByHook',
1990
+ 'getPublicContentByHook',
1735
1991
  'addRelatedPost',
1736
1992
  'deleteRelatedPost',
1737
- 'paginationQuery'
1993
+ 'paginationQuery',
1738
1994
  ],
1739
1995
  })
1740
1996
  ], TaonCmsContentController);
@@ -1820,7 +2076,7 @@ const TaonCmsContentAbstractContext = createContext(() => ({
1820
2076
  TaonCmsContentTagAbstractContext,
1821
2077
  TaonCmsContentRevisionAbstractContext,
1822
2078
  },
1823
- entities: { TaonCmsContentEntity },
2079
+ entities: { TaonCmsApplicationHookEntity, TaonCmsContentEntity },
1824
2080
  controllers: { TaonCmsContentController, TaonCmsContentStorageController },
1825
2081
  repositories: { TaonCmsContentRepository },
1826
2082
  providers: { TaonCmsContentProvider },
@@ -2226,9 +2482,6 @@ const TaonCmsAbstractContext = createContext(() => ({
2226
2482
  }));
2227
2483
  // THIS FILE IS GENERATED - DO NOT MODIFY
2228
2484
 
2229
- ;
2230
- // THIS FILE IS GENERATED - DO NOT MODIFY
2231
-
2232
2485
  class TaonCmsAssetsBackofficeComponent {
2233
2486
  constructor() {
2234
2487
  this.assets = [
@@ -2305,12 +2558,17 @@ var taonCmsBackoffice_component = /*#__PURE__*/Object.freeze({
2305
2558
  //end of namespace TaonCmsBackofficeModels
2306
2559
 
2307
2560
  //#endregion
2561
+ const adminLazyRoute = (adminLazyRoute$1);
2308
2562
  const TaonCmsBackofficeRoutes = [
2309
2563
  {
2310
2564
  path: '',
2311
2565
  loadComponent: () => Promise.resolve().then(function () { return taonCmsBackoffice_component; }).then(m => m.TaonCmsBackofficeComponent),
2312
2566
  children: [
2313
2567
  adminLazyRoute({
2568
+ isDisabled: ({ context }) => {
2569
+ // console.log('context', { context });
2570
+ return !context?.hasAccess.toManagePosts;
2571
+ },
2314
2572
  path: 'posts',
2315
2573
  menuItem: 'Posts',
2316
2574
  expandable: true,
@@ -2318,6 +2576,7 @@ const TaonCmsBackofficeRoutes = [
2318
2576
  loader: () => Promise.resolve().then(function () { return index$1; }).then(m => m.TaonCmsPostsBackofficeRoutes),
2319
2577
  }),
2320
2578
  adminLazyRoute({
2579
+ isDisabled: ({ context }) => !context?.hasAccess.toManagePosts,
2321
2580
  path: 'assets',
2322
2581
  menuItem: 'Assets',
2323
2582
  expandable: false,
@@ -2419,6 +2678,28 @@ class TaonCmsContentApiService extends TaonBaseAngularService {
2419
2678
  this.taonCmsContentController = this.injectController(TaonCmsContentController);
2420
2679
  this.taonCmsContentStorageController = this.injectController(TaonCmsContentStorageController);
2421
2680
  }
2681
+ get crudController() {
2682
+ return this.taonCmsContentController;
2683
+ }
2684
+ async getById(id) {
2685
+ return (await this.taonCmsContentController.getBy(id).request()).body.json;
2686
+ }
2687
+ async getBySlug(slug) {
2688
+ return (await this.taonCmsContentController.getBySlug(slug).request()).body
2689
+ .json;
2690
+ }
2691
+ getContentByHook(hook) {
2692
+ return this.taonCmsContentController.getContentByHook(hook)
2693
+ .request().observable.pipe(map(res => res.body.text));
2694
+ }
2695
+ getPublicContentByHook(hook) {
2696
+ return this.taonCmsContentController.getPublicContentByHook(hook)
2697
+ .request().observable.pipe(map(res => res.body.text), catchError(() => of('---')));
2698
+ }
2699
+ listApplicationHooks() {
2700
+ return this.taonCmsContentController.listApplicationHooks()
2701
+ .request().observable.pipe(map(res => res.body.json));
2702
+ }
2422
2703
  async uploadMedia(file) {
2423
2704
  const formData = new FormData();
2424
2705
  formData.append('file', file);
@@ -2509,10 +2790,12 @@ class TaonCmsContentAssetApiService extends TaonBaseAngularService {
2509
2790
  this.taonCmsContentAssetController = this.injectController(TaonCmsContentAssetController);
2510
2791
  }
2511
2792
  get allMyEntities$() {
2512
- return this.taonCmsContentAssetController.getAll().request().observable.pipe(map(res => res.body?.json));
2793
+ return this.taonCmsContentAssetController.getAll()
2794
+ .request().observable.pipe(map(res => res.body?.json));
2513
2795
  }
2514
2796
  helloWorld(user) {
2515
- return this.taonCmsContentAssetController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2797
+ return this.taonCmsContentAssetController.helloWord(user)
2798
+ .request().observable.pipe(map(res => res.responseText));
2516
2799
  }
2517
2800
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2518
2801
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetApiService }); }
@@ -2545,10 +2828,12 @@ class TaonCmsContentPermissionApiService extends TaonBaseAngularService {
2545
2828
  this.taonCmsContentPermissionController = this.injectController(TaonCmsContentPermissionController);
2546
2829
  }
2547
2830
  get allMyEntities$() {
2548
- return this.taonCmsContentPermissionController.getAll().request().observable.pipe(map(res => res.body?.json));
2831
+ return this.taonCmsContentPermissionController.getAll()
2832
+ .request().observable.pipe(map(res => res.body?.json));
2549
2833
  }
2550
2834
  helloWorld(user) {
2551
- return this.taonCmsContentPermissionController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2835
+ return this.taonCmsContentPermissionController.helloWord(user)
2836
+ .request().observable.pipe(map(res => res.responseText));
2552
2837
  }
2553
2838
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2554
2839
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionApiService }); }
@@ -2582,8 +2867,7 @@ class TaonCmsContentRevisionApiService extends TaonBaseAngularService {
2582
2867
  this.taonCmsContentRevisionController = this.injectController(TaonCmsContentRevisionController);
2583
2868
  }
2584
2869
  listRevisions(id) {
2585
- return this.contentController.listRevisions(id)
2586
- .request().observable.pipe(map(res => res.body.json));
2870
+ return this.contentController.listRevisions(id).request().observable.pipe(map(res => res.body.json));
2587
2871
  }
2588
2872
  restoreContent(id, input) {
2589
2873
  return this.contentController.restoreContent(id, input)
@@ -2656,12 +2940,6 @@ class TaonCmsTagApiService extends TaonBaseAngularService {
2656
2940
  super(...arguments);
2657
2941
  this.taonCmsTagController = this.injectController(TaonCmsTagController);
2658
2942
  }
2659
- get allMyEntities$() {
2660
- return this.taonCmsTagController.getAll().request().observable.pipe(map(res => res.body?.json));
2661
- }
2662
- helloWorld(user) {
2663
- return this.taonCmsTagController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2664
- }
2665
2943
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2666
2944
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagApiService }); }
2667
2945
  }
@@ -2993,6 +3271,11 @@ class TaonCmsPostComponent {
2993
3271
  this.relatedPosts = signal([], ...(ngDevMode ? [{ debugName: "relatedPosts" }] : []));
2994
3272
  this.relatedPostsLoading = signal(false, ...(ngDevMode ? [{ debugName: "relatedPostsLoading" }] : []));
2995
3273
  this.relatedPostsError = signal('', ...(ngDevMode ? [{ debugName: "relatedPostsError" }] : []));
3274
+ this.applicationHooks = signal([], ...(ngDevMode ? [{ debugName: "applicationHooks" }] : []));
3275
+ this.applicationHooksLoading = signal(false, ...(ngDevMode ? [{ debugName: "applicationHooksLoading" }] : []));
3276
+ this.applicationHooksError = signal('', ...(ngDevMode ? [{ debugName: "applicationHooksError" }] : []));
3277
+ this.useAsApplicationHook = signal(false, ...(ngDevMode ? [{ debugName: "useAsApplicationHook" }] : []));
3278
+ this.selectedApplicationHook = signal(null, ...(ngDevMode ? [{ debugName: "selectedApplicationHook" }] : []));
2996
3279
  this.permissions = signal([], ...(ngDevMode ? [{ debugName: "permissions" }] : []));
2997
3280
  this.permissionsLoading = signal(false, ...(ngDevMode ? [{ debugName: "permissionsLoading" }] : []));
2998
3281
  this.permissionsError = signal('', ...(ngDevMode ? [{ debugName: "permissionsError" }] : []));
@@ -3009,6 +3292,9 @@ class TaonCmsPostComponent {
3009
3292
  !!this.draft().slug.trim() &&
3010
3293
  !this.relatedPostsLoading() &&
3011
3294
  !this.relatedPostsError() &&
3295
+ !this.applicationHooksLoading() &&
3296
+ !this.applicationHooksError() &&
3297
+ (!this.useAsApplicationHook() || !!this.selectedApplicationHook()) &&
3012
3298
  !this.permissionsLoading() &&
3013
3299
  !this.permissionsError(), ...(ngDevMode ? [{ debugName: "canSave" }] : []));
3014
3300
  this.canPublish = computed(() => {
@@ -3025,7 +3311,10 @@ class TaonCmsPostComponent {
3025
3311
  });
3026
3312
  effect(() => {
3027
3313
  if (this.editing()) {
3028
- untracked(() => this.loadPermissionOptions());
3314
+ untracked(() => {
3315
+ this.loadApplicationHooks();
3316
+ this.loadPermissionOptions();
3317
+ });
3029
3318
  }
3030
3319
  });
3031
3320
  }
@@ -3097,6 +3386,38 @@ class TaonCmsPostComponent {
3097
3386
  this.relatedPosts.update(posts => posts.filter(post => post.id !== id));
3098
3387
  }
3099
3388
  //#endregion
3389
+ //#region methods / application hooks
3390
+ loadApplicationHooks() {
3391
+ if (this.applicationHooksLoading()) {
3392
+ return;
3393
+ }
3394
+ this.applicationHooksLoading.set(true);
3395
+ this.applicationHooksError.set('');
3396
+ this.applicationHooksLoad = this.api
3397
+ .listApplicationHooks()
3398
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.applicationHooksLoading.set(false)))
3399
+ .subscribe({
3400
+ next: hooks => {
3401
+ this.applicationHooks.set(hooks);
3402
+ this.setApplicationHookSelection(this.currentPost(), hooks);
3403
+ },
3404
+ error: (error) => {
3405
+ console.error('[taon-cms-post] Unable to load application hooks', error);
3406
+ this.applicationHooksError.set('Application hooks could not be loaded. Please try again.');
3407
+ },
3408
+ });
3409
+ }
3410
+ setUseAsApplicationHook(enabled) {
3411
+ this.useAsApplicationHook.set(enabled);
3412
+ }
3413
+ applicationHookInUseByAnotherPost(applicationHook) {
3414
+ return (applicationHook.contentId !== null &&
3415
+ applicationHook.contentId !== this.currentPost()?.id);
3416
+ }
3417
+ applicationHookLabel(hook) {
3418
+ return hook.split('-').join('_').toUpperCase();
3419
+ }
3420
+ //#endregion
3100
3421
  //#region methods / load permissions
3101
3422
  loadPermissions() {
3102
3423
  if (this.busy() || this.permissionsLoading()) {
@@ -3257,6 +3578,9 @@ class TaonCmsPostComponent {
3257
3578
  ...this.draft(),
3258
3579
  relatedPostIds: this.relatedPosts().map(post => post.id),
3259
3580
  permissionIds: this.permissions().map(permission => permission.id),
3581
+ applicationHook: this.useAsApplicationHook()
3582
+ ? this.selectedApplicationHook()
3583
+ : null,
3260
3584
  }));
3261
3585
  }
3262
3586
  else {
@@ -3353,6 +3677,9 @@ class TaonCmsPostComponent {
3353
3677
  ...this.draft(),
3354
3678
  relatedPostIds: this.relatedPosts().map(related => related.id),
3355
3679
  permissionIds: this.permissions().map(permission => permission.id),
3680
+ applicationHook: this.useAsApplicationHook()
3681
+ ? this.selectedApplicationHook()
3682
+ : null,
3356
3683
  expectedVersion: post.version,
3357
3684
  };
3358
3685
  }
@@ -3369,15 +3696,19 @@ class TaonCmsPostComponent {
3369
3696
  //#region methods / set post
3370
3697
  setPost(post) {
3371
3698
  this.relatedPostsLoad?.unsubscribe();
3699
+ this.applicationHooksLoad?.unsubscribe();
3372
3700
  this.permissionsLoad?.unsubscribe();
3373
3701
  this.relatedPostsLoading.set(false);
3374
3702
  this.relatedPostsError.set('');
3703
+ this.applicationHooksLoading.set(false);
3704
+ this.applicationHooksError.set('');
3375
3705
  this.permissionsLoading.set(false);
3376
3706
  this.permissionsError.set('');
3377
3707
  this.currentPost.set(post);
3378
3708
  this.relatedPosts.set(post?.relatedPosts ?? []);
3379
3709
  this.permissions.set(post?.permissions ?? []);
3380
3710
  this.selectedPermissionId.set(null);
3711
+ this.setApplicationHookSelection(post, this.applicationHooks());
3381
3712
  this.draft.set({
3382
3713
  type: post?.type ?? TaonCmsContentType.Normal,
3383
3714
  title: post?.title ?? '',
@@ -3400,6 +3731,14 @@ class TaonCmsPostComponent {
3400
3731
  }
3401
3732
  }
3402
3733
  //#endregion
3734
+ setApplicationHookSelection(post, hooks) {
3735
+ const assignedHook = post?.applicationHook !== undefined
3736
+ ? post.applicationHook?.hook
3737
+ : hooks.find(applicationHook => applicationHook.contentId === post?.id)
3738
+ ?.hook;
3739
+ this.useAsApplicationHook.set(!!assignedHook);
3740
+ this.selectedApplicationHook.set(assignedHook ?? null);
3741
+ }
3403
3742
  //#region methods / accept post
3404
3743
  acceptPost(post) {
3405
3744
  this.setPost(post);
@@ -3432,18 +3771,19 @@ class TaonCmsPostComponent {
3432
3771
  });
3433
3772
  }
3434
3773
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3435
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsPostComponent, isStandalone: true, selector: "taon-cms-post", inputs: { post: { classPropertyName: "post", publicName: "post", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mode: "modeChange", changed: "changed", deleted: "deleted", cancelled: "cancelled" }, providers: [TaonCmsContentApiService, TaonPermissionApiService], ngImport: i0, template: "@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"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\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\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 aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</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 mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>", styles: [":host{display:block}.post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem;border-bottom:1px solid rgba(136,136,136,.2)}.post-status{margin-right:auto;text-transform:capitalize;opacity:.7}.buttons{display:flex;flex-wrap:wrap;gap:.5rem}.post-article{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 1.5rem;overflow-wrap:anywhere}.post-title{margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.03em}.post-excerpt{margin:0 0 2rem;font-size:1.35rem;line-height:1.6;opacity:.7;white-space:pre-wrap}.post-body{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;line-height:1.8;white-space:pre-wrap}.editable{min-height:1.2em;outline:none}.editable:focus{box-shadow:-3px 0 #8885}.editable:empty:before{content:attr(data-placeholder);opacity:.4;pointer-events:none}.post-body.editable{min-height:12rem}.slug-field{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(136,136,136,.2);font-size:.875rem}.slug-field input{flex:1;min-width:160px;padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.error{padding:1rem;color:#b3261e}.post-type-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.media-attachment,.related-posts,.post-permissions{margin-top:1.5rem;font-size:.875rem}.media-attachment h2,.related-posts h2,.post-permissions h2{font-size:1rem}.related-posts ul,.post-permissions ul{padding:0;list-style:none}.related-posts li,.post-permissions li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: TaonCmsEditableDirective, selector: "[taonCmsEditable]", inputs: ["taonCmsEditableFormat", "taonCmsEditableSingleLine", "taonCmsEditable"], outputs: ["taonCmsEditableChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3774
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsPostComponent, isStandalone: true, selector: "taon-cms-post", inputs: { post: { classPropertyName: "post", publicName: "post", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mode: "modeChange", changed: "changed", deleted: "deleted", cancelled: "cancelled" }, providers: [TaonCmsContentApiService, TaonPermissionApiService], ngImport: i0, template: "@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"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\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\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 aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</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 mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"application-hook\" aria-labelledby=\"application-hook-heading\">\n <h2 id=\"application-hook-heading\">Application Hook</h2>\n @if (applicationHooksLoading()) {\n <p role=\"status\">Loading application hooks...</p>\n } @else if (applicationHooksError()) {\n <p class=\"error\" role=\"alert\">{{ applicationHooksError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadApplicationHooks()\">Try again</button>\n } @else {\n <mat-checkbox\n [checked]=\"useAsApplicationHook()\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"setUseAsApplicationHook($event.checked)\">\n Use as application hook\n </mat-checkbox>\n @if (useAsApplicationHook()) {\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Application Hook</mat-label>\n <mat-select\n [value]=\"selectedApplicationHook()\"\n [disabled]=\"busy() || dialogOpen()\"\n (selectionChange)=\"selectedApplicationHook.set($event.value)\">\n @for (applicationHook of applicationHooks(); track applicationHook.id) {\n <mat-option\n [value]=\"applicationHook.hook\"\n [disabled]=\"applicationHookInUseByAnotherPost(applicationHook)\">\n {{ applicationHookLabel(applicationHook.hook) }}\n @if (applicationHookInUseByAnotherPost(applicationHook)) {\n (in use by post #{{ applicationHook.contentId }})\n }\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No application hooks configured</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>", styles: [":host{display:block}.post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem;border-bottom:1px solid rgba(136,136,136,.2)}.post-status{margin-right:auto;text-transform:capitalize;opacity:.7}.buttons{display:flex;flex-wrap:wrap;gap:.5rem}.post-article{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 1.5rem;overflow-wrap:anywhere}.post-title{margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.03em}.post-excerpt{margin:0 0 2rem;font-size:1.35rem;line-height:1.6;opacity:.7;white-space:pre-wrap}.post-body{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;line-height:1.8;white-space:pre-wrap}.editable{min-height:1.2em;outline:none}.editable:focus{box-shadow:-3px 0 #8885}.editable:empty:before{content:attr(data-placeholder);opacity:.4;pointer-events:none}.post-body.editable{min-height:12rem}.slug-field{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(136,136,136,.2);font-size:.875rem}.slug-field input{flex:1;min-width:160px;padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.error{padding:1rem;color:#b3261e}.post-type-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.media-attachment,.related-posts,.application-hook,.post-permissions{margin-top:1.5rem;font-size:.875rem}.media-attachment h2,.related-posts h2,.application-hook h2,.post-permissions h2{font-size:1rem}.related-posts ul,.post-permissions ul{padding:0;list-style:none}.related-posts .application-hook,.post-permissions .application-hook{display:grid;align-items:start;gap:.75rem}.related-posts .application-hook mat-form-field,.post-permissions .application-hook mat-form-field{width:min(100%,28rem)}.related-posts li,.post-permissions li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: TaonCmsEditableDirective, selector: "[taonCmsEditable]", inputs: ["taonCmsEditableFormat", "taonCmsEditableSingleLine", "taonCmsEditable"], outputs: ["taonCmsEditableChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3436
3775
  }
3437
3776
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, decorators: [{
3438
3777
  type: Component,
3439
3778
  args: [{ selector: 'taon-cms-post', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
3440
3779
  MatButtonModule,
3780
+ MatCheckboxModule,
3441
3781
  MatFormFieldModule,
3442
3782
  MatIconModule,
3443
3783
  MatRadioModule,
3444
3784
  MatSelectModule,
3445
3785
  TaonCmsEditableDirective,
3446
- ], providers: [TaonCmsContentApiService, TaonPermissionApiService], template: "@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"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\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\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 aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</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 mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>", styles: [":host{display:block}.post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem;border-bottom:1px solid rgba(136,136,136,.2)}.post-status{margin-right:auto;text-transform:capitalize;opacity:.7}.buttons{display:flex;flex-wrap:wrap;gap:.5rem}.post-article{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 1.5rem;overflow-wrap:anywhere}.post-title{margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.03em}.post-excerpt{margin:0 0 2rem;font-size:1.35rem;line-height:1.6;opacity:.7;white-space:pre-wrap}.post-body{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;line-height:1.8;white-space:pre-wrap}.editable{min-height:1.2em;outline:none}.editable:focus{box-shadow:-3px 0 #8885}.editable:empty:before{content:attr(data-placeholder);opacity:.4;pointer-events:none}.post-body.editable{min-height:12rem}.slug-field{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(136,136,136,.2);font-size:.875rem}.slug-field input{flex:1;min-width:160px;padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.error{padding:1rem;color:#b3261e}.post-type-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.media-attachment,.related-posts,.post-permissions{margin-top:1.5rem;font-size:.875rem}.media-attachment h2,.related-posts h2,.post-permissions h2{font-size:1rem}.related-posts ul,.post-permissions ul{padding:0;list-style:none}.related-posts li,.post-permissions li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}\n"] }]
3786
+ ], providers: [TaonCmsContentApiService, TaonPermissionApiService], template: "@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"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\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\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 aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</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 mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"application-hook\" aria-labelledby=\"application-hook-heading\">\n <h2 id=\"application-hook-heading\">Application Hook</h2>\n @if (applicationHooksLoading()) {\n <p role=\"status\">Loading application hooks...</p>\n } @else if (applicationHooksError()) {\n <p class=\"error\" role=\"alert\">{{ applicationHooksError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadApplicationHooks()\">Try again</button>\n } @else {\n <mat-checkbox\n [checked]=\"useAsApplicationHook()\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"setUseAsApplicationHook($event.checked)\">\n Use as application hook\n </mat-checkbox>\n @if (useAsApplicationHook()) {\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Application Hook</mat-label>\n <mat-select\n [value]=\"selectedApplicationHook()\"\n [disabled]=\"busy() || dialogOpen()\"\n (selectionChange)=\"selectedApplicationHook.set($event.value)\">\n @for (applicationHook of applicationHooks(); track applicationHook.id) {\n <mat-option\n [value]=\"applicationHook.hook\"\n [disabled]=\"applicationHookInUseByAnotherPost(applicationHook)\">\n {{ applicationHookLabel(applicationHook.hook) }}\n @if (applicationHookInUseByAnotherPost(applicationHook)) {\n (in use by post #{{ applicationHook.contentId }})\n }\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No application hooks configured</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>", styles: [":host{display:block}.post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem;border-bottom:1px solid rgba(136,136,136,.2)}.post-status{margin-right:auto;text-transform:capitalize;opacity:.7}.buttons{display:flex;flex-wrap:wrap;gap:.5rem}.post-article{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 1.5rem;overflow-wrap:anywhere}.post-title{margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.03em}.post-excerpt{margin:0 0 2rem;font-size:1.35rem;line-height:1.6;opacity:.7;white-space:pre-wrap}.post-body{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;line-height:1.8;white-space:pre-wrap}.editable{min-height:1.2em;outline:none}.editable:focus{box-shadow:-3px 0 #8885}.editable:empty:before{content:attr(data-placeholder);opacity:.4;pointer-events:none}.post-body.editable{min-height:12rem}.slug-field{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(136,136,136,.2);font-size:.875rem}.slug-field input{flex:1;min-width:160px;padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.error{padding:1rem;color:#b3261e}.post-type-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.media-attachment,.related-posts,.application-hook,.post-permissions{margin-top:1.5rem;font-size:.875rem}.media-attachment h2,.related-posts h2,.application-hook h2,.post-permissions h2{font-size:1rem}.related-posts ul,.post-permissions ul{padding:0;list-style:none}.related-posts .application-hook,.post-permissions .application-hook{display:grid;align-items:start;gap:.75rem}.related-posts .application-hook mat-form-field,.post-permissions .application-hook mat-form-field{width:min(100%,28rem)}.related-posts li,.post-permissions li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}\n"] }]
3447
3787
  }], ctorParameters: () => [], propDecorators: { post: [{ type: i0.Input, args: [{ isSignal: true, alias: "post", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }, { type: i0.Output, args: ["modeChange"] }], changed: [{ type: i0.Output, args: ["changed"] }], deleted: [{ type: i0.Output, args: ["deleted"] }], cancelled: [{ type: i0.Output, args: ["cancelled"] }] } });
3448
3788
 
3449
3789
  var taonCmsPost_component = /*#__PURE__*/Object.freeze({
@@ -3523,7 +3863,7 @@ class TaonCmsPostEditDialogComponent {
3523
3863
  this.ref.close(post);
3524
3864
  }
3525
3865
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3526
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.9", type: TaonCmsPostEditDialogComponent, isStandalone: true, selector: "taon-cms-post-edit-dialog", viewQueries: [{ propertyName: "editor", first: true, predicate: TaonCmsPostComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<header class=\"dialog-header\">\n <h2>{{ data.mode === 'add' ? 'Add post' : 'Manage post' }}</h2>\n <button mat-icon-button type=\"button\" aria-label=\"Close post editor\" [disabled]=\"editor()?.busy() || editor()?.dialogOpen()\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</header>\n<taon-cms-post\n [post]=\"data.post ?? null\"\n [mode]=\"data.mode\"\n (changed)=\"changed.emit($event)\"\n (deleted)=\"deleted($event)\"\n (cancelled)=\"close()\" />\n", styles: [":host{display:block;height:100%;overflow-y:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(136,136,136,.2)}.dialog-header h2{margin:0;font-size:1rem;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: TaonCmsPostComponent, selector: "taon-cms-post", inputs: ["post", "mode"], outputs: ["modeChange", "changed", "deleted", "cancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3866
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.9", type: TaonCmsPostEditDialogComponent, isStandalone: true, selector: "taon-cms-post-edit-dialog", viewQueries: [{ propertyName: "editor", first: true, predicate: TaonCmsPostComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<header class=\"dialog-header\">\n <h2>{{ data.mode === 'add' ? 'Add post' : 'Manage post' }}</h2>\n <button mat-icon-button type=\"button\" aria-label=\"Close post editor\" [disabled]=\"editor()?.busy() || editor()?.dialogOpen()\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</header>\n<taon-cms-post\n [post]=\"data.post ?? null\"\n [mode]=\"data.mode\"\n (changed)=\"changed.emit($event)\"\n (deleted)=\"deleted($event)\"\n (cancelled)=\"close()\" />\n", styles: [":host{display:block;height:100%;overflow-y:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(136,136,136,.2)}.dialog-header h2{margin:0;font-size:1rem;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: TaonCmsPostComponent, selector: "taon-cms-post", inputs: ["post", "mode"], outputs: ["modeChange", "changed", "deleted", "cancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3527
3867
  }
3528
3868
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, decorators: [{
3529
3869
  type: Component,
@@ -3577,7 +3917,7 @@ class TaonCmsPostsBackofficeComponent {
3577
3917
  ];
3578
3918
  }
3579
3919
  get crud() {
3580
- return this.taonCmsContentApiService.taonCmsContentController;
3920
+ return this.taonCmsContentApiService.crudController;
3581
3921
  }
3582
3922
  reload() {
3583
3923
  this.datatable.reload();
@@ -3672,9 +4012,8 @@ const resolvePost = async (route) => {
3672
4012
  if (!Number.isSafeInteger(id) || id <= 0) {
3673
4013
  throw new Error('Invalid Post ID');
3674
4014
  }
3675
- const apiService = inject(TaonCmsContentApiService);
3676
- const post = (await apiService.taonCmsContentController.getBy(id).request())
3677
- .body.json;
4015
+ const taonCmsContentApiService = inject(TaonCmsContentApiService);
4016
+ const post = await taonCmsContentApiService.getById(id);
3678
4017
  if (!post) {
3679
4018
  throw new Error('Post not found');
3680
4019
  }
@@ -3717,12 +4056,15 @@ var index$1 = /*#__PURE__*/Object.freeze({
3717
4056
  BUILD_FRAMEWORK_CLI_NAME: BUILD_FRAMEWORK_CLI_NAME,
3718
4057
  CURRENT_PACKAGE_TAON_VERSION: CURRENT_PACKAGE_TAON_VERSION,
3719
4058
  CURRENT_PACKAGE_VERSION: CURRENT_PACKAGE_VERSION,
4059
+ get CmsContext_1791132517217_initial () { return CmsContext_1791132517217_initial; },
3720
4060
  MIGRATIONS_CLASSES_FOR_CmsContext: MIGRATIONS_CLASSES_FOR_CmsContext,
3721
- get MyAppGroup () { return MyAppGroup; },
3722
- get MyAppPermission () { return MyAppPermission; },
3723
- get MyAppRole () { return MyAppRole; },
3724
4061
  PROJECT_NPM_NAME: PROJECT_NPM_NAME,
4062
+ get TaonAuthContextEntity () { return TaonAuthContextEntity; },
4063
+ TaonAuthContextHasAccess: TaonAuthContextHasAccess,
4064
+ get TaonAuthContextRepository () { return TaonAuthContextRepository; },
3725
4065
  TaonCmsAbstractContext: TaonCmsAbstractContext,
4066
+ TaonCmsApplicationHook: TaonCmsApplicationHook,
4067
+ get TaonCmsApplicationHookEntity () { return TaonCmsApplicationHookEntity; },
3726
4068
  TaonCmsAssetsBackofficeComponent: TaonCmsAssetsBackofficeComponent,
3727
4069
  TaonCmsAssetsBackofficeRoutes: TaonCmsAssetsBackofficeRoutes,
3728
4070
  TaonCmsBackofficeComponent: TaonCmsBackofficeComponent,
@@ -3827,9 +4169,11 @@ var index$1 = /*#__PURE__*/Object.freeze({
3827
4169
  get TaonCmsTagSubscriber () { return TaonCmsTagSubscriber; },
3828
4170
  TaonCmsTagUtils__NS__isActive: TaonCmsTagUtils__NS__isActive,
3829
4171
  TaonRelatedPostChooserComponent: TaonRelatedPostChooserComponent,
4172
+ TaonSessionCoreGroups: TaonSessionCoreGroups,
4173
+ TaonSessionCorePermissions: TaonSessionCorePermissions,
4174
+ TaonSessionCoreRoles: TaonSessionCoreRoles,
3830
4175
  contentError: contentError,
3831
4176
  default: index,
3832
- myOrgProj: myOrgProj,
3833
4177
  requireContentId: requireContentId,
3834
4178
  requireContentVersion: requireContentVersion,
3835
4179
  startCli: startCli,
@@ -3840,5 +4184,5 @@ var index$1 = /*#__PURE__*/Object.freeze({
3840
4184
  * Generated bundle index. Do not edit.
3841
4185
  */
3842
4186
 
3843
- export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, MIGRATIONS_CLASSES_FOR_CmsContext, MyAppGroup, MyAppPermission, MyAppRole, PROJECT_NPM_NAME, TaonCmsAbstractContext, TaonCmsAssetsBackofficeComponent, TaonCmsAssetsBackofficeRoutes, TaonCmsBackofficeComponent, TaonCmsBackofficeRoutes, TaonCmsCategoryAbstractContext, TaonCmsCategoryApiService, TaonCmsCategoryController, TaonCmsCategoryDefaultsValues, TaonCmsCategoryEntity, TaonCmsCategoryMiddleware, TaonCmsCategoryProvider, TaonCmsCategoryRepository, TaonCmsCategoryState, TaonCmsCategorySubscriber, TaonCmsCategoryUtils__NS__isActive, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils__NS__isActive, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils__NS__isActive, TaonCmsContentConfigService, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils__NS__isActive, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils__NS__isActive, TaonCmsContentState, TaonCmsContentStorageController, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils__NS__isActive, TaonCmsContentType, TaonCmsContentUtils__NS__isActive, TaonCmsEditableDirective, TaonCmsPostComponent, TaonCmsPostDetailsPageComponent, TaonCmsPostEditDialogComponent, TaonCmsPostRoutes, TaonCmsPostsBackofficeComponent, TaonCmsPostsBackofficeRoutes, TaonCmsRevisionChooserComponent, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils__NS__isActive, TaonRelatedPostChooserComponent, contentError, myOrgProj, requireContentId, requireContentVersion, startCli, validateContentInput };
4187
+ export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, CmsContext_1791132517217_initial, MIGRATIONS_CLASSES_FOR_CmsContext, PROJECT_NPM_NAME, TaonAuthContextEntity, TaonAuthContextHasAccess, TaonAuthContextRepository, TaonCmsAbstractContext, TaonCmsApplicationHook, TaonCmsApplicationHookEntity, TaonCmsAssetsBackofficeComponent, TaonCmsAssetsBackofficeRoutes, TaonCmsBackofficeComponent, TaonCmsBackofficeRoutes, TaonCmsCategoryAbstractContext, TaonCmsCategoryApiService, TaonCmsCategoryController, TaonCmsCategoryDefaultsValues, TaonCmsCategoryEntity, TaonCmsCategoryMiddleware, TaonCmsCategoryProvider, TaonCmsCategoryRepository, TaonCmsCategoryState, TaonCmsCategorySubscriber, TaonCmsCategoryUtils__NS__isActive, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils__NS__isActive, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils__NS__isActive, TaonCmsContentConfigService, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils__NS__isActive, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils__NS__isActive, TaonCmsContentState, TaonCmsContentStorageController, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils__NS__isActive, TaonCmsContentType, TaonCmsContentUtils__NS__isActive, TaonCmsEditableDirective, TaonCmsPostComponent, TaonCmsPostDetailsPageComponent, TaonCmsPostEditDialogComponent, TaonCmsPostRoutes, TaonCmsPostsBackofficeComponent, TaonCmsPostsBackofficeRoutes, TaonCmsRevisionChooserComponent, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils__NS__isActive, TaonRelatedPostChooserComponent, TaonSessionCoreGroups, TaonSessionCorePermissions, TaonSessionCoreRoles, contentError, requireContentId, requireContentVersion, startCli, validateContentInput };
3844
4188
  //# sourceMappingURL=cms-websql-prod.mjs.map