@akbarsafari00/bonyan-content-releases 5.52.1-fa.2

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 (397) hide show
  1. package/LICENSE +17 -0
  2. package/README.md +9 -0
  3. package/dist/admin/assets/purchase-page-illustration-dark.jpg.js +6 -0
  4. package/dist/admin/assets/purchase-page-illustration-dark.jpg.js.map +1 -0
  5. package/dist/admin/assets/purchase-page-illustration-dark.jpg.mjs +4 -0
  6. package/dist/admin/assets/purchase-page-illustration-dark.jpg.mjs.map +1 -0
  7. package/dist/admin/assets/purchase-page-illustration-light.jpg.js +6 -0
  8. package/dist/admin/assets/purchase-page-illustration-light.jpg.js.map +1 -0
  9. package/dist/admin/assets/purchase-page-illustration-light.jpg.mjs +4 -0
  10. package/dist/admin/assets/purchase-page-illustration-light.jpg.mjs.map +1 -0
  11. package/dist/admin/components/EntryValidationPopover.js +310 -0
  12. package/dist/admin/components/EntryValidationPopover.js.map +1 -0
  13. package/dist/admin/components/EntryValidationPopover.mjs +308 -0
  14. package/dist/admin/components/EntryValidationPopover.mjs.map +1 -0
  15. package/dist/admin/components/RelativeTime.js +77 -0
  16. package/dist/admin/components/RelativeTime.js.map +1 -0
  17. package/dist/admin/components/RelativeTime.mjs +55 -0
  18. package/dist/admin/components/RelativeTime.mjs.map +1 -0
  19. package/dist/admin/components/ReleaseAction.js +203 -0
  20. package/dist/admin/components/ReleaseAction.js.map +1 -0
  21. package/dist/admin/components/ReleaseAction.mjs +201 -0
  22. package/dist/admin/components/ReleaseAction.mjs.map +1 -0
  23. package/dist/admin/components/ReleaseActionMenu.js +194 -0
  24. package/dist/admin/components/ReleaseActionMenu.js.map +1 -0
  25. package/dist/admin/components/ReleaseActionMenu.mjs +172 -0
  26. package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -0
  27. package/dist/admin/components/ReleaseActionModal.js +269 -0
  28. package/dist/admin/components/ReleaseActionModal.js.map +1 -0
  29. package/dist/admin/components/ReleaseActionModal.mjs +244 -0
  30. package/dist/admin/components/ReleaseActionModal.mjs.map +1 -0
  31. package/dist/admin/components/ReleaseActionOptions.js +104 -0
  32. package/dist/admin/components/ReleaseActionOptions.js.map +1 -0
  33. package/dist/admin/components/ReleaseActionOptions.mjs +102 -0
  34. package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -0
  35. package/dist/admin/components/ReleaseListCell.js +109 -0
  36. package/dist/admin/components/ReleaseListCell.js.map +1 -0
  37. package/dist/admin/components/ReleaseListCell.mjs +106 -0
  38. package/dist/admin/components/ReleaseListCell.mjs.map +1 -0
  39. package/dist/admin/components/ReleaseModal.js +332 -0
  40. package/dist/admin/components/ReleaseModal.js.map +1 -0
  41. package/dist/admin/components/ReleaseModal.mjs +310 -0
  42. package/dist/admin/components/ReleaseModal.mjs.map +1 -0
  43. package/dist/admin/components/ReleasesPanel.js +138 -0
  44. package/dist/admin/components/ReleasesPanel.js.map +1 -0
  45. package/dist/admin/components/ReleasesPanel.mjs +136 -0
  46. package/dist/admin/components/ReleasesPanel.mjs.map +1 -0
  47. package/dist/admin/components/Widgets.js +122 -0
  48. package/dist/admin/components/Widgets.js.map +1 -0
  49. package/dist/admin/components/Widgets.mjs +120 -0
  50. package/dist/admin/components/Widgets.mjs.map +1 -0
  51. package/dist/admin/constants.js +79 -0
  52. package/dist/admin/constants.js.map +1 -0
  53. package/dist/admin/constants.mjs +76 -0
  54. package/dist/admin/constants.mjs.map +1 -0
  55. package/dist/admin/index.js +155 -0
  56. package/dist/admin/index.js.map +1 -0
  57. package/dist/admin/index.mjs +151 -0
  58. package/dist/admin/index.mjs.map +1 -0
  59. package/dist/admin/modules/hooks.js +8 -0
  60. package/dist/admin/modules/hooks.js.map +1 -0
  61. package/dist/admin/modules/hooks.mjs +6 -0
  62. package/dist/admin/modules/hooks.mjs.map +1 -0
  63. package/dist/admin/pages/App.js +29 -0
  64. package/dist/admin/pages/App.js.map +1 -0
  65. package/dist/admin/pages/App.mjs +27 -0
  66. package/dist/admin/pages/App.mjs.map +1 -0
  67. package/dist/admin/pages/PurchaseContentReleases.js +192 -0
  68. package/dist/admin/pages/PurchaseContentReleases.js.map +1 -0
  69. package/dist/admin/pages/PurchaseContentReleases.mjs +190 -0
  70. package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -0
  71. package/dist/admin/pages/ReleaseDetailsPage.js +780 -0
  72. package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -0
  73. package/dist/admin/pages/ReleaseDetailsPage.mjs +755 -0
  74. package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -0
  75. package/dist/admin/pages/ReleasesPage.js +407 -0
  76. package/dist/admin/pages/ReleasesPage.js.map +1 -0
  77. package/dist/admin/pages/ReleasesPage.mjs +384 -0
  78. package/dist/admin/pages/ReleasesPage.mjs.map +1 -0
  79. package/dist/admin/pages/ReleasesSettingsPage.js +226 -0
  80. package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -0
  81. package/dist/admin/pages/ReleasesSettingsPage.mjs +224 -0
  82. package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -0
  83. package/dist/admin/pluginId.js +6 -0
  84. package/dist/admin/pluginId.js.map +1 -0
  85. package/dist/admin/pluginId.mjs +4 -0
  86. package/dist/admin/pluginId.mjs.map +1 -0
  87. package/dist/admin/services/homepage.js +24 -0
  88. package/dist/admin/services/homepage.js.map +1 -0
  89. package/dist/admin/services/homepage.mjs +22 -0
  90. package/dist/admin/services/homepage.mjs.map +1 -0
  91. package/dist/admin/services/release.js +473 -0
  92. package/dist/admin/services/release.js.map +1 -0
  93. package/dist/admin/services/release.mjs +456 -0
  94. package/dist/admin/services/release.mjs.map +1 -0
  95. package/dist/admin/src/components/EntryValidationPopover.d.ts +13 -0
  96. package/dist/admin/src/components/RelativeTime.d.ts +28 -0
  97. package/dist/admin/src/components/ReleaseAction.d.ts +3 -0
  98. package/dist/admin/src/components/ReleaseActionMenu.d.ts +26 -0
  99. package/dist/admin/src/components/ReleaseActionModal.d.ts +24 -0
  100. package/dist/admin/src/components/ReleaseActionOptions.d.ts +9 -0
  101. package/dist/admin/src/components/ReleaseListCell.d.ts +28 -0
  102. package/dist/admin/src/components/ReleaseModal.d.ts +17 -0
  103. package/dist/admin/src/components/ReleasesPanel.d.ts +3 -0
  104. package/dist/admin/src/components/Widgets.d.ts +2 -0
  105. package/dist/admin/src/constants.d.ts +77 -0
  106. package/dist/admin/src/index.d.ts +3 -0
  107. package/dist/admin/src/modules/hooks.d.ts +7 -0
  108. package/dist/admin/src/pages/App.d.ts +1 -0
  109. package/dist/admin/src/pages/PurchaseContentReleases.d.ts +2 -0
  110. package/dist/admin/src/pages/ReleaseDetailsPage.d.ts +2 -0
  111. package/dist/admin/src/pages/ReleasesPage.d.ts +8 -0
  112. package/dist/admin/src/pages/ReleasesSettingsPage.d.ts +1 -0
  113. package/dist/admin/src/pages/tests/mockReleaseDetailsPageData.d.ts +181 -0
  114. package/dist/admin/src/pages/tests/mockReleasesPageData.d.ts +39 -0
  115. package/dist/admin/src/pluginId.d.ts +1 -0
  116. package/dist/admin/src/services/homepage.d.ts +9 -0
  117. package/dist/admin/src/services/release.d.ts +112 -0
  118. package/dist/admin/src/store/hooks.d.ts +7 -0
  119. package/dist/admin/src/utils/api.d.ts +6 -0
  120. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
  121. package/dist/admin/src/utils/time.d.ts +10 -0
  122. package/dist/admin/src/validation/schemas.d.ts +6 -0
  123. package/dist/admin/store/hooks.js +8 -0
  124. package/dist/admin/store/hooks.js.map +1 -0
  125. package/dist/admin/store/hooks.mjs +6 -0
  126. package/dist/admin/store/hooks.mjs.map +1 -0
  127. package/dist/admin/translations/cs.json.js +111 -0
  128. package/dist/admin/translations/cs.json.js.map +1 -0
  129. package/dist/admin/translations/cs.json.mjs +109 -0
  130. package/dist/admin/translations/cs.json.mjs.map +1 -0
  131. package/dist/admin/translations/en.json.js +111 -0
  132. package/dist/admin/translations/en.json.js.map +1 -0
  133. package/dist/admin/translations/en.json.mjs +109 -0
  134. package/dist/admin/translations/en.json.mjs.map +1 -0
  135. package/dist/admin/translations/es.json.js +103 -0
  136. package/dist/admin/translations/es.json.js.map +1 -0
  137. package/dist/admin/translations/es.json.mjs +101 -0
  138. package/dist/admin/translations/es.json.mjs.map +1 -0
  139. package/dist/admin/translations/fa.json.js +111 -0
  140. package/dist/admin/translations/fa.json.js.map +1 -0
  141. package/dist/admin/translations/fa.json.mjs +109 -0
  142. package/dist/admin/translations/fa.json.mjs.map +1 -0
  143. package/dist/admin/translations/ja.json.js +111 -0
  144. package/dist/admin/translations/ja.json.js.map +1 -0
  145. package/dist/admin/translations/ja.json.mjs +109 -0
  146. package/dist/admin/translations/ja.json.mjs.map +1 -0
  147. package/dist/admin/translations/ko.json.js +111 -0
  148. package/dist/admin/translations/ko.json.js.map +1 -0
  149. package/dist/admin/translations/ko.json.mjs +109 -0
  150. package/dist/admin/translations/ko.json.mjs.map +1 -0
  151. package/dist/admin/translations/nl.json.js +111 -0
  152. package/dist/admin/translations/nl.json.js.map +1 -0
  153. package/dist/admin/translations/nl.json.mjs +109 -0
  154. package/dist/admin/translations/nl.json.mjs.map +1 -0
  155. package/dist/admin/translations/pl.json.js +111 -0
  156. package/dist/admin/translations/pl.json.js.map +1 -0
  157. package/dist/admin/translations/pl.json.mjs +109 -0
  158. package/dist/admin/translations/pl.json.mjs.map +1 -0
  159. package/dist/admin/translations/sk.json.js +111 -0
  160. package/dist/admin/translations/sk.json.js.map +1 -0
  161. package/dist/admin/translations/sk.json.mjs +109 -0
  162. package/dist/admin/translations/sk.json.mjs.map +1 -0
  163. package/dist/admin/translations/uk.json.js +103 -0
  164. package/dist/admin/translations/uk.json.js.map +1 -0
  165. package/dist/admin/translations/uk.json.mjs +101 -0
  166. package/dist/admin/translations/uk.json.mjs.map +1 -0
  167. package/dist/admin/utils/api.js +8 -0
  168. package/dist/admin/utils/api.js.map +1 -0
  169. package/dist/admin/utils/api.mjs +6 -0
  170. package/dist/admin/utils/api.mjs.map +1 -0
  171. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  172. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  173. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  174. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  175. package/dist/admin/utils/time.js +42 -0
  176. package/dist/admin/utils/time.js.map +1 -0
  177. package/dist/admin/utils/time.mjs +39 -0
  178. package/dist/admin/utils/time.mjs.map +1 -0
  179. package/dist/admin/validation/schemas.js +66 -0
  180. package/dist/admin/validation/schemas.js.map +1 -0
  181. package/dist/admin/validation/schemas.mjs +43 -0
  182. package/dist/admin/validation/schemas.mjs.map +1 -0
  183. package/dist/server/bootstrap.js +68 -0
  184. package/dist/server/bootstrap.js.map +1 -0
  185. package/dist/server/bootstrap.mjs +66 -0
  186. package/dist/server/bootstrap.mjs.map +1 -0
  187. package/dist/server/constants.js +74 -0
  188. package/dist/server/constants.js.map +1 -0
  189. package/dist/server/constants.mjs +69 -0
  190. package/dist/server/constants.mjs.map +1 -0
  191. package/dist/server/content-types/index.js +12 -0
  192. package/dist/server/content-types/index.js.map +1 -0
  193. package/dist/server/content-types/index.mjs +10 -0
  194. package/dist/server/content-types/index.mjs.map +1 -0
  195. package/dist/server/content-types/release/index.js +10 -0
  196. package/dist/server/content-types/release/index.js.map +1 -0
  197. package/dist/server/content-types/release/index.mjs +8 -0
  198. package/dist/server/content-types/release/index.mjs.map +1 -0
  199. package/dist/server/content-types/release/schema.js +58 -0
  200. package/dist/server/content-types/release/schema.js.map +1 -0
  201. package/dist/server/content-types/release/schema.mjs +56 -0
  202. package/dist/server/content-types/release/schema.mjs.map +1 -0
  203. package/dist/server/content-types/release-action/index.js +10 -0
  204. package/dist/server/content-types/release-action/index.js.map +1 -0
  205. package/dist/server/content-types/release-action/index.mjs +8 -0
  206. package/dist/server/content-types/release-action/index.mjs.map +1 -0
  207. package/dist/server/content-types/release-action/schema.js +55 -0
  208. package/dist/server/content-types/release-action/schema.js.map +1 -0
  209. package/dist/server/content-types/release-action/schema.mjs +53 -0
  210. package/dist/server/content-types/release-action/schema.mjs.map +1 -0
  211. package/dist/server/controllers/homepage.js +15 -0
  212. package/dist/server/controllers/homepage.js.map +1 -0
  213. package/dist/server/controllers/homepage.mjs +13 -0
  214. package/dist/server/controllers/homepage.mjs.map +1 -0
  215. package/dist/server/controllers/index.js +16 -0
  216. package/dist/server/controllers/index.js.map +1 -0
  217. package/dist/server/controllers/index.mjs +14 -0
  218. package/dist/server/controllers/index.mjs.map +1 -0
  219. package/dist/server/controllers/release-action.js +150 -0
  220. package/dist/server/controllers/release-action.js.map +1 -0
  221. package/dist/server/controllers/release-action.mjs +148 -0
  222. package/dist/server/controllers/release-action.mjs.map +1 -0
  223. package/dist/server/controllers/release.js +302 -0
  224. package/dist/server/controllers/release.js.map +1 -0
  225. package/dist/server/controllers/release.mjs +300 -0
  226. package/dist/server/controllers/release.mjs.map +1 -0
  227. package/dist/server/controllers/settings.js +37 -0
  228. package/dist/server/controllers/settings.js.map +1 -0
  229. package/dist/server/controllers/settings.mjs +35 -0
  230. package/dist/server/controllers/settings.mjs.map +1 -0
  231. package/dist/server/controllers/validation/release-action.js +34 -0
  232. package/dist/server/controllers/validation/release-action.js.map +1 -0
  233. package/dist/server/controllers/validation/release-action.mjs +30 -0
  234. package/dist/server/controllers/validation/release-action.mjs.map +1 -0
  235. package/dist/server/controllers/validation/release.js +26 -0
  236. package/dist/server/controllers/validation/release.js.map +1 -0
  237. package/dist/server/controllers/validation/release.mjs +22 -0
  238. package/dist/server/controllers/validation/release.mjs.map +1 -0
  239. package/dist/server/controllers/validation/settings.js +33 -0
  240. package/dist/server/controllers/validation/settings.js.map +1 -0
  241. package/dist/server/controllers/validation/settings.mjs +10 -0
  242. package/dist/server/controllers/validation/settings.mjs.map +1 -0
  243. package/dist/server/destroy.js +15 -0
  244. package/dist/server/destroy.js.map +1 -0
  245. package/dist/server/destroy.mjs +13 -0
  246. package/dist/server/destroy.mjs.map +1 -0
  247. package/dist/server/index.js +33 -0
  248. package/dist/server/index.js.map +1 -0
  249. package/dist/server/index.mjs +31 -0
  250. package/dist/server/index.mjs.map +1 -0
  251. package/dist/server/middlewares/documents.js +104 -0
  252. package/dist/server/middlewares/documents.js.map +1 -0
  253. package/dist/server/middlewares/documents.mjs +101 -0
  254. package/dist/server/middlewares/documents.mjs.map +1 -0
  255. package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +51 -0
  256. package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +1 -0
  257. package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +49 -0
  258. package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +1 -0
  259. package/dist/server/migrations/index.js +209 -0
  260. package/dist/server/migrations/index.js.map +1 -0
  261. package/dist/server/migrations/index.mjs +198 -0
  262. package/dist/server/migrations/index.mjs.map +1 -0
  263. package/dist/server/register.js +23 -0
  264. package/dist/server/register.js.map +1 -0
  265. package/dist/server/register.mjs +21 -0
  266. package/dist/server/register.mjs.map +1 -0
  267. package/dist/server/routes/homepage.js +25 -0
  268. package/dist/server/routes/homepage.js.map +1 -0
  269. package/dist/server/routes/homepage.mjs +23 -0
  270. package/dist/server/routes/homepage.mjs.map +1 -0
  271. package/dist/server/routes/index.js +16 -0
  272. package/dist/server/routes/index.js.map +1 -0
  273. package/dist/server/routes/index.mjs +14 -0
  274. package/dist/server/routes/index.mjs.map +1 -0
  275. package/dist/server/routes/release-action.js +100 -0
  276. package/dist/server/routes/release-action.js.map +1 -0
  277. package/dist/server/routes/release-action.mjs +98 -0
  278. package/dist/server/routes/release-action.mjs.map +1 -0
  279. package/dist/server/routes/release.js +154 -0
  280. package/dist/server/routes/release.js.map +1 -0
  281. package/dist/server/routes/release.mjs +152 -0
  282. package/dist/server/routes/release.mjs.map +1 -0
  283. package/dist/server/routes/settings.js +46 -0
  284. package/dist/server/routes/settings.js.map +1 -0
  285. package/dist/server/routes/settings.mjs +44 -0
  286. package/dist/server/routes/settings.mjs.map +1 -0
  287. package/dist/server/services/homepage.js +31 -0
  288. package/dist/server/services/homepage.js.map +1 -0
  289. package/dist/server/services/homepage.mjs +29 -0
  290. package/dist/server/services/homepage.mjs.map +1 -0
  291. package/dist/server/services/index.js +20 -0
  292. package/dist/server/services/index.js.map +1 -0
  293. package/dist/server/services/index.mjs +18 -0
  294. package/dist/server/services/index.mjs.map +1 -0
  295. package/dist/server/services/release-action.js +328 -0
  296. package/dist/server/services/release-action.js.map +1 -0
  297. package/dist/server/services/release-action.mjs +322 -0
  298. package/dist/server/services/release-action.mjs.map +1 -0
  299. package/dist/server/services/release.js +337 -0
  300. package/dist/server/services/release.js.map +1 -0
  301. package/dist/server/services/release.mjs +335 -0
  302. package/dist/server/services/release.mjs.map +1 -0
  303. package/dist/server/services/scheduling.js +71 -0
  304. package/dist/server/services/scheduling.js.map +1 -0
  305. package/dist/server/services/scheduling.mjs +69 -0
  306. package/dist/server/services/scheduling.mjs.map +1 -0
  307. package/dist/server/services/settings.js +34 -0
  308. package/dist/server/services/settings.js.map +1 -0
  309. package/dist/server/services/settings.mjs +32 -0
  310. package/dist/server/services/settings.mjs.map +1 -0
  311. package/dist/server/services/validation.js +91 -0
  312. package/dist/server/services/validation.js.map +1 -0
  313. package/dist/server/services/validation.mjs +86 -0
  314. package/dist/server/services/validation.mjs.map +1 -0
  315. package/dist/server/src/bootstrap.d.ts +5 -0
  316. package/dist/server/src/bootstrap.d.ts.map +1 -0
  317. package/dist/server/src/constants.d.ts +21 -0
  318. package/dist/server/src/constants.d.ts.map +1 -0
  319. package/dist/server/src/content-types/index.d.ts +97 -0
  320. package/dist/server/src/content-types/index.d.ts.map +1 -0
  321. package/dist/server/src/content-types/release/index.d.ts +48 -0
  322. package/dist/server/src/content-types/release/index.d.ts.map +1 -0
  323. package/dist/server/src/content-types/release/schema.d.ts +47 -0
  324. package/dist/server/src/content-types/release/schema.d.ts.map +1 -0
  325. package/dist/server/src/content-types/release-action/index.d.ts +48 -0
  326. package/dist/server/src/content-types/release-action/index.d.ts.map +1 -0
  327. package/dist/server/src/content-types/release-action/schema.d.ts +47 -0
  328. package/dist/server/src/content-types/release-action/schema.d.ts.map +1 -0
  329. package/dist/server/src/controllers/homepage.d.ts +6 -0
  330. package/dist/server/src/controllers/homepage.d.ts.map +1 -0
  331. package/dist/server/src/controllers/index.d.ts +27 -0
  332. package/dist/server/src/controllers/index.d.ts.map +1 -0
  333. package/dist/server/src/controllers/release-action.d.ts +10 -0
  334. package/dist/server/src/controllers/release-action.d.ts.map +1 -0
  335. package/dist/server/src/controllers/release.d.ts +18 -0
  336. package/dist/server/src/controllers/release.d.ts.map +1 -0
  337. package/dist/server/src/controllers/settings.d.ts +11 -0
  338. package/dist/server/src/controllers/settings.d.ts.map +1 -0
  339. package/dist/server/src/controllers/validation/release-action.d.ts +14 -0
  340. package/dist/server/src/controllers/validation/release-action.d.ts.map +1 -0
  341. package/dist/server/src/controllers/validation/release.d.ts +4 -0
  342. package/dist/server/src/controllers/validation/release.d.ts.map +1 -0
  343. package/dist/server/src/controllers/validation/settings.d.ts +3 -0
  344. package/dist/server/src/controllers/validation/settings.d.ts.map +1 -0
  345. package/dist/server/src/destroy.d.ts +5 -0
  346. package/dist/server/src/destroy.d.ts.map +1 -0
  347. package/dist/server/src/index.d.ts +372 -0
  348. package/dist/server/src/index.d.ts.map +1 -0
  349. package/dist/server/src/middlewares/documents.d.ts +6 -0
  350. package/dist/server/src/middlewares/documents.d.ts.map +1 -0
  351. package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts +9 -0
  352. package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts.map +1 -0
  353. package/dist/server/src/migrations/index.d.ts +13 -0
  354. package/dist/server/src/migrations/index.d.ts.map +1 -0
  355. package/dist/server/src/register.d.ts +5 -0
  356. package/dist/server/src/register.d.ts.map +1 -0
  357. package/dist/server/src/routes/homepage.d.ts +4 -0
  358. package/dist/server/src/routes/homepage.d.ts.map +1 -0
  359. package/dist/server/src/routes/index.d.ts +54 -0
  360. package/dist/server/src/routes/index.d.ts.map +1 -0
  361. package/dist/server/src/routes/release-action.d.ts +18 -0
  362. package/dist/server/src/routes/release-action.d.ts.map +1 -0
  363. package/dist/server/src/routes/release.d.ts +18 -0
  364. package/dist/server/src/routes/release.d.ts.map +1 -0
  365. package/dist/server/src/routes/settings.d.ts +18 -0
  366. package/dist/server/src/routes/settings.d.ts.map +1 -0
  367. package/dist/server/src/services/homepage.d.ts +9 -0
  368. package/dist/server/src/services/homepage.d.ts.map +1 -0
  369. package/dist/server/src/services/index.d.ts +80 -0
  370. package/dist/server/src/services/index.d.ts.map +1 -0
  371. package/dist/server/src/services/release-action.d.ts +33 -0
  372. package/dist/server/src/services/release-action.d.ts.map +1 -0
  373. package/dist/server/src/services/release.d.ts +31 -0
  374. package/dist/server/src/services/release.d.ts.map +1 -0
  375. package/dist/server/src/services/scheduling.d.ts +17 -0
  376. package/dist/server/src/services/scheduling.d.ts.map +1 -0
  377. package/dist/server/src/services/settings.d.ts +13 -0
  378. package/dist/server/src/services/settings.d.ts.map +1 -0
  379. package/dist/server/src/services/validation.d.ts +18 -0
  380. package/dist/server/src/services/validation.d.ts.map +1 -0
  381. package/dist/server/src/utils/index.d.ts +51 -0
  382. package/dist/server/src/utils/index.d.ts.map +1 -0
  383. package/dist/server/utils/index.js +195 -0
  384. package/dist/server/utils/index.js.map +1 -0
  385. package/dist/server/utils/index.mjs +188 -0
  386. package/dist/server/utils/index.mjs.map +1 -0
  387. package/dist/shared/contracts/homepage.d.ts +11 -0
  388. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  389. package/dist/shared/contracts/release-actions.d.ts +137 -0
  390. package/dist/shared/contracts/release-actions.d.ts.map +1 -0
  391. package/dist/shared/contracts/releases.d.ts +182 -0
  392. package/dist/shared/contracts/releases.d.ts.map +1 -0
  393. package/dist/shared/contracts/settings.d.ts +38 -0
  394. package/dist/shared/contracts/settings.d.ts.map +1 -0
  395. package/dist/shared/types.d.ts +24 -0
  396. package/dist/shared/types.d.ts.map +1 -0
  397. package/package.json +87 -0
@@ -0,0 +1,104 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var styledComponents = require('styled-components');
7
+
8
+ const getBorderLeftRadiusValue = (actionType)=>{
9
+ return actionType === 'publish' ? 1 : 0;
10
+ };
11
+ const getBorderRightRadiusValue = (actionType)=>{
12
+ return actionType === 'publish' ? 0 : 1;
13
+ };
14
+ const FieldWrapper = styledComponents.styled(designSystem.Field.Root)`
15
+ border-top-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
16
+ border-bottom-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
17
+ border-top-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
18
+ border-bottom-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
19
+
20
+ label {
21
+ color: inherit;
22
+ padding: ${({ theme })=>`${theme.spaces[2]} ${theme.spaces[3]}`};
23
+ text-align: center;
24
+ vertical-align: middle;
25
+ text-transform: capitalize;
26
+ }
27
+
28
+ &[data-checked='true'] {
29
+ color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
30
+ background-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};
31
+ border-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
32
+ }
33
+
34
+ &[data-checked='false'] {
35
+ border-left: ${({ $actionType })=>$actionType === 'unpublish' && 'none'};
36
+ border-right: ${({ $actionType })=>$actionType === 'publish' && 'none'};
37
+ }
38
+
39
+ &[data-checked='false'][data-disabled='false']:hover {
40
+ color: ${({ theme })=>theme.colors.neutral700};
41
+ background-color: ${({ theme })=>theme.colors.neutral100};
42
+ border-color: ${({ theme })=>theme.colors.neutral200};
43
+
44
+ & > label {
45
+ cursor: pointer;
46
+ }
47
+ }
48
+
49
+ &[data-disabled='true'] {
50
+ color: ${({ theme })=>theme.colors.neutral600};
51
+ background-color: ${({ theme })=>theme.colors.neutral150};
52
+ border-color: ${({ theme })=>theme.colors.neutral300};
53
+ }
54
+ `;
55
+ const ActionOption = ({ selected, actionType, handleChange, name, disabled = false })=>{
56
+ return /*#__PURE__*/ jsxRuntime.jsx(FieldWrapper, {
57
+ $actionType: actionType,
58
+ background: "primary0",
59
+ borderColor: "neutral200",
60
+ color: selected === actionType ? 'primary600' : 'neutral600',
61
+ position: "relative",
62
+ cursor: "pointer",
63
+ "data-checked": selected === actionType,
64
+ "data-disabled": disabled && selected !== actionType,
65
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Label, {
66
+ children: [
67
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.VisuallyHidden, {
68
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Input, {
69
+ type: "radio",
70
+ name: name,
71
+ checked: selected === actionType,
72
+ onChange: handleChange,
73
+ value: actionType,
74
+ disabled: disabled
75
+ })
76
+ }),
77
+ actionType
78
+ ]
79
+ })
80
+ });
81
+ };
82
+ const ReleaseActionOptions = ({ selected, handleChange, name, disabled = false })=>{
83
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
84
+ children: [
85
+ /*#__PURE__*/ jsxRuntime.jsx(ActionOption, {
86
+ actionType: "publish",
87
+ selected: selected,
88
+ handleChange: handleChange,
89
+ name: name,
90
+ disabled: disabled
91
+ }),
92
+ /*#__PURE__*/ jsxRuntime.jsx(ActionOption, {
93
+ actionType: "unpublish",
94
+ selected: selected,
95
+ handleChange: handleChange,
96
+ name: name,
97
+ disabled: disabled
98
+ })
99
+ ]
100
+ });
101
+ };
102
+
103
+ exports.ReleaseActionOptions = ReleaseActionOptions;
104
+ //# sourceMappingURL=ReleaseActionOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleaseActionOptions.js","sources":["../../../admin/src/components/ReleaseActionOptions.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { VisuallyHidden, Field, Flex } from '@strapi/design-system';\r\nimport { styled } from 'styled-components';\r\n\r\ninterface FieldWrapperProps extends Field.Props {\r\n actionType: 'publish' | 'unpublish';\r\n}\r\n\r\nconst getBorderLeftRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\r\n return actionType === 'publish' ? 1 : 0;\r\n};\r\n\r\nconst getBorderRightRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\r\n return actionType === 'publish' ? 0 : 1;\r\n};\r\n\r\nconst FieldWrapper = styled(Field.Root)<{\r\n $actionType: 'publish' | 'unpublish';\r\n}>`\r\n border-top-left-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\r\n border-bottom-left-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\r\n border-top-right-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderRightRadiusValue($actionType)]};\r\n border-bottom-right-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderRightRadiusValue($actionType)]};\r\n\r\n label {\r\n color: inherit;\r\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[3]}`};\r\n text-align: center;\r\n vertical-align: middle;\r\n text-transform: capitalize;\r\n }\r\n\r\n &[data-checked='true'] {\r\n color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\r\n background-color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};\r\n border-color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\r\n }\r\n\r\n &[data-checked='false'] {\r\n border-left: ${({ $actionType }) => $actionType === 'unpublish' && 'none'};\r\n border-right: ${({ $actionType }) => $actionType === 'publish' && 'none'};\r\n }\r\n\r\n &[data-checked='false'][data-disabled='false']:hover {\r\n color: ${({ theme }) => theme.colors.neutral700};\r\n background-color: ${({ theme }) => theme.colors.neutral100};\r\n border-color: ${({ theme }) => theme.colors.neutral200};\r\n\r\n & > label {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n &[data-disabled='true'] {\r\n color: ${({ theme }) => theme.colors.neutral600};\r\n background-color: ${({ theme }) => theme.colors.neutral150};\r\n border-color: ${({ theme }) => theme.colors.neutral300};\r\n }\r\n`;\r\n\r\ninterface ActionOptionProps {\r\n selected: 'publish' | 'unpublish';\r\n handleChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface OptionProps extends ActionOptionProps {\r\n actionType: 'publish' | 'unpublish';\r\n}\r\n\r\nconst ActionOption = ({\r\n selected,\r\n actionType,\r\n handleChange,\r\n name,\r\n disabled = false,\r\n}: OptionProps) => {\r\n return (\r\n <FieldWrapper\r\n $actionType={actionType}\r\n background=\"primary0\"\r\n borderColor=\"neutral200\"\r\n color={selected === actionType ? 'primary600' : 'neutral600'}\r\n position=\"relative\"\r\n cursor=\"pointer\"\r\n data-checked={selected === actionType}\r\n data-disabled={disabled && selected !== actionType}\r\n >\r\n <Field.Label>\r\n <VisuallyHidden>\r\n <Field.Input\r\n type=\"radio\"\r\n name={name}\r\n checked={selected === actionType}\r\n onChange={handleChange}\r\n value={actionType}\r\n disabled={disabled}\r\n />\r\n </VisuallyHidden>\r\n {actionType}\r\n </Field.Label>\r\n </FieldWrapper>\r\n );\r\n};\r\n\r\nexport const ReleaseActionOptions = ({\r\n selected,\r\n handleChange,\r\n name,\r\n disabled = false,\r\n}: ActionOptionProps) => {\r\n return (\r\n <Flex>\r\n <ActionOption\r\n actionType=\"publish\"\r\n selected={selected}\r\n handleChange={handleChange}\r\n name={name}\r\n disabled={disabled}\r\n />\r\n <ActionOption\r\n actionType=\"unpublish\"\r\n selected={selected}\r\n handleChange={handleChange}\r\n name={name}\r\n disabled={disabled}\r\n />\r\n </Flex>\r\n );\r\n};\r\n"],"names":["getBorderLeftRadiusValue","actionType","getBorderRightRadiusValue","FieldWrapper","styled","Field","Root","$actionType","theme","spaces","colors","primary700","danger600","primary100","danger100","neutral700","neutral100","neutral200","neutral600","neutral150","neutral300","ActionOption","selected","handleChange","name","disabled","_jsx","background","borderColor","color","position","cursor","data-checked","data-disabled","_jsxs","Label","VisuallyHidden","Input","type","checked","onChange","value","ReleaseActionOptions","Flex"],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import 'react';
3
+ import { Field, Flex, VisuallyHidden } from '@strapi/design-system';
4
+ import { styled } from 'styled-components';
5
+
6
+ const getBorderLeftRadiusValue = (actionType)=>{
7
+ return actionType === 'publish' ? 1 : 0;
8
+ };
9
+ const getBorderRightRadiusValue = (actionType)=>{
10
+ return actionType === 'publish' ? 0 : 1;
11
+ };
12
+ const FieldWrapper = styled(Field.Root)`
13
+ border-top-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
14
+ border-bottom-left-radius: ${({ $actionType, theme })=>theme.spaces[getBorderLeftRadiusValue($actionType)]};
15
+ border-top-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
16
+ border-bottom-right-radius: ${({ $actionType, theme })=>theme.spaces[getBorderRightRadiusValue($actionType)]};
17
+
18
+ label {
19
+ color: inherit;
20
+ padding: ${({ theme })=>`${theme.spaces[2]} ${theme.spaces[3]}`};
21
+ text-align: center;
22
+ vertical-align: middle;
23
+ text-transform: capitalize;
24
+ }
25
+
26
+ &[data-checked='true'] {
27
+ color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
28
+ background-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};
29
+ border-color: ${({ theme, $actionType })=>$actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};
30
+ }
31
+
32
+ &[data-checked='false'] {
33
+ border-left: ${({ $actionType })=>$actionType === 'unpublish' && 'none'};
34
+ border-right: ${({ $actionType })=>$actionType === 'publish' && 'none'};
35
+ }
36
+
37
+ &[data-checked='false'][data-disabled='false']:hover {
38
+ color: ${({ theme })=>theme.colors.neutral700};
39
+ background-color: ${({ theme })=>theme.colors.neutral100};
40
+ border-color: ${({ theme })=>theme.colors.neutral200};
41
+
42
+ & > label {
43
+ cursor: pointer;
44
+ }
45
+ }
46
+
47
+ &[data-disabled='true'] {
48
+ color: ${({ theme })=>theme.colors.neutral600};
49
+ background-color: ${({ theme })=>theme.colors.neutral150};
50
+ border-color: ${({ theme })=>theme.colors.neutral300};
51
+ }
52
+ `;
53
+ const ActionOption = ({ selected, actionType, handleChange, name, disabled = false })=>{
54
+ return /*#__PURE__*/ jsx(FieldWrapper, {
55
+ $actionType: actionType,
56
+ background: "primary0",
57
+ borderColor: "neutral200",
58
+ color: selected === actionType ? 'primary600' : 'neutral600',
59
+ position: "relative",
60
+ cursor: "pointer",
61
+ "data-checked": selected === actionType,
62
+ "data-disabled": disabled && selected !== actionType,
63
+ children: /*#__PURE__*/ jsxs(Field.Label, {
64
+ children: [
65
+ /*#__PURE__*/ jsx(VisuallyHidden, {
66
+ children: /*#__PURE__*/ jsx(Field.Input, {
67
+ type: "radio",
68
+ name: name,
69
+ checked: selected === actionType,
70
+ onChange: handleChange,
71
+ value: actionType,
72
+ disabled: disabled
73
+ })
74
+ }),
75
+ actionType
76
+ ]
77
+ })
78
+ });
79
+ };
80
+ const ReleaseActionOptions = ({ selected, handleChange, name, disabled = false })=>{
81
+ return /*#__PURE__*/ jsxs(Flex, {
82
+ children: [
83
+ /*#__PURE__*/ jsx(ActionOption, {
84
+ actionType: "publish",
85
+ selected: selected,
86
+ handleChange: handleChange,
87
+ name: name,
88
+ disabled: disabled
89
+ }),
90
+ /*#__PURE__*/ jsx(ActionOption, {
91
+ actionType: "unpublish",
92
+ selected: selected,
93
+ handleChange: handleChange,
94
+ name: name,
95
+ disabled: disabled
96
+ })
97
+ ]
98
+ });
99
+ };
100
+
101
+ export { ReleaseActionOptions };
102
+ //# sourceMappingURL=ReleaseActionOptions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleaseActionOptions.mjs","sources":["../../../admin/src/components/ReleaseActionOptions.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { VisuallyHidden, Field, Flex } from '@strapi/design-system';\r\nimport { styled } from 'styled-components';\r\n\r\ninterface FieldWrapperProps extends Field.Props {\r\n actionType: 'publish' | 'unpublish';\r\n}\r\n\r\nconst getBorderLeftRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\r\n return actionType === 'publish' ? 1 : 0;\r\n};\r\n\r\nconst getBorderRightRadiusValue = (actionType: FieldWrapperProps['actionType']) => {\r\n return actionType === 'publish' ? 0 : 1;\r\n};\r\n\r\nconst FieldWrapper = styled(Field.Root)<{\r\n $actionType: 'publish' | 'unpublish';\r\n}>`\r\n border-top-left-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\r\n border-bottom-left-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderLeftRadiusValue($actionType)]};\r\n border-top-right-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderRightRadiusValue($actionType)]};\r\n border-bottom-right-radius: ${({ $actionType, theme }) =>\r\n theme.spaces[getBorderRightRadiusValue($actionType)]};\r\n\r\n label {\r\n color: inherit;\r\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[3]}`};\r\n text-align: center;\r\n vertical-align: middle;\r\n text-transform: capitalize;\r\n }\r\n\r\n &[data-checked='true'] {\r\n color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\r\n background-color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary100 : theme.colors.danger100};\r\n border-color: ${({ theme, $actionType }) =>\r\n $actionType === 'publish' ? theme.colors.primary700 : theme.colors.danger600};\r\n }\r\n\r\n &[data-checked='false'] {\r\n border-left: ${({ $actionType }) => $actionType === 'unpublish' && 'none'};\r\n border-right: ${({ $actionType }) => $actionType === 'publish' && 'none'};\r\n }\r\n\r\n &[data-checked='false'][data-disabled='false']:hover {\r\n color: ${({ theme }) => theme.colors.neutral700};\r\n background-color: ${({ theme }) => theme.colors.neutral100};\r\n border-color: ${({ theme }) => theme.colors.neutral200};\r\n\r\n & > label {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n &[data-disabled='true'] {\r\n color: ${({ theme }) => theme.colors.neutral600};\r\n background-color: ${({ theme }) => theme.colors.neutral150};\r\n border-color: ${({ theme }) => theme.colors.neutral300};\r\n }\r\n`;\r\n\r\ninterface ActionOptionProps {\r\n selected: 'publish' | 'unpublish';\r\n handleChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface OptionProps extends ActionOptionProps {\r\n actionType: 'publish' | 'unpublish';\r\n}\r\n\r\nconst ActionOption = ({\r\n selected,\r\n actionType,\r\n handleChange,\r\n name,\r\n disabled = false,\r\n}: OptionProps) => {\r\n return (\r\n <FieldWrapper\r\n $actionType={actionType}\r\n background=\"primary0\"\r\n borderColor=\"neutral200\"\r\n color={selected === actionType ? 'primary600' : 'neutral600'}\r\n position=\"relative\"\r\n cursor=\"pointer\"\r\n data-checked={selected === actionType}\r\n data-disabled={disabled && selected !== actionType}\r\n >\r\n <Field.Label>\r\n <VisuallyHidden>\r\n <Field.Input\r\n type=\"radio\"\r\n name={name}\r\n checked={selected === actionType}\r\n onChange={handleChange}\r\n value={actionType}\r\n disabled={disabled}\r\n />\r\n </VisuallyHidden>\r\n {actionType}\r\n </Field.Label>\r\n </FieldWrapper>\r\n );\r\n};\r\n\r\nexport const ReleaseActionOptions = ({\r\n selected,\r\n handleChange,\r\n name,\r\n disabled = false,\r\n}: ActionOptionProps) => {\r\n return (\r\n <Flex>\r\n <ActionOption\r\n actionType=\"publish\"\r\n selected={selected}\r\n handleChange={handleChange}\r\n name={name}\r\n disabled={disabled}\r\n />\r\n <ActionOption\r\n actionType=\"unpublish\"\r\n selected={selected}\r\n handleChange={handleChange}\r\n name={name}\r\n disabled={disabled}\r\n />\r\n </Flex>\r\n );\r\n};\r\n"],"names":["getBorderLeftRadiusValue","actionType","getBorderRightRadiusValue","FieldWrapper","styled","Field","Root","$actionType","theme","spaces","colors","primary700","danger600","primary100","danger100","neutral700","neutral100","neutral200","neutral600","neutral150","neutral300","ActionOption","selected","handleChange","name","disabled","_jsx","background","borderColor","color","position","cursor","data-checked","data-disabled","_jsxs","Label","VisuallyHidden","Input","type","checked","onChange","value","ReleaseActionOptions","Flex"],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ require('react');
5
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
6
+ var designSystem = require('@strapi/design-system');
7
+ var icons = require('@strapi/icons');
8
+ var reactIntl = require('react-intl');
9
+ var release = require('../services/release.js');
10
+
11
+ const isDocumentRow = (entry)=>{
12
+ if ('documentId' in entry) {
13
+ return typeof entry.documentId === 'string';
14
+ }
15
+ return false;
16
+ };
17
+ const useReleasesList = (contentTypeUid, documentId)=>{
18
+ const listViewData = strapiAdmin.useTable('ListView', (state)=>state.rows);
19
+ const documentIds = listViewData.filter((entry)=>isDocumentRow(entry)).map((entry)=>entry.documentId);
20
+ const [{ query }] = strapiAdmin.useQueryParams();
21
+ const locale = query?.plugins?.i18n?.locale || undefined;
22
+ const response = release.useGetMappedEntriesInReleasesQuery({
23
+ contentTypeUid,
24
+ documentIds,
25
+ locale
26
+ }, {
27
+ skip: !contentTypeUid || documentIds.length === 0
28
+ });
29
+ const mappedEntriesInReleases = response.data || {};
30
+ return mappedEntriesInReleases?.[documentId] || [];
31
+ };
32
+ const addColumnToTableHook = ({ displayedHeaders, layout })=>{
33
+ const { options } = layout;
34
+ if (!options?.draftAndPublish) {
35
+ return {
36
+ displayedHeaders,
37
+ layout
38
+ };
39
+ }
40
+ return {
41
+ displayedHeaders: [
42
+ ...displayedHeaders,
43
+ {
44
+ searchable: false,
45
+ sortable: false,
46
+ name: 'releases',
47
+ label: {
48
+ id: 'content-releases.content-manager.list-view.releases.header',
49
+ defaultMessage: 'To be released in'
50
+ },
51
+ cellFormatter: (props, _, { model })=>/*#__PURE__*/ jsxRuntime.jsx(ReleaseListCell, {
52
+ ...props,
53
+ model: model
54
+ })
55
+ }
56
+ ],
57
+ layout
58
+ };
59
+ };
60
+ const ReleaseListCell = ({ documentId, model })=>{
61
+ const releases = useReleasesList(model, documentId);
62
+ const { formatMessage } = reactIntl.useIntl();
63
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Popover.Root, {
64
+ children: [
65
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Trigger, {
66
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
67
+ variant: "ghost",
68
+ onClick: (e)=>e.stopPropagation(),
69
+ // TODO: find a way in the DS to define the widht and height of the icon
70
+ endIcon: releases.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(icons.CaretDown, {
71
+ width: "1.2rem",
72
+ height: "1.2rem"
73
+ }) : null,
74
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
75
+ style: {
76
+ maxWidth: '252px',
77
+ cursor: 'pointer'
78
+ },
79
+ textColor: "neutral800",
80
+ fontWeight: "regular",
81
+ children: releases.length > 0 ? formatMessage({
82
+ id: 'content-releases.content-manager.list-view.releases-number',
83
+ defaultMessage: '{number} {number, plural, one {release} other {releases}}'
84
+ }, {
85
+ number: releases.length
86
+ }) : '-'
87
+ })
88
+ })
89
+ }),
90
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Content, {
91
+ children: /*#__PURE__*/ jsxRuntime.jsx("ul", {
92
+ children: releases.map(({ id, name })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
93
+ padding: 3,
94
+ tag: "li",
95
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Link, {
96
+ href: `/admin/plugins/content-releases/${id}`,
97
+ isExternal: false,
98
+ children: name
99
+ })
100
+ }, id))
101
+ })
102
+ })
103
+ ]
104
+ });
105
+ };
106
+
107
+ exports.ReleaseListCell = ReleaseListCell;
108
+ exports.addColumnToTableHook = addColumnToTableHook;
109
+ //# sourceMappingURL=ReleaseListCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleaseListCell.js","sources":["../../../admin/src/components/ReleaseListCell.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { useTable, useQueryParams } from '@strapi/admin/strapi-admin';\r\nimport { ListFieldLayout, ListLayout } from '@strapi/content-manager/strapi-admin';\r\nimport { Box, Popover, Typography, Button, Link } from '@strapi/design-system';\r\nimport { CaretDown } from '@strapi/icons';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { useGetMappedEntriesInReleasesQuery } from '../services/release';\r\n\r\nimport type { Modules, UID } from '@strapi/types';\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * useReleasesList\r\n * -----------------------------------------------------------------------------------------------*/\r\ninterface QueryParams {\r\n plugins?: {\r\n i18n?: {\r\n locale: string;\r\n };\r\n };\r\n}\r\n\r\ntype DocumentRow = {\r\n id: string | number;\r\n documentId: Modules.Documents.ID;\r\n};\r\n\r\nconst isDocumentRow = (entry: { id: string | number }): entry is DocumentRow => {\r\n if ('documentId' in entry) {\r\n return typeof entry.documentId === 'string';\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst useReleasesList = (contentTypeUid: UID.ContentType, documentId: Modules.Documents.ID) => {\r\n const listViewData = useTable('ListView', (state) => state.rows);\r\n const documentIds = listViewData\r\n .filter((entry) => isDocumentRow(entry))\r\n .map((entry) => entry.documentId);\r\n const [{ query }] = useQueryParams();\r\n const locale = (query as QueryParams)?.plugins?.i18n?.locale || undefined;\r\n\r\n const response = useGetMappedEntriesInReleasesQuery(\r\n { contentTypeUid, documentIds, locale },\r\n { skip: !contentTypeUid || documentIds.length === 0 }\r\n );\r\n\r\n const mappedEntriesInReleases = response.data || {};\r\n\r\n return mappedEntriesInReleases?.[documentId] || [];\r\n};\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * addColumnToTableHook\r\n * -----------------------------------------------------------------------------------------------*/\r\n\r\ninterface AddColumnToTableHookArgs {\r\n layout: ListLayout;\r\n displayedHeaders: ListFieldLayout[];\r\n}\r\n\r\nconst addColumnToTableHook = ({ displayedHeaders, layout }: AddColumnToTableHookArgs) => {\r\n const { options } = layout;\r\n\r\n if (!options?.draftAndPublish) {\r\n return { displayedHeaders, layout };\r\n }\r\n\r\n return {\r\n displayedHeaders: [\r\n ...displayedHeaders,\r\n {\r\n searchable: false,\r\n sortable: false,\r\n name: 'releases',\r\n label: {\r\n id: 'content-releases.content-manager.list-view.releases.header',\r\n defaultMessage: 'To be released in',\r\n },\r\n cellFormatter: (\r\n props: Modules.Documents.AnyDocument,\r\n _: unknown,\r\n { model }: { model: UID.ContentType }\r\n ) => <ReleaseListCell {...props} model={model} />,\r\n },\r\n ],\r\n layout,\r\n };\r\n};\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * ReleaseListCell\r\n * -----------------------------------------------------------------------------------------------*/\r\n\r\ninterface ReleaseListCellProps extends Modules.Documents.AnyDocument {\r\n documentId: Modules.Documents.ID;\r\n model: UID.ContentType;\r\n}\r\n\r\nconst ReleaseListCell = ({ documentId, model }: ReleaseListCellProps) => {\r\n const releases = useReleasesList(model, documentId);\r\n const { formatMessage } = useIntl();\r\n\r\n return (\r\n <Popover.Root>\r\n <Popover.Trigger>\r\n <Button\r\n variant=\"ghost\"\r\n onClick={(e: React.MouseEvent<HTMLElement>) => e.stopPropagation()}\r\n // TODO: find a way in the DS to define the widht and height of the icon\r\n endIcon={releases.length > 0 ? <CaretDown width=\"1.2rem\" height=\"1.2rem\" /> : null}\r\n >\r\n <Typography\r\n style={{ maxWidth: '252px', cursor: 'pointer' }}\r\n textColor=\"neutral800\"\r\n fontWeight=\"regular\"\r\n >\r\n {releases.length > 0\r\n ? formatMessage(\r\n {\r\n id: 'content-releases.content-manager.list-view.releases-number',\r\n defaultMessage: '{number} {number, plural, one {release} other {releases}}',\r\n },\r\n {\r\n number: releases.length,\r\n }\r\n )\r\n : '-'}\r\n </Typography>\r\n </Button>\r\n </Popover.Trigger>\r\n <Popover.Content>\r\n <ul>\r\n {releases.map(({ id, name }) => (\r\n <Box key={id} padding={3} tag=\"li\">\r\n <Link href={`/admin/plugins/content-releases/${id}`} isExternal={false}>\r\n {name}\r\n </Link>\r\n </Box>\r\n ))}\r\n </ul>\r\n </Popover.Content>\r\n </Popover.Root>\r\n );\r\n};\r\n\r\nexport { ReleaseListCell, addColumnToTableHook };\r\nexport type { ReleaseListCellProps };\r\n"],"names":["isDocumentRow","entry","documentId","useReleasesList","contentTypeUid","listViewData","useTable","state","rows","documentIds","filter","map","query","useQueryParams","locale","plugins","i18n","undefined","response","useGetMappedEntriesInReleasesQuery","skip","length","mappedEntriesInReleases","data","addColumnToTableHook","displayedHeaders","layout","options","draftAndPublish","searchable","sortable","name","label","id","defaultMessage","cellFormatter","props","_","model","_jsx","ReleaseListCell","releases","formatMessage","useIntl","_jsxs","Popover","Root","Trigger","Button","variant","onClick","e","stopPropagation","endIcon","CaretDown","width","height","Typography","style","maxWidth","cursor","textColor","fontWeight","number","Content","ul","Box","padding","tag","Link","href","isExternal"],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import 'react';
3
+ import { useTable, useQueryParams } from '@strapi/admin/strapi-admin';
4
+ import { Popover, Button, Typography, Box, Link } from '@strapi/design-system';
5
+ import { CaretDown } from '@strapi/icons';
6
+ import { useIntl } from 'react-intl';
7
+ import { useGetMappedEntriesInReleasesQuery } from '../services/release.mjs';
8
+
9
+ const isDocumentRow = (entry)=>{
10
+ if ('documentId' in entry) {
11
+ return typeof entry.documentId === 'string';
12
+ }
13
+ return false;
14
+ };
15
+ const useReleasesList = (contentTypeUid, documentId)=>{
16
+ const listViewData = useTable('ListView', (state)=>state.rows);
17
+ const documentIds = listViewData.filter((entry)=>isDocumentRow(entry)).map((entry)=>entry.documentId);
18
+ const [{ query }] = useQueryParams();
19
+ const locale = query?.plugins?.i18n?.locale || undefined;
20
+ const response = useGetMappedEntriesInReleasesQuery({
21
+ contentTypeUid,
22
+ documentIds,
23
+ locale
24
+ }, {
25
+ skip: !contentTypeUid || documentIds.length === 0
26
+ });
27
+ const mappedEntriesInReleases = response.data || {};
28
+ return mappedEntriesInReleases?.[documentId] || [];
29
+ };
30
+ const addColumnToTableHook = ({ displayedHeaders, layout })=>{
31
+ const { options } = layout;
32
+ if (!options?.draftAndPublish) {
33
+ return {
34
+ displayedHeaders,
35
+ layout
36
+ };
37
+ }
38
+ return {
39
+ displayedHeaders: [
40
+ ...displayedHeaders,
41
+ {
42
+ searchable: false,
43
+ sortable: false,
44
+ name: 'releases',
45
+ label: {
46
+ id: 'content-releases.content-manager.list-view.releases.header',
47
+ defaultMessage: 'To be released in'
48
+ },
49
+ cellFormatter: (props, _, { model })=>/*#__PURE__*/ jsx(ReleaseListCell, {
50
+ ...props,
51
+ model: model
52
+ })
53
+ }
54
+ ],
55
+ layout
56
+ };
57
+ };
58
+ const ReleaseListCell = ({ documentId, model })=>{
59
+ const releases = useReleasesList(model, documentId);
60
+ const { formatMessage } = useIntl();
61
+ return /*#__PURE__*/ jsxs(Popover.Root, {
62
+ children: [
63
+ /*#__PURE__*/ jsx(Popover.Trigger, {
64
+ children: /*#__PURE__*/ jsx(Button, {
65
+ variant: "ghost",
66
+ onClick: (e)=>e.stopPropagation(),
67
+ // TODO: find a way in the DS to define the widht and height of the icon
68
+ endIcon: releases.length > 0 ? /*#__PURE__*/ jsx(CaretDown, {
69
+ width: "1.2rem",
70
+ height: "1.2rem"
71
+ }) : null,
72
+ children: /*#__PURE__*/ jsx(Typography, {
73
+ style: {
74
+ maxWidth: '252px',
75
+ cursor: 'pointer'
76
+ },
77
+ textColor: "neutral800",
78
+ fontWeight: "regular",
79
+ children: releases.length > 0 ? formatMessage({
80
+ id: 'content-releases.content-manager.list-view.releases-number',
81
+ defaultMessage: '{number} {number, plural, one {release} other {releases}}'
82
+ }, {
83
+ number: releases.length
84
+ }) : '-'
85
+ })
86
+ })
87
+ }),
88
+ /*#__PURE__*/ jsx(Popover.Content, {
89
+ children: /*#__PURE__*/ jsx("ul", {
90
+ children: releases.map(({ id, name })=>/*#__PURE__*/ jsx(Box, {
91
+ padding: 3,
92
+ tag: "li",
93
+ children: /*#__PURE__*/ jsx(Link, {
94
+ href: `/admin/plugins/content-releases/${id}`,
95
+ isExternal: false,
96
+ children: name
97
+ })
98
+ }, id))
99
+ })
100
+ })
101
+ ]
102
+ });
103
+ };
104
+
105
+ export { ReleaseListCell, addColumnToTableHook };
106
+ //# sourceMappingURL=ReleaseListCell.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleaseListCell.mjs","sources":["../../../admin/src/components/ReleaseListCell.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport { useTable, useQueryParams } from '@strapi/admin/strapi-admin';\r\nimport { ListFieldLayout, ListLayout } from '@strapi/content-manager/strapi-admin';\r\nimport { Box, Popover, Typography, Button, Link } from '@strapi/design-system';\r\nimport { CaretDown } from '@strapi/icons';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { useGetMappedEntriesInReleasesQuery } from '../services/release';\r\n\r\nimport type { Modules, UID } from '@strapi/types';\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * useReleasesList\r\n * -----------------------------------------------------------------------------------------------*/\r\ninterface QueryParams {\r\n plugins?: {\r\n i18n?: {\r\n locale: string;\r\n };\r\n };\r\n}\r\n\r\ntype DocumentRow = {\r\n id: string | number;\r\n documentId: Modules.Documents.ID;\r\n};\r\n\r\nconst isDocumentRow = (entry: { id: string | number }): entry is DocumentRow => {\r\n if ('documentId' in entry) {\r\n return typeof entry.documentId === 'string';\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst useReleasesList = (contentTypeUid: UID.ContentType, documentId: Modules.Documents.ID) => {\r\n const listViewData = useTable('ListView', (state) => state.rows);\r\n const documentIds = listViewData\r\n .filter((entry) => isDocumentRow(entry))\r\n .map((entry) => entry.documentId);\r\n const [{ query }] = useQueryParams();\r\n const locale = (query as QueryParams)?.plugins?.i18n?.locale || undefined;\r\n\r\n const response = useGetMappedEntriesInReleasesQuery(\r\n { contentTypeUid, documentIds, locale },\r\n { skip: !contentTypeUid || documentIds.length === 0 }\r\n );\r\n\r\n const mappedEntriesInReleases = response.data || {};\r\n\r\n return mappedEntriesInReleases?.[documentId] || [];\r\n};\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * addColumnToTableHook\r\n * -----------------------------------------------------------------------------------------------*/\r\n\r\ninterface AddColumnToTableHookArgs {\r\n layout: ListLayout;\r\n displayedHeaders: ListFieldLayout[];\r\n}\r\n\r\nconst addColumnToTableHook = ({ displayedHeaders, layout }: AddColumnToTableHookArgs) => {\r\n const { options } = layout;\r\n\r\n if (!options?.draftAndPublish) {\r\n return { displayedHeaders, layout };\r\n }\r\n\r\n return {\r\n displayedHeaders: [\r\n ...displayedHeaders,\r\n {\r\n searchable: false,\r\n sortable: false,\r\n name: 'releases',\r\n label: {\r\n id: 'content-releases.content-manager.list-view.releases.header',\r\n defaultMessage: 'To be released in',\r\n },\r\n cellFormatter: (\r\n props: Modules.Documents.AnyDocument,\r\n _: unknown,\r\n { model }: { model: UID.ContentType }\r\n ) => <ReleaseListCell {...props} model={model} />,\r\n },\r\n ],\r\n layout,\r\n };\r\n};\r\n\r\n/* -------------------------------------------------------------------------------------------------\r\n * ReleaseListCell\r\n * -----------------------------------------------------------------------------------------------*/\r\n\r\ninterface ReleaseListCellProps extends Modules.Documents.AnyDocument {\r\n documentId: Modules.Documents.ID;\r\n model: UID.ContentType;\r\n}\r\n\r\nconst ReleaseListCell = ({ documentId, model }: ReleaseListCellProps) => {\r\n const releases = useReleasesList(model, documentId);\r\n const { formatMessage } = useIntl();\r\n\r\n return (\r\n <Popover.Root>\r\n <Popover.Trigger>\r\n <Button\r\n variant=\"ghost\"\r\n onClick={(e: React.MouseEvent<HTMLElement>) => e.stopPropagation()}\r\n // TODO: find a way in the DS to define the widht and height of the icon\r\n endIcon={releases.length > 0 ? <CaretDown width=\"1.2rem\" height=\"1.2rem\" /> : null}\r\n >\r\n <Typography\r\n style={{ maxWidth: '252px', cursor: 'pointer' }}\r\n textColor=\"neutral800\"\r\n fontWeight=\"regular\"\r\n >\r\n {releases.length > 0\r\n ? formatMessage(\r\n {\r\n id: 'content-releases.content-manager.list-view.releases-number',\r\n defaultMessage: '{number} {number, plural, one {release} other {releases}}',\r\n },\r\n {\r\n number: releases.length,\r\n }\r\n )\r\n : '-'}\r\n </Typography>\r\n </Button>\r\n </Popover.Trigger>\r\n <Popover.Content>\r\n <ul>\r\n {releases.map(({ id, name }) => (\r\n <Box key={id} padding={3} tag=\"li\">\r\n <Link href={`/admin/plugins/content-releases/${id}`} isExternal={false}>\r\n {name}\r\n </Link>\r\n </Box>\r\n ))}\r\n </ul>\r\n </Popover.Content>\r\n </Popover.Root>\r\n );\r\n};\r\n\r\nexport { ReleaseListCell, addColumnToTableHook };\r\nexport type { ReleaseListCellProps };\r\n"],"names":["isDocumentRow","entry","documentId","useReleasesList","contentTypeUid","listViewData","useTable","state","rows","documentIds","filter","map","query","useQueryParams","locale","plugins","i18n","undefined","response","useGetMappedEntriesInReleasesQuery","skip","length","mappedEntriesInReleases","data","addColumnToTableHook","displayedHeaders","layout","options","draftAndPublish","searchable","sortable","name","label","id","defaultMessage","cellFormatter","props","_","model","_jsx","ReleaseListCell","releases","formatMessage","useIntl","_jsxs","Popover","Root","Trigger","Button","variant","onClick","e","stopPropagation","endIcon","CaretDown","width","height","Typography","style","maxWidth","cursor","textColor","fontWeight","number","Content","ul","Box","padding","tag","Link","href","isExternal"],"mappings":"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"}