{"version":3,"file":"static/js/8133.0dda9be19ad004182c22.js","mappings":"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","sources":["components/BlogSection/BlogComponents/Shared/styleObjects/RatingSelect.ts","components/IconComponents/HalfStarIcon.tsx","components/IconComponents/EmptyStarIcon.tsx","components/BlogSection/BlogComponents/Shared/RatingSelect.tsx","components/IconComponents/CapterraLogo.tsx","components/IconComponents/StarIcon.tsx","components/ParseAbbreviations.jsx","services/apiService.ts"],"sourcesContent":["export const ratingSelectStyles = {\n starContainer: {\n '&:not(:last-child)': {\n marginRight: '0.5rem',\n },\n },\n star: (size: number) => ({\n width: size ? `${size}px` : '24px',\n height: size ? `${size}px` : '24px',\n }),\n} as const;\n","import React from 'react';\n\nexport function HalfStarIcon(props: React.SVGProps): JSX.Element {\n return (\n \n \n \n \n );\n}\n","import React from 'react';\n\nexport function EmptyStarIcon(props: React.SVGProps): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\nimport { IconButton, Grid } from '@mui/material';\nimport { ratingSelectStyles as classes } from './styleObjects/RatingSelect';\nimport { StarIcon } from '@components/IconComponents/StarIcon';\nimport { HalfStarIcon } from '@components//IconComponents/HalfStarIcon';\nimport { EmptyStarIcon } from '@components//IconComponents/EmptyStarIcon';\nimport { v2Colors } from '@web-for-marketing/react-ui';\n\ninterface RatingSelectProps {\n rating?: number;\n starColor?: string;\n starSize?: number;\n totalStars?: number;\n clickable?: boolean;\n setRating?: (rating: number) => void;\n}\n\nexport function RatingSelect({\n setRating,\n rating = 1,\n totalStars = 5,\n clickable = false,\n starColor = v2Colors.text.activePrimary,\n starSize = 24,\n}: RatingSelectProps): JSX.Element {\n const renderStar = (index: number): JSX.Element => {\n const isFullStar = index + 1 <= Math.floor(rating);\n const isHalfStar = !isFullStar && index + 0.5 <= rating;\n\n return (\n \n {clickable && setRating ? (\n setRating(index + 1)} size='large'>\n {isFullStar ? (\n \n ) : isHalfStar ? (\n \n ) : (\n \n )}\n \n ) : (\n
\n {isFullStar ? (\n \n ) : isHalfStar ? (\n \n ) : (\n \n )}\n
\n )}\n
\n );\n };\n\n return {Array.from(Array(totalStars), (_val, i) => renderStar(i))};\n}\n","import React from 'react';\nimport { v2Colors } from '@web-for-marketing/react-ui';\n\nexport function CapterraLogo(props: React.SVGProps): JSX.Element {\n return (\n \n \n\n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nexport function StarIcon(props: React.SVGProps): JSX.Element {\n return (\n \n \n \n );\n}\n","import React from 'react';\nimport { PropTypes } from 'prop-types';\n\nfunction checkAbbreviations(content, stringFormat) {\n let currentContent = null;\n\n if (content && content.length) {\n let abbreviations = content.split(/~!(.*?)!~/gm);\n currentContent = content;\n\n if (abbreviations.length > 1) {\n if (stringFormat) {\n currentContent = abbreviations\n .map((element) => {\n let newAbbrElement;\n\n if (element.indexOf('{') > -1 && element.indexOf('}') > -1) {\n let abbreviationContent = element.split(/{(.*?)}/gm);\n\n newAbbrElement = abbreviationContent.length\n ? `${addBreaks(\n abbreviationContent[1],\n stringFormat\n )}`\n : '';\n } else {\n newAbbrElement = addBreaks(element, stringFormat);\n }\n\n return newAbbrElement;\n })\n .join('');\n } else {\n currentContent = (\n <>\n {abbreviations.map((element, index) => {\n let newAbbrElement;\n if (element.indexOf('{') > -1 && element.indexOf('}') > -1) {\n let abbreviationContent = element.split(/{(.*?)}/gm);\n\n newAbbrElement = abbreviationContent.length ? (\n \n {addBreaks(abbreviationContent[1], stringFormat)}\n \n ) : null;\n } else {\n newAbbrElement = addBreaks(element, stringFormat, index);\n }\n return newAbbrElement;\n })}\n \n );\n }\n } else {\n currentContent = addBreaks(currentContent, stringFormat);\n }\n }\n return currentContent;\n}\n\nfunction addBreaks(content, stringFormat, index = 0) {\n const contentWithNewline = content.replace(/
|
/gm, '\\n');\n let splitContent = contentWithNewline.split('\\n');\n let contentWithBreaks = [];\n\n if (splitContent.length > 1) {\n if (stringFormat) {\n for (let i = 0; i < splitContent.length - 1; i++) {\n contentWithBreaks.push(`${splitContent[i]}
`);\n }\n contentWithBreaks.push(splitContent[splitContent.length - 1]);\n splitContent = contentWithBreaks;\n } else {\n for (let i = 0; i < splitContent.length - 1; i++) {\n contentWithBreaks.push(\n \n {splitContent[i]}\n
\n
\n );\n }\n contentWithBreaks.push(\n {splitContent[splitContent.length - 1]}\n );\n splitContent = {contentWithBreaks};\n }\n } else {\n if (!stringFormat) {\n splitContent = splitContent[0];\n }\n }\n\n return stringFormat ? splitContent.join('') : splitContent;\n}\n\nexport function ParseAbbreviations({ content, stringFormat }) {\n return checkAbbreviations(content, stringFormat);\n}\n\nParseAbbreviations.defaultProps = {\n content: '',\n};\n\nParseAbbreviations.propTypes = {\n content: PropTypes.string,\n stringFormat: PropTypes.bool,\n};\n","import { CookieKey } from '@models/cookie';\nimport { getCookie } from './cookieService';\n\nconst defaultHeaders: HeadersInit = { Accept: 'application/json', 'Content-Type': 'application/json' };\n\ninterface ErrorBody {\n Message?: string;\n StackTrace?: string;\n StatusCode?: number;\n}\n\nexport function httpGet(\n url: string,\n headers: HeadersInit | undefined = undefined,\n cache: RequestCache | null = null,\n returnOriginalError = false,\n includeAuthorizationHeader = true\n): Promise {\n const httpMethod = 'GET';\n const requestOptions = generateRequestOptions(httpMethod, headers, null, cache, includeAuthorizationHeader);\n return fetch(url, requestOptions).then(\n async (response) => await handleResponse(response, httpMethod, returnOriginalError)\n );\n}\n\nexport function httpPost(\n url: string,\n body: string | FormData | null = null,\n headers: HeadersInit | undefined = defaultHeaders\n): Promise {\n const httpMethod = 'POST';\n const requestOptions = generateRequestOptions(httpMethod, headers, body);\n return fetch(url, requestOptions).then(async (response) => await handleResponse(response, httpMethod));\n}\n\nexport function httpPut(url: string, body: string | null = null, headers = defaultHeaders): Promise {\n const httpMethod = 'PUT';\n const requestOptions = generateRequestOptions(httpMethod, headers, body);\n return fetch(url, requestOptions).then(async (response) => await handleResponse(response, httpMethod));\n}\n\nexport function httpPatch(\n url: string,\n body: string | null = null,\n headers: HeadersInit | undefined = defaultHeaders\n): Promise {\n const httpMethod = 'PATCH';\n const requestOptions = generateRequestOptions(httpMethod, headers, body);\n return fetch(url, requestOptions).then(async (response) => await handleResponse(response, httpMethod));\n}\n\nexport function httpDelete(url: string, headers: HeadersInit | undefined = undefined): Promise {\n const httpMethod = 'DELETE';\n const requestOptions = generateRequestOptions(httpMethod, headers);\n return fetch(url, requestOptions).then(async (response) => await handleResponse(response, httpMethod));\n}\n\nasync function handleResponse(response: Response, httpMethod: string, returnOriginalError = false): Promise {\n if (!response.ok) {\n let errorBody: ErrorBody = {};\n const text = await response.text();\n try {\n if (typeof text === 'string') {\n errorBody.Message = extractMessageFromText(text);\n errorBody.StatusCode = response.status;\n } else {\n errorBody = JSON.parse(text);\n errorBody.Message = errorBody.StackTrace?.split('\\n')[0];\n }\n } catch (e) {\n errorBody = {\n Message: 'An unknown error occurred.',\n StackTrace: '',\n StatusCode: response.status,\n };\n }\n\n console.error(`${httpMethod} failed with status code ${errorBody.StatusCode}: ${errorBody.Message}`);\n if (returnOriginalError) {\n throw { response, errorBody };\n }\n throw new Error(`Failed to ${httpMethod} with status code ${errorBody.StatusCode}: ${errorBody.Message}`);\n }\n\n return response;\n}\n\nfunction extractMessageFromText(text: string): string {\n try {\n const errorBody = JSON.parse(text);\n return errorBody.message || text;\n } catch {\n return text;\n }\n}\n\nfunction generateRequestOptions(\n httpMethod: string,\n headers: HeadersInit | undefined = undefined,\n body: string | FormData | null = null,\n cache: RequestCache | null = null,\n includeAuthorizationHeader = true\n): RequestInit {\n const requestOptions: RequestInit = { method: httpMethod };\n const jwtCookieValue = getCookie(CookieKey.CmsJwtToken);\n\n if (body) {\n requestOptions.body = body;\n }\n\n if (headers) {\n requestOptions.headers = headers;\n }\n\n if (includeAuthorizationHeader && jwtCookieValue) {\n requestOptions.headers = { ...requestOptions.headers, Authorization: `Bearer ${jwtCookieValue}` };\n }\n\n if (cache) {\n requestOptions.cache = cache;\n }\n\n return requestOptions;\n}\n"],"names":["ratingSelectStyles","starContainer","marginRight","star","size","width","height","HalfStarIcon","props","_jsxs","viewBox","fill","xmlns","children","_jsx","d","stroke","EmptyStarIcon","RatingSelect","setRating","rating","totalStars","clickable","starColor","v2Colors","text","activePrimary","starSize","Grid","Array","from","_val","i","index","isFullStar","Math","floor","isHalfStar","React","IconButton","onClick","StarIcon","css","classes","color","style","display","position","renderStar","CapterraLogo","background","white","addBreaks","content","stringFormat","splitContent","replace","split","contentWithBreaks","length","push","join","ParseAbbreviations","currentContent","abbreviations","map","element","newAbbrElement","indexOf","abbreviationContent","_Fragment","title","checkAbbreviations","defaultProps","propTypes","PropTypes","string","bool","defaultHeaders","Accept","httpGet","url","headers","undefined","cache","returnOriginalError","includeAuthorizationHeader","requestOptions","generateRequestOptions","fetch","then","async","handleResponse","response","httpPost","body","httpMethod","httpPatch","httpDelete","ok","errorBody","Message","JSON","parse","message","extractMessageFromText","StatusCode","status","StackTrace","e","console","error","Error","method","jwtCookieValue","getCookie","CookieKey","CmsJwtToken","Authorization"],"sourceRoot":""}