{"version":3,"file":"schemas.mjs","sources":["../../../admin/src/validation/schemas.ts"],"sourcesContent":["import { translatedErrors } from '@strapi/admin/strapi-admin';\nimport { zonedTimeToUtc } from 'date-fns-tz';\nimport * as yup from 'yup';\n\n/**\n * FormikErrors type enforce us to always return a string as error.\n * We need these errors to be translated, so we need to create a hook to be able to use the formatMessage function.\n */\nexport const RELEASE_SCHEMA = yup\n  .object()\n  .shape({\n    name: yup.string().trim().required(translatedErrors.required.id).nullable(),\n    scheduledAt: yup.string().nullable(),\n    isScheduled: yup.boolean().optional(),\n    time: yup\n      .string()\n      .when('isScheduled', {\n        is: true,\n        then: yup.string().trim().required(translatedErrors.required.id),\n        otherwise: yup.string().nullable(),\n      })\n      .test(\n        'time-in-future-if-today',\n        'content-releases.modal.form.time.has-passed',\n        function (time) {\n          const { date, timezone } = this.parent;\n\n          if (!date || !timezone || !time) {\n            return true;\n          }\n\n          // Timezone is in format \"UTC&Europe/Paris\", so we get the region part for the dates functions\n          const region = timezone.split('&')[1];\n\n          const selectedTime = zonedTimeToUtc(`${date} ${time}`, region);\n          const now = new Date();\n\n          return selectedTime > now;\n        }\n      ),\n    timezone: yup.string().when('isScheduled', {\n      is: true,\n      then: yup.string().required(translatedErrors.required.id).nullable(),\n      otherwise: yup.string().nullable(),\n    }),\n    date: yup.string().when('isScheduled', {\n      is: true,\n      then: yup.string().required(translatedErrors.required.id).nullable(),\n      otherwise: yup.string().nullable(),\n    }),\n  })\n  .required()\n  .noUnknown();\n\nexport const SETTINGS_SCHEMA = yup\n  .object()\n  .shape({\n    defaultTimezone: yup.string().nullable().default(null),\n  })\n  .required()\n  .noUnknown();\n"],"names":["RELEASE_SCHEMA","yup","object","shape","name","string","trim","required","translatedErrors","id","nullable","scheduledAt","isScheduled","boolean","optional","time","when","is","then","otherwise","test","date","timezone","parent","region","split","selectedTime","zonedTimeToUtc","now","Date","noUnknown","SETTINGS_SCHEMA","defaultTimezone","default"],"mappings":";;;;AAIA;;;AAGC,IACM,MAAMA,cAAAA,GAAiBC,IAC3BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,GAAAA,CAAII,MAAM,EAAA,CAAGC,IAAI,EAAA,CAAGC,QAAQ,CAACC,gBAAAA,CAAiBD,QAAQ,CAACE,EAAE,CAAA,CAAEC,QAAQ,EAAA;IACzEC,WAAAA,EAAaV,GAAAA,CAAII,MAAM,EAAA,CAAGK,QAAQ,EAAA;IAClCE,WAAAA,EAAaX,GAAAA,CAAIY,OAAO,EAAA,CAAGC,QAAQ,EAAA;AACnCC,IAAAA,IAAAA,EAAMd,GAAAA,CACHI,MAAM,EAAA,CACNW,IAAI,CAAC,aAAA,EAAe;QACnBC,EAAAA,EAAI,IAAA;QACJC,IAAAA,EAAMjB,GAAAA,CAAII,MAAM,EAAA,CAAGC,IAAI,EAAA,CAAGC,QAAQ,CAACC,gBAAAA,CAAiBD,QAAQ,CAACE,EAAE,CAAA;QAC/DU,SAAAA,EAAWlB,GAAAA,CAAII,MAAM,EAAA,CAAGK,QAAQ;AAClC,KAAA,CAAA,CACCU,IAAI,CACH,yBAAA,EACA,6CAAA,EACA,SAAUL,IAAI,EAAA;QACZ,MAAM,EAAEM,IAAI,EAAEC,QAAQ,EAAE,GAAG,IAAI,CAACC,MAAM;AAEtC,QAAA,IAAI,CAACF,IAAAA,IAAQ,CAACC,QAAAA,IAAY,CAACP,IAAAA,EAAM;YAC/B,OAAO,IAAA;AACT,QAAA;;AAGA,QAAA,MAAMS,SAASF,QAAAA,CAASG,KAAK,CAAC,GAAA,CAAI,CAAC,CAAA,CAAE;AAErC,QAAA,MAAMC,eAAeC,cAAAA,CAAe,CAAA,EAAGN,KAAK,CAAC,EAAEN,MAAM,EAAES,MAAAA,CAAAA;AACvD,QAAA,MAAMI,MAAM,IAAIC,IAAAA,EAAAA;AAEhB,QAAA,OAAOH,YAAAA,GAAeE,GAAAA;AACxB,IAAA,CAAA,CAAA;AAEJN,IAAAA,QAAAA,EAAUrB,GAAAA,CAAII,MAAM,EAAA,CAAGW,IAAI,CAAC,aAAA,EAAe;QACzCC,EAAAA,EAAI,IAAA;QACJC,IAAAA,EAAMjB,GAAAA,CAAII,MAAM,EAAA,CAAGE,QAAQ,CAACC,iBAAiBD,QAAQ,CAACE,EAAE,CAAA,CAAEC,QAAQ,EAAA;QAClES,SAAAA,EAAWlB,GAAAA,CAAII,MAAM,EAAA,CAAGK,QAAQ;AAClC,KAAA,CAAA;AACAW,IAAAA,IAAAA,EAAMpB,GAAAA,CAAII,MAAM,EAAA,CAAGW,IAAI,CAAC,aAAA,EAAe;QACrCC,EAAAA,EAAI,IAAA;QACJC,IAAAA,EAAMjB,GAAAA,CAAII,MAAM,EAAA,CAAGE,QAAQ,CAACC,iBAAiBD,QAAQ,CAACE,EAAE,CAAA,CAAEC,QAAQ,EAAA;QAClES,SAAAA,EAAWlB,GAAAA,CAAII,MAAM,EAAA,CAAGK,QAAQ;AAClC,KAAA;AACF,CAAA,CAAA,CACCH,QAAQ,EAAA,CACRuB,SAAS;MAECC,eAAAA,GAAkB9B,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACL6B,IAAAA,eAAAA,EAAiB/B,IAAII,MAAM,EAAA,CAAGK,QAAQ,EAAA,CAAGuB,OAAO,CAAC,IAAA;AACnD,CAAA,CAAA,CACC1B,QAAQ,EAAA,CACRuB,SAAS;;;;"}