{"version":3,"sources":["webpack:///./node_modules/date-fns/esm/constants/index.js","webpack:///./node_modules/date-fns/esm/parseISO/index.js","webpack:///./src/pages/case-studies.tsx"],"names":["Math","pow","parseISO","argument","options","_options$additionalDi","requiredArgs","arguments","additionalDigits","toInteger","RangeError","Object","prototype","toString","call","Date","NaN","date","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","year","isNaN","getTime","offset","timestamp","time","parseTime","timezone","dirtyDate","result","setFullYear","getUTCFullYear","getUTCMonth","getUTCDate","setHours","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","dateString","timeString","array","split","length","test","substr","token","exec","replace","regex","RegExp","captures","match","parseInt","century","slice","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","_year","validateWeekDate","isoWeekYear","setUTCFullYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","max","value","hours","parseTimeUnit","minutes","seconds","validateTime","parseFloat","timezoneString","sign","_hours","validateTimezone","CaseStudiesPage","_ref","_data$prismicCaseStud","_page$case_studies_de","_page$cards","data","page","prismicCaseStudiesIndexV2Page","Error","React","Layout","HelmetSeo","Section","PageMaxWidth","Gutter","size","SimpleHero","title","hero_title","description","hero_description","contactButtonLabel","hero_contact_button_label","calculatorButtonLabel","hero_calculator_button_label","CurvedSectionDividerGlow","position","glowColor","backColor","background","tint","SectionCustomerLogos","buttonLabel","gutterSize","maxWidth","Line","color","SectionQuotes","CurvedSectionDivider","frontColor","MaxWidth","width","Text","typeface","bold","as","align","case_studies_heading","FormattedText","baseTypeface","textAlign","RichText","render","case_studies_description","raw","Grid","cards","map","card","i","_card$card_link","_card$card_logo","href","card_link","undefined","Column","key","BlogCard","to","logoUrl","card_logo","url","card_date","card_title","card_description","readTime","card_mins_read","Visibility","hideBelow","HorizontalAlign","Button","colorTheme","label"],"mappings":"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","file":"component---src-pages-case-studies-tsx-647069b445d61b8defc0.js","sourcesContent":["/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import { parseISO } from \"date-fns\";\nimport { graphql } from \"gatsby\";\nimport { RichText } from \"prismic-reactjs\";\nimport * as React from \"react\";\nimport {\n BlogCard,\n Button,\n Column,\n CurvedSectionDivider,\n CurvedSectionDividerGlow,\n FormattedText,\n Grid,\n Gutter,\n HelmetSeo,\n HorizontalAlign,\n Layout,\n Line,\n MaxWidth,\n PageMaxWidth,\n Section,\n SectionCustomerLogos,\n SectionQuotes,\n SimpleHero,\n Text,\n Visibility,\n} from \"../components\";\n\ntype Props = {\n data: GatsbyTypes.CaseStudiesPageQuery;\n};\n\nexport const query = graphql`\n query CaseStudiesPage {\n prismicCaseStudiesIndexV2Page {\n data {\n hero_title\n hero_description {\n raw\n }\n hero_contact_button_label\n hero_calculator_button_label\n\n logos_heading\n\n case_studies_heading\n case_studies_description {\n raw\n }\n\n cards {\n card_logo {\n url\n }\n card_date\n card_title\n card_description\n card_mins_read\n card_link\n }\n\n seo_title\n seo_description\n share_image {\n alt\n dimensions {\n width\n height\n }\n url\n }\n }\n }\n }\n`;\n\nexport default function CaseStudiesPage({ data }: Props) {\n const page = data.prismicCaseStudiesIndexV2Page?.data;\n if (!page) throw new Error(\"page missing\");\n\n return (\n \n \n\n
\n \n \n \n \n \n
\n\n \n
\n \n \n \n \n \n \n \n
\n \n\n
\n \n \n \n \n {page.case_studies_heading}\n \n \n \n \n \n \n \n\n \n {page.cards?.map((card, i) => {\n if (!card) return null;\n const href =\n card.card_link?.substr(0, 5) === \"http:\"\n ? card.card_link\n : undefined;\n return (\n \n \n \n \n \n \n );\n })}\n \n \n \n \n \n \n \n
\n
\n );\n}\n"],"sourceRoot":""}