@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';
3
- import { TaonBaseMigration, TaonMigration, TaonBaseAbstractEntity, Column, TaonEntity, Taon, TaonBaseRepository, TaonRepository, TaonBaseCrudController, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, TaonBaseEntity, PrimaryGeneratedColumn, ClassHelpers, GET, Query, ManyToMany, JoinTable, POST, Body, PUT, DELETE, TaonBaseStorageController, TaonBaseAngularService } from 'taon/websql';
4
- import { Translation } from '@taon-dev/i18n/websql';
2
+ import { TaonBaseEntity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn, TaonEntity, ManyToMany, JoinTable, TaonBaseMigration, ClassHelpers, TaonMigration, TaonBaseAbstractEntity, Taon, TaonBaseRepository, TaonRepository, TaonBaseCrudController, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, GET, Query, POST, Body, PUT, DELETE, TaonBaseStorageController, TaonBaseAngularService } from 'taon/websql';
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';
4
+ import { Table, Raw, In } from 'taon-typeorm/websql';
5
5
  import { UtilsJson } from 'tnp-core/websql';
6
6
  import { BaseCommandLineFeature } from 'tnp-helpers/websql';
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';
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';
14
- import { map } from 'rxjs/operators';
12
+ import { adminLazyRoute as adminLazyRoute$1, TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/websql';
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.getName(TaonCmsApplicationHookEntity);
229
+ this.CONTENT_TABLE = ClassHelpers.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-my-organization-proj.ts.en-US.i18n.data-BnqooYnv.mjs')).default, "pl-PL": async () => (await import('./cms-websql-my-organization-proj.ts.pl-PL.i18n.data-wMy6Ze3w.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.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 = [
@@ -2302,12 +2555,17 @@ var taonCmsBackoffice_component = /*#__PURE__*/Object.freeze({
2302
2555
  });
2303
2556
 
2304
2557
  //#endregion
2558
+ const adminLazyRoute = (adminLazyRoute$1);
2305
2559
  const TaonCmsBackofficeRoutes = [
2306
2560
  {
2307
2561
  path: '',
2308
2562
  loadComponent: () => Promise.resolve().then(function () { return taonCmsBackoffice_component; }).then(m => m.TaonCmsBackofficeComponent),
2309
2563
  children: [
2310
2564
  adminLazyRoute({
2565
+ isDisabled: ({ context }) => {
2566
+ // console.log('context', { context });
2567
+ return !context?.hasAccess.toManagePosts;
2568
+ },
2311
2569
  path: 'posts',
2312
2570
  menuItem: 'Posts',
2313
2571
  expandable: true,
@@ -2315,6 +2573,7 @@ const TaonCmsBackofficeRoutes = [
2315
2573
  loader: () => Promise.resolve().then(function () { return index$1; }).then(m => m.TaonCmsPostsBackofficeRoutes),
2316
2574
  }),
2317
2575
  adminLazyRoute({
2576
+ isDisabled: ({ context }) => !context?.hasAccess.toManagePosts,
2318
2577
  path: 'assets',
2319
2578
  menuItem: 'Assets',
2320
2579
  expandable: false,
@@ -2420,6 +2679,28 @@ class TaonCmsContentApiService extends TaonBaseAngularService {
2420
2679
  this.taonCmsContentController = this.injectController(TaonCmsContentController);
2421
2680
  this.taonCmsContentStorageController = this.injectController(TaonCmsContentStorageController);
2422
2681
  }
2682
+ get crudController() {
2683
+ return this.taonCmsContentController;
2684
+ }
2685
+ async getById(id) {
2686
+ return (await this.taonCmsContentController.getBy(id).request()).body.json;
2687
+ }
2688
+ async getBySlug(slug) {
2689
+ return (await this.taonCmsContentController.getBySlug(slug).request()).body
2690
+ .json;
2691
+ }
2692
+ getContentByHook(hook) {
2693
+ return this.taonCmsContentController.getContentByHook(hook)
2694
+ .request().observable.pipe(map(res => res.body.text));
2695
+ }
2696
+ getPublicContentByHook(hook) {
2697
+ return this.taonCmsContentController.getPublicContentByHook(hook)
2698
+ .request().observable.pipe(map(res => res.body.text), catchError(() => of('---')));
2699
+ }
2700
+ listApplicationHooks() {
2701
+ return this.taonCmsContentController.listApplicationHooks()
2702
+ .request().observable.pipe(map(res => res.body.json));
2703
+ }
2423
2704
  async uploadMedia(file) {
2424
2705
  const formData = new FormData();
2425
2706
  formData.append('file', file);
@@ -2512,10 +2793,12 @@ class TaonCmsContentAssetApiService extends TaonBaseAngularService {
2512
2793
  this.taonCmsContentAssetController = this.injectController(TaonCmsContentAssetController);
2513
2794
  }
2514
2795
  get allMyEntities$() {
2515
- return this.taonCmsContentAssetController.getAll().request().observable.pipe(map(res => res.body?.json));
2796
+ return this.taonCmsContentAssetController.getAll()
2797
+ .request().observable.pipe(map(res => res.body?.json));
2516
2798
  }
2517
2799
  helloWorld(user) {
2518
- return this.taonCmsContentAssetController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2800
+ return this.taonCmsContentAssetController.helloWord(user)
2801
+ .request().observable.pipe(map(res => res.responseText));
2519
2802
  }
2520
2803
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2521
2804
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetApiService }); }
@@ -2550,10 +2833,12 @@ class TaonCmsContentPermissionApiService extends TaonBaseAngularService {
2550
2833
  this.taonCmsContentPermissionController = this.injectController(TaonCmsContentPermissionController);
2551
2834
  }
2552
2835
  get allMyEntities$() {
2553
- return this.taonCmsContentPermissionController.getAll().request().observable.pipe(map(res => res.body?.json));
2836
+ return this.taonCmsContentPermissionController.getAll()
2837
+ .request().observable.pipe(map(res => res.body?.json));
2554
2838
  }
2555
2839
  helloWorld(user) {
2556
- return this.taonCmsContentPermissionController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2840
+ return this.taonCmsContentPermissionController.helloWord(user)
2841
+ .request().observable.pipe(map(res => res.responseText));
2557
2842
  }
2558
2843
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2559
2844
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionApiService }); }
@@ -2589,8 +2874,7 @@ class TaonCmsContentRevisionApiService extends TaonBaseAngularService {
2589
2874
  this.taonCmsContentRevisionController = this.injectController(TaonCmsContentRevisionController);
2590
2875
  }
2591
2876
  listRevisions(id) {
2592
- return this.contentController.listRevisions(id)
2593
- .request().observable.pipe(map(res => res.body.json));
2877
+ return this.contentController.listRevisions(id).request().observable.pipe(map(res => res.body.json));
2594
2878
  }
2595
2879
  restoreContent(id, input) {
2596
2880
  return this.contentController.restoreContent(id, input)
@@ -2667,12 +2951,6 @@ class TaonCmsTagApiService extends TaonBaseAngularService {
2667
2951
  super(...arguments);
2668
2952
  this.taonCmsTagController = this.injectController(TaonCmsTagController);
2669
2953
  }
2670
- get allMyEntities$() {
2671
- return this.taonCmsTagController.getAll().request().observable.pipe(map(res => res.body?.json));
2672
- }
2673
- helloWorld(user) {
2674
- return this.taonCmsTagController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2675
- }
2676
2954
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2677
2955
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagApiService }); }
2678
2956
  }
@@ -3006,6 +3284,11 @@ class TaonCmsPostComponent {
3006
3284
  this.relatedPosts = signal([], ...(ngDevMode ? [{ debugName: "relatedPosts" }] : []));
3007
3285
  this.relatedPostsLoading = signal(false, ...(ngDevMode ? [{ debugName: "relatedPostsLoading" }] : []));
3008
3286
  this.relatedPostsError = signal('', ...(ngDevMode ? [{ debugName: "relatedPostsError" }] : []));
3287
+ this.applicationHooks = signal([], ...(ngDevMode ? [{ debugName: "applicationHooks" }] : []));
3288
+ this.applicationHooksLoading = signal(false, ...(ngDevMode ? [{ debugName: "applicationHooksLoading" }] : []));
3289
+ this.applicationHooksError = signal('', ...(ngDevMode ? [{ debugName: "applicationHooksError" }] : []));
3290
+ this.useAsApplicationHook = signal(false, ...(ngDevMode ? [{ debugName: "useAsApplicationHook" }] : []));
3291
+ this.selectedApplicationHook = signal(null, ...(ngDevMode ? [{ debugName: "selectedApplicationHook" }] : []));
3009
3292
  this.permissions = signal([], ...(ngDevMode ? [{ debugName: "permissions" }] : []));
3010
3293
  this.permissionsLoading = signal(false, ...(ngDevMode ? [{ debugName: "permissionsLoading" }] : []));
3011
3294
  this.permissionsError = signal('', ...(ngDevMode ? [{ debugName: "permissionsError" }] : []));
@@ -3022,6 +3305,9 @@ class TaonCmsPostComponent {
3022
3305
  !!this.draft().slug.trim() &&
3023
3306
  !this.relatedPostsLoading() &&
3024
3307
  !this.relatedPostsError() &&
3308
+ !this.applicationHooksLoading() &&
3309
+ !this.applicationHooksError() &&
3310
+ (!this.useAsApplicationHook() || !!this.selectedApplicationHook()) &&
3025
3311
  !this.permissionsLoading() &&
3026
3312
  !this.permissionsError(), ...(ngDevMode ? [{ debugName: "canSave" }] : []));
3027
3313
  this.canPublish = computed(() => {
@@ -3038,7 +3324,10 @@ class TaonCmsPostComponent {
3038
3324
  });
3039
3325
  effect(() => {
3040
3326
  if (this.editing()) {
3041
- untracked(() => this.loadPermissionOptions());
3327
+ untracked(() => {
3328
+ this.loadApplicationHooks();
3329
+ this.loadPermissionOptions();
3330
+ });
3042
3331
  }
3043
3332
  });
3044
3333
  }
@@ -3110,6 +3399,38 @@ class TaonCmsPostComponent {
3110
3399
  this.relatedPosts.update(posts => posts.filter(post => post.id !== id));
3111
3400
  }
3112
3401
  //#endregion
3402
+ //#region methods / application hooks
3403
+ loadApplicationHooks() {
3404
+ if (this.applicationHooksLoading()) {
3405
+ return;
3406
+ }
3407
+ this.applicationHooksLoading.set(true);
3408
+ this.applicationHooksError.set('');
3409
+ this.applicationHooksLoad = this.api
3410
+ .listApplicationHooks()
3411
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.applicationHooksLoading.set(false)))
3412
+ .subscribe({
3413
+ next: hooks => {
3414
+ this.applicationHooks.set(hooks);
3415
+ this.setApplicationHookSelection(this.currentPost(), hooks);
3416
+ },
3417
+ error: (error) => {
3418
+ console.error('[taon-cms-post] Unable to load application hooks', error);
3419
+ this.applicationHooksError.set('Application hooks could not be loaded. Please try again.');
3420
+ },
3421
+ });
3422
+ }
3423
+ setUseAsApplicationHook(enabled) {
3424
+ this.useAsApplicationHook.set(enabled);
3425
+ }
3426
+ applicationHookInUseByAnotherPost(applicationHook) {
3427
+ return (applicationHook.contentId !== null &&
3428
+ applicationHook.contentId !== this.currentPost()?.id);
3429
+ }
3430
+ applicationHookLabel(hook) {
3431
+ return hook.split('-').join('_').toUpperCase();
3432
+ }
3433
+ //#endregion
3113
3434
  //#region methods / load permissions
3114
3435
  loadPermissions() {
3115
3436
  if (this.busy() || this.permissionsLoading()) {
@@ -3270,6 +3591,9 @@ class TaonCmsPostComponent {
3270
3591
  ...this.draft(),
3271
3592
  relatedPostIds: this.relatedPosts().map(post => post.id),
3272
3593
  permissionIds: this.permissions().map(permission => permission.id),
3594
+ applicationHook: this.useAsApplicationHook()
3595
+ ? this.selectedApplicationHook()
3596
+ : null,
3273
3597
  }));
3274
3598
  }
3275
3599
  else {
@@ -3366,6 +3690,9 @@ class TaonCmsPostComponent {
3366
3690
  ...this.draft(),
3367
3691
  relatedPostIds: this.relatedPosts().map(related => related.id),
3368
3692
  permissionIds: this.permissions().map(permission => permission.id),
3693
+ applicationHook: this.useAsApplicationHook()
3694
+ ? this.selectedApplicationHook()
3695
+ : null,
3369
3696
  expectedVersion: post.version,
3370
3697
  };
3371
3698
  }
@@ -3382,15 +3709,19 @@ class TaonCmsPostComponent {
3382
3709
  //#region methods / set post
3383
3710
  setPost(post) {
3384
3711
  this.relatedPostsLoad?.unsubscribe();
3712
+ this.applicationHooksLoad?.unsubscribe();
3385
3713
  this.permissionsLoad?.unsubscribe();
3386
3714
  this.relatedPostsLoading.set(false);
3387
3715
  this.relatedPostsError.set('');
3716
+ this.applicationHooksLoading.set(false);
3717
+ this.applicationHooksError.set('');
3388
3718
  this.permissionsLoading.set(false);
3389
3719
  this.permissionsError.set('');
3390
3720
  this.currentPost.set(post);
3391
3721
  this.relatedPosts.set(post?.relatedPosts ?? []);
3392
3722
  this.permissions.set(post?.permissions ?? []);
3393
3723
  this.selectedPermissionId.set(null);
3724
+ this.setApplicationHookSelection(post, this.applicationHooks());
3394
3725
  this.draft.set({
3395
3726
  type: post?.type ?? TaonCmsContentType.Normal,
3396
3727
  title: post?.title ?? '',
@@ -3413,6 +3744,14 @@ class TaonCmsPostComponent {
3413
3744
  }
3414
3745
  }
3415
3746
  //#endregion
3747
+ setApplicationHookSelection(post, hooks) {
3748
+ const assignedHook = post?.applicationHook !== undefined
3749
+ ? post.applicationHook?.hook
3750
+ : hooks.find(applicationHook => applicationHook.contentId === post?.id)
3751
+ ?.hook;
3752
+ this.useAsApplicationHook.set(!!assignedHook);
3753
+ this.selectedApplicationHook.set(assignedHook ?? null);
3754
+ }
3416
3755
  //#region methods / accept post
3417
3756
  acceptPost(post) {
3418
3757
  this.setPost(post);
@@ -3445,18 +3784,19 @@ class TaonCmsPostComponent {
3445
3784
  });
3446
3785
  }
3447
3786
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3448
- 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 }); }
3787
+ 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 }); }
3449
3788
  }
3450
3789
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, decorators: [{
3451
3790
  type: Component,
3452
3791
  args: [{ selector: 'taon-cms-post', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
3453
3792
  MatButtonModule,
3793
+ MatCheckboxModule,
3454
3794
  MatFormFieldModule,
3455
3795
  MatIconModule,
3456
3796
  MatRadioModule,
3457
3797
  MatSelectModule,
3458
3798
  TaonCmsEditableDirective,
3459
- ], 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"] }]
3799
+ ], 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"] }]
3460
3800
  }], 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"] }] } });
3461
3801
 
3462
3802
  var taonCmsPost_component = /*#__PURE__*/Object.freeze({
@@ -3536,7 +3876,7 @@ class TaonCmsPostEditDialogComponent {
3536
3876
  this.ref.close(post);
3537
3877
  }
3538
3878
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3539
- 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 }); }
3879
+ 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 }); }
3540
3880
  }
3541
3881
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, decorators: [{
3542
3882
  type: Component,
@@ -3590,7 +3930,7 @@ class TaonCmsPostsBackofficeComponent {
3590
3930
  ];
3591
3931
  }
3592
3932
  get crud() {
3593
- return this.taonCmsContentApiService.taonCmsContentController;
3933
+ return this.taonCmsContentApiService.crudController;
3594
3934
  }
3595
3935
  reload() {
3596
3936
  this.datatable.reload();
@@ -3682,9 +4022,8 @@ const resolvePost = async (route) => {
3682
4022
  if (!Number.isSafeInteger(id) || id <= 0) {
3683
4023
  throw new Error('Invalid Post ID');
3684
4024
  }
3685
- const apiService = inject(TaonCmsContentApiService);
3686
- const post = (await apiService.taonCmsContentController.getBy(id).request())
3687
- .body.json;
4025
+ const taonCmsContentApiService = inject(TaonCmsContentApiService);
4026
+ const post = await taonCmsContentApiService.getById(id);
3688
4027
  if (!post) {
3689
4028
  throw new Error('Post not found');
3690
4029
  }
@@ -3727,12 +4066,15 @@ var index$1 = /*#__PURE__*/Object.freeze({
3727
4066
  BUILD_FRAMEWORK_CLI_NAME: BUILD_FRAMEWORK_CLI_NAME,
3728
4067
  CURRENT_PACKAGE_TAON_VERSION: CURRENT_PACKAGE_TAON_VERSION,
3729
4068
  CURRENT_PACKAGE_VERSION: CURRENT_PACKAGE_VERSION,
4069
+ get CmsContext_1791132517217_initial () { return CmsContext_1791132517217_initial; },
3730
4070
  MIGRATIONS_CLASSES_FOR_CmsContext: MIGRATIONS_CLASSES_FOR_CmsContext,
3731
- get MyAppGroup () { return MyAppGroup; },
3732
- get MyAppPermission () { return MyAppPermission; },
3733
- get MyAppRole () { return MyAppRole; },
3734
4071
  PROJECT_NPM_NAME: PROJECT_NPM_NAME,
4072
+ get TaonAuthContextEntity () { return TaonAuthContextEntity; },
4073
+ TaonAuthContextHasAccess: TaonAuthContextHasAccess,
4074
+ get TaonAuthContextRepository () { return TaonAuthContextRepository; },
3735
4075
  TaonCmsAbstractContext: TaonCmsAbstractContext,
4076
+ TaonCmsApplicationHook: TaonCmsApplicationHook,
4077
+ get TaonCmsApplicationHookEntity () { return TaonCmsApplicationHookEntity; },
3736
4078
  TaonCmsAssetsBackofficeComponent: TaonCmsAssetsBackofficeComponent,
3737
4079
  TaonCmsAssetsBackofficeRoutes: TaonCmsAssetsBackofficeRoutes,
3738
4080
  TaonCmsBackofficeComponent: TaonCmsBackofficeComponent,
@@ -3837,9 +4179,11 @@ var index$1 = /*#__PURE__*/Object.freeze({
3837
4179
  get TaonCmsTagSubscriber () { return TaonCmsTagSubscriber; },
3838
4180
  get TaonCmsTagUtils () { return TaonCmsTagUtils; },
3839
4181
  TaonRelatedPostChooserComponent: TaonRelatedPostChooserComponent,
4182
+ TaonSessionCoreGroups: TaonSessionCoreGroups,
4183
+ TaonSessionCorePermissions: TaonSessionCorePermissions,
4184
+ TaonSessionCoreRoles: TaonSessionCoreRoles,
3840
4185
  contentError: contentError,
3841
4186
  default: index,
3842
- myOrgProj: myOrgProj,
3843
4187
  requireContentId: requireContentId,
3844
4188
  requireContentVersion: requireContentVersion,
3845
4189
  startCli: startCli,
@@ -3850,5 +4194,5 @@ var index$1 = /*#__PURE__*/Object.freeze({
3850
4194
  * Generated bundle index. Do not edit.
3851
4195
  */
3852
4196
 
3853
- 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, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils, TaonCmsContentConfigService, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils, TaonCmsContentState, TaonCmsContentStorageController, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils, TaonCmsContentType, TaonCmsContentUtils, TaonCmsEditableDirective, TaonCmsPostComponent, TaonCmsPostDetailsPageComponent, TaonCmsPostEditDialogComponent, TaonCmsPostRoutes, TaonCmsPostsBackofficeComponent, TaonCmsPostsBackofficeRoutes, TaonCmsRevisionChooserComponent, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils, TaonRelatedPostChooserComponent, contentError, myOrgProj, requireContentId, requireContentVersion, startCli, validateContentInput };
4197
+ 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, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils, TaonCmsContentConfigService, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils, TaonCmsContentState, TaonCmsContentStorageController, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils, TaonCmsContentType, TaonCmsContentUtils, TaonCmsEditableDirective, TaonCmsPostComponent, TaonCmsPostDetailsPageComponent, TaonCmsPostEditDialogComponent, TaonCmsPostRoutes, TaonCmsPostsBackofficeComponent, TaonCmsPostsBackofficeRoutes, TaonCmsRevisionChooserComponent, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils, TaonRelatedPostChooserComponent, TaonSessionCoreGroups, TaonSessionCorePermissions, TaonSessionCoreRoles, contentError, requireContentId, requireContentVersion, startCli, validateContentInput };
3854
4198
  //# sourceMappingURL=cms-websql.mjs.map