@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,126 +1,190 @@
1
- import { __decorate, __param, __metadata } from 'tslib';
2
- import { TaonAuthContextRepository, TaonSessionAbstractContext, TaonPermissionApiService } from '@taon-dev/session/browser-prod';
3
- import { TaonBaseMigration, TaonMigration, TaonBaseAbstractEntity, TaonEntity, TaonBaseRepository, TaonRepository, TaonBaseCrudController, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, TaonBaseEntity, GET, Query, Taon__NS__error, POST, Body, PUT, DELETE, TaonBaseStorageController, PrimaryGeneratedColumn, Column, TaonBaseAngularService } from 'taon/browser-prod';
4
- import { Translation } from '@taon-dev/i18n/browser-prod';
1
+ import { __decorate, __metadata, __param } from 'tslib';
2
+ import { TaonBaseEntity, TaonEntity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn, TaonBaseMigration, ClassHelpers__NS__getName, TaonMigration, TaonBaseAbstractEntity, TaonBaseRepository, TaonRepository, TaonBaseCrudController, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, GET, Query, Taon__NS__error, POST, Body, PUT, DELETE, TaonBaseStorageController, TaonBaseAngularService } from 'taon/browser-prod';
3
+ import { Table } from 'taon-typeorm/browser-prod';
5
4
  import { UtilsJson__NS__getValue } from 'tnp-core/browser-prod';
6
5
  import { BaseCommandLineFeature } from 'tnp-helpers/browser-prod';
6
+ import { 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/browser-prod';
7
7
  import * as i0 from '@angular/core';
8
8
  import { Injectable, ChangeDetectionStrategy, Component, inject, ElementRef, EventEmitter, SecurityContext, HostListener, Input, Output, Directive, signal, DestroyRef, computed, input, model, output, effect, untracked, viewChild, ViewChild } from '@angular/core';
9
9
  import { MtxGrid } from '@ng-matero/extensions/grid';
10
10
  import { AsyncPipe, DatePipe } from '@angular/common';
11
11
  import { RouterOutlet, ActivatedRoute, RouterLink, Router } from '@angular/router';
12
- import { adminLazyRoute, TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/browser-prod';
13
- import { map } from 'rxjs/operators';
12
+ import { adminLazyRoute as adminLazyRoute$1, TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/browser-prod';
13
+ import { map, catchError } from 'rxjs/operators';
14
+ import { of, finalize, map as map$1, Subject, takeUntil } from 'rxjs';
14
15
  import { DomSanitizer } from '@angular/platform-browser';
15
16
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
16
17
  import * as i1 from '@angular/material/button';
17
18
  import { MatButtonModule } from '@angular/material/button';
19
+ import * as i2$1 from '@angular/material/checkbox';
20
+ import { MatCheckboxModule } from '@angular/material/checkbox';
18
21
  import * as i2 from '@angular/material/dialog';
19
22
  import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule, MatDialog } from '@angular/material/dialog';
20
- import * as i2$1 from '@angular/material/form-field';
23
+ import * as i3$1 from '@angular/material/form-field';
21
24
  import { MatFormFieldModule } from '@angular/material/form-field';
22
- import * as i3$1 from '@angular/material/icon';
25
+ import * as i4 from '@angular/material/icon';
23
26
  import { MatIconModule } from '@angular/material/icon';
24
27
  import * as i3 from '@angular/material/radio';
25
28
  import { MatRadioModule } from '@angular/material/radio';
26
- import * as i5 from '@angular/material/select';
29
+ import * as i6 from '@angular/material/select';
27
30
  import { MatSelectModule } from '@angular/material/select';
28
- import { finalize, map as map$1, Subject, takeUntil } from 'rxjs';
31
+
32
+ var TaonCmsContentType;
33
+ (function (TaonCmsContentType) {
34
+ TaonCmsContentType["Normal"] = "normal";
35
+ TaonCmsContentType["Video"] = "video";
36
+ TaonCmsContentType["Audio"] = "audio";
37
+ TaonCmsContentType["Attachment"] = "attachment";
38
+ })(TaonCmsContentType || (TaonCmsContentType = {}));
39
+ var TaonCmsContentState;
40
+ (function (TaonCmsContentState) {
41
+ TaonCmsContentState["Active"] = "active";
42
+ TaonCmsContentState["Inactive"] = "inactive";
43
+ })(TaonCmsContentState || (TaonCmsContentState = {}));
44
+
45
+ //#endregion
46
+ let TaonCmsContentEntity = class TaonCmsContentEntity extends TaonBaseEntity {
47
+ constructor() {
48
+ /* */
49
+ /* */
50
+ super(...arguments);
51
+ /* */
52
+ /* */
53
+ this.type = TaonCmsContentType.Normal;
54
+ /* */
55
+ /* */
56
+ this.videoKey = null;
57
+ /* */
58
+ /* */
59
+ this.audioKey = null;
60
+ /* */
61
+ /* */
62
+ this.attachmentKey = null;
63
+ }
64
+ };
65
+ TaonCmsContentEntity = __decorate([
66
+ TaonEntity({
67
+ className: 'TaonCmsContentEntity',
68
+ createTable: true,
69
+ })
70
+ ], TaonCmsContentEntity);
71
+
72
+ let TaonCmsApplicationHookEntity = class TaonCmsApplicationHookEntity extends TaonBaseEntity {
73
+ };
74
+ __decorate([
75
+ PrimaryGeneratedColumn(),
76
+ __metadata("design:type", Number)
77
+ ], TaonCmsApplicationHookEntity.prototype, "id", void 0);
78
+ __decorate([
79
+ Column({ type: 'varchar', unique: true }),
80
+ __metadata("design:type", String)
81
+ ], TaonCmsApplicationHookEntity.prototype, "hook", void 0);
82
+ __decorate([
83
+ Column({ type: 'integer', nullable: true, unique: true }),
84
+ __metadata("design:type", Number)
85
+ ], TaonCmsApplicationHookEntity.prototype, "contentId", void 0);
86
+ __decorate([
87
+ OneToOne(() => TaonCmsContentEntity, content => content.applicationHook, { nullable: true, onDelete: 'SET NULL' }),
88
+ JoinColumn({ name: 'contentId', referencedColumnName: 'id' }),
89
+ __metadata("design:type", TaonCmsContentEntity)
90
+ ], TaonCmsApplicationHookEntity.prototype, "content", void 0);
91
+ TaonCmsApplicationHookEntity = __decorate([
92
+ TaonEntity({
93
+ className: 'TaonCmsApplicationHookEntity',
94
+ createTable: true,
95
+ })
96
+ ], TaonCmsApplicationHookEntity);
97
+
98
+ const TaonCmsApplicationHook = {
99
+ HOME_HERO: 'home-hero',
100
+ HOME_FEATURED_POST: 'home-featured-post',
101
+ SHOP_PROMOTION: 'shop-promotion',
102
+ LOGIN_INFO: 'login-info',
103
+ FOOTER_ABOUT: 'footer-about',
104
+ };
29
105
 
30
106
  //#region Migration class for context "CmsContext"
31
- let CmsContext_1791132517216_initial = class CmsContext_1791132517216_initial extends TaonBaseMigration {
107
+ let CmsContext_1792506757808_applicaitonHooks = class CmsContext_1792506757808_applicaitonHooks extends TaonBaseMigration {
32
108
  constructor() {
33
109
  super(...arguments);
34
- this.taonAuthContextRepository = this.injectCustomRepo((TaonAuthContextRepository));
35
- //#endregion
110
+ this.APPLICATION_HOOK_TABLE = ClassHelpers__NS__getName(TaonCmsApplicationHookEntity);
111
+ this.CONTENT_TABLE = ClassHelpers__NS__getName(TaonCmsContentEntity);
36
112
  }
37
113
  //#region up
38
114
  async up(queryRunner) {
39
- // await queryRunner.startTransaction();
115
+ await queryRunner.startTransaction();
40
116
  try {
41
- // await this.taonAuthContextRepository.persistTree({
42
- // enums: {
43
- // groups: MyAppGroup,
44
- // roles: MyAppRole,
45
- // permissions: MyAppPermission,
46
- // },
47
- // tree: {
48
- // groupAndRoles: {
49
- // [MyAppGroup.Administrator]: '*',
50
- // [MyAppGroup.Customers]: [MyAppRole.BlogReader],
51
- // },
52
- // rolesAndPermissions: {
53
- // [MyAppRole.Customer]: [
54
- // MyAppPermission.AccessCourseP2,
55
- // MyAppPermission.AccessCourseP2,
56
- // ],
57
- // [MyAppRole.CustomerPremium]: '*',
58
- // },
59
- // },
60
- // });
61
- // await queryRunner.commitTransaction();
117
+ if (!(await queryRunner.hasTable(this.APPLICATION_HOOK_TABLE))) {
118
+ await queryRunner.createTable(new Table({
119
+ name: this.APPLICATION_HOOK_TABLE,
120
+ columns: [
121
+ {
122
+ name: 'id',
123
+ type: 'integer',
124
+ isPrimary: true,
125
+ isGenerated: true,
126
+ generationStrategy: 'increment',
127
+ },
128
+ { name: 'hook', type: 'varchar', isUnique: true },
129
+ {
130
+ name: 'contentId',
131
+ type: 'integer',
132
+ isNullable: true,
133
+ isUnique: true,
134
+ },
135
+ ],
136
+ foreignKeys: [
137
+ {
138
+ columnNames: ['contentId'],
139
+ referencedTableName: this.CONTENT_TABLE,
140
+ referencedColumnNames: ['id'],
141
+ onDelete: 'SET NULL',
142
+ },
143
+ ],
144
+ }), true);
145
+ }
146
+ await this.persistApplicationHooks(queryRunner);
147
+ await queryRunner.commitTransaction();
62
148
  }
63
149
  catch (error) {
64
150
  console.error('Error in migration:', error);
65
151
  await queryRunner.rollbackTransaction();
66
- }
67
- finally {
68
- await queryRunner.release();
152
+ throw error;
69
153
  }
70
154
  }
71
155
  //#endregion
72
156
  //#region down
73
157
  async down(queryRunner) {
74
- await queryRunner.startTransaction();
75
- try {
76
- await this.taonAuthContextRepository.clearRolesGroupPermissions();
77
- await queryRunner.commitTransaction();
78
- }
79
- catch (error) {
80
- console.error('Error in migration:', error);
81
- await queryRunner.rollbackTransaction();
158
+ if (await queryRunner.hasTable(this.APPLICATION_HOOK_TABLE)) {
159
+ await queryRunner.dropTable(this.APPLICATION_HOOK_TABLE, true);
82
160
  }
83
- finally {
84
- await queryRunner.release();
161
+ }
162
+ //#endregion
163
+ async persistApplicationHooks(queryRunner) {
164
+ const repository = queryRunner.manager.getRepository(TaonCmsApplicationHookEntity);
165
+ for (const hook of Object.values(TaonCmsApplicationHook)) {
166
+ if (!(await repository.findOneBy({ hook }))) {
167
+ await repository.save(repository.create({ hook, contentId: null }));
168
+ }
85
169
  }
86
170
  }
87
171
  };
88
- CmsContext_1791132517216_initial = __decorate([
172
+ CmsContext_1792506757808_applicaitonHooks = __decorate([
89
173
  TaonMigration({
90
- className: 'CmsContext_1791132517216_initial',
174
+ className: 'CmsContext_1792506757808_applicaitonHooks',
91
175
  })
92
- ], CmsContext_1791132517216_initial);
176
+ ], CmsContext_1792506757808_applicaitonHooks);
93
177
  //#endregion
94
178
 
95
179
  // THIS FILE IS GENERATED - DO NOT MODIFY
96
180
  // THIS FILE IS GENERATED - DO NOT MODIFY
97
181
  const MIGRATIONS_CLASSES_FOR_CmsContext = {
98
- /* 04-10-2026 18:48:37 */ CmsContext_1791132517216_initial,
182
+ /* 20-10-2026 16:32:37 */ CmsContext_1792506757808_applicaitonHooks,
99
183
  };
100
184
  // THIS FILE IS GENERATED - DO NOT MODIFY
101
185
 
102
186
  //@ts-nocheck
103
187
 
104
- var MyAppGroup;
105
- (function (MyAppGroup) {
106
- MyAppGroup["Administrator"] = "administrator";
107
- MyAppGroup["Customers"] = "customers";
108
- })(MyAppGroup || (MyAppGroup = {}));
109
- var MyAppRole;
110
- (function (MyAppRole) {
111
- MyAppRole["MangePosts"] = "manage-posts";
112
- MyAppRole["Customer"] = "Customer";
113
- MyAppRole["CustomerPremium"] = "CustomerPremium";
114
- MyAppRole["BlogReader"] = "BlogReader";
115
- })(MyAppRole || (MyAppRole = {}));
116
- var MyAppPermission;
117
- (function (MyAppPermission) {
118
- MyAppPermission["AccessToAllEmails"] = "AccessToAllEmails";
119
- MyAppPermission["AccessCourseP1"] = "AccessCourseP1";
120
- MyAppPermission["AccessCourseP2"] = "AccessCourseP2";
121
- MyAppPermission["AccessCoursePremium"] = "AccessCoursePremium";
122
- })(MyAppPermission || (MyAppPermission = {}));
123
-
124
188
  // THIS FILE IS GENERATED - DO NOT MODIFY
125
189
  /**
126
190
  * Autogenerated by current cli tool
@@ -145,14 +209,9 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
145
209
  /**
146
210
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
147
211
  */
148
- const CURRENT_PACKAGE_VERSION = '21.0.14';
212
+ const CURRENT_PACKAGE_VERSION = '21.0.16';
149
213
  // THIS FILE IS GENERATED - DO NOT MODIFY
150
214
 
151
- const t = Translation.for('src/lib/my-organization-proj.ts', { "src/lib/my-organization-proj.ts": { "en-US": async () => (await import('./cms-browser-prod-my-organization-proj.ts.en-US.i18n.data-C_wk7SeG.mjs')).default, "pl-PL": async () => (await import('./cms-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-Ez3YQGdF.mjs')).default } });
152
- function myOrgProj() {
153
- t.gettext('My Translated Company Name!');
154
- }
155
-
156
215
  //#region tnp-helpers cli template
157
216
  /* */
158
217
  //#endregion
@@ -870,45 +929,105 @@ const TaonCmsTagAbstractContext = createContext(() => ({
870
929
  subscribers: { TaonCmsTagSubscriber },
871
930
  }));
872
931
 
873
- var TaonCmsContentType;
874
- (function (TaonCmsContentType) {
875
- TaonCmsContentType["Normal"] = "normal";
876
- TaonCmsContentType["Video"] = "video";
877
- TaonCmsContentType["Audio"] = "audio";
878
- TaonCmsContentType["Attachment"] = "attachment";
879
- })(TaonCmsContentType || (TaonCmsContentType = {}));
880
- var TaonCmsContentState;
881
- (function (TaonCmsContentState) {
882
- TaonCmsContentState["Active"] = "active";
883
- TaonCmsContentState["Inactive"] = "inactive";
884
- })(TaonCmsContentState || (TaonCmsContentState = {}));
885
-
886
- //#endregion
887
- let TaonCmsContentEntity = class TaonCmsContentEntity extends TaonBaseEntity {
888
- constructor() {
932
+ //#region taon auth decorator
933
+ const TaonSessionCoreGroups = {
934
+ ...TaonSessionCoreGroups$1,
935
+ Manager: 'manager',
936
+ };
937
+ const TaonSessionCoreRoles = {
938
+ ...TaonSessionCoreRoles$1,
939
+ /**
940
+ * Can manage roles and permissions assigned directly to users.
941
+ * Does NOT allow changing user groups.
942
+ */
943
+ PostsManager: 'posts-manager',
944
+ };
945
+ const TaonSessionCorePermissions = {
946
+ ...TaonSessionCorePermissions$1,
947
+ };
948
+ let TaonAuthContextEntity = class TaonAuthContextEntity extends TaonAuthContextEntity$1 {
949
+ // @ts-ignore
950
+ get hasAccess() {
951
+ return this.injectClass(TaonAuthContextHasAccess, this);
952
+ }
953
+ };
954
+ TaonAuthContextEntity = __decorate([
955
+ TaonEntity({
956
+ className: 'TaonAuthContextEntity',
957
+ createTable: false,
958
+ })
959
+ ], TaonAuthContextEntity);
960
+ class TaonAuthContextHasAccess extends TaonAuthContextHasAccess$1 {
961
+ get toManagePosts() {
962
+ //#region @browserFunc
963
+ return this.context.snapshoot.toManagePosts;
964
+ //#endregion
965
+ /* */
966
+ /* */
967
+ /* */
889
968
  /* */
890
969
  /* */
970
+ return (void 0);
971
+ }
972
+ }
973
+ let TaonAuthContextRepository = class TaonAuthContextRepository extends TaonAuthContextRepository$1 {
974
+ constructor() {
891
975
  super(...arguments);
976
+ // @ts-ignore
977
+ this.entityClassResolveFn = () => TaonAuthContextEntity;
978
+ }
979
+ };
980
+ TaonAuthContextRepository = __decorate([
981
+ TaonRepository({
982
+ className: 'TaonAuthContextRepository',
983
+ })
984
+ ], TaonAuthContextRepository);
985
+ let CmsContext_1791132517217_initial = class CmsContext_1791132517217_initial extends MIGRATIONS_CLASSES_FOR_SessionContext.SessionContext_1791132517216_initial {
986
+ async persistTree() {
892
987
  /* */
893
988
  /* */
894
- this.type = TaonCmsContentType.Normal;
895
989
  /* */
896
990
  /* */
897
- this.videoKey = null;
898
991
  /* */
899
992
  /* */
900
- this.audioKey = null;
901
993
  /* */
902
994
  /* */
903
- this.attachmentKey = null;
995
+ /* */
996
+ /* */
997
+ /* */
998
+ /* */
999
+ /* */
1000
+ /* */
1001
+ /* */
1002
+ /* */
1003
+ /* */
1004
+ /* */
1005
+ /* */
1006
+ /* */
1007
+ /* */
1008
+ /* */
1009
+ /* */
1010
+ /* */
1011
+ /* */
1012
+ /* */
1013
+ /* */
1014
+ /* */
1015
+ /* */
1016
+ /* */
1017
+ /* */
1018
+ /* */
1019
+ /* */
1020
+ /* */
1021
+ /* */
1022
+ return (void 0);
904
1023
  }
905
1024
  };
906
- TaonCmsContentEntity = __decorate([
907
- TaonEntity({
908
- className: 'TaonCmsContentEntity',
909
- createTable: true,
1025
+ CmsContext_1791132517217_initial = __decorate([
1026
+ TaonMigration({
1027
+ className: 'CmsContext_1791132517217_initial',
910
1028
  })
911
- ], TaonCmsContentEntity);
1029
+ ], CmsContext_1791132517217_initial);
1030
+ //#endregion
912
1031
 
913
1032
  function contentError(message, status = 400) {
914
1033
  Taon__NS__error({ message, status });
@@ -1023,6 +1142,11 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1023
1142
  /* */
1024
1143
  /* */
1025
1144
  /* */
1145
+ /* */
1146
+ /* */
1147
+ /* */
1148
+ /* */
1149
+ /* */
1026
1150
  return (void 0);
1027
1151
  }
1028
1152
  async updateContent(id, input) {
@@ -1053,6 +1177,7 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1053
1177
  /* */
1054
1178
  /* */
1055
1179
  /* */
1180
+ /* */
1056
1181
  return (void 0);
1057
1182
  }
1058
1183
  async archiveContent(id, expectedVersion) {
@@ -1142,6 +1267,27 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1142
1267
  /* */
1143
1268
  return (void 0);
1144
1269
  }
1270
+ async listApplicationHooks() {
1271
+ /* */
1272
+ /* */
1273
+ /* */
1274
+ /* */
1275
+ return (void 0);
1276
+ }
1277
+ async getContentByHook(hook) {
1278
+ /* */
1279
+ /* */
1280
+ /* */
1281
+ /* */
1282
+ /* */
1283
+ /* */
1284
+ /* */
1285
+ /* */
1286
+ /* */
1287
+ /* */
1288
+ /* */
1289
+ return (void 0);
1290
+ }
1145
1291
  async addRelatedPost(id, relatedPostId, expectedVersion) {
1146
1292
  /* */
1147
1293
  /* */
@@ -1184,6 +1330,10 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1184
1330
  /* */
1185
1331
  /* */
1186
1332
  /* */
1333
+ /* */
1334
+ /* */
1335
+ /* */
1336
+ /* */
1187
1337
  return (void 0);
1188
1338
  }
1189
1339
  contentFields(input, current) {
@@ -1310,7 +1460,43 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1310
1460
  /* */
1311
1461
  return (void 0);
1312
1462
  }
1313
- async commitUpdate(current, expectedVersion, snapshot, manager) {
1463
+ async replaceApplicationHook(contentId, hook, manager) {
1464
+ /* */
1465
+ /* */
1466
+ /* */
1467
+ /* */
1468
+ /* */
1469
+ /* */
1470
+ /* */
1471
+ /* */
1472
+ /* */
1473
+ /* */
1474
+ /* */
1475
+ /* */
1476
+ /* */
1477
+ /* */
1478
+ /* */
1479
+ /* */
1480
+ /* */
1481
+ /* */
1482
+ /* */
1483
+ /* */
1484
+ /* */
1485
+ /* */
1486
+ /* */
1487
+ /* */
1488
+ /* */
1489
+ /* */
1490
+ return (void 0);
1491
+ }
1492
+ async commitUpdate(current, expectedVersion, snapshot, manager, applicationHook) {
1493
+ /* */
1494
+ /* */
1495
+ /* */
1496
+ /* */
1497
+ /* */
1498
+ /* */
1499
+ /* */
1314
1500
  /* */
1315
1501
  /* */
1316
1502
  /* */
@@ -1395,7 +1581,41 @@ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCr
1395
1581
  super(...arguments);
1396
1582
  this.entityClassResolveFn = () => TaonCmsContentEntity;
1397
1583
  this.taonCmsContentRepository = this.injectCustomRepo(TaonCmsContentRepository);
1584
+ this.taonSessionRepository = this.injectCustomRepo(TaonSessionRepository);
1585
+ this.taonAuthContextRepository = this.injectCustomRepo(TaonAuthContextRepository);
1398
1586
  }
1587
+ async beforeEachRequest({ req, res, methodConfig, t, }) {
1588
+ /* */
1589
+ /* */
1590
+ /* */
1591
+ /* */
1592
+ /* */
1593
+ /* */
1594
+ /* */
1595
+ /* */
1596
+ /* */
1597
+ /* */
1598
+ /* */
1599
+ /* */
1600
+ /* */
1601
+ /* */
1602
+ /* */
1603
+ return (void 0);
1604
+ }
1605
+ //#region get by id
1606
+ getBySlug(slug) {
1607
+ /* */
1608
+ /* */
1609
+ /* */
1610
+ /* */
1611
+ /* */
1612
+ /* */
1613
+ /* */
1614
+ /* */
1615
+ /* */
1616
+ return (void 0);
1617
+ }
1618
+ //#endregion
1399
1619
  createContent(input) {
1400
1620
  /* */
1401
1621
  /* */
@@ -1427,7 +1647,25 @@ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCr
1427
1647
  /* */
1428
1648
  return (void 0);
1429
1649
  }
1650
+ listApplicationHooks() {
1651
+ /* */
1652
+ /* */
1653
+ return (void 0);
1654
+ }
1655
+ getContentByHook(hook) {
1656
+ /* */
1657
+ /* */
1658
+ return (void 0);
1659
+ }
1660
+ getPublicContentByHook(hook) {
1661
+ /* */
1662
+ /* */
1663
+ return (void 0);
1664
+ }
1430
1665
  addRelatedPost(id, relatedPostId, expectedVersion) {
1666
+ /* */
1667
+ /* */
1668
+ /* */
1431
1669
  /* */
1432
1670
  /* */
1433
1671
  /* */
@@ -1435,6 +1673,9 @@ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCr
1435
1673
  return (void 0);
1436
1674
  }
1437
1675
  deleteRelatedPost(id, relatedPostId, expectedVersion) {
1676
+ /* */
1677
+ /* */
1678
+ /* */
1438
1679
  /* */
1439
1680
  /* */
1440
1681
  /* */
@@ -1447,6 +1688,13 @@ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCr
1447
1688
  return (void 0);
1448
1689
  }
1449
1690
  };
1691
+ __decorate([
1692
+ GET(),
1693
+ __param(0, Query(`slug`)),
1694
+ __metadata("design:type", Function),
1695
+ __metadata("design:paramtypes", [String]),
1696
+ __metadata("design:returntype", Object)
1697
+ ], TaonCmsContentController.prototype, "getBySlug", null);
1450
1698
  __decorate([
1451
1699
  POST(),
1452
1700
  __param(0, Body()),
@@ -1492,6 +1740,26 @@ __decorate([
1492
1740
  __metadata("design:paramtypes", [Number]),
1493
1741
  __metadata("design:returntype", Object)
1494
1742
  ], TaonCmsContentController.prototype, "listPermissions", null);
1743
+ __decorate([
1744
+ GET(),
1745
+ __metadata("design:type", Function),
1746
+ __metadata("design:paramtypes", []),
1747
+ __metadata("design:returntype", Object)
1748
+ ], TaonCmsContentController.prototype, "listApplicationHooks", null);
1749
+ __decorate([
1750
+ GET(),
1751
+ __param(0, Query('hook')),
1752
+ __metadata("design:type", Function),
1753
+ __metadata("design:paramtypes", [String]),
1754
+ __metadata("design:returntype", Object)
1755
+ ], TaonCmsContentController.prototype, "getContentByHook", null);
1756
+ __decorate([
1757
+ GET(),
1758
+ __param(0, Query('hook')),
1759
+ __metadata("design:type", Function),
1760
+ __metadata("design:paramtypes", [String]),
1761
+ __metadata("design:returntype", Object)
1762
+ ], TaonCmsContentController.prototype, "getPublicContentByHook", null);
1495
1763
  __decorate([
1496
1764
  POST(),
1497
1765
  __param(0, Query('id')),
@@ -1530,9 +1798,12 @@ TaonCmsContentController = __decorate([
1530
1798
  'listRevisions',
1531
1799
  'listRelatedPosts',
1532
1800
  'listPermissions',
1801
+ 'listApplicationHooks',
1802
+ 'getContentByHook',
1803
+ 'getPublicContentByHook',
1533
1804
  'addRelatedPost',
1534
1805
  'deleteRelatedPost',
1535
- 'paginationQuery'
1806
+ 'paginationQuery',
1536
1807
  ],
1537
1808
  })
1538
1809
  ], TaonCmsContentController);
@@ -1618,7 +1889,7 @@ const TaonCmsContentAbstractContext = createContext(() => ({
1618
1889
  TaonCmsContentTagAbstractContext,
1619
1890
  TaonCmsContentRevisionAbstractContext,
1620
1891
  },
1621
- entities: { TaonCmsContentEntity },
1892
+ entities: { TaonCmsApplicationHookEntity, TaonCmsContentEntity },
1622
1893
  controllers: { TaonCmsContentController, TaonCmsContentStorageController },
1623
1894
  repositories: { TaonCmsContentRepository },
1624
1895
  providers: { TaonCmsContentProvider },
@@ -1946,9 +2217,6 @@ const TaonCmsAbstractContext = createContext(() => ({
1946
2217
  }));
1947
2218
  // THIS FILE IS GENERATED - DO NOT MODIFY
1948
2219
 
1949
- ;
1950
- // THIS FILE IS GENERATED - DO NOT MODIFY
1951
-
1952
2220
  class TaonCmsAssetsBackofficeComponent {
1953
2221
  constructor() {
1954
2222
  this.assets = [
@@ -2025,12 +2293,17 @@ var taonCmsBackoffice_component = /*#__PURE__*/Object.freeze({
2025
2293
  //end of namespace TaonCmsBackofficeModels
2026
2294
 
2027
2295
  //#endregion
2296
+ const adminLazyRoute = (adminLazyRoute$1);
2028
2297
  const TaonCmsBackofficeRoutes = [
2029
2298
  {
2030
2299
  path: '',
2031
2300
  loadComponent: () => Promise.resolve().then(function () { return taonCmsBackoffice_component; }).then(m => m.TaonCmsBackofficeComponent),
2032
2301
  children: [
2033
2302
  adminLazyRoute({
2303
+ isDisabled: ({ context }) => {
2304
+ // console.log('context', { context });
2305
+ return !context?.hasAccess.toManagePosts;
2306
+ },
2034
2307
  path: 'posts',
2035
2308
  menuItem: 'Posts',
2036
2309
  expandable: true,
@@ -2038,6 +2311,7 @@ const TaonCmsBackofficeRoutes = [
2038
2311
  loader: () => Promise.resolve().then(function () { return index$1; }).then(m => m.TaonCmsPostsBackofficeRoutes),
2039
2312
  }),
2040
2313
  adminLazyRoute({
2314
+ isDisabled: ({ context }) => !context?.hasAccess.toManagePosts,
2041
2315
  path: 'assets',
2042
2316
  menuItem: 'Assets',
2043
2317
  expandable: false,
@@ -2139,6 +2413,28 @@ class TaonCmsContentApiService extends TaonBaseAngularService {
2139
2413
  this.taonCmsContentController = this.injectController(TaonCmsContentController);
2140
2414
  this.taonCmsContentStorageController = this.injectController(TaonCmsContentStorageController);
2141
2415
  }
2416
+ get crudController() {
2417
+ return this.taonCmsContentController;
2418
+ }
2419
+ async getById(id) {
2420
+ return (await this.taonCmsContentController.getBy(id).request()).body.json;
2421
+ }
2422
+ async getBySlug(slug) {
2423
+ return (await this.taonCmsContentController.getBySlug(slug).request()).body
2424
+ .json;
2425
+ }
2426
+ getContentByHook(hook) {
2427
+ return this.taonCmsContentController.getContentByHook(hook)
2428
+ .request().observable.pipe(map(res => res.body.text));
2429
+ }
2430
+ getPublicContentByHook(hook) {
2431
+ return this.taonCmsContentController.getPublicContentByHook(hook)
2432
+ .request().observable.pipe(map(res => res.body.text), catchError(() => of('---')));
2433
+ }
2434
+ listApplicationHooks() {
2435
+ return this.taonCmsContentController.listApplicationHooks()
2436
+ .request().observable.pipe(map(res => res.body.json));
2437
+ }
2142
2438
  async uploadMedia(file) {
2143
2439
  const formData = new FormData();
2144
2440
  formData.append('file', file);
@@ -2229,10 +2525,12 @@ class TaonCmsContentAssetApiService extends TaonBaseAngularService {
2229
2525
  this.taonCmsContentAssetController = this.injectController(TaonCmsContentAssetController);
2230
2526
  }
2231
2527
  get allMyEntities$() {
2232
- return this.taonCmsContentAssetController.getAll().request().observable.pipe(map(res => res.body?.json));
2528
+ return this.taonCmsContentAssetController.getAll()
2529
+ .request().observable.pipe(map(res => res.body?.json));
2233
2530
  }
2234
2531
  helloWorld(user) {
2235
- return this.taonCmsContentAssetController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2532
+ return this.taonCmsContentAssetController.helloWord(user)
2533
+ .request().observable.pipe(map(res => res.responseText));
2236
2534
  }
2237
2535
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2238
2536
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetApiService }); }
@@ -2265,10 +2563,12 @@ class TaonCmsContentPermissionApiService extends TaonBaseAngularService {
2265
2563
  this.taonCmsContentPermissionController = this.injectController(TaonCmsContentPermissionController);
2266
2564
  }
2267
2565
  get allMyEntities$() {
2268
- return this.taonCmsContentPermissionController.getAll().request().observable.pipe(map(res => res.body?.json));
2566
+ return this.taonCmsContentPermissionController.getAll()
2567
+ .request().observable.pipe(map(res => res.body?.json));
2269
2568
  }
2270
2569
  helloWorld(user) {
2271
- return this.taonCmsContentPermissionController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2570
+ return this.taonCmsContentPermissionController.helloWord(user)
2571
+ .request().observable.pipe(map(res => res.responseText));
2272
2572
  }
2273
2573
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2274
2574
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionApiService }); }
@@ -2302,8 +2602,7 @@ class TaonCmsContentRevisionApiService extends TaonBaseAngularService {
2302
2602
  this.taonCmsContentRevisionController = this.injectController(TaonCmsContentRevisionController);
2303
2603
  }
2304
2604
  listRevisions(id) {
2305
- return this.contentController.listRevisions(id)
2306
- .request().observable.pipe(map(res => res.body.json));
2605
+ return this.contentController.listRevisions(id).request().observable.pipe(map(res => res.body.json));
2307
2606
  }
2308
2607
  restoreContent(id, input) {
2309
2608
  return this.contentController.restoreContent(id, input)
@@ -2376,12 +2675,6 @@ class TaonCmsTagApiService extends TaonBaseAngularService {
2376
2675
  super(...arguments);
2377
2676
  this.taonCmsTagController = this.injectController(TaonCmsTagController);
2378
2677
  }
2379
- get allMyEntities$() {
2380
- return this.taonCmsTagController.getAll().request().observable.pipe(map(res => res.body?.json));
2381
- }
2382
- helloWorld(user) {
2383
- return this.taonCmsTagController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2384
- }
2385
2678
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2386
2679
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagApiService }); }
2387
2680
  }
@@ -2713,6 +3006,11 @@ class TaonCmsPostComponent {
2713
3006
  this.relatedPosts = signal([], ...(ngDevMode ? [{ debugName: "relatedPosts" }] : []));
2714
3007
  this.relatedPostsLoading = signal(false, ...(ngDevMode ? [{ debugName: "relatedPostsLoading" }] : []));
2715
3008
  this.relatedPostsError = signal('', ...(ngDevMode ? [{ debugName: "relatedPostsError" }] : []));
3009
+ this.applicationHooks = signal([], ...(ngDevMode ? [{ debugName: "applicationHooks" }] : []));
3010
+ this.applicationHooksLoading = signal(false, ...(ngDevMode ? [{ debugName: "applicationHooksLoading" }] : []));
3011
+ this.applicationHooksError = signal('', ...(ngDevMode ? [{ debugName: "applicationHooksError" }] : []));
3012
+ this.useAsApplicationHook = signal(false, ...(ngDevMode ? [{ debugName: "useAsApplicationHook" }] : []));
3013
+ this.selectedApplicationHook = signal(null, ...(ngDevMode ? [{ debugName: "selectedApplicationHook" }] : []));
2716
3014
  this.permissions = signal([], ...(ngDevMode ? [{ debugName: "permissions" }] : []));
2717
3015
  this.permissionsLoading = signal(false, ...(ngDevMode ? [{ debugName: "permissionsLoading" }] : []));
2718
3016
  this.permissionsError = signal('', ...(ngDevMode ? [{ debugName: "permissionsError" }] : []));
@@ -2729,6 +3027,9 @@ class TaonCmsPostComponent {
2729
3027
  !!this.draft().slug.trim() &&
2730
3028
  !this.relatedPostsLoading() &&
2731
3029
  !this.relatedPostsError() &&
3030
+ !this.applicationHooksLoading() &&
3031
+ !this.applicationHooksError() &&
3032
+ (!this.useAsApplicationHook() || !!this.selectedApplicationHook()) &&
2732
3033
  !this.permissionsLoading() &&
2733
3034
  !this.permissionsError(), ...(ngDevMode ? [{ debugName: "canSave" }] : []));
2734
3035
  this.canPublish = computed(() => {
@@ -2745,7 +3046,10 @@ class TaonCmsPostComponent {
2745
3046
  });
2746
3047
  effect(() => {
2747
3048
  if (this.editing()) {
2748
- untracked(() => this.loadPermissionOptions());
3049
+ untracked(() => {
3050
+ this.loadApplicationHooks();
3051
+ this.loadPermissionOptions();
3052
+ });
2749
3053
  }
2750
3054
  });
2751
3055
  }
@@ -2817,6 +3121,38 @@ class TaonCmsPostComponent {
2817
3121
  this.relatedPosts.update(posts => posts.filter(post => post.id !== id));
2818
3122
  }
2819
3123
  //#endregion
3124
+ //#region methods / application hooks
3125
+ loadApplicationHooks() {
3126
+ if (this.applicationHooksLoading()) {
3127
+ return;
3128
+ }
3129
+ this.applicationHooksLoading.set(true);
3130
+ this.applicationHooksError.set('');
3131
+ this.applicationHooksLoad = this.api
3132
+ .listApplicationHooks()
3133
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.applicationHooksLoading.set(false)))
3134
+ .subscribe({
3135
+ next: hooks => {
3136
+ this.applicationHooks.set(hooks);
3137
+ this.setApplicationHookSelection(this.currentPost(), hooks);
3138
+ },
3139
+ error: (error) => {
3140
+ console.error('[taon-cms-post] Unable to load application hooks', error);
3141
+ this.applicationHooksError.set('Application hooks could not be loaded. Please try again.');
3142
+ },
3143
+ });
3144
+ }
3145
+ setUseAsApplicationHook(enabled) {
3146
+ this.useAsApplicationHook.set(enabled);
3147
+ }
3148
+ applicationHookInUseByAnotherPost(applicationHook) {
3149
+ return (applicationHook.contentId !== null &&
3150
+ applicationHook.contentId !== this.currentPost()?.id);
3151
+ }
3152
+ applicationHookLabel(hook) {
3153
+ return hook.split('-').join('_').toUpperCase();
3154
+ }
3155
+ //#endregion
2820
3156
  //#region methods / load permissions
2821
3157
  loadPermissions() {
2822
3158
  if (this.busy() || this.permissionsLoading()) {
@@ -2977,6 +3313,9 @@ class TaonCmsPostComponent {
2977
3313
  ...this.draft(),
2978
3314
  relatedPostIds: this.relatedPosts().map(post => post.id),
2979
3315
  permissionIds: this.permissions().map(permission => permission.id),
3316
+ applicationHook: this.useAsApplicationHook()
3317
+ ? this.selectedApplicationHook()
3318
+ : null,
2980
3319
  }));
2981
3320
  }
2982
3321
  else {
@@ -3073,6 +3412,9 @@ class TaonCmsPostComponent {
3073
3412
  ...this.draft(),
3074
3413
  relatedPostIds: this.relatedPosts().map(related => related.id),
3075
3414
  permissionIds: this.permissions().map(permission => permission.id),
3415
+ applicationHook: this.useAsApplicationHook()
3416
+ ? this.selectedApplicationHook()
3417
+ : null,
3076
3418
  expectedVersion: post.version,
3077
3419
  };
3078
3420
  }
@@ -3089,15 +3431,19 @@ class TaonCmsPostComponent {
3089
3431
  //#region methods / set post
3090
3432
  setPost(post) {
3091
3433
  this.relatedPostsLoad?.unsubscribe();
3434
+ this.applicationHooksLoad?.unsubscribe();
3092
3435
  this.permissionsLoad?.unsubscribe();
3093
3436
  this.relatedPostsLoading.set(false);
3094
3437
  this.relatedPostsError.set('');
3438
+ this.applicationHooksLoading.set(false);
3439
+ this.applicationHooksError.set('');
3095
3440
  this.permissionsLoading.set(false);
3096
3441
  this.permissionsError.set('');
3097
3442
  this.currentPost.set(post);
3098
3443
  this.relatedPosts.set(post?.relatedPosts ?? []);
3099
3444
  this.permissions.set(post?.permissions ?? []);
3100
3445
  this.selectedPermissionId.set(null);
3446
+ this.setApplicationHookSelection(post, this.applicationHooks());
3101
3447
  this.draft.set({
3102
3448
  type: post?.type ?? TaonCmsContentType.Normal,
3103
3449
  title: post?.title ?? '',
@@ -3120,6 +3466,14 @@ class TaonCmsPostComponent {
3120
3466
  }
3121
3467
  }
3122
3468
  //#endregion
3469
+ setApplicationHookSelection(post, hooks) {
3470
+ const assignedHook = post?.applicationHook !== undefined
3471
+ ? post.applicationHook?.hook
3472
+ : hooks.find(applicationHook => applicationHook.contentId === post?.id)
3473
+ ?.hook;
3474
+ this.useAsApplicationHook.set(!!assignedHook);
3475
+ this.selectedApplicationHook.set(assignedHook ?? null);
3476
+ }
3123
3477
  //#region methods / accept post
3124
3478
  acceptPost(post) {
3125
3479
  this.setPost(post);
@@ -3152,18 +3506,19 @@ class TaonCmsPostComponent {
3152
3506
  });
3153
3507
  }
3154
3508
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3155
- 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 }); }
3509
+ 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 }); }
3156
3510
  }
3157
3511
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, decorators: [{
3158
3512
  type: Component,
3159
3513
  args: [{ selector: 'taon-cms-post', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
3160
3514
  MatButtonModule,
3515
+ MatCheckboxModule,
3161
3516
  MatFormFieldModule,
3162
3517
  MatIconModule,
3163
3518
  MatRadioModule,
3164
3519
  MatSelectModule,
3165
3520
  TaonCmsEditableDirective,
3166
- ], 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"] }]
3521
+ ], 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"] }]
3167
3522
  }], 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"] }] } });
3168
3523
 
3169
3524
  var taonCmsPost_component = /*#__PURE__*/Object.freeze({
@@ -3243,7 +3598,7 @@ class TaonCmsPostEditDialogComponent {
3243
3598
  this.ref.close(post);
3244
3599
  }
3245
3600
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3246
- 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 }); }
3601
+ 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 }); }
3247
3602
  }
3248
3603
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, decorators: [{
3249
3604
  type: Component,
@@ -3297,7 +3652,7 @@ class TaonCmsPostsBackofficeComponent {
3297
3652
  ];
3298
3653
  }
3299
3654
  get crud() {
3300
- return this.taonCmsContentApiService.taonCmsContentController;
3655
+ return this.taonCmsContentApiService.crudController;
3301
3656
  }
3302
3657
  reload() {
3303
3658
  this.datatable.reload();
@@ -3392,9 +3747,8 @@ const resolvePost = async (route) => {
3392
3747
  if (!Number.isSafeInteger(id) || id <= 0) {
3393
3748
  throw new Error('Invalid Post ID');
3394
3749
  }
3395
- const apiService = inject(TaonCmsContentApiService);
3396
- const post = (await apiService.taonCmsContentController.getBy(id).request())
3397
- .body.json;
3750
+ const taonCmsContentApiService = inject(TaonCmsContentApiService);
3751
+ const post = await taonCmsContentApiService.getById(id);
3398
3752
  if (!post) {
3399
3753
  throw new Error('Post not found');
3400
3754
  }
@@ -3437,12 +3791,15 @@ var index$1 = /*#__PURE__*/Object.freeze({
3437
3791
  BUILD_FRAMEWORK_CLI_NAME: BUILD_FRAMEWORK_CLI_NAME,
3438
3792
  CURRENT_PACKAGE_TAON_VERSION: CURRENT_PACKAGE_TAON_VERSION,
3439
3793
  CURRENT_PACKAGE_VERSION: CURRENT_PACKAGE_VERSION,
3794
+ get CmsContext_1791132517217_initial () { return CmsContext_1791132517217_initial; },
3440
3795
  MIGRATIONS_CLASSES_FOR_CmsContext: MIGRATIONS_CLASSES_FOR_CmsContext,
3441
- get MyAppGroup () { return MyAppGroup; },
3442
- get MyAppPermission () { return MyAppPermission; },
3443
- get MyAppRole () { return MyAppRole; },
3444
3796
  PROJECT_NPM_NAME: PROJECT_NPM_NAME,
3797
+ get TaonAuthContextEntity () { return TaonAuthContextEntity; },
3798
+ TaonAuthContextHasAccess: TaonAuthContextHasAccess,
3799
+ get TaonAuthContextRepository () { return TaonAuthContextRepository; },
3445
3800
  TaonCmsAbstractContext: TaonCmsAbstractContext,
3801
+ TaonCmsApplicationHook: TaonCmsApplicationHook,
3802
+ get TaonCmsApplicationHookEntity () { return TaonCmsApplicationHookEntity; },
3446
3803
  TaonCmsAssetsBackofficeComponent: TaonCmsAssetsBackofficeComponent,
3447
3804
  TaonCmsAssetsBackofficeRoutes: TaonCmsAssetsBackofficeRoutes,
3448
3805
  TaonCmsBackofficeComponent: TaonCmsBackofficeComponent,
@@ -3547,9 +3904,11 @@ var index$1 = /*#__PURE__*/Object.freeze({
3547
3904
  get TaonCmsTagSubscriber () { return TaonCmsTagSubscriber; },
3548
3905
  TaonCmsTagUtils__NS__isActive: TaonCmsTagUtils__NS__isActive,
3549
3906
  TaonRelatedPostChooserComponent: TaonRelatedPostChooserComponent,
3907
+ TaonSessionCoreGroups: TaonSessionCoreGroups,
3908
+ TaonSessionCorePermissions: TaonSessionCorePermissions,
3909
+ TaonSessionCoreRoles: TaonSessionCoreRoles,
3550
3910
  contentError: contentError,
3551
3911
  default: index,
3552
- myOrgProj: myOrgProj,
3553
3912
  requireContentId: requireContentId,
3554
3913
  requireContentVersion: requireContentVersion,
3555
3914
  startCli: startCli,
@@ -3560,5 +3919,5 @@ var index$1 = /*#__PURE__*/Object.freeze({
3560
3919
  * Generated bundle index. Do not edit.
3561
3920
  */
3562
3921
 
3563
- export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, MIGRATIONS_CLASSES_FOR_CmsContext, MyAppGroup, MyAppPermission, MyAppRole, PROJECT_NPM_NAME, TaonCmsAbstractContext, TaonCmsAssetsBackofficeComponent, TaonCmsAssetsBackofficeRoutes, TaonCmsBackofficeComponent, TaonCmsBackofficeRoutes, TaonCmsCategoryAbstractContext, TaonCmsCategoryApiService, TaonCmsCategoryController, TaonCmsCategoryDefaultsValues, TaonCmsCategoryEntity, TaonCmsCategoryMiddleware, TaonCmsCategoryProvider, TaonCmsCategoryRepository, TaonCmsCategoryState, TaonCmsCategorySubscriber, TaonCmsCategoryUtils__NS__isActive, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils__NS__isActive, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils__NS__isActive, TaonCmsContentConfigService, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils__NS__isActive, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils__NS__isActive, TaonCmsContentState, TaonCmsContentStorageController, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils__NS__isActive, TaonCmsContentType, TaonCmsContentUtils__NS__isActive, TaonCmsEditableDirective, TaonCmsPostComponent, TaonCmsPostDetailsPageComponent, TaonCmsPostEditDialogComponent, TaonCmsPostRoutes, TaonCmsPostsBackofficeComponent, TaonCmsPostsBackofficeRoutes, TaonCmsRevisionChooserComponent, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils__NS__isActive, TaonRelatedPostChooserComponent, contentError, myOrgProj, requireContentId, requireContentVersion, startCli, validateContentInput };
3922
+ export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, CmsContext_1791132517217_initial, MIGRATIONS_CLASSES_FOR_CmsContext, PROJECT_NPM_NAME, TaonAuthContextEntity, TaonAuthContextHasAccess, TaonAuthContextRepository, TaonCmsAbstractContext, TaonCmsApplicationHook, TaonCmsApplicationHookEntity, TaonCmsAssetsBackofficeComponent, TaonCmsAssetsBackofficeRoutes, TaonCmsBackofficeComponent, TaonCmsBackofficeRoutes, TaonCmsCategoryAbstractContext, TaonCmsCategoryApiService, TaonCmsCategoryController, TaonCmsCategoryDefaultsValues, TaonCmsCategoryEntity, TaonCmsCategoryMiddleware, TaonCmsCategoryProvider, TaonCmsCategoryRepository, TaonCmsCategoryState, TaonCmsCategorySubscriber, TaonCmsCategoryUtils__NS__isActive, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils__NS__isActive, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils__NS__isActive, TaonCmsContentConfigService, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils__NS__isActive, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils__NS__isActive, TaonCmsContentState, TaonCmsContentStorageController, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils__NS__isActive, TaonCmsContentType, TaonCmsContentUtils__NS__isActive, TaonCmsEditableDirective, TaonCmsPostComponent, TaonCmsPostDetailsPageComponent, TaonCmsPostEditDialogComponent, TaonCmsPostRoutes, TaonCmsPostsBackofficeComponent, TaonCmsPostsBackofficeRoutes, TaonCmsRevisionChooserComponent, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils__NS__isActive, TaonRelatedPostChooserComponent, TaonSessionCoreGroups, TaonSessionCorePermissions, TaonSessionCoreRoles, contentError, requireContentId, requireContentVersion, startCli, validateContentInput };
3564
3923
  //# sourceMappingURL=cms-browser-prod.mjs.map