@strapi/i18n 5.0.0-rc.11 → 5.0.0-rc.12

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.
@@ -244,7 +244,11 @@ const { useGetManyDraftRelationCountQuery } = relationsApi;
244
244
  const isErrorMessageDescriptor = (object) => {
245
245
  return typeof object === "object" && object !== null && "id" in object && "defaultMessage" in object;
246
246
  };
247
- const EntryValidationText = ({ status = "draft", validationErrors }) => {
247
+ const EntryValidationText = ({
248
+ status = "draft",
249
+ validationErrors,
250
+ action
251
+ }) => {
248
252
  const { formatMessage } = reactIntl.useIntl();
249
253
  const getErrorStr = (key, value) => {
250
254
  if (typeof value === "string") {
@@ -278,30 +282,63 @@ const EntryValidationText = ({ status = "draft", validationErrors }) => {
278
282
  ) })
279
283
  ] });
280
284
  }
281
- if (status === "published") {
282
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
283
- /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
284
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "success600", fontWeight: "bold", children: formatMessage({
285
- id: "content-manager.bulk-publish.already-published",
286
- defaultMessage: "Already Published"
287
- }) })
288
- ] });
289
- }
290
- if (status === "modified") {
291
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
292
- /* @__PURE__ */ jsxRuntime.jsx(icons.ArrowsCounterClockwise, { fill: "alternative600" }),
293
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
294
- id: "app.utils.ready-to-publish-changes",
295
- defaultMessage: "Ready to publish changes"
296
- }) })
297
- ] });
298
- }
285
+ const getStatusMessage = () => {
286
+ if (action === "bulk-publish") {
287
+ if (status === "published") {
288
+ return {
289
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
290
+ text: formatMessage({
291
+ id: "content-manager.bulk-publish.already-published",
292
+ defaultMessage: "Already Published"
293
+ }),
294
+ textColor: "success600",
295
+ fontWeight: "bold"
296
+ };
297
+ } else if (status === "modified") {
298
+ return {
299
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.ArrowsCounterClockwise, { fill: "alternative600" }),
300
+ text: formatMessage({
301
+ id: "app.utils.ready-to-publish-changes",
302
+ defaultMessage: "Ready to publish changes"
303
+ })
304
+ };
305
+ } else {
306
+ return {
307
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
308
+ text: formatMessage({
309
+ id: "app.utils.ready-to-publish",
310
+ defaultMessage: "Ready to publish"
311
+ })
312
+ };
313
+ }
314
+ } else {
315
+ if (status === "draft") {
316
+ return {
317
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
318
+ text: formatMessage({
319
+ id: "content-manager.bulk-unpublish.already-unpublished",
320
+ defaultMessage: "Already Unpublished"
321
+ }),
322
+ textColor: "success600",
323
+ fontWeight: "bold"
324
+ };
325
+ } else {
326
+ return {
327
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
328
+ text: formatMessage({
329
+ id: "app.utils.ready-to-unpublish-changes",
330
+ defaultMessage: "Ready to unpublish"
331
+ }),
332
+ textColor: "success600",
333
+ fontWeight: "bold"
334
+ };
335
+ }
336
+ }
337
+ };
338
+ const { icon, text, textColor = "success600", fontWeight = "normal" } = getStatusMessage();
299
339
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
300
- /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
301
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
302
- id: "app.utils.ready-to-publish",
303
- defaultMessage: "Ready to publish"
304
- }) })
340
+ icon,
341
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor, fontWeight, children: text })
305
342
  ] });
306
343
  };
307
344
  const BoldChunk = (chunks) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", children: chunks });
@@ -309,7 +346,8 @@ const BulkLocaleActionModal = ({
309
346
  headers,
310
347
  rows,
311
348
  localesMetadata,
312
- validationErrors = {}
349
+ validationErrors = {},
350
+ action
313
351
  }) => {
314
352
  const { formatMessage } = reactIntl.useIntl();
315
353
  const selectedRows = strapiAdmin.useTable(
@@ -322,22 +360,24 @@ const BulkLocaleActionModal = ({
322
360
  return acc;
323
361
  }, {});
324
362
  const localesWithErrors = Object.keys(validationErrors);
325
- const alreadyPublishedCount = selectedRows.filter(
363
+ const publishedCount = selectedRows.filter(
326
364
  ({ locale }) => currentStatusByLocale[locale] === "published"
327
365
  ).length;
328
- const readyToPublishCount = selectedRows.filter(
366
+ const draftCount = selectedRows.filter(
329
367
  ({ locale }) => (currentStatusByLocale[locale] === "draft" || currentStatusByLocale[locale] === "modified") && !localesWithErrors.includes(locale)
330
368
  ).length;
331
369
  const withErrorsCount = localesWithErrors.length;
370
+ const messageId = action === "bulk-publish" ? "content-manager.containers.list.selectedEntriesModal.selectedCount.publish" : "content-manager.containers.list.selectedEntriesModal.selectedCount.unpublish";
371
+ const defaultMessage = action === "bulk-publish" ? "<b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} already published. <b>{draftCount}</b> {draftCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action." : "<b>{draftCount}</b> {draftCount, plural, =0 {entries} one {entry} other {entries}} already unpublished. <b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} ready to unpublish.";
332
372
  return formatMessage(
333
373
  {
334
- id: "content-manager.containers.list.selectedEntriesModal.selectedCount",
335
- defaultMessage: "<b>{alreadyPublishedCount}</b> {alreadyPublishedCount, plural, =0 {entries} one {entry} other {entries}} already published. <b>{readyToPublishCount}</b> {readyToPublishCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action."
374
+ id: messageId,
375
+ defaultMessage
336
376
  },
337
377
  {
338
378
  withErrorsCount,
339
- readyToPublishCount,
340
- alreadyPublishedCount,
379
+ draftCount,
380
+ publishedCount,
341
381
  b: BoldChunk
342
382
  }
343
383
  );
@@ -369,7 +409,7 @@ const BulkLocaleActionModal = ({
369
409
  children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "span", variant: "pi", fontWeight: "bold", children: capitalize(status) })
370
410
  }
371
411
  ) }) }),
372
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(EntryValidationText, { validationErrors: error, status }) }),
412
+ /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(EntryValidationText, { validationErrors: error, status, action }) }),
373
413
  /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(
374
414
  designSystem.IconButton,
375
415
  {
@@ -549,23 +589,24 @@ const DeleteLocaleAction = ({
549
589
  }
550
590
  };
551
591
  };
552
- const BulkLocalePublishAction = ({
592
+ const BulkLocaleAction = ({
553
593
  document: baseDocument,
554
594
  documentId,
555
595
  model,
556
- collectionType
596
+ collectionType,
597
+ action
557
598
  }) => {
558
599
  const baseLocale = baseDocument?.locale ?? null;
559
600
  const [{ query: query$1 }] = strapiAdmin.useQueryParams();
560
601
  const params = React__namespace.useMemo(() => strapiAdmin$1.buildValidParams(query$1), [query$1]);
561
- const isPublishedTab = query$1.status === "published";
602
+ const isOnPublishedTab = query$1.status === "published";
562
603
  const { formatMessage } = reactIntl.useIntl();
563
604
  const { hasI18n, canPublish } = useI18n();
564
605
  const { toggleNotification } = strapiAdmin.useNotification();
565
606
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
566
607
  const [selectedRows, setSelectedRows] = React__namespace.useState([]);
567
608
  const [isDraftRelationConfirmationOpen, setIsDraftRelationConfirmationOpen] = React__namespace.useState(false);
568
- const { publishMany: publishManyAction } = strapiAdmin$1.unstable_useDocumentActions();
609
+ const { publishMany: publishManyAction, unpublishMany: unpublishManyAction } = strapiAdmin$1.unstable_useDocumentActions();
569
610
  const {
570
611
  document,
571
612
  meta: documentMeta,
@@ -633,12 +674,19 @@ const BulkLocalePublishAction = ({
633
674
  }, {});
634
675
  return [rowsFromMeta, errors];
635
676
  }, [document, documentMeta?.availableLocales, validate]);
636
- const localesToPublish = selectedRows.reduce((acc, selectedRow) => {
637
- if (selectedRow.status !== "published" && !Object.keys(validationErrors).includes(selectedRow.locale)) {
677
+ const isBulkPublish = action === "bulk-publish";
678
+ const localesForAction = selectedRows.reduce((acc, selectedRow) => {
679
+ const isValidLocale = (
680
+ // Validation errors are irrelevant if we are trying to unpublish
681
+ !isBulkPublish || !Object.keys(validationErrors).includes(selectedRow.locale)
682
+ );
683
+ const shouldAddLocale = isBulkPublish ? selectedRow.status !== "published" && isValidLocale : selectedRow.status !== "draft" && isValidLocale;
684
+ if (shouldAddLocale) {
638
685
  acc.push(selectedRow.locale);
639
686
  }
640
687
  return acc;
641
688
  }, []);
689
+ const enableDraftRelationsCount = false;
642
690
  const {
643
691
  data: draftRelationsCount = 0,
644
692
  isLoading: isDraftRelationsLoading,
@@ -647,10 +695,10 @@ const BulkLocalePublishAction = ({
647
695
  {
648
696
  model,
649
697
  documentIds: [documentId],
650
- locale: localesToPublish
698
+ locale: localesForAction
651
699
  },
652
700
  {
653
- skip: !documentId || localesToPublish.length === 0
701
+ skip: !enableDraftRelationsCount
654
702
  }
655
703
  );
656
704
  React__namespace.useEffect(() => {
@@ -676,7 +724,18 @@ const BulkLocalePublishAction = ({
676
724
  documentIds: [documentId],
677
725
  params: {
678
726
  ...params,
679
- locale: localesToPublish
727
+ locale: localesForAction
728
+ }
729
+ });
730
+ setSelectedRows([]);
731
+ };
732
+ const unpublish = async () => {
733
+ await unpublishManyAction({
734
+ model,
735
+ documentIds: [documentId],
736
+ params: {
737
+ ...params,
738
+ locale: localesForAction
680
739
  }
681
740
  });
682
741
  setSelectedRows([]);
@@ -684,14 +743,12 @@ const BulkLocalePublishAction = ({
684
743
  const handleAction = async () => {
685
744
  if (draftRelationsCount > 0) {
686
745
  setIsDraftRelationConfirmationOpen(true);
687
- } else {
746
+ } else if (isBulkPublish) {
688
747
  await publish();
748
+ } else {
749
+ await unpublish();
689
750
  }
690
751
  };
691
- const isUnpublish = document?.status === "published";
692
- if (isUnpublish) {
693
- console.warn(["I18N"], "Bulk locale unpublish modal not implemented");
694
- }
695
752
  if (isDraftRelationConfirmationOpen) {
696
753
  return {
697
754
  label: formatMessage({
@@ -729,18 +786,18 @@ const BulkLocalePublishAction = ({
729
786
  const hasPermission = selectedRows.map(({ locale }) => locale).every((locale) => canPublish.includes(locale));
730
787
  return {
731
788
  label: formatMessage({
732
- id: getTranslation("CMEditViewBulkLocale.publish-title"),
733
- defaultMessage: "Publish Multiple Locales"
789
+ id: getTranslation(`CMEditViewBulkLocale.${isBulkPublish ? "publish" : "unpublish"}-title`),
790
+ defaultMessage: `${isBulkPublish ? "Publish" : "Unpublish"} Multiple Locales`
734
791
  }),
735
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.ListPlus, {}),
736
- disabled: isPublishedTab || canPublish.length === 0,
792
+ variant: isBulkPublish ? "secondary" : "danger",
793
+ icon: isBulkPublish ? /* @__PURE__ */ jsxRuntime.jsx(icons.ListPlus, {}) : /* @__PURE__ */ jsxRuntime.jsx(icons.Cross, {}),
794
+ disabled: isOnPublishedTab || canPublish.length === 0,
737
795
  position: ["panel"],
738
- variant: "secondary",
739
796
  dialog: {
740
797
  type: "modal",
741
798
  title: formatMessage({
742
- id: getTranslation("CMEditViewBulkLocale.publish-title"),
743
- defaultMessage: "Publish Multiple Locales"
799
+ id: getTranslation(`CMEditViewBulkLocale.${isBulkPublish ? "publish" : "unpublish"}-title`),
800
+ defaultMessage: `${isBulkPublish ? "Publish" : "Unpublish"} Multiple Locales`
744
801
  }),
745
802
  content: () => {
746
803
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -759,7 +816,8 @@ const BulkLocalePublishAction = ({
759
816
  validationErrors,
760
817
  headers,
761
818
  rows,
762
- localesMetadata
819
+ localesMetadata,
820
+ action: action ?? "bulk-publish"
763
821
  }
764
822
  )
765
823
  }
@@ -769,18 +827,24 @@ const BulkLocalePublishAction = ({
769
827
  designSystem.Button,
770
828
  {
771
829
  loading: isDraftRelationsLoading,
772
- disabled: !hasPermission || localesToPublish.length === 0,
830
+ disabled: !hasPermission || localesForAction.length === 0,
773
831
  variant: "default",
774
832
  onClick: handleAction,
775
833
  children: formatMessage({
776
- id: "app.utils.publish",
777
- defaultMessage: "Publish"
834
+ id: isBulkPublish ? "app.utils.publish" : "app.utils.unpublish",
835
+ defaultMessage: isBulkPublish ? "Publish" : "Unpublish"
778
836
  })
779
837
  }
780
838
  ) })
781
839
  }
782
840
  };
783
841
  };
842
+ const BulkLocalePublishAction = (props) => {
843
+ return BulkLocaleAction({ action: "bulk-publish", ...props });
844
+ };
845
+ const BulkLocaleUnpublishAction = (props) => {
846
+ return BulkLocaleAction({ action: "bulk-unpublish", ...props });
847
+ };
784
848
  const StyledTrash = styledComponents.styled(icons.Trash)`
785
849
  path {
786
850
  fill: currentColor;
@@ -1000,54 +1064,13 @@ const LocaleListCell = ({
1000
1064
  return locale.name;
1001
1065
  }).toSorted((a, b) => formatter.compare(a, b));
1002
1066
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { children: [
1003
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsxs(
1004
- ActionWrapper,
1005
- {
1006
- minWidth: "100%",
1007
- alignItems: "center",
1008
- justifyContent: "center",
1009
- height: "3.2rem",
1010
- width: "3.2rem",
1011
- children: [
1012
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", ellipsis: true, children: localesForDocument.join(", ") }),
1013
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { children: /* @__PURE__ */ jsxRuntime.jsx(icons.CaretDown, {}) })
1014
- ]
1015
- }
1016
- ) }) }),
1067
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "ghost", type: "button", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { minWidth: "100%", alignItems: "center", justifyContent: "center", fontWeight: "regular", children: [
1068
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", ellipsis: true, marginRight: 2, children: localesForDocument.join(", ") }),
1069
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { children: /* @__PURE__ */ jsxRuntime.jsx(icons.CaretDown, { width: "1.2rem", height: "1.2rem" }) })
1070
+ ] }) }) }),
1017
1071
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { sideOffset: 16, children: /* @__PURE__ */ jsxRuntime.jsx("ul", { children: localesForDocument.map((name) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 3, tag: "li", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: name }) }, name)) }) })
1018
1072
  ] });
1019
1073
  };
1020
- const Button = styledComponents.styled.button`
1021
- width: 100%;
1022
-
1023
- svg {
1024
- > g,
1025
- path {
1026
- fill: ${({ theme }) => theme.colors.neutral500};
1027
- }
1028
- }
1029
- &:hover {
1030
- svg {
1031
- > g,
1032
- path {
1033
- fill: ${({ theme }) => theme.colors.neutral600};
1034
- }
1035
- }
1036
- }
1037
- &:active {
1038
- svg {
1039
- > g,
1040
- path {
1041
- fill: ${({ theme }) => theme.colors.neutral400};
1042
- }
1043
- }
1044
- }
1045
- `;
1046
- const ActionWrapper = styledComponents.styled(designSystem.Flex)`
1047
- svg {
1048
- height: 0.4rem;
1049
- }
1050
- `;
1051
1074
  const addColumnToTableHook = ({ displayedHeaders, layout }) => {
1052
1075
  const { options } = layout;
1053
1076
  const isFieldLocalized = doesPluginOptionsHaveI18nLocalized(options) ? options.i18n.localized : false;
@@ -1245,7 +1268,7 @@ const index = {
1245
1268
  },
1246
1269
  id: "internationalization",
1247
1270
  to: "internationalization",
1248
- Component: () => Promise.resolve().then(() => require("./SettingsPage-C0l7c5fn.js")).then((mod) => ({ default: mod.ProtectedSettingsPage })),
1271
+ Component: () => Promise.resolve().then(() => require("./SettingsPage-C-1h_H38.js")).then((mod) => ({ default: mod.ProtectedSettingsPage })),
1249
1272
  permissions: PERMISSIONS.accessMain
1250
1273
  });
1251
1274
  const contentManager = app.getPlugin("content-manager");
@@ -1257,6 +1280,7 @@ const index = {
1257
1280
  });
1258
1281
  contentManager.apis.addDocumentAction((actions) => {
1259
1282
  actions.splice(2, 0, BulkLocalePublishAction);
1283
+ actions.splice(5, 0, BulkLocaleUnpublishAction);
1260
1284
  return actions;
1261
1285
  });
1262
1286
  contentManager.injectComponent("listView", "actions", {
@@ -1362,7 +1386,7 @@ const index = {
1362
1386
  async registerTrads({ locales }) {
1363
1387
  const importedTrads = await Promise.all(
1364
1388
  locales.map((locale) => {
1365
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/de.json": () => Promise.resolve().then(() => require("./de-DtWiGdHl.js")), "./translations/dk.json": () => Promise.resolve().then(() => require("./dk-D8C-casx.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-BsOU9o5z.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-DS-XFGSw.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-BTjekDpq.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-DmcGUBQ3.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-Cn5RYonZ.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BMBgVL3s.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-CarUU76c.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-DSHIXAa3.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CukOviB0.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
1389
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/de.json": () => Promise.resolve().then(() => require("./de-DtWiGdHl.js")), "./translations/dk.json": () => Promise.resolve().then(() => require("./dk-D8C-casx.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-CwI88-PP.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-DS-XFGSw.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-BTjekDpq.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-DmcGUBQ3.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-Cn5RYonZ.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BMBgVL3s.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-CarUU76c.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-DSHIXAa3.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CukOviB0.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
1366
1390
  return {
1367
1391
  data: prefixPluginTranslations(data, pluginId),
1368
1392
  locale
@@ -1386,4 +1410,4 @@ exports.useDeleteLocaleMutation = useDeleteLocaleMutation;
1386
1410
  exports.useGetDefaultLocalesQuery = useGetDefaultLocalesQuery;
1387
1411
  exports.useGetLocalesQuery = useGetLocalesQuery;
1388
1412
  exports.useUpdateLocaleMutation = useUpdateLocaleMutation;
1389
- //# sourceMappingURL=index-C0i3v7QQ.js.map
1413
+ //# sourceMappingURL=index-jpk39Rxo.js.map