@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,332 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var dateFns = require('date-fns');
7
+ var dateFnsTz = require('date-fns-tz');
8
+ var formik = require('formik');
9
+ var reactIntl = require('react-intl');
10
+ var reactRouterDom = require('react-router-dom');
11
+ var pluginId = require('../pluginId.js');
12
+ var time = require('../utils/time.js');
13
+ var schemas = require('../validation/schemas.js');
14
+
15
+ function _interopNamespace(e) {
16
+ if (e && e.__esModule) return e;
17
+ var n = Object.create(null);
18
+ if (e) {
19
+ Object.keys(e).forEach(function (k) {
20
+ if (k !== 'default') {
21
+ var d = Object.getOwnPropertyDescriptor(e, k);
22
+ Object.defineProperty(n, k, d.get ? d : {
23
+ enumerable: true,
24
+ get: function () { return e[k]; }
25
+ });
26
+ }
27
+ });
28
+ }
29
+ n.default = e;
30
+ return Object.freeze(n);
31
+ }
32
+
33
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
34
+
35
+ const ReleaseModal = ({ handleClose, open, handleSubmit, initialValues, isLoading = false })=>{
36
+ const { formatMessage } = reactIntl.useIntl();
37
+ const { pathname } = reactRouterDom.useLocation();
38
+ const isCreatingRelease = pathname === `/plugins/${pluginId.pluginId}`;
39
+ // Set default first timezone from the list if no system timezone detected
40
+ const { timezoneList, systemTimezone = {
41
+ value: 'UTC+00:00-Africa/Abidjan '
42
+ } } = time.getTimezones(initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : new Date());
43
+ /**
44
+ * Generate scheduled time using selected date, time and timezone
45
+ */ const getScheduledTimestamp = (values)=>{
46
+ const { date, time, timezone } = values;
47
+ if (!date || !time || !timezone) return null;
48
+ const timezoneWithoutOffset = timezone.split('&')[1];
49
+ return dateFnsTz.zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);
50
+ };
51
+ /**
52
+ * Get timezone with offset to show the selected value in the dropdown
53
+ */ const getTimezoneWithOffset = ()=>{
54
+ const currentTimezone = timezoneList.find((timezone)=>timezone.value.split('&')[1] === initialValues.timezone);
55
+ return currentTimezone?.value || systemTimezone.value;
56
+ };
57
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Root, {
58
+ open: open,
59
+ onOpenChange: handleClose,
60
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Content, {
61
+ children: [
62
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Header, {
63
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Title, {
64
+ children: formatMessage({
65
+ id: 'content-releases.modal.title',
66
+ defaultMessage: '{isCreatingRelease, select, true {New release} other {Edit release}}'
67
+ }, {
68
+ isCreatingRelease: isCreatingRelease
69
+ })
70
+ })
71
+ }),
72
+ /*#__PURE__*/ jsxRuntime.jsx(formik.Formik, {
73
+ onSubmit: (values)=>{
74
+ handleSubmit({
75
+ ...values,
76
+ timezone: values.timezone ? values.timezone.split('&')[1] : null,
77
+ scheduledAt: values.isScheduled ? getScheduledTimestamp(values) : null
78
+ });
79
+ },
80
+ initialValues: {
81
+ ...initialValues,
82
+ timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value
83
+ },
84
+ validationSchema: schemas.RELEASE_SCHEMA,
85
+ validateOnChange: false,
86
+ children: ({ values, errors, handleChange, setFieldValue })=>{
87
+ return /*#__PURE__*/ jsxRuntime.jsxs(formik.Form, {
88
+ children: [
89
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Body, {
90
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
91
+ direction: "column",
92
+ alignItems: "stretch",
93
+ gap: 6,
94
+ children: [
95
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
96
+ name: "name",
97
+ error: errors.name && formatMessage({
98
+ id: errors.name,
99
+ defaultMessage: errors.name
100
+ }),
101
+ required: true,
102
+ children: [
103
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
104
+ children: formatMessage({
105
+ id: 'content-releases.modal.form.input.label.release-name',
106
+ defaultMessage: 'Name'
107
+ })
108
+ }),
109
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.TextInput, {
110
+ type: "text",
111
+ value: values.name,
112
+ onChange: handleChange
113
+ }),
114
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {})
115
+ ]
116
+ }),
117
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
118
+ width: "max-content",
119
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Checkbox, {
120
+ name: "isScheduled",
121
+ checked: values.isScheduled,
122
+ onCheckedChange: (checked)=>{
123
+ setFieldValue('isScheduled', checked);
124
+ if (!checked) {
125
+ // Clear scheduling info from a release on unchecking schedule release, which reset scheduling info in DB
126
+ setFieldValue('date', null);
127
+ setFieldValue('time', '');
128
+ setFieldValue('timezone', null);
129
+ } else {
130
+ // On ticking back schedule release date, time and timezone should be restored to the initial state
131
+ setFieldValue('date', initialValues.date);
132
+ setFieldValue('time', initialValues.time);
133
+ setFieldValue('timezone', initialValues.timezone ?? systemTimezone?.value);
134
+ }
135
+ },
136
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
137
+ textColor: values.isScheduled ? 'primary600' : 'neutral800',
138
+ fontWeight: values.isScheduled ? 'semiBold' : 'regular',
139
+ children: formatMessage({
140
+ id: 'modal.form.input.label.schedule-release',
141
+ defaultMessage: 'Schedule release'
142
+ })
143
+ })
144
+ })
145
+ }),
146
+ values.isScheduled && /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
147
+ children: [
148
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
149
+ gap: 4,
150
+ alignItems: "start",
151
+ direction: {
152
+ initial: 'column',
153
+ medium: 'row'
154
+ },
155
+ wrap: "wrap",
156
+ children: [
157
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
158
+ width: "100%",
159
+ flex: 1,
160
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
161
+ name: "date",
162
+ error: errors.date && formatMessage({
163
+ id: errors.date,
164
+ defaultMessage: errors.date
165
+ }),
166
+ required: true,
167
+ children: [
168
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
169
+ children: formatMessage({
170
+ id: 'content-releases.modal.form.input.label.date',
171
+ defaultMessage: 'Date'
172
+ })
173
+ }),
174
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.DatePicker, {
175
+ onChange: (date)=>{
176
+ const isoFormatDate = date ? dateFns.formatISO(date, {
177
+ representation: 'date'
178
+ }) : null;
179
+ setFieldValue('date', isoFormatDate);
180
+ },
181
+ clearLabel: formatMessage({
182
+ id: 'content-releases.modal.form.input.clearLabel',
183
+ defaultMessage: 'Clear'
184
+ }),
185
+ onClear: ()=>{
186
+ setFieldValue('date', null);
187
+ },
188
+ value: values.date ? new Date(values.date) : new Date(),
189
+ minDate: dateFnsTz.utcToZonedTime(new Date(), values.timezone.split('&')[1])
190
+ }),
191
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {})
192
+ ]
193
+ })
194
+ }),
195
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
196
+ width: "100%",
197
+ flex: 1,
198
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
199
+ name: "time",
200
+ error: errors.time && formatMessage({
201
+ id: errors.time,
202
+ defaultMessage: errors.time
203
+ }),
204
+ required: true,
205
+ children: [
206
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
207
+ children: formatMessage({
208
+ id: 'content-releases.modal.form.input.label.time',
209
+ defaultMessage: 'Time'
210
+ })
211
+ }),
212
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.TimePicker, {
213
+ onChange: (time)=>{
214
+ setFieldValue('time', time);
215
+ },
216
+ clearLabel: formatMessage({
217
+ id: 'content-releases.modal.form.input.clearLabel',
218
+ defaultMessage: 'Clear'
219
+ }),
220
+ onClear: ()=>{
221
+ setFieldValue('time', '');
222
+ },
223
+ value: values.time || undefined
224
+ }),
225
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {})
226
+ ]
227
+ })
228
+ })
229
+ ]
230
+ }),
231
+ /*#__PURE__*/ jsxRuntime.jsx(TimezoneComponent, {
232
+ timezoneOptions: timezoneList
233
+ })
234
+ ]
235
+ })
236
+ ]
237
+ })
238
+ }),
239
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Footer, {
240
+ children: [
241
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Close, {
242
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
243
+ variant: "tertiary",
244
+ name: "cancel",
245
+ children: formatMessage({
246
+ id: 'cancel',
247
+ defaultMessage: 'Cancel'
248
+ })
249
+ })
250
+ }),
251
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
252
+ name: "submit",
253
+ loading: isLoading,
254
+ type: "submit",
255
+ children: formatMessage({
256
+ id: 'content-releases.modal.form.button.submit',
257
+ defaultMessage: '{isCreatingRelease, select, true {Continue} other {Save}}'
258
+ }, {
259
+ isCreatingRelease: isCreatingRelease
260
+ })
261
+ })
262
+ ]
263
+ })
264
+ ]
265
+ });
266
+ }
267
+ })
268
+ ]
269
+ })
270
+ });
271
+ };
272
+ const TimezoneComponent = ({ timezoneOptions })=>{
273
+ const { values, errors, setFieldValue } = formik.useFormikContext();
274
+ const { formatMessage } = reactIntl.useIntl();
275
+ const [timezoneList, setTimezoneList] = React__namespace.useState(timezoneOptions);
276
+ React__namespace.useEffect(()=>{
277
+ if (values.date) {
278
+ // Update the timezone offset which varies with DST based on the date selected
279
+ const { timezoneList } = time.getTimezones(new Date(values.date));
280
+ setTimezoneList(timezoneList);
281
+ const updatedTimezone = values.timezone && timezoneList.find((tz)=>tz.value.split('&')[1] === values.timezone.split('&')[1]);
282
+ if (updatedTimezone) {
283
+ setFieldValue('timezone', updatedTimezone.value);
284
+ }
285
+ }
286
+ }, [
287
+ setFieldValue,
288
+ values.date,
289
+ values.timezone
290
+ ]);
291
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
292
+ name: "timezone",
293
+ error: errors.timezone && formatMessage({
294
+ id: errors.timezone,
295
+ defaultMessage: errors.timezone
296
+ }),
297
+ required: true,
298
+ children: [
299
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
300
+ children: formatMessage({
301
+ id: 'content-releases.modal.form.input.label.timezone',
302
+ defaultMessage: 'Timezone'
303
+ })
304
+ }),
305
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Combobox, {
306
+ autocomplete: {
307
+ type: 'list',
308
+ filter: 'contains'
309
+ },
310
+ value: values.timezone || undefined,
311
+ textValue: values.timezone ? values.timezone.replace(/&/, ' ') : undefined,
312
+ onChange: (timezone)=>{
313
+ setFieldValue('timezone', timezone);
314
+ },
315
+ onTextValueChange: (timezone)=>{
316
+ setFieldValue('timezone', timezone);
317
+ },
318
+ onClear: ()=>{
319
+ setFieldValue('timezone', '');
320
+ },
321
+ children: timezoneList.map((timezone)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.ComboboxOption, {
322
+ value: timezone.value,
323
+ children: timezone.value.replace(/&/, ' ')
324
+ }, timezone.value))
325
+ }),
326
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {})
327
+ ]
328
+ });
329
+ };
330
+
331
+ exports.ReleaseModal = ReleaseModal;
332
+ //# sourceMappingURL=ReleaseModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleaseModal.js","sources":["../../../admin/src/components/ReleaseModal.tsx"],"sourcesContent":["import * as React from 'react';\r\n\r\nimport {\r\n Button,\r\n Modal,\r\n TextInput,\r\n Typography,\r\n Checkbox,\r\n Flex,\r\n Box,\r\n DatePicker,\r\n TimePicker,\r\n Combobox,\r\n ComboboxOption,\r\n Field,\r\n} from '@strapi/design-system';\r\nimport { formatISO } from 'date-fns';\r\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\r\nimport { Formik, Form, useFormikContext } from 'formik';\r\nimport { useIntl } from 'react-intl';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { pluginId } from '../pluginId';\r\nimport { getTimezones } from '../utils/time';\r\nimport { RELEASE_SCHEMA } from '../validation/schemas';\r\n\r\nexport interface FormValues {\r\n name: string;\r\n date?: string;\r\n time: string;\r\n timezone: string | null;\r\n isScheduled?: boolean;\r\n scheduledAt: Date | null;\r\n}\r\n\r\ninterface ReleaseModalProps {\r\n handleClose: () => void;\r\n handleSubmit: (values: FormValues) => void;\r\n isLoading?: boolean;\r\n initialValues: FormValues;\r\n open?: boolean;\r\n}\r\n\r\nexport const ReleaseModal = ({\r\n handleClose,\r\n open,\r\n handleSubmit,\r\n initialValues,\r\n isLoading = false,\r\n}: ReleaseModalProps) => {\r\n const { formatMessage } = useIntl();\r\n const { pathname } = useLocation();\r\n const isCreatingRelease = pathname === `/plugins/${pluginId}`;\r\n // Set default first timezone from the list if no system timezone detected\r\n const { timezoneList, systemTimezone = { value: 'UTC+00:00-Africa/Abidjan ' } } = getTimezones(\r\n initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : new Date()\r\n );\r\n\r\n /**\r\n * Generate scheduled time using selected date, time and timezone\r\n */\r\n const getScheduledTimestamp = (values: FormValues) => {\r\n const { date, time, timezone } = values;\r\n if (!date || !time || !timezone) return null;\r\n const timezoneWithoutOffset = timezone.split('&')[1];\r\n return zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);\r\n };\r\n\r\n /**\r\n * Get timezone with offset to show the selected value in the dropdown\r\n */\r\n const getTimezoneWithOffset = () => {\r\n const currentTimezone = timezoneList.find(\r\n (timezone) => timezone.value.split('&')[1] === initialValues.timezone\r\n );\r\n return currentTimezone?.value || systemTimezone.value;\r\n };\r\n\r\n return (\r\n <Modal.Root open={open} onOpenChange={handleClose}>\r\n <Modal.Content>\r\n <Modal.Header>\r\n <Modal.Title>\r\n {formatMessage(\r\n {\r\n id: 'content-releases.modal.title',\r\n defaultMessage:\r\n '{isCreatingRelease, select, true {New release} other {Edit release}}',\r\n },\r\n { isCreatingRelease: isCreatingRelease }\r\n )}\r\n </Modal.Title>\r\n </Modal.Header>\r\n <Formik\r\n onSubmit={(values) => {\r\n handleSubmit({\r\n ...values,\r\n timezone: values.timezone ? values.timezone.split('&')[1] : null,\r\n scheduledAt: values.isScheduled ? getScheduledTimestamp(values) : null,\r\n });\r\n }}\r\n initialValues={{\r\n ...initialValues,\r\n timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value,\r\n }}\r\n validationSchema={RELEASE_SCHEMA}\r\n validateOnChange={false}\r\n >\r\n {({ values, errors, handleChange, setFieldValue }) => {\r\n return (\r\n <Form>\r\n <Modal.Body>\r\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\r\n <Field.Root\r\n name=\"name\"\r\n error={\r\n errors.name &&\r\n formatMessage({ id: errors.name, defaultMessage: errors.name })\r\n }\r\n required\r\n >\r\n <Field.Label>\r\n {formatMessage({\r\n id: 'content-releases.modal.form.input.label.release-name',\r\n defaultMessage: 'Name',\r\n })}\r\n </Field.Label>\r\n <TextInput type=\"text\" value={values.name} onChange={handleChange} />\r\n <Field.Error />\r\n </Field.Root>\r\n <Box width=\"max-content\">\r\n <Checkbox\r\n name=\"isScheduled\"\r\n checked={values.isScheduled}\r\n onCheckedChange={(checked) => {\r\n setFieldValue('isScheduled', checked);\r\n if (!checked) {\r\n // Clear scheduling info from a release on unchecking schedule release, which reset scheduling info in DB\r\n setFieldValue('date', null);\r\n setFieldValue('time', '');\r\n setFieldValue('timezone', null);\r\n } else {\r\n // On ticking back schedule release date, time and timezone should be restored to the initial state\r\n setFieldValue('date', initialValues.date);\r\n setFieldValue('time', initialValues.time);\r\n setFieldValue(\r\n 'timezone',\r\n initialValues.timezone ?? systemTimezone?.value\r\n );\r\n }\r\n }}\r\n >\r\n <Typography\r\n textColor={values.isScheduled ? 'primary600' : 'neutral800'}\r\n fontWeight={values.isScheduled ? 'semiBold' : 'regular'}\r\n >\r\n {formatMessage({\r\n id: 'modal.form.input.label.schedule-release',\r\n defaultMessage: 'Schedule release',\r\n })}\r\n </Typography>\r\n </Checkbox>\r\n </Box>\r\n {values.isScheduled && (\r\n <>\r\n <Flex\r\n gap={4}\r\n alignItems=\"start\"\r\n direction={{ initial: 'column', medium: 'row' }}\r\n wrap=\"wrap\"\r\n >\r\n <Box width=\"100%\" flex={1}>\r\n <Field.Root\r\n name=\"date\"\r\n error={\r\n errors.date &&\r\n formatMessage({ id: errors.date, defaultMessage: errors.date })\r\n }\r\n required\r\n >\r\n <Field.Label>\r\n {formatMessage({\r\n id: 'content-releases.modal.form.input.label.date',\r\n defaultMessage: 'Date',\r\n })}\r\n </Field.Label>\r\n <DatePicker\r\n onChange={(date) => {\r\n const isoFormatDate = date\r\n ? formatISO(date, { representation: 'date' })\r\n : null;\r\n setFieldValue('date', isoFormatDate);\r\n }}\r\n clearLabel={formatMessage({\r\n id: 'content-releases.modal.form.input.clearLabel',\r\n defaultMessage: 'Clear',\r\n })}\r\n onClear={() => {\r\n setFieldValue('date', null);\r\n }}\r\n value={values.date ? new Date(values.date) : new Date()}\r\n minDate={utcToZonedTime(new Date(), values.timezone.split('&')[1])}\r\n />\r\n <Field.Error />\r\n </Field.Root>\r\n </Box>\r\n <Box width=\"100%\" flex={1}>\r\n <Field.Root\r\n name=\"time\"\r\n error={\r\n errors.time &&\r\n formatMessage({ id: errors.time, defaultMessage: errors.time })\r\n }\r\n required\r\n >\r\n <Field.Label>\r\n {formatMessage({\r\n id: 'content-releases.modal.form.input.label.time',\r\n defaultMessage: 'Time',\r\n })}\r\n </Field.Label>\r\n <TimePicker\r\n onChange={(time) => {\r\n setFieldValue('time', time);\r\n }}\r\n clearLabel={formatMessage({\r\n id: 'content-releases.modal.form.input.clearLabel',\r\n defaultMessage: 'Clear',\r\n })}\r\n onClear={() => {\r\n setFieldValue('time', '');\r\n }}\r\n value={values.time || undefined}\r\n />\r\n <Field.Error />\r\n </Field.Root>\r\n </Box>\r\n </Flex>\r\n <TimezoneComponent timezoneOptions={timezoneList} />\r\n </>\r\n )}\r\n </Flex>\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Modal.Close>\r\n <Button variant=\"tertiary\" name=\"cancel\">\r\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\r\n </Button>\r\n </Modal.Close>\r\n <Button name=\"submit\" loading={isLoading} type=\"submit\">\r\n {formatMessage(\r\n {\r\n id: 'content-releases.modal.form.button.submit',\r\n defaultMessage: '{isCreatingRelease, select, true {Continue} other {Save}}',\r\n },\r\n { isCreatingRelease: isCreatingRelease }\r\n )}\r\n </Button>\r\n </Modal.Footer>\r\n </Form>\r\n );\r\n }}\r\n </Formik>\r\n </Modal.Content>\r\n </Modal.Root>\r\n );\r\n};\r\n\r\n/**\r\n * Generates the list of timezones and user's current timezone(system timezone)\r\n */\r\ninterface ITimezoneOption {\r\n offset: string;\r\n value: string;\r\n}\r\n\r\nconst TimezoneComponent = ({ timezoneOptions }: { timezoneOptions: ITimezoneOption[] }) => {\r\n const { values, errors, setFieldValue } = useFormikContext<FormValues>();\r\n const { formatMessage } = useIntl();\r\n const [timezoneList, setTimezoneList] = React.useState<ITimezoneOption[]>(timezoneOptions);\r\n\r\n React.useEffect(() => {\r\n if (values.date) {\r\n // Update the timezone offset which varies with DST based on the date selected\r\n const { timezoneList } = getTimezones(new Date(values.date));\r\n setTimezoneList(timezoneList);\r\n\r\n const updatedTimezone =\r\n values.timezone &&\r\n timezoneList.find((tz) => tz.value.split('&')[1] === values.timezone!.split('&')[1]);\r\n if (updatedTimezone) {\r\n setFieldValue('timezone', updatedTimezone!.value);\r\n }\r\n }\r\n }, [setFieldValue, values.date, values.timezone]);\r\n\r\n return (\r\n <Field.Root\r\n name=\"timezone\"\r\n error={\r\n errors.timezone && formatMessage({ id: errors.timezone, defaultMessage: errors.timezone })\r\n }\r\n required\r\n >\r\n <Field.Label>\r\n {formatMessage({\r\n id: 'content-releases.modal.form.input.label.timezone',\r\n defaultMessage: 'Timezone',\r\n })}\r\n </Field.Label>\r\n <Combobox\r\n autocomplete={{ type: 'list', filter: 'contains' }}\r\n value={values.timezone || undefined}\r\n textValue={values.timezone ? values.timezone.replace(/&/, ' ') : undefined} // textValue is required to show the updated DST timezone\r\n onChange={(timezone) => {\r\n setFieldValue('timezone', timezone);\r\n }}\r\n onTextValueChange={(timezone) => {\r\n setFieldValue('timezone', timezone);\r\n }}\r\n onClear={() => {\r\n setFieldValue('timezone', '');\r\n }}\r\n >\r\n {timezoneList.map((timezone) => (\r\n <ComboboxOption key={timezone.value} value={timezone.value}>\r\n {timezone.value.replace(/&/, ' ')}\r\n </ComboboxOption>\r\n ))}\r\n </Combobox>\r\n <Field.Error />\r\n </Field.Root>\r\n );\r\n};\r\n"],"names":["ReleaseModal","handleClose","open","handleSubmit","initialValues","isLoading","formatMessage","useIntl","pathname","useLocation","isCreatingRelease","pluginId","timezoneList","systemTimezone","value","getTimezones","scheduledAt","Date","getScheduledTimestamp","values","date","time","timezone","timezoneWithoutOffset","split","zonedTimeToUtc","getTimezoneWithOffset","currentTimezone","find","_jsx","Modal","Root","onOpenChange","_jsxs","Content","Header","Title","id","defaultMessage","Formik","onSubmit","isScheduled","validationSchema","RELEASE_SCHEMA","validateOnChange","errors","handleChange","setFieldValue","Form","Body","Flex","direction","alignItems","gap","Field","name","error","required","Label","TextInput","type","onChange","Error","Box","width","Checkbox","checked","onCheckedChange","Typography","textColor","fontWeight","_Fragment","initial","medium","wrap","flex","DatePicker","isoFormatDate","formatISO","representation","clearLabel","onClear","minDate","utcToZonedTime","TimePicker","undefined","TimezoneComponent","timezoneOptions","Footer","Close","Button","variant","loading","useFormikContext","setTimezoneList","React","useState","useEffect","updatedTimezone","tz","Combobox","autocomplete","filter","textValue","replace","onTextValueChange","map","ComboboxOption"],"mappings":"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"}