{ "version": 3, "sources": ["../javascripts/routes/assignments/utils/assignment-dto.ts", "../javascripts/routes/assignments/CreateAssignment/reducer.ts", "../javascripts/routes/assignments/CreateAssignment/validationMethods.ts", "../javascripts/routes/assignments/CreateAssignment/Widget/WidgetFullWidth.tsx", "../javascripts/styled-components/components/WidgetBox/index.tsx"], "sourcesContent": ["import cloneDeep from 'lodash.clonedeep';\nimport type { Vehicle } from '../../../@types/Vehicle';\n\nclass AssignmentDto {\n id = null;\n vehicle: Vehicle;\n shortDescription = '';\n description = '';\n media = [];\n position = {};\n contactOptions = [];\n interestedInTradeIn = false;\n\n constructor(vehicle: Vehicle | undefined | null) {\n if (!vehicle) throw new Error('Vehicle is required');\n this.vehicle = vehicle;\n\n if (vehicle && vehicle.modelName && !this.shortDescription)\n this.shortDescription = vehicle.modelName;\n }\n\n static fromLookup = (vehicle: Vehicle | undefined | null) =>\n new AssignmentDto(cloneDeep(vehicle));\n}\n\nexport default AssignmentDto;\n", "import cloneDeep from 'lodash.clonedeep';\nimport type { BaseAction } from '../../../@types/actions';\nimport validationMethods from './validationMethods';\n\nexport interface CreateAssignmentValidation {\n registration_number: boolean;\n odometerReadingValue: boolean;\n}\n\nexport interface CreateAssignment {\n registration_number: string;\n odometerReadingValue: number | null;\n}\n\nexport interface CreateAssignmentState {\n value: CreateAssignment;\n validation: CreateAssignmentValidation;\n interact: CreateAssignmentValidation;\n}\n\nexport const initialState = (assignmentInit?: CreateAssignment): CreateAssignmentState => {\n const assignment = cloneDeep({\n registration_number: assignmentInit?.registration_number || '',\n odometerReadingValue: assignmentInit?.odometerReadingValue || null,\n });\n\n return {\n value: {\n ...assignment,\n },\n validation: {\n registration_number: validationMethods.registration_number(assignment?.registration_number),\n odometerReadingValue: validationMethods.odometerReadingValue(\n assignment?.odometerReadingValue,\n ),\n },\n interact: {\n registration_number: false,\n odometerReadingValue: false,\n },\n };\n};\n\nexport const RESET = 'RESET';\nexport type RESET_TYPE = BaseAction;\n\nexport const SET_CHANGE = 'SET_CHANGE';\nexport type SET_CHANGE_TYPE = BaseAction & {\n name: 'registration_number';\n value?: string;\n};\n\nexport const SET_BLUR = 'SET_BLUR';\nexport type SET_BLUR_TYPE = BaseAction & {\n name: 'registration_number';\n};\n\nexport const SET_CHANGE_NUMBER = 'SET_CHANGE_NUMBER';\nexport type SET_CHANGE_NUMBER_TYPE = BaseAction & {\n name: 'odometerReadingValue';\n value: number | null;\n};\n\nexport const SET_BLUR_NUMBER = 'SET_BLUR_NUMBER';\nexport type SET_BLUR_NUMBER_TYPE = BaseAction & {\n name: 'odometerReadingValue';\n};\n\nexport const SET_VALIDATE_EVERYTHING = 'SET_VALIDATE_EVERYTHING';\nexport type SET_VALIDATE_EVERYTHING_TYPE = BaseAction;\n\nexport type CreateNewCampaignAction =\n | SET_CHANGE_TYPE\n | SET_BLUR_TYPE\n | SET_CHANGE_NUMBER_TYPE\n | SET_BLUR_NUMBER_TYPE\n | SET_VALIDATE_EVERYTHING_TYPE\n | RESET_TYPE;\n\nconst reducer = (state: CreateAssignmentState, action: CreateNewCampaignAction) => {\n const next = cloneDeep(state);\n switch (action.type) {\n case SET_CHANGE:\n next.value[action.name] = action.value || '';\n next.validation[action.name] = validationMethods[action.name](action.value);\n return next;\n\n case SET_BLUR:\n next.validation[action.name] = validationMethods[action.name](next.value[action.name]);\n next.interact[action.name] = true;\n return next;\n\n case SET_BLUR_NUMBER:\n next.value[action.name] = next.value[action.name]?.toString()?.length\n ? Number.parseInt(next.value[action.name]?.toString() || '0', 10)\n : 0;\n next.validation[action.name] = validationMethods[action.name](next.value[action.name]);\n next.interact[action.name] = true;\n return next;\n\n case SET_CHANGE_NUMBER:\n next.value[action.name] = action.value;\n next.validation[action.name] = validationMethods[action.name](action.value);\n return next;\n\n case RESET:\n return initialState();\n\n case SET_VALIDATE_EVERYTHING:\n next.validation.registration_number = validationMethods.registration_number(\n next.value.registration_number,\n );\n next.interact.registration_number = true;\n\n next.validation.odometerReadingValue = validationMethods.odometerReadingValue(\n next.value.odometerReadingValue,\n );\n next.interact.odometerReadingValue = true;\n\n return next;\n default:\n throw new Error('createNewCampaignReducer unsupported action type');\n }\n};\n\nexport default reducer;\n", "import { getMarket } from '../../../i18n';\nimport fieldValidation from '../../../utils/fieldValidation';\n\nconst validationMethods = {\n registration_number: (s?: string | null | undefined) =>\n fieldValidation.requiredRegNr(s, getMarket().marketCode),\n odometerReadingValue: fieldValidation.requiredNumber,\n};\n\nexport default validationMethods;\n", "import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport type { AssignmentWidgetVariantProps } from '.';\nimport { numberSeparator } from '../../../../helpers/formats';\nimport { getMarket } from '../../../../i18n';\nimport { getRegistrationNumberIdentifier } from '../../../../shared/registration-number-identifier';\nimport { Button } from '../../../../styled-components/components/Button';\nimport { H3 } from '../../../../styled-components/components/Heading';\nimport InputError from '../../../../styled-components/components/InputError';\nimport InputLabel from '../../../../styled-components/components/InputLabel';\nimport { LabelGhost } from '../../../../styled-components/components/InputLabel/wrapper';\nimport InputText from '../../../../styled-components/components/InputText';\nimport Loader from '../../../../styled-components/components/Loader';\nimport { WidgetBox } from '../../../../styled-components/components/WidgetBox';\nimport { size } from '../../../../styled-components/layout/helpers';\n\nconst LayoutWrapper = styled.div.withConfig({ componentId: 'sc-jwpy8s-0' })`\n display: grid;\n align-items: center;\n grid-template-columns: 4fr 6fr;\n gap: ${size(2)};\n\n ${(props) => props.theme.breakpoint.LtSm} {\n grid-template-columns: 1fr;\n }\n`;\n\nconst InputWrapperItem = styled.div.withConfig({ componentId: 'sc-jwpy8s-1' })`\n grid-column: span var(--_column-count);\n`;\n\nconst InputWrapperSubmit = styled.div.withConfig({ componentId: 'sc-jwpy8s-2' })`\n grid-column: span var(--_column-count);\n`;\n\nconst InputWrapper = styled.div.withConfig({ componentId: 'sc-jwpy8s-3' })`\n --_column-count: 6;\n\n display: grid;\n gap: ${size(1.5)};\n grid-template-columns: repeat(var(--_column-count), 1fr);\n container: inputWrapper / inline-size;\n\n ${LabelGhost} {\n display: none;\n }\n\n @container inputWrapper (min-width: 330px) {\n ${InputWrapperItem} {\n grid-column: span 3;\n }\n }\n\n @container inputWrapper (min-width: 550px) {\n ${InputWrapperItem} {\n grid-column: span 2;\n }\n\n ${InputWrapperSubmit} {\n grid-column: span 2;\n }\n\n ${LabelGhost} {\n display: block;\n }\n }\n`;\n\nconst WidgetFullWidth = ({\n registrationNumber,\n errorRegistrationNumber,\n odometerReadingValue,\n maxOdometerReadingValue,\n errorOdometerReadingValue,\n disabled,\n loading,\n onBlur,\n onChange,\n onBlurNumber,\n onChangeNumber,\n onProceed,\n}: AssignmentWidgetVariantProps) => {\n const { t } = useTranslation(['assignment', 'common', 'glossary']);\n const marketCode = getMarket().marketCode;\n\n return (\n \n \n
\n

\n {t('widgetHeading', { ns: 'assignment' })}\n

\n {t('widgetBody', { ns: 'assignment' })}\n
\n \n \n \n {t('registrationNumber', { ns: 'glossary' })}\n \n \n {errorRegistrationNumber && !!registrationNumber && (\n \n {t('errorWrongFormatRegistrationNumber', { ns: 'validation' })}\n \n )}\n \n \n \n {t('mileage', { ns: 'glossary' })}\n \n \n {errorOdometerReadingValue && !!odometerReadingValue && (\n \n {t('errorValueBetweenTwoNumbers', {\n ns: 'validation',\n low: '0',\n high: numberSeparator(maxOdometerReadingValue),\n })}\n \n )}\n \n \n \n \n {t('widgetCta', { ns: 'assignment' })}\n {loading && }\n \n \n \n
\n
\n );\n};\n\nexport default WidgetFullWidth;\n", "import styled, { css } from 'styled-components';\n\nimport { size } from '../../layout/helpers';\n\ninterface WidgetBoxProps {\n $tone?: 'secondary' | 'accentTertiary';\n $size?: 'large';\n}\n\nexport const WidgetBox = styled.div.withConfig({ componentId: 'sc-19ucmtf-0' })`\n background: var(--_bg, var(--c-accent-alt-bg));\n color: var(--c-text-main);\n padding: var(--_padding);\n border-radius: var(--_radius, ${size(2)});\n\n ${({ $tone }) =>\n $tone === 'secondary'\n ? css`\n --_bg: var(--c-secondary-bg);\n `\n : $tone === 'accentTertiary'\n ? css`\n --_bg: var(--c-accent-tertiary-bg);\n `\n : undefined}\n\n ${({ $size }) =>\n $size === 'large'\n ? css`\n --_padding: ${size(4)} ${size(3)};\n\n ${(props) => props.theme.breakpoint.Md} {\n --_padding: ${size(6)};\n }\n `\n : css`\n --_padding: ${size(3)} ${size(2)};\n\n ${(props) => props.theme.breakpoint.Md} {\n --_padding: ${size(4)} ${size(3)};\n }\n `}\n`;\n"], "mappings": "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", "names": ["import_lodash", "AssignmentDto", "_AssignmentDto", "vehicle", "cloneDeep", "assignment_dto_default", "import_lodash", "validationMethods", "s", "fieldValidation_default", "getMarket", "validationMethods_default", "initialState", "assignmentInit", "assignment", "cloneDeep", "validationMethods_default", "RESET", "SET_CHANGE", "SET_BLUR", "SET_CHANGE_NUMBER", "SET_BLUR_NUMBER", "SET_VALIDATE_EVERYTHING", "reducer", "state", "action", "next", "reducer_default", "import_react", "WidgetBox", "dt", "size", "$tone", "lt", "$size", "props", "LayoutWrapper", "dt", "size", "props", "InputWrapperItem", "InputWrapperSubmit", "InputWrapper", "LabelGhost", "WidgetFullWidth", "registrationNumber", "errorRegistrationNumber", "odometerReadingValue", "maxOdometerReadingValue", "errorOdometerReadingValue", "disabled", "loading", "onBlur", "onChange", "onBlurNumber", "onChangeNumber", "onProceed", "t", "useTranslation", "marketCode", "getMarket", "React", "WidgetBox", "H3", "InputLabel_default", "InputText_default", "getRegistrationNumberIdentifier", "InputError_default", "numberSeparator", "Button", "Loader_default", "WidgetFullWidth_default"] }