{"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;;;;"}