From 3cbf4731495828199f3d3ba36b113c9ada47712c Mon Sep 17 00:00:00 2001 From: Yaroslav Kosterin Date: Tue, 16 Dec 2025 19:47:35 +0200 Subject: [PATCH 01/18] prefill bsn api records, add criteria groups --- .../scss/includes/blocks/block-sign_up.scss | 125 ++++--- .../props/models/FundCriteriaGroup.tsx | 7 + .../dashboard/props/models/FundCriterion.tsx | 2 + .../pages/funds-request/FundRequest.tsx | 88 ++++- .../steps/FundRequestStepCriteria.tsx | 323 ++++++------------ .../steps/FundRequestStepCriterion.tsx | 238 +++++++++++++ .../steps/FundRequestValuesOverview.tsx | 151 +++++--- react/src/webshop/props/models/Fund.ts | 2 + 8 files changed, 609 insertions(+), 327 deletions(-) create mode 100644 react/src/dashboard/props/models/FundCriteriaGroup.tsx create mode 100644 react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriterion.tsx diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss b/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss index 852a6e528..d9cb5dd7f 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss @@ -489,74 +489,89 @@ } } - .sign_up-request-preview { + .preview-item-info { display: flex; - flex-direction: column; + flex-direction: row; + gap: 10px; + align-items: flex-start; - .preview-item { - display: flex; + &.preview-item-info-vertical { flex-direction: column; - gap: 15px; - padding: 20px 25px; - border-bottom: 1px solid var(--border-color); + } - .preview-item-info { - display: flex; - flex-direction: row; - gap: 10px; - align-items: flex-start; + .preview-item-icon { + display: flex; + flex: 0 0 26px; + font: 600 14px/20px var(--base-font); + border: 1px solid #9e9e9e; + border-radius: 10px; + flex-direction: row; + justify-content: center; + padding: 0 5px; + } - .preview-item-icon { - display: flex; - flex: 0 0 26px; - font: 600 14px/20px var(--base-font); - border: 1px solid #9e9e9e; - border-radius: 10px; - flex-direction: row; - justify-content: center; - padding: 0 5px; - } + .preview-item-title { + display: flex; + flex: 1 1 auto; + font: 700 18px/20px var(--base-font); + padding: 1px 0; + } - .preview-item-title { - display: flex; - flex: 1 1 auto; - font: 700 18px/20px var(--base-font); - padding: 1px 0; - } - } + .preview-item-subtitle { + display: flex; + flex: 1 1 auto; + font: 700 16px/20px var(--base-font); + } - .preview-item-panel { - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - background-color: #fbfbfb; - } + .preview-item-description { + font: 400 16px/20px var(--base-font); + margin-bottom: 0; + } + } - .preview-item-values { - padding: 15px 20px; - display: flex; - flex-direction: column; - gap: 10px; + .preview-item-panel { + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + background-color: #fbfbfb; + } - .preview-item-values-item { - display: flex; - flex-direction: row; - justify-content: flex-start; - gap: 20px; + .preview-item-values { + padding: 15px 20px; + display: flex; + flex-direction: column; + gap: 10px; - .preview-item-values-item-label { - display: flex; - flex: 0 0 250px; - font: 500 13px/20px var(--base-font); - } + .preview-item-values-item { + display: flex; + flex-direction: row; + justify-content: flex-start; + gap: 20px; - .preview-item-values-item-value { - display: flex; - flex: 1 1 auto; - font: 700 13px/20px var(--base-font); - } - } + .preview-item-values-item-label { + display: flex; + flex: 0 0 250px; + font: 500 13px/20px var(--base-font); } + .preview-item-values-item-value { + display: flex; + flex: 1 1 auto; + font: 700 13px/20px var(--base-font); + } + } + } + + .sign_up-request-preview { + display: flex; + flex-direction: column; + + .preview-item { + display: flex; + flex-direction: column; + gap: 15px; + padding: 20px 25px; + border-bottom: 1px solid var(--border-color); + .preview-item-files { display: flex; flex-direction: column; diff --git a/react/src/dashboard/props/models/FundCriteriaGroup.tsx b/react/src/dashboard/props/models/FundCriteriaGroup.tsx new file mode 100644 index 000000000..d35e98784 --- /dev/null +++ b/react/src/dashboard/props/models/FundCriteriaGroup.tsx @@ -0,0 +1,7 @@ +export default interface FundCriteriaGroup { + id?: number; + title: string; + description_html?: string; + order: number; + required: boolean; +} diff --git a/react/src/dashboard/props/models/FundCriterion.tsx b/react/src/dashboard/props/models/FundCriterion.tsx index 18add2eba..a03293db3 100644 --- a/react/src/dashboard/props/models/FundCriterion.tsx +++ b/react/src/dashboard/props/models/FundCriterion.tsx @@ -21,5 +21,7 @@ export default interface FundCriterion { has_record?: boolean; is_valid?: boolean; fund_criteria_step_id?: number; + fund_criteria_group_id?: number; + fill_type?: 'manual' | 'prefill'; rules?: Array; } diff --git a/react/src/webshop/components/pages/funds-request/FundRequest.tsx b/react/src/webshop/components/pages/funds-request/FundRequest.tsx index 6c77f49a6..4a16b806c 100644 --- a/react/src/webshop/components/pages/funds-request/FundRequest.tsx +++ b/react/src/webshop/components/pages/funds-request/FundRequest.tsx @@ -43,6 +43,7 @@ import { orderBy, sortBy } from 'lodash'; import FundRequestHelpBlock from './elements/FundRequestHelpBlock'; import FundRequestStepPhysicalCardRequestAddress from './elements/steps/FundRequestStepPhysicalCardRequestAddress'; import { WebshopRoutes } from '../../../modules/state_router/RouterBuilder'; +import FundCriteriaGroup from '../../../../dashboard/props/models/FundCriteriaGroup'; export type LocalCriterion = FundCriterion & { input_value?: string; @@ -57,10 +58,11 @@ export type LocalCriterion = FundCriterion & { requested?: boolean; }; -type FundCriteriaStepLocal = FundCriteriaStep & { +export type FundCriteriaStepLocal = FundCriteriaStep & { uid?: string; uploaderTemplate: 'inline' | 'default'; criteria: Array; + groups: Array }>; }; export default function FundRequest() { @@ -110,6 +112,7 @@ export default function FundRequest() { const [criteriaStepKeys, setCriteriaStepKeys] = useState([]); const [pendingCriteria, setPendingCriteria] = useState>([]); + const [personPrefills, setPersonPrefills] = useState>(null); const [fund, setFund] = useState(null); const [vouchers, setVouchers] = useState>(null); @@ -143,6 +146,16 @@ export default function FundRequest() { }, {}); }, [pendingCriteria]); + const hasPersonBsnApi = useMemo( + () => + bsnIsKnown && + fund && + authIdentity && + fund.allow_fund_request_prefill && + fund.organization.has_person_bsn_api, + [authIdentity, bsnIsKnown, fund], + ); + const shouldRequestRecord = useShouldRequestRecord(recordTypesByKey, recordValuesByType); const criteriaSteps = useMemo>(() => { @@ -158,9 +171,23 @@ export default function FundRequest() { ...step, uid: `criteria_step_${step.id}`, uploaderTemplate: 'inline', + groups: fund.criteria_groups + .map((group) => ({ + ...group, + criteria: orderBy( + pendingCriteria + .filter((criterion) => criterion.fund_criteria_step_id == step.id) + .filter((criterion) => criterion.fund_criteria_group_id === group.id) + .map((criterion) => ({ ...criterion, requested: shouldRequestRecord(criterion) })) + .filter((item) => item.requested), + 'order', + ), + })) + .filter((group) => group.criteria.length > 0), criteria: orderBy( pendingCriteria .filter((criterion) => criterion.fund_criteria_step_id == step.id) + .filter((criterion) => criterion.fund_criteria_group_id === null) .map((criterion) => ({ ...criterion, requested: shouldRequestRecord(criterion) })), 'order', ), @@ -178,11 +205,16 @@ export default function FundRequest() { order: 1000, criteria: [{ ...criterion, requested: shouldRequestRecord(criterion) }], uploaderTemplate: 'default', + groups: [], }), ); const combinedSteps = [...customSteps, ...stepLessCriteria].filter( - (step) => step.criteria.filter((criterion) => criterion.requested).length > 0, + (step) => + step.criteria.filter((criterion) => criterion.requested).length > 0 || + step.groups + .map((group) => group.criteria.filter((criterion) => criterion.requested).length > 0) + .filter((group) => group).length > 0, ); return sortBy(combinedSteps, 'order'); @@ -480,33 +512,32 @@ export default function FundRequest() { }, [authIdentity, fund, fundRequestService, setProgress]); const checkPersonBsnApiRecords = useCallback(() => { - if ( - !bsnIsKnown || - !fund || - !authIdentity || - !fund.allow_fund_request_prefill || - !fund.organization.has_person_bsn_api || - personApiRecordsFetch - ) { + if (!hasPersonBsnApi || personApiRecordsFetch) { return; } setPersonApiRecordsFetch(true); fundService.getPersonPrefills(fund.id).then((res) => { + setPersonPrefills(res.data); + setPendingCriteria((criteria) => { return [ ...criteria.map((criterion) => { - criterion.input_value = - res.data.filter((item) => item.record_type_key === criterion.record_type_key)[0]?.value || - criterion.input_value; + if (criterion.fill_type === 'prefill') { + const prefillItem = res.data.filter( + (item) => item.record_type_key === criterion.record_type_key, + )[0]; + + criterion.input_value = prefillItem?.value || criterion.input_value; + } return criterion; }), ]; }); }); - }, [bsnIsKnown, fund, fundService, authIdentity, personApiRecordsFetch]); + }, [hasPersonBsnApi, personApiRecordsFetch, fundService, fund]); useEffect(() => { fetchFund(); @@ -552,8 +583,10 @@ export default function FundRequest() { // The user has to sign-in first const voucher = getFirstActiveFundVoucher(fund, vouchers); const pendingRequests = fundRequests.filter((request) => request.state === 'pending'); - const pendingCriteria = fund.criteria.filter((criterion) => !criterion.is_valid || !criterion.has_record); const invalidCriteria = fund.criteria.filter((criterion) => !criterion.is_valid); + const pendingCriteria = fund.criteria + .filter((criterion) => !criterion.is_valid || !criterion.has_record) + .map((criterion) => ({ ...criterion, requested: true })); // Voucher already received, go to the voucher if (voucher) { @@ -612,11 +645,21 @@ export default function FundRequest() { useEffect(() => { const removedData = {}; + const addedData = []; const criteria = pendingCriteria .map((item) => { const defaultValue = fundService.getCriterionControlDefaultValue(item.record_type, item.operator); + if (shouldRequestRecord(item) && !item.requested && personPrefills && item.fill_type === 'prefill') { + addedData.push(item.record_type_key); + const prefillItem = personPrefills.filter( + (prefill) => prefill.record_type_key === item.record_type_key, + )[0]; + + item.input_value = prefillItem?.value || item.input_value; + } + if (!shouldRequestRecord(item) && item.input_value != defaultValue) { removedData[item.record_type_key] = { input_value: item.input_value, @@ -633,6 +676,8 @@ export default function FundRequest() { delete item.is_checked; } + item.requested = shouldRequestRecord(item); + return { ...item }; }) .map((item) => { @@ -643,10 +688,10 @@ export default function FundRequest() { return { ...item }; }); - if (Object.keys(removedData).length > 0) { + if (Object.keys(removedData).length > 0 || addedData.length > 0) { setPendingCriteria([...criteria]); } - }, [fundService, pendingCriteria, shouldRequestRecord]); + }, [fundService, pendingCriteria, personPrefills, shouldRequestRecord]); useEffect(() => { if (autoSubmit && steps?.[step] == 'confirm_criteria' && !autoSubmitted) { @@ -655,7 +700,13 @@ export default function FundRequest() { } }, [autoSubmit, autoSubmitted, step, steps, submitConfirmCriteria]); - if (!fund || !vouchers || !fundRequests || (steps[step] == 'confirm_criteria' && autoSubmit)) { + if ( + !fund || + !vouchers || + !fundRequests || + (steps[step] == 'confirm_criteria' && autoSubmit) || + (hasPersonBsnApi && !personPrefills) + ) { return ; } @@ -705,6 +756,7 @@ export default function FundRequest() { submitInProgress={submitInProgress} setSubmitInProgress={setSubmitInProgress} criteria={criterionStep.criteria.filter((item) => item.requested)} + groups={criterionStep.groups} uploaderTemplate={criterionStep.uploaderTemplate} formDataBuild={formDataBuild} setCriterion={(id, update) => { diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx index fe95e65a7..eafa85b81 100644 --- a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx +++ b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx @@ -1,25 +1,17 @@ -import React, { Fragment, useCallback, useMemo } from 'react'; +import React, { Fragment, useCallback, useState } from 'react'; import Fund from '../../../../../props/models/Fund'; import useTranslate from '../../../../../../dashboard/hooks/useTranslate'; import { LocalCriterion } from '../../FundRequest'; -import Markdown from '../../../../elements/markdown/Markdown'; -import SelectControl from '../../../../../../dashboard/components/elements/select-control/SelectControl'; -import UIControlCheckbox from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlCheckbox'; -import UIControlStep from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlStep'; -import UIControlDate from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlDate'; -import { dateFormat, dateParse } from '../../../../../../dashboard/helpers/dates'; -import UIControlNumber from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlNumber'; -import UIControlText from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlText'; -import FormError from '../../../../../../dashboard/components/elements/forms/errors/FormError'; -import FileUploader from '../../../../elements/file-uploader/FileUploader'; import RecordType from '../../../../../../dashboard/props/models/RecordType'; import { ResponseError } from '../../../../../../dashboard/props/ApiResponses'; import { useFundRequestService } from '../../../../../services/FundRequestService'; import { uniq } from 'lodash'; import useSetProgress from '../../../../../../dashboard/hooks/useSetProgress'; import SignUpFooter from '../../../../elements/sign-up/SignUpFooter'; -import classNames from 'classnames'; -import FormLabel from '../../../../elements/forms/FormLabel'; +import FundRequestStepCriterion from './FundRequestStepCriterion'; +import FundCriteriaGroup from '../../../../../../dashboard/props/models/FundCriteriaGroup'; +import FormError from '../../../../../../dashboard/components/elements/forms/errors/FormError'; +import Markdown from '../../../../elements/markdown/Markdown'; export default function FundRequestStepCriteria({ fund, @@ -37,6 +29,7 @@ export default function FundRequestStepCriteria({ uploaderTemplate, formDataBuild, setCriterion, + groups, }: { fund: Fund; step: number; @@ -53,15 +46,14 @@ export default function FundRequestStepCriteria({ setSubmitInProgress: React.Dispatch>; formDataBuild: (criteria: Array) => object; setCriterion: (index: number, update: Partial) => void; + groups: Array }>; }) { const translate = useTranslate(); const setProgress = useSetProgress(); const fundRequestService = useFundRequestService(); - const recordTypesByKey = useMemo(() => { - return recordTypes?.reduce((acc, type) => ({ ...acc, [type.key]: type }), {}); - }, [recordTypes]); + const [errors, setErrors] = useState({}); // Submit or Validate record criteria const validateCriteria = useCallback( @@ -83,10 +75,14 @@ export default function FundRequestStepCriteria({ // Submit criteria record const validateStepCriteria = useCallback( - (criteria: Array) => { + (criteria: Array, groups: Array }>) => { + const items: Array = [ + ...criteria, + ...groups.reduce((list, group) => [...list, ...group.criteria], []), + ]; setProgress(0); - validateCriteria(criteria) + validateCriteria(items) .then((errors) => { const indexes = uniq( Object.keys(errors || {}) @@ -94,8 +90,15 @@ export default function FundRequestStepCriteria({ .map((errorKey) => parseInt(errorKey.split('.')[1])), ); - if (indexes.length === 0) { - criteria.forEach((item) => setCriterion(item.id, { errors: {} })); + const groupIndexes = uniq( + Object.keys(errors || {}) + .filter((err) => err.startsWith('criteria_groups.')) + .map((errorKey) => parseInt(errorKey.split('.')[1])), + ); + + if (indexes.length === 0 && groupIndexes.length === 0) { + items.forEach((item) => setCriterion(item.id, { errors: {} })); + setErrors({}); return onNextStep(); } @@ -114,35 +117,24 @@ export default function FundRequestStepCriteria({ }; }, {}); - return [...list, { id: criteria[index].id, errors: errorsList }]; + return [...list, { id: items[index].id, errors: errorsList }]; }, []); - criteria.forEach((item) => { + items.forEach((item) => { setCriterion(item.id, { errors: errorsList.find((errItem) => errItem.id == item.id)?.errors || {}, }); }); + + setErrors(errors); }) .catch((err: ResponseError) => { console.error(err); + setErrors({}); }) .finally(() => setProgress(100)); }, - [onNextStep, setProgress, setCriterion, validateCriteria], - ); - - const isLabelRequired = useCallback( - (criteria: LocalCriterion) => { - return !criteria.optional && fund.criteria_label_requirement_show !== 'optional'; - }, - [fund.criteria_label_requirement_show], - ); - - const isLabelOptional = useCallback( - (criteria: LocalCriterion) => { - return criteria.optional && fund.criteria_label_requirement_show !== 'required'; - }, - [fund.criteria_label_requirement_show], + [onNextStep, setProgress, setCriterion, validateCriteria, setErrors], ); return ( @@ -153,198 +145,102 @@ export default function FundRequestStepCriteria({ className="sign_up-pane" onSubmit={(e) => { e.preventDefault(); - validateStepCriteria(criteria); + validateStepCriteria(criteria, groups); }}>

{title}

- {criteria.map((criterion, index) => ( -
- {uploaderTemplate === 'inline' ? ( - - {(criterion.title || - criterion.title_default || - (criterion.description && criterion.description !== '_')) && ( -
-
-
- {criterion.title || criterion.title_default} -
-
+ {groups.map((group, index) => ( + +
+
+
{group.title}
+ {group.description_html && ( + + )} - {criterion.extra_description && criterion.extra_description !== '_' && ( -
- + {group.required && ( +
+
+
+ {translate('form.required')}
- )} - -
- {criterion.description && criterion.description !== '_' && ( - - )}
)} - - ) : ( - -
-
- {criterion.description && criterion.description !== '_' && ( - - )} +
+ + + {group.criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 && ( +
+
+ {group.criteria + .filter((criterion) => criterion.fill_type === 'prefill') + .map((criterion) => ( +
+
+ {criterion.title || criterion.title_default} +
+
+ {criterion.input_value || '-'} +
+
+ ))}
- - {!criterion.description && criterion.description !== '_' && ( -
{criterion.title_default}
- )}
- - )} - -
- - {uploaderTemplate !== 'inline' && recordTypesByKey?.[criterion?.record_type?.key]?.name} - - - {criterion.control_type == 'select_control' && ( - { - setCriterion(criterion.id, { input_value: input_value }); - }} - dusk="selectControl" - placeholder={translate( - 'fund_request.sign_up.fund_request_step_criteria.make_a_choice', - )} - multiline={true} - /> )} - {criterion.control_type == 'ui_control_checkbox' && ( - { - setCriterion(criterion.id, { - is_checked: checked, - input_value: checked ? criterion.value : null, - }); - }} - /> - )} - - {criterion.control_type == 'ui_control_step' && ( - { - setCriterion(criterion.id, { input_value: value.toFixed() }); - }} - name={criterion.record_type.key} - min={0} - max={32} - dataDusk="controlStep" - /> - )} - - {criterion.control_type == 'ui_control_date' && ( - { - setCriterion(criterion.id, { - input_value: date ? dateFormat(date, 'dd-MM-yyyy') : '', - }); - }} - id={`criterion_${criterion.id}`} - dataDusk="controlDate" - /> - )} - - {criterion.control_type == 'ui_control_number' && ( - { - setCriterion(criterion.id, { input_value: (value || '').toString() }); - }} - /> - )} + {group.criteria + .filter((criterion) => criterion.fill_type === 'manual') + .map((criterion, index) => ( + + ))} +
+ + ))} - {criterion.control_type == 'ui_control_text' && ( - { - setCriterion(criterion.id, { input_value: e.target.value }); - }} - /> - )} + {criteria.length > 0 && ( +
+ {criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 && ( +
+
+ {criteria + .filter((criterion) => criterion.fill_type === 'prefill') + .map((criterion) => ( +
+
+ {criterion.title || criterion.title_default} +
+
+ {criterion.input_value || '-'} +
+
+ ))} +
+
+ )} - {criterion.control_type == 'ui_control_currency' && ( - { - setCriterion(criterion.id, { input_value: (value || '').toString() }); - }} + {criteria + .filter((criterion) => criterion.fill_type === 'manual') + .map((criterion, index) => ( + - )} - - -
- {criterion.show_attachment && ( - { - setCriterion(criterion.id, { - files, - files_uid: files.map((file) => file.uid), - }); - }} - /> - )} - - + ))}
- ))} + )} - {bsnWarning}
diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriterion.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriterion.tsx new file mode 100644 index 000000000..849c478ed --- /dev/null +++ b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriterion.tsx @@ -0,0 +1,238 @@ +import React, { Fragment, useCallback, useMemo } from 'react'; +import Fund from '../../../../../props/models/Fund'; +import useTranslate from '../../../../../../dashboard/hooks/useTranslate'; +import { LocalCriterion } from '../../FundRequest'; +import Markdown from '../../../../elements/markdown/Markdown'; +import SelectControl from '../../../../../../dashboard/components/elements/select-control/SelectControl'; +import UIControlCheckbox from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlCheckbox'; +import UIControlStep from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlStep'; +import UIControlDate from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlDate'; +import { dateFormat, dateParse } from '../../../../../../dashboard/helpers/dates'; +import UIControlNumber from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlNumber'; +import UIControlText from '../../../../../../dashboard/components/elements/forms/ui-controls/UIControlText'; +import FormError from '../../../../../../dashboard/components/elements/forms/errors/FormError'; +import FileUploader from '../../../../elements/file-uploader/FileUploader'; +import RecordType from '../../../../../../dashboard/props/models/RecordType'; +import classNames from 'classnames'; +import FormLabel from '../../../../elements/forms/FormLabel'; + +export default function FundRequestStepCriterion({ + fund, + criterion, + recordTypes, + uploaderTemplate, + setCriterion, + isGroup = false, +}: { + fund: Fund; + criterion: LocalCriterion; + recordTypes: Array; + uploaderTemplate: 'default' | 'inline'; + setCriterion: (index: number, update: Partial) => void; + isGroup?: boolean; +}) { + const translate = useTranslate(); + + const recordTypesByKey = useMemo(() => { + return recordTypes?.reduce((acc, type) => ({ ...acc, [type.key]: type }), {}); + }, [recordTypes]); + + const isLabelRequired = useCallback( + (criteria: LocalCriterion) => { + return !criteria.optional && fund.criteria_label_requirement_show !== 'optional'; + }, + [fund.criteria_label_requirement_show], + ); + + const isLabelOptional = useCallback( + (criteria: LocalCriterion) => { + return criteria.optional && fund.criteria_label_requirement_show !== 'required'; + }, + [fund.criteria_label_requirement_show], + ); + + return ( + + {!(isGroup && criterion.control_type == 'ui_control_checkbox') && ( + + {uploaderTemplate === 'inline' ? ( + + {(criterion.title || + criterion.title_default || + (criterion.description && criterion.description !== '_')) && ( +
+
+
+ {criterion.title || criterion.title_default} +
+
+ + {criterion.extra_description && criterion.extra_description !== '_' && ( +
+ +
+ )} + +
+ {criterion.description && criterion.description !== '_' && ( + + )} +
+
+ )} +
+ ) : ( + +
+
+ {criterion.description && criterion.description !== '_' && ( + + )} +
+ + {!criterion.description && criterion.description !== '_' && ( +
{criterion.title_default}
+ )} +
+
+ )} +
+ )} + +
+ {!(isGroup && criterion.control_type == 'ui_control_checkbox') && ( + + {uploaderTemplate !== 'inline' && recordTypesByKey?.[criterion?.record_type?.key]?.name} + + )} + + {criterion.control_type == 'select_control' && ( + { + setCriterion(criterion.id, { input_value: input_value }); + }} + dusk="selectControl" + placeholder={translate('fund_request.sign_up.fund_request_step_criteria.make_a_choice')} + multiline={true} + /> + )} + + {criterion.control_type == 'ui_control_checkbox' && ( + { + setCriterion(criterion.id, { + is_checked: checked, + input_value: checked ? criterion.value : null, + }); + }} + /> + )} + + {criterion.control_type == 'ui_control_step' && ( + { + setCriterion(criterion.id, { input_value: value.toFixed() }); + }} + name={criterion.record_type.key} + min={0} + max={32} + dataDusk="controlStep" + /> + )} + + {criterion.control_type == 'ui_control_date' && ( + { + setCriterion(criterion.id, { + input_value: date ? dateFormat(date, 'dd-MM-yyyy') : '', + }); + }} + id={`criterion_${criterion.id}`} + dataDusk="controlDate" + /> + )} + + {criterion.control_type == 'ui_control_number' && ( + { + setCriterion(criterion.id, { input_value: (value || '').toString() }); + }} + /> + )} + + {criterion.control_type == 'ui_control_text' && ( + { + setCriterion(criterion.id, { input_value: e.target.value }); + }} + /> + )} + + {criterion.control_type == 'ui_control_currency' && ( + { + setCriterion(criterion.id, { input_value: (value || '').toString() }); + }} + /> + )} + + +
+ {criterion.show_attachment && ( + { + setCriterion(criterion.id, { + files, + files_uid: files.map((file) => file.uid), + }); + }} + /> + )} + + +
+ ); +} diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestValuesOverview.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestValuesOverview.tsx index fca0e285a..0fa29c9cb 100644 --- a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestValuesOverview.tsx +++ b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestValuesOverview.tsx @@ -1,11 +1,12 @@ -import React, { Fragment, useCallback } from 'react'; +import React, { Fragment, useCallback, useMemo } from 'react'; import FileUploader from '../../../../elements/file-uploader/FileUploader'; -import { LocalCriterion } from '../../FundRequest'; +import { FundCriteriaStepLocal, LocalCriterion } from '../../FundRequest'; import useTranslate from '../../../../../../dashboard/hooks/useTranslate'; -import FundCriteriaStep from '../../../../../../dashboard/props/models/FundCriteriaStep'; import SignUpFooter from '../../../../elements/sign-up/SignUpFooter'; import FundRequestHelpBlock from '../FundRequestHelpBlock'; import Fund from '../../../../../props/models/Fund'; +import FileModel from '../../../../../../dashboard/props/models/File'; +import Markdown from '../../../../elements/markdown/Markdown'; export default function FundRequestValuesOverview({ fund, @@ -29,15 +30,27 @@ export default function FundRequestValuesOverview({ onSubmitRequest: () => void; contactInformation: string; emailSetupShow: boolean; - criteriaSteps: Array< - FundCriteriaStep & { uid?: string; uploaderTemplate: 'inline' | 'default'; criteria: Array } - >; + criteriaSteps: Array; onPrevStep: () => void; progress: React.ReactElement; bsnWarning: React.ReactElement; }) { const translate = useTranslate(); + const groupFiles = useMemo<{ [key: number]: Array }>(() => { + return criteriaSteps + ?.reduce((acc, step) => [...acc, ...step.groups], []) + .reduce( + (acc, group) => ({ + ...acc, + [group.id]: group.criteria + .filter((item) => item.requested) + .reduce((list, item) => [...list, ...item.files], []), + }), + {}, + ); + }, [criteriaSteps]); + const criterionValue = useCallback((criterion: LocalCriterion) => { if (criterion.record_type.type === 'select' || criterion.record_type.type === 'select_number') { return ( @@ -77,45 +90,103 @@ export default function FundRequestValuesOverview({
{index + 1}
{step.title}
-
-
+ + {step.groups.map((group) => ( + + {group.criteria.filter((item) => item.requested).length > 0 && ( + +
+
{group.title}
+ {group.description_html && ( + + )} +
+ +
+
+ {group.criteria + .filter((item) => item.requested) + .map((criterion) => ( +
+
+ {criterion.title || criterion.title_default} +
+
+ {criterionValue(criterion)} +
+
+ ))} +
+ + {groupFiles?.[group.id].length > 0 && ( +
+
+ Attachments +
+ {groupFiles[group.id].length} +
+
+ +
+ )} +
+
+ )} +
+ ))} + + {step.criteria.filter((item) => item.requested).length > 0 && ( +
+
+ {step.criteria + .filter((item) => item.requested) + .map((criterion) => ( +
+
+ {criterion.title || criterion.title_default} +
+
+ {criterionValue(criterion)} +
+
+ ))} +
+ {step.criteria .filter((item) => item.requested) - .map((criterion) => ( -
-
- {criterion.title || criterion.title_default} -
-
- {criterionValue(criterion)} + .reduce((list, item) => [...list, ...item.files], []).length > 0 && ( +
+
+ Attachments +
+ { + step.criteria + .filter((item) => item.requested) + .reduce((list, item) => [...list, ...item.files], []) + .length + }
- ))} -
- {step.criteria - .filter((item) => item.requested) - .reduce((list, item) => [...list, ...item.files], []).length > 0 && ( -
-
- Attachments -
- { - step.criteria - .filter((item) => item.requested) - .reduce((list, item) => [...list, ...item.files], []).length - } -
+ item.requested) + .reduce((list, item) => [...list, ...item.files], [])} + readOnly={true} + />
- item.requested) - .reduce((list, item) => [...list, ...item.files], [])} - readOnly={true} - /> -
- )} -
+ )} +
+ )}
))} diff --git a/react/src/webshop/props/models/Fund.ts b/react/src/webshop/props/models/Fund.ts index a0662edf6..d6bc9c986 100644 --- a/react/src/webshop/props/models/Fund.ts +++ b/react/src/webshop/props/models/Fund.ts @@ -1,5 +1,6 @@ import FundBase from '../../../dashboard/props/models/Fund'; import FundCriteriaStep from '../../../dashboard/props/models/FundCriteriaStep'; +import FundCriteriaGroup from '../../../dashboard/props/models/FundCriteriaGroup'; export default interface Fund extends FundBase { received?: boolean; @@ -11,6 +12,7 @@ export default interface Fund extends FundBase { auto_validation?: boolean; bsn_confirmation_time?: number; criteria_steps?: Array; + criteria_groups?: Array; email_required?: boolean; contact_info_enabled?: boolean; contact_info_required?: boolean; From 2298fb27aff2a0b31b1fb5a6b1fcbcc30b64cedb Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Fri, 19 Dec 2025 15:17:43 +0200 Subject: [PATCH 02/18] criteria group refactoring --- .../scss/includes/blocks/block-sign_up.scss | 16 ++-- .../steps/FundRequestStepCriteria.tsx | 92 +++++++++---------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss b/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss index d9cb5dd7f..a48d850e5 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss @@ -88,7 +88,7 @@ .sign_up-step { flex-grow: 1; text-align: right; - font: 500 14px/30px var(--base-font); + font: 600 14px/30px var(--base-font); color: #525252; border: none; margin-left: 1px; @@ -130,18 +130,20 @@ } &.sign_up-step-active { - color: var(--color-primary); + color: #000; + font-weight: 700; .sign_up-step-border:before { content: ''; display: block; @include fill_parent(); - background-color: var(--color-primary); + background-color: #9E9E9E; } } &.sign_up-step-done { color: var(--sign_up_accent_color); + font-weight: 700; .sign_up-step-border:before { background-color: var(--sign_up_accent_color); @@ -495,10 +497,6 @@ gap: 10px; align-items: flex-start; - &.preview-item-info-vertical { - flex-direction: column; - } - .preview-item-icon { display: flex; flex: 0 0 26px; @@ -527,6 +525,10 @@ font: 400 16px/20px var(--base-font); margin-bottom: 0; } + + &.preview-item-info-vertical { + flex-direction: column; + } } .preview-item-panel { diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx index eafa85b81..dfe44aa70 100644 --- a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx +++ b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx @@ -150,60 +150,58 @@ export default function FundRequestStepCriteria({

{title}

{groups.map((group, index) => ( - -
-
-
{group.title}
- {group.description_html && ( - - )} +
+
+
{group.title}
+ {group.description_html && ( + + )} - {group.required && ( -
-
-
- {translate('form.required')} -
+ {group.required && ( +
+
+
+ {translate('form.required')}
- )} -
- +
+ )} +
+ - {group.criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 && ( -
-
- {group.criteria - .filter((criterion) => criterion.fill_type === 'prefill') - .map((criterion) => ( -
-
- {criterion.title || criterion.title_default} -
-
- {criterion.input_value || '-'} -
+ {group.criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 && ( +
+
+ {group.criteria + .filter((criterion) => criterion.fill_type === 'prefill') + .map((criterion) => ( +
+
+ {criterion.title || criterion.title_default}
- ))} -
+
+ {criterion.input_value || '-'} +
+
+ ))}
- )} +
+ )} - {group.criteria - .filter((criterion) => criterion.fill_type === 'manual') - .map((criterion, index) => ( - - ))} -
- + {group.criteria + .filter((criterion) => criterion.fill_type === 'manual') + .map((criterion, index) => ( + + ))} +
))} {criteria.length > 0 && ( From 31db2dad9eb99933fa06d2a744b89287c0254cec Mon Sep 17 00:00:00 2001 From: Yaroslav Kosterin Date: Thu, 25 Dec 2025 11:14:29 +0200 Subject: [PATCH 03/18] add children age groups, add prefill errors --- .../scss/includes/blocks/block-sign_up.scss | 47 ++-- .../pages/funds-request/FundRequest.tsx | 45 +++- .../FundRequestPersonBsnApiWarning.tsx | 73 ++++++ .../steps/FundRequestStepCriteria.tsx | 228 ++++++++++++------ .../steps/FundRequestStepCriterion.tsx | 39 ++- .../steps/FundRequestValuesOverview.tsx | 80 +++++- .../criteria/FundRequestCriteriaChildren.tsx | 55 +++++ .../criteria/FundRequestCriteriaPartner.tsx | 43 ++++ .../webshop/i18n/nl/pages/fund-request.mjs | 42 ++++ react/src/webshop/services/FundService.ts | 3 +- 10 files changed, 522 insertions(+), 133 deletions(-) create mode 100644 react/src/webshop/components/pages/funds-request/elements/FundRequestPersonBsnApiWarning.tsx create mode 100644 react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaChildren.tsx create mode 100644 react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaPartner.tsx diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss b/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss index a48d850e5..50acdff71 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-sign_up.scss @@ -535,6 +535,11 @@ border: 1px solid var(--border-color); border-radius: var(--border-radius); background-color: #fbfbfb; + margin-bottom: 10px; + + &:last-child { + margin-bottom: 0; + } } .preview-item-values { @@ -549,12 +554,17 @@ justify-content: flex-start; gap: 20px; + .preview-item-values-item-title, .preview-item-values-item-label { display: flex; flex: 0 0 250px; font: 500 13px/20px var(--base-font); } + .preview-item-values-item-title { + font: 700 14px/20px var(--base-font); + } + .preview-item-values-item-value { display: flex; flex: 1 1 auto; @@ -574,6 +584,14 @@ padding: 20px 25px; border-bottom: 1px solid var(--border-color); + .preview-item-panel { + margin-bottom: 5px; + + &:last-child { + margin-bottom: 0; + } + } + .preview-item-files { display: flex; flex-direction: column; @@ -1127,23 +1145,24 @@ } } - .sign_up-request-preview { - .preview-item { - padding: 15px 15px; - - .preview-item-values { - gap: 15px; + .preview-item-values { + gap: 15px; - .preview-item-values-item { - flex-direction: column; - gap: 5px; + .preview-item-values-item { + flex-direction: column; + gap: 5px; - .preview-item-values-item-label { - flex: 0 0 auto; - color: #595959; - } - } + .preview-item-values-item-label, + .preview-item-values-item-title { + flex: 0 0 auto; + color: #595959; } + } + } + + .sign_up-request-preview { + .preview-item { + padding: 15px 15px; .preview-item-files { .preview-item-files-title { diff --git a/react/src/webshop/components/pages/funds-request/FundRequest.tsx b/react/src/webshop/components/pages/funds-request/FundRequest.tsx index 4a16b806c..3de6b63c3 100644 --- a/react/src/webshop/components/pages/funds-request/FundRequest.tsx +++ b/react/src/webshop/components/pages/funds-request/FundRequest.tsx @@ -44,6 +44,7 @@ import FundRequestHelpBlock from './elements/FundRequestHelpBlock'; import FundRequestStepPhysicalCardRequestAddress from './elements/steps/FundRequestStepPhysicalCardRequestAddress'; import { WebshopRoutes } from '../../../modules/state_router/RouterBuilder'; import FundCriteriaGroup from '../../../../dashboard/props/models/FundCriteriaGroup'; +import FundRequestPersonBsnApiWarning from './elements/FundRequestPersonBsnApiWarning'; export type LocalCriterion = FundCriterion & { input_value?: string; @@ -65,6 +66,13 @@ export type FundCriteriaStepLocal = FundCriteriaStep & { groups: Array }>; }; +export type Prefills = { + person: Array<{ record_type_key: string; value: string }>; + partner?: Array<{ record_type_key: string; value: string }>; + children?: Array>; + error?: { key: string; message: string }; +}; + export default function FundRequest() { const { id } = useParams(); const appConfigs = useAppConfigs(); @@ -112,13 +120,14 @@ export default function FundRequest() { const [criteriaStepKeys, setCriteriaStepKeys] = useState([]); const [pendingCriteria, setPendingCriteria] = useState>([]); - const [personPrefills, setPersonPrefills] = useState>(null); + const [personPrefills, setPersonPrefills] = useState(null); const [fund, setFund] = useState(null); const [vouchers, setVouchers] = useState>(null); const [recordTypes, setRecordTypes] = useState>(null); const [fundRequests, setFundRequests] = useState>(null); const [personApiRecordsFetch, setPersonApiRecordsFetch] = useState(false); + const [prefillsError, setPrefillsError] = useState<{ key: string; message: string }>(null); const bsnIsKnown = useMemo(() => !!authIdentity?.bsn, [authIdentity]); const emailSetupShow = useMemo(() => !authIdentity?.email, [authIdentity]); @@ -166,6 +175,11 @@ export default function FundRequest() { const fundSteps = fund.criteria_steps.map((step) => step.id); const hasOrders = pendingCriteria.filter((item) => item.order !== null).length > 0; + const prefillGuards = { + children_same_address_nth: (p: Prefills) => p.children?.length, + partner_same_address_nth: (p: Prefills) => p.partner?.length, + }; + const customSteps = fund.criteria_steps.map( (step): FundCriteriaStepLocal => ({ ...step, @@ -188,6 +202,15 @@ export default function FundRequest() { pendingCriteria .filter((criterion) => criterion.fund_criteria_step_id == step.id) .filter((criterion) => criterion.fund_criteria_group_id === null) + .filter((criterion) => { + if (criterion.fill_type !== 'prefill' || !personPrefills) { + return true; + } + + const guard = prefillGuards[criterion.record_type_key]; + + return guard ? !!guard(personPrefills) : true; + }) .map((criterion) => ({ ...criterion, requested: shouldRequestRecord(criterion) })), 'order', ), @@ -218,7 +241,7 @@ export default function FundRequest() { ); return sortBy(combinedSteps, 'order'); - }, [fund, pendingCriteria, recordTypesByKey, shouldRequestRecord]); + }, [fund, pendingCriteria, personPrefills, recordTypesByKey, shouldRequestRecord]); const setStepByName = useCallback( (stepName: string) => { @@ -519,13 +542,18 @@ export default function FundRequest() { setPersonApiRecordsFetch(true); fundService.getPersonPrefills(fund.id).then((res) => { + if (res.data.error?.key) { + setPrefillsError(res.data.error); + return; + } + setPersonPrefills(res.data); setPendingCriteria((criteria) => { return [ ...criteria.map((criterion) => { if (criterion.fill_type === 'prefill') { - const prefillItem = res.data.filter( + const prefillItem = res.data.person.filter( (item) => item.record_type_key === criterion.record_type_key, )[0]; @@ -653,7 +681,7 @@ export default function FundRequest() { if (shouldRequestRecord(item) && !item.requested && personPrefills && item.fill_type === 'prefill') { addedData.push(item.record_type_key); - const prefillItem = personPrefills.filter( + const prefillItem = personPrefills.person.filter( (prefill) => prefill.record_type_key === item.record_type_key, )[0]; @@ -700,6 +728,10 @@ export default function FundRequest() { } }, [autoSubmit, autoSubmitted, step, steps, submitConfirmCriteria]); + if (prefillsError) { + return ; + } + if ( !fund || !vouchers || @@ -759,6 +791,7 @@ export default function FundRequest() { groups={criterionStep.groups} uploaderTemplate={criterionStep.uploaderTemplate} formDataBuild={formDataBuild} + prefills={personPrefills} setCriterion={(id, update) => { setPendingCriteria((criteria) => { const criterion = criteria.find((item) => item.id == id); @@ -770,7 +803,7 @@ export default function FundRequest() { return [...criteria]; }); }} - recordTypes={recordTypes} + recordTypesByKey={recordTypesByKey} progress={ } bsnWarning={} + prefills={personPrefills} + recordTypesByKey={recordTypesByKey} /> )} diff --git a/react/src/webshop/components/pages/funds-request/elements/FundRequestPersonBsnApiWarning.tsx b/react/src/webshop/components/pages/funds-request/elements/FundRequestPersonBsnApiWarning.tsx new file mode 100644 index 000000000..ebca4dfb6 --- /dev/null +++ b/react/src/webshop/components/pages/funds-request/elements/FundRequestPersonBsnApiWarning.tsx @@ -0,0 +1,73 @@ +import React, { useMemo } from 'react'; +import Fund from '../../../../props/models/Fund'; +import TranslateHtml from '../../../../../dashboard/components/elements/translate-html/TranslateHtml'; +import BlockShowcase from '../../../elements/block-showcase/BlockShowcase'; +import BlockLoader from '../../../elements/block-loader/BlockLoader'; +import useAssetUrl from '../../../../hooks/useAssetUrl'; +import useTranslate from '../../../../../dashboard/hooks/useTranslate'; +import StateNavLink from '../../../../modules/state_router/StateNavLink'; +import { WebshopRoutes } from '../../../../modules/state_router/RouterBuilder'; + +export default function FundRequestPersonBsnApiWarning({ + fund, + prefillsError, +}: { + fund: Fund; + prefillsError: { key: string; message: string }; +}) { + const assetUrl = useAssetUrl(); + const translate = useTranslate(); + + const errorKey = useMemo( + () => + ({ + not_found: 'not_found', + connection_error: 'connection_error', + taken_by_partner: 'taken_by_partner', + not_filled_required_criteria: 'not_filled_required_criteria', + })[prefillsError?.key] || 'connection_error', + [prefillsError?.key], + ); + + return ( + }> +
+
+
+
+

+ {translate(`fund_request.cards.${errorKey}.title`)} +

+
+
+

+ {translate(`fund_request.cards.${errorKey}.heading`)} +

+

+ +

+
+ icon sign-up error +
+

+ {translate(`fund_request.cards.${errorKey}.contacts`, { + name: fund.organization.name, + })} +

+
+ + {translate('fund_request.cards.back')} + +
+
+
+
+
+
+
+
+
+ ); +} diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx index dfe44aa70..9268f4b45 100644 --- a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx +++ b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriteria.tsx @@ -1,7 +1,7 @@ -import React, { Fragment, useCallback, useState } from 'react'; +import React, { Fragment, useCallback, useMemo, useState } from 'react'; import Fund from '../../../../../props/models/Fund'; import useTranslate from '../../../../../../dashboard/hooks/useTranslate'; -import { LocalCriterion } from '../../FundRequest'; +import { LocalCriterion, Prefills } from '../../FundRequest'; import RecordType from '../../../../../../dashboard/props/models/RecordType'; import { ResponseError } from '../../../../../../dashboard/props/ApiResponses'; import { useFundRequestService } from '../../../../../services/FundRequestService'; @@ -12,6 +12,8 @@ import FundRequestStepCriterion from './FundRequestStepCriterion'; import FundCriteriaGroup from '../../../../../../dashboard/props/models/FundCriteriaGroup'; import FormError from '../../../../../../dashboard/components/elements/forms/errors/FormError'; import Markdown from '../../../../elements/markdown/Markdown'; +import FundRequestCriteriaPartner from './criteria/FundRequestCriteriaPartner'; +import FundRequestCriteriaChildren from './criteria/FundRequestCriteriaChildren'; export default function FundRequestStepCriteria({ fund, @@ -23,13 +25,14 @@ export default function FundRequestStepCriteria({ progress, bsnWarning, criteria, - recordTypes, + recordTypesByKey, submitInProgress, setSubmitInProgress, uploaderTemplate, formDataBuild, setCriterion, groups, + prefills, }: { fund: Fund; step: number; @@ -40,13 +43,14 @@ export default function FundRequestStepCriteria({ progress: React.ReactElement; bsnWarning: React.ReactElement; criteria: Array; - recordTypes: Array; + recordTypesByKey: { [_key: string]: RecordType }; submitInProgress: boolean; uploaderTemplate: 'default' | 'inline'; setSubmitInProgress: React.Dispatch>; formDataBuild: (criteria: Array) => object; setCriterion: (index: number, update: Partial) => void; groups: Array }>; + prefills: Prefills; }) { const translate = useTranslate(); const setProgress = useSetProgress(); @@ -55,6 +59,15 @@ export default function FundRequestStepCriteria({ const [errors, setErrors] = useState({}); + const hasPrefills = useMemo(() => { + return ( + criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 || + groups + .map((group) => group.criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0) + .filter((group) => group).length > 0 + ); + }, [criteria, groups]); + // Submit or Validate record criteria const validateCriteria = useCallback( async (criteria: Array): Promise => { @@ -149,96 +162,151 @@ export default function FundRequestStepCriteria({ }}>

{title}

- {groups.map((group, index) => ( -
-
-
{group.title}
- {group.description_html && ( - +
+ {hasPrefills && ( + +
+ {translate('fund_request.prefills.title')} +
+ + {fund.help_enabled && ( +
{translate('fund_request.prefills.subtitle')}
)} +
+ )} - {group.required && ( -
-
-
- {translate('form.required')} + {groups.map((group, index) => ( + +
+
{group.title}
+ {group.description_html && ( + + )} + + {group.required && ( +
+
+
+ {translate('form.required')} +
+ )} +
+ + + {group.criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 && ( +
+
+ {group.criteria + .filter((criterion) => criterion.fill_type === 'prefill') + .map((criterion) => ( +
+
+ {criterion.title || criterion.title_default} +
+
+ {criterion.input_value || '-'} +
+
+ ))} +
)} -
- - {group.criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 && ( -
-
- {group.criteria + {group.criteria + .filter((criterion) => criterion.fill_type === 'manual') + .map((criterion, index) => ( + + ))} + + ))} + + {criteria.length > 0 && ( + + {criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 && ( + + {criteria .filter((criterion) => criterion.fill_type === 'prefill') - .map((criterion) => ( -
-
- {criterion.title || criterion.title_default} -
-
- {criterion.input_value || '-'} -
-
- ))} -
-
- )} + .filter((criterion) => criterion.record_type_key === 'partner_same_address_nth') + .length > 0 && + prefills.partner.length > 0 && ( + + )} - {group.criteria - .filter((criterion) => criterion.fill_type === 'manual') - .map((criterion, index) => ( - - ))} -
- ))} + {criteria + .filter((criterion) => criterion.fill_type === 'prefill') + .filter( + (criterion) => criterion.record_type_key === 'children_same_address_nth', + ).length > 0 && + prefills.children.length > 0 && ( + + )} - {criteria.length > 0 && ( -
- {criteria.filter((criterion) => criterion.fill_type === 'prefill').length > 0 && ( -
-
{criteria .filter((criterion) => criterion.fill_type === 'prefill') - .map((criterion) => ( -
-
- {criterion.title || criterion.title_default} -
-
- {criterion.input_value || '-'} -
+ .filter( + (criterion) => + !['children_same_address_nth', 'partner_same_address_nth'].includes( + criterion.record_type_key, + ), + ).length > 0 && ( +
+
+ {criteria + .filter((criterion) => criterion.fill_type === 'prefill') + .filter( + (criterion) => + ![ + 'children_same_address_nth', + 'partner_same_address_nth', + ].includes(criterion.record_type_key), + ) + .map((criterion) => ( +
+
+ {criterion.title || criterion.title_default} +
+
+ {criterion.input_value || '-'} +
+
+ ))}
- ))} -
-
- )} +
+ )} + + )} - {criteria - .filter((criterion) => criterion.fill_type === 'manual') - .map((criterion, index) => ( - - ))} -
- )} + {criteria + .filter((criterion) => criterion.fill_type === 'manual') + .map((criterion, index) => ( + + ))} + + )} +
; + recordTypesByKey: { [_key: string]: RecordType }; uploaderTemplate: 'default' | 'inline'; setCriterion: (index: number, update: Partial) => void; isGroup?: boolean; }) { const translate = useTranslate(); - const recordTypesByKey = useMemo(() => { - return recordTypes?.reduce((acc, type) => ({ ...acc, [type.key]: type }), {}); - }, [recordTypes]); - const isLabelRequired = useCallback( (criteria: LocalCriterion) => { return !criteria.optional && fund.criteria_label_requirement_show !== 'optional'; @@ -217,20 +213,21 @@ export default function FundRequestStepCriterion({
- {criterion.show_attachment && ( - { - setCriterion(criterion.id, { - files, - files_uid: files.map((file) => file.uid), - }); - }} - /> - )} + {criterion.show_attachment && + (criterion.control_type !== 'ui_control_checkbox' || criterion.input_value === criterion.value) && ( + { + setCriterion(criterion.id, { + files, + files_uid: files.map((file) => file.uid), + }); + }} + /> + )} diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestValuesOverview.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestValuesOverview.tsx index 0fa29c9cb..da6117476 100644 --- a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestValuesOverview.tsx +++ b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestValuesOverview.tsx @@ -1,12 +1,15 @@ import React, { Fragment, useCallback, useMemo } from 'react'; import FileUploader from '../../../../elements/file-uploader/FileUploader'; -import { FundCriteriaStepLocal, LocalCriterion } from '../../FundRequest'; +import { FundCriteriaStepLocal, LocalCriterion, Prefills } from '../../FundRequest'; import useTranslate from '../../../../../../dashboard/hooks/useTranslate'; import SignUpFooter from '../../../../elements/sign-up/SignUpFooter'; import FundRequestHelpBlock from '../FundRequestHelpBlock'; import Fund from '../../../../../props/models/Fund'; import FileModel from '../../../../../../dashboard/props/models/File'; import Markdown from '../../../../elements/markdown/Markdown'; +import FundRequestCriteriaPartner from './criteria/FundRequestCriteriaPartner'; +import FundRequestCriteriaChildren from './criteria/FundRequestCriteriaChildren'; +import RecordType from '../../../../../../dashboard/props/models/RecordType'; export default function FundRequestValuesOverview({ fund, @@ -18,6 +21,8 @@ export default function FundRequestValuesOverview({ onPrevStep, progress, bsnWarning, + prefills, + recordTypesByKey, }: { fund: Fund; address: { @@ -34,6 +39,8 @@ export default function FundRequestValuesOverview({ onPrevStep: () => void; progress: React.ReactElement; bsnWarning: React.ReactElement; + prefills: Prefills; + recordTypesByKey: { [_key: string]: RecordType }; }) { const translate = useTranslate(); @@ -51,16 +58,23 @@ export default function FundRequestValuesOverview({ ); }, [criteriaSteps]); - const criterionValue = useCallback((criterion: LocalCriterion) => { - if (criterion.record_type.type === 'select' || criterion.record_type.type === 'select_number') { - return ( - criterion.record_type?.options?.find((item) => item?.value === criterion.input_value)?.name || - criterion.input_value - ); - } + const criterionValue = useCallback( + (criterion: LocalCriterion, inGroup: boolean = false) => { + if (criterion.record_type.type === 'select' || criterion.record_type.type === 'select_number') { + return ( + criterion.record_type?.options?.find((item) => item?.value === criterion.input_value)?.name || + criterion.input_value + ); + } + + if (inGroup && criterion.record_type.type === 'bool' && criterion.record_type.control_type === 'checkbox') { + return criterion.input_value || translate('fund_request.options.no'); + } - return criterion.input_value; - }, []); + return criterion.input_value; + }, + [translate], + ); return ( @@ -117,7 +131,7 @@ export default function FundRequestValuesOverview({ {criterion.title || criterion.title_default}
- {criterionValue(criterion)} + {criterionValue(criterion, true)}
))} @@ -144,11 +158,53 @@ export default function FundRequestValuesOverview({ ))} - {step.criteria.filter((item) => item.requested).length > 0 && ( + {step.criteria + .filter((criterion) => criterion.fill_type === 'prefill') + .filter((criterion) => criterion.record_type_key === 'partner_same_address_nth') + .length > 0 && + prefills.partner.length > 0 && ( + + )} + + {step.criteria + .filter((criterion) => criterion.fill_type === 'prefill') + .filter((criterion) => criterion.record_type_key === 'children_same_address_nth') + .length > 0 && + prefills.children.length > 0 && ( + + )} + + {step.criteria + .filter((item) => item.requested) + .filter( + (criterion) => + !( + criterion.fill_type === 'prefill' && + ['children_same_address_nth', 'partner_same_address_nth'].includes( + criterion.record_type_key, + ) + ), + ).length > 0 && (
{step.criteria .filter((item) => item.requested) + .filter( + (criterion) => + !( + criterion.fill_type === 'prefill' && + [ + 'children_same_address_nth', + 'partner_same_address_nth', + ].includes(criterion.record_type_key) + ), + ) .map((criterion) => (
diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaChildren.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaChildren.tsx new file mode 100644 index 000000000..748729c9a --- /dev/null +++ b/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaChildren.tsx @@ -0,0 +1,55 @@ +import React, { Fragment, useCallback } from 'react'; +import useTranslate from '../../../../../../../dashboard/hooks/useTranslate'; +import RecordType from '../../../../../../../dashboard/props/models/RecordType'; +import { Prefills } from '../../../FundRequest'; +import { upperFirst } from 'lodash'; + +export default function FundRequestCriteriaChildren({ + prefills, + recordTypesByKey, +}: { + prefills: Prefills; + recordTypesByKey: { [_key: string]: RecordType }; +}) { + const translate = useTranslate(); + + const splitChildLabel = useCallback((text?: string) => { + const match = text ? text.match(/^(Child\s+\d+)\s+(.+)$/) : null; + return match ? { child: match[1], value: upperFirst(match[2]) } : null; + }, []); + + return ( + +
+
{translate('fund_request.prefills.children')}
+
+ + {prefills.children.map((childObject, index) => ( +
+
+ {childObject + .filter((child) => !child.record_type_key.endsWith('_bsn')) + .map((child, index) => ( + + {index === 0 && ( +
+
+ {splitChildLabel(recordTypesByKey[child.record_type_key]?.name)?.child} +
+
+ )} + +
+
+ {splitChildLabel(recordTypesByKey[child.record_type_key]?.name)?.value} +
+
{child.value || '-'}
+
+
+ ))} +
+
+ ))} +
+ ); +} diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaPartner.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaPartner.tsx new file mode 100644 index 000000000..d160e7bdb --- /dev/null +++ b/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaPartner.tsx @@ -0,0 +1,43 @@ +import React, { Fragment, useCallback } from 'react'; +import useTranslate from '../../../../../../../dashboard/hooks/useTranslate'; +import RecordType from '../../../../../../../dashboard/props/models/RecordType'; +import { Prefills } from '../../../FundRequest'; +import { upperFirst } from 'lodash'; + +export default function FundRequestCriteriaPartner({ + prefills, + recordTypesByKey, +}: { + prefills: Prefills; + recordTypesByKey: { [_key: string]: RecordType }; +}) { + const translate = useTranslate(); + + const splitPartnerLabel = useCallback((text?: string) => { + const match = text ? text.match(/^(Partner)\s+(.+)$/) : null; + return match ? { partner: match[1], value: upperFirst(match[2]) } : null; + }, []); + + return ( + +
+
{translate('fund_request.prefills.partner')}
+
+ +
+
+ {prefills.partner + .filter((partner) => !partner.record_type_key.endsWith('_bsn')) + .map((partner, index) => ( +
+
+ {splitPartnerLabel(recordTypesByKey[partner.record_type_key]?.name)?.value} +
+
{partner.value || '-'}
+
+ ))} +
+
+
+ ); +} diff --git a/react/src/webshop/i18n/nl/pages/fund-request.mjs b/react/src/webshop/i18n/nl/pages/fund-request.mjs index f3eca749b..911824fbb 100644 --- a/react/src/webshop/i18n/nl/pages/fund-request.mjs +++ b/react/src/webshop/i18n/nl/pages/fund-request.mjs @@ -232,4 +232,46 @@ export default { kindpakket_2018_eligible: 'Ja, ik verklaar dat ik recht heb op kindpakket.', }, }, + options: { + no: 'Nee', + }, + prefills: { + title: 'Check that your information is correct.', + subtitle: 'If your information is incorrect, please contact us using the button below.', + children: 'Children', + child: 'Child', + partner: "Partner's details", + }, + cards: { + back: 'Terug', + + taken_by_partner: { + title: 'Dit tegoed is al geactiveerd', + heading: 'Aanvraag mislukt', + description: + 'U krijgt deze melding omdat het tegoed is geactiveerd door een
familielid of voogd.

De tegoeden zijn beschikbaar in het account van de persoon die
deze als eerste heeft geactiveerd.', + contacts: 'Neem voor vragen contact op met {{name}}.', + }, + not_filled_required_criteria: { + title: 'Dit tegoed is al geactiveerd', + heading: 'Aanvraag mislukt', + description: + 'U krijgt deze melding omdat het tegoed is geactiveerd door een
familielid of voogd.

De tegoeden zijn beschikbaar in het account van de persoon die
deze als eerste heeft geactiveerd.', + contacts: 'Neem voor vragen contact op met {{name}}.', + }, + connection_error: { + title: 'Dit tegoed is al geactiveerd', + heading: 'Aanvraag mislukt', + description: + 'U krijgt deze melding omdat het tegoed is geactiveerd door een
familielid of voogd.

De tegoeden zijn beschikbaar in het account van de persoon die
deze als eerste heeft geactiveerd.', + contacts: 'Neem voor vragen contact op met {{name}}.', + }, + not_found: { + title: 'Dit tegoed is al geactiveerd', + heading: 'Aanvraag mislukt', + description: + 'U krijgt deze melding omdat het tegoed is geactiveerd door een
familielid of voogd.

De tegoeden zijn beschikbaar in het account van de persoon die
deze als eerste heeft geactiveerd.', + contacts: 'Neem voor vragen contact op met {{name}}.', + }, + }, }; diff --git a/react/src/webshop/services/FundService.ts b/react/src/webshop/services/FundService.ts index dff3efcde..4cb7a9918 100644 --- a/react/src/webshop/services/FundService.ts +++ b/react/src/webshop/services/FundService.ts @@ -5,6 +5,7 @@ import { format } from 'date-fns'; import Fund from '../props/models/Fund'; import Voucher from '../../dashboard/props/models/Voucher'; import RecordType from '../../dashboard/props/models/RecordType'; +import { Prefills } from '../components/pages/funds-request/FundRequest'; export class FundService { /** @@ -58,7 +59,7 @@ export class FundService { return this.apiRequest.post(`${this.prefix}/redeem`, { code }); } - public getPersonPrefills(id: number): Promise>> { + public getPersonPrefills(id: number): Promise> { return this.apiRequest.get(`${this.prefix}/${id}/prefills`); } From 20059cf4d99d476f2b4bea7fc7d32ed191d447f9 Mon Sep 17 00:00:00 2001 From: Yaroslav Kosterin Date: Mon, 29 Dec 2025 13:40:08 +0200 Subject: [PATCH 04/18] show only criteria records in fund request on webshop --- .../elements/FundRequestRecordsBlock.tsx | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/react/src/webshop/components/pages/fund-requests-show/elements/FundRequestRecordsBlock.tsx b/react/src/webshop/components/pages/fund-requests-show/elements/FundRequestRecordsBlock.tsx index ba5ad1a66..773ec5e22 100644 --- a/react/src/webshop/components/pages/fund-requests-show/elements/FundRequestRecordsBlock.tsx +++ b/react/src/webshop/components/pages/fund-requests-show/elements/FundRequestRecordsBlock.tsx @@ -1,4 +1,4 @@ -import React, { Dispatch, Fragment, SetStateAction } from 'react'; +import React, { Dispatch, Fragment, SetStateAction, useMemo } from 'react'; import FundRequest from '../../../../../dashboard/props/models/FundRequest'; import useTranslate from '../../../../../dashboard/hooks/useTranslate'; import FundRequestRecordsBlockItem from './FundRequestRecordsBlockItem'; @@ -26,6 +26,17 @@ export default function FundRequestRecordsBlock({ }) { const translate = useTranslate(); + const visibleRecordTypeKeys = useMemo(() => { + return ( + fundRequest?.fund?.criteria + ?.filter( + (criterion) => + !['children_same_address_nth', 'partner_same_address_nth'].includes(criterion.record_type_key), + ) + .map((criterion) => criterion.record_type_key) || [] + ); + }, [fundRequest?.fund?.criteria]); + return (
@@ -41,20 +52,22 @@ export default function FundRequestRecordsBlock({ className="fund-request-records" aria-labelledby="fund-request-records-title" aria-describedby="fund-request-records-subtitle"> - {fundRequest?.records.map((record) => ( - - ))} + {fundRequest?.records + .filter((record) => visibleRecordTypeKeys.includes(record.record_type_key)) + .map((record) => ( + + ))}
); From fa592245a5abd8e2f873237ac572ffc9eb2324df Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Wed, 31 Dec 2025 20:50:07 +0200 Subject: [PATCH 05/18] new file-uploader template for fund-criteria-groups --- .../includes/blocks/block-file-uploader.scss | 150 ++++++++++++++++++ .../elements/file-uploader/FileUploader.tsx | 9 +- .../file-uploader/FileUploaderItemView.tsx | 15 +- .../steps/FundRequestStepCriterion.tsx | 3 +- 4 files changed, 170 insertions(+), 7 deletions(-) diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-file-uploader.scss b/react/assets/forus-webshop/scss/includes/blocks/block-file-uploader.scss index d5192646f..510995003 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-file-uploader.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-file-uploader.scss @@ -326,6 +326,140 @@ } } + &.block-file-uploader-group { + flex-direction: column-reverse; + gap: 16px; + padding: 18px 20px; + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + box-shadow: var(--box-shadow); + background: #fbfbfb; + + .droparea-icon, + .droparea-title, + .droparea-hidden-input { + display: none; + } + + .uploader-droparea { + display: flex; + padding: 0; + background: none; + border: none; + flex-direction: row; + justify-content: flex-start; + align-items: center; + gap: 18px; + + .droparea-button { + .button { + padding: 10px 20px; + gap: 10px; + font: 600 15px/22px var(--base-font); + border-radius: var(--button-border-radius); + } + } + + .droparea-max-limit { + color: #5c6170; + font-size: 14px; + font-weight: 500; + line-height: 20px; + font-family: var(--base-font), serif; + } + } + + .uploader-files { + gap: 10px; + + .uploader-files-title { + display: flex; + align-items: center; + font: 700 18px/24px var(--base-font); + gap: 10px; + + .uploader-files-title-count { + padding: 2px 10px; + background: #ffffff; + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + font: 600 14px/20px var(--base-font); + color: #222633; + } + } + + .file-item { + .file-item-container { + padding: 9px 12px; + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + box-shadow: var(--box-shadow); + align-items: center; + background: #fff; + } + + .file-item-name { + font: 600 13px/22px var(--base-font); + color: #2a2f3a; + width: auto; + flex: 1 1 auto; + } + + .file-item-progress { + flex: 1 1 35%; + padding-left: 12px; + align-items: center; + gap: 10px; + flex-direction: row; + min-width: 160px; + + .file-item-progress-container { + background-color: var(--border-color); + flex: 1 1 auto; + border-radius: 999px; + + progress[value] { + height: 6px; + width: 100%; + display: block; + border-radius: 999px; + + &::-webkit-progress-bar { + background-color: var(--border-color); + border-radius: 999px; + } + + &::-webkit-progress-value { + background-color: var(--color-primary); + border-radius: 999px; + } + + &::-moz-progress-bar { + background-color: var(--color-primary); + border-radius: 999px; + } + } + } + + .file-item-progress-value { + font: 600 13px/20px var(--base-font); + color: #5c6170; + } + } + + .file-item-action { + display: flex; + align-items: center; + padding-left: 12px; + + .mdi { + font-size: 18px; + } + } + } + } + } + @media (max-width: 991px) { .uploader-droparea { border: none; @@ -337,5 +471,21 @@ display: none; } } + + &.block-file-uploader-group { + .uploader-droparea { + flex-direction: column; + align-items: stretch; + + .droparea-button { + width: 100%; + + .button { + width: 100%; + justify-content: center; + } + } + } + } } } diff --git a/react/src/webshop/components/elements/file-uploader/FileUploader.tsx b/react/src/webshop/components/elements/file-uploader/FileUploader.tsx index 9f4c8d091..532863099 100644 --- a/react/src/webshop/components/elements/file-uploader/FileUploader.tsx +++ b/react/src/webshop/components/elements/file-uploader/FileUploader.tsx @@ -68,7 +68,7 @@ export default function FileUploader({ | 'product_reservation_custom_field'; title?: string; files?: Array; - template?: 'default' | 'compact' | 'inline'; + template?: 'default' | 'compact' | 'inline' | 'group'; hideInlineTitle?: boolean; allowMultiple?: boolean; maxFiles?: number; @@ -298,6 +298,7 @@ export default function FileUploader({ className={classNames('block', 'block-file-uploader', { 'block-file-uploader-compact': template === 'compact', 'block-file-uploader-inline': template === 'inline', + 'block-file-uploader-group': template === 'group', })} data-dusk="fileUploader"> {translate('global.file_uploader.max_size')}
)} - {(template === 'inline' || template === 'compact') && effectiveMaxFiles && ( + {(template === 'inline' || template === 'compact' || template === 'group') && effectiveMaxFiles && (
{translate('global.file_uploader.max_files', { count: effectiveMaxFiles })}
@@ -365,7 +366,7 @@ export default function FileUploader({ {fileItems.length > 0 && (
- {template === 'inline' && !hideInlineTitle && ( + {(template === 'inline' || template === 'group') && !hideInlineTitle && (
{translate('global.file_uploader.attachments')}
{fileItems.length}
diff --git a/react/src/webshop/components/elements/file-uploader/FileUploaderItemView.tsx b/react/src/webshop/components/elements/file-uploader/FileUploaderItemView.tsx index f10898d53..9bf169d4a 100644 --- a/react/src/webshop/components/elements/file-uploader/FileUploaderItemView.tsx +++ b/react/src/webshop/components/elements/file-uploader/FileUploaderItemView.tsx @@ -18,7 +18,7 @@ export default function FileUploaderItemView({ removeFile, }: { item: FileUploaderItem; - template?: 'default' | 'compact' | 'inline'; + template?: 'default' | 'compact' | 'inline' | 'group'; hidePreviewButton?: boolean; hideDownloadButton?: boolean; readOnly?: boolean; @@ -65,6 +65,16 @@ export default function FileUploaderItemView({ [fileService], ); + const progressValue = useMemo(() => { + const value = Number(item.progress); + + if (!Number.isFinite(value)) { + return 0; + } + + return Math.max(0, Math.min(100, Math.round(value))); + }, [item.progress]); + return (
{name}
- +
+ {template === 'group' &&
{progressValue}%
}
{item.has_preview && !hidePreviewButton && ( diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriterion.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriterion.tsx index 5056781df..d5c81ac09 100644 --- a/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriterion.tsx +++ b/react/src/webshop/components/pages/funds-request/elements/steps/FundRequestStepCriterion.tsx @@ -32,6 +32,7 @@ export default function FundRequestStepCriterion({ isGroup?: boolean; }) { const translate = useTranslate(); + const fileUploaderTemplate: 'default' | 'inline' | 'group' = isGroup ? 'group' : uploaderTemplate; const isLabelRequired = useCallback( (criteria: LocalCriterion) => { @@ -219,7 +220,7 @@ export default function FundRequestStepCriterion({ type="fund_request_record_proof" files={criterion.files} cropMedia={false} - template={uploaderTemplate} + template={fileUploaderTemplate} onFilesChange={({ files }) => { setCriterion(criterion.id, { files, From 47888fa5b767eb291fe8ec37c93fa572ff1c6da8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jan 2026 13:54:06 +0000 Subject: [PATCH 06/18] Bump qs in the npm_and_yarn group across 1 directory Bumps the npm_and_yarn group with 1 update in the / directory: [qs](https://github.com/ljharb/qs). Updates `qs` from 6.13.0 to 6.14.1 - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.13.0...v6.14.1) --- updated-dependencies: - dependency-name: qs dependency-version: 6.14.1 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] --- package-lock.json | 119 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 97 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index becda5c2d..cf96dba0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7685,40 +7685,40 @@ } }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", + "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.13.0", + "qs": "~6.14.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -7746,6 +7746,22 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/express/node_modules/qs": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -12107,15 +12123,73 @@ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -14063,6 +14137,7 @@ "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } From 9cef340b7edce1e31716eb5c010d4280c4beaeed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jan 2026 19:02:31 +0000 Subject: [PATCH 07/18] Bump react-datepicker from 8.0.0 to 9.1.0 Bumps [react-datepicker](https://github.com/Hacker0x01/react-datepicker) from 8.0.0 to 9.1.0. - [Release notes](https://github.com/Hacker0x01/react-datepicker/releases) - [Commits](https://github.com/Hacker0x01/react-datepicker/compare/v8.0.0...v9.1.0) --- updated-dependencies: - dependency-name: react-datepicker dependency-version: 9.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 65 ++++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index becda5c2d..c55c5e858 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "query-string": "^9.1.0", "react": "^18.1.0", "react-chartjs-2": "^5.2.0", - "react-datepicker": "^8.0.0", + "react-datepicker": "^9.1.0", "react-dom": "^18.1.0", "react-error-boundary": "^6.0.0", "react-gtm-module": "^2.0.11", @@ -2159,32 +2159,32 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", - "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.9" + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", - "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.9" + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/react": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz", - "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==", + "version": "0.27.16", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.16.tgz", + "integrity": "sha512-9O8N4SeG2z++TSM8QA/KTeKFBVCNEz/AGS7gWPJf6KFRzmRWixFRnCnkPHRDwSVZW6QPDO6uT0P2SpWNKCc9/g==", "license": "MIT", "dependencies": { - "@floating-ui/react-dom": "^2.1.2", - "@floating-ui/utils": "^0.2.9", + "@floating-ui/react-dom": "^2.1.6", + "@floating-ui/utils": "^0.2.10", "tabbable": "^6.0.0" }, "peerDependencies": { @@ -2193,12 +2193,12 @@ } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", "license": "MIT", "dependencies": { - "@floating-ui/dom": "^1.0.0" + "@floating-ui/dom": "^1.7.4" }, "peerDependencies": { "react": ">=16.8.0", @@ -2206,9 +2206,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", "license": "MIT" }, "node_modules/@googlemaps/js-api-loader": { @@ -11130,18 +11130,24 @@ } }, "node_modules/react-datepicker": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-8.0.0.tgz", - "integrity": "sha512-OmWkFx3BGPXQhBdhFCZyfqR6n2Z5T3WaEXQxz0tdTY6zNntklnIDkaDSYsbKwy7TcyBgeoneG5f4sCwmFPJ4eA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-9.1.0.tgz", + "integrity": "sha512-lOp+m5bc+ttgtB5MHEjwiVu4nlp4CvJLS/PG1OiOe5pmg9kV73pEqO8H0Geqvg2E8gjqTaL9eRhSe+ZpeKP3nA==", "license": "MIT", "dependencies": { - "@floating-ui/react": "^0.27.3", + "@floating-ui/react": "^0.27.15", "clsx": "^2.1.1", "date-fns": "^4.1.0" }, "peerDependencies": { + "date-fns-tz": "^3.0.0", "react": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "date-fns-tz": { + "optional": true + } } }, "node_modules/react-dom": { @@ -12683,9 +12689,9 @@ } }, "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", "license": "MIT" }, "node_modules/tapable": { @@ -14063,6 +14069,7 @@ "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index ef12779bd..b6b87a7b0 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "query-string": "^9.1.0", "react": "^18.1.0", "react-chartjs-2": "^5.2.0", - "react-datepicker": "^8.0.0", + "react-datepicker": "^9.1.0", "react-dom": "^18.1.0", "react-error-boundary": "^6.0.0", "react-gtm-module": "^2.0.11", From c6bf0c8f433c813119f125efb685f97d93cec456 Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Mon, 5 Jan 2026 15:07:25 +0200 Subject: [PATCH 08/18] scss refactoring and cleanup --- .../assets/img/landing/splash-top.png | Bin 567751 -> 0 bytes .../_common/blocks/block-breadcrumbs.scss | 2 +- .../_common/blocks/block-card-toggleable.scss | 30 - .../scss/_common/blocks/block-charts.scss | 169 + .../scss/_common/blocks/block-chat.scss | 2 +- .../_common/blocks/block-collapsable.scss | 36 - .../blocks/block-compact-datalist.scss | 69 + .../_common/blocks/block-critera-editor.scss | 2 +- .../scss/_common/blocks/block-csv.scss | 150 + .../_common/blocks/block-danger_zone.scss | 2 +- .../_common/blocks/block-email-confirmed.scss | 40 + .../scss/_common/blocks/block-empty.scss | 44 + .../_common/blocks/block-entity-overview.scss | 34 + .../blocks/block-external-validators.scss | 85 - .../scss/_common/blocks/block-faq-editor.scss | 2 +- .../scss/_common/blocks/block-file.scss | 89 + .../_common/blocks/block-form_tooltip.scss | 115 + .../scss/_common/blocks/block-fund.scss | 2 +- .../scss/_common/blocks/block-info.scss | 56 + .../_common/blocks/block-information.scss | 37 + .../_common/blocks/block-inline-filters.scss | 247 + .../scss/_common/blocks/block-login.scss | 260 + .../_common/blocks/block-mail_preview.scss | 17 +- .../scss/_common/blocks/block-message.scss | 14 + .../_common/blocks/block-notifications.scss | 2 +- .../blocks/block-page-loading-bar.scss | 36 + .../_common/blocks/block-pdf-preview.scss | 10 + .../_common/blocks/block-photo-selector.scss | 44 + .../_common/blocks/block-preferences.scss | 35 + .../scss/_common/blocks/block-qr-code.scss | 34 + .../_common/blocks/block-schedule-editor.scss | 88 + .../scss/_common/blocks/block-sessions.scss | 3 +- .../scss/_common/blocks/block-sign_up.scss | 1041 +++ .../_common/blocks/block-tooltip-details.scss | 177 + .../_common/blocks/block-user_emails.scss | 81 + .../_common/card-blocks/card-block-bank.scss | 72 + .../card-blocks/card-block-financial.scss | 27 + .../_common/card-blocks/card-block-fund.scss | 61 + .../card-blocks/card-block-keyvalue.scss | 300 + .../card-blocks/card-block-listing.scss | 67 + .../_common/card-blocks/card-block-notes.scss | 65 + .../card-blocks/card-block-provider.scss | 71 + .../card-block-request-record.scss | 27 + .../card-blocks/card-block-schedule.scss | 10 + .../_common/card-blocks/card-block-table.scss | 3 + .../scss/_common/components/app.scss | 612 ++ .../scss/_common/components/card-heading.scss | 38 + .../scss/_common/components/card.scss | 521 ++ .../_common/components/signup-layout.scss | 313 + .../scss/_common/dashboard.scss | 6605 +---------------- .../_common/dropdown/dropdown-actions.scss | 10 +- .../scss/_common/includes/common.scss | 7 + .../scss/_common/includes/ie.scss | 104 - .../forus-platform/scss/_common/landing.scss | 185 - .../scss/_common/modals/modal-2fa-setup.scss | 17 + .../_common/modals/modal-bulk-upload.scss | 2 +- .../_common/modals/modal-feature-contact.scss | 92 + .../_common/modals/modal-fund-offers.scss | 15 + .../modals/modal-fund-unsubscribe.scss | 60 + .../_common/modals/modal-image-preview.scss | 28 + .../_common/modals/modal-pdf-preview.scss | 39 + .../_common/modals/modal-photo-upload.scss | 2 +- .../scss/_common/modals/modal-pin-code.scss | 2 +- .../modal-provider-products-required.scss | 2 +- .../_common/modals/modal-voucher-create.scss | 11 + .../modals/modal-voucher-transaction.scss | 2 +- .../scss/_common/modals/modal-voucher_qr.scss | 45 + .../modals.scss => modals/modal.scss} | 336 - .../includes/blocks/block-auth-widget.scss | 177 - .../blocks/{map.scss => block-map.scss} | 0 .../scss/includes/blocks/block-map_card.scss | 90 - .../includes/blocks/block-mobile-menu.scss | 2 - .../scss/includes/blocks/block-sessions.scss | 1 - .../{vouchers.scss => block-vouchers.scss} | 0 .../blocks/{_block.scss => block.scss} | 0 .../scss/includes/blocks/cards.scss | 148 - .../includes/blocks/fund-add-records.scss | 149 - .../scss/includes/blocks/fund_criteria.scss | 133 - .../scss/includes/blocks/phone-number.scss | 28 - .../includes/blocks/record_categories.scss | 57 - .../scss/includes/blocks/records.scss | 134 - .../scss/includes/blocks/validations.scss | 140 - .../scss/includes/blocks/validators.scss | 128 - .../_modals.scss => modals/modal.scss} | 0 .../sections/{_section.scss => section.scss} | 0 react/assets/forus-webshop/scss/webshop.scss | 21 +- .../FundCriteriaEditor.tsx | 10 +- .../FundFormCriteriaCard.tsx | 2 - react/src/dashboard/i18n/i18n-nl.js | 46 - .../i18n/nl/directives/fund-criterion.mjs | 1 - .../webshop/i18n/nl/directives/google-map.mjs | 1 - .../src/webshop/i18n/nl/modals/modal-auth.mjs | 1 - .../src/webshop/i18n/nl/pages/error-page.mjs | 1 - .../webshop/i18n/nl/pages/fund-activate.mjs | 1 - .../nl/pages/fund-request-clarification.mjs | 1 - .../webshop/i18n/nl/pages/fund-request.mjs | 1 - react/src/webshop/i18n/nl/pages/fund.mjs | 1 - react/src/webshop/i18n/nl/pages/funds.mjs | 1 - react/src/webshop/i18n/nl/pages/home.mjs | 1 - .../i18n/nl/pages/record-validations.mjs | 1 - .../webshop/i18n/nl/pages/records-create.mjs | 1 - .../i18n/nl/pages/records-validate.mjs | 1 - react/src/webshop/i18n/nl/pages/records.mjs | 1 - react/src/webshop/i18n/nl/pages/signup.mjs | 1 - 104 files changed, 5482 insertions(+), 8605 deletions(-) delete mode 100644 react/assets/forus-platform/resources/_platform-common/assets/img/landing/splash-top.png delete mode 100644 react/assets/forus-platform/scss/_common/blocks/block-card-toggleable.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-charts.scss delete mode 100644 react/assets/forus-platform/scss/_common/blocks/block-collapsable.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-compact-datalist.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-csv.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-email-confirmed.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-empty.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-entity-overview.scss delete mode 100644 react/assets/forus-platform/scss/_common/blocks/block-external-validators.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-file.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-form_tooltip.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-info.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-information.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-inline-filters.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-login.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-message.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-page-loading-bar.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-pdf-preview.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-photo-selector.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-preferences.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-qr-code.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-schedule-editor.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-sign_up.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-tooltip-details.scss create mode 100644 react/assets/forus-platform/scss/_common/blocks/block-user_emails.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-bank.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-financial.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-fund.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-keyvalue.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-listing.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-notes.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-provider.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-request-record.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-schedule.scss create mode 100644 react/assets/forus-platform/scss/_common/card-blocks/card-block-table.scss create mode 100644 react/assets/forus-platform/scss/_common/components/app.scss create mode 100644 react/assets/forus-platform/scss/_common/components/card-heading.scss create mode 100644 react/assets/forus-platform/scss/_common/components/card.scss create mode 100644 react/assets/forus-platform/scss/_common/components/signup-layout.scss delete mode 100644 react/assets/forus-platform/scss/_common/includes/ie.scss create mode 100644 react/assets/forus-platform/scss/_common/modals/modal-2fa-setup.scss create mode 100644 react/assets/forus-platform/scss/_common/modals/modal-feature-contact.scss create mode 100644 react/assets/forus-platform/scss/_common/modals/modal-fund-offers.scss create mode 100644 react/assets/forus-platform/scss/_common/modals/modal-fund-unsubscribe.scss create mode 100644 react/assets/forus-platform/scss/_common/modals/modal-image-preview.scss create mode 100644 react/assets/forus-platform/scss/_common/modals/modal-pdf-preview.scss create mode 100644 react/assets/forus-platform/scss/_common/modals/modal-voucher-create.scss create mode 100644 react/assets/forus-platform/scss/_common/modals/modal-voucher_qr.scss rename react/assets/forus-platform/scss/_common/{components/modals.scss => modals/modal.scss} (61%) delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/block-auth-widget.scss rename react/assets/forus-webshop/scss/includes/blocks/{map.scss => block-map.scss} (100%) delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/block-map_card.scss rename react/assets/forus-webshop/scss/includes/blocks/{vouchers.scss => block-vouchers.scss} (100%) rename react/assets/forus-webshop/scss/includes/blocks/{_block.scss => block.scss} (100%) delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/cards.scss delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/fund-add-records.scss delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/fund_criteria.scss delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/phone-number.scss delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/record_categories.scss delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/records.scss delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/validations.scss delete mode 100644 react/assets/forus-webshop/scss/includes/blocks/validators.scss rename react/assets/forus-webshop/scss/includes/{components/_modals.scss => modals/modal.scss} (100%) rename react/assets/forus-webshop/scss/includes/sections/{_section.scss => section.scss} (100%) diff --git a/react/assets/forus-platform/resources/_platform-common/assets/img/landing/splash-top.png b/react/assets/forus-platform/resources/_platform-common/assets/img/landing/splash-top.png deleted file mode 100644 index 687e52fa1258ca73a2b5c58b0cabbc2a780407e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567751 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
Qw| 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≫fY)O|YAx<;Rjq`s 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�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 Jwe7W!;EC0|@bx4^R( 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�xvn11|Ti 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

b5{XRd{U?>E$lo9ODKf%{!69$)_#g4 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 diff --git a/react/assets/forus-platform/scss/_common/blocks/block-breadcrumbs.scss b/react/assets/forus-platform/scss/_common/blocks/block-breadcrumbs.scss index f1927fc37..fa80d4235 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-breadcrumbs.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-breadcrumbs.scss @@ -1,4 +1,4 @@ -&.block-breadcrumbs { +.block.block-breadcrumbs { display: flex; flex-direction: row; margin: 0 0 15px; diff --git a/react/assets/forus-platform/scss/_common/blocks/block-card-toggleable.scss b/react/assets/forus-platform/scss/_common/blocks/block-card-toggleable.scss deleted file mode 100644 index e11da37ca..000000000 --- a/react/assets/forus-platform/scss/_common/blocks/block-card-toggleable.scss +++ /dev/null @@ -1,30 +0,0 @@ -&.block-card-toggleable { - display: flex; - flex-direction: column; - - .block-title { - font: 500 13px var(--base-font); - color: #646f79; - margin: 0 0 5px; - } - - .card-toggleable { - display: flex; - flex-direction: row; - width: 100%; - border-bottom: 1px solid var(--border-color); - padding: 10px 0; - - .card-toggleable-label { - display: flex; - flex-grow: 1; - font: 500 16px/24px var(--base-font); - } - - .button { - margin: -4px 0; - font: 500 12px/20px var(--base-font); - padding: 5px 10px; - } - } -} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-charts.scss b/react/assets/forus-platform/scss/_common/blocks/block-charts.scss new file mode 100644 index 000000000..d8d44e446 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-charts.scss @@ -0,0 +1,169 @@ +.block.block-charts { + .chart-row { + display: flex; + margin: 0 -10px 20px; + + .card { + width: 25%; + margin: 0 10px; + } + + &.chart-row-condensed { + .chart-control { + margin: 0 auto; + } + + .chart-radial { + width: 70px; + margin: auto; + } + + .chart-value { + min-height: auto; + padding: 10px 0; + + .chart-value_label { + color: var(--color-primary); + } + + .chart-value_value { + color: var(--color-primary); + } + } + } + } + + .chart-control { + margin: -10px 0; + display: flex; + flex-direction: column; + text-align: center; + cursor: default; + + .chart-label { + color: #151b26; + font: 500 13px/18px var(--base-font); + margin-bottom: 20px; + } + + .chart-value { + padding: 50px 0 20px; + display: flex; + flex-direction: column; + min-height: 180px; + + .chart-value_value { + color: #007f96; + font: 500 26px/32px var(--base-font); + } + + .chart-value_label { + color: var(--color-primary); + font: 500 11px/18px var(--base-font); + } + + .chart-value_value_b { + color: #282b39; + font: 500 14px/22px var(--base-font); + } + } + + &.chart-control-provider_overview { + padding: 5px 0; + + .chart-label { + margin-bottom: 0; + } + + .chart-value { + padding: 25px 0 25px; + min-height: auto; + } + } + } + + .chart-body { + padding: 20px 0 0; + margin: 0 -20px -10px -10px; + + canvas { + margin: 0 auto; + } + } + + .chart-header { + margin: -25px -25px 0; + border-bottom: 1px solid #d4d9dd; + padding: 15px 25px; + display: flex; + cursor: default; + + .chart-header-range { + flex-basis: 40%; + + .chart-header-item { + color: rgba($color: #151b26, $alpha: 0.5); + font: 500 14px/34px var(--base-font); + display: inline-block; + margin-right: 20px; + transition: 0.4s; + cursor: pointer; + + &:last-child { + margin-right: 0; + } + + &:hover, + &.active { + color: #d91d46; + font-weight: 500; + } + } + } + + .chart-header-title { + flex: 1 0; + text-align: center; + font: 500 13px/34px var(--base-font); + color: #151b26; + flex-basis: 20%; + } + + .chart-header-actions { + flex-basis: 40%; + display: flex; + flex-direction: row; + justify-content: flex-end; + + .flex-row { + flex: 1; + flex-direction: row; + justify-content: flex-end; + flex-wrap: nowrap; + } + + .form-group { + margin: 0 10px 0 0; + } + + .form-control { + max-width: 200px; + } + } + } + + @media screen and (max-width: 1000px) { + .chart-row { + flex-wrap: wrap; + + .card { + width: 100%; + margin: 0 0 20px; + + &:last-child { + margin-bottom: 0; + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-chat.scss b/react/assets/forus-platform/scss/_common/blocks/block-chat.scss index d30601ff5..d8272b89c 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-chat.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-chat.scss @@ -1,4 +1,4 @@ -&.block-chat { +.block.block-chat { display: flex; flex-direction: column; cursor: default; diff --git a/react/assets/forus-platform/scss/_common/blocks/block-collapsable.scss b/react/assets/forus-platform/scss/_common/blocks/block-collapsable.scss deleted file mode 100644 index 629ee222e..000000000 --- a/react/assets/forus-platform/scss/_common/blocks/block-collapsable.scss +++ /dev/null @@ -1,36 +0,0 @@ -.block.block-collapsable { - display: flex; - flex-direction: column; - background: #ffffff; - border: 1px solid var(--border-color); - box-shadow: 0 0 5px rgba(25, 39, 52, 0.22); - border-radius: calc(var(--border-radius)); - - .collapsable-header { - display: flex; - align-items: center; - padding: 10px; - cursor: pointer; - - .collapsable-header-icon { - font-size: 24px; - line-height: 30px; - } - - .collapsable-header-title { - flex-grow: 1; - font: 700 14px/30px var(--base-font); - } - } - - .collapsable-body { - padding: 20px; - border-top: 1px solid var(--border-color); - } - - .collapsable-footer { - display: flex; - border-top: 1px solid var(--border-color); - padding: 15px 20px; - } -} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-compact-datalist.scss b/react/assets/forus-platform/scss/_common/blocks/block-compact-datalist.scss new file mode 100644 index 000000000..6d84f8c3f --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-compact-datalist.scss @@ -0,0 +1,69 @@ +.block.block-compact-datalist { + display: grid; + + .datalist-row { + border-bottom: 1px dashed #ccc; + display: grid; + grid-template-columns: 200px 1fr; + + .datalist-key { + @extend .text-wrap; + font: 500 14px/20px var(--base-font); + color: #646f79; + padding: 7.5px 15px 7.5px 0; + } + + .datalist-value { + @extend .text-wrap; + font: 500 14px/20px var(--base-font); + color: #646f79; + padding: 7.5px 0; + } + } + + &.compact-datalist-outline { + padding: 5px 20px; + border: 1px dashed #ccc; + border-radius: var(--border-radius); + + .datalist-row { + .datalist-key { + color: var(--color-primary); + } + + .datalist-value { + color: var(--text-color); + } + + &:last-child { + border-bottom: 0; + } + } + } + + &.compact-datalist-vertical { + grid-auto-flow: column; + gap: 20px; + + .datalist-row { + grid-template-columns: 1fr; + border: none; + + .datalist-key, + .datalist-value { + margin: 0; + padding: 0; + } + + .datalist-key { + color: var(--color-primary); + font: 600 11px/20px var(--base-font); + } + + .datalist-value { + color: var(--text-color); + font: 500 13px/20px var(--base-font); + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-critera-editor.scss b/react/assets/forus-platform/scss/_common/blocks/block-critera-editor.scss index 05b46ffcc..5acccf7f7 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-critera-editor.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-critera-editor.scss @@ -1,4 +1,4 @@ -&.block-criteria-editor { +.block.block-criteria-editor { display: flex; flex-direction: column; gap: 20px; diff --git a/react/assets/forus-platform/scss/_common/blocks/block-csv.scss b/react/assets/forus-platform/scss/_common/blocks/block-csv.scss new file mode 100644 index 000000000..94c2a2d35 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-csv.scss @@ -0,0 +1,150 @@ +.block.block-csv { + background: #fff; + margin-bottom: 20px; + + .csv-inner { + padding: 65px 20px 20px; + width: 660px; + margin: 0 auto; + text-align: center; + display: flex; + flex-direction: column; + gap: 20px; + } + + .csv-upload-icon { + width: 54px; + height: 54px; + line-height: 53px; + text-align: center; + margin: 0 auto 12px; + border: 1px solid #d2e6ff; + border-radius: 60px; + background: #fff; + color: #009ef4; + transition: + color 0.4s, + background-color 0.4s; + + .mdi { + color: inherit; + font-size: 26px; + } + } + + .csv-upload-btn { + cursor: pointer; + + .csv-upload-text { + font: 500 16px var(--base-font); + color: #282b39; + transition: + color 0.4s, + background-color 0.4s; + + span { + font: 400 12px var(--base-font); + color: #646f79; + } + } + + &:hover, + &.hover { + .csv-upload-icon { + background: #009ef4; + color: #fff; + } + + .csv-upload-text { + color: #009ef4; + } + } + } + + .csv-upload-btn-groups { + display: flex; + flex-direction: column; + gap: 20px; + } + + .csv-upload-actions { + display: flex; + flex-direction: column; + gap: 20px; + } + + .csv-file-error { + font: 500 13px/20px var(--base-font); + color: var(--color-danger); + margin: 0; + } + + .csv-file-warning { + font: 500 13px/20px var(--base-font); + color: #e7740a; + margin: 0; + } + + .csv-upload-progress { + .csv-upload-icon { + .mdi { + @extend .spin; + } + } + + .csv-progress-state { + font: 400 12px var(--base-font); + margin: 0 0 10px; + color: #646f79; + } + + .csv-progress-bar { + margin: 0 0 20px; + height: 5px; + background: #d2e6ff; + border-radius: var(--border-radius); + width: 100%; + position: relative; + + .csv-progress-bar-stick { + @include fill_parent(); + right: auto; + top: -1px; + bottom: -1px; + background: #009ef4; + border-radius: var(--border-radius); + transition: 1s; + } + } + + .csv-progress-value { + font: 500 16px var(--base-font); + color: #282b39; + margin: 0 0 20px; + } + + &.done { + .csv-upload-icon { + color: #fff; + background: #24b37e; + + .mdi { + animation: none; + } + + &.csv-upload-icon-warning { + background-color: var(--color-primary); + } + } + } + } + + &.on-dragover { + background: lighten($color: #9ca6af, $amount: 32); + border-color: #9ca6af; + } + + &:last-child { + margin-bottom: 0; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-danger_zone.scss b/react/assets/forus-platform/scss/_common/blocks/block-danger_zone.scss index 397e4ed70..2a83ab654 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-danger_zone.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-danger_zone.scss @@ -1,4 +1,4 @@ -&.block-danger_zone { +.block.block-danger_zone { display: flex; flex-direction: column; border: 1px solid var(--color-danger); diff --git a/react/assets/forus-platform/scss/_common/blocks/block-email-confirmed.scss b/react/assets/forus-platform/scss/_common/blocks/block-email-confirmed.scss new file mode 100644 index 000000000..895e60f8f --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-email-confirmed.scss @@ -0,0 +1,40 @@ +.block.block-email-confirmed { + flex-direction: column; + justify-content: center; + display: flex; + @include fill_parent(); + background: #fff; + cursor: default; + + .block-email-confirmed-content { + text-align: center; + margin: 0 0 15px; + + .block-email-confirmed-icon { + margin: 0 auto; + + img { + display: block; + width: 220px; + max-width: 100%; + margin: auto; + } + } + + .block-email-confirmed-title { + font: 500 26px/32px var(--base-font); + color: var(--color-primary); + margin: 0 0 10px; + } + + .block-email-confirmed-subtitle { + font: 500 16px/26px var(--base-font); + color: #454545; + margin: 0 0 15px; + } + } + + .block-email-confirmed-footer { + text-align: center; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-empty.scss b/react/assets/forus-platform/scss/_common/blocks/block-empty.scss new file mode 100644 index 000000000..00e03a808 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-empty.scss @@ -0,0 +1,44 @@ +.block.block-empty { + cursor: default; + + .empty-icon { + display: flex; + flex-direction: row; + justify-content: center; + margin-bottom: 10px; + + .empty-icon-img { + width: 50px; + height: 50px; + display: flex; + border: 1px solid transparent; + border-radius: 50px; + align-items: center; + + &.empty-icon-img-border { + border-color: var(--border-color-light); + } + } + } + + .empty-title { + font: 700 16px/28px var(--base-font); + margin: 0; + } + + .empty-details { + font: 500 14px/24px var(--base-font); + margin: 0; + + &:last-child { + margin-bottom: 0; + } + } + + .empty-actions { + font: 500 14px var(--base-font); + display: flex; + padding: 15px 0 0; + justify-content: center; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-entity-overview.scss b/react/assets/forus-platform/scss/_common/blocks/block-entity-overview.scss new file mode 100644 index 000000000..179baa391 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-entity-overview.scss @@ -0,0 +1,34 @@ +.block.block-entity-overview { + display: flex; + flex-direction: row; + + .entity-title { + font: 600 14px/20px var(--base-font); + + .entity-title-icon-suffix { + display: inline-block; + color: #a1a1a1; + margin-left: 5px; + } + } + + .entity-photo { + width: 50px; + + .entity-photo-img { + display: block; + max-width: 100%; + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + } + } + + .entity-details { + padding-left: 15px; + display: flex; + flex-direction: column; + min-height: 100%; + justify-content: center; + justify-items: center; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-external-validators.scss b/react/assets/forus-platform/scss/_common/blocks/block-external-validators.scss deleted file mode 100644 index 0b3902263..000000000 --- a/react/assets/forus-platform/scss/_common/blocks/block-external-validators.scss +++ /dev/null @@ -1,85 +0,0 @@ -&.block-external-validators { - display: flex; - flex-direction: column; - margin-bottom: 20px; - - .validator-item { - background: #ffffff; - box-shadow: 0 0 5px rgba(25, 39, 52, 0.22); - border-radius: calc(var(--border-radius)); - margin-bottom: 20px; - padding: 15px 20px; - display: flex; - flex-direction: row; - - .validator-logo { - .validator-logo-img { - display: block; - width: 60px; - height: 60px; - border-radius: 60px; - border: 1px solid var(--border-color); - } - } - - .validator-details { - @include ellipsis(); - padding: 15px; - flex-grow: 1; - - .validator-title { - font: 600 16px/30px var(--base-font); - margin: 0 0 15px; - display: flex; - cursor: pointer; - - .validator-title-toggle { - font-size: 25px; - margin-right: 5px; - line-height: 30px; - color: #646f79; - transition: color 0.4s; - } - - &:hover { - .validator-title-toggle { - color: var(--color-primary); - } - } - - &:last-child { - margin-bottom: 0; - } - } - - .validator-properties { - display: block; - @include cf(); - - .validator-property { - width: 30%; - float: left; - - .validator-property-label { - margin: 0 0 5px; - font: 600 11px var(--base-font); - color: var(--color-primary); - } - - .validator-property-value { - margin: 0 0; - font: 600 14px var(--base-font); - } - } - } - } - - .validator-actions { - padding: 12px 0 0; - } - - &:last-child { - margin-bottom: 0; - } - } -} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-faq-editor.scss b/react/assets/forus-platform/scss/_common/blocks/block-faq-editor.scss index 1a4cc5447..ce4ccf32a 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-faq-editor.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-faq-editor.scss @@ -1,4 +1,4 @@ -&.block-faq-editor { +.block.block-faq-editor { display: flex; flex-direction: column; diff --git a/react/assets/forus-platform/scss/_common/blocks/block-file.scss b/react/assets/forus-platform/scss/_common/blocks/block-file.scss new file mode 100644 index 000000000..da4b6aa88 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-file.scss @@ -0,0 +1,89 @@ +.block.block-file { + width: 100%; + border: 1px dashed #d4d9dd; + border-radius: var(--border-radius); + text-align: left; + cursor: default; + display: flex; + padding: 0; + align-items: center; + + .block-file-details { + display: flex; + flex-direction: row; + gap: 10px; + flex: 1; + flex-grow: 100; + padding: 8px; + position: relative; + } + + .block-file-buttons { + flex: 1; + padding: 12px 15px; + border-left: 1px dashed #d4d9dd; + } + + .file-error { + display: none; + position: absolute; + left: 17px; + top: 12px; + font-size: 26px; + color: #e63b3b; + } + + .file-remove { + position: absolute; + right: 7.5px; + top: 7.5px; + font-size: 22px; + color: #757f88; + cursor: pointer; + + &:hover { + color: #cf274d; + } + } + + .file-icon { + display: flex; + flex: 0 0 30px; + justify-content: center; + + .mdi { + height: 40px; + font-size: 22px; + line-height: 40px; + color: #cfd8dc; + } + } + + .file-details { + display: flex; + flex-direction: column; + flex: 1 1 auto; + justify-content: center; + + .file-name { + font: 600 12px/20px var(--base-font); + color: var(--color-primary); + } + + .file-size { + font: 500 11px/14px var(--base-font); + color: #646f79; + } + } + + &.has-error { + border-color: #e63b3b; + background: none; + + .file-icon { + .mdi { + color: #e63b3b; + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-form_tooltip.scss b/react/assets/forus-platform/scss/_common/blocks/block-form_tooltip.scss new file mode 100644 index 000000000..b79c2c96e --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-form_tooltip.scss @@ -0,0 +1,115 @@ +.block.block-form_tooltip { + position: relative; + display: inline-block; + padding-right: 15px; + vertical-align: text-bottom; + + .tooltip-icon { + width: 24px; + height: 24px; + font-size: 24px; + line-height: 24px; + color: #2987fd; + cursor: pointer; + } + + .tooltip { + position: absolute; + width: 300px; + border: 1px solid var(--border-color); + box-shadow: 0 4px 25px rgba(0, 0, 0, 0.1); + padding: 15px; + background: #fff; + z-index: 5; + border-radius: var(--border-radius); + font: 500 13px/20px var(--base-font); + text-transform: none; + color: #45535e; + display: none; + + ul { + list-style-type: disc; + list-style-position: inside; + + li { + font: 400 13px/20px var(--base-font); + } + + strong { + font-weight: 500; + } + } + + &:not(.tooltip-bottom) { + left: 100%; + top: 12px; + transform: translate(0, -50%); + + &:after, + &:before { + right: 100%; + top: 50%; + border: solid transparent; + content: ' '; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + } + + &:after { + border-color: rgba(255, 255, 255, 0); + border-right-color: #fff; + border-width: 10px; + margin-top: -10px; + } + + &:before { + border-color: rgba(210, 230, 255, 0); + border-right-color: #d2e6ff; + border-width: 11px; + margin-top: -11px; + } + } + + &.tooltip-bottom { + top: 100%; + left: 8px; + margin-top: 10px; + transform: translate(-50%, 0); + + &:before, + &:after { + content: ''; + left: 50%; + transform: translate(-50%); + position: absolute; + top: -10px; + display: inline-block; + width: 0; + height: 0; + border-style: solid; + border-width: 0 10px 10px 10px; + border-color: transparent transparent #ffffff transparent; + } + + &:before { + top: -11.5px; + border-color: transparent transparent var(--border-color) transparent; + } + } + } + + &:hover { + .tooltip { + display: block; + } + } + + @media screen and (max-width: 1000px) { + .tooltip { + left: 0; + width: 250px; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-fund.scss b/react/assets/forus-platform/scss/_common/blocks/block-fund.scss index b5a554b48..131ba9c72 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-fund.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-fund.scss @@ -1,4 +1,4 @@ -&.block-fund { +.block.block-fund { display: flex; flex-direction: column; margin: 0 0; diff --git a/react/assets/forus-platform/scss/_common/blocks/block-info.scss b/react/assets/forus-platform/scss/_common/blocks/block-info.scss new file mode 100644 index 000000000..d793d0712 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-info.scss @@ -0,0 +1,56 @@ +.block.block-info { + color: #646f79; + font: 400 11px/16px var(--base-font); + border: 1px dashed #d4d9dd; + padding: 17.5px; + border-radius: var(--border-radius); + + &.block-info-primary { + background-color: #f7f9fc; + } +} + +.block.block-info { + padding-left: 30px; + font: 500 13px/20px var(--base-font); + color: #45535e; + + .block-info-icon { + float: left; + font-size: 20px; + margin-left: -25px; + margin-right: 5px; + color: var(--color-primary); + } + + &.block-info-list { + border-style: solid; + padding: 12px; + color: #151b26; + + .block-info-list-title { + display: flex; + font: 500 12px/19px var(--base-font); + margin: 0 0 5px 0; + } + + .block-info-icon { + margin: 0 5px 0 0; + } + + .block-info-list-items { + margin: 0 0 0 25px; + list-style-type: disc; + list-style-position: inside; + + .block-info-list-item { + font: 500 12px/24px var(--base-font); + + .block-info-list-item-value { + margin: 0 0 0 5px; + color: #646f79; + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-information.scss b/react/assets/forus-platform/scss/_common/blocks/block-information.scss new file mode 100644 index 000000000..26dd87f52 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-information.scss @@ -0,0 +1,37 @@ +.block.block-information { + background: #fff; + padding: 15px 20px; + border-radius: var(--border-radius); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + font: 400 13px/20px var(--base-font); + margin-bottom: 15px; + display: flex; + + .block-information-icon { + margin: 2.5px 10px auto 0; + color: #009ef4; + font-size: 16px; + } + + .block-information-info { + display: flex; + flex-direction: column; + justify-content: center; + font: 500 13px/18px var(--base-font); + color: #646f79; + + a { + color: #009ef4; + font-size: 13px; + font-weight: 500; + } + } + + &.block-information-danger { + background: #fcfaf6; + } + + &.block-information-info { + background: #009ef421; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-inline-filters.scss b/react/assets/forus-platform/scss/_common/blocks/block-inline-filters.scss new file mode 100644 index 000000000..21b378822 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-inline-filters.scss @@ -0,0 +1,247 @@ +.block.block-inline-filters { + display: flex; + justify-content: flex-end; + + .button { + height: 30px; + line-height: 24px; + padding-top: 2px; + padding-bottom: 2px; + font-size: 12px; + box-shadow: none; + white-space: nowrap; + } + + .select-control { + width: 180px !important; + + .select-control-input { + label.form-control:not([type='radio']):not([type='checkbox']) { + padding-left: 7.5px; + font-size: 12px; + line-height: 28px; + + .select-control-search-placeholder-media { + margin: 4px 0; + } + } + + .select-control-search-container .select-control-search-clear { + line-height: 18px; + } + } + + .select-control-options { + .select-control-option { + padding-left: 10px; + font-size: 12px; + } + } + + &.select-control-lg { + width: 240px !important; + } + } + + .form { + display: flex; + margin-right: 10px; + + .form-group { + margin: 0 10px 0 0; + + &:last-child { + margin-right: 0; + } + } + + .form-control { + height: 30px; + margin: 0; + padding: 0 10px; + line-height: 28px; + + &.select-control { + .select-control-input { + font-size: 12px; + + .select-control-options { + .select-control-option { + --option-height: 35px; + color: #353535; + font: 500 12px/20px var(--base-font); + } + } + } + } + } + + select.form-control { + padding-right: 25px; + } + + &:last-child { + margin-right: 0; + } + } + + .inline-filters-dropdown { + position: relative; + display: inline-block; + + $cardHeaderDropdownRadius: 6px; + + .inline-filters-dropdown-content { + width: 260px; + min-height: 75px; + position: absolute; + top: 100%; + margin-top: 15px; + right: -5px; + background: #fff; + z-index: 2; + box-shadow: 1px 2px 40px rgba(0, 0, 0, 0.12); + padding: 0 20px; + text-align: left; + border-radius: $cardHeaderDropdownRadius; + display: flex; + flex-direction: column; + + .arrow-box { + right: 30px; + left: auto; + transform: none; + } + + .inline-filters-pane { + padding: 0 10px 10px; + } + + .form { + flex-direction: column; + + .form-group { + background: #f6f9fc; + margin: 0 -20px; + padding: 0 15px 0; + + .form-label { + display: block; + color: #282b39; + + &.form-label-toggle { + cursor: pointer; + background: #fff; + margin: 0 -15px 0; + padding: 10px 10px 10px 15px; + transition: color 0.4s; + border-bottom: 1px solid #e7e7e7; + + .form-label-icon-active { + display: none; + } + + .mdi { + float: right; + font-size: 2em; + color: #646f79; + transition: color 0.4s; + } + + &:hover { + color: #009ef4; + + .mdi { + color: inherit; + } + } + + & + * { + display: none; + } + + &.active { + margin: 0 -15px 10px; + border-bottom: 1px solid #fff; + + .form-label-icon { + display: none; + } + + .form-label-icon-active { + display: block; + } + + & + * { + display: block; + } + } + } + } + + .form-control { + margin: 0 0 10px; + height: 30px; + font-size: 12px; + width: 100% !important; + + &.select-control { + .select-control-search { + margin-bottom: 0; + border: 1px solid #d4d9dd; + line-height: 30px; + } + + .select-control-options { + --option-height: 35px; + + .select-control-option { + color: #353535; + font: 500 12px/20px var(--base-font); + } + } + } + } + + &:first-child { + border-top-left-radius: $cardHeaderDropdownRadius; + border-top-right-radius: $cardHeaderDropdownRadius; + + .form-label { + border-top-left-radius: $cardHeaderDropdownRadius; + border-top-right-radius: $cardHeaderDropdownRadius; + } + } + + &:last-child { + .form-label:not(.active) { + border-bottom: none; + border-bottom-left-radius: $cardHeaderDropdownRadius; + border-bottom-right-radius: $cardHeaderDropdownRadius; + } + } + } + + .radio, + .checkbox { + padding-top: 5px; + padding-bottom: 5px; + + .radio-label, + .radio-checkbox { + font: 600 12px/20px var(--base-font); + width: 100%; + } + } + } + + .form-actions { + background: #fff; + padding: 15px; + margin: 0 -20px; + border-bottom-left-radius: $cardHeaderDropdownRadius; + border-bottom-right-radius: $cardHeaderDropdownRadius; + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-login.scss b/react/assets/forus-platform/scss/_common/blocks/block-login.scss new file mode 100644 index 000000000..e017c8d5c --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-login.scss @@ -0,0 +1,260 @@ +.block.block-login { + flex-direction: column; + justify-content: center; + display: flex; + @include fill_parent(); + position: fixed; + padding-bottom: 60px; + cursor: default; + + .block-login-window { + display: block; + margin: 0 auto; + width: 760px; + max-width: 100%; + border: 1px solid #e5e5e5; + border-radius: var(--border-radius); + background-color: #fff; + } + + .block-login-content { + padding: 30px 40px; + border-bottom: 1px solid #e5e5e5; + + .block-login-title { + font: 500 21px/36px var(--base-font); + color: #222530; + } + + .block-login-description { + font: 400 18px/26px var(--base-font); + color: #222530; + margin: 0 0 30px; + } + + .block-login-form { + margin: 0 0 30px; + + .form-label { + color: #7e818c; + margin-left: 10px; + font-weight: 400; + } + + .block-login-control { + display: flex; + flex-direction: row; + + .form-group { + padding-right: 20px; + flex-grow: 1; + margin: 0 0; + display: flex; + flex-direction: column; + } + + .button { + align-self: flex-start; + } + } + + .form-control:not([type='radio']):not([type='checkbox']) { + font: 400 16px/20px var(--base-font); + } + + button { + padding-left: 50px; + padding-right: 50px; + } + + &:last-child { + margin-bottom: 0; + } + } + + .block-login-me_app { + display: flex; + flex-direction: row; + flex-grow: 1; + + .qr_code-container { + padding-right: 30px; + + .auth-title { + font: 500 21px/28px var(--base-font); + color: #333; + margin: 0 0 5px; + } + + .auth-description { + font: 400 15px/22px var(--base-font); + color: #333; + margin: 0 0 5px; + } + } + + .qr_code-block { + display: flex; + flex-direction: column; + + .qr_code-block-placeholder { + width: 200px; + height: 200px; + border: 1px solid #e5e5e5; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; + + button { + background: rgba(53, 97, 255, 0.15); + border-radius: var(--border-radius); + font: 500 14px/25px var(--base-font); + color: #3561ff; + margin: 0 auto; + padding: 7.5px 15px; + box-shadow: none; + align-self: center; + } + } + + .block.block-qr-code { + width: 200px; + height: 200px; + padding: 0; + + .qr_code { + border-radius: 0; + width: 100%; + height: 100%; + border: none; + padding: 12.5px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12); + } + } + } + } + + .block-login-email_sent { + text-align: center; + + .block-login-email_sent-icon { + margin: 0 auto 10px; + + .block-login-email_sent-icon-img { + display: block; + width: 300px; + max-width: 100%; + margin: auto; + } + } + + .block-login-email_sent-title { + font: 500 28px/38px var(--base-font); + color: var(--color-primary); + margin: 0 0 20px; + } + + .block-login-email_sent-text { + font: 500 18px/27px var(--base-font); + color: #454545; + margin: 0 0 20px; + } + } + + &:last-child { + border-bottom: none; + } + } + + .block-login-footer { + display: flex; + flex-direction: column; + justify-content: center; + padding: 30px; + + .block-login-footer-title { + font: 500 19px/21px var(--base-font); + text-align: center; + margin: 0 auto 20px; + } + + .block-login-footer-button { + width: 320px; + transform: translate(0, 0); + color: #0c66ff; + background: rgba(12, 102, 255, 0.1); + padding: 20px 65px; + text-align: center; + background: #fff; + border: 1px solid #0c66ff; + border-radius: 8px; + font: 600 16px/21px var(--base-font); + transition: + color 0.3s, + border-color 0.3s, + background 0.3s, + box-shadow 0.3s; + margin: auto; + + &:hover { + text-decoration: none; + background: rgba(12, 102, 255, 0.1); + border-color: #0c66ff; + } + } + } + + @media screen and (max-width: 1000px) { + position: initial; + + .block-login-window { + border: none; + background: none; + } + + .block-login-content { + padding: 25px; + + .block-login-title { + font: 500 17px/30px var(--base-font); + } + + .block-login-description { + font: 400 13px/20px var(--base-font); + } + + .block-login-form { + margin: 0; + + .block-login-control { + flex-direction: column; + + .flex { + justify-content: center; + } + + .form-group { + margin-bottom: 20px; + padding-right: 0; + } + } + } + + .block-login-me_app { + display: none; + } + } + } + + .block-login-footer { + .block-login-footer-title { + font: 500 17px/21px var(--base-font); + } + + .block-login-footer-button { + padding: 15px 45px; + width: auto; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-mail_preview.scss b/react/assets/forus-platform/scss/_common/blocks/block-mail_preview.scss index 7c1c681e8..4e0a961eb 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-mail_preview.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-mail_preview.scss @@ -1,6 +1,5 @@ -$mailFont: Verdana, Arial, sans-serif; - .block.block-mail_preview { + --mail-font: Verdana, Arial, sans-serif; background: #fff; .mail_preview-wrapper { @@ -31,7 +30,7 @@ $mailFont: Verdana, Arial, sans-serif; .mail_preview-footer { color: #9397a3; - font: 400 12px/20px $mailFont; + font: 400 12px/20px var(--mail-font); padding: 10px 5px 10px; cursor: default; text-align: center; @@ -47,34 +46,34 @@ $mailFont: Verdana, Arial, sans-serif; } h1 { - font: 700 32px/38px $mailFont; + font: 700 32px/38px var(--mail-font); margin: 0 0 25px; } h2 { - font: 700 25px/32px $mailFont; + font: 700 25px/32px var(--mail-font); margin: 0 0 20px; } h3 { - font: 700 21px/28px $mailFont; + font: 700 21px/28px var(--mail-font); margin: 0 0 15px; } h4 { - font: 700 18px/24px $mailFont; + font: 700 18px/24px var(--mail-font); margin: 0 0 10px; } h5 { - font: 700 16px/20px $mailFont; + font: 700 16px/20px var(--mail-font); margin: 0 0 10px; } .mail_btn { display: inline-block; padding: 5px 75px; - font: 600 14px/40px $mailFont; + font: 600 14px/40px var(--mail-font); color: #fff; border-radius: var(--border-radius); text-decoration: none; diff --git a/react/assets/forus-platform/scss/_common/blocks/block-message.scss b/react/assets/forus-platform/scss/_common/blocks/block-message.scss new file mode 100644 index 000000000..c5f3e876f --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-message.scss @@ -0,0 +1,14 @@ +.block.block-message { + .message-title { + color: #282b39; + font: 600 16px/24px var(--base-font); + text-align: center; + margin: 0 0 10px; + } + + .message-details { + color: #282b39; + font: 500 13px/20px var(--base-font); + text-align: center; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-notifications.scss b/react/assets/forus-platform/scss/_common/blocks/block-notifications.scss index ca8af2a33..54ac47bbe 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-notifications.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-notifications.scss @@ -1,4 +1,4 @@ -&.block-notifications { +.block.block-notifications { display: flex; flex-direction: column; margin: 0 0 15px; diff --git a/react/assets/forus-platform/scss/_common/blocks/block-page-loading-bar.scss b/react/assets/forus-platform/scss/_common/blocks/block-page-loading-bar.scss new file mode 100644 index 000000000..19e94d31d --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-page-loading-bar.scss @@ -0,0 +1,36 @@ +.block.block-page-loading-bar { + position: fixed; + top: 0; + left: 0; + background-color: var(--color-primary); + height: 3px; + width: 0; + transition: width 0.3s linear; + opacity: 1; + z-index: 1000; + + &:after { + content: ''; + position: absolute; + right: 0; + top: 0; + height: 100%; + width: 10px; + background: #fff; + } + + &.start, + &.complete { + opacity: 0; + } + + &.complete { + transition: + opacity 1s linear, + width 0.3s linear; + } + + &.start { + transition: 0s; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-pdf-preview.scss b/react/assets/forus-platform/scss/_common/blocks/block-pdf-preview.scss new file mode 100644 index 000000000..b7bdbe2bf --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-pdf-preview.scss @@ -0,0 +1,10 @@ +.block.block-pdf-preview { + background: #242424; + display: flex; + flex-wrap: wrap; + + canvas { + display: block; + margin: 0 auto; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-photo-selector.scss b/react/assets/forus-platform/scss/_common/blocks/block-photo-selector.scss new file mode 100644 index 000000000..36317f559 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-photo-selector.scss @@ -0,0 +1,44 @@ +.block.block-photo-selector { + @include cf(); + + .photo-img { + float: left; + border: 1px solid #d4d9dd; + border-radius: 75px; + width: 75px; + height: 75px; + margin-right: 15px; + overflow: hidden; + background: #ffffff 50%; + background-size: cover; + + img { + display: block; + width: 100%; + } + } + + .photo-label { + display: block; + font: 500 16px/26px var(--base-font); + color: #151b26; + margin-bottom: 10px; + } + + @media screen and (max-width: 1000px) { + text-align: center; + + .photo-img { + width: 100px; + height: 100px; + margin: 0 auto 10px; + float: none; + display: block; + } + + .photo-label { + text-align: center; + margin: 0 0 10px; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-preferences.scss b/react/assets/forus-platform/scss/_common/blocks/block-preferences.scss new file mode 100644 index 000000000..ba6a4cde3 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-preferences.scss @@ -0,0 +1,35 @@ +.block.block-preferences { + display: block; + + .preference-option { + border-bottom: 1px solid #d4d9dd; + display: flex; + width: 100%; + padding: 10px 25px; + cursor: pointer; + transition: background 0.4s; + outline-offset: -2px; + + .preference-option-details { + flex-grow: 1; + } + + .preference-option-input { + justify-content: center; + align-items: center; + display: flex; + } + + &:hover { + background-color: #f7fafc; + } + + &:last-child { + border-bottom: none; + } + } + + &:not(:last-child) { + border-bottom: 1px solid #d4d9dd; + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-qr-code.scss b/react/assets/forus-platform/scss/_common/blocks/block-qr-code.scss new file mode 100644 index 000000000..f257093fa --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-qr-code.scss @@ -0,0 +1,34 @@ +.block.block-qr-code { + .qr_code { + width: 280px; + height: 280px; + padding: 20px; + background: #fff; + margin: auto; + border-radius: 15px; + -webkit-box-shadow: 0 5px 35px rgba(0, 0, 0, 0.075); + box-shadow: 0 5px 35px rgba(0, 0, 0, 0.075); + border: 2px dashed #d2e6ff; + + img, + canvas { + display: block; + width: 100%; + } + } + + .qr_code-desc { + text-align: center; + padding: 25px 0; + font: 600 15px/28px var(--base-font); + } + + &.block-qr-code-fit { + width: 100%; + + .qr_code { + width: 100%; + height: auto; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-schedule-editor.scss b/react/assets/forus-platform/scss/_common/blocks/block-schedule-editor.scss new file mode 100644 index 000000000..0d8bacb95 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-schedule-editor.scss @@ -0,0 +1,88 @@ +.block.block-schedule-editor { + @include cf(); + + .schedule-editor-heading { + font: 500 16px/20px var(--base-font); + margin: 0 0 15px; + color: #282b39; + + &.schedule-editor-heading-lg { + font: 500 28px/36px var(--base-font); + } + } + + .ui-control { + &.ui-control-checkbox { + .ui-checkbox-label { + font: 500 13px/16px var(--base-font); + } + } + } + + table { + th { + font: 600 13px/16px var(--base-font); + letter-spacing: 0.08px; + text-transform: uppercase; + color: #222530; + text-align: left; + } + + td { + padding-right: 22px; + height: 30px; + font: 400 13px/16px var(--base-font); + color: #222530; + + span { + font: 400 13px/24px var(--base-font); + } + + &.weekend { + color: #f15642; + } + + &.breaks { + padding-left: 40px; + } + } + + th, + td { + &.breaks { + text-align: center; + } + } + + .ui-control { + &.ui-control-text { + width: 80px; + height: 30px; + + input { + height: 30px; + border-radius: 6px; + } + } + + &.breaks { + display: table-cell; + + &.end { + input { + margin-right: 0; + } + } + + input { + width: 80px; + margin-right: 22px; + } + } + + .ui-control-clear { + display: none; + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-sessions.scss b/react/assets/forus-platform/scss/_common/blocks/block-sessions.scss index dcf3e0559..56fcf74e3 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-sessions.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-sessions.scss @@ -1,9 +1,8 @@ -&.block-sessions { +.block.block-sessions { display: flex; flex-direction: column; .session-item { - flex-direction: column; display: flex; padding: 20px; flex-direction: row; diff --git a/react/assets/forus-platform/scss/_common/blocks/block-sign_up.scss b/react/assets/forus-platform/scss/_common/blocks/block-sign_up.scss new file mode 100644 index 000000000..0bfc4f263 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-sign_up.scss @@ -0,0 +1,1041 @@ +.block.block-sign_up { + --paginator-button-active-background: #305dfb; + + .card-header { + padding-top: 0; + margin: 10px 0 15px; + position: relative; + + &:not(.card-header-no-line) { + padding-top: 30px; + + &:before { + content: ''; + position: absolute; + top: 0; + border-top: 1px solid #dbdcdb; + width: calc(100% + 80px); + left: -40px; + } + } + + & > .flex { + align-items: center; + gap: 10px; + } + + .card-title { + display: flex; + align-items: center; + + span { + &:first-child { + font-style: normal; + font-weight: 700; + font-size: 18px; + line-height: 27px; + margin-right: 10px; + } + + &.total-count { + padding: 8px 10px; + height: 32px; + border: 1px solid #315efd; + border-radius: 7px; + color: #315efd; + font-style: normal; + font-weight: 500; + font-size: 16px; + line-height: 16px; + } + } + } + + .block.block-inline-filters .button { + height: 36px; + font-weight: 700; + font-size: 13px; + line-height: 18px; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 9px 12px; + + &.button-secondary { + border: 1px solid #dbdcdb; + + &:hover { + border-color: var(--color-primary); + } + } + } + } + + .sign_up-pane { + .block-photo-selector { + max-width: 200px; + + .button { + font-size: 12px; + width: 100%; + padding: 10px 5px; + margin: 0 0 15px; + } + } + + .sign_up-pane-header { + font-style: normal; + font-weight: 500; + font-size: 21px; + line-height: 30px; + } + + .sign_up-heading-block { + font: 400 18px/22px var(--base-font); + padding: 30px 40px; + font-style: normal; + color: #222530; + border-bottom: 1px solid #edeef0; + } + + .sign_up-pane-body { + padding: 30px 40px; + + .sign_up-pane-subtitle { + text-align: center; + font: 400 26px/36px var(--base-font); + color: #3561ff; + margin-top: 25px; + } + + & + .sign_up-pane-body { + border-top: 1px solid #edeef0; + } + } + + .sign_up-pane-footer { + .button { + &.button-text { + font-weight: 500; + font-size: 16px; + color: #3561ff; + line-height: 30px; + + .mdi { + color: #3561ff; + width: 36px; + font-size: 34px; + } + } + } + } + + .app-download-notice { + font: 400 13px/27px var(--base-font); + color: #222530; + margin-top: 15px; + + a { + color: blue; + text-decoration: underline; + font-weight: 500; + } + } + + .sign_up-pane-auth { + &.test-qr { + margin-top: 30px; + justify-content: space-around; + } + + .sign_up-pane-auth-content { + .block-app_links { + margin-top: 26px; + } + + .notice-small { + font: 400 13px/27px var(--base-font); + color: #989898; + margin-top: 25px; + } + } + + .sign_up-pane-auth-qr_code { + .qr_code { + width: 228px !important; + height: 228px !important; + } + } + } + + ul { + li { + font: inherit; + background-image: assetUrl('img/icon-list.svg'); + background-repeat: no-repeat; + line-height: 30px; + padding-left: 50px; + font-weight: 400; + } + } + } + + .sign_up-offices { + display: flex; + flex-direction: column; + border-bottom: 1px solid #edeef0; + + .sign_up-office { + display: flex; + flex-direction: row; + padding: 30px 0 30px 30px; + border-bottom: 1px solid var(--border-color); + + .office-media { + padding-left: 10px; + + img { + width: 80px; + display: block; + border-radius: var(--border-radius); + } + + &.office-media-placeholder { + img { + border: 1px solid var(--border-color); + } + } + } + + .office-contacts { + padding-left: 40px; + display: flex; + flex-direction: column; + flex-grow: 1; + + .office-contact { + font: 400 16px/20px var(--base-font); + margin: 0 0 15px; + color: #222530; + + span { + font: inherit; + color: inherit; + } + + .mdi { + color: #9ea7b6; + float: left; + width: 20px; + font-size: 18px; + margin-right: 3px; + margin-left: -25px; + padding-right: 3px; + text-align: right; + } + + &:last-child { + margin-bottom: 0; + } + } + } + + .office-map { + display: flex; + flex-direction: column; + margin: -30px 0; + + .office-map-content { + border: 1px solid var(--border-color); + border-top: none; + border-right: none; + margin: 0 0 10px; + width: 270px; + height: 180px; + position: relative; + + .map { + @include fill_parent(); + + .map-canvas { + @include fill_parent(); + } + } + } + + .office-actions { + display: flex; + flex-direction: row; + margin: 0 0 10px; + + .office-action { + display: flex; + flex-direction: row; + flex-grow: 1; + color: #9ea7b6; + font: 400 13px var(--base-font); + + .mdi { + margin-right: 3px; + float: left; + } + } + } + } + + &:last-child { + border-bottom: none; + } + } + + .block-schedule-editor { + .schedule-editor-heading { + font: 500 21px/27px var(--base-font); + margin: 0 0 15px; + + &.schedule-editor-heading-lg { + font: 500 28px/36px var(--base-font); + } + } + } + + .form { + .form-group { + &.col { + padding-right: 0; + } + } + + .office-block { + margin-left: 0; + margin-right: 0; + padding-left: 20px; + padding-right: 20px; + border-bottom: 1px solid #eff2f4; + } + + .schedule-settings-block, + .schedule-block { + margin-left: 0; + margin-right: 0; + padding-left: 35px; + padding-right: 35px; + border-bottom: 1px solid #eff2f4; + } + + .description { + margin-left: 0; + margin-right: 0; + padding-left: 40px; + padding-right: 40px; + font: 400 16px/24px var(--base-font); + color: #222530; + border-bottom: 1px solid #eff2f4; + } + + .schedule { + th { + font: 600 13px/16px var(--base-font); + letter-spacing: 0.08px; + text-transform: uppercase; + color: #222530; + text-align: left; + } + + td { + padding-right: 22px; + height: 30px; + font: 400 16px/20px var(--base-font); + color: #222530; + + &.weekend { + color: #f15642; + } + + span { + font: 400 16px/20px var(--base-font); + } + } + + th, + td { + &.breaks { + text-align: center; + } + } + + td { + &.breaks { + padding-left: 40px; + } + } + + .ui-control { + &.ui-control-text { + width: 80px; + height: 30px; + + input { + height: 30px; + border-radius: 6px; + } + } + + &.breaks { + display: table-cell; + + &.end { + input { + margin-right: 0; + } + } + + input { + width: 80px; + margin-right: 22px; + } + } + + .ui-control-clear { + display: none; + } + } + } + + .opening { + .ui-control.ui-control-checkbox { + .ui-checkbox-label { + padding-bottom: 0; + font-size: 16px; + } + } + + .sign_up-pane-text { + font-weight: 500; + font-size: 21px; + line-height: 26px; + } + + .form-group { + &.col { + margin-bottom: 5px; + } + } + + .sync { + padding-bottom: 0; + } + } + } + + &:last-child { + border-bottom: none; + } + } + + .sign_up-employees { + display: flex; + flex-direction: column; + margin: 0 0 30px; + + .sign_up-employee { + font: 600 16px/30px var(--base-font); + width: fit-content; + display: flex; + flex-direction: row; + color: #222530; + margin: 0 0 5px; + + .sign_up-employee-actions { + padding-left: 20px; + display: flex; + flex-direction: row; + + .mdi { + margin-left: 5px; + color: #9ea7b6; + font-size: 18px; + float: left; + line-height: 28px; + } + } + } + } + + .finish-screen { + .sign_up-pane-heading { + font: 500 28px/38px var(--base-font) !important; + line-height: 38px; + text-align: center; + color: #3561ff; + margin-top: 0 !important; + } + + .sign_up-pane-text { + padding-left: 50px; + padding-right: 50px; + } + } + + .fund-apply { + .header { + margin-bottom: 30px !important; + } + + .card { + box-shadow: none; + margin-bottom: 15px; + border: 1px solid #e5e6ec; + border-radius: var(--border-radius); + + .card-section { + background: #fff; + padding: 16px 18px; + + .card-block { + &.card-block-fund { + padding-top: 0; + display: flex; + + .fund-img { + margin: 0 10px auto 0; + padding: 0; + width: 50px; + height: 50px; + min-width: 50px; + } + + .fund-details { + padding-right: 140px; + + .fund-title { + display: block; + font: 500 18px/24px var(--base-font); + margin: 0 0 5px; + color: #191a1c; + } + + .fund-organization { + display: block; + font: 400 14px/18px var(--base-font); + color: #222530; + margin: 0 0; + } + } + } + } + + &.card-section-fund { + display: flex; + align-items: center; + + .card-section-actions { + right: 16px; + top: 16px; + + .button { + white-space: nowrap; + font: 700 12px/12px var(--base-font); + padding: 12px; + + &:focus { + outline: none; + box-shadow: none; + } + } + } + + &.applied { + background-color: #f8f4e7; + cursor: default; + pointer-events: none; + + .card-section-actions { + button { + background-color: rgba(255, 255, 255, 0.5); + color: #0f0f0f; + border-color: #c2c2c2; + } + } + + .card-block { + &.card-block-fund { + .fund-organization { + color: #4b4b4b; + } + + .fund-title { + color: #4b4b4b; + } + } + } + } + + &.selected { + background: #f8fbf7; + } + } + + &.card-section-primary { + padding: 0; + } + } + + &:last-child { + margin-bottom: 0; + } + } + } + + .form { + .ui-control .form-control:not([type='radio']):not([type='checkbox']) { + background-color: #eff2f4; + border-color: #eff2f4; + padding: 4px 15px; + + ::placeholder { + color: #9b9b9b; + opacity: 1; + } + } + + .ui-control { + &.ui-control-checkbox { + .ui-checkbox-label { + color: #222530; + font-size: 14px; + line-height: 17px; + font-weight: normal; + } + } + } + + .employee-info { + display: block; + padding-top: 30px; + padding-left: 20px; + font: 500 16px/20px var(--base-font); + + .details { + display: inline-block; + width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .actions { + display: inline-block; + + .mdi { + padding-right: 20px; + cursor: pointer; + color: #888888; + font-size: 22px; + } + } + } + + .select-control-input { + .select-control-search { + background-color: #eff2f4; + border-color: #eff2f4; + height: 50px; + font: 400 13px/24px var(--base-font) !important; + } + + .select-control-option { + background-color: #eff2f4; + border-color: #eff2f4; + border-bottom: 1px solid #e3e3e3; + } + + .select-control-options { + border: none; + } + } + + .form-label { + color: #7e818c; + font-weight: normal; + font-size: 13px; + line-height: 16px; + padding-left: 10px; + + letter-spacing: 0.08px; + } + + .block.block-photo-selector { + margin-bottom: 0; + + .photo-img { + margin-left: auto; + margin-right: auto; + float: none; + margin-bottom: 15px; + background: #eff2f4; + border: none; + border-radius: 8px; + display: block; + } + + .photo-label { + text-align: center; + font-weight: normal; + font-size: 18px; + line-height: 26px; + color: #222530; + } + + .photo-description { + text-align: center; + color: #9ea7b6; + font: 400 13px/18px var(--base-font); + } + } + + .info-block.info-block-primary { + color: #646f79; + font: 400 11px/16px var(--base-font); + padding: 17.5px; + text-align: center; + background: none; + border: none; + } + } + + .sign_up-organizations { + display: flex; + flex-direction: column; + margin: 0 0 20px; + + .sign_up-organization { + width: 100%; + border: 1px solid #ebedf0; + border-radius: var(--border-radius); + margin: 0 0 20px; + padding: 15px; + display: flex; + flex-direction: row; + transition: 0.4s ease; + + .sign_up-organization-logo { + width: 80px; + height: 80px; + flex-direction: column; + justify-content: center; + + img { + border-radius: 15px; + max-width: 80px; + margin: 0 auto; + padding: 5px; + } + } + + .sign_up-organization-title { + display: flex; + flex-grow: 1; + flex-direction: column; + text-align: center; + justify-content: center; + font: 500 16px/24px var(--base-font); + } + + &:hover { + border-color: #3561ff; + color: #3561ff; + } + + &:last-child { + margin-bottom: 0; + } + } + + &:last-child { + margin-bottom: 0; + } + } + + @media (max-width: 1199px) { + .card-header { + margin: 25px 0 15px; + } + } + + @media (max-width: 991px) { + .card-header { + &:before { + width: calc(100% + 40px); + left: -20px; + } + + & > .flex { + flex-direction: column; + } + } + + .block-title { + margin: 0 0 20px; + font: 500 28px/34px var(--base-font); + } + + .block-pincode { + text-align: left; + width: 100% !important; + + .pincode-number { + align-items: start !important; + height: 31px !important; + width: 38px !important; + margin-right: 3px !important; + font: 400 22px/31px var(--base-font) !important; + } + } + + .fund-apply { + .card { + .card-section.card-section-fund { + .card-block.card-block-fund { + .fund-details { + padding-right: 0; + + .fund-title { + font: 500 15px/24px var(--base-font); + } + } + } + + .card-section-actions { + padding-top: 15px; + } + } + } + } + + .sign_up-employees { + .sign_up-employee { + width: 100%; + + span { + display: flex; + flex-grow: 1; + } + } + } + + .sign_up-header { + margin: 0 -10px 25px; + } + + .sign_up-pane { + .block-title { + margin: 0 0 20px; + } + + .sign_up-pane-header { + font: 500 18px/26px var(--base-font); + } + + .sign_up-offices { + .sign_up-office { + flex-wrap: wrap; + padding: 20px 0 30px; + + .office-media { + order: 1; + padding-right: 15px; + + &.office-media-placeholder { + img { + height: 70px; + width: 70px; + } + } + } + + .office-contacts { + width: 60%; + + .office-contact { + margin: 0 0 5px; + font: 400 15px/20px var(--base-font); + } + } + + .office-map { + order: 2; + margin-top: 20px; + width: 100%; + + .office-map-content { + width: 100%; + } + + .office-actions { + padding-left: 50px; + } + } + } + + &:last-child { + border-bottom: 1px solid #edeef0; + } + } + + .sign_up-pane-body { + padding: 20px; + + .sign_up-pane-subtitle { + font: 400 24px/30px var(--base-font); + } + + .sign_up-office-edit { + border-bottom: none; + + .sign_up-pane-section { + border-bottom: none; + } + + .schedule { + border-collapse: collapse; + + td { + display: inline-block; + padding-right: 10px; + + &.breaks { + padding-left: 0; + } + } + + tr { + margin-bottom: 10px; + + &:first-child { + border-top: none; + } + } + + .schedule-day-name { + width: 100px; + margin-top: 10px; + padding-top: 5px; + } + + .schedule-day-available { + width: 60%; + } + + .time { + input { + font: 400 14px/20px var(--base-font); + } + } + + .ui-control { + &.ui-control-checkbox { + padding-right: 5px; + } + + &.ui-control-text { + width: 62px !important; + height: 30px !important; + + input { + padding: 4px 10px; + } + } + + &.breaks { + input { + margin-right: 10px; + width: 60px; + } + } + } + } + + .office-edit-actions { + .sign_up-pane-col { + border-top: none; + } + + .flex-row { + flex-direction: column; + + .flex-col { + margin-top: 12px; + + &:first-child { + margin-top: 0; + } + } + } + } + } + + .card-section-fund { + padding: 20px 20px 30px; + + .card-block { + &.card-block-fund { + padding-bottom: 20px; + + .fund-title { + font: 500 16px/26px var(--base-font); + margin: 0 0 0; + } + + .fund-organization { + font: 400 13px/16px var(--base-font); + margin: 0 0 10px; + } + } + } + } + } + + .sign_up-pane-footer { + padding: 10px 15px; + + .button { + font: 500 14px/16px var(--base-font) !important; + + .mdi { + width: auto !important; + font-size: 20px !important; + + &.icon-right, + &.icon-left { + margin-right: 0; + } + } + } + } + } + + .sign_up-organizations { + .sign_up-organization { + padding: 10px; + margin-bottom: 15px; + + .sign_up-organization-logo { + width: 36px; + height: 36px; + + img { + height: 100%; + } + } + + .sign_up-organization-title { + font: 500 16px/20px var(--base-font); + padding-left: 15px; + text-align: left; + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-tooltip-details.scss b/react/assets/forus-platform/scss/_common/blocks/block-tooltip-details.scss new file mode 100644 index 000000000..29287c9ef --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-tooltip-details.scss @@ -0,0 +1,177 @@ +.block.block-tooltip-details { + position: relative; + + .tooltip-content { + font: 500 13px/20px var(--base-font); + display: none; + padding: 8px 15px; + background: #fff; + box-shadow: 2.5px 5px 10px rgba($color: #000000, $alpha: 0.1); + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + position: absolute; + left: 100%; + margin-left: 10px; + top: 50%; + width: 450px; + max-width: calc(100vw - 100px); + transform: translate(0, -50%); + z-index: 1; + color: #151b26; + cursor: default; + white-space: normal; + + .tooltip-header { + font: 600 15px/28px var(--base-font); + color: inherit; + margin: 0 0 10px; + } + + .tooltip-heading { + font: 700 1.1em/1.5em var(--base-font); + color: inherit; + margin: 0 0; + } + + .tooltip-text { + font: inherit; + color: inherit; + margin: 0 0 10px; + } + + .tooltip-list { + .tooltip-list-item { + color: #151b26; + font: 500 13px/20px var(--base-font); + margin: 0 0 5px; + + .mdi { + line-height: 20px; + color: var(--color-primary); + float: left; + margin: 0 5px 0 0; + } + + &:last-child { + margin-bottom: 0; + } + } + } + + .tooltip-text, + .tooltip-list, + .tooltip-header { + &:last-child { + margin-bottom: 0; + } + } + + &:after, + &:before { + content: ''; + display: block; + width: 0; + height: 0; + border-style: solid; + border-width: 7.5px 10px 7.5px 0; + border-color: transparent #ffffff transparent transparent; + position: absolute; + right: 100%; + top: 50%; + transform: translate(0, -50%); + } + + &:before { + transform: translate(0, -50%); + border-width: 8.5px 12px 8.5px 0; + border-color: transparent var(--border-color) transparent transparent; + } + + &.tooltip-content-left { + left: auto; + right: 100%; + margin-left: 0; + margin-right: 10px; + + &:after, + &:before { + right: auto; + left: 100%; + transform: rotate(180deg) translate(0, 50%); + } + } + + &.tooltip-content-bottom { + top: 100%; + left: 50%; + transform: translate(-50%); + margin-left: 0; + margin-right: 0; + margin-top: 7.5px; + + &:before, + &::after { + display: none; + } + + .triangle { + position: absolute; + top: -10px; + left: 0; + width: 100%; + bottom: 100%; + margin: auto; + + &:before, + &:after { + content: ''; + position: absolute; + top: 0; + left: 50%; + bottom: 100%; + width: 0; + height: 0; + border-style: solid; + border-width: 0 10px 10px 10px; + border-color: transparent transparent var(--border-color) transparent; + transform: rotate(0deg) translate(-50%); + z-index: 1; + } + + &:before { + z-index: 2; + margin-top: 2px; + border-color: transparent transparent #ffffff transparent; + } + } + } + + &.tooltip-content-fit { + width: fit-content; + } + + &.tooltip-content-compact { + padding: 10px 15px; + } + + &.tooltip-content-ghost { + pointer-events: none; + } + } + + &.block-tooltip-details-inline { + font-size: 20px; + color: var(--color-primary); + height: inherit; + line-height: inherit; + display: inline-flex; + margin-left: 5px; + } + + &.block-tooltip-hover:hover, + &.active { + .tooltip-content { + display: block; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/blocks/block-user_emails.scss b/react/assets/forus-platform/scss/_common/blocks/block-user_emails.scss new file mode 100644 index 000000000..7df175548 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/blocks/block-user_emails.scss @@ -0,0 +1,81 @@ +.block.block-user_emails { + display: flex; + flex-direction: column; + + .user_email-item { + display: flex; + flex-direction: row; + border-bottom: 1px solid #d4d9dd; + + .user_email-icon { + padding: 20px 0 20px 20px; + + .mdi { + font-size: 26px; + margin-left: 5px; + margin-right: -5px; + color: #8ca3a6; + } + } + + .user_email-details { + padding: 20px; + flex-grow: 1; + + .user_email-address, + .user_email-options { + &:last-child { + margin-bottom: 0; + } + } + + .user_email-address { + font: 500 14px/24px var(--base-font); + color: var(--text-color); + margin: 0 0 5px; + } + + .user_email-options { + margin: 0 0 10px; + + .user_email-option { + font: 500 13px/20px var(--base-font); + color: var(--text-color); + margin: 0 0 5px; + padding-left: 15px; + position: relative; + + &:before { + content: ''; + position: absolute; + display: block; + width: 4px; + height: 4px; + border-radius: var(--border-radius); + background: var(--color-primary-light); + left: 0; + top: 50%; + transform: translate(0, -50%); + } + + &:last-child { + margin-bottom: 0; + } + } + } + } + + .user_email-actions { + padding: 20px; + + .button, + .label { + margin-left: 10px; + } + } + + &:last-child { + border-bottom: none; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-bank.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-bank.scss new file mode 100644 index 000000000..d6dfd17ff --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-bank.scss @@ -0,0 +1,72 @@ +.card-block.card-block-bank { + display: flex; + margin: -20px; + border-radius: inherit; + + .card-block-bank-media { + display: flex; + width: 140px; + border-top-left-radius: inherit; + border-bottom-left-radius: inherit; + overflow: hidden; + border-right: 1px solid var(--border-color); + + img { + width: 140px; + height: 140px; + overflow: hidden; + background-color: #f9fafa; + } + } + + .card-block-bank-details { + display: flex; + flex-direction: column; + justify-content: flex-start; + flex-grow: 1; + padding: 20px 25px; + + .card-block-bank-name { + font: 700 18px/30px var(--base-font); + margin: 0 0 15px; + } + + .card-block-bank-properties { + display: flex; + flex-direction: row; + + .card-block-bank-property { + display: flex; + flex-direction: column; + padding-right: 30px; + + .card-block-bank-property-label { + font: 600 13px/22px var(--base-font); + color: #134478; + } + + .card-block-bank-property-value { + font: 600 16px/26px var(--base-font); + + &.card-block-bank-property-value-link { + transition: 0.4s; + cursor: pointer; + + .mdi { + transition: 0.4s; + font-size: inherit; + color: var(--color-primary); + margin-left: 2.5px; + line-height: inherit; + font-size: 18px; + } + + &:hover { + color: var(--color-primary); + } + } + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-financial.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-financial.scss new file mode 100644 index 000000000..3b182fcbd --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-financial.scss @@ -0,0 +1,27 @@ +.card-block.card-block-financial { + .table { + .table-separator { + border-bottom: 2px solid #d4d9dd; + } + + .table-highlight td { + background: #f6f6f6; + font-weight: 600; + } + + .table-highlight-grey td { + background: #f6f6f6ad; + } + + tr { + &.table-totals { + white-space: nowrap; + border-top: 3px solid #134478; + + td { + font-weight: 600; + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-fund.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-fund.scss new file mode 100644 index 000000000..3fab44ae4 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-fund.scss @@ -0,0 +1,61 @@ +.card-block.card-block-fund { + padding-top: 15px; + + .fund-img { + float: left; + display: block; + width: 70px; + height: 70px; + border: 1px solid #e7e7e7; + border-radius: 70px; + overflow: hidden; + margin-top: -15px; + margin-right: 15px; + + img { + width: 100%; + display: block; + } + } + + .fund-closed { + position: absolute; + top: 20px; + right: 20px; + font: 500 14px/18px var(--base-font); + } + + .fund-title { + cursor: default; + display: inline-block; + font: 500 16px/20px var(--base-font); + color: #151b26; + transition: 0.4s; + clear: both; + position: relative; + border-bottom: 1px solid transparent; + } + + a.fund-title { + cursor: pointer; + + &:hover { + color: #9ca6af; + border-bottom-color: #9ca6af; + text-decoration: none; + } + } + + .fund-organization { + display: inline-block; + font: 500 14px/20px var(--base-font); + color: #009ef4; + margin-bottom: 10px; + clear: both; + text-decoration: none; + } + + &.card-block-fund-margin-bottom { + margin-bottom: 20px; + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-keyvalue.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-keyvalue.scss new file mode 100644 index 000000000..ebbbe0fcd --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-keyvalue.scss @@ -0,0 +1,300 @@ +.card-block.card-block-keyvalue { + margin-bottom: 10px; + @include cf(); + + .keyvalue-item { + padding-bottom: 10px; + @include cf(); + + .keyvalue-key { + float: left; + color: var(--color-primary); + font: 500 13px/20px var(--base-font); + width: 180px; + padding-right: 20px; + } + + .keyvalue-value { + float: left; + color: #282b39; + font: 500 13px/20px var(--base-font); + width: calc(100% - 210px); + display: flex; + align-items: center; + gap: 10px; + + .block-form_tooltip { + vertical-align: middle; + margin-top: -2px; + + &:not(:first-child) { + margin-left: 5px; + } + + &:not(:last-child) { + margin-right: 5px; + } + } + + .icon { + margin-left: 7px; + } + + .form-numeric { + margin-top: -5px; + } + + .keyvalue-value-info-block-toggle { + color: #134478; + font: 600 12px / 18px var(--base-font); + display: flex; + align-items: center; + cursor: pointer; + + .mdi { + color: #646f79; + font-size: 20px; + } + + &.keyvalue-value-info-block-toggle-secondary { + .mdi { + color: #134478; + font-size: 16px; + } + + &.active { + .mdi { + color: #009ef4; + } + } + } + + &:hover { + color: #426993; + } + } + + .keyvalue-value-history { + display: flex; + flex-direction: column; + width: 100%; + gap: 5px; + + .keyvalue-value-history-header { + display: flex; + flex-direction: row; + gap: 8px; + + .keyvalue-value-history-toggle { + font: 600 12px/20px var(--base-font); + display: flex; + flex-direction: row; + gap: 0; + color: #646f79; + cursor: pointer; + + .mdi { + height: 20px; + line-height: 20px; + font-size: 20px; + } + + &:hover { + color: var(--color-primary); + } + } + } + + .keyvalue-value-history-body { + background: #f7f9fc; + border-radius: var(--border-radius); + border: 1px solid var(--border-color); + padding: 5px 15px; + max-height: 350px; + overflow: auto; + @include webkit_scrollbar(); + + .keyvalue-value-history-body-item { + display: flex; + flex-direction: row; + gap: 5px; + padding: 6px 0; + font: 500 12px/20px var(--base-font); + border-bottom: 1px solid var(--border-color); + word-break: break-word; + color: #646f79; + + strong { + color: #000; + display: contents; + } + + &:last-child { + border-bottom: none; + } + } + } + } + + &.keyvalue-value-gap-sm { + gap: 5px; + } + } + + .keyvalue-link { + color: #009ef4; + font: 500 13px/20px var(--base-font); + margin-left: 5px; + display: inline-block; + + .mdi { + font-size: 1.5em; + } + } + + &:last-child, + &:last-of-type { + padding-bottom: 0; + } + + &.keyvalue-item-disabled { + pointer-events: none; + cursor: default; + } + } + + .keyvalue-item-info-block { + background: #fbfbfb; + padding: 15px 20px; + margin: 0 -20px 10px -20px; + border-top: 1px solid #d4d9dd; + border-bottom: 1px solid #d4d9dd; + + ul { + li { + display: flex; + gap: 10px; + font: 500 12px / 18px var(--base-font); + color: #151b26; + margin-bottom: 10px; + + .mdi { + font-size: 14px; + color: #134478; + } + + &:last-child { + margin-bottom: 0; + } + } + } + } + + &:not(.card-block-keyvalue-horizontal) { + .keyvalue-item { + width: 100%; + } + } + + &.card-block-keyvalue-horizontal { + .keyvalue-item { + padding-bottom: 0; + position: relative; + margin: -5px 0 -5px; + + .keyvalue-key { + font: 500 13px var(--base-font); + color: #646f79; + width: 100%; + margin-bottom: 10px; + display: block; + } + + .keyvalue-value { + font: 500 16px var(--base-font); + color: #282b39; + width: 100%; + display: block; + } + + &.keyvalue-item-narrow { + &:not(:first-child) { + padding-left: 10px; + padding-right: 10px; + } + } + + &:not(:first-child) { + padding-left: 30px; + padding-right: 30px; + } + + &:not(:last-child):not(:last-of-type) { + .keyvalue-key { + &:after { + content: ''; + display: block; + top: 10px; + bottom: 10px; + width: 1px; + right: 1px; + background: #d4d9dd; + position: absolute; + } + } + } + } + } + + &.card-block-keyvalue-bordered { + border-bottom: 1px solid #d4d9dd; + padding-bottom: 14px; + margin-bottom: 14px; + } + + &.card-block-keyvalue-md { + .keyvalue-item { + .keyvalue-key { + width: 240px; + } + + .keyvalue-value { + width: calc(100% - 240px); + } + } + } + + &.card-block-keyvalue-lg { + .keyvalue-item { + .keyvalue-key { + width: 280px; + } + + .keyvalue-value { + width: calc(100% - 280px); + } + } + } + + &.card-block-keyvalue-text-sm { + .keyvalue-item { + padding: 0 0 4px; + + .keyvalue-key { + font: 600 12px/20px var(--base-font); + } + + .keyvalue-value { + font: 500 12px/20px var(--base-font); + } + + &:last-child { + padding: 0 0 0; + } + } + } + + &:last-child { + margin-bottom: 0; + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-listing.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-listing.scss new file mode 100644 index 000000000..a495d1dfe --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-listing.scss @@ -0,0 +1,67 @@ +.card-block.card-block-listing { + font: 500 13px/20px var(--base-font); + color: #282b39; + + span { + font: inherit; + color: inherit; + } + + .card-block-listing-label { + font: 600 11px/18px var(--base-font); + color: var(--color-primary); + margin: 0 0 2px; + } + + .card-block-listing-value { + font: inherit; + + & > .mdi { + font-size: 18px; + line-height: 18px; + vertical-align: bottom; + color: var(--color-primary); + margin: 0 5px; + transition: 0.32s; + + &:hover { + color: var(--color-primary-light); + } + } + } + + .card-block-listing-row { + margin: 0 0 15px; + + &:last-child { + margin-bottom: 0; + } + } + + &.card-block-listing-variant { + display: inline-block; + font-size: 14px; + color: #282b39; + + .card-block-listing-label { + color: var(--color-primary); + font: 500 11px/20px var(--base-font); + } + } + + &.card-block-listing-inline { + display: inline-block; + padding-bottom: 10px; + padding-right: 20px; + + &:last-child, + &:last-of-type { + padding-right: 0; + padding-bottom: 0; + } + } + + &.card-block-listing-no-pad { + padding-bottom: 0; + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-notes.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-notes.scss new file mode 100644 index 000000000..5e5b8ba08 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-notes.scss @@ -0,0 +1,65 @@ +.card-block.card-block-notes { + margin: -20px; + + .note-form { + padding: 15px 15px 15px 55px; + + .note-form-actions { + padding-top: 10px; + @include cf(); + + .note-form-desc { + float: left; + width: 50%; + } + + .note-form-buttons { + text-align: right; + float: right; + width: 50%; + } + } + } + + .note-item { + position: relative; + padding: 15px 55px; + border-bottom: 1px solid #d4d9dd; + background: #fff; + transition: 0.4s; + cursor: default; + + &:last-child { + border-bottom: 1px solid transparent; + } + + &:hover { + background: #f6f8f9; + } + } + + .note-item-icon { + position: absolute; + left: 25px; + top: 20px; + width: 16px; + height: 16px; + } + + .note-item-text { + color: #282b39; + font: 500 13px/18px var(--base-font); + } + + .note-item-sign { + color: #646f79; + font: 500 12px/18px var(--base-font); + + .mdi { + font-size: 5px; + margin-left: 5px; + margin-right: 5px; + color: #d4d9dd; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-provider.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-provider.scss new file mode 100644 index 000000000..899889ec8 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-provider.scss @@ -0,0 +1,71 @@ +.card-block.card-block-provider { + display: flex; + gap: 20px; + flex-direction: row; + padding-bottom: 20px; + + .provider-offset { + float: left; + display: block; + width: 70px; + } + + .provider-img { + float: left; + display: block; + width: 50px; + height: 50px; + flex: 0 0 50px; + border: 1px solid #e7e7e7; + border-radius: var(--border-radius); + overflow: hidden; + background-color: #f1f4f7; + + img { + width: 100%; + display: block; + } + } + + .provider-details { + flex: 1 1 auto; + display: flex; + flex-direction: column; + justify-content: center; + min-width: 0; + gap: 4px; + + .provider-title { + display: block; + font: 500 16px/20px var(--base-font); + color: #151b26; + transition: 0.4s; + position: relative; + cursor: default; + word-wrap: break-word; + } + + .provider-subtitle { + font: 500 12px/16px var(--base-font); + color: #646f79; + word-wrap: break-word; + } + } + + .provider-actions { + display: flex; + flex-direction: row; + flex: 0 0 auto; + height: fit-content; + } + + a.provider-title:hover { + cursor: pointer; + color: #9ca6af; + text-decoration: none; + } + + &:last-child { + padding-bottom: 0; + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-request-record.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-request-record.scss new file mode 100644 index 000000000..3425cc447 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-request-record.scss @@ -0,0 +1,27 @@ +.card-block.card-block-request-record { + .card-header { + .card-title { + margin-bottom: 0; + } + } + + .block-label-tabs { + margin-bottom: 10px; + } + + .table { + tr { + td { + &.collapse-content { + padding: 15px 20px; + } + + .card { + border: 1px solid var(--border-color); + overflow: hidden; + box-shadow: none; + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-schedule.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-schedule.scss new file mode 100644 index 000000000..0cf3201a6 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-schedule.scss @@ -0,0 +1,10 @@ +.card-block.card-block-schedule { + display: flex; + flex-direction: column; + margin-top: -5px; + gap: 10px; + + .card-block-schedule-title { + font: 600 14px/24px var(--base-font); + } +} diff --git a/react/assets/forus-platform/scss/_common/card-blocks/card-block-table.scss b/react/assets/forus-platform/scss/_common/card-blocks/card-block-table.scss new file mode 100644 index 000000000..698278f11 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/card-blocks/card-block-table.scss @@ -0,0 +1,3 @@ +.card-block.card-block-table { + margin: -20px; +} diff --git a/react/assets/forus-platform/scss/_common/components/app.scss b/react/assets/forus-platform/scss/_common/components/app.scss new file mode 100644 index 000000000..8247f337f --- /dev/null +++ b/react/assets/forus-platform/scss/_common/components/app.scss @@ -0,0 +1,612 @@ +.app { + flex: 1 0 auto; + @include webkit_scrollbar(#848588); + + &.app-header { + padding: 20px 0; + position: relative; + z-index: 2; + width: 100%; + max-width: 1470px; + display: flex; + flex-direction: column; + gap: 20px; + margin: 0 auto; + + .app-header-row { + position: relative; + display: flex; + flex-direction: row; + } + + .header-logo { + float: left; + padding: 10px 0; + + .header-logo-img { + display: block; + height: 40px; + } + } + + .header-organization-switcher { + width: 265px; + display: flex; + align-items: center; + + .select-control { + width: 100%; + } + } + + .notifications { + margin-right: 40px; + padding-bottom: 0; + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + + .notifications-icons { + .notifications-icon { + color: var(--text-color); + background-color: #fff; + box-shadow: 0 5px 15px rgba($color: #000000, $alpha: 0.1); + border-radius: 50px; + width: 36px; + height: 36px; + text-align: center; + line-height: 36px; + font-size: 18px; + cursor: pointer; + transition: + background 0.4s, + color 0.4s; + margin-right: 20px; + + .mdi { + transition: transform 0.4s; + } + + &:hover { + background-color: #fafafa; + + &.notifications-icon-updates { + color: #fafafa; + background-color: #d91d46; + + .mdi { + transform: rotate(50deg); + } + } + } + + &.notifications-icon-updates { + color: #d91d46; + + .mdi { + transform: rotate(30deg); + } + } + + &:last-child { + margin-right: 0; + } + } + } + + .notifications-menu { + display: none; + position: absolute; + width: 360px; + top: 100%; + z-index: 1; + right: -15px; + + .notifications-menu-inner { + background: #ffffff; + border-radius: var(--border-radius); + box-shadow: 0 10px 25px rgba(#000, 0.15); + position: relative; + + .arrow-box { + right: 32.5px; + left: auto; + transform: scale(0.75); + } + + .notifications-menu-header { + border-bottom: 1px solid #d4d9dd; + padding: 10px 20px; + font: 500 13px/20px var(--base-font); + color: #282b39; + position: relative; + cursor: default; + + .notifications-menu-header-link { + font: 500 13px/20px var(--base-font); + position: absolute; + right: 20px; + top: 50%; + transform: translate(0, -50%); + cursor: pointer; + transition: color 0.4s; + + .mdi { + padding-left: 5px; + font-size: 1.15em; + line-height: 20px; + color: inherit; + transition: color 0.4s; + } + + &:hover { + color: #009ef4; + + .mdi { + color: #009ef4; + } + } + } + } + + .notifications-menu-body { + max-height: 300px; + overflow-y: auto; + @include webkit_scrollbar(); + + .notifications-menu-item { + padding: 15px 20px; + border-bottom: 1px solid #d4d9dd; + position: relative; + transition: background-color 0.4s; + cursor: default; + display: flex; + flex-direction: row; + word-break: break-word; + + .notifications-menu-item-icon { + margin-right: 10px; + padding: 2.5px 0; + + img { + display: block; + } + } + + .notifications-menu-item-details { + display: flex; + flex-direction: column; + } + + .notifications-menu-item-title { + font: 700 13px/16px var(--base-font); + margin: 0 0 5px; + color: #282b39; + } + + .notifications-menu-item-text { + font: 500 13px/16px var(--base-font); + margin: 0 0 10px; + color: #282b39; + } + + .notifications-menu-item-date { + font: 500 12px/14px var(--base-font); + color: #646f79; + + .mdi { + line-height: inherit; + margin-right: 3px; + } + } + + &.notifications-menu-item-new { + background-color: #e4ecf170; + } + + &:last-child { + border-bottom: 0; + } + + /* &:hover { + background: #f6f8f9; + } */ + } + + .notifications-menu-empty { + cursor: default; + padding: 20px 20px; + font: 500 13px/16px var(--base-font); + color: #282b39; + text-align: center; + } + } + } + } + + &.active { + .notifications-menu { + display: block; + } + } + } + + .header-auth { + float: right; + position: relative; + z-index: 1; + display: flex; + + .auth-user { + position: relative; + padding-bottom: 15px; + margin-bottom: -10px; + display: flex; + flex-direction: row; + cursor: pointer; + @include cf(); + + .auth-user-details { + display: flex; + flex-direction: column; + padding: 5px 10px 5px 0; + + .auth-user-name { + font: 500 14px/20px var(--base-font); + color: #151b26; + text-align: right; + } + + .auth-user-role { + font: 400 12px/20px var(--base-font); + color: #151b26; + text-align: right; + + .auth-user-role-separator { + font-size: 22px; + line-height: inherit; + vertical-align: top; + color: #a1a1a1; + padding: 0 3px; + } + } + } + + .auth-user-caret { + display: flex; + align-items: center; + color: #151b26; + padding-left: 5px; + + em { + font-size: 20px; + font-weight: 600; + margin-top: 3px; + } + + @media screen and (max-width: 1000px) { + display: none; + } + } + + .auth-user-img { + display: block; + width: 50px; + height: 50px; + border-radius: 50px; + background: #fff; + box-shadow: 0 2px 9px rgba(0, 0, 0, 0.1); + } + + .auth-user-menu { + position: absolute; + right: 0; + top: 60px; + border: 1px solid #f3f4f5; + background: #fff; + border-radius: var(--border-radius); + box-shadow: 0 5px 30px rgba(#000, 0.1); + min-width: 220px; + max-width: 80%; + padding: 10px 10px; + cursor: default; + + .auth-user-menu-title { + text-transform: uppercase; + color: #646f79; + font: 600 11px/13px var(--base-font); + padding: 10px 0 10px 2px; + } + + .auth-user-menu-sep { + display: block; + border-top: 1px solid #f3f4f5; + margin: 10px -10px 10px; + } + + .auth-user-menu-item { + display: flex; + justify-content: flex-start; + cursor: pointer; + padding: 0; + font: 500 13px/36px var(--base-font); + letter-spacing: -0.312px; + color: #151b26; + transition: 0.4s; + + .auth-user-menu-item-icon { + display: flex; + flex: 0 0 32px; + width: 32px; + height: 36px; + margin-right: 4px; + + svg, + img { + max-width: 100%; + max-height: 100%; + object-fit: contain; + object-position: center; + transition: 0.4s; + + path { + transition: 0.4s; + } + } + + svg { + height: 36px; + } + } + + &.active { + padding-right: 30px; + position: relative; + color: #004195; + + .auth-user-menu-item-icon { + svg { + path { + fill: #134478; + } + } + } + + &:after { + content: ''; + background-image: assetUrl('img/icon-check.svg'); + background-position: center; + background-size: contain; + background-repeat: no-repeat; + width: 20px; + height: 20px; + position: absolute; + right: 0; + top: 50%; + transform: translate(0, -50%); + } + } + + &:hover { + text-decoration: none; + background: #f6f8f9; + color: #004195; + + .auth-user-menu-item-icon { + svg { + path { + fill: #134478; + } + } + } + } + + &:last-child { + margin-bottom: 0; + } + } + } + } + } + } + + &.app-container { + width: 100%; + max-width: 1470px; + display: flex; + flex-direction: row; + gap: 30px; + margin: 0 auto; + } + + &.app-sidebar { + flex: 0 0 260px; + padding-left: 8px; + position: relative; + + .sidebar-nav { + display: flex; + flex-direction: column; + gap: 4px; + padding-bottom: 30px; + position: sticky; + left: 0; + top: 15px; + + .sidebar-nav-group { + display: flex; + flex-direction: column; + background: transparent; + transition: 0.4s; + + .sidebar-nav-group-header { + display: flex; + flex-direction: row; + align-items: flex-start; + border-radius: var(--border-radius); + transition: background-color 0.4s; + gap: 6px; + + .sidebar-nav-group-header-icon { + display: flex; + flex: 0 0 32px; + position: relative; + + svg { + display: block; + } + + .sidebar-nav-group-header-icon-default { + opacity: 1; + transition: opacity 0.4s; + } + + .sidebar-nav-group-header-icon-active { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: opacity 0.4s; + } + } + + .sidebar-nav-group-header-title { + display: flex; + flex: 1 1 auto; + font: 500 13px/20px var(--base-font); + padding: 6px 0; + transition: color 0.4s; + } + + .sidebar-nav-group-header-toggle { + display: flex; + flex: 0 0 32px; + height: 32px; + justify-content: center; + align-items: center; + color: #b0bec5; + font-size: 20px; + transition: color 0.4s; + } + + &:hover { + background: #426993; + + .sidebar-nav-group-header-icon { + .sidebar-nav-group-header-icon-default { + opacity: 0; + } + + .sidebar-nav-group-header-icon-active { + opacity: 1; + } + } + + .sidebar-nav-group-header-title { + color: #fff; + } + + .sidebar-nav-group-header-toggle { + color: #fff; + } + } + } + + .sidebar-nav-group-items { + display: flex; + flex-direction: column; + margin: 0 0 0 14px; + border-left: 2px solid var(--border-color); + padding: 4px 0; + + .sidebar-nav-group-item { + padding: 5px 10px 5px 22px; + font: 500 13px/20px var(--base-font); + color: #151b26; + text-decoration: none; + margin-left: -2px; + border-left: 2px solid var(--border-color); + + &:hover { + color: #426993; + text-decoration: underline; + } + + &.active { + color: #134478; + border-left: 2px solid #134478; + } + } + } + + &.sidebar-nav-group-active { + & > .sidebar-nav-group-header { + background: #134478; + border-radius: var(--border-radius); + + .sidebar-nav-group-header-icon { + .sidebar-nav-group-header-icon-default { + opacity: 0; + } + + .sidebar-nav-group-header-icon-active { + opacity: 1; + } + } + + .sidebar-nav-group-header-title { + color: #fff; + } + + .sidebar-nav-group-header-toggle { + color: #fff; + } + } + } + } + } + } + + &.app-content { + flex: 1 1 auto; + display: flex; + flex-direction: column; + min-width: 0; + padding: 0 0 30px; + } + + @media screen and (max-width: 1300px) { + &.app-sidebar { + width: 240px; + padding-right: 40px; + } + + &.app-content { + width: calc(100% - 240px); + } + } + + @media screen and (max-width: 1000px) { + &.app-header { + padding: 25px 0; + + .header-logo { + display: none; + } + } + + &.app-sidebar { + width: 100%; + margin-bottom: 20px; + padding: 0; + } + + &.app-content { + padding: 0; + width: 100%; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/components/card-heading.scss b/react/assets/forus-platform/scss/_common/components/card-heading.scss new file mode 100644 index 000000000..2872e28b3 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/components/card-heading.scss @@ -0,0 +1,38 @@ +.card-heading { + font: 500 18px/26px var(--base-font); + color: #282b39; + margin-bottom: 10px; + cursor: default; + + .block.block-inline-filters { + .form { + .form-group { + margin: 0 10px 0 0; + + &:last-child { + margin-right: 0; + } + } + } + } + + .link { + display: inline-block; + color: #646f79; + transition: 0.4s; + margin-left: 10px; + font: 500 13px/26px var(--base-font); + + .mdi { + line-height: inherit; + float: left; + font-size: 1.2em; + color: inherit; + margin-right: 5px; + } + + &:hover { + color: #d91d46; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/components/card.scss b/react/assets/forus-platform/scss/_common/components/card.scss new file mode 100644 index 000000000..d94724427 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/components/card.scss @@ -0,0 +1,521 @@ +.card { + --card-margin: 20px; + background: #ffffff; + border-radius: var(--border-radius); + box-shadow: 0 2px 8px rgba(#000, 0.1); + margin-bottom: var(--card-margin); + cursor: default; + + @mixin bgDanger() { + background: rgba(246, 246, 246, 0.4); + } + + .card-header, + .card-section, + .card-footer { + border-bottom: 1px solid var(--border-color); + + &:first-child { + border-top-left-radius: 5px; + border-top-right-radius: 5px; + } + + &:last-child { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + } + + .card-header { + &:last-child { + border-bottom: none; + } + } + + .card-title { + font: 500 16px/30px var(--base-font); + color: #282b39; + cursor: inherit; + display: flex; + + .card-collapse { + float: right; + font-size: 36px; + line-height: 28px; + color: #777; + } + + .tag { + margin-left: 10px; + } + + .mdi { + margin-right: 7px; + font-size: 20px; + line-height: 30px; + height: 30px; + } + + &.card-title-sm { + font-size: 14px; + } + } + + .card-subtitle { + font: 500 13px/20px var(--base-font); + color: #404040; + + .mdi { + font-size: 16px; + margin-right: 2px; + color: #404040; + } + } + + .card-header { + padding: 15px 20px 14px; + position: relative; + display: flex; + flex-direction: row; + align-items: center; + + .card-title { + margin: 0 0 !important; + } + + .card-header-filters { + display: flex; + flex-direction: row; + gap: 10px; + align-items: center; + + .block-inline-filters { + display: flex; + flex-direction: row; + gap: 10px; + align-items: center; + + .form-control:not(.select-control) { + min-height: auto !important; + + &:not([type='radio']):not([type='checkbox']) { + height: 30px; + padding: 0 10px; + line-height: 28px; + } + } + + .block-label-tabs { + .label-tab { + height: 30px; + line-height: 24px; + padding-top: 2px; + padding-bottom: 2px; + font-size: 12px; + + .mdi { + line-height: 24px; + } + } + } + + .select-control { + min-height: auto !important; + + .form-control:not([type='radio']):not([type='checkbox']) { + padding-right: 30px; + } + } + + & > * { + margin: 0 0 0 0; + } + } + } + + .card-header-actions { + margin: -1px 0; + display: flex; + flex-direction: column; + gap: 5px; + } + + .block-label-tabs { + margin-left: 0; + } + + .button { + line-height: 22px; + } + + &.card-header-warning { + background: #fcf2dd; + } + + &.card-header-danger { + @include bgDanger(); + } + + &.card-header-primary { + background: #f6f9fc; + } + + &.card-header-success { + background: #f7f9de; + } + + &.card-header-sm { + padding: 7.5px 25px; + + .card-title { + color: #646f79; + } + } + + &.card-header-md { + .card-title { + font: 600 14px / 21px var(--base-font); + + .mdi { + margin-right: 0; + margin-left: -15px; + color: #646f79; + } + } + } + + &.card-header-cursor-default { + cursor: default; + } + } + + .label-item { + font: 500 13px var(--base-font); + color: #646f79; + margin-bottom: 5px; + } + + .card-heading { + font: 600 14px/22px var(--base-font); + color: #282b39; + margin: 0 0 15px; + cursor: inherit; + + &:last-child, + &.card-heading-padless { + margin-bottom: 0; + } + } + + .card-text { + font: 500 14px/20px var(--base-font); + color: #646f79; + margin: 0 0 15px; + cursor: inherit; + + &:last-child { + margin-bottom: 0; + } + + &.alert { + color: #a80a2d; + font: 600 16px/18px var(--base-font); + } + } + + .card-text-link { + color: inherit; + font: inherit; + text-decoration: underline; + } + + .card-section { + display: flex; + flex-direction: column; + padding: 20px; + position: relative; + cursor: inherit; + font: 500 13px var(--base-font); + + .card-title { + font: 500 16px/30px var(--base-font); + color: #282b39; + cursor: inherit; + margin: 0 0 10px; + + &:last-child, + &:last-of-type { + margin: 0; + } + } + + .card-loading { + padding: 15px 0; + display: flex; + justify-content: center; + + .mdi { + font-size: 40px; + display: flex; + opacity: 0.5; + } + } + + .card-col { + padding: 25px; + border-right: 1px solid #d4d9dd; + + &.card-col-1 { + width: calc(100% / 6) * 1; + } + + &.card-col-2 { + width: calc(100% / 6) * 2; + } + + &.card-col-3 { + width: calc(100% / 6) * 3; + } + + &.card-col-4 { + width: calc(100% / 6) * 4; + } + + &.card-col-5 { + width: calc(100% / 6) * 5; + } + + &.card-col-6 { + width: calc(100% / 6) * 6; + } + + &:last-child { + border-right: none; + } + } + + .card-section-inner { + margin: -20px; + } + + .card-section-actions { + position: absolute; + margin-bottom: -10px; + right: 20px; + top: 25px; + z-index: 1; + + .card-section-action { + display: inline-block; + font: 500 13px/25px var(--base-font); + color: #646f79; + margin-right: 10px; + vertical-align: top; + cursor: pointer; + + .mdi { + font-size: 1.6em; + float: left; + margin-right: 3px; + } + + &:hover { + text-decoration: none; + color: #e63b3b; + + .mdi { + color: #e63b3b; + } + } + + &:last-child { + margin-right: 0; + } + } + + .card-section-action-price { + margin-right: 10px; + display: inline-block; + font: 500 16px var(--base-font); + color: #151b26; + vertical-align: top; + text-align: right; + + .old-price { + font: 500 14px var(--base-font); + color: #646f79; + display: block; + text-decoration: line-through; + } + } + + .card-section-actions-details { + .card-section-actions-label { + font: 600 11px/18px var(--base-font); + text-align: right; + color: #134478; + margin: 0 0 2px; + } + + .card-section-actions-value { + font: 500 12px/20px var(--base-font); + text-align: right; + color: #000000; + } + + &:not(:first-child) { + padding-top: 15px; + } + } + + &.card-section-actions-bottom { + top: auto; + bottom: 25px; + } + } + + .divider { + padding-top: 25px; + border-bottom: 1px solid #d4d9dd; + margin: 0 -25px 25px; + } + + &.card-section-warning { + background: #fcfaf6; + } + + &.card-section-danger { + @include bgDanger(); + } + + &.card-section-primary { + background: #f6f9fc; + } + + &.card-section-success { + background: #f7f9de; + } + + &.card-section-narrow { + padding: 15px 25px 15px; + } + + &.card-section-sm { + padding: 10px; + } + + &.card-section-padless, + &.card-section-no-padding { + padding: 0; + } + + &.card-section-no-border, + &:last-child { + border-bottom: 0; + } + } + + .card-info { + border-bottom: 1px solid var(--border-color); + padding: 10px 15px; + display: grid; + grid-template-columns: 20px 1fr; + min-height: 50px; + gap: 15px; + + .card-info-icon { + min-height: 20px; + font-size: 18px; + align-self: center; + display: flex; + justify-content: center; + } + + .card-info-details { + font: 400 13px/18px var(--base-font); + margin: 0 0 0; + display: flex; + justify-content: center; + flex-direction: column; + + strong { + font-weight: 500; + } + } + + &.card-info-dim { + background-color: #fbfbfb; + } + } + + .card-footer { + padding: 15px 20px; + + &.card-footer-warning { + background: #fcfaf6; + } + + &.card-footer-danger { + @include bgDanger(); + } + + &.card-footer-primary { + background: #f6f9fc; + } + + &.card-footer-success { + background: #f7f9de; + } + + &.card-footer-sm { + padding: 7.5px 25px; + + .card-title { + color: #646f79; + } + } + } + + &:last-child { + margin-bottom: 0; + } + + &.card-outline { + border: 1px solid var(--border-color); + } + + &.card-collapsable { + transition: background 0.4s; + + .card-header, + .card-section { + &[ng-click] { + cursor: pointer; + } + } + + &:not(.card-collapsed):hover { + background: lighten($color: #f3f4f5, $amount: 2); + } + } + + &.card-wrapped { + margin-bottom: var(--card-margin); + } + + &.card-padded { + margin-bottom: 0; + } + + &.card-bordered { + border: 1px solid var(--border-color); + } + + &.card-overflow-hidden { + overflow: hidden; + } + + &.card-no-shadow { + box-shadow: none; + } +} diff --git a/react/assets/forus-platform/scss/_common/components/signup-layout.scss b/react/assets/forus-platform/scss/_common/components/signup-layout.scss new file mode 100644 index 000000000..326e953bd --- /dev/null +++ b/react/assets/forus-platform/scss/_common/components/signup-layout.scss @@ -0,0 +1,313 @@ +.signup-layout { + background-color: #f7f9fc; + + .header-auth { + display: none !important; + } + + .header-logo { + display: none !important; + } + + .section-footer { + display: none !important; + } + + .app.app-header { + padding: 0; + } + + .text-primary { + color: #305dfb !important; + } + + .card { + border: 1px solid #d2e6ff; + box-shadow: 5px 25px 35px rgba($color: #000000, $alpha: 0.075); + margin-bottom: 30px; + + .card-header { + border-bottom: 1px solid #d2e6ff; + position: relative; + + .card-header-image { + position: absolute; + bottom: 0; + right: 20px; + width: 40px; + } + } + + .card-title { + font: 700 22px/36px var(--base-font); + color: #282b39; + + i, + b { + font-weight: 700; + font-size: 22px; + } + } + + .card-subtitle { + font: 400 16px/24px var(--base-font); + color: #646f79; + + i, + b { + font-size: 16px; + } + } + + .card-subdescription { + font: 400 13px/20px var(--base-font); + color: #646f79; + + i, + b { + font-size: 13px; + } + } + + .card-section { + border-color: #d2e6ff; + + .card-title { + font: 700 22px var(--base-font); + margin: 0 0 15px; + color: #282b39; + } + + .card-col { + border-color: #d2e6ff; + } + } + } + + .button { + transform: translate(0, 0); + font: 700 14px/30px var(--base-font); + padding: 10px 65px; + text-align: center; + border-radius: var(--border-radius); + + &.button-primary { + background: #305dfb; + border-color: #305dfb; + color: #fff; + + &:hover { + background: #4c74ff; + border-color: #4c74ff; + } + } + + &.button-text { + &.button-text-primary { + color: #305dfb; + } + } + + &.button-default { + background: #282b39; + border-color: #282b39; + color: #fff; + + &:hover { + background: #646f79; + border-color: #646f79; + } + } + + &.button-text { + &:hover { + color: #305dfb; + } + } + } + + .form { + .form-label { + text-transform: uppercase; + font-weight: 600; + font-size: 11px; + } + + .form-group { + margin-bottom: 15px; + } + } + + // override + .block.block-schedule-editor { + .schedule-item { + select.form-control { + height: 34px; + padding: 0 12px; + border: 1px solid #d2e6ff; + color: #282b39; + font: 500 12px var(--base-font); + } + } + } + + .modal { + .modal-window { + background: #fff; + } + } + + &.signup-layout-new { + background: #fff; + + .button { + line-height: 28px; + font-size: 16px; + font-weight: 500; + border-radius: calc(var(--border-radius)); + + &.button-disabled, + [disabled] { + background: #eff2f4; + border-color: #eff2f4; + color: #ccd0e0; + box-shadow: none; + pointer-events: none; + cursor: default; + + &:hover { + box-shadow: none; + } + } + + .mdi { + font-size: 26px; + + &.icon-start { + margin-left: -10px; + margin-right: 10px; + } + + &.icon-end { + margin-left: 10px; + margin-right: -10px; + } + } + } + + @media (max-width: 991px) { + .modal { + .button { + font-size: 14px; + padding: 7px 35px; + } + } + + .fund-apply { + .card { + .card-section { + &.card-section-fund { + flex-direction: column; + align-items: flex-start; + justify-content: flex-start; + padding: 20px 20px; + + .card-section-actions { + order: 2; + position: initial; + margin: 0 0 0; + width: 100%; + + .button { + width: 100%; + } + } + + .card-block.card-block-fund { + order: 1; + padding: 0 0 0; + } + } + } + } + } + + .sign_up-pane-body { + .block-photo-selector { + display: flex; + max-width: none; + + .photo-img { + width: 80px; + height: 80px; + margin: 0 20px 0 0 !important; + } + + .photo-details { + max-width: calc(100% - 100px); + + .photo-label, + .photo-description { + text-align: left; + line-height: 20px; + } + } + } + + .sign_up-pane-auth { + .sign_up-pane-auth-qr_code { + .block.block-qr-code { + margin: 0 auto; + } + } + } + + .sign_up-pane-section { + flex-direction: column !important; + padding-right: 0 !important; + + .sign_up-pane-col { + width: 100% !important; + padding: 14px !important; + border-top: 1px solid #edeef0; + + &.sign_up-pane-col-2 { + order: 1; + } + } + } + + .ui-control.ui-control-checkbox { + padding-top: 5px; + padding-bottom: 5px; + } + } + + .finish-screen { + .sign_up-pane-body { + .sign_up-pane-text { + padding-left: 10px; + padding-right: 10px; + text-align: center !important; + } + + .button { + background-color: #e1e8ff; + border-radius: var(--border-radius); + } + } + } + + .sign_up-pane-footer { + .button { + .mdi { + &:before, + &:after { + line-height: inherit; + } + } + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/dashboard.scss b/react/assets/forus-platform/scss/_common/dashboard.scss index 44d2756d8..0f8837035 100644 --- a/react/assets/forus-platform/scss/_common/dashboard.scss +++ b/react/assets/forus-platform/scss/_common/dashboard.scss @@ -7,13 +7,14 @@ @import 'includes/common'; @import 'includes/visibility'; -// DEV PAGES -@import 'includes/ie'; - // modules @import 'includes/printables'; // components +@import 'components/app.scss'; +@import 'components/card-heading.scss'; +@import 'components/card.scss'; +@import 'components/signup-layout.scss'; @import 'components/forms'; @import 'components/tables'; @import 'components/buttons'; @@ -21,28 +22,24 @@ @import 'components/grid'; @import 'components/labels'; @import 'components/flex-grid'; -@import 'components/modals.scss'; @import 'components/frame-director.scss'; -// blocks -.block { - @import 'blocks/block-chat'; - @import 'blocks/block-fund'; - @import 'blocks/block-critera-editor'; - @import 'blocks/block-faq-editor'; - @import 'blocks/block-card-toggleable'; - @import 'blocks/block-external-validators'; - @import 'blocks/block-danger_zone'; - @import 'blocks/block-sessions'; - @import 'blocks/block-breadcrumbs'; - @import 'blocks/block-notifications'; - @import '../../../forus-webshop/scss/includes/components/ui-controls'; -} - +@import '../../../forus-webshop/scss/includes/components/ui-controls'; @import '../../../forus-webshop/scss/includes/components/table-pagination'; + +// blocks from webshop @import '../../../forus-webshop/scss/includes/blocks/block-sign_up'; @import '../../../forus-webshop/scss/includes/blocks/block-exception'; +// blocks +@import 'blocks/block-chat'; +@import 'blocks/block-fund'; +@import 'blocks/block-critera-editor'; +@import 'blocks/block-faq-editor'; +@import 'blocks/block-danger_zone'; +@import 'blocks/block-sessions'; +@import 'blocks/block-breadcrumbs'; +@import 'blocks/block-notifications'; @import 'blocks/block-app_download.scss'; @import 'blocks/block-app_links.scss'; @import 'blocks/block-timeframe.scss'; @@ -64,18 +61,6 @@ @import 'blocks/block-voucher-records-editor.scss'; @import 'blocks/block-content.scss'; -// Marketplace feature blocks -@import 'blocks/marketplace-features/block-features-overview.scss'; -@import 'blocks/marketplace-features/block-features-demo-banner.scss'; -@import 'blocks/marketplace-features/block-feature-icons.scss'; -@import 'blocks/marketplace-features/block-feature-steps.scss'; -@import 'blocks/marketplace-features/block-feature-list.scss'; -@import 'blocks/marketplace-features/block-feature-list-row.scss'; -@import 'blocks/marketplace-features/block-feature-text-image-columns.scss'; -@import 'blocks/marketplace-features/block-features.scss'; -@import 'blocks/marketplace-features/block-feature.scss'; -@import 'blocks/marketplace-features/block-feature-faq.scss'; - @import 'blocks/block-payment-connection.scss'; @import 'blocks/block-pre-checks-blocks-editor'; @import 'blocks/block-table-config.scss'; @@ -93,7 +78,6 @@ @import 'blocks/block-push-notifications.scss'; @import 'blocks/block-inline-copy.scss'; @import 'blocks/block-inline-edit.scss'; -@import 'blocks/block-collapsable.scss'; @import 'blocks/block-fund-request-assigned.scss'; @import 'blocks/block-product.scss'; @import 'blocks/block-label-tabs.scss'; @@ -104,6503 +88,72 @@ @import 'blocks/block-request-clarification.scss'; @import 'blocks/block-product-media-uploader.scss'; @import 'blocks/block-file-uploader'; +@import 'blocks/block-form_tooltip.scss'; +@import 'blocks/block-sign_up.scss'; +@import 'blocks/block-pdf-preview.scss'; +@import 'blocks/block-tooltip-details.scss'; +@import 'blocks/block-info.scss'; +@import 'blocks/block-empty.scss'; +@import 'blocks/block-qr-code.scss'; +@import 'blocks/block-preferences.scss'; +@import 'blocks/block-message.scss'; +@import 'blocks/block-csv.scss'; +@import 'blocks/block-schedule-editor.scss'; +@import 'blocks/block-photo-selector.scss'; +@import 'blocks/block-file.scss'; +@import 'blocks/block-inline-filters.scss'; +@import 'blocks/block-information.scss'; +@import 'blocks/block-entity-overview.scss'; +@import 'blocks/block-page-loading-bar.scss'; +@import 'blocks/block-login.scss'; +@import 'blocks/block-email-confirmed.scss'; +@import 'blocks/block-charts.scss'; +@import 'blocks/block-compact-datalist.scss'; +@import 'blocks/block-user_emails.scss'; + +// card-blocks +@import 'card-blocks/card-block-table.scss'; +@import 'card-blocks/card-block-listing.scss'; +@import 'card-blocks/card-block-keyvalue.scss'; +@import 'card-blocks/card-block-fund.scss'; +@import 'card-blocks/card-block-provider.scss'; +@import 'card-blocks/card-block-notes.scss'; +@import 'card-blocks/card-block-financial.scss'; +@import 'card-blocks/card-block-bank.scss'; +@import 'card-blocks/card-block-request-record.scss'; +@import 'card-blocks/card-block-schedule.scss'; + +// Marketplace feature blocks +@import 'blocks/marketplace-features/block-features-overview.scss'; +@import 'blocks/marketplace-features/block-features-demo-banner.scss'; +@import 'blocks/marketplace-features/block-feature-icons.scss'; +@import 'blocks/marketplace-features/block-feature-steps.scss'; +@import 'blocks/marketplace-features/block-feature-list.scss'; +@import 'blocks/marketplace-features/block-feature-list-row.scss'; +@import 'blocks/marketplace-features/block-feature-text-image-columns.scss'; +@import 'blocks/marketplace-features/block-features.scss'; +@import 'blocks/marketplace-features/block-feature.scss'; +@import 'blocks/marketplace-features/block-feature-faq.scss'; + +// modals +@import 'modals/modal.scss'; +@import 'modals/modal-voucher_qr.scss'; +@import 'modals/modal-fund-offers.scss'; +@import 'modals/modal-pdf-preview.scss'; +@import 'modals/modal-image-preview.scss'; +@import 'modals/modal-fund-unsubscribe.scss'; +@import 'modals/modal-2fa-setup.scss'; +@import 'modals/modal-voucher-create.scss'; +@import 'modals/modal-feature-contact.scss'; +@import 'modals/modal-photo-upload.scss'; +@import 'modals/modal-voucher-transaction.scss'; +@import 'modals/modal-pin-code.scss'; +@import 'modals/modal-provider-products-required.scss'; +@import 'modals/modal-bulk-upload.scss'; // Select controls @import 'select-controls/select-control-funds'; @import 'select-controls/select-control-organizations'; // Dropdown menus -.dropdown { - // dropdown blocks - @import 'dropdown/dropdown-actions'; -} - -.modal { - @import 'modals/modal-photo-upload.scss'; - @import 'modals/modal-voucher-transaction.scss'; - @import 'modals/modal-pin-code.scss'; - @import 'modals/modal-provider-products-required.scss'; - @import 'modals/modal-bulk-upload.scss'; -} - -html, -body { - height: 100%; -} - -body { - display: flex; - flex-direction: column; -} - -.hover-actions { - position: relative; - - .mdi { - font-size: 1.5em; - color: #8ca3a6; - cursor: pointer; - } - - .hover-actions-menu { - display: none; - z-index: 1; - position: absolute; - right: 50%; - top: 50%; - margin-top: 2px; - background: #fff; - max-width: 80vw; - width: 240px; - border: 1px solid #f3f4f5; - border-radius: var(--border-radius); - box-shadow: 0 5px 25px rgba(#000, 0.15); - padding: 5px 20px; - @include cf(); - - .hover-actions-label { - padding: 10px 20px; - margin: 0 -20px; - font: 500 13px/20px var(--base-font); - color: #646f79; - } - - .hover-actions-item { - padding: 10px 20px; - margin: 0 -20px; - white-space: nowrap; - color: var(--color-primary); - cursor: pointer; - font: 500 12px/20px var(--base-font); - transition: 0.4s; - - &:hover { - color: #d91d46; - background: #f6f8f9; - } - } - - .hover-actions-sep { - border-bottom: 1px solid #f3f4f5; - } - } - - &:hover { - .hover-actions-menu { - display: block; - } - } -} - -.paginator-loader { - text-align: center; - - .paginator-actions { - margin: 0 0 10px; - } - - .paginator-progress { - font: 500 13px/16px var(--base-font); - color: #666; - } -} - -.app { - flex: 1 0 auto; - @include webkit_scrollbar(#848588); - - &.app-header { - padding: 20px 0; - position: relative; - z-index: 2; - width: 100%; - max-width: 1470px; - display: flex; - flex-direction: column; - gap: 20px; - margin: 0 auto; - - .app-header-row { - position: relative; - display: flex; - flex-direction: row; - } - - .header-logo { - float: left; - padding: 10px 0; - - .header-logo-img { - display: block; - height: 40px; - } - } - - .header-organization-switcher { - width: 265px; - display: flex; - align-items: center; - - .select-control { - width: 100%; - } - } - - .notifications { - margin-right: 40px; - padding-bottom: 0; - position: relative; - display: flex; - flex-direction: column; - justify-content: center; - - .notifications-icons { - .notifications-icon { - color: var(--text-color); - background-color: #fff; - box-shadow: 0 5px 15px rgba($color: #000000, $alpha: 0.1); - border-radius: 50px; - width: 36px; - height: 36px; - text-align: center; - line-height: 36px; - font-size: 18px; - cursor: pointer; - transition: - background 0.4s, - color 0.4s; - margin-right: 20px; - - .mdi { - transition: transform 0.4s; - } - - &:hover { - background-color: #fafafa; - - &.notifications-icon-updates { - color: #fafafa; - background-color: #d91d46; - - .mdi { - transform: rotate(50deg); - } - } - } - - &.notifications-icon-updates { - color: #d91d46; - - .mdi { - transform: rotate(30deg); - } - } - - &:last-child { - margin-right: 0; - } - } - } - - .notifications-menu { - display: none; - position: absolute; - width: 360px; - top: 100%; - z-index: 1; - right: -15px; - - .notifications-menu-inner { - background: #ffffff; - border-radius: var(--border-radius); - box-shadow: 0 10px 25px rgba(#000, 0.15); - position: relative; - - .arrow-box { - right: 32.5px; - left: auto; - transform: scale(0.75); - } - - .notifications-menu-header { - border-bottom: 1px solid #d4d9dd; - padding: 10px 20px; - font: 500 13px/20px var(--base-font); - color: #282b39; - position: relative; - cursor: default; - - .notifications-menu-header-link { - font: 500 13px/20px var(--base-font); - position: absolute; - right: 20px; - top: 50%; - transform: translate(0, -50%); - cursor: pointer; - transition: color 0.4s; - - .mdi { - padding-left: 5px; - font-size: 1.15em; - line-height: 20px; - color: inherit; - transition: color 0.4s; - } - - &:hover { - color: #009ef4; - - .mdi { - color: #009ef4; - } - } - } - } - - .notifications-menu-body { - max-height: 300px; - overflow-y: auto; - @include webkit_scrollbar(); - - .notifications-menu-item { - padding: 15px 20px; - border-bottom: 1px solid #d4d9dd; - position: relative; - transition: background-color 0.4s; - cursor: default; - display: flex; - flex-direction: row; - word-break: break-word; - - .notifications-menu-item-icon { - margin-right: 10px; - padding: 2.5px 0; - - img { - display: block; - } - } - - .notifications-menu-item-details { - display: flex; - flex-direction: column; - } - - .notifications-menu-item-title { - font: 700 13px/16px var(--base-font); - margin: 0 0 5px; - color: #282b39; - } - - .notifications-menu-item-text { - font: 500 13px/16px var(--base-font); - margin: 0 0 10px; - color: #282b39; - } - - .notifications-menu-item-date { - font: 500 12px/14px var(--base-font); - color: #646f79; - - .mdi { - line-height: inherit; - margin-right: 3px; - } - } - - &.notifications-menu-item-new { - background-color: #e4ecf170; - } - - &:last-child { - border-bottom: 0; - } - - /* &:hover { - background: #f6f8f9; - } */ - } - - .notifications-menu-empty { - cursor: default; - padding: 20px 20px; - font: 500 13px/16px var(--base-font); - color: #282b39; - text-align: center; - } - } - } - } - - &.active { - .notifications-menu { - display: block; - } - } - } - - .header-auth { - float: right; - position: relative; - z-index: 1; - display: flex; - - .auth-user { - position: relative; - padding-bottom: 15px; - margin-bottom: -10px; - display: flex; - flex-direction: row; - cursor: pointer; - @include cf(); - - .auth-user-details { - display: flex; - flex-direction: column; - padding: 5px 10px 5px 0; - - .auth-user-name { - font: 500 14px/20px var(--base-font); - color: #151b26; - text-align: right; - } - - .auth-user-role { - font: 400 12px/20px var(--base-font); - color: #151b26; - text-align: right; - - .auth-user-role-separator { - font-size: 22px; - line-height: inherit; - vertical-align: top; - color: #a1a1a1; - padding: 0 3px; - } - } - } - - .auth-user-caret { - display: flex; - align-items: center; - color: #151b26; - padding-left: 5px; - - em { - font-size: 20px; - font-weight: 600; - margin-top: 3px; - } - - @media screen and (max-width: 1000px) { - display: none; - } - } - - .auth-user-img { - display: block; - width: 50px; - height: 50px; - border-radius: 50px; - background: #fff; - box-shadow: 0 2px 9px rgba(0, 0, 0, 0.1); - } - - .auth-user-menu { - position: absolute; - right: 0; - top: 60px; - border: 1px solid #f3f4f5; - background: #fff; - border-radius: var(--border-radius); - box-shadow: 0 5px 30px rgba(#000, 0.1); - min-width: 220px; - max-width: 80%; - padding: 10px 10px; - cursor: default; - - .auth-user-menu-title { - text-transform: uppercase; - color: #646f79; - font: 600 11px/13px var(--base-font); - padding: 10px 0 10px 2px; - } - - .auth-user-menu-sep { - display: block; - border-top: 1px solid #f3f4f5; - margin: 10px -10px 10px; - } - - .auth-user-menu-item { - display: flex; - justify-content: flex-start; - cursor: pointer; - padding: 0; - font: 500 13px/36px var(--base-font); - letter-spacing: -0.312px; - color: #151b26; - transition: 0.4s; - - .auth-user-menu-item-icon { - display: flex; - flex: 0 0 32px; - width: 32px; - height: 36px; - margin-right: 4px; - - svg, - img { - max-width: 100%; - max-height: 100%; - object-fit: contain; - object-position: center; - transition: 0.4s; - - path { - transition: 0.4s; - } - } - - svg { - height: 36px; - } - } - - &.active { - padding-right: 30px; - position: relative; - color: #004195; - - .auth-user-menu-item-icon { - svg { - path { - fill: #134478; - } - } - } - - &:after { - content: ''; - background-image: assetUrl('img/icon-check.svg'); - background-position: center; - background-size: contain; - background-repeat: no-repeat; - width: 20px; - height: 20px; - position: absolute; - right: 0; - top: 50%; - transform: translate(0, -50%); - } - } - - &:hover { - text-decoration: none; - background: #f6f8f9; - color: #004195; - - .auth-user-menu-item-icon { - svg { - path { - fill: #134478; - } - } - } - } - - &:last-child { - margin-bottom: 0; - } - } - } - } - } - } - - &.app-container { - width: 100%; - max-width: 1470px; - display: flex; - flex-direction: row; - gap: 30px; - margin: 0 auto; - } - - &.app-sidebar { - flex: 0 0 260px; - padding-left: 8px; - position: relative; - - .sidebar-nav { - display: flex; - flex-direction: column; - gap: 4px; - padding-bottom: 30px; - position: sticky; - left: 0; - top: 15px; - - .sidebar-nav-group { - display: flex; - flex-direction: column; - background: transparent; - transition: 0.4s; - - .sidebar-nav-group-header { - display: flex; - flex-direction: row; - align-items: flex-start; - border-radius: var(--border-radius); - transition: background-color 0.4s; - gap: 6px; - - .sidebar-nav-group-header-icon { - display: flex; - flex: 0 0 32px; - position: relative; - - svg { - display: block; - } - - .sidebar-nav-group-header-icon-default { - opacity: 1; - transition: opacity 0.4s; - } - - .sidebar-nav-group-header-icon-active { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - opacity: 0; - transition: opacity 0.4s; - } - } - - .sidebar-nav-group-header-title { - display: flex; - flex: 1 1 auto; - font: 500 13px/20px var(--base-font); - padding: 6px 0; - transition: color 0.4s; - } - - .sidebar-nav-group-header-toggle { - display: flex; - flex: 0 0 32px; - height: 32px; - justify-content: center; - align-items: center; - color: #b0bec5; - font-size: 20px; - transition: color 0.4s; - } - - &:hover { - background: #426993; - - .sidebar-nav-group-header-icon { - .sidebar-nav-group-header-icon-default { - opacity: 0; - } - - .sidebar-nav-group-header-icon-active { - opacity: 1; - } - } - - .sidebar-nav-group-header-title { - color: #fff; - } - - .sidebar-nav-group-header-toggle { - color: #fff; - } - } - } - - .sidebar-nav-group-items { - display: flex; - flex-direction: column; - margin: 0 0 0 14px; - border-left: 2px solid var(--border-color); - padding: 4px 0; - - .sidebar-nav-group-item { - padding: 5px 10px 5px 22px; - font: 500 13px/20px var(--base-font); - color: #151b26; - text-decoration: none; - margin-left: -2px; - border-left: 2px solid var(--border-color); - - &:hover { - color: #426993; - text-decoration: underline; - } - - &.active { - color: #134478; - border-left: 2px solid #134478; - } - } - } - - &.sidebar-nav-group-active { - & > .sidebar-nav-group-header { - background: #134478; - border-radius: var(--border-radius); - - .sidebar-nav-group-header-icon { - .sidebar-nav-group-header-icon-default { - opacity: 0; - } - - .sidebar-nav-group-header-icon-active { - opacity: 1; - } - } - - .sidebar-nav-group-header-title { - color: #fff; - } - - .sidebar-nav-group-header-toggle { - color: #fff; - } - } - } - } - } - } - - &.app-content { - flex: 1 1 auto; - display: flex; - flex-direction: column; - min-width: 0; - padding: 0 0 30px; - } - - @media screen and (max-width: 1300px) { - &.app-sidebar { - width: 240px; - padding-right: 40px; - } - - &.app-content { - width: calc(100% - 240px); - } - } - - @media screen and (max-width: 1000px) { - &.app-header { - padding: 25px 0; - - .header-logo { - display: none; - } - } - - &.app-sidebar { - width: 100%; - margin-bottom: 20px; - padding: 0; - } - - &.app-content { - padding: 0; - width: 100%; - } - } -} - -.card-heading { - font: 500 18px/26px var(--base-font); - color: #282b39; - margin-bottom: 10px; - cursor: default; - - .block.block-inline-filters { - .form { - .form-group { - margin: 0 10px 0 0; - - &:last-child { - margin-right: 0; - } - } - } - } - - .link { - display: inline-block; - color: #646f79; - transition: 0.4s; - margin-left: 10px; - font: 500 13px/26px var(--base-font); - - .mdi { - line-height: inherit; - float: left; - font-size: 1.2em; - color: inherit; - margin-right: 5px; - } - - &:hover { - color: #d91d46; - } - } -} - -.card { - --card-margin: 20px; - background: #ffffff; - border-radius: var(--border-radius); - box-shadow: 0 2px 8px rgba(#000, 0.1); - margin-bottom: var(--card-margin); - cursor: default; - - @mixin bgDanger() { - background: rgba(246, 246, 246, 0.4); - } - - .card-header, - .card-section, - .card-footer { - border-bottom: 1px solid var(--border-color); - - &:first-child { - border-top-left-radius: 5px; - border-top-right-radius: 5px; - } - - &:last-child { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - } - - .card-header { - &:last-child { - border-bottom: none; - } - } - - .card-title { - font: 500 16px/30px var(--base-font); - color: #282b39; - cursor: inherit; - display: flex; - - .card-collapse { - float: right; - font-size: 36px; - line-height: 28px; - color: #777; - } - - .tag { - margin-left: 10px; - } - - .mdi { - margin-right: 7px; - font-size: 20px; - line-height: 30px; - height: 30px; - } - - &.card-title-sm { - font-size: 14px; - } - } - - .card-subtitle { - font: 500 13px/20px var(--base-font); - color: #404040; - - .mdi { - font-size: 16px; - margin-right: 2px; - color: #404040; - } - } - - .card-header { - padding: 15px 20px 14px; - position: relative; - display: flex; - flex-direction: row; - align-items: center; - - .card-title { - margin: 0 0 !important; - } - - .card-header-filters { - display: flex; - flex-direction: row; - gap: 10px; - align-items: center; - - .block-inline-filters { - display: flex; - flex-direction: row; - gap: 10px; - align-items: center; - - .form-control:not(.select-control) { - min-height: auto !important; - - &:not([type='radio']):not([type='checkbox']) { - height: 30px; - padding: 0 10px; - line-height: 28px; - } - } - - .block-label-tabs { - .label-tab { - height: 30px; - line-height: 24px; - padding-top: 2px; - padding-bottom: 2px; - font-size: 12px; - - .mdi { - line-height: 24px; - } - } - } - - .select-control { - min-height: auto !important; - - .form-control:not([type='radio']):not([type='checkbox']) { - padding-right: 30px; - } - } - - & > * { - margin: 0 0 0 0; - } - } - } - - .card-header-actions { - margin: -1px 0; - display: flex; - flex-direction: column; - gap: 5px; - } - - .block-label-tabs { - margin-left: 0; - } - - .button { - line-height: 22px; - } - - &.card-header-warning { - background: #fcf2dd; - } - - &.card-header-danger { - @include bgDanger(); - } - - &.card-header-primary { - background: #f6f9fc; - } - - &.card-header-success { - background: #f7f9de; - } - - &.card-header-sm { - padding: 7.5px 25px; - - .card-title { - color: #646f79; - } - } - - &.card-header-md { - .card-title { - font: 600 14px / 21px var(--base-font); - - .mdi { - margin-right: 0; - margin-left: -15px; - color: #646f79; - } - } - } - - &.card-header-cursor-default { - cursor: default; - } - } - - .label-item { - font: 500 13px var(--base-font); - color: #646f79; - margin-bottom: 5px; - } - - .card-heading { - font: 600 14px/22px var(--base-font); - color: #282b39; - margin: 0 0 15px; - cursor: inherit; - - &:last-child, - &.card-heading-padless { - margin-bottom: 0; - } - } - - .card-text { - font: 500 14px/20px var(--base-font); - color: #646f79; - margin: 0 0 15px; - cursor: inherit; - - &:last-child { - margin-bottom: 0; - } - - &.alert { - color: #a80a2d; - font: 600 16px/18px var(--base-font); - } - } - - .card-text-link { - color: inherit; - font: inherit; - text-decoration: underline; - } - - .card-section { - display: flex; - flex-direction: column; - padding: 20px; - position: relative; - cursor: inherit; - font: 500 13px var(--base-font); - - .card-title { - font: 500 16px/30px var(--base-font); - color: #282b39; - cursor: inherit; - margin: 0 0 10px; - - &:last-child, - &:last-of-type { - margin: 0; - } - } - - .card-loading { - padding: 15px 0; - display: flex; - justify-content: center; - - .mdi { - font-size: 40px; - display: flex; - opacity: 0.5; - } - } - - .card-col { - padding: 25px; - border-right: 1px solid #d4d9dd; - - &.card-col-1 { - width: calc(100% / 6) * 1; - } - - &.card-col-2 { - width: calc(100% / 6) * 2; - } - - &.card-col-3 { - width: calc(100% / 6) * 3; - } - - &.card-col-4 { - width: calc(100% / 6) * 4; - } - - &.card-col-5 { - width: calc(100% / 6) * 5; - } - - &.card-col-6 { - width: calc(100% / 6) * 6; - } - - &:last-child { - border-right: none; - } - } - - .card-section-inner { - margin: -20px; - } - - .card-section-actions { - position: absolute; - margin-bottom: -10px; - right: 20px; - top: 25px; - z-index: 1; - - .card-section-action { - display: inline-block; - font: 500 13px/25px var(--base-font); - color: #646f79; - margin-right: 10px; - vertical-align: top; - cursor: pointer; - - .mdi { - font-size: 1.6em; - float: left; - margin-right: 3px; - } - - &:hover { - text-decoration: none; - color: #e63b3b; - - .mdi { - color: #e63b3b; - } - } - - &:last-child { - margin-right: 0; - } - } - - .card-section-action-price { - margin-right: 10px; - display: inline-block; - font: 500 16px var(--base-font); - color: #151b26; - vertical-align: top; - text-align: right; - - .old-price { - font: 500 14px var(--base-font); - color: #646f79; - display: block; - text-decoration: line-through; - } - } - - .card-section-actions-details { - .card-section-actions-label { - font: 600 11px/18px var(--base-font); - text-align: right; - color: #134478; - margin: 0 0 2px; - } - - .card-section-actions-value { - font: 500 12px/20px var(--base-font); - text-align: right; - color: #000000; - } - - &:not(:first-child) { - padding-top: 15px; - } - } - - &.card-section-actions-bottom { - top: auto; - bottom: 25px; - } - } - - .divider { - padding-top: 25px; - border-bottom: 1px solid #d4d9dd; - margin: 0 -25px 25px; - } - - &.card-section-warning { - background: #fcfaf6; - } - - &.card-section-danger { - @include bgDanger(); - } - - &.card-section-primary { - background: #f6f9fc; - } - - &.card-section-success { - background: #f7f9de; - } - - &.card-section-narrow { - padding: 15px 25px 15px; - } - - &.card-section-sm { - padding: 10px; - } - - &.card-section-padless, - &.card-section-no-padding { - padding: 0; - } - - &.card-section-no-border, - &:last-child { - border-bottom: 0; - } - } - - .card-info { - border-bottom: 1px solid var(--border-color); - padding: 10px 15px; - display: grid; - grid-template-columns: 20px 1fr; - min-height: 50px; - gap: 15px; - - .card-info-icon { - min-height: 20px; - font-size: 18px; - align-self: center; - display: flex; - justify-content: center; - } - - .card-info-details { - font: 400 13px/18px var(--base-font); - margin: 0 0 0; - display: flex; - justify-content: center; - flex-direction: column; - - strong { - font-weight: 500; - } - } - - &.card-info-dim { - background-color: #fbfbfb; - } - } - - .card-footer { - padding: 15px 20px; - - &.card-footer-warning { - background: #fcfaf6; - } - - &.card-footer-danger { - @include bgDanger(); - } - - &.card-footer-primary { - background: #f6f9fc; - } - - &.card-footer-success { - background: #f7f9de; - } - - &.card-footer-sm { - padding: 7.5px 25px; - - .card-title { - color: #646f79; - } - } - } - - &:last-child { - margin-bottom: 0; - } - - &.card-outline { - border: 1px solid var(--border-color); - } - - &.card-collapsable { - transition: background 0.4s; - - .card-header, - .card-section { - &[ng-click] { - cursor: pointer; - } - } - - &:not(.card-collapsed):hover { - background: lighten($color: #f3f4f5, $amount: 2); - } - } - - &.card-wrapped { - margin-bottom: var(--card-margin); - } - - &.card-padded { - margin-bottom: 0; - } - - &.card-bordered { - border: 1px solid var(--border-color); - } - - &.card-overflow-hidden { - overflow: hidden; - } - - &.card-no-shadow { - box-shadow: none; - } -} - -.card-block { - &.card-block-table { - margin: -20px; - } - - &.card-block-listing { - font: 500 13px/20px var(--base-font); - color: #282b39; - - span { - font: inherit; - color: inherit; - } - - .card-block-listing-label { - font: 600 11px/18px var(--base-font); - color: var(--color-primary); - margin: 0 0 2px; - } - - .card-block-listing-value { - font: inherit; - - & > .mdi { - font-size: 18px; - line-height: 18px; - vertical-align: bottom; - color: var(--color-primary); - margin: 0 5px; - transition: 0.32s; - - &:hover { - color: var(--color-primary-light); - } - } - } - - .card-block-listing-row { - margin: 0 0 15px; - - &:last-child { - margin-bottom: 0; - } - } - - &.card-block-listing-variant { - display: inline-block; - font-size: 14px; - color: #282b39; - - .card-block-listing-label { - color: var(--color-primary); - font: 500 11px/20px var(--base-font); - } - } - - &.card-block-listing-inline { - display: inline-block; - padding-bottom: 10px; - padding-right: 20px; - - &:last-child, - &:last-of-type { - padding-right: 0; - padding-bottom: 0; - } - } - - &.card-block-listing-no-pad { - padding-bottom: 0; - } - } - - &.card-block-keyvalue { - margin-bottom: 10px; - @include cf(); - - .keyvalue-item { - padding-bottom: 10px; - @include cf(); - - .keyvalue-key { - float: left; - color: var(--color-primary); - font: 500 13px/20px var(--base-font); - width: 180px; - padding-right: 20px; - } - - .keyvalue-value { - float: left; - color: #282b39; - font: 500 13px/20px var(--base-font); - width: calc(100% - 210px); - display: flex; - align-items: center; - gap: 10px; - - .block-form_tooltip { - vertical-align: middle; - margin-top: -2px; - - &:not(:first-child) { - margin-left: 5px; - } - - &:not(:last-child) { - margin-right: 5px; - } - } - - .icon { - margin-left: 7px; - } - - .form-numeric { - margin-top: -5px; - } - - .keyvalue-value-info-block-toggle { - color: #134478; - font: 600 12px / 18px var(--base-font); - display: flex; - align-items: center; - cursor: pointer; - - .mdi { - color: #646f79; - font-size: 20px; - } - - &.keyvalue-value-info-block-toggle-secondary { - .mdi { - color: #134478; - font-size: 16px; - } - - &.active { - .mdi { - color: #009ef4; - } - } - } - - &:hover { - color: #426993; - } - } - - .keyvalue-value-history { - display: flex; - flex-direction: column; - width: 100%; - gap: 5px; - - .keyvalue-value-history-header { - display: flex; - flex-direction: row; - gap: 8px; - - .keyvalue-value-history-toggle { - font: 600 12px/20px var(--base-font); - display: flex; - flex-direction: row; - gap: 0; - color: #646f79; - cursor: pointer; - - .mdi { - height: 20px; - line-height: 20px; - font-size: 20px; - } - - &:hover { - color: var(--color-primary); - } - } - } - - .keyvalue-value-history-body { - background: #f7f9fc; - border-radius: var(--border-radius); - border: 1px solid var(--border-color); - padding: 5px 15px; - max-height: 350px; - overflow: auto; - @include webkit_scrollbar(); - - .keyvalue-value-history-body-item { - display: flex; - flex-direction: row; - gap: 5px; - padding: 6px 0; - font: 500 12px/20px var(--base-font); - border-bottom: 1px solid var(--border-color); - word-break: break-word; - color: #646f79; - - strong { - color: #000; - display: contents; - } - - &:last-child { - border-bottom: none; - } - } - } - } - - &.keyvalue-value-gap-sm { - gap: 5px; - } - } - - .keyvalue-link { - color: #009ef4; - font: 500 13px/20px var(--base-font); - margin-left: 5px; - display: inline-block; - - .mdi { - font-size: 1.5; - } - } - - &:last-child, - &:last-of-type { - padding-bottom: 0; - } - - &.keyvalue-item-disabled { - pointer-events: none; - cursor: default; - } - } - - .keyvalue-item-info-block { - background: #fbfbfb; - padding: 15px 20px; - margin: 0 -20px 10px -20px; - border-top: 1px solid #d4d9dd; - border-bottom: 1px solid #d4d9dd; - - ul { - li { - display: flex; - gap: 10px; - font: 500 12px / 18px var(--base-font); - color: #151b26; - margin-bottom: 10px; - - .mdi { - font-size: 14px; - color: #134478; - } - - &:last-child { - margin-bottom: 0; - } - } - } - } - - &:not(.card-block-keyvalue-horizontal) { - .keyvalue-item { - width: 100%; - } - } - - &.card-block-keyvalue-horizontal { - .keyvalue-item { - padding-bottom: 0; - position: relative; - margin: -5px 0 -5px; - - .keyvalue-key { - font: 500 13px var(--base-font); - color: #646f79; - width: 100%; - margin-bottom: 10px; - display: block; - } - - .keyvalue-value { - font: 500 16px var(--base-font); - color: #282b39; - width: 100%; - display: block; - } - - &.keyvalue-item-narrow { - &:not(:first-child) { - padding-left: 10px; - padding-right: 10px; - } - } - - &:not(:first-child) { - padding-left: 30px; - padding-right: 30px; - } - - &:not(:last-child):not(:last-of-type) { - .keyvalue-key { - &:after { - content: ''; - display: block; - top: 10px; - bottom: 10px; - width: 1px; - right: 1px; - background: #d4d9dd; - position: absolute; - } - } - } - } - } - - &.card-block-keyvalue-bordered { - border-bottom: 1px solid #d4d9dd; - padding-bottom: 14px; - margin-bottom: 14px; - } - - &.card-block-keyvalue-md { - .keyvalue-item { - .keyvalue-key { - width: 240px; - } - - .keyvalue-value { - width: calc(100% - 240px); - } - } - } - - &.card-block-keyvalue-lg { - .keyvalue-item { - .keyvalue-key { - width: 280px; - } - - .keyvalue-value { - width: calc(100% - 280px); - } - } - } - - &.card-block-keyvalue-text-sm { - .keyvalue-item { - padding: 0 0 4px; - - .keyvalue-key { - font: 600 12px/20px var(--base-font); - } - - .keyvalue-value { - font: 500 12px/20px var(--base-font); - } - - &:last-child { - padding: 0 0 0; - } - } - } - - &:last-child { - margin-bottom: 0; - } - } - - &.card-block-fund { - padding-top: 15px; - - .fund-img { - float: left; - display: block; - width: 70px; - height: 70px; - border: 1px solid #e7e7e7; - border-radius: 70px; - overflow: hidden; - margin-top: -15px; - margin-right: 15px; - - img { - width: 100%; - display: block; - } - } - - .fund-closed { - position: absolute; - top: 20px; - right: 20px; - font: 500 14px/18px var(--base-font); - } - - .fund-title { - cursor: default; - display: inline-block; - font: 500 16px/20px var(--base-font); - color: #151b26; - transition: 0.4s; - clear: both; - position: relative; - border-bottom: 1px solid transparent; - } - - a.fund-title { - cursor: pointer; - - &:hover { - color: #9ca6af; - border-bottom-color: #9ca6af; - text-decoration: none; - } - } - - .fund-organization { - display: inline-block; - font: 500 14px/20px var(--base-font); - color: #009ef4; - margin-bottom: 10px; - clear: both; - text-decoration: none; - } - - &.card-block-fund-margin-bottom { - margin-bottom: 20px; - } - } - - &.card-block-provider { - display: flex; - gap: 20px; - flex-direction: row; - padding-bottom: 20px; - - .provider-offset { - float: left; - display: block; - width: 70px; - } - - .provider-img { - float: left; - display: block; - width: 50px; - height: 50px; - flex: 0 0 50px; - border: 1px solid #e7e7e7; - border-radius: var(--border-radius); - overflow: hidden; - background-color: #f1f4f7; - - img { - width: 100%; - display: block; - } - } - - .provider-details { - flex: 1 1 auto; - display: flex; - flex-direction: column; - justify-content: center; - min-width: 0; - gap: 4px; - - .provider-title { - display: block; - font: 500 16px/20px var(--base-font); - color: #151b26; - transition: 0.4s; - position: relative; - cursor: default; - word-wrap: break-word; - } - - .provider-subtitle { - font: 500 12px/16px var(--base-font); - color: #646f79; - word-wrap: break-word; - } - } - - .provider-actions { - display: flex; - flex-direction: row; - flex: 0 0 auto; - height: fit-content; - } - - a.provider-title:hover { - cursor: pointer; - color: #9ca6af; - text-decoration: none; - } - - &:last-child { - padding-bottom: 0; - } - } - - &.card-block-product { - .product-img { - width: 200px; - float: left; - - img { - display: block; - min-height: 160px; - width: 100%; - margin: -25px 20px -25px -25px; - } - } - - .product-details { - display: inline-block; - } - - .product-title, - .product-subtitle { - display: block; - } - - .product-title { - font: 500 16px/22px var(--base-font); - color: #151b26; - } - - .product-subtitle { - font: 400 14px var(--base-font); - color: #646f79; - margin-bottom: 10px; - } - } - - &.card-block-notes { - margin: -20px; - - .note-form { - padding: 15px 15px 15px 55px; - - .note-form-actions { - padding-top: 10px; - @include cf(); - - .note-form-desc { - float: left; - width: 50%; - } - - .note-form-buttons { - text-align: right; - float: right; - width: 50%; - } - } - } - - .note-item { - position: relative; - padding: 15px 55px; - border-bottom: 1px solid #d4d9dd; - background: #fff; - transition: 0.4s; - cursor: default; - - .hover-actions { - position: absolute; - right: 20px; - top: 10px; - } - - &:last-child { - border-bottom: 1px solid transparent; - } - - &:hover { - background: #f6f8f9; - } - } - - .note-item-icon { - position: absolute; - left: 25px; - top: 20px; - width: 16px; - height: 16px; - } - - .note-item-text { - color: #282b39; - font: 500 13px/18px var(--base-font); - } - - .note-item-sign { - color: #646f79; - font: 500 12px/18px var(--base-font); - - .mdi { - font-size: 5px; - margin-left: 5px; - margin-right: 5px; - color: #d4d9dd; - } - } - } - - &.card-block-download-app { - width: 980px; - max-width: 100%; - - .download-links { - padding: 20px 0 10px; - display: flex; - @include cf(); - - .download-link { - border: 1px dashed #d2e6ff; - border-radius: var(--border-radius); - position: relative; - display: block; - margin-bottom: 25px; - width: 50%; - float: left; - margin-right: 20px; - padding-left: 150px; - overflow: hidden; - transition: all 0.4s; - - .download-link-icon { - display: block; - border-radius: 100px; - width: 200px; - height: 200px; - position: absolute; - padding: 15px 10px 15px 25px; - right: 100%; - margin-right: -130px; - top: 50%; - transform: translate(0, -50%); - background-color: #f2fafd; - background-repeat: no-repeat; - background-position: calc(100% - 40px) 50%; - } - - .download-link-title { - padding: 30px 0; - font: 700 18px/28px var(--base-font); - color: #282b39; - - .download-link-arrow { - display: inline-block; - font-size: 1.2em; - line-height: inherit; - color: #4568d6; - position: absolute; - transform: translate(0); - transition: transform 0.4s; - margin-left: 5px; - } - } - - &:hover { - transform: translate(0, -3px); - box-shadow: 0 5px 35px rgba(0, 0, 0, 0.1); - - .download-link-arrow { - transform: translate(3px); - } - } - - &:last-of-type { - margin-right: 0; - } - - &.download-link-android { - .download-link-icon { - background-color: #f9fbf0; - } - } - } - } - - .download-url { - border: 1px dashed #d2e6ff; - border-radius: var(--border-radius); - padding: 13px; - width: 320px; - margin: 0 auto 25px; - font: 700 13px/22px var(--base-font); - color: var(--text-color); - max-width: 100%; - cursor: default; - - .download-url-address { - color: #305dfb; - } - } - - .download-confirmation { - border: 1px dashed #d2e6ff; - margin-bottom: 20px; - border-radius: var(--border-radius); - padding: 13px; - display: block; - cursor: pointer; - - .checkbox { - display: inline-block; - padding: 0 15px 0 30px; - vertical-align: middle; - - input[type='checkbox'] { - display: none; - - &:checked + .checkbox-label { - .checkbox-box { - border-color: #305dfb; - background-color: #305dfb; - - .mdi { - opacity: 1; - } - } - } - } - - .checkbox-label { - font: 700 13px/22px var(--base-font); - color: #305dfb; - display: inline-block; - vertical-align: middle; - text-transform: uppercase; - margin: 0; - cursor: pointer; - - .checkbox-box { - display: block; - width: 22px; - height: 22px; - min-width: 22px; - min-height: 22px; - border: 2px solid #d2e6ff; - border-radius: 50%; - position: relative; - margin-right: 5px; - margin-left: -30px; - float: left; - transition: 0.4s; - - .mdi { - color: #fff; - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - font-size: 16px; - transition: 0.4s; - opacity: 0; - font-weight: bold; - } - } - } - } - } - } - - &.card-block-login { - .login-title { - font: 700 22px var(--base-font); - color: #282b39; - margin-bottom: 15px; - } - - .login-description { - font: 400 16px/25px var(--base-font); - color: #646f79; - margin-bottom: 15px; - } - - .login-qrcode { - float: left; - margin-right: 25px; - width: 200px; - height: 200px; - - .block-qr-code { - width: 100%; - - .qr_code { - width: 100%; - height: auto; - box-shadow: none; - } - } - } - } - - &.card-block-pincode { - text-align: center; - margin: 0 auto 20px; - - .pincode-title { - font: 700 22px/36px var(--base-font); - color: #282b39; - } - - .pincode-subtitle { - font: 400 16px/28px var(--base-font); - color: #646f79; - margin-bottom: 30px; - } - - .pincode-errors { - .form-error { - color: #e63b3b; - font: 400 13px/24px var(--base-font); - - &:first-of-type { - padding-top: 20px; - } - } - } - } - - &.card-block-financial { - .table { - .table-separator { - border-bottom: 2px solid #d4d9dd; - } - - .table-highlight td { - background: #f6f6f6; - font-weight: 600; - } - - .table-highlight-grey td { - background: #f6f6f6ad; - } - - tr { - &.table-totals { - white-space: nowrap; - border-top: 3px solid #134478; - - td { - font-weight: 600; - } - } - } - } - } - - &.card-block-bank { - display: flex; - margin: -20px; - border-radius: inherit; - - .card-block-bank-media { - display: flex; - width: 140px; - border-top-left-radius: inherit; - border-bottom-left-radius: inherit; - overflow: hidden; - border-right: 1px solid var(--border-color); - - img { - width: 140px; - height: 140px; - overflow: hidden; - background-color: #f9fafa; - } - } - - .card-block-bank-details { - display: flex; - flex-direction: column; - justify-content: flex-start; - flex-grow: 1; - padding: 20px 25px; - - .card-block-bank-name { - font: 700 18px/30px var(--base-font); - margin: 0 0 15px; - } - - .card-block-bank-properties { - display: flex; - flex-direction: row; - - .card-block-bank-property { - display: flex; - flex-direction: column; - padding-right: 30px; - - .card-block-bank-property-label { - font: 600 13px/22px var(--base-font); - color: #134478; - } - - .card-block-bank-property-value { - font: 600 16px/26px var(--base-font); - - &.card-block-bank-property-value-link { - transition: 0.4s; - cursor: pointer; - - .mdi { - transition: 0.4s; - font-size: inherit; - color: var(--color-primary); - margin-left: 2.5px; - line-height: inherit; - font-size: 18px; - } - - &:hover { - color: var(--color-primary); - } - } - } - } - } - } - } - - &.card-block-request-record { - .card-header { - .card-title { - margin-bottom: 0; - } - } - - .block-label-tabs { - margin-bottom: 10px; - } - - .table { - tr { - td { - &.collapse-content { - padding: 15px 20px; - } - - .card { - border: 1px solid var(--border-color); - overflow: hidden; - box-shadow: none; - } - } - } - } - } - - &.card-block-schedule { - display: flex; - flex-direction: column; - margin-top: -5px; - gap: 10px; - - .card-block-schedule-title { - font: 600 14px/24px var(--base-font); - } - } -} - -.block { - &.block-error_404 { - width: 100%; - padding: 0 30px; - text-align: center; - - .error_404-icon { - img { - display: block; - width: 100px; - height: 100px; - border-radius: 100px; - margin: 0 auto 20px; - background: #fff; - padding: 20px; - box-shadow: 0 5px 10px rgba(#000, 0.15); - } - } - - .error_404-title { - font: 600 16px/20px var(--base-font); - margin: 0 0 10px; - } - - .error_404-subtitle { - font: 500 14px/20px var(--base-font); - margin: 0 0 10px; - color: #646f79; - } - } - - &.block-form_tooltip { - position: relative; - display: inline-block; - padding-right: 15px; - vertical-align: text-bottom; - - .tooltip-icon { - width: 24px; - height: 24px; - font-size: 24px; - line-height: 24px; - color: #2987fd; - cursor: pointer; - } - - .tooltip { - position: absolute; - width: 300px; - border: 1px solid var(--border-color); - box-shadow: 0 4px 25px rgba(0, 0, 0, 0.1); - padding: 15px; - background: #fff; - z-index: 5; - border-radius: var(--border-radius); - font: 500 13px/20px var(--base-font); - text-transform: none; - color: #45535e; - display: none; - - ul { - list-style-type: disc; - list-style-position: inside; - - li { - font: 400 13px/20px var(--base-font); - } - - strong { - font-weight: 500; - } - } - - &:not(.tooltip-bottom) { - left: 100%; - top: 12px; - transform: translate(0, -50%); - - &:after, - &:before { - right: 100%; - top: 50%; - border: solid transparent; - content: ' '; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - } - - &:after { - border-color: rgba(255, 255, 255, 0); - border-right-color: #fff; - border-width: 10px; - margin-top: -10px; - } - - &:before { - border-color: rgba(210, 230, 255, 0); - border-right-color: #d2e6ff; - border-width: 11px; - margin-top: -11px; - } - } - - &.tooltip-bottom { - top: 100%; - left: 8px; - margin-top: 10px; - transform: translate(-50%, 0); - - &:before, - &:after { - content: ''; - left: 50%; - transform: translate(-50%); - position: absolute; - top: -10px; - display: inline-block; - width: 0; - height: 0; - border-style: solid; - border-width: 0 10px 10px 10px; - border-color: transparent transparent #ffffff transparent; - } - - &:before { - top: -11.5px; - border-color: transparent transparent var(--border-color) transparent; - } - } - } - - &:hover { - .tooltip { - display: block; - } - } - - @media screen and (max-width: 1000px) { - .tooltip { - left: 0; - width: 250px; - } - } - } - - &.block-sign_up { - --paginator-button-active-background: #305dfb; - - .card-header { - padding-top: 0; - margin: 10px 0 15px; - position: relative; - - &:not(.card-header-no-line) { - padding-top: 30px; - - &:before { - content: ''; - position: absolute; - top: 0; - border-top: 1px solid #dbdcdb; - width: calc(100% + 80px); - left: -40px; - } - } - - & > .flex { - align-items: center; - gap: 10px; - } - - .card-title { - display: flex; - align-items: center; - - span { - &:first-child { - font-style: normal; - font-weight: 700; - font-size: 18px; - line-height: 27px; - margin-right: 10px; - } - - &.total-count { - padding: 8px 10px; - height: 32px; - border: 1px solid #315efd; - border-radius: 7px; - color: #315efd; - font-style: normal; - font-weight: 500; - font-size: 16px; - line-height: 16px; - } - } - } - - .block.block-inline-filters .button { - height: 36px; - font-weight: 700; - font-size: 13px; - line-height: 18px; - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - padding: 9px 12px; - - &.button-secondary { - border: 1px solid #dbdcdb; - - &:hover { - border-color: var(--color-primary); - } - } - } - } - - .sign_up-pane { - .block-photo-selector { - max-width: 200px; - - .button { - font-size: 12px; - width: 100%; - padding: 10px 5px; - margin: 0 0 15px; - } - } - - .sign_up-pane-header { - font-style: normal; - font-weight: 500; - font-size: 21px; - line-height: 30px; - } - - .sign_up-heading-block { - font: 400 18px/22px var(--base-font); - padding: 30px 40px; - font-style: normal; - color: #222530; - border-bottom: 1px solid #edeef0; - } - - .sign_up-pane-body { - padding: 30px 40px; - - .sign_up-pane-subtitle { - text-align: center; - font: 400 26px/36px var(--base-font); - color: #3561ff; - margin-top: 25px; - } - - & + .sign_up-pane-body { - border-top: 1px solid #edeef0; - } - } - - .sign_up-pane-footer { - .button { - &.button-text { - font-weight: 500; - font-size: 16px; - color: #3561ff; - line-height: 30px; - - .mdi { - color: #3561ff; - width: 36px; - font-size: 34px; - } - } - } - } - - .app-download-notice { - font: 400 13px/27px var(--base-font); - color: #222530; - margin-top: 15px; - - a { - color: blue; - text-decoration: underline; - font-weight: 500; - } - } - - .sign_up-pane-auth { - &.test-qr { - margin-top: 30px; - justify-content: space-around; - } - - .sign_up-pane-auth-content { - .block-app_links { - margin-top: 26px; - } - - .notice-small { - font: 400 13px/27px var(--base-font); - color: #989898; - margin-top: 25px; - } - } - - .sign_up-pane-auth-qr_code { - .qr_code { - width: 228px !important; - height: 228px !important; - } - } - } - - ul { - li { - font: inherit; - background-image: assetUrl('img/icon-list.svg'); - background-repeat: no-repeat; - line-height: 30px; - padding-left: 50px; - font-weight: 400; - } - } - } - - .sign_up-offices { - display: flex; - flex-direction: column; - border-bottom: 1px solid #edeef0; - - .sign_up-office { - display: flex; - flex-direction: row; - padding: 30px 0 30px 30px; - border-bottom: 1px solid var(--border-color); - - .office-media { - padding-left: 10px; - - img { - width: 80px; - display: block; - border-radius: var(--border-radius); - } - - &.office-media-placeholder { - img { - border: 1px solid var(--border-color); - } - } - } - - .office-contacts { - padding-left: 40px; - display: flex; - flex-direction: column; - flex-grow: 1; - - .office-contact { - font: 400 16px/20px var(--base-font); - margin: 0 0 15px; - color: #222530; - - span { - font: inherit; - color: inherit; - } - - .mdi { - color: #9ea7b6; - float: left; - width: 20px; - font-size: 18px; - margin-right: 3px; - margin-left: -25px; - padding-right: 3px; - text-align: right; - } - - &:last-child { - margin-bottom: 0; - } - } - } - - .office-map { - display: flex; - flex-direction: column; - margin: -30px 0; - - .office-map-content { - border: 1px solid var(--border-color); - border-top: none; - border-right: none; - margin: 0 0 10px; - width: 270px; - height: 180px; - position: relative; - - .map { - @include fill_parent(); - - .map-canvas { - @include fill_parent(); - } - } - } - - .office-actions { - display: flex; - flex-direction: row; - margin: 0 0 10px; - - .office-action { - display: flex; - flex-direction: row; - flex-grow: 1; - color: #9ea7b6; - font: 400 13px var(--base-font); - - .mdi { - margin-right: 3px; - float: left; - } - } - } - } - - &:last-child { - border-bottom: none; - } - } - - .block-schedule-editor { - .schedule-editor-heading { - font: 500 21px/27px var(--base-font); - margin: 0 0 15px; - - &.schedule-editor-heading-lg { - font: 500 28px/36px var(--base-font); - } - } - } - - .form { - .form-group { - &.col { - padding-right: 0; - } - } - - .office-block { - margin-left: 0; - margin-right: 0; - padding-left: 20px; - padding-right: 20px; - border-bottom: 1px solid #eff2f4; - } - - .schedule-settings-block, - .schedule-block { - margin-left: 0; - margin-right: 0; - padding-left: 35px; - padding-right: 35px; - border-bottom: 1px solid #eff2f4; - } - - .description { - margin-left: 0; - margin-right: 0; - padding-left: 40px; - padding-right: 40px; - font: 400 16px/24px var(--base-font); - color: #222530; - border-bottom: 1px solid #eff2f4; - } - - .schedule { - th { - font: 600 13px/16px var(--base-font); - letter-spacing: 0.08px; - text-transform: uppercase; - color: #222530; - text-align: left; - } - - td { - padding-right: 22px; - height: 30px; - font: 400 16px/20px var(--base-font); - color: #222530; - - &.weekend { - color: #f15642; - } - - span { - font: 400 16px/20px var(--base-font); - } - } - - th, - td { - &.breaks { - text-align: center; - } - } - - td { - &.breaks { - padding-left: 40px; - } - } - - .ui-control { - &.ui-control-text { - width: 80px; - height: 30px; - - input { - height: 30px; - border-radius: 6px; - } - } - - &.breaks { - display: table-cell; - - &.end { - input { - margin-right: 0; - } - } - - input { - width: 80px; - margin-right: 22px; - } - } - - .ui-control-clear { - display: none; - } - } - } - - .opening { - .ui-control.ui-control-checkbox { - .ui-checkbox-label { - padding-bottom: 0; - font-size: 16px; - } - } - - .sign_up-pane-text { - font-weight: 500; - font-size: 21px; - line-height: 26px; - } - - .form-group { - &.col { - margin-bottom: 5px; - } - } - - .sync { - padding-bottom: 0; - } - } - } - - &:last-child { - border-bottom: none; - } - } - - .sign_up-employees { - display: flex; - flex-direction: column; - margin: 0 0 30px; - - .sign_up-employee { - font: 600 16px/30px var(--base-font); - width: fit-content; - display: flex; - flex-direction: row; - color: #222530; - margin: 0 0 5px; - - .sign_up-employee-actions { - padding-left: 20px; - display: flex; - flex-direction: row; - - .mdi { - margin-left: 5px; - color: #9ea7b6; - font-size: 18px; - float: left; - line-height: 28px; - } - } - } - } - - .finish-screen { - .sign_up-pane-heading { - font: 500 28px/38px var(--base-font) !important; - line-height: 38px; - text-align: center; - color: #3561ff; - margin-top: 0 !important; - } - - .sign_up-pane-text { - padding-left: 50px; - padding-right: 50px; - } - } - - .fund-apply { - .header { - margin-bottom: 30px !important; - } - - .card { - box-shadow: none; - margin-bottom: 15px; - border: 1px solid #e5e6ec; - border-radius: var(--border-radius); - - .card-section { - background: #fff; - padding: 16px 18px; - - .card-block { - &.card-block-fund { - padding-top: 0; - display: flex; - - .fund-img { - margin: 0 10px auto 0; - padding: 0; - width: 50px; - height: 50px; - min-width: 50px; - } - - .fund-details { - padding-right: 140px; - - .fund-title { - display: block; - font: 500 18px/24px var(--base-font); - margin: 0 0 5px; - color: #191a1c; - } - - .fund-organization { - display: block; - font: 400 14px/18px var(--base-font); - color: #222530; - margin: 0 0; - } - } - } - } - - &.card-section-fund { - display: flex; - align-items: center; - - .card-section-actions { - right: 16px; - top: 16px; - - .button { - white-space: nowrap; - font: 700 12px/12px var(--base-font); - padding: 12px; - - &:focus { - outline: none; - box-shadow: none; - } - } - } - - &.applied { - background-color: #f8f4e7; - cursor: default; - pointer-events: none; - - .card-section-actions { - button { - background-color: rgba(255, 255, 255, 0.5); - color: #0f0f0f; - border-color: #c2c2c2; - } - } - - .card-block { - &.card-block-fund { - .fund-organization { - color: #4b4b4b; - } - - .fund-title { - color: #4b4b4b; - } - } - } - } - - &.selected { - background: #f8fbf7; - } - } - - &.card-section-primary { - padding: 0; - } - } - - &:last-child { - margin-bottom: 0; - } - } - } - - .form { - .ui-control .form-control:not([type='radio']):not([type='checkbox']) { - background-color: #eff2f4; - border-color: #eff2f4; - padding: 4px 15px; - - ::placeholder { - color: #9b9b9b; - opacity: 1; - } - } - - .ui-control { - &.ui-control-checkbox { - .ui-checkbox-label { - color: #222530; - font-size: 14px; - line-height: 17px; - font-weight: normal; - } - } - } - - .employee-info { - display: block; - padding-top: 30px; - padding-left: 20px; - font: 500 16px/20px var(--base-font); - - .details { - display: inline-block; - width: 200px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - - .actions { - display: inline-block; - - .mdi { - padding-right: 20px; - cursor: pointer; - color: #888888; - font-size: 22px; - } - } - } - - .select-control-input { - .select-control-search { - background-color: #eff2f4; - border-color: #eff2f4; - height: 50px; - font: 400 13px/24px var(--base-font) !important; - } - - .select-control-option { - background-color: #eff2f4; - border-color: #eff2f4; - border-bottom: 1px solid #e3e3e3; - } - - .select-control-options { - border: none; - } - } - - .form-label { - color: #7e818c; - font-weight: normal; - font-size: 13px; - line-height: 16px; - padding-left: 10px; - - letter-spacing: 0.08px; - } - - .block.block-photo-selector { - margin-bottom: 0; - - .photo-img { - margin-left: auto; - margin-right: auto; - float: none; - margin-bottom: 15px; - background: #eff2f4; - border: none; - border-radius: 8px; - display: block; - } - - .photo-label { - text-align: center; - font-weight: normal; - font-size: 18px; - line-height: 26px; - color: #222530; - } - - .photo-description { - text-align: center; - color: #9ea7b6; - font: 400 13px/18px var(--base-font); - } - } - - .info-block.info-block-primary { - color: #646f79; - font: 400 11px/16px var(--base-font); - padding: 17.5px; - text-align: center; - background: none; - border: none; - } - } - - .sign_up-organizations { - display: flex; - flex-direction: column; - margin: 0 0 20px; - - .sign_up-organization { - width: 100%; - border: 1px solid #ebedf0; - border-radius: var(--border-radius); - margin: 0 0 20px; - padding: 15px; - display: flex; - flex-direction: row; - transition: 0.4s ease; - - .sign_up-organization-logo { - width: 80px; - height: 80px; - flex-direction: column; - justify-content: center; - - img { - border-radius: 15px; - max-width: 80px; - margin: 0 auto; - padding: 5px; - } - } - - .sign_up-organization-title { - display: flex; - flex-grow: 1; - flex-direction: column; - text-align: center; - justify-content: center; - font: 500 16px/24px var(--base-font); - } - - &:hover { - border-color: #3561ff; - color: #3561ff; - } - - &:last-child { - margin-bottom: 0; - } - } - - &:last-child { - margin-bottom: 0; - } - } - - @media (max-width: 1199px) { - .card-header { - margin: 25px 0 15px; - } - } - - @media (max-width: 991px) { - .card-header { - &:before { - width: calc(100% + 40px); - left: -20px; - } - - & > .flex { - flex-direction: column; - } - } - - .block-title { - margin: 0 0 20px; - font: 500 28px/34px var(--base-font); - } - - .block-pincode { - text-align: left; - width: 100% !important; - - .pincode-number { - align-items: start !important; - height: 31px !important; - width: 38px !important; - margin-right: 3px !important; - font: 400 22px/31px var(--base-font) !important; - } - } - - .fund-apply { - .card { - .card-section.card-section-fund { - .card-block.card-block-fund { - .fund-details { - padding-right: 0; - - .fund-title { - font: 500 15px/24px var(--base-font); - } - } - } - - .card-section-actions { - padding-top: 15px; - } - } - } - } - - .sign_up-employees { - .sign_up-employee { - width: 100%; - - span { - display: flex; - flex-grow: 1; - } - } - } - - .sign_up-header { - margin: 0 -10px 25px; - } - - .sign_up-pane { - .block-title { - margin: 0 0 20px; - } - - .sign_up-pane-header { - font: 500 18px/26px var(--base-font); - } - - .sign_up-offices { - .sign_up-office { - flex-wrap: wrap; - padding: 20px 0 30px; - - .office-media { - order: 1; - padding-right: 15px; - - &.office-media-placeholder { - img { - height: 70px; - width: 70px; - } - } - } - - .office-contacts { - width: 60%; - - .office-contact { - margin: 0 0 5px; - font: 400 15px/20px var(--base-font); - } - } - - .office-map { - order: 2; - margin-top: 20px; - width: 100%; - - .office-map-content { - width: 100%; - } - - .office-actions { - padding-left: 50px; - } - } - } - - &:last-child { - border-bottom: 1px solid #edeef0; - } - } - - .sign_up-pane-body { - padding: 20px; - - .sign_up-pane-subtitle { - font: 400 24px/30px var(--base-font); - } - - .sign_up-office-edit { - border-bottom: none; - - .sign_up-pane-section { - border-bottom: none; - } - - .schedule { - border-collapse: collapse; - - td { - display: inline-block; - padding-right: 10px; - - &.breaks { - padding-left: 0; - } - } - - tr { - margin-bottom: 10px; - - &:first-child { - border-top: none; - } - } - - .schedule-day-name { - width: 100px; - margin-top: 10px; - padding-top: 5px; - } - - .schedule-day-available { - width: 60%; - } - - .time { - input { - font: 400 14px/20px var(--base-font); - } - } - - .ui-control { - &.ui-control-checkbox { - padding-right: 5px; - } - - &.ui-control-text { - width: 62px !important; - height: 30px !important; - - input { - padding: 4px 10px; - } - } - - &.breaks { - input { - margin-right: 10px; - width: 60px; - } - } - } - } - - .office-edit-actions { - .sign_up-pane-col { - border-top: none; - } - - .flex-row { - flex-direction: column; - - .flex-col { - margin-top: 12px; - - &:first-child { - margin-top: 0; - } - } - } - } - } - - .card-section-fund { - padding: 20px 20px 30px; - - .card-block { - &.card-block-fund { - padding-bottom: 20px; - - .fund-title { - font: 500 16px/26px var(--base-font); - margin: 0 0 0; - } - - .fund-organization { - font: 400 13px/16px var(--base-font); - margin: 0 0 10px; - } - } - } - } - } - - .sign_up-pane-footer { - padding: 10px 15px; - - .button { - font: 500 14px/16px var(--base-font) !important; - - .mdi { - width: auto !important; - font-size: 20px !important; - - &.icon-right, - &.icon-left { - margin-right: 0; - } - } - } - } - } - - .sign_up-organizations { - .sign_up-organization { - padding: 10px; - margin-bottom: 15px; - - .sign_up-organization-logo { - width: 36px; - height: 36px; - - img { - height: 100%; - } - } - - .sign_up-organization-title { - font: 500 16px/20px var(--base-font); - padding-left: 15px; - text-align: left; - } - } - } - } - } - - &.block-pdf-preview { - background: #242424; - display: flex; - flex-wrap: wrap; - - canvas { - display: block; - margin: 0 auto; - } - } - - &.block-tooltip-details { - position: relative; - - .tooltip-content { - font: 500 13px/20px var(--base-font); - display: none; - padding: 8px 15px; - background: #fff; - box-shadow: 2.5px 5px 10px rgba($color: #000000, $alpha: 0.1); - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - position: absolute; - left: 100%; - margin-left: 10px; - top: 50%; - width: 450px; - max-width: calc(100vw - 100px); - transform: translate(0, -50%); - z-index: 1; - color: #151b26; - cursor: default; - white-space: normal; - - .tooltip-header { - font: 600 15px/28px var(--base-font); - color: inherit; - margin: 0 0 10px; - } - - .tooltip-heading { - font: 700 1.1em/1.5em var(--base-font); - color: inherit; - margin: 0 0; - } - - .tooltip-text { - font: inherit; - color: inherit; - margin: 0 0 10px; - } - - .tooltip-list { - .tooltip-list-item { - color: #151b26; - font: 500 13px/20px var(--base-font); - margin: 0 0 5px; - - .mdi { - line-height: 20px; - color: var(--color-primary); - float: left; - margin: 0 5px 0 0; - } - - &:last-child { - margin-bottom: 0; - } - } - } - - .tooltip-text, - .tooltip-list, - .tooltip-header { - &:last-child { - margin-bottom: 0; - } - } - - &:after, - &:before { - content: ''; - display: block; - width: 0; - height: 0; - border-style: solid; - border-width: 7.5px 10px 7.5px 0; - border-color: transparent #ffffff transparent transparent; - position: absolute; - right: 100%; - top: 50%; - transform: translate(0, -50%); - } - - &:before { - transform: translate(0, -50%); - border-width: 8.5px 12px 8.5px 0; - border-color: transparent var(--border-color) transparent transparent; - } - - &.tooltip-content-left { - left: auto; - right: 100%; - margin-left: 0; - margin-right: 10px; - - &:after, - &:before { - right: auto; - left: 100%; - transform: rotate(180deg) translate(0, 50%); - } - } - - &.tooltip-content-bottom { - top: 100%; - left: 50%; - transform: translate(-50%); - margin-left: 0; - margin-right: 0; - margin-top: 7.5px; - - &:before, - &::after { - display: none; - } - - .triangle { - position: absolute; - top: -10px; - left: 0; - width: 100%; - bottom: 100%; - margin: auto; - - &:before, - &:after { - content: ''; - position: absolute; - top: 0; - left: 50%; - bottom: 100%; - width: 0; - height: 0; - border-style: solid; - border-width: 0 10px 10px 10px; - border-color: transparent transparent var(--border-color) transparent; - transform: rotate(0deg) translate(-50%); - z-index: 1; - } - - &:before { - z-index: 2; - margin-top: 2px; - border-color: transparent transparent #ffffff transparent; - } - } - } - - &.tooltip-content-fit { - width: fit-content; - } - - &.tooltip-content-compact { - padding: 10px 15px; - } - - &.tooltip-content-ghost { - pointer-events: none; - } - } - - &.block-tooltip-details-inline { - font-size: 20px; - color: var(--color-primary); - height: inherit; - line-height: inherit; - display: inline-flex; - margin-left: 5px; - } - - &.block-tooltip-hover:hover, - &.active { - .tooltip-content { - display: block; - } - } - } - - &.block-info { - color: #646f79; - font: 400 11px/16px var(--base-font); - border: 1px dashed #d4d9dd; - padding: 17.5px; - border-radius: var(--border-radius); - - &.block-info-primary { - background-color: #f7f9fc; - } - } - - &.block-empty { - cursor: default; - - .empty-icon { - display: flex; - flex-direction: row; - justify-content: center; - margin-bottom: 10px; - - .empty-icon-img { - width: 50px; - height: 50px; - display: flex; - border: 1px solid transparent; - border-radius: 50px; - align-items: center; - - &.empty-icon-img-border { - border-color: var(--border-color-light); - } - } - } - - .empty-title { - font: 700 16px/28px var(--base-font); - margin: 0; - } - - .empty-details { - font: 500 14px/24px var(--base-font); - margin: 0; - - &:last-child { - margin-bottom: 0; - } - } - - .empty-actions { - font: 500 14px var(--base-font); - display: flex; - padding: 15px 0 0; - justify-content: center; - } - } - - &.block-qr-code { - .qr_code { - width: 280px; - height: 280px; - padding: 20px; - background: #fff; - margin: auto; - border-radius: 15px; - -webkit-box-shadow: 0 5px 35px rgba(0, 0, 0, 0.075); - box-shadow: 0 5px 35px rgba(0, 0, 0, 0.075); - border: 2px dashed #d2e6ff; - - img, - canvas { - display: block; - width: 100%; - } - } - - .qr_code-desc { - text-align: center; - padding: 25px 0; - font: 600 15px/28px var(--base-font); - } - - &.block-qr-code-fit { - width: 100%; - - .qr_code { - width: 100%; - height: auto; - } - } - } - - &.block-preferences { - display: block; - - .preference-option { - border-bottom: 1px solid #d4d9dd; - display: flex; - width: 100%; - padding: 10px 25px; - cursor: pointer; - transition: background 0.4s; - outline-offset: -2px; - - .preference-option-details { - flex-grow: 1; - } - - .preference-option-input { - justify-content: center; - align-items: center; - display: flex; - } - - &:hover { - background-color: #f7fafc; - } - - &:last-child { - border-bottom: none; - } - } - - &:not(:last-child) { - border-bottom: 1px solid #d4d9dd; - } - } - - &.block-info { - padding-left: 30px; - font: 500 13px/20px var(--base-font); - color: #45535e; - - .block-info-icon { - float: left; - font-size: 20px; - margin-left: -25px; - margin-right: 5px; - color: var(--color-primary); - } - - &.block-info-list { - border-style: solid; - padding: 12px; - color: #151b26; - - .block-info-list-title { - display: flex; - font: 500 12px/19px var(--base-font); - margin: 0 0 5px 0; - } - - .block-info-icon { - margin: 0 5px 0 0; - } - - .block-info-list-items { - margin: 0 0 0 25px; - list-style-type: disc; - list-style-position: inside; - - .block-info-list-item { - font: 500 12px/24px var(--base-font); - - .block-info-list-item-value { - margin: 0 0 0 5px; - color: #646f79; - } - } - } - } - } - - &.block-auth-type { - font-size: 0; - padding: 0 0 20px; - text-align: center; - @include cf(); - - .auth_type-item { - display: inline-block; - width: 340px; - max-width: 50%; - padding: 0 30px; - - .auth_type-icon { - padding: 50px 0; - background: #ffffff; - border-radius: 10px; - box-shadow: 0 10px 40px rgba(#000, 0.04); - margin-bottom: 30px; - transform: translate(0, 0); - transition: 0.4s; - - img { - display: block; - margin: 0 auto; - } - } - - .auth_type-name { - font: 700 18px var(--base-font); - color: #282b39; - transition: 0.4s; - } - - .auth_type-item-inner { - width: 100%; - cursor: pointer; - - &:hover { - .auth_type-icon { - transform: translate(0, -10px); - box-shadow: 0 10px 60px rgba(#000, 0.15); - } - - .auth_type-name { - color: #004195; - } - } - } - } - } - - &.block-auth-qr-code { - width: 100%; - padding-bottom: 20px; - - .qr_code { - width: 280px; - height: 280px; - padding: 20px; - background: #fff; - margin: auto; - border-radius: 15px; - box-shadow: 0 5px 35px rgba(#000, 0.075); - - img, - canvas { - display: block; - width: 100%; - } - } - } - - &.block-message { - .message-title { - color: #282b39; - font: 600 16px/24px var(--base-font); - text-align: center; - margin: 0 0 10px; - } - - .message-details { - color: #282b39; - font: 500 13px/20px var(--base-font); - text-align: center; - } - } - - &.block-sign-up-steps { - width: 1200px; - max-width: 100%; - margin: 0 auto; - padding: 60px 0; - - .section-product { - .back { - padding-bottom: 15px; - margin: 0 50px; - font: 500 18px/22px var(--base-font); - color: #9e9e9e; - - span { - display: inline-block; - margin-top: 2px; - font-size: 18px; - color: #9e9e9e; - } - } - - .heading { - font: 500 36px/36px var(--base-font); - color: #191a1c; - text-align: center; - } - } - - .block.block-photo-selector { - margin-bottom: 25px; - - .photo-img { - width: 85px; - height: 85px; - border-radius: 6px; - margin-right: 25px; - } - - .photo-label { - font: 700 22px/35px var(--base-font); - color: #282b39; - margin-bottom: 10px; - } - - .button { - padding: 4px 30px; - } - - &:last-child { - margin-bottom: 0; - } - } - - .sign-up-header { - .steps { - margin-bottom: 30px; - width: 100%; - display: flex; - - .step-item { - flex-grow: 1; - float: left; - position: relative; - padding-top: 80px; - padding-bottom: 20px; - - .step-item-icon { - background: #fff; - border-radius: 50%; - width: 50px; - height: 50px; - margin-bottom: 10px; - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05); - z-index: 2; - position: absolute; - top: 10px; - left: 35px; - border: 3px solid #d2e6ff; - transition: 0.4s; - transform: translate(-50%); - - img { - width: 27px; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%) scale(0.7); - margin: auto; - } - } - - .step-item-title { - text-transform: uppercase; - font: 600 12px/20px var(--base-font); - color: #8ca3a6; - position: absolute; - left: 35px; - transform: translate(-50%); - max-width: 100px; - @include ellipsis(); - text-align: center; - } - - &:after { - content: ' '; - position: absolute; - top: 35px; - left: 0; - border: 3px solid #d2e6ff; - width: calc(100% + 30px); - z-index: 1; - } - - &:last-child { - &:after { - border: none; - } - } - - &.active { - .step-item-icon { - width: 70px; - height: 70px; - top: 0; - left: 35px; - border-width: 0; - - img { - transform: translate(-50%, -50%) scale(1); - } - } - - .step-item-title { - color: #305dfb; - } - } - - &.done { - .step-item-icon { - background: #305dfb; - width: 70px; - height: 70px; - top: 0; - left: 35px; - border-width: 0; - - img { - transform: translate(-50%, -50%) scale(1); - } - } - - .step-item-title { - color: #00122a; - } - } - } - } - } - - .sign-up-content { - // fill parrent block - @mixin nth_offset($nth: 1, $count: 7) { - &:nth-child(#{$nth}) { - .card:before, - .card:after { - left: calc(calc(100% / #{$count}) * #{$nth - 1} + 35px); - } - } - } - - .step-item { - margin-bottom: 30px; - - .step-header { - padding-top: 10px; - - .step-header-title { - font: 700 40px/60px var(--base-font); - color: #282b39; - margin-bottom: 10px; - } - - .step-header-subtitle { - font: 400 22px/30px var(--base-font); - color: #646f79; - margin-bottom: 20px; - } - } - - .card { - position: relative; - - .card-section-fund { - border-radius: var(--border-radius); - background: #fff; - margin-bottom: 12.5px; - box-shadow: 0 5px 10px rgba($color: #000000, $alpha: 0.05); - border: none; - - .fund-img { - display: none; - } - - .card-block-fund { - padding: 0; - cursor: default; - - .fund-title { - color: #151b26; - font: 500 16px var(--base-font); - position: relative; - - &:before { - content: '▶'; - position: absolute; - right: 100%; - top: 50%; - opacity: 0; - transform: translate(-3px, -50%); - font-size: 0.5em; - transition: 0.4s; - } - - &:hover { - color: #9ca6af; - - &:before { - opacity: 1; - color: #9ca6af; - } - } - } - - .fund-organization { - color: #009ef4; - margin-bottom: 15px; - } - } - - &:last-child { - margin-bottom: 0; - } - } - - .divider-img { - background-color: #f7f9fc; - margin-top: -1px; - z-index: 1; - position: relative; - - img { - width: 100%; - } - } - - .filters { - margin-bottom: 20px; - } - - &:before, - &:after { - bottom: 100%; - left: 50%; - border: solid transparent; - content: ' '; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - } - - &:before { - border-color: rgba(255, 255, 255, 0); - border-bottom-color: #fff; - border-width: 13px; - margin-left: -13px; - z-index: 1; - } - - &:after { - border-color: rgba(210, 230, 255, 0); - border-bottom-color: #d2e6ff; - border-width: 14px; - margin-left: -14px; - } - - &:not(:first-child) { - &:before, - &:after { - display: none; - } - } - } - - @include nth_offset(1); - @include nth_offset(2); - @include nth_offset(3); - @include nth_offset(4); - @include nth_offset(5); - @include nth_offset(6); - @include nth_offset(7); - } - - &.steps_5 { - .step-item { - @include nth_offset(1, 5); - @include nth_offset(2, 5); - @include nth_offset(3, 5); - @include nth_offset(4, 5); - @include nth_offset(5, 5); - } - } - - .app-instruction { - .col { - padding: 0 70px; - position: relative; - - img { - &:not(.line-item) { - width: 100%; - border: 2px dashed #d2e6ff; - border-radius: var(--border-radius); - box-shadow: 0 5px 35px rgba(0, 0, 0, 0.1); - position: relative; - z-index: 1; - } - - &.line-item { - position: absolute; - top: 200px; - left: calc(100% - 82px); - width: 163px; - z-index: 2; - } - } - - .title { - font: 500 16px/24px var(--base-font); - padding: 5px 0 15px 0; - text-align: center; - } - } - } - } - } - - &.block-csv { - background: #fff; - margin-bottom: 20px; - - .csv-inner { - padding: 65px 20px 20px; - width: 660px; - margin: 0 auto; - text-align: center; - display: flex; - flex-direction: column; - gap: 20px; - } - - .csv-upload-icon { - width: 54px; - height: 54px; - line-height: 53px; - text-align: center; - margin: 0 auto 12px; - border: 1px solid #d2e6ff; - border-radius: 60px; - background: #fff; - color: #009ef4; - transition: - color 0.4s, - background-color 0.4s; - - .mdi { - color: inherit; - font-size: 26px; - } - } - - .csv-upload-btn { - cursor: pointer; - - .csv-upload-text { - font: 500 16px var(--base-font); - color: #282b39; - transition: - color 0.4s, - background-color 0.4s; - - span { - font: 400 12px var(--base-font); - color: #646f79; - } - } - - &:hover, - &.hover { - .csv-upload-icon { - background: #009ef4; - color: #fff; - } - - .csv-upload-text { - color: #009ef4; - } - } - } - - .csv-upload-btn-groups { - display: flex; - flex-direction: column; - gap: 20px; - } - - .csv-upload-actions { - display: flex; - flex-direction: column; - gap: 20px; - } - - .csv-file-error { - font: 500 13px/20px var(--base-font); - color: var(--color-danger); - margin: 0; - } - - .csv-file-warning { - font: 500 13px/20px var(--base-font); - color: #e7740a; - margin: 0; - } - - .csv-upload-progress { - .csv-upload-icon { - .mdi { - @extend .spin; - } - } - - .csv-progress-state { - font: 400 12px var(--base-font); - margin: 0 0 10px; - color: #646f79; - } - - .csv-progress-bar { - margin: 0 0 20px; - height: 5px; - background: #d2e6ff; - border-radius: var(--border-radius); - width: 100%; - position: relative; - - .csv-progress-bar-stick { - @include fill_parent(); - right: auto; - top: -1px; - bottom: -1px; - background: #009ef4; - border-radius: var(--border-radius); - transition: 1s; - } - } - - .csv-progress-value { - font: 500 16px var(--base-font); - color: #282b39; - margin: 0 0 20px; - } - - &.done { - .csv-upload-icon { - color: #fff; - background: #24b37e; - - .mdi { - animation: none; - } - - &.csv-upload-icon-warning { - background-color: var(--color-primary); - } - } - } - } - - &.on-dragover { - background: lighten($color: #9ca6af, $amount: 32); - border-color: #9ca6af; - } - - &:last-child { - margin-bottom: 0; - } - } - - &.block-choose-organization { - margin: 0 -7.5px 0; - @include cf(); - - .organization-heading { - font: 500 18px var(--base-font); - color: #282b39; - padding: 0 12px; - margin: 0 0 15px; - display: flex; - flex-wrap: wrap; - } - - .organizations-list { - display: flex; - flex-wrap: wrap; - @include cf(); - } - - .organization-item { - width: 20%; - text-align: center; - padding: 0 7.5px; - margin-bottom: 15px; - cursor: pointer; - float: left; - height: 100%; - - &:nth-of-type(5n + 1) { - clear: both; - } - - .organization-item-inner { - padding: 15px 10px 10px; - display: block; - background: #fff; - border-radius: var(--border-radius); - box-shadow: 0 5px 10px rgba($color: #000000, $alpha: 0.1); - transform: translate(0, 0); - transition: 0.4s; - - .organization-logo { - width: 32px; - height: 32px; - border-radius: 70px; - background: #e2e8e9; - border: 1px solid #e2e8e9; - overflow: hidden; - margin: 0 auto 5px; - - img { - display: block; - width: 100%; - height: 100%; - } - - .mdi { - font-size: 40px; - line-height: 66px; - color: var(--color-primary); - transition: 0.4s; - display: block; - } - - &.organization-logo-mdi { - background: #fff; - } - } - - .organization-name { - font: 500 13px/18px var(--base-font); - color: #282b39; - } - - &.active, - &:hover { - background-color: #2166af; - - .organization-name { - color: #fff; - } - } - - &.active { - background-color: #134478; - } - } - } - } - - &.block-schedule-editor { - @include cf(); - - .schedule-editor-heading { - font: 500 16px/20px var(--base-font); - margin: 0 0 15px; - color: #282b39; - - &.schedule-editor-heading-lg { - font: 500 28px/36px var(--base-font); - } - } - - .ui-control { - &.ui-control-checkbox { - .ui-checkbox-label { - font: 500 13px/16px var(--base-font); - } - } - } - - table { - th { - font: 600 13px/16px var(--base-font); - letter-spacing: 0.08px; - text-transform: uppercase; - color: #222530; - text-align: left; - } - - td { - padding-right: 22px; - height: 30px; - font: 400 13px/16px var(--base-font); - color: #222530; - - span { - font: 400 13px/24px var(--base-font); - } - - &.weekend { - color: #f15642; - } - - &.breaks { - padding-left: 40px; - } - } - - th, - td { - &.breaks { - text-align: center; - } - } - - .ui-control { - &.ui-control-text { - width: 80px; - height: 30px; - - input { - height: 30px; - border-radius: 6px; - } - } - - &.breaks { - display: table-cell; - - &.end { - input { - margin-right: 0; - } - } - - input { - width: 80px; - margin-right: 22px; - } - } - - .ui-control-clear { - display: none; - } - } - } - } - - &.block-photo-selector { - @include cf(); - - .photo-img { - float: left; - border: 1px solid #d4d9dd; - border-radius: 75px; - width: 75px; - height: 75px; - margin-right: 15px; - overflow: hidden; - background: #ffffff 50%; - background-size: cover; - - img { - display: block; - width: 100%; - } - } - - .photo-label { - display: block; - font: 500 16px/26px var(--base-font); - color: #151b26; - margin-bottom: 10px; - } - } - - &.block-file { - width: 100%; - border: 1px dashed #d4d9dd; - border-radius: var(--border-radius); - text-align: left; - cursor: default; - display: flex; - padding: 0; - align-items: center; - - .block-file-details { - display: flex; - flex-direction: row; - gap: 10px; - flex: 1; - flex-grow: 100; - padding: 8px; - position: relative; - } - - .block-file-buttons { - flex: 1; - padding: 12px 15px; - border-left: 1px dashed #d4d9dd; - } - - .file-error { - display: none; - position: absolute; - left: 17px; - top: 12px; - font-size: 26px; - color: #e63b3b; - } - - .file-remove { - position: absolute; - right: 7.5px; - top: 7.5px; - font-size: 22px; - color: #757f88; - cursor: pointer; - - &:hover { - color: #cf274d; - } - } - - .file-icon { - display: flex; - flex: 0 0 30px; - justify-content: center; - - .mdi { - height: 40px; - font-size: 22px; - line-height: 40px; - color: #cfd8dc; - } - } - - .file-details { - display: flex; - flex-direction: column; - flex: 1 1 auto; - justify-content: center; - - .file-name { - font: 600 12px/20px var(--base-font); - color: var(--color-primary); - } - - .file-size { - font: 500 11px/14px var(--base-font); - color: #646f79; - } - } - - &.has-error { - border-color: #e63b3b; - background: none; - - .file-icon { - .mdi { - color: #e63b3b; - } - } - } - } - - &.block-inline-filters { - display: flex; - justify-content: flex-end; - - .button { - height: 30px; - line-height: 24px; - padding-top: 2px; - padding-bottom: 2px; - font-size: 12px; - box-shadow: none; - white-space: nowrap; - } - - .select-control { - width: 180px !important; - - .select-control-input { - label.form-control:not([type='radio']):not([type='checkbox']) { - padding-left: 7.5px; - font-size: 12px; - line-height: 28px; - - .select-control-search-placeholder-media { - margin: 4px 0; - } - } - - .select-control-search-container .select-control-search-clear { - line-height: 18px; - } - } - - .select-control-options { - .select-control-option { - padding-left: 10px; - font-size: 12px; - } - } - - &.select-control-lg { - width: 240px !important; - } - } - - .form { - display: flex; - margin-right: 10px; - - .form-group { - margin: 0 10px 0 0; - - &:last-child { - margin-right: 0; - } - } - - .form-control { - height: 30px; - margin: 0; - padding: 0 10px; - line-height: 28px; - - &.select-control { - .select-control-input { - font-size: 12px; - - .select-control-options { - .select-control-option { - --option-height: 35px; - color: #353535; - font: 500 12px/20px var(--base-font); - } - } - } - } - } - - select.form-control { - padding-right: 25px; - } - - &:last-child { - margin-right: 0; - } - } - - .inline-filters-dropdown { - position: relative; - display: inline-block; - - $cardHeaderDropdownRadius: 6px; - - .inline-filters-dropdown-content { - width: 260px; - min-height: 75px; - position: absolute; - top: 100%; - margin-top: 15px; - right: -5px; - background: #fff; - z-index: 2; - box-shadow: 1px 2px 40px rgba(0, 0, 0, 0.12); - padding: 0 20px; - text-align: left; - border-radius: $cardHeaderDropdownRadius; - display: flex; - flex-direction: column; - - .arrow-box { - right: 30px; - left: auto; - transform: none; - } - - .inline-filters-pane { - padding: 0 10px 10px; - } - - .form { - flex-direction: column; - - .form-group { - background: #f6f9fc; - margin: 0 -20px; - padding: 0 15px 0; - - .form-label { - display: block; - color: #282b39; - - &.form-label-toggle { - cursor: pointer; - background: #fff; - margin: 0 -15px 0; - padding: 10px 10px 10px 15px; - transition: color 0.4s; - border-bottom: 1px solid #e7e7e7; - - .form-label-icon-active { - display: none; - } - - .mdi { - float: right; - font-size: 2em; - color: #646f79; - transition: color 0.4s; - } - - &:hover { - color: #009ef4; - - .mdi { - color: inherit; - } - } - - & + * { - display: none; - } - - &.active { - margin: 0 -15px 10px; - border-bottom: 1px solid #fff; - - .form-label-icon { - display: none; - } - - .form-label-icon-active { - display: block; - } - - & + * { - display: block; - } - } - } - } - - .form-control { - margin: 0 0 10px; - height: 30px; - font-size: 12px; - width: 100% !important; - - &.select-control { - .select-control-search { - margin-bottom: 0; - border: 1px solid #d4d9dd; - line-height: 30px; - } - - .select-control-options { - --option-height: 35px; - - .select-control-option { - color: #353535; - font: 500 12px/20px var(--base-font); - } - } - } - } - - &:first-child { - border-top-left-radius: $cardHeaderDropdownRadius; - border-top-right-radius: $cardHeaderDropdownRadius; - - .form-label { - border-top-left-radius: $cardHeaderDropdownRadius; - border-top-right-radius: $cardHeaderDropdownRadius; - } - } - - &:last-child { - .form-label:not(.active) { - border-bottom: none; - border-bottom-left-radius: $cardHeaderDropdownRadius; - border-bottom-right-radius: $cardHeaderDropdownRadius; - } - } - } - - .radio, - .checkbox { - padding-top: 5px; - padding-bottom: 5px; - - .radio-label, - .radio-checkbox { - font: 600 12px/20px var(--base-font); - width: 100%; - } - } - } - - .form-actions { - background: #fff; - padding: 15px; - margin: 0 -20px; - border-bottom-left-radius: $cardHeaderDropdownRadius; - border-bottom-right-radius: $cardHeaderDropdownRadius; - } - } - } - } - - &.block-information { - background: #fff; - padding: 15px 20px; - border-radius: var(--border-radius); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - font: 400 13px/20px var(--base-font); - margin-bottom: 15px; - display: flex; - - .block-information-icon { - margin: 2.5px 10px auto 0; - color: #009ef4; - font-size: 16px; - } - - .block-information-info { - display: flex; - flex-direction: column; - justify-content: center; - font: 500 13px/18px var(--base-font); - color: #646f79; - - a { - color: #009ef4; - font-size: 13px; - font-weight: 500; - } - } - - &.block-information-danger { - background: #fcfaf6; - } - - &.block-information-info { - background: #009ef421; - } - } - - &.block-app-instruction { - display: flex; - flex-direction: column; - - .step-items { - display: flex; - flex-direction: row; - justify-content: center; - margin-bottom: 20px; - } - - .step-item { - position: relative; - display: inline-block; - text-align: center; - padding: 0 20px; - - .step-item-title { - font: 700 24px/30px var(--base-font); - margin: 0 0 0; - } - - .step-item-subtitle { - font: 600 14px/22px var(--base-font); - margin: 0 0 10px; - } - - img { - margin: 0 auto; - display: block; - - &:not(.line-item) { - width: 220px; - border-radius: var(--border-radius); - box-shadow: 0 5px 35px rgba(0, 0, 0, 0.1); - position: relative; - z-index: 1; - } - - &.line-item { - position: absolute; - top: 220px; - left: calc(100% - 80px); - min-width: 70px; - z-index: 2; - } - } - - .app-title { - font: 500 13px/24px var(--base-font); - padding: 5px 0 15px 0; - text-align: center; - } - } - - .divider-img { - img { - width: 100%; - } - } - - @media screen and (max-width: 1000px) { - .step-item { - padding: 0 30px; - width: 50%; - } - - img.line-item { - display: none; - } - } - - @media screen and (max-width: 767px) { - .step-item { - padding: 0 30px; - width: 50%; - } - - .line-item { - display: none; - } - } - } - - &.block-auth-widget { - .auth-title { - font: 600 18px/20px var(--base-font); - color: #333; - margin: 0 0 5px; - } - - .auth-subtitle { - cursor: pointer; - font: 400 14px/20px var(--base-font); - color: #333; - margin-bottom: 10px; - } - - .auth-form { - margin: 0 0 30px; - display: flex; - flex-direction: row; - - .auth-form-input { - flex-grow: 1; - padding-right: 20px; - } - - .button { - box-shadow: none; - text-transform: uppercase; - width: 175px; - text-align: center; - - p &:hover { - box-shadow: none; - } - } - } - - .auth-digid { - border: 1px solid #e7e7e7; - border-left: none; - border-right: none; - padding: 18px 0; - margin: 0 0 30px; - - .auth-digid-link { - color: #3661ff; - font: 600 14px/20px var(--base-font); - display: flex; - flex-direction: row; - - .mdi { - font-size: 1.5em; - height: 20px; - line-height: 20px; - display: flex; - flex-direction: row; - justify-content: center; - justify-items: center; - transition: 0.4s; - transform: translate(0, 0); - margin: 1px 0 -1px; - } - - &:hover { - .mdi { - transform: translate(2px, 0); - } - } - } - } - - .auth-digid-form { - padding: 10px; - - .auth-title { - margin: 0 0 20px; - } - - .auth-subtitle { - margin: 0 0 20px; - - &:last-child { - margin-bottom: 0; - } - } - - &.button-digid { - background-color: #000; - background-image: assetUrl('img/icon-digid.svg'); - background-repeat: no-repeat; - background-position: center; - border-color: #000; - box-shadow: none; - cursor: default; - pointer-events: none; - } - } - - .auth-digid-message { - display: flex; - flex-direction: column; - align-content: center; - justify-items: center; - align-items: center; - justify-content: center; - text-align: center; - padding: 10px 0; - - .digid-icon { - color: #3661ff; - width: 140px; - height: 140px; - border-radius: 140px; - background: #fff; - text-align: center; - line-height: 140px; - font-size: 80px; - margin: 0 0 20px; - } - - .digid-title { - color: #282b39; - font: 600 21px/20px var(--base-font); - margin: 0 0 20px; - } - - .digid-message { - color: #646f79; - font: 500 14px/20px var(--base-font); - } - } - - .auth-qr_code { - display: flex; - flex-direction: column; - - .qr_code-container { - display: flex; - flex-direction: row; - font: 400 14px/20px var(--base-font); - - .qr_code-description { - padding-right: 10px; - flex-grow: 1; - - .qr_code-download-app { - display: flex; - - .download-link { - height: 40px; - display: inline-flex; - margin-right: 10px; - } - } - } - - .qr_code-block { - width: 175px; - min-width: 175px; - - .block-qr-code { - .qr_code { - padding: 10px; - width: 100%; - height: auto; - border: 2px dashed #000; - } - } - } - } - } - - @media screen and (max-width: 1000px) { - .auth-title { - font-size: 16px; - font-weight: 700; - margin: 0 0 10px; - } - - .auth-subtitle { - font-size: 13px; - font-weight: 400; - line-height: 18px; - margin: 0 0 15px; - } - - .auth-form { - margin: 0 0 10px; - - .button { - width: auto; - } - } - } - } - - &.block-entity-overview { - display: flex; - flex-direction: row; - - .entity-title { - font: 600 14px/20px var(--base-font); - - .entity-title-icon-suffix { - display: inline-block; - color: #a1a1a1; - margin-left: 5px; - } - } - - .entity-photo { - width: 50px; - - .entity-photo-img { - display: block; - max-width: 100%; - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - } - } - - .entity-details { - padding-left: 15px; - display: flex; - flex-direction: column; - min-height: 100%; - justify-content: center; - justify-items: center; - } - } - - &.block-page-loading-bar { - position: fixed; - top: 0; - left: 0; - background-color: var(--color-primary); - height: 3px; - width: 0; - transition: width 0.3s linear; - opacity: 1; - z-index: 1000; - - &:after { - content: ''; - position: absolute; - right: 0; - top: 0; - height: 100%; - width: 10px; - background: #fff; - } - - &.start, - &.complete { - opacity: 0; - } - - &.complete { - transition: - opacity 1s linear, - width 0.3s linear; - } - - &.start { - transition: 0s; - } - } - - &.block-fund-invite { - padding: 20px 0; - - .wrapper { - width: 900px; - } - - .invite-icon { - margin: 0 0 20px; - - .invite-icon-img { - display: block; - width: 150px; - max-width: 100%; - margin: 0 auto 0; - } - } - - .invite-title { - text-align: center; - font: 500 28px/46px var(--base-font); - color: #282b39; - margin: 0 0 15px; - } - - .invite-subtitle { - text-align: center; - font: 300 15px/26px var(--base-font); - color: #191a1c; - margin: 0 0 30px; - } - - .invite-fund { - border: 1px solid var(--border-color-light); - background: #fff; - border-radius: var(--border-radius); - padding: 30px 40px 36px; - display: flex; - flex-direction: row; - margin-bottom: 30px; - position: relative; - - .invite-fund-photo { - .invite-fund-photo-img { - display: block; - width: 100px; - border: 1px solid var(--border-color-light); - border-radius: var(--border-radius); - } - } - - .invite-fund-details { - flex-grow: 1; - padding-left: 30px; - - .invite-fund-title { - font: 500 21px/25px var(--base-font); - color: #282b39; - margin: 0 0 0; - } - - .invite-fund-subtitle { - font: 400 14px/20px var(--base-font); - color: #7e818c; - margin: 0 0 20px; - } - - .invite-fund-description { - font: 400 14px/17.5px var(--base-font); - color: #262728; - margin: 0 0 0; - } - } - - .invite-fund-expiration { - text-align: right; - padding-left: 30px; - white-space: nowrap; - - .invite-fund-expiration-label { - font: 400 13px var(--base-font); - color: #7e818c; - } - - .invite-fund-expiration-value { - font: 400 14px var(--base-font); - color: #262728; - margin: 0 0 25px; - } - } - - &:after { - content: ''; - height: 6px; - width: 100%; - position: absolute; - left: 0; - bottom: 0; - background: #fbfbfb; - border-top: 1px solid var(--border-color-light); - border-bottom-left-radius: var(--border-radius); - border-bottom-right-radius: var(--border-radius); - } - } - - .block-auth-widget { - background: #fff; - border: 1px solid var(--border-color-light); - border-radius: var(--border-radius); - padding: 40px; - max-width: 100%; - margin: 0 auto 30px; - } - } - - &.block-desktop-only { - @include fill_parent(); - position: fixed; - background: #fff; - z-index: 9999; - text-align: center; - color: #282b39; - - .block-inner { - @include float_parent(); - width: 100%; - padding: 30px; - margin-top: -10vh; - - .block-title { - font: 600 18px/24px var(--base-font); - margin: 0 0 10px; - } - - .block-description { - font: 500 12px/18px var(--base-font); - } - - .block-media { - margin-bottom: 40px; - - img { - width: 120px; - display: block; - margin: 0 auto; - } - } - } - } - - &.block-login { - flex-direction: column; - justify-content: center; - display: flex; - @include fill_parent(); - position: fixed; - padding-bottom: 60px; - cursor: default; - - .block-login-window { - display: block; - margin: 0 auto; - width: 760px; - max-width: 100%; - border: 1px solid #e5e5e5; - border-radius: var(--border-radius); - background-color: #fff; - } - - .block-login-content { - padding: 30px 40px; - border-bottom: 1px solid #e5e5e5; - - .block-login-title { - font: 500 21px/36px var(--base-font); - color: #222530; - } - - .block-login-description { - font: 400 18px/26px var(--base-font); - color: #222530; - margin: 0 0 30px; - } - - .block-login-form { - margin: 0 0 30px; - - .form-label { - color: #7e818c; - margin-left: 10px; - font-weight: 400; - } - - .block-login-control { - display: flex; - flex-direction: row; - - .form-group { - padding-right: 20px; - flex-grow: 1; - margin: 0 0; - display: flex; - flex-direction: column; - } - - .button { - align-self: flex-start; - } - } - - .form-control:not([type='radio']):not([type='checkbox']) { - font: 400 16px/20px var(--base-font); - } - - button { - padding-left: 50px; - padding-right: 50px; - } - - &:last-child { - margin-bottom: 0; - } - } - - .block-login-me_app { - display: flex; - flex-direction: row; - flex-grow: 1; - - .qr_code-container { - padding-right: 30px; - - .auth-title { - font: 500 21px/28px var(--base-font); - color: #333; - margin: 0 0 5px; - } - - .auth-description { - font: 400 15px/22px var(--base-font); - color: #333; - margin: 0 0 5px; - } - } - - .qr_code-block { - display: flex; - flex-direction: column; - - .qr_code-block-placeholder { - width: 200px; - height: 200px; - border: 1px solid #e5e5e5; - display: flex; - flex-direction: column; - justify-content: center; - text-align: center; - - button { - background: rgba(53, 97, 255, 0.15); - border-radius: var(--border-radius); - font: 500 14px/25px var(--base-font); - color: #3561ff; - margin: 0 auto; - padding: 7.5px 15px; - box-shadow: none; - align-self: center; - } - } - - .block.block-qr-code { - width: 200px; - height: 200px; - padding: 0; - - .qr_code { - border-radius: 0; - width: 100%; - height: 100%; - border: none; - padding: 12.5px; - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12); - } - } - } - } - - .block-login-email_sent { - text-align: center; - - .block-login-email_sent-icon { - margin: 0 auto 10px; - - .block-login-email_sent-icon-img { - display: block; - width: 300px; - max-width: 100%; - margin: auto; - } - } - - .block-login-email_sent-title { - font: 500 28px/38px var(--base-font); - color: var(--color-primary); - margin: 0 0 20px; - } - - .block-login-email_sent-text { - font: 500 18px/27px var(--base-font); - color: #454545; - margin: 0 0 20px; - } - } - - &:last-child { - border-bottom: none; - } - } - - .block-login-footer { - display: flex; - flex-direction: column; - justify-content: center; - padding: 30px; - - .block-login-footer-title { - font: 500 19px/21px var(--base-font); - text-align: center; - margin: 0 auto 20px; - } - - .block-login-footer-button { - width: 320px; - transform: translate(0, 0); - color: #0c66ff; - background: rgba(12, 102, 255, 0.1); - padding: 20px 65px; - text-align: center; - background: #fff; - border: 1px solid #0c66ff; - border-radius: 8px; - font: 600 16px/21px var(--base-font); - transition: - color 0.3s, - border-color 0.3s, - background 0.3s, - box-shadow 0.3s; - margin: auto; - - &:hover { - text-decoration: none; - background: rgba(12, 102, 255, 0.1); - border-color: #0c66ff; - } - } - } - - @media screen and (max-width: 1000px) { - position: initial; - - .block-login-window { - border: none; - background: none; - } - - .block-login-content { - padding: 25px; - - .block-login-title { - font: 500 17px/30px var(--base-font); - } - - .block-login-description { - font: 400 13px/20px var(--base-font); - } - - .block-login-form { - margin: 0; - - .block-login-control { - flex-direction: column; - - .flex { - justify-content: center; - } - - .form-group { - margin-bottom: 20px; - padding-right: 0; - } - } - } - - .block-login-me_app { - display: none; - } - } - } - - .block-login-footer { - .block-login-footer-title { - font: 500 17px/21px var(--base-font); - } - - .block-login-footer-button { - padding: 15px 45px; - width: auto; - } - } - } - - &.block-email-confirmed { - flex-direction: column; - justify-content: center; - display: flex; - @include fill_parent(); - background: #fff; - cursor: default; - - .block-email-confirmed-content { - text-align: center; - margin: 0 0 15px; - - .block-email-confirmed-icon { - margin: 0 auto; - - img { - display: block; - width: 220px; - max-width: 100%; - margin: auto; - } - } - - .block-email-confirmed-title { - font: 500 26px/32px var(--base-font); - color: var(--color-primary); - margin: 0 0 10px; - } - - .block-email-confirmed-subtitle { - font: 500 16px/26px var(--base-font); - color: #454545; - margin: 0 0 15px; - } - } - - .block-email-confirmed-footer { - text-align: center; - } - } - - &.block-charts { - .chart-row { - display: flex; - margin: 0 -10px 20px; - - .card { - width: 25%; - margin: 0 10px; - } - - &.chart-row-condensed { - .chart-control { - margin: 0 auto; - } - - .chart-radial { - width: 70px; - margin: auto; - } - - .chart-value { - min-height: auto; - padding: 10px 0; - - .chart-value_label { - color: var(--color-primary); - } - - .chart-value_value { - color: var(--color-primary); - } - } - } - } - - .chart-control { - margin: -10px 0; - display: flex; - flex-direction: column; - text-align: center; - cursor: default; - - .chart-label { - color: #151b26; - font: 500 13px/18px var(--base-font); - margin-bottom: 20px; - } - - .chart-value { - padding: 50px 0 20px; - display: flex; - flex-direction: column; - min-height: 180px; - - .chart-value_value { - color: #007f96; - font: 500 26px/32px var(--base-font); - } - - .chart-value_label { - color: var(--color-primary); - font: 500 11px/18px var(--base-font); - } - - .chart-value_value_b { - color: #282b39; - font: 500 14px/22px var(--base-font); - } - } - - &.chart-control-provider_overview { - padding: 5px 0; - - .chart-label { - margin-bottom: 0; - } - - .chart-value { - padding: 25px 0 25px; - min-height: auto; - } - } - } - - .chart-body { - padding: 20px 0 0; - margin: 0 -20px -10px -10px; - - canvas { - margin: 0 auto; - } - } - - .chart-header { - margin: -25px -25px 0; - border-bottom: 1px solid #d4d9dd; - padding: 15px 25px; - display: flex; - cursor: default; - - .chart-header-range { - flex-basis: 40%; - - .chart-header-item { - color: rgba($color: #151b26, $alpha: 0.5); - font: 500 14px/34px var(--base-font); - display: inline-block; - margin-right: 20px; - transition: 0.4s; - cursor: pointer; - - &:last-child { - margin-right: 0; - } - - &:hover, - &.active { - color: #d91d46; - font-weight: 500; - } - } - } - - .chart-header-title { - flex: 1 0; - text-align: center; - font: 500 13px/34px var(--base-font); - color: #151b26; - flex-basis: 20%; - } - - .chart-header-actions { - flex-basis: 40%; - display: flex; - flex-direction: row; - justify-content: flex-end; - - .flex-row { - flex: 1; - flex-direction: row; - justify-content: flex-end; - flex-wrap: nowrap; - } - - .form-group { - margin: 0 10px 0 0; - } - - .form-control { - max-width: 200px; - } - } - } - } - - @media screen and (max-width: 1000px) { - &.block-photo-selector { - text-align: center; - - .photo-img { - width: 100px; - height: 100px; - margin: 0 auto 10px; - float: none; - display: block; - } - - .photo-label { - text-align: center; - margin: 0 0 10px; - } - } - - &.block-choose-organization { - .organization-item { - width: 50%; - } - } - - &.block-charts { - .chart-row { - flex-wrap: wrap; - - .card { - width: 100%; - margin: 0 0 20px; - - &:last-child { - margin-bottom: 0; - } - } - } - } - } - - &.block-compact-datalist { - display: grid; - - .datalist-row { - border-bottom: 1px dashed #ccc; - display: grid; - grid-template-columns: 200px 1fr; - - .datalist-key { - @extend .text-wrap; - font: 500 14px/20px var(--base-font); - color: #646f79; - padding: 7.5px 15px 7.5px 0; - } - - .datalist-value { - @extend .text-wrap; - font: 500 14px/20px var(--base-font); - color: #646f79; - padding: 7.5px 0; - } - } - - &.compact-datalist-outline { - padding: 5px 20px; - border: 1px dashed #ccc; - border-radius: var(--border-radius); - - .datalist-row { - .datalist-key { - color: var(--color-primary); - } - - .datalist-value { - color: var(--text-color); - } - - &:last-child { - border-bottom: 0; - } - } - } - - &.compact-datalist-vertical { - grid-auto-flow: column; - gap: 20px; - - .datalist-row { - grid-template-columns: 1fr; - border: none; - - .datalist-key, - .datalist-value { - margin: 0; - padding: 0; - } - - .datalist-key { - color: var(--color-primary); - font: 600 11px/20px var(--base-font); - } - - .datalist-value { - color: var(--text-color); - font: 500 13px/20px var(--base-font); - } - } - } - } - - &.block-user_emails { - display: flex; - flex-direction: column; - - .user_email-item { - display: flex; - flex-direction: row; - border-bottom: 1px solid #d4d9dd; - - .user_email-icon { - padding: 20px 0 20px 20px; - - .mdi { - font-size: 26px; - margin-left: 5px; - margin-right: -5px; - color: #8ca3a6; - } - } - - .user_email-details { - padding: 20px; - flex-grow: 1; - - .user_email-address, - .user_email-options { - &:last-child { - margin-bottom: 0; - } - } - - .user_email-address { - font: 500 14px/24px var(--base-font); - color: var(--text-color); - margin: 0 0 5px; - } - - .user_email-options { - margin: 0 0 10px; - - .user_email-option { - font: 500 13px/20px var(--base-font); - color: var(--text-color); - margin: 0 0 5px; - padding-left: 15px; - position: relative; - - &:before { - content: ''; - position: absolute; - display: block; - width: 4px; - height: 4px; - border-radius: var(--border-radius); - background: var(--color-primary-light); - left: 0; - top: 50%; - transform: translate(0, -50%); - } - - &:last-child { - margin-bottom: 0; - } - } - } - } - - .user_email-actions { - padding: 20px; - - .button, - .label { - margin-left: 10px; - } - } - - &:last-child { - border-bottom: none; - } - } - } - - &.block-toggles { - display: flex; - flex-direction: column; - gap: 20px; - - .toggle-item { - border: 1px dashed #bfbfbf; - border-radius: calc(var(--border-radius)); - align-items: center; - background: #f6f9fc; - padding: 20px; - color: #646f79; - width: 100%; - display: flex; - flex-grow: 1; - - .toggle-label { - font: 600 13px/13px var(--base-font); - color: #646f79; - display: flex; - flex-grow: 1; - - &:hover { - color: #426993; - transition: all 0.4s; - } - } - - .form-toggle { - width: auto; - } - - &.active { - background: #fff; - color: #134478; - border-color: transparent; - box-shadow: 0 0 10px rgba(25, 39, 52, 0.22); - - .toggle-label { - color: #134478; - } - } - } - } -} - -.signup-layout { - background-color: #f7f9fc; - - .header-auth { - display: none !important; - } - - .header-logo { - display: none !important; - } - - .section-footer { - display: none !important; - } - - .app.app-header { - padding: 0; - } - - .text-primary { - color: #305dfb !important; - } - - .card { - border: 1px solid #d2e6ff; - box-shadow: 5px 25px 35px rgba($color: #000000, $alpha: 0.075); - margin-bottom: 30px; - - .card-header { - border-bottom: 1px solid #d2e6ff; - position: relative; - - .card-header-image { - position: absolute; - bottom: 0; - right: 20px; - width: 40px; - } - } - - .card-title { - font: 700 22px/36px var(--base-font); - color: #282b39; - - i, - b { - font-weight: 700; - font-size: 22px; - } - } - - .card-subtitle { - font: 400 16px/24px var(--base-font); - color: #646f79; - - i, - b { - font-size: 16px; - } - } - - .card-subdescription { - font: 400 13px/20px var(--base-font); - color: #646f79; - - i, - b { - font-size: 13px; - } - } - - .card-section { - border-color: #d2e6ff; - - .card-title { - font: 700 22px var(--base-font); - margin: 0 0 15px; - color: #282b39; - } - - .card-col { - border-color: #d2e6ff; - } - } - } - - .button { - transform: translate(0, 0); - font: 700 14px/30px var(--base-font); - padding: 10px 65px; - text-align: center; - border-radius: var(--border-radius); - - &.button-primary { - background: #305dfb; - border-color: #305dfb; - color: #fff; - - &:hover { - background: #4c74ff; - border-color: #4c74ff; - } - } - - &.button-text { - &.button-text-primary { - color: #305dfb; - } - } - - &.button-default { - background: #282b39; - border-color: #282b39; - color: #fff; - - &:hover { - background: #646f79; - border-color: #646f79; - } - } - - &.button-text { - &:hover { - color: #305dfb; - } - } - } - - .form { - .form-label { - text-transform: uppercase; - font-weight: 600; - font-size: 11px; - } - - .form-group { - margin-bottom: 15px; - } - } - - // override - .block { - &.block-schedule-editor { - .schedule-item { - select.form-control { - height: 34px; - padding: 0 12px; - border: 1px solid #d2e6ff; - color: #282b39; - font: 500 12px var(--base-font); - } - } - } - - &.block-office-edit-card { - background: #fff; - border: 1px solid #d2e6ff; - border-radius: var(--border-radius); - box-shadow: 2px 5px 5px rgba($color: #000000, $alpha: 0.05); - margin-bottom: 25px; - - &:last-of-type { - margin-bottom: 0; - } - } - } - - .modal { - .modal-window { - background: #fff; - } - } - - &.signup-layout-new { - background: #fff; - - .button { - line-height: 28px; - font-size: 16px; - font-weight: 500; - border-radius: calc(var(--border-radius)); - - &.button-disabled, - [disabled] { - background: #eff2f4; - border-color: #eff2f4; - color: #ccd0e0; - box-shadow: none; - pointer-events: none; - cursor: default; - - &:hover { - box-shadow: none; - } - } - - .mdi { - font-size: 26px; - - &.icon-start { - margin-left: -10px; - margin-right: 10px; - } - - &.icon-end { - margin-left: 10px; - margin-right: -10px; - } - } - } - - @media (max-width: 991px) { - .modal { - .button { - font-size: 14px; - padding: 7px 35px; - } - } - - .fund-apply { - .card { - .card-section { - &.card-section-fund { - flex-direction: column; - align-items: flex-start; - justify-content: flex-start; - padding: 20px 20px; - - .card-section-actions { - order: 2; - position: initial; - margin: 0 0 0; - width: 100%; - - .button { - width: 100%; - } - } - - .card-block { - &.card-block-fund { - order: 1; - padding: 0 0 0; - } - } - } - } - } - } - - .sign_up-pane-body { - .block-photo-selector { - display: flex; - max-width: none; - - .photo-img { - width: 80px; - height: 80px; - margin: 0 20px 0 0 !important; - } - - .photo-details { - max-width: calc(100% - 100px); - - .photo-label, - .photo-description { - text-align: left; - line-height: 20px; - } - } - } - - .sign_up-pane-auth { - .sign_up-pane-auth-qr_code { - .block.block-qr-code { - margin: 0 auto; - } - } - } - - .sign_up-pane-section { - flex-direction: column !important; - padding-right: 0 !important; - - .sign_up-pane-col { - width: 100% !important; - padding: 14px !important; - border-top: 1px solid #edeef0; - - &.sign_up-pane-col-2 { - order: 1; - } - } - } - - .ui-control { - &.ui-control-checkbox { - padding-top: 5px; - padding-bottom: 5px; - } - } - } - - .finish-screen { - .sign_up-pane-body { - .sign_up-pane-text { - padding-left: 10px; - padding-right: 10px; - text-align: center !important; - } - - .button { - background-color: #e1e8ff; - border-radius: var(--border-radius); - } - } - } - - .sign_up-pane-footer { - .button { - .mdi { - &:before, - &:after { - line-height: inherit; - } - } - } - } - } - } -} - -@media screen and (max-width: 1000px) { - .wrapper { - padding: 0 25px; - } -} +@import 'dropdown/dropdown-actions'; diff --git a/react/assets/forus-platform/scss/_common/dropdown/dropdown-actions.scss b/react/assets/forus-platform/scss/_common/dropdown/dropdown-actions.scss index 4b98987e2..f20ac5e59 100644 --- a/react/assets/forus-platform/scss/_common/dropdown/dropdown-actions.scss +++ b/react/assets/forus-platform/scss/_common/dropdown/dropdown-actions.scss @@ -1,18 +1,12 @@ -&.dropdown-actions { - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - background: #fff; +.dropdown.dropdown-actions { width: 240px; color: var(--text-color); box-shadow: var(--box-shadow); - display: flex; flex-direction: column; - border-radius: var(--border-radius); border: 1px solid var(--border-color); + border-radius: var(--border-radius); background: #ffffff; - box-shadow: var(--box-shadow); padding: 4px; - flex-direction: column; display: grid; .dropdown-item { diff --git a/react/assets/forus-platform/scss/_common/includes/common.scss b/react/assets/forus-platform/scss/_common/includes/common.scss index 2fa00a3fd..5340feb92 100644 --- a/react/assets/forus-platform/scss/_common/includes/common.scss +++ b/react/assets/forus-platform/scss/_common/includes/common.scss @@ -5,9 +5,16 @@ z-index: 1; } +html, +body { + height: 100%; +} + body { background: #f1f4f7; min-height: 100vh; + display: flex; + flex-direction: column; @include webkit_scrollbar(#848588); } diff --git a/react/assets/forus-platform/scss/_common/includes/ie.scss b/react/assets/forus-platform/scss/_common/includes/ie.scss deleted file mode 100644 index 1c3fb9d8d..000000000 --- a/react/assets/forus-platform/scss/_common/includes/ie.scss +++ /dev/null @@ -1,104 +0,0 @@ -.header-splash { - position: absolute; - top: 0; - right: 0; - width: 100%; - z-index: 0; - - .splash { - background-image: url(../img/landing/splash-top.png); - background-position: 100% 0; - background-size: auto 100%; - background-repeat: no-repeat; - height: 750px; - width: 100%; - } -} - -.block { - &.block-cards { - .card-item { - .card-description { - max-width: 400px; - } - } - } - &.block-old-ie { - width: 1200px; - margin: auto; - max-width: 100%; - position: relative; - z-index: 1; - padding: 50px 100px; - box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); - background-color: #fff; - border-radius: 10px; - - .title { - font: 700 30px/50px var(--base-font); - } - - .description { - font: 400 15px/24px var(--base-font); - } - - .btn-block { - margin-top: 35px; - - .button { - font: 700 14px/24px var(--base-font); - color: #646f79; - cursor: pointer; - border: 1px solid transparent; - padding: 12px 25px; - -webkit-transition: color 0.4s, background 0.4s, border 0.4s, -webkit-box-shadow 0.4s; - transition: color 0.4s, background 0.4s, border 0.4s, -webkit-box-shadow 0.4s; - transition: color 0.4s, background 0.4s, box-shadow 0.4s, border 0.4s; - transition: color 0.4s, background 0.4s, box-shadow 0.4s, border 0.4s, -webkit-box-shadow 0.4s; - border-radius: 6px; - display: inline-block; - margin-right: 15px; - text-align: center; - - &.button-upper { - color: #fff; - background: #305dfb; - border: 1px solid #305dfb; - -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); - box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); - padding: 7px 25px; - text-transform: uppercase; - - &:not(:last-of-type) { - margin-right: 25px; - } - - img { - margin: 2px 15px 0 -15px; - float: left; - display: block; - -webkit-transition: 0.4s; - transition: 0.4s; - } - - &:hover { - color: #fff; - background: #4c74ff; - -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); - - img { - filter: none; - } - } - } - } - } - } -} - -.oldie { - height: 100%; - padding-top: 90px; - display: none; -} diff --git a/react/assets/forus-platform/scss/_common/landing.scss b/react/assets/forus-platform/scss/_common/landing.scss index 0a24063b3..d15a621f4 100644 --- a/react/assets/forus-platform/scss/_common/landing.scss +++ b/react/assets/forus-platform/scss/_common/landing.scss @@ -319,23 +319,6 @@ } } -.header-splash { - position: relative; - top: 0; - right: 0; - width: 100%; - z-index: 0; - - .splash { - background-image: assetUrl('../img/landing/splash-top.png'); - background-position: 100% 0; - background-size: auto 100%; - background-repeat: no-repeat; - height: 750px; - width: 100%; - } -} - .button { font: 700 14px/24px var(--base-font-landing); color: #646f79; @@ -796,101 +779,6 @@ } } - &.block-cards { - position: relative; - z-index: 3; - margin: 0 0 70px; - float: left; - display: flex; - width: 100%; - @include cf(); - - .card-item { - width: 50%; - margin-bottom: 20px; - display: flex; - - .card-item-inner { - border-radius: 6px; - overflow: hidden; - box-shadow: 0 10px 50px rgba(#000, 0.2); - background-color: #ffffff; - position: relative; - transform: translate(0, 0); - transition: transform 0.4s; - cursor: default; - min-height: 200px; - display: flex; - - .card-icon { - position: absolute; - width: 340px; - height: 340px; - background: #f9fbf0; - border-radius: 340px; - right: 100%; - top: 50%; - margin-right: -170px; - transform: translate(0, -50%); - - img { - display: block; - width: 110px; - height: 110px; - position: absolute; - top: 50%; - right: 30px; - transform: translate(0, -50%); - } - } - - .card-content { - height: 100%; - flex-grow: 1; - padding: 30px 25px 30px 200px; - display: flex; - flex-direction: column; - justify-content: center; - } - - .card-title { - font: 700 18px/24px var(--base-font-landing); - color: #282b39; - margin-bottom: 5px; - - .mdi { - font-size: 1em; - line-height: inherit; - color: #004195; - vertical-align: baseline; - position: relative; - margin-left: 0; - transition: 0.4s; - } - } - - .card-description { - font: 600 14px/25px var(--base-font-landing); - color: #646f79; - } - } - - &:nth-child(1) { - padding-right: 15px; - } - - &:nth-child(2) { - padding-left: 15px; - - .card-item-inner { - .card-icon { - background: #f2fafd; - } - } - } - } - } - &.block-auth-type { font-size: 0; padding: 0 0 20px; @@ -972,18 +860,6 @@ } } - &.block-cards { - .card-item { - &:nth-child(1) { - padding-right: 10px; - } - - &:nth-child(2) { - padding-left: 10px; - } - } - } - &.block-auth-type { .auth_type-item { .auth_type-icon { @@ -1137,50 +1013,6 @@ } } - &.block-cards { - flex-direction: column; - margin: 0 0 30px; - - .card-item { - width: 100%; - - .card-item-inner { - .card-icon { - margin-right: -100px; - - img { - right: 20px; - width: 60px; - height: auto; - } - } - - .card-title { - font: 700 16px/24px var(--base-font-landing); - margin: 0 0 10px; - } - - .card-description { - font: 400 14px/22px var(--base-font-landing); - margin: 0 0 10px; - } - - .card-content { - padding-left: 120px; - } - } - - &:nth-child(1) { - padding-right: 0; - } - - &:nth-child(2) { - padding-left: 0; - margin-bottom: 0; - } - } - } - &.block-auth-type { margin: 0 0 10px; @@ -1258,16 +1090,6 @@ width: 1100px; } - .header-splash { - .splash { - height: 650px; - - &.splash-c { - height: 700px; - } - } - } - .app-instruction { .step-item { padding: 50px 80px; @@ -1301,13 +1123,6 @@ padding: 0 25px; } - .header-splash { - .splash { - height: 300px; - background-size: 75% auto; - } - } - .label { padding: 0 10px; font: 700 11px/22px var(--base-font-landing); diff --git a/react/assets/forus-platform/scss/_common/modals/modal-2fa-setup.scss b/react/assets/forus-platform/scss/_common/modals/modal-2fa-setup.scss new file mode 100644 index 000000000..442eaeeca --- /dev/null +++ b/react/assets/forus-platform/scss/_common/modals/modal-2fa-setup.scss @@ -0,0 +1,17 @@ +.modal.modal-2fa-setup { + .modal-section { + overflow: visible; + } + + .modal-body { + overflow: visible; + + .phone-control { + margin-bottom: 10px; + } + + .modal-text { + text-align: left; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/modals/modal-bulk-upload.scss b/react/assets/forus-platform/scss/_common/modals/modal-bulk-upload.scss index 785d6168f..bb037f34d 100644 --- a/react/assets/forus-platform/scss/_common/modals/modal-bulk-upload.scss +++ b/react/assets/forus-platform/scss/_common/modals/modal-bulk-upload.scss @@ -1,4 +1,4 @@ -&.modal-bulk-upload { +.modal.modal-bulk-upload { .modal-window { width: 760px; diff --git a/react/assets/forus-platform/scss/_common/modals/modal-feature-contact.scss b/react/assets/forus-platform/scss/_common/modals/modal-feature-contact.scss new file mode 100644 index 000000000..e84366dc7 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/modals/modal-feature-contact.scss @@ -0,0 +1,92 @@ +.modal.modal-feature-contact { + .modal-close { + top: 15px; + color: #646f79; + } + + .modal-header { + padding: 15px 20px; + } + + .modal-section { + .icon-wrapper { + display: flex; + justify-content: center; + margin-bottom: 15px; + + .icon { + border-radius: var(--border-radius); + border: 1px solid #d4d9dd; + background: #fff; + display: flex; + justify-content: center; + align-items: center; + height: 48px; + width: 50px; + + .mdi { + font-size: 22px; + line-height: 22px; + color: #004195; + } + } + } + + .title { + font: 600 16px/24px var(--base-font); + color: #2b303a; + margin-bottom: 5px; + } + + .description { + font: 400 13px/18px var(--base-font); + color: #414141; + margin-bottom: 24px; + } + + .contact-row { + display: flex; + flex-wrap: wrap; + gap: 8px; + + .contact-item { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + border-radius: var(--border-radius); + border: 1px dashed #d4d9dd; + background: #fff; + padding: 20px; + + .icon { + margin-bottom: 10px; + + .mdi { + font-size: 18px; + line-height: 18px; + color: #134478; + } + } + + .title { + font: 600 14px/1 var(--base-font); + color: #282b39; + margin-bottom: 5px; + } + + .description { + font: 400 14px/20px var(--base-font); + color: #282b39; + margin-bottom: 0; + } + } + } + } + + .modal-footer { + .button { + line-height: 1; + padding: 8px 12px; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/modals/modal-fund-offers.scss b/react/assets/forus-platform/scss/_common/modals/modal-fund-offers.scss new file mode 100644 index 000000000..9e1dbea90 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/modals/modal-fund-offers.scss @@ -0,0 +1,15 @@ +.modal.modal-fund-offers { + .modal-window { + width: 1400px; + + .modal-section { + .table { + td { + &:last-child { + width: 150px; + } + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/modals/modal-fund-unsubscribe.scss b/react/assets/forus-platform/scss/_common/modals/modal-fund-unsubscribe.scss new file mode 100644 index 000000000..1e8ac4737 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/modals/modal-fund-unsubscribe.scss @@ -0,0 +1,60 @@ +.modal.modal-fund-unsubscribe { + .modal-window { + width: 820px; + border-radius: 12px; + + .modal-title { + font: 600 14px/21px var(--base-font); + text-align: center; + color: #252325; + margin-bottom: 10px; + } + + .modal-description { + font: 400 13px/18px var(--base-font); + text-align: center; + color: #646f79; + padding-bottom: 20px; + margin-bottom: 20px; + border-bottom: 1px solid #d4d9dd; + } + + .modal-warning { + border: 1px dashed #d4d9dd; + border-radius: var(--border-radius); + padding: 15px 13px; + margin-top: 20px; + background-color: #f6f9fc; + + .modal-warning-icon { + display: flex; + width: 50px; + height: 100%; + + .mdi { + margin-left: auto; + margin-right: auto; + } + } + + .modal-warning-details { + .modal-warning-title { + color: #646f79; + font: 500 13px/18px var(--base-font); + margin-bottom: 5px; + } + + .modal-warning-description { + color: #134478; + font: 600 11px/13px var(--base-font); + margin-bottom: 5px; + } + + .modal-warning-phone { + color: #404040; + font: 600 13px/18px var(--base-font); + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/modals/modal-image-preview.scss b/react/assets/forus-platform/scss/_common/modals/modal-image-preview.scss new file mode 100644 index 000000000..82532f1d2 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/modals/modal-image-preview.scss @@ -0,0 +1,28 @@ +.modal.modal-image-preview { + .modal-window { + .modal-body { + .modal-section { + padding: 0; + max-width: 100%; + } + } + } + + .block-pdf-preview { + canvas { + display: block; + max-width: 100%; + } + } + + .img-block { + display: flex; + margin: 0 auto; + justify-content: center; + + img { + height: 100%; + max-width: 100%; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/modals/modal-pdf-preview.scss b/react/assets/forus-platform/scss/_common/modals/modal-pdf-preview.scss new file mode 100644 index 000000000..ba960aa4d --- /dev/null +++ b/react/assets/forus-platform/scss/_common/modals/modal-pdf-preview.scss @@ -0,0 +1,39 @@ +.modal.modal-pdf-preview { + .modal-window { + display: flex; + flex-direction: column; + + .modal-body { + flex-grow: 1; + width: 100%; + display: flex; + + .modal-section { + padding: 0; + max-width: 100%; + + .block.block-pdf-preview { + width: 100%; + flex-grow: 1; + overflow: auto; + + canvas { + display: block; + max-width: 100%; + } + } + } + } + } + + .img-block { + display: flex; + margin: 0 auto; + justify-content: center; + + img { + height: 100%; + max-width: 100%; + } + } +} diff --git a/react/assets/forus-platform/scss/_common/modals/modal-photo-upload.scss b/react/assets/forus-platform/scss/_common/modals/modal-photo-upload.scss index 56f8d6cba..9b50c46ed 100644 --- a/react/assets/forus-platform/scss/_common/modals/modal-photo-upload.scss +++ b/react/assets/forus-platform/scss/_common/modals/modal-photo-upload.scss @@ -1,4 +1,4 @@ -&.modal-photo-upload { +.modal.modal-photo-upload { cursor: default; .modal-title { diff --git a/react/assets/forus-platform/scss/_common/modals/modal-pin-code.scss b/react/assets/forus-platform/scss/_common/modals/modal-pin-code.scss index ab441041e..20c6408c7 100644 --- a/react/assets/forus-platform/scss/_common/modals/modal-pin-code.scss +++ b/react/assets/forus-platform/scss/_common/modals/modal-pin-code.scss @@ -1,4 +1,4 @@ -&.modal-pin-code { +.modal.modal-pin-code { .modal-window { width: 820px; overflow: auto; diff --git a/react/assets/forus-platform/scss/_common/modals/modal-provider-products-required.scss b/react/assets/forus-platform/scss/_common/modals/modal-provider-products-required.scss index 755f8c82d..b87e8d6cc 100644 --- a/react/assets/forus-platform/scss/_common/modals/modal-provider-products-required.scss +++ b/react/assets/forus-platform/scss/_common/modals/modal-provider-products-required.scss @@ -1,4 +1,4 @@ -&.modal-provider-products-required { +.modal.modal-provider-products-required { .modal-body { .modal-section.modal-section-funds-list { .card { diff --git a/react/assets/forus-platform/scss/_common/modals/modal-voucher-create.scss b/react/assets/forus-platform/scss/_common/modals/modal-voucher-create.scss new file mode 100644 index 000000000..146514685 --- /dev/null +++ b/react/assets/forus-platform/scss/_common/modals/modal-voucher-create.scss @@ -0,0 +1,11 @@ +.modal.modal-voucher-create { + .modal-window { + width: 760px; + + .modal-body { + .modal-section { + padding: 25px 80px; + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/modals/modal-voucher-transaction.scss b/react/assets/forus-platform/scss/_common/modals/modal-voucher-transaction.scss index 31a57b4f8..b872f17fe 100644 --- a/react/assets/forus-platform/scss/_common/modals/modal-voucher-transaction.scss +++ b/react/assets/forus-platform/scss/_common/modals/modal-voucher-transaction.scss @@ -1,4 +1,4 @@ -&.modal-voucher-transaction { +.modal.modal-voucher-transaction { .modal-body { .modal-section { .block.block-compact-datalist { diff --git a/react/assets/forus-platform/scss/_common/modals/modal-voucher_qr.scss b/react/assets/forus-platform/scss/_common/modals/modal-voucher_qr.scss new file mode 100644 index 000000000..47db7879f --- /dev/null +++ b/react/assets/forus-platform/scss/_common/modals/modal-voucher_qr.scss @@ -0,0 +1,45 @@ +.modal.modal-voucher_qr { + .modal-window { + width: 540px; + + .form { + width: 380px; + max-width: 100%; + margin: 0 auto; + } + + .voucher_qr-block { + .voucher_qr-title { + color: #282b39; + font: 600 16px var(--base-font); + text-align: center; + margin: 0 0 20px; + } + + .voucher_qr-actions { + width: 300px; + max-width: 100%; + margin: 0 auto; + } + + .block.block-qr-code { + width: 170px; + margin: 0 auto 20px; + + .qr_code { + width: 100%; + background: #fff; + padding: 10px; + height: 100%; + border: 1px solid var(--border-color); + box-shadow: 0 2px 4px 1px rgba($color: #000000, $alpha: 0.05); + + img, + canvas { + width: 100%; + } + } + } + } + } +} diff --git a/react/assets/forus-platform/scss/_common/components/modals.scss b/react/assets/forus-platform/scss/_common/modals/modal.scss similarity index 61% rename from react/assets/forus-platform/scss/_common/components/modals.scss rename to react/assets/forus-platform/scss/_common/modals/modal.scss index 6b4f9e91b..843499acf 100644 --- a/react/assets/forus-platform/scss/_common/components/modals.scss +++ b/react/assets/forus-platform/scss/_common/modals/modal.scss @@ -464,52 +464,6 @@ } } - &.modal-voucher_qr { - .modal-window { - width: 540px; - - .form { - width: 380px; - max-width: 100%; - margin: 0 auto; - } - - .voucher_qr-block { - .voucher_qr-title { - color: #282b39; - font: 600 16px var(--base-font); - text-align: center; - margin: 0 0 20px; - } - - .voucher_qr-actions { - width: 300px; - max-width: 100%; - margin: 0 auto; - } - - .block.block-qr-code { - width: 170px; - margin: 0 auto 20px; - - .qr_code { - width: 100%; - background: #fff; - padding: 10px; - height: 100%; - border: 1px solid var(--border-color); - box-shadow: 0 2px 4px 1px rgba($color: #000000, $alpha: 0.05); - - img, - canvas { - width: 100%; - } - } - } - } - } - } - &.modal-lg { .modal-window { width: 960px; @@ -528,22 +482,6 @@ } } - &.modal-fund-offers { - .modal-window { - width: 1400px; - - .modal-section { - .table { - td { - &:last-child { - width: 150px; - } - } - } - } - } - } - &.modal-animated { .modal-backdrop, .modal-window { @@ -575,239 +513,6 @@ } } - &.modal-pdf-preview, - &.modal-image-preview { - .modal-window { - .modal-body { - .modal-section { - padding: 0; - max-width: 100%; - } - } - } - - .block-pdf-preview { - canvas { - display: block; - max-width: 100%; - } - } - - .img-block { - display: flex; - margin: 0 auto; - justify-content: center; - - img { - height: 100%; - max-width: 100%; - } - } - } - - &.modal-pdf-preview { - .modal-window { - display: flex; - flex-direction: column; - - .modal-body { - flex-grow: 1; - width: 100%; - display: flex; - } - - .block.block-pdf-preview { - width: 100%; - flex-grow: 1; - overflow: auto; - } - } - } - - &.modal-fund-unsubscribe { - .modal-window { - width: 820px; - border-radius: 12px; - - .modal-title { - font: 600 14px/21px var(--base-font); - text-align: center; - color: #252325; - margin-bottom: 10px; - } - - .modal-description { - font: 400 13px/18px var(--base-font); - text-align: center; - color: #646f79; - padding-bottom: 20px; - margin-bottom: 20px; - border-bottom: 1px solid #d4d9dd; - } - - .modal-warning { - border: 1px dashed #d4d9dd; - border-radius: var(--border-radius); - padding: 15px 13px; - margin-top: 20px; - background-color: #f6f9fc; - - .modal-warning-icon { - display: flex; - width: 50px; - height: 100%; - - .mdi { - margin-left: auto; - margin-right: auto; - } - } - - .modal-warning-details { - .modal-warning-title { - color: #646f79; - font: 500 13px/18px var(--base-font); - margin-bottom: 5px; - } - - .modal-warning-description { - color: #134478; - font: 600 11px/13px var(--base-font); - margin-bottom: 5px; - } - - .modal-warning-phone { - color: #404040; - font: 600 13px/18px var(--base-font); - } - } - } - } - } - - &.modal-2fa-setup { - .modal-section { - overflow: visible; - } - - .modal-body { - overflow: visible; - - .phone-control { - margin-bottom: 10px; - } - - .modal-text { - text-align: left; - } - } - } - - &.modal-voucher-create { - .modal-window { - width: 760px; - - .modal-body { - .modal-section { - padding: 25px 80px; - } - } - } - } - - &.modal-feature-contact { - .modal-close { - top: 15px; - color: #646f79; - } - - .modal-header { - padding: 15px 20px; - } - - .modal-section { - .icon-wrapper { - display: flex; - justify-content: center; - margin-bottom: 15px; - - .icon { - border-radius: var(--border-radius); - border: 1px solid #d4d9dd; - background: #fff; - display: flex; - justify-content: center; - align-items: center; - height: 48px; - width: 50px; - - .mdi { - font-size: 22px; - line-height: 22px; - color: #004195; - } - } - } - - .title { - font: 600 16px/24px var(--base-font); - color: #2b303a; - margin-bottom: 5px; - } - - .description { - font: 400 13px/18px var(--base-font); - color: #414141; - margin-bottom: 24px; - } - - .contact-row { - display: flex; - flex-wrap: wrap; - gap: 8px; - - .contact-item { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - border-radius: var(--border-radius); - border: 1px dashed #d4d9dd; - background: #fff; - padding: 20px; - - .icon { - margin-bottom: 10px; - - .mdi { - font-size: 18px; - line-height: 18px; - color: #134478; - } - } - - .title { - font: 600 14px/1 var(--base-font); - color: #282b39; - margin-bottom: 5px; - } - - .description { - font: 400 14px/20px var(--base-font); - color: #282b39; - margin-bottom: 0; - } - } - } - } - - .modal-footer { - .button { - line-height: 1; - padding: 8px 12px; - } - } - } - @media screen and (max-width: 1800px) { .modal-footer { padding: 25px; @@ -827,18 +532,6 @@ font: 700 12px/26px var(--base-font); } } - - &.modal-auth { - .modal-title { - font: 700 24px var(--base-font); - } - - .modal-subtitle { - font: 400 16px var(--base-font); - padding: 0 10px 20px; - margin: 0 40px; - } - } } @media screen and (max-width: 1000px) { @@ -848,34 +541,5 @@ top: 20px; right: 20px; } - - &.modal-auth { - padding: 0; - - .modal-footer { - margin: 0 -25px 0; - padding: 25px 25px 0 !important; - - .footer-text { - font: 500 14px/26px var(--base-font); - margin: 0 0 30px; - } - - .modal-footer-link { - font: 700 11px/20px var(--base-font); - padding-left: 20px; - margin-bottom: 15px; - - span { - width: 20px; - margin-left: -20px; - } - - &:last-of-type { - margin-bottom: 0; - } - } - } - } } } diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-auth-widget.scss b/react/assets/forus-webshop/scss/includes/blocks/block-auth-widget.scss deleted file mode 100644 index ecf177975..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/block-auth-widget.scss +++ /dev/null @@ -1,177 +0,0 @@ -.block.block-auth-widget { - .auth-title { - font: 600 18px/20px var(--base-font); - color: #333; - margin: 0 0 5px; - } - - .auth-subtitle { - cursor: pointer; - font: 400 14px/20px var(--base-font); - color: #333; - margin-bottom: 10px; - } - - .auth-form { - margin: 0 0 30px; - display: flex; - flex-direction: row; - - .auth-form-input { - flex-grow: 1; - padding-right: 20px; - } - - .button { - box-shadow: none; - width: 175px; - text-align: center; - - p &:hover { - box-shadow: none; - } - } - } - - .auth-digid { - border: 1px solid #e7e7e7; - border-left: none; - border-right: none; - padding: 18px 0px; - margin: 0 0 30px; - - .auth-digid-link { - color: #3661ff; - font: 600 14px/20px var(--base-font); - display: inline-flex; - flex-direction: row; - - .mdi { - font-size: 1.5em; - height: 20px; - line-height: 20px; - display: flex; - flex-direction: row; - justify-content: center; - justify-items: center; - transition: .4s; - transform: translate(0, 0); - margin: 1px 0 -1px; - } - - &:hover { - .mdi { - transform: translate(2px, 0); - } - } - } - } - - .auth-digid-form { - padding: 10px; - - .auth-title { - margin: 0 0 20px; - } - - .auth-subtitle { - margin: 0 0 20px; - - &:last-child { - margin-bottom: 0; - } - } - } - - .auth-digid-message { - display: flex; - flex-direction: column; - align-content: center; - justify-items: center; - align-items: center; - justify-content: center; - text-align: center; - padding: 10px 0; - - .digid-icon { - color: #3661ff; - width: 140px; - height: 140px; - border-radius: 140px; - background: #fff; - text-align: center; - line-height: 140px; - font-size: 80px; - margin: 0 0 20px; - } - - .digid-title { - color: #282b39; - font: 600 21px/20px var(--base-font); - margin: 0 0 20px; - } - - .digid-message { - color: #646f79; - font: 500 14px/20px var(--base-font); - } - } - - .auth-qr_code { - display: flex; - flex-direction: column; - - .qr_code-container { - display: flex; - flex-direction: row; - font: 400 14px/20px var(--base-font); - - .qr_code-description { - flex-grow: 1; - - a { - color: #3661ff; - text-decoration: underline; - font: 600 14px var(--base-font); - } - } - - .qr_code-block { - width: 175px; - min-width: 175px; - - .block-qr-code { - .qr_code { - padding: 10px; - width: 100%; - height: auto; - border: 2px dashed #000; - } - } - } - } - } - - @media screen and (max-width: 1000px) { - .auth-title { - font-size: 16px; - font-weight: 700; - margin: 0 0 10px; - } - - .auth-subtitle { - font-size: 13px; - font-weight: 400; - line-height: 18px; - margin: 0 0 15px; - } - - .auth-form { - margin: 0 0 10px; - - .button { - width: auto; - } - } - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/blocks/map.scss b/react/assets/forus-webshop/scss/includes/blocks/block-map.scss similarity index 100% rename from react/assets/forus-webshop/scss/includes/blocks/map.scss rename to react/assets/forus-webshop/scss/includes/blocks/block-map.scss diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-map_card.scss b/react/assets/forus-webshop/scss/includes/blocks/block-map_card.scss deleted file mode 100644 index a469d2592..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/block-map_card.scss +++ /dev/null @@ -1,90 +0,0 @@ -.block.block-map_card { - box-shadow: var(--box-shadow); - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - background: #fff; - margin-bottom: 30px; - cursor: default; - - .map_card-header, - .map_card-footer { - border-bottom: 1px solid var(--border-color); - background: #ffffff; - padding: 20px 25px; - font: var(--heading-pane-font); - color: var(--tc); - margin: 0 0 0; - - .map_card-title { - font: inherit; - margin: 0; - - &:last-child { - margin-bottom: 0; - } - } - - .map_card-subtitle { - color: #646f79; - font: 400 16px var(--base-font); - margin-bottom: 5px; - - &:last-child { - margin-bottom: 0; - } - } - - &:last-child { - border-bottom-width: 0; - } - } - - .map_card-header { - border-top-left-radius: inherit; - border-top-right-radius: inherit; - } - - .map_card-footer { - border-bottom-left-radius: inherit; - border-bottom-right-radius: inherit; - } - - .map_card-iframe { - border-bottom-left-radius: inherit; - border-bottom-right-radius: inherit; - border-bottom: 1px solid var(--border-color); - position: relative; - height: 550px; - overflow: hidden; - - iframe { - border-bottom-left-radius: inherit; - border-bottom-right-radius: inherit; - @include fill_parent(); - width: 100%; - height: 100%; - } - - .map { - border-bottom-left-radius: inherit; - border-bottom-right-radius: inherit; - @include fill_parent(); - width: 100%; - height: 100%; - } - - &:last-child { - border-bottom-width: 0; - } - } - - @media screen and (max-width: 1000px) { - .map_card-header { - padding: 15px 20px; - - .map_card-title { - font-size: 16px; - } - } - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-mobile-menu.scss b/react/assets/forus-webshop/scss/includes/blocks/block-mobile-menu.scss index 08fd2d902..710ef19ab 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-mobile-menu.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-mobile-menu.scss @@ -1,5 +1,3 @@ -$footer_base_font: 'Open Sans', arial, sans-serif; - .block.block-mobile-menu { --item-height: 44px; --item-line-height: 18px; diff --git a/react/assets/forus-webshop/scss/includes/blocks/block-sessions.scss b/react/assets/forus-webshop/scss/includes/blocks/block-sessions.scss index 480cc4d7f..e85e4300e 100644 --- a/react/assets/forus-webshop/scss/includes/blocks/block-sessions.scss +++ b/react/assets/forus-webshop/scss/includes/blocks/block-sessions.scss @@ -3,7 +3,6 @@ flex-direction: column; .session-item { - flex-direction: column; display: flex; padding: 20px; flex-direction: row; diff --git a/react/assets/forus-webshop/scss/includes/blocks/vouchers.scss b/react/assets/forus-webshop/scss/includes/blocks/block-vouchers.scss similarity index 100% rename from react/assets/forus-webshop/scss/includes/blocks/vouchers.scss rename to react/assets/forus-webshop/scss/includes/blocks/block-vouchers.scss diff --git a/react/assets/forus-webshop/scss/includes/blocks/_block.scss b/react/assets/forus-webshop/scss/includes/blocks/block.scss similarity index 100% rename from react/assets/forus-webshop/scss/includes/blocks/_block.scss rename to react/assets/forus-webshop/scss/includes/blocks/block.scss diff --git a/react/assets/forus-webshop/scss/includes/blocks/cards.scss b/react/assets/forus-webshop/scss/includes/blocks/cards.scss deleted file mode 100644 index e690fbc87..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/cards.scss +++ /dev/null @@ -1,148 +0,0 @@ -.block { - &.block-cards { - position: relative; - z-index: 3; - width: calc(100% + 30px); - margin: 0 -16px 70px; - float: left; - @include cf(); - - .card-item { - width: 50%; - padding: 0 15px; - margin-bottom: 20px; - float: left; - - .card-item-inner { - border-radius: 6px; - overflow: hidden; - box-shadow: 0 10px 50px rgba(0, 0, 0, .2); - background-color: #ffffff; - position: relative; - height: 200px; - transform: translate(0, 0); - transition: transform .4s; - cursor: pointer; - display: block; - - .card-icon { - position: absolute; - width: 340px; - height: 340px; - background: #f9fbf0; - border-radius: 340px; - left: 0px; - top: 50%; - transform: translate(-50%, -50%); - - img { - display: block; - width: 110px; - height: 110px; - position: absolute; - top: 50%; - right: 30px; - transform: translate(0, -50%); - } - } - - .card-content { - position: absolute; - left: 200px; - right: 100px; - top: 50%; - transform: translate(0, -50%); - } - - .card-title { - font: 700 18px/24px var(--base-font); - color: #282b39; - margin-bottom: 5px; - - .mdi { - font-size: 1em; - line-height: inherit; - color: var(--color-default); - vertical-align: baseline; - position: relative; - margin-left: 0; - transition: .4s; - } - } - - .card-description { - font: 600 14px/25px var(--base-font); - color: #646f79; - } - - &:hover { - transform: translate(0, -10px); - - .card-title { - .mdi { - margin-left: 10px; - color: #4697fd; - } - } - } - } - - &:nth-child(even) { - .card-item-inner { - .card-icon { - background: #f2fafd; - } - } - } - } - } - @media screen and (max-width: 1700px) { - &.block-cards { - margin: 0 -16px 0; - } - } - @media screen and (max-width: 1000px) { - &.block-cards { - padding: 0 25px; - width: 100%; - margin: 0 0 30px; - - .card-item { - width: 100%; - padding: 0; - - .card-item-inner { - height: 160px; - - .card-icon { - width: 320px; - height: 320px; - margin-left: -40px; - - img { - width: 70px; - height: 70px; - } - } - - .card-content { - left: 145px; - right: 30px; - - .card-title { - font: 700 14px/22px var(--base-font); - } - - .card-description { - font: 600 12px/20px var(--base-font); - } - } - } - - &:last-child { - margin: 0 0 0; - } - } - } - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/blocks/fund-add-records.scss b/react/assets/forus-webshop/scss/includes/blocks/fund-add-records.scss deleted file mode 100644 index fe07d31ae..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/fund-add-records.scss +++ /dev/null @@ -1,149 +0,0 @@ -.block.block-fund-add-records { - padding: 0 30px; - cursor: default; - - .block-title { - font: 500 36px/36px var(--base-font); - margin: 0 0 30px; - text-align: center; - color: #191A1C; - } - - .block-icon { - text-align: center; - font-size: 96px; - padding: 40px 0 30px; - color: var(--color-primary); - } - - .block-description { - font: 400 18px/26px var(--base-font); - text-align: center; - color: #191A1C; - margin: 0 0 40px; - - strong, a { - font-weight: 600; - } - - a { - color: #3561FF; - text-decoration: underline; - } - } - - .request-progress { - width: 100%; - display: flex; - margin: 0 0 30px; - - .request-step { - flex-grow: 1; - text-align: right; - border-top: 6px solid #EBEDF0; - font: 500 14px/30px var(--base-font); - color: #DADADA; - - &.request-step-active { - border-top-color: #BDCBFF; - color: #315EFD; - } - - &.request-step-done { - border-top-color: #3561FF; - color: #3561FF; - } - } - } - - .request-pane { - background: #FFFFFF; - border: 1px solid #EBEDF0; - box-sizing: border-box; - border-radius: 5px; - - .request-pane-header { - border-bottom: 1px solid #EBEDF0; - font: 500 18px/34px var(--base-font); - padding: 15px 40px; - text-align: center; - } - - .request-pane-body { - padding: 30px 30px; - - .request-pane-heading { - font: 500 21px/30px var(--base-font); - margin: 0 0 20px; - } - - .request-pane-text { - font: 400 16px/28px var(--base-font); - margin: 0 0 20px; - } - - .request-pane-list { - margin: 0 0 20px; - - li { - font: 400 16px/28px var(--base-font); - vertical-align: middle; - position: relative; - padding-left: 15px; - - &:before { - content: ''; - display: inline-block; - width: 6px; - height: 6px; - background: #007377; - border-radius: 6px; - line-height: 26px; - position: absolute; - left: 0; - top: 10px; - } - } - } - - .request-pane-heading, - .request-pane-text, - .request-pane-list { - &:last-child { - margin-bottom: 0; - } - } - - .request-pane-info { - border: 1px solid #EBEDF0; - padding: 15px 20px; - border-radius: 8px; - background: #f4f5f7; - - .request-pane-text { - margin-bottom: 0; - font: 400 14px/24px var(--base-font); - } - - .request-pane-list { - margin-bottom: 0; - - li { - font: 400 14px/24px var(--base-font); - } - } - } - } - - .request-pane-footer { - padding: 15px 40px; - } - } - - - .block-wrapper { - width: 750px; - max-width: 100%; - margin: 0 auto 40px; - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/blocks/fund_criteria.scss b/react/assets/forus-webshop/scss/includes/blocks/fund_criteria.scss deleted file mode 100644 index 12adcc870..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/fund_criteria.scss +++ /dev/null @@ -1,133 +0,0 @@ -.block.block-fund_criteria { - .criteria-item { - border-radius: var(--border-radius); - overflow: hidden; - display: block; - margin-bottom: 15px; - box-shadow: 0 5px 30px rgba(0, 0, 0, 0.05); - cursor: default; - - .criteria-header { - font: 700 13px/30px var(--base-font); - background-color: #8ca3a6; - color: #fff; - padding: 10px 20px; - } - - .criteria-body { - background-color: #fff; - - .criteria-section { - padding: 20px; - border-bottom: 1px solid #d4d9dd; - position: relative; - @include cf(); - - .criteria-details { - float: left; - } - - .criteria-label { - font: 400 13px/13px var(--base-font); - color: var(--color-default); - @include ellipsis(); - margin-bottom: 6px; - } - - .criteria-value { - font: 700 16px/20px var(--base-font); - color: #282b39; - @include ellipsis(); - } - - .criteria-value-empty { - font: 400 16px/20px var(--base-font); - color: #9ca6af; - @include ellipsis(); - } - - .criteria-validations { - float: right; - position: absolute; - right: 20px; - top: 50%; - transform: translate(0, -50%); - - .criteria-validation-validate { - font: 600 13px var(--base-font); - color: orange; - transition: color .4s; - - .mdi { - background: none; - color: orange; - font-size: 1.5em; - transition: color .4s, background-color .4s; - } - - &:hover { - color: lighten(orange, 20); - - .mdi { - background: none; - color: lighten(orange, 20); - } - } - } - - .criteria-validation-add { - font: 600 13px var(--base-font); - color: var(--color-default); - transition: color .4s; - - .mdi { - background: var(--color-default); - transition: background-color .4s; - } - - &:hover { - color: var(--color-primary-light); - - .mdi { - background: var(--color-primary-light); - } - } - } - - .criteria-validation-valid { - font: 600 13px var(--base-font); - color: var(--color-default); - - .mdi { - background: #00d291; - } - } - - .mdi { - margin-right: 5px; - color: #fff; - width: 18px; - height: 18px; - border-radius: 18px; - float: left; - display: block; - text-align: center; - line-height: 18px; - font-weight: 700; - transition: color .4s; - } - } - - &:last-child { - border-bottom: none; - } - } - } - - &.active { - .criteria-header { - background-color: #305dfa; - } - } - } -} diff --git a/react/assets/forus-webshop/scss/includes/blocks/phone-number.scss b/react/assets/forus-webshop/scss/includes/blocks/phone-number.scss deleted file mode 100644 index 3d813521d..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/phone-number.scss +++ /dev/null @@ -1,28 +0,0 @@ -.block { - - &.block-phone-number { - margin: 0 auto 20px; - - .pincode-number { - width: 50px; - } - } - @media screen and (max-width: 1700px) { - - &.block-phone-number { - .pincode-number { - width: 45px; - } - } - } - @media screen and (max-width: 1000px) { - &.block-phone-number { - width: calc(30px * 10 + 10px * 1); - - .pincode-number { - margin-right: 5px; - width: 30px; - } - } - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/blocks/record_categories.scss b/react/assets/forus-webshop/scss/includes/blocks/record_categories.scss deleted file mode 100644 index 4cea99715..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/record_categories.scss +++ /dev/null @@ -1,57 +0,0 @@ -.block { - - &.block-record_categories { - margin-bottom: 30px; - - .record_category-item { - border-radius: var(--border-radius); - background: #fff; - padding: 20px; - width: 100%; - display: block; - margin-bottom: 15px; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); - position: relative; - transition: box-shadow .4s; - - .category-title { - font: 700 18px/30px var(--base-font); - color: #282b39; - transition: color .4s; - } - - .category-subtitle { - font: 400 14px/20px var(--base-font); - color: #646f79; - } - - .category-icon { - float: right; - position: absolute; - top: 50%; - right: 20px; - transform: translate(0, -50%); - - img { - display: block; - width: 50px; - } - } - - &:hover { - box-shadow: 0 5px 25px rgba(0, 0, 0, 0.25); - - .category-title { - color: var(--color-default); - } - } - } - } - @media screen and (max-width: 1000px) { - &.block-record_categories { - .button { - width: 100%; - } - } - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/blocks/records.scss b/react/assets/forus-webshop/scss/includes/blocks/records.scss deleted file mode 100644 index e0958fb5a..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/records.scss +++ /dev/null @@ -1,134 +0,0 @@ -.block { - - &.block-records { - margin-bottom: 30px; - - .record-item { - border-radius: var(--border-radius); - background: #fff; - padding: 20px; - width: 100%; - display: block; - margin-bottom: 15px; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); - position: relative; - transition: box-shadow .4s; - @include cf(); - - .record-details { - float: left; - - .record-type { - font: 400 13px var(--base-font); - color: var(--color-default); - } - - .record-value { - font: 700 16px var(--base-font); - color: #282b39; - } - } - - .record-validations { - float: right; - @include cf(); - - .record-validation-count { - height: 80px; - margin: -20px 0; - padding: 20px; - border-right: 1px solid #d4d9dd; - color: #00d291; - font: 400 13px var(--base-font); - text-align: center; - float: left; - - strong { - display: block; - font-weight: 700; - } - } - - .record-validation-request { - float: right; - display: block; - padding: 10px 0px 10px 20px; - color: var(--color-default); - font: 600 13px/20px var(--base-font); - transition: .4s; - - .mdi { - color: #fff; - display: block; - width: 20px; - height: 20px; - float: left; - background: #00d291; - border-radius: 20px; - margin-right: 5px; - text-align: center; - font-size: 1.2em; - } - - &:hover { - color: var(--color-primary-light); - } - } - } - } - } - @media screen and (max-width: 1000px) { - &.block.block-records { - .record-item { - .record-details { - width: calc(100% + 40px); - float: left; - margin: -20px -20px 0; - padding: 20px; - border-bottom: 1px solid #eee; - - .record-value { - @include ellipsis(); - } - } - - .record-validations { - width: 100%; - margin: 0 -20px -20px; - padding: 10px 20px; - width: calc(100% + 40px); - - .record-validation-count { - width: calc(50% + 20px); - margin: 0; - padding: 20px; - height: auto; - margin: -10px 0 -10px -20px; - - strong { - display: inline; - margin-right: 3px; - } - } - - .record-validation-request { - padding: 20px; - text-align: center; - height: auto; - width: calc(50% + 20px); - margin: -10px -20px -10px 0; - font: 600 13px/20px var(--base-font); - - .mdi { - display: none; - } - } - } - } - - .button { - width: 100%; - } - } - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/blocks/validations.scss b/react/assets/forus-webshop/scss/includes/blocks/validations.scss deleted file mode 100644 index 2df8eb78b..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/validations.scss +++ /dev/null @@ -1,140 +0,0 @@ -.block { - - &.block-validations { - margin-bottom: 30px; - - .validation-record-details { - padding: 20px 25px; - background: #fff; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); - border-radius: var(--border-radius); - overflow: hidden; - margin-bottom: 15px; - - .record-type { - font: 500 13px/20px var(--base-font); - color: var(--color-default); - margin-top: -5px; - } - - .record-value { - font: 700 16px/30px var(--base-font); - color: #282b39; - margin-bottom: 10px; - } - - .record-validation-count { - color: #00d291; - font: 400 13px var(--base-font); - text-align: center; - position: absolute; - right: 20px; - top: 20px; - - strong { - display: block; - font-weight: 700; - } - } - - .button { - padding-top: 7px; - padding-bottom: 7px; - text-align: center; - } - } - - .validation-card { - background: #fff; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); - border-radius: var(--border-radius); - overflow: hidden; - margin-bottom: 15px; - } - - .validation-header { - border-bottom: 1px solid #d4d9dd; - padding: 20px 25px; - font: 700 22px var(--base-font); - color: #282b39; - position: relative; - } - - .validation-body { - padding: 0 25px; - width: 100%; - display: block; - position: relative; - transition: box-shadow .4s; - } - - .validation-item { - border-bottom: 1px solid #d4d9dd; - background: #fff; - margin: 0 -25px; - padding: 20px 25px; - @include cf(); - - .validation-image { - float: left; - width: 50px; - height: 50px; - border-radius: 50px; - overflow: hidden; - border: 1px solid #d5e7ff; - margin-right: 15px; - - img { - display: block; - width: 100%; - } - } - - .validation-name { - padding: 10px 0; - font: 700 18px/30px var(--base-font); - color: #282b39; - float: left; - } - - .validation-date { - color: var(--color-primary); - font: 700 14px/30px var(--base-font); - padding: 10px 0; - float: right; - } - - &:last-child { - border-bottom: none; - } - } - } - @media screen and (max-width: 1000px) { - &.block-validations { - .validation-header { - font: 700 16px var(--base-font); - padding: 15px 20px; - } - - .validation-body { - padding: 0 20px; - } - - .validation-item { - margin: 0 -20px 0; - padding: 20px; - - .validation-name { - font: 700 16px/30px var(--base-font); - @include ellipsis(); - } - - .validation-date { - width: 100%; - text-align: center; - padding: 0; - } - } - } - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/blocks/validators.scss b/react/assets/forus-webshop/scss/includes/blocks/validators.scss deleted file mode 100644 index d18b1f054..000000000 --- a/react/assets/forus-webshop/scss/includes/blocks/validators.scss +++ /dev/null @@ -1,128 +0,0 @@ -.block { - - &.block-validators { - margin-bottom: 30px; - - .block-card { - background: #fff; - box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); - border-radius: var(--border-radius); - overflow: hidden; - margin-bottom: 15px; - } - - .block-header { - border-bottom: 1px solid #d4d9dd; - padding: 20px 25px; - font: 700 22px var(--heading-font-family); - color: var(--tc); - position: relative; - } - - .block-body { - padding: 0 25px; - width: 100%; - display: block; - position: relative; - transition: box-shadow .4s; - } - - .validator-item { - border-bottom: 1px solid #d4d9dd; - background: #fff; - margin: 0 -25px; - padding: 20px 25px; - @include cf(); - - .validator-image { - float: left; - width: 50px; - height: 50px; - border-radius: 50px; - overflow: hidden; - border: 1px solid #d5e7ff; - margin-right: 15px; - - img { - display: block; - width: 100%; - } - } - - .validator-name { - padding: 10px 0; - font: 700 18px/30px var(--base-font); - color: #282b39; - float: left; - } - - .validator-state { - float: right; - padding: 13px 0; - - .validator-send { - font: 600 13px/24px var(--base-font); - color: var(--color-default); - display: block; - cursor: pointer; - - .mdi { - line-height: 24px; - font-size: 1.6em; - float: right; - color: #2987fd; - margin-left: 5px; - position: relative; - transform: translate(0); - transition: .4s; - } - - &:hover { - .mdi { - transform: translate(5px); - } - } - } - } - - &:last-child { - border-bottom: none; - } - } - } - @media screen and (max-width: 1000px) { - &.block-validators { - .block-header { - font: 700 16px var(--heading-font-family); - padding: 15px 20px; - } - - .block-body { - padding: 0 20px; - - .validator-item { - margin: 0 -20px 0; - padding: 20px; - border-bottom: 1px solid #eee; - - .validator-name { - font: 700 16px/30px var(--base-font); - @include ellipsis(); - } - - .validator-state { - padding: 0 20px 0; - float: left; - width: calc(100% + 40px); - margin: 0 -20px; - text-align: center; - - .validator-send { - display: inline-block; - } - } - } - } - } - } -} \ No newline at end of file diff --git a/react/assets/forus-webshop/scss/includes/components/_modals.scss b/react/assets/forus-webshop/scss/includes/modals/modal.scss similarity index 100% rename from react/assets/forus-webshop/scss/includes/components/_modals.scss rename to react/assets/forus-webshop/scss/includes/modals/modal.scss diff --git a/react/assets/forus-webshop/scss/includes/sections/_section.scss b/react/assets/forus-webshop/scss/includes/sections/section.scss similarity index 100% rename from react/assets/forus-webshop/scss/includes/sections/_section.scss rename to react/assets/forus-webshop/scss/includes/sections/section.scss diff --git a/react/assets/forus-webshop/scss/webshop.scss b/react/assets/forus-webshop/scss/webshop.scss index cc0d3199e..a2a2c9a9c 100644 --- a/react/assets/forus-webshop/scss/webshop.scss +++ b/react/assets/forus-webshop/scss/webshop.scss @@ -26,7 +26,6 @@ @import 'includes/components/ui-controls'; @import 'includes/components/label'; @import 'includes/components/map-card'; -@import 'includes/components/modals'; @import 'includes/components/tooltip'; @import 'includes/components/triangle'; @import 'includes/components/printables'; @@ -36,7 +35,7 @@ @import 'includes/components/frame-director'; // SECTIONS -@import 'includes/sections/_section'; +@import 'includes/sections/section'; @import 'includes/sections/section-faq'; @import 'includes/sections/section-cms'; @import 'includes/sections/section-map'; @@ -47,28 +46,19 @@ @import 'includes/sections/section-voucher-details'; // BLOCKS -@import 'includes/blocks/_block'; +@import 'includes/blocks/block'; @import 'includes/blocks/block-faq'; @import 'includes/blocks/block-skip-links'; @import 'includes/blocks/block-fund'; -@import 'includes/blocks/cards'; -@import 'includes/blocks/fund_criteria'; -@import 'includes/blocks/map'; -@import 'includes/blocks/phone-number'; +@import 'includes/blocks/block-map'; @import 'includes/blocks/block-product'; -@import 'includes/blocks/record_categories'; -@import 'includes/blocks/records'; @import 'includes/blocks/block-transactions'; -@import 'includes/blocks/validations'; -@import 'includes/blocks/validators'; @import 'includes/blocks/block-voucher'; @import 'includes/blocks/block-voucher-share-options'; -@import 'includes/blocks/vouchers'; -@import 'includes/blocks/fund-add-records'; +@import 'includes/blocks/block-vouchers'; @import 'includes/blocks/block-profile'; @import 'includes/blocks/block-preferences'; @import 'includes/blocks/block-file-uploader'; -@import 'includes/blocks/block-auth-widget'; @import 'includes/blocks/block-push-notifications'; @import 'includes/blocks/block-page-loading-bar'; @import 'includes/blocks/block-user-emails'; @@ -114,7 +104,6 @@ @import 'includes/blocks/block-reimbursement'; @import 'includes/blocks/block-reservations'; @import 'includes/blocks/block-reservation'; -@import 'includes/blocks/block-map_card'; @import 'includes/blocks/block-cms-funds'; @import 'includes/blocks/block-announcement'; @import 'includes/blocks/block-empty'; @@ -149,6 +138,8 @@ @import 'includes/blocks/block-product-category-filter'; @import 'includes/blocks/block-product-categories'; +// MODALS +@import 'includes/modals/modal'; @import 'includes/modals/modal-file-preview'; @import 'includes/modals/modal-photo-cropper'; @import 'includes/modals/modal-physical-cards'; diff --git a/react/src/dashboard/components/elements/fund-criteria-editor/FundCriteriaEditor.tsx b/react/src/dashboard/components/elements/fund-criteria-editor/FundCriteriaEditor.tsx index ef8f3d119..2e79f7b04 100644 --- a/react/src/dashboard/components/elements/fund-criteria-editor/FundCriteriaEditor.tsx +++ b/react/src/dashboard/components/elements/fund-criteria-editor/FundCriteriaEditor.tsx @@ -25,8 +25,6 @@ export default function FundCriteriaEditor({ recordTypes, onSaveCriteria, className, - bodyClassName, - footerClassName, }: { fund: Fund; organization: Organization; @@ -35,8 +33,6 @@ export default function FundCriteriaEditor({ recordTypes: Array; onSaveCriteria?: (criteria: Array) => void; className?: string; - bodyClassName?: string; - footerClassName?: string; }) { const translate = useTranslate(); @@ -148,8 +144,8 @@ export default function FundCriteriaEditor({ }, [criteria]); return ( -

-
+
+
{criteriaList?.map((item, index) => ( 0) && ( -
+
{fund.criteria_editable && (
diff --git a/react/src/dashboard/components/pages/fund-forms-view/elements/tabs-details-card/FundFormCriteriaCard.tsx b/react/src/dashboard/components/pages/fund-forms-view/elements/tabs-details-card/FundFormCriteriaCard.tsx index 328064593..14f0aab3c 100644 --- a/react/src/dashboard/components/pages/fund-forms-view/elements/tabs-details-card/FundFormCriteriaCard.tsx +++ b/react/src/dashboard/components/pages/fund-forms-view/elements/tabs-details-card/FundFormCriteriaCard.tsx @@ -48,8 +48,6 @@ export default function FundFormCriteriaCard({ recordTypes={recordTypes} setCriteria={(criteria) => setFund({ ...fund, criteria })} onSaveCriteria={saveCriteria} - bodyClassName={'collapsable-body'} - footerClassName={'collapsable-footer'} />
); diff --git a/react/src/dashboard/i18n/i18n-nl.js b/react/src/dashboard/i18n/i18n-nl.js index 6f7a7ced5..3bcacab2b 100644 --- a/react/src/dashboard/i18n/i18n-nl.js +++ b/react/src/dashboard/i18n/i18n-nl.js @@ -74,7 +74,6 @@ export default { 'validation-request': 'Validatie verzoek', 'restore-email': 'Inloggen via e-mail', }, - // MENU = menu-validator.pug, menu-provider.pug, menu-sponsor.pug menu: { organizational: 'Organisatie', implementation: 'Webshop', @@ -102,7 +101,6 @@ export default { components, - // MEAPP LANDINGSPAGE = index.pug meapp_index: { navbar: { municipality: 'GEMEENTE', @@ -141,7 +139,6 @@ export default { app: 'De app bewaart een profiel van de gebruiker, dit profiel maakt het mogelijk dat de gegevens hergebruikt kunnen worden voor het mee doen aan andere regelingen.', }, }, - // PROVIDER HOME = home-provider.pug home_provider: { header: { default: { @@ -277,7 +274,6 @@ export default { }, }, }, - // SPONSOR HOME = home-sponsor.pug home_sponsor: { header: { title: 'Gemeentelijk dashboard', @@ -336,10 +332,8 @@ export default { }, }, }, - // VALIDATOR HOME = home-validator.pug // DON'T TRANSLATE , THE VALIDATOR WILL NOT HAVE A LANDINGSPAGE - // CSV-VALIDATION = csv-validation.pug csv_validation: { header: { title: 'Aanvragers toevoegen', @@ -350,7 +344,6 @@ export default { upload: 'Upload .csv bestand', }, }, - // FINANCIAL DASHBOARD = financial-dashboard-transaction.pug financial_dashboard: { header: { title: 'Financiele statistieken', @@ -432,7 +425,6 @@ export default { show_notifications: 'Show +{{ count }} notifications', }, - // EDIT IMPLEMENTATION = implementation-edit.pug implementation_edit: { header: { title: 'Website instellingen', @@ -521,7 +513,6 @@ export default { }, }, - // EDIT FUNDS = funds-edit.pug funds_edit: { header: { title_add: 'Fonds toevoegen', @@ -550,7 +541,6 @@ export default { }, }, - // PRE CHECK FUNDS = funds-pre-check.pug funds_pre_check: { header: { title: 'Regelingencheck', @@ -569,7 +559,6 @@ export default { }, }, - // SHOW FUNDS = funds-show.pug funds_show: { titles: { top_ups: 'Bekijk aanvullingen', @@ -629,12 +618,10 @@ export default { }, }, - // FUNDS = funds.pug funds_pug: { title: 'Fondsen', }, - // HOME = home.pug home: { buttons: { login: 'Log in', @@ -642,7 +629,6 @@ export default { }, }, - // EDIT OFFICES = offices-edits.pug offices_edit: { header: { title_add: 'Vestiging toevoegen', @@ -672,7 +658,6 @@ export default { }, }, - // OFFICES = offices.pug offices: { buttons: { adjust: 'Bewerk', @@ -707,7 +692,6 @@ export default { }, }, - // ORGANIZATION PROVIDERS = provider-organizations.pug provider_organizations: { header: { title: 'Aanbieders', @@ -766,7 +750,6 @@ export default { }, }, - // ORGANIZATION VALIDATORS = organization-validators.pug organization_validators: { labels: { address: 'Adres', @@ -780,7 +763,6 @@ export default { }, }, - //EDIT ORGANIZATIONS = organization-edit.pug organization_edit: { header: { title_add: 'Organisatie aanmaken', @@ -822,7 +804,6 @@ export default { }, }, - // ORGANIZATIONS = organizations.pug organizations: { header: { title: 'Kies een organisatie om in te loggen', @@ -840,7 +821,6 @@ export default { }, }, - // SHOW PRODUCTS = product-show.pug //TRANSLATION NOT FINISHED -> PAGE NOT DONE products_show: { header: { @@ -869,7 +849,6 @@ export default { }, }, - // PRODUCTS = product.pug products: { offers: 'Aanbod', add: 'Voeg aanbod toe', @@ -904,7 +883,6 @@ export default { }, }, - // PRODUCTS = product.pug sponsor_products: { offers: 'Aanbod', labels: { @@ -976,7 +954,6 @@ export default { }, }, - // PROVIDER IDENTITIES = provider-identities.pug provider_identities: { labels: { address: 'Adres', @@ -990,7 +967,6 @@ export default { }, }, - // EDIT PROVIDER IDENTITIES = provider-identity-edit.pug provider_identity_edit: { buttons: { adjust: 'Beoordelaar aanpassen', @@ -1003,7 +979,6 @@ export default { }, }, - // SIGN UP FORM FOR PROVIDERS = provider-sign-up.pug sign_up_provider: { header: { main_header: 'Aanmelden als aanbieder', @@ -1227,7 +1202,6 @@ export default { title: 'Fondsen', }, }, - // SIGN UP FORM FOR SPONSORS = sponsor-sign-up.pug sign_up_sponsor: { header: { main_header: 'Aanmelden als sponsor', @@ -1361,7 +1335,6 @@ export default { description: 'Aanmelden voor een fonds is alleen mogelijk via onze website op een vaste computer.', }, }, - // SIGN UP FORM FOR VALIDATORS = validator-sign-up.pug sign_up_validator: { header: { main_header: 'Aanmelden als beoordelaar', @@ -1500,7 +1473,6 @@ export default { }, }, - // Organization-employees.pug organization_employees: { labels: { email: 'E-mailadres', @@ -1532,7 +1504,6 @@ export default { }, }, - // Organization-employees.pug implementation_funds: { labels: { name: 'Naam', @@ -1546,7 +1517,6 @@ export default { }, }, - // RESERVATION = modals/modal-reservation-create.pug reservation_create: { tooltips: { product: [ @@ -1557,7 +1527,6 @@ export default { }, }, - // VALIDATION REQUEST - validation-request.pug validation_request: { buttons: { accept: 'Accepteren', @@ -1573,7 +1542,6 @@ export default { iban_confirmation: 'IBAN verkeerde bevestiging', }, - // OVERVIEW VALIDATIONS REQUESTS = validation-requests.pug validation_requests: { labels: { id: 'ID', @@ -1748,10 +1716,8 @@ export default { }, }, - // EMPTY BLOCK = empty-block.pug // No translations needed - // FUND CARD FOR PROVIDERS = fund-card-provider.pug fund_card_provider_finances: { status: { hold: 'Wachten', @@ -1800,13 +1766,9 @@ export default { }, }, - // PROVIDER MENU = menu-provider.pug // No translations needed - // PROVIDER MENU = menu-sponsor.pug // No translations needed - // VALIDATOR MENU = menu-validator.pug // No translations needed - // ADDING FUNDS MODAL - modal-funds-add.pug modal_funds_add: { header: { title: 'Budget toevoegen aan fonds', @@ -1849,7 +1811,6 @@ export default { }, }, - // SELECT PHOTO = photo-selector.pug photo_selector: { labels: { image: 'Afbeelding', @@ -1859,7 +1820,6 @@ export default { }, }, - // PRE VALIDATED TABLE = prevalidated_table.pug prevalidated_table: { header: { title: 'Klaarzetten', @@ -1892,13 +1852,9 @@ export default { }, }, - // PROGRESS BAR = progress-bar.pug // No translations needed - // SCHEDULE CONTROL = schedule-controle.pug // No translations needed - // PAGINATOR LOADER = paginator-loader.pug - paginator_loader: { buttons: { load: 'Laad meer activatie codes', @@ -1919,7 +1875,6 @@ export default { }, }, - // MENU = langing/navbar.pug topnavbar: { items: { funds: 'Fondsen', @@ -1937,7 +1892,6 @@ export default { funds: 'Fondsen', }, }, - // AUTHENTICATION POPUP = popup-auth.pug popup_auth: { header: { title: 'Inloggen op het dashboard', diff --git a/react/src/webshop/i18n/nl/directives/fund-criterion.mjs b/react/src/webshop/i18n/nl/directives/fund-criterion.mjs index b7c7f83a3..dfa548d11 100644 --- a/react/src/webshop/i18n/nl/directives/fund-criterion.mjs +++ b/react/src/webshop/i18n/nl/directives/fund-criterion.mjs @@ -1,5 +1,4 @@ export default { - // CRITERIA FOR FUNDS = fund-criterion.pug labels: { general: { location: 'Groningen', diff --git a/react/src/webshop/i18n/nl/directives/google-map.mjs b/react/src/webshop/i18n/nl/directives/google-map.mjs index 7cc643a3c..6be613475 100644 --- a/react/src/webshop/i18n/nl/directives/google-map.mjs +++ b/react/src/webshop/i18n/nl/directives/google-map.mjs @@ -1,5 +1,4 @@ export default { - // GOOGLE MAPS = google-map.pug cancel: 'Annuleren', no_data: 'Geen data', diff --git a/react/src/webshop/i18n/nl/modals/modal-auth.mjs b/react/src/webshop/i18n/nl/modals/modal-auth.mjs index a84c01888..8d3c501c8 100644 --- a/react/src/webshop/i18n/nl/modals/modal-auth.mjs +++ b/react/src/webshop/i18n/nl/modals/modal-auth.mjs @@ -1,5 +1,4 @@ export default { - // AUTHENTICATION POPUP = popup-auth.pug header: { title: 'E-mail verstuurd', title_sr: 'Start aanmelden', diff --git a/react/src/webshop/i18n/nl/pages/error-page.mjs b/react/src/webshop/i18n/nl/pages/error-page.mjs index 84124b9de..0d819fb1c 100644 --- a/react/src/webshop/i18n/nl/pages/error-page.mjs +++ b/react/src/webshop/i18n/nl/pages/error-page.mjs @@ -1,5 +1,4 @@ export default { - // error-page.pug 404: { title: 'Pagina niet gevonden', button: 'Terug naar home', diff --git a/react/src/webshop/i18n/nl/pages/fund-activate.mjs b/react/src/webshop/i18n/nl/pages/fund-activate.mjs index e62f06397..d3050154e 100644 --- a/react/src/webshop/i18n/nl/pages/fund-activate.mjs +++ b/react/src/webshop/i18n/nl/pages/fund-activate.mjs @@ -1,5 +1,4 @@ export default { - // PAGE = fund-activate.pug header: { title: 'Bevestig uw inkomen', vergoedingen: { diff --git a/react/src/webshop/i18n/nl/pages/fund-request-clarification.mjs b/react/src/webshop/i18n/nl/pages/fund-request-clarification.mjs index 61bdce21d..a6085a052 100644 --- a/react/src/webshop/i18n/nl/pages/fund-request-clarification.mjs +++ b/react/src/webshop/i18n/nl/pages/fund-request-clarification.mjs @@ -1,5 +1,4 @@ export default { - // FUND REQUEST VALIDATION CLARIFICATION = fund-request-clarification.pug block_title: '{{ fund_name }} aanvulverzoek', labels: { question: 'Vraag', diff --git a/react/src/webshop/i18n/nl/pages/fund-request.mjs b/react/src/webshop/i18n/nl/pages/fund-request.mjs index f3eca749b..512d8fb17 100644 --- a/react/src/webshop/i18n/nl/pages/fund-request.mjs +++ b/react/src/webshop/i18n/nl/pages/fund-request.mjs @@ -87,7 +87,6 @@ export default { send: 'Verzenden', }, - // VALIDATION REQUEST FOR FUNDS = fund_request.pug approved_request_exists: 'Er bestaat al een goedgekeurde aanvraag. Neem contact op met de beheerder.', fund_not_active: 'Het fonds waar u voor zich probeert aan te melden is niet actief.', bsn_record_is_mandatory: 'Een BSN is verplicht voor het doen van een aanvraag.', diff --git a/react/src/webshop/i18n/nl/pages/fund.mjs b/react/src/webshop/i18n/nl/pages/fund.mjs index dfd21f2ea..a1fcc4612 100644 --- a/react/src/webshop/i18n/nl/pages/fund.mjs +++ b/react/src/webshop/i18n/nl/pages/fund.mjs @@ -1,5 +1,4 @@ export default { - // APPLY FOR FUNDS = fund-apply.pug header: { title: '{{fund_name}} aanmelden', criteria: 'Voorwaarden ({{ nth }})', diff --git a/react/src/webshop/i18n/nl/pages/funds.mjs b/react/src/webshop/i18n/nl/pages/funds.mjs index a95c613ce..6a39b3f35 100644 --- a/react/src/webshop/i18n/nl/pages/funds.mjs +++ b/react/src/webshop/i18n/nl/pages/funds.mjs @@ -1,5 +1,4 @@ export default { - // FUNDS = funds.pug header: { title: 'Aanvragen', subtitle: '', diff --git a/react/src/webshop/i18n/nl/pages/home.mjs b/react/src/webshop/i18n/nl/pages/home.mjs index 89316f4ec..eb9981061 100644 --- a/react/src/webshop/i18n/nl/pages/home.mjs +++ b/react/src/webshop/i18n/nl/pages/home.mjs @@ -1,5 +1,4 @@ export default { - // HOME = home.pug header: { title: '{{implementation}}', subtitle: diff --git a/react/src/webshop/i18n/nl/pages/record-validations.mjs b/react/src/webshop/i18n/nl/pages/record-validations.mjs index 42039dd27..4348e064a 100644 --- a/react/src/webshop/i18n/nl/pages/record-validations.mjs +++ b/react/src/webshop/i18n/nl/pages/record-validations.mjs @@ -1,5 +1,4 @@ export default { - // VALIDATIONS OF THE RECORDS = record-validations.pug header: { title: 'Mijn persoonsgegevens', }, diff --git a/react/src/webshop/i18n/nl/pages/records-create.mjs b/react/src/webshop/i18n/nl/pages/records-create.mjs index 404af9496..2d22647ac 100644 --- a/react/src/webshop/i18n/nl/pages/records-create.mjs +++ b/react/src/webshop/i18n/nl/pages/records-create.mjs @@ -1,5 +1,4 @@ export default { - // CREATE A RECORD = record.create.pug header: { title: 'Persoonsgegevens aanmaken', }, diff --git a/react/src/webshop/i18n/nl/pages/records-validate.mjs b/react/src/webshop/i18n/nl/pages/records-validate.mjs index 60f631f4f..42d8d05f1 100644 --- a/react/src/webshop/i18n/nl/pages/records-validate.mjs +++ b/react/src/webshop/i18n/nl/pages/records-validate.mjs @@ -1,5 +1,4 @@ export default { - // VALIDATE A RECORD = record-validate.pug header: { title: 'Mijn persoonsgegevens', }, diff --git a/react/src/webshop/i18n/nl/pages/records.mjs b/react/src/webshop/i18n/nl/pages/records.mjs index ceb3694c7..53f77015d 100644 --- a/react/src/webshop/i18n/nl/pages/records.mjs +++ b/react/src/webshop/i18n/nl/pages/records.mjs @@ -1,5 +1,4 @@ export default { - // RECORDS = records.pug header: { title: 'Persoonsgegevens', }, diff --git a/react/src/webshop/i18n/nl/pages/signup.mjs b/react/src/webshop/i18n/nl/pages/signup.mjs index 69be0429f..d0d84b295 100644 --- a/react/src/webshop/i18n/nl/pages/signup.mjs +++ b/react/src/webshop/i18n/nl/pages/signup.mjs @@ -1,5 +1,4 @@ export default { - // SIGNUP = sign-up.pug items: { title: 'Inloggen', page_title: 'Inloggen{{pageTitleSuffix}}', From dafbf28fc99fa2901ef5c150165ea3733d478a96 Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Mon, 5 Jan 2026 15:32:31 +0200 Subject: [PATCH 09/18] fix missing marketplace icon for budget funds --- .../assets/img/features/icons/product_funds.svg | 1 + .../forus-platform/scss/_common/includes/helpers.scss | 2 +- .../src/dashboard/components/pages/feature/Feature.tsx | 2 +- react/src/dashboard/services/FeaturesService.ts | 10 +++++----- 4 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 react/assets/forus-platform/resources/_platform-common/assets/img/features/icons/product_funds.svg diff --git a/react/assets/forus-platform/resources/_platform-common/assets/img/features/icons/product_funds.svg b/react/assets/forus-platform/resources/_platform-common/assets/img/features/icons/product_funds.svg new file mode 100644 index 000000000..4cd8891b4 --- /dev/null +++ b/react/assets/forus-platform/resources/_platform-common/assets/img/features/icons/product_funds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react/assets/forus-platform/scss/_common/includes/helpers.scss b/react/assets/forus-platform/scss/_common/includes/helpers.scss index 26f625921..389dcabc1 100644 --- a/react/assets/forus-platform/scss/_common/includes/helpers.scss +++ b/react/assets/forus-platform/scss/_common/includes/helpers.scss @@ -209,5 +209,5 @@ } @function assetUrl($url) { - @return if(variable-exists(buildReact), url('./assets/' + $url), url('../' + $url)); + @return url('./assets/' + $url); } diff --git a/react/src/dashboard/components/pages/feature/Feature.tsx b/react/src/dashboard/components/pages/feature/Feature.tsx index 3735f6e79..d08b09e6c 100644 --- a/react/src/dashboard/components/pages/feature/Feature.tsx +++ b/react/src/dashboard/components/pages/feature/Feature.tsx @@ -248,7 +248,7 @@ export default function Feature() { /> )} - {feature.key === 'subsidy_funds' && ( + {feature.key === 'product_funds' && ( , item: string) => { From 5329f41bab8b54a2ca2605b5e73bf41c02720a84 Mon Sep 17 00:00:00 2001 From: Yaroslav Kosterin Date: Tue, 6 Jan 2026 15:49:24 +0200 Subject: [PATCH 10/18] add prevalidation request csv upload --- .../PrevalidationRequestStateLabels.tsx | 23 + .../ModalPrevalidationRequestsUpload.tsx | 633 ++++++++++++++++++ .../PrevalidationRequests.tsx | 443 ++++++++++++ react/src/dashboard/i18n/nl/i18n-pages.js | 2 + .../i18n/nl/pages/prevalidation-requests.js | 38 ++ .../elements/aside/LayoutAsideSponsor.tsx | 14 + .../modules/state_router/RouterBuilder.tsx | 1 + react/src/dashboard/props/models/Fund.tsx | 2 + .../dashboard/props/models/Organization.tsx | 1 + .../props/models/PrevalidationRequest.tsx | 18 + react/src/dashboard/router/routes.tsx | 6 + react/src/dashboard/services/FundService.ts | 6 + .../services/PrevalidationRequestService.ts | 66 ++ 13 files changed, 1253 insertions(+) create mode 100644 react/src/dashboard/components/elements/resource-states/PrevalidationRequestStateLabels.tsx create mode 100644 react/src/dashboard/components/modals/ModalPrevalidationRequestsUpload.tsx create mode 100644 react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx create mode 100644 react/src/dashboard/i18n/nl/pages/prevalidation-requests.js create mode 100644 react/src/dashboard/props/models/PrevalidationRequest.tsx create mode 100644 react/src/dashboard/services/PrevalidationRequestService.ts diff --git a/react/src/dashboard/components/elements/resource-states/PrevalidationRequestStateLabels.tsx b/react/src/dashboard/components/elements/resource-states/PrevalidationRequestStateLabels.tsx new file mode 100644 index 000000000..60fd751d8 --- /dev/null +++ b/react/src/dashboard/components/elements/resource-states/PrevalidationRequestStateLabels.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import TableEmptyValue from '../table-empty-value/TableEmptyValue'; +import useTranslate from '../../../hooks/useTranslate'; +import Label from '../image_cropper/Label'; +import PrevalidationRequest from '../../../props/models/PrevalidationRequest'; + +export default function PrevalidationRequestStateLabels({ request }: { request: PrevalidationRequest }) { + const translate = useTranslate(); + + if (request.state === 'success') { + return ; + } + + if (request.state === 'pending') { + return ; + } + + if (request.state === 'fail') { + return ; + } + + return ; +} diff --git a/react/src/dashboard/components/modals/ModalPrevalidationRequestsUpload.tsx b/react/src/dashboard/components/modals/ModalPrevalidationRequestsUpload.tsx new file mode 100644 index 000000000..c8620a02d --- /dev/null +++ b/react/src/dashboard/components/modals/ModalPrevalidationRequestsUpload.tsx @@ -0,0 +1,633 @@ +import React, { Fragment, useCallback, useMemo, useRef, useState } from 'react'; +import { ModalState } from '../../modules/modals/context/ModalContext'; +import Fund from '../../props/models/Fund'; +import { useFileService } from '../../services/FileService'; +import { fileSize } from '../../helpers/string'; +import Papa from 'papaparse'; +import { uniqueId, isEmpty } from 'lodash'; +import usePushSuccess from '../../hooks/usePushSuccess'; +import usePushDanger from '../../hooks/usePushDanger'; +import { ResponseError } from '../../props/ApiResponses'; +import ModalDuplicatesPicker from './ModalDuplicatesPicker'; +import useOpenModal from '../../hooks/useOpenModal'; +import CSVProgressBar from '../elements/csv-progress-bar/CSVProgressBar'; +import useTranslate from '../../hooks/useTranslate'; +import classNames from 'classnames'; +import { fileToText } from '../../helpers/utils'; +import { useFundService } from '../../services/FundService'; +import usePushApiError from '../../hooks/usePushApiError'; +import FormGroupInfo from '../elements/forms/elements/FormGroupInfo'; +import TranslateHtml from '../elements/translate-html/TranslateHtml'; +import SelectControl from '../elements/select-control/SelectControl'; +import SelectControlOptionsFund from '../elements/select-control/templates/SelectControlOptionsFund'; +import { usePrevalidationRequestService } from '../../services/PrevalidationRequestService'; +import { ProfileRecordType } from '../../props/models/Sponsor/SponsorIdentity'; +import RecordType from '../../props/models/RecordType'; + +type CSVErrorProp = { + emptyHeader?: string | string[]; + emptyBody?: string | string[]; + invalidRecordTypes?: string | string[]; + missingRecordTypes?: string | string[]; + missingBsn?: string | string[]; + invalidRows?: string | string[]; +}; + +type CSVWarningProp = { + optionalRecordTypes?: string | string[]; +}; + +type RowDataPropData = { [key: string]: string }; + +enum Steps { + select_fund, + upload_csv, +} + +enum CSVProgress { + initial, + validated, + uploading, + uploaded, +} + +export default function ModalPrevalidationRequestsUpload({ + funds, + fundId, + modal, + className, + recordTypes, + onCompleted, +}: { + funds: Array; + fundId: number; + modal: ModalState; + className?: string; + recordTypes?: Array; + onCompleted: () => void; +}) { + const translate = useTranslate(); + const openModal = useOpenModal(); + const pushDanger = usePushDanger(); + const pushSuccess = usePushSuccess(); + const pushApiError = usePushApiError(); + + const fileService = useFileService(); + const fundService = useFundService(); + const prevalidationRequestService = usePrevalidationRequestService(); + + const [fund, setFund] = useState(funds?.find((fund) => fund.id == fundId) || funds[0]); + const [step, setStep] = useState(Steps.select_fund); + const [data, setData] = useState>(null); + const [changed, setChanged] = useState(false); + const [csvFile, setCsvFile] = useState(null); + const [hideModal, setHideModal] = useState(false); + const [isDragOver, setIsDragOver] = useState(false); + const [dataChunkSize] = useState(50); + const [progressBar, setProgressBar] = useState(null); + + const [csvErrors, setCsvErrors] = useState({}); + const [csvWarnings, setCsvWarnings] = useState({}); + const [csvIsValid, setCsvIsValid] = useState(false); + const [csvProgress, setCsvProgress] = useState(CSVProgress.initial); + + const [progressStatus, setProgressStatus] = useState(''); + const [acceptedFiles] = useState(['.csv']); + + const abortRef = useRef(false); + const inputRef = useRef(null); + + const criteriaRecordTypeKeys = useMemo(() => { + return recordTypes?.filter((recordType) => recordType.criteria)?.map((recordType) => recordType.key); + }, [recordTypes]); + + const fundRecordKey = useMemo(() => { + return fund.csv_required_keys_except_prefill.filter((key) => key.endsWith('_eligible'))?.[0]; + }, [fund.csv_required_keys_except_prefill]); + + const fundRecordKeyValue = useMemo(() => { + return fund.criteria?.filter((criteria) => { + return criteria.record_type_key == fundRecordKey && criteria.operator == '='; + })[0]?.value; + }, [fund.criteria, fundRecordKey]); + + const closeModal = useCallback(() => { + if (changed) { + onCompleted(); + } + + modal.close(); + }, [changed, modal, onCompleted]); + + const downloadExampleCsv = useCallback(() => { + fileService.downloadFile( + (fund.key || 'fund') + '_sample.csv', + fundService.sampleCSVForPrevalidationRequest(fund), + ); + }, [fileService, fund, fundService]); + + const reset = useCallback((abortRefValue = true) => { + abortRef.current = abortRefValue; + + setHideModal(false); + setCsvFile(null); + setCsvErrors({}); + setCsvIsValid(false); + setCsvProgress(CSVProgress.initial); + }, []); + + const filterSelectedFiles = useCallback( + (files: FileList) => { + return [...files].filter((file) => { + return acceptedFiles.includes('.' + file.name.split('.')[file.name.split('.').length - 1]); + }); + }, + [acceptedFiles], + ); + + const showInvalidRows = useCallback( + (errors = {}, rows = [], rowIndex = 0) => { + const items = Object.keys(errors) + .map(function (key) { + const keyData = key.split('.'); + const keyDataId = keyData[1]; + const fieldKey = keyData[2]; + const index = parseInt(keyDataId, 10) + 1 + rowIndex; + + return [index, errors[key], fieldKey]; + }) + .sort((a, b) => a[0] - b[0]); + + const uniqueRows = items.reduce((arr, item) => { + return arr.includes(item[0]) ? arr : [...arr, item[0]]; + }, []); + + const message = [ + `${uniqueRows.length} van ${rows.length}`, + `rij(en) uit het bulkbestand zijn niet geimporteerd,`, + `bekijk het bestand bij welke rij(en) het mis gaat.`, + ].join(' '); + + pushDanger('Waarschuwing', message); + + setHideModal(true); + + openModal((modal) => ( + ({ + value: `Rij: ${item[0]}: ${item[2]} - ${item[1]}`, + _uid: uniqueId('rand_'), + label: item?.[fund.csv_primary_key], + }))} + onConfirm={() => { + reset(); + }} + onCancel={() => { + reset(); + }} + /> + )); + }, + [fund?.csv_primary_key, openModal, pushDanger, reset], + ); + + const parseCsvFile = useCallback( + async (file: File): Promise>> => { + return await new Promise(function (complete) { + try { + Papa.parse(file, { complete }); + } catch (e) { + pushDanger(e); + complete(null); + } + }); + }, + [pushDanger], + ); + + const uploadFile = useCallback( + async (file?: File) => { + const results = await parseCsvFile(file); + + if (!results) { + return reset(); + } + + results.data = results.data.filter((item) => !!item); + + const data = (results.data = results.data.filter((item) => !!item)); + const header = data.length > 0 ? data[0] : []; + + const body = (data.length > 0 ? data.slice(1) : []).filter((row) => { + return Array.isArray(row) && row.filter((item) => !!item).length > 0; + }); + + const csvErrors: CSVErrorProp = {}; + const csvWarnings: CSVWarningProp = {}; + + if (header.length == 0) { + csvErrors.emptyHeader = 'Het .csv bestand is leeg, controleer het bestand'; + } + + if (header.filter((item) => item === 'bsn').length == 0) { + csvErrors.missingBsn = 'In het .csv bestand ontbreken persoonsgegevens: BSN'; + } + + if (body.length == 0) { + csvErrors.emptyBody = 'Het .csv bestand heeft kolomnamen maar geen inhoud, controleer de inhoud.'; + } + + // append eligibility key + if (fund && fundRecordKey && fundRecordKeyValue && header.indexOf(fundRecordKey) === -1) { + header.unshift(fundRecordKey); + body.forEach((row) => row.unshift(fundRecordKeyValue)); + } + + const invalidRecordTypes = header.filter((recordTypeKey: ProfileRecordType & 'bsn') => { + return recordTypeKey !== 'bsn' && criteriaRecordTypeKeys.indexOf(recordTypeKey) == -1; + }); + + const missingRecordTypes = fund.csv_required_keys_except_prefill.filter((recordTypeKey: string) => { + return header.indexOf(recordTypeKey) == -1; + }); + + const optionalRecordTypes = header.filter((recordTypeKey) => { + return ( + recordTypeKey !== 'bsn' && + fund.csv_required_keys_except_prefill.indexOf(recordTypeKey) == -1 && + fund.csv_required_keys_by_groups.indexOf(recordTypeKey) == -1 + ); + }); + + if (invalidRecordTypes.length > 0) { + csvErrors.invalidRecordTypes = `Het .csv bestand heeft de volgende ongeldige persoonsgegevens: '${invalidRecordTypes.join( + "', '", + )}'`; + } + + if (missingRecordTypes.length > 0) { + csvErrors.missingRecordTypes = `In het .csv bestand ontbreken persoonsgegevens die verplicht zijn voor dit fonds '${ + fund.name + }': '${missingRecordTypes.join("', '")}'`; + } + + if (optionalRecordTypes.length > 0) { + csvWarnings.optionalRecordTypes = [ + `In het .csv bestand zijn persoonsgegevens toegevoegd die optioneel zijn voor "${fund.name}" fonds. `, + 'Controleer of deze persoonsgegevens echt nodig zijn voor de toekenning. ', + `De volgende persoonsgegevens zijn optioneel: "${optionalRecordTypes.join("', '")}".`, + ]; + } + + const parsedData = body.reduce(function (result, val) { + const row = {}; + + header.forEach((hVal, hKey) => { + if (val[hKey] && val[hKey] != '') { + row[hVal] = val[hKey]; + } + }); + + return isEmpty(row) ? result : [...result, row]; + }, []) as RowDataPropData[]; + + setCsvFile(file); + + setCsvErrors(csvErrors); + setCsvWarnings(csvWarnings); + + setData(parsedData); + setCsvIsValid(Object.keys(csvErrors).length === 0); + setCsvProgress(CSVProgress.validated); + }, + [criteriaRecordTypeKeys, fund, fundRecordKey, fundRecordKeyValue, parseCsvFile, reset], + ); + + const updateProgressBarValue = useCallback((progress: number) => { + setProgressBar(progress); + setProgressStatus(progress < 100 ? 'Aan het uploaden...' : 'Klaar!'); + }, []); + + const chunkList = useCallback((arr: Array, len: number) => { + const chunks = []; + const n = arr.length; + + let i = 0; + + while (i < n) { + chunks.push(arr.slice(i, (i += len))); + } + + return chunks; + }, []); + + const startUploadingToServer = useCallback(() => { + return new Promise((resolve, reject) => { + setCsvProgress(CSVProgress.uploading); + + const submitData = chunkList(JSON.parse(JSON.stringify(data)), dataChunkSize); + const chunksCount = submitData.length; + + let currentChunkNth = 0; + + updateProgressBarValue(0); + + const uploadChunk = async function (data: Array<{ [key: string]: string }>) { + prevalidationRequestService + .storeBatch(fund.organization_id, data, fund.id, { + name: csvFile.name, + content: await fileToText(csvFile), + total: data.length, + chunk: currentChunkNth, + chunks: chunksCount, + chunkSize: dataChunkSize, + }) + .then(() => { + setChanged(true); + + currentChunkNth++; + updateProgressBarValue((currentChunkNth / chunksCount) * 100); + + if (currentChunkNth == chunksCount) { + setTimeout(() => { + setProgressBar(100); + setCsvProgress(CSVProgress.uploaded); + onCompleted?.(); + resolve(null); + }, 0); + } else { + if (abortRef.current) { + return (abortRef.current = false); + } + + uploadChunk(submitData[currentChunkNth]); + } + }) + .catch((err: ResponseError) => { + if (err.status == 422 && err.data.errors) { + showInvalidRows(err.data.errors, data, currentChunkNth * 100); + + return err.data?.errors?.data + ? pushDanger(err.data.errors.data[0]) + : pushDanger('Onbekende error.'); + } + + pushApiError(err, 'Onbekende error.'); + reject(); + }); + }; + + uploadChunk(submitData[currentChunkNth]).then(); + }); + }, [ + chunkList, + data, + dataChunkSize, + updateProgressBarValue, + prevalidationRequestService, + fund.organization_id, + fund.id, + csvFile, + onCompleted, + pushApiError, + showInvalidRows, + pushDanger, + ]); + + const onConfirmUpload = useCallback(() => { + pushSuccess('Inladen...', 'Inladen van gegevens voor controle op dubbele waarden!', { + icon: 'download-outline', + }); + + startUploadingToServer().then(); + }, [pushSuccess, startUploadingToServer]); + + const onDragEvent = useCallback((e: React.DragEvent, isDragOver: boolean) => { + e?.preventDefault(); + e?.stopPropagation(); + + setIsDragOver(isDragOver); + }, []); + + return ( +
+
+
+ +
Upload CSV-bestand
+
+ {step == Steps.select_fund && ( +
+
+
{translate('modals.modal_voucher_create.labels.fund')}
+ + }> + { + setFund(funds.find((fund) => fund.id === fund_id)); + }} + options={funds} + allowSearch={false} + optionsComponent={SelectControlOptionsFund} + /> + +
+
+ )} + + {step == Steps.upload_csv && ( +
onDragEvent(e, true)} + onDragEnter={(e) => onDragEvent(e, true)} + onDragLeave={(e) => onDragEvent(e, false)} + onDragEnd={(e) => onDragEvent(e, false)} + onDrop={(e) => { + onDragEvent(e, false); + uploadFile(filterSelectedFiles(e.dataTransfer.files)?.[0]).then(); + }}> +
+ { + uploadFile(filterSelectedFiles(e.target.files)?.[0]).then(); + e.target.value = null; + }} + /> + + {csvProgress <= CSVProgress.validated && ( +
inputRef.current.click()}> +
+
+
+
+ {translate('csv_upload.labels.upload')} +
+ {translate('csv_upload.labels.swipe')} +
+
+ )} + +
+ {csvProgress <= CSVProgress.validated && ( + + )} + {csvProgress <= CSVProgress.validated && ( + + )} +
+ + {csvProgress >= CSVProgress.uploading && ( +
+
+ {csvProgress == CSVProgress.uploading && ( +
+ )} + {csvProgress == CSVProgress.uploaded && ( +
+ )} +
+ +
+ )} + + {csvFile && csvProgress < CSVProgress.uploading && ( +
+
+
+
+ {csvIsValid ? ( +
+ ) : ( +
+ )} +
+
+
{csvFile.name}
+
{fileSize(csvFile.size)}
+
+
reset(false)} + /> +
+
+ + {Object.keys(csvErrors).length === 0 && Object.keys(csvWarnings).length > 0 && ( +
+ {Object.keys(csvWarnings).map((key) => ( +
{csvWarnings[key]}
+ ))} +
+ )} + + {Object.keys(csvErrors).length > 0 && ( +
+ {Object.keys(csvErrors).map((key) => ( +
{csvErrors[key]}
+ ))} +
+ )} +
+ )} +
+
+ )} +
+ +
+ {csvProgress < CSVProgress.uploading && ( + + )} + +
+ +
+ {/* Cancel button */} + + + {/* Confirm selected fund button */} + {step == Steps.select_fund && ( + + )} + + {/* Upload selected CSV or cancel button */} + {step == Steps.upload_csv && ( + + {csvProgress} + {csvProgress != CSVProgress.validated} + {csvIsValid} + {csvProgress < CSVProgress.uploaded ? ( + + ) : ( + + )} + + )} +
+
+
+
+ ); +} diff --git a/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx b/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx new file mode 100644 index 000000000..872cffa70 --- /dev/null +++ b/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx @@ -0,0 +1,443 @@ +import React, { useState, useCallback, useEffect } from 'react'; +import { useFundService } from '../../../services/FundService'; +import Fund from '../../../props/models/Fund'; +import useTranslate from '../../../hooks/useTranslate'; +import LoadingCard from '../../elements/loading-card/LoadingCard'; +import { hasPermission } from '../../../helpers/utils'; +import useSetProgress from '../../../hooks/useSetProgress'; +import SelectControl from '../../elements/select-control/SelectControl'; +import SelectControlOptionsFund from '../../elements/select-control/templates/SelectControlOptionsFund'; +import useActiveOrganization from '../../../hooks/useActiveOrganization'; +import useOpenModal from '../../../hooks/useOpenModal'; +import usePaginatorService from '../../../modules/paginator/services/usePaginatorService'; +import { PaginationData } from '../../../props/ApiResponses'; +import PrevalidationRequest from '../../../props/models/PrevalidationRequest'; +import useConfigurableTable from '../vouchers/hooks/useConfigurableTable'; +import useFilterNext from '../../../modules/filter_next/useFilterNext'; +import ClickOutside from '../../elements/click-outside/ClickOutside'; +import FilterItemToggle from '../../elements/tables/elements/FilterItemToggle'; +import DatePickerControl from '../../elements/forms/controls/DatePickerControl'; +import { dateFormat, dateParse } from '../../../helpers/dates'; +import LoaderTableCard from '../../elements/loader-table-card/LoaderTableCard'; +import TableTopScroller from '../../elements/tables/TableTopScroller'; +import { strLimit } from '../../../helpers/string'; +import TableEmptyValue from '../../elements/table-empty-value/TableEmptyValue'; +import Paginator from '../../../modules/paginator/components/Paginator'; +import { createEnumParam, NumberParam, StringParam } from 'use-query-params'; +import EmptyCard from '../../elements/empty-card/EmptyCard'; +import { Permission } from '../../../props/models/Organization'; +import { usePrevalidationRequestService } from '../../../services/PrevalidationRequestService'; +import ModalPrevalidationRequestsUpload from '../../modals/ModalPrevalidationRequestsUpload'; +import RecordType from '../../../props/models/RecordType'; +import { useRecordTypeService } from '../../../services/RecordTypeService'; +import PrevalidationRequestStateLabels from '../../elements/resource-states/PrevalidationRequestStateLabels'; +import TableRowActions from '../../elements/tables/TableRowActions'; +import usePushSuccess from '../../../hooks/usePushSuccess'; +import usePushApiError from '../../../hooks/usePushApiError'; +import { DashboardRoutes } from '../../../modules/state_router/RouterBuilder'; +import { useNavigateState } from '../../../modules/state_router/Router'; + +export default function PrevalidationRequests() { + const translate = useTranslate(); + const openModal = useOpenModal(); + const setProgress = useSetProgress(); + const pushApiError = usePushApiError(); + const pushSuccess = usePushSuccess(); + const navigateState = useNavigateState(); + const activeOrganization = useActiveOrganization(); + + const fundService = useFundService(); + const paginatorService = usePaginatorService(); + const recordTypeService = useRecordTypeService(); + const prevalidationRequestService = usePrevalidationRequestService(); + + const [funds, setFunds] = useState>([]); + const [paginatorKey] = useState('prevalidation_requests'); + + const [recordTypes, setRecordTypes] = useState>(null); + const [prevalidationRequests, setPrevalidationRequests] = useState< + PaginationData & { meta: { failed_count?: number } } + >(null); + + const [states] = useState([ + { key: null, name: 'Alle' }, + { key: 'pending', name: 'Pending' }, + { key: 'success', name: 'Success' }, + { key: 'fail', name: 'Fail' }, + ]); + + const [filterValues, filterValuesActive, filterUpdate, filter] = useFilterNext<{ + q?: string; + to?: string; + from?: string; + state?: string; + fund_id?: number; + page?: number; + per_page?: number; + }>( + { + q: '', + fund_id: null, + state: null, + from: null, + to: null, + page: 1, + per_page: paginatorService.getPerPage(paginatorKey, 10), + }, + { + queryParams: { + q: StringParam, + fund_id: NumberParam, + state: createEnumParam(['pending', 'success', 'fail']), + from: StringParam, + to: StringParam, + per_page: NumberParam, + page: NumberParam, + }, + }, + ); + + const { headElement, configsElement } = useConfigurableTable(prevalidationRequestService.getColumns()); + + const fetchPrevalidationRequests = useCallback(() => { + if (activeOrganization?.allow_prevalidation_requests) { + setProgress(0); + + prevalidationRequestService + .list(activeOrganization.id, { ...filterValuesActive }) + .then((res) => setPrevalidationRequests(res.data)) + .finally(() => setProgress(100)); + } + }, [ + activeOrganization?.allow_prevalidation_requests, + activeOrganization.id, + setProgress, + prevalidationRequestService, + filterValuesActive, + ]); + + const fetchFunds = useCallback(() => { + setProgress(0); + + fundService + .list(activeOrganization?.id, { state: 'active_paused_and_closed', per_page: 100 }) + .then((res) => { + setFunds(res.data.data.filter((fund) => hasPermission(fund.organization, Permission.VALIDATE_RECORDS))); + }) + .finally(() => setProgress(100)); + }, [setProgress, fundService, activeOrganization?.id]); + + const uploadPrevalidationRequests = useCallback( + (funds: Array, fundId: number, onCreate?: () => void) => { + openModal((modal) => ( + + )); + }, + [openModal, recordTypes], + ); + + const resubmitRequest = useCallback( + (request: PrevalidationRequest) => { + prevalidationRequestService + .resubmit(activeOrganization?.id, request.id) + .then(() => { + pushSuccess('Gelukt!', 'Request resubmitted.'); + fetchPrevalidationRequests(); + }) + .catch(pushApiError); + }, + [activeOrganization?.id, fetchPrevalidationRequests, prevalidationRequestService, pushApiError, pushSuccess], + ); + + const resubmitFailedRequest = useCallback(() => { + prevalidationRequestService + .resubmitFailed(activeOrganization?.id) + .then(() => { + pushSuccess('Gelukt!', 'Request resubmitted.'); + fetchPrevalidationRequests(); + }) + .catch(pushApiError); + }, [activeOrganization?.id, fetchPrevalidationRequests, prevalidationRequestService, pushApiError, pushSuccess]); + + const deleteRequest = useCallback( + (request: PrevalidationRequest) => { + prevalidationRequestService + .destroy(activeOrganization?.id, request.id) + .then(() => { + pushSuccess('Gelukt!', 'Request deleted.'); + fetchPrevalidationRequests(); + }) + .catch(pushApiError); + }, + [activeOrganization?.id, fetchPrevalidationRequests, prevalidationRequestService, pushApiError, pushSuccess], + ); + + const fetchRecordTypes = useCallback(() => { + setProgress(0); + + recordTypeService + .list() + .then((res) => setRecordTypes(res.data)) + .finally(() => setProgress(100)); + }, [recordTypeService, setProgress]); + + useEffect(() => { + fetchRecordTypes(); + }, [fetchRecordTypes]); + + useEffect(() => { + fetchPrevalidationRequests(); + }, [fetchPrevalidationRequests]); + + useEffect(() => { + fetchFunds(); + }, [fetchFunds]); + + useEffect(() => { + if (!activeOrganization?.allow_prevalidation_requests) { + navigateState(DashboardRoutes.ORGANIZATIONS); + } + }, [activeOrganization?.allow_prevalidation_requests, navigateState]); + + if (funds?.length === 0) { + return ; + } + + if (!prevalidationRequests) { + return ; + } + + return ( +
+
+
+ {translate('prevalidation_requests.header.title')} ({prevalidationRequests?.meta?.total}) +
+
+
+ {prevalidationRequests.meta.failed_count > 0 && ( + + )} + + + +
+ filter.update({ fund_id })} + optionsComponent={SelectControlOptionsFund} + dusk="prevalidationsSelectFund" + /> +
+ + {filter.show && ( +
filter.resetFilters()}> + + Wis filters +
+ )} + + {!filter.show && ( +
+
+ filter.update({ q: e.target.value })} + /> +
+
+ )} + +
+ filter.setShow(false)}> + {filter.show && ( +
+
+ +
+ +
+ + filter.update({ q: e.target.value })} + /> + + + + filter.update({ state })} + /> + + + + filter.update({ from: dateFormat(from) })} + /> + + + + filter.update({ to: dateFormat(to) })} + /> + +
+
+ )} + + +
+
+
+
+
+ + +
+
+ {configsElement} + + + + {headElement} + + + {prevalidationRequests.data.map((row) => ( + + + + + + + + + + + ))} + +
{row.bsn} +
+ {row.fund ? strLimit(row.fund?.name, 32) : } +
+ +
+ {row.fund ? ( + strLimit(row.fund?.implementation?.name, 32) + ) : ( + + )} +
+
+ {row.employee?.email || 'Unknown'} + + + + {row.state === 'fail' && row.failed_reason + ? row.failed_reason_locale + : ''} + + {row.state === 'fail' ? ( + ( +
+
{ + resubmitRequest(row); + close(); + }}> + {' '} + {translate( + 'prevalidation_requests.buttons.resubmit', + )} +
+
{ + deleteRequest(row); + close(); + }}> + {' '} + {translate('prevalidation_requests.buttons.delete')} +
+
+ )} + /> + ) : ( + + )} +
+
+
+
+ + {prevalidationRequests?.meta.total > 0 && ( +
+ +
+ )} +
+
+ ); +} diff --git a/react/src/dashboard/i18n/nl/i18n-pages.js b/react/src/dashboard/i18n/nl/i18n-pages.js index fba76d806..86bb6d537 100644 --- a/react/src/dashboard/i18n/nl/i18n-pages.js +++ b/react/src/dashboard/i18n/nl/i18n-pages.js @@ -39,6 +39,7 @@ import product_funds from './pages/product-funds'; import reimbursement_categories from './pages/reimbursement-categories'; import provider_organization_funds from './pages/provider-organization-funds'; import transaction_bulks from './pages/transaction-bulks'; +import prevalidation_requests from './pages/prevalidation-requests'; export default { vouchers, @@ -82,4 +83,5 @@ export default { reimbursement_categories, provider_organization_funds, transaction_bulks, + prevalidation_requests, }; diff --git a/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js b/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js new file mode 100644 index 000000000..edb279e49 --- /dev/null +++ b/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js @@ -0,0 +1,38 @@ +export default { + header: { + title: 'Requests', + }, + labels: { + bsn: 'BSN', + fund: 'Fonds', + employee: 'Medewerker', + failed_reason: 'Failed reason', + created_at: 'Datum', + search: 'Zoeken', + state: 'Status', + from: 'Van', + to: 'Tot', + }, + buttons: { + upload: 'Upload .csv bestand', + resubmit: 'Resubmit', + delete: 'Delete', + resubmit_failed: 'Resubmit failed', + }, + states: { + pending: 'Pending', + success: 'Success', + fail: 'Fail', + }, + tooltips: { + bsn: 'BSN', + fund: 'Fonds', + employee: 'Medewerker', + state: 'Status', + failed_reason: 'Failed reason', + }, + empty: { + title: 'Geen aanvragers toevoegen', + description: 'U bent geen beoordelaar voor een fonds dat actief is om aanvragers aan toe te voegen.', + }, +}; diff --git a/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx b/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx index ffa69167a..25c79174a 100644 --- a/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx +++ b/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx @@ -77,6 +77,20 @@ export default function LayoutAsideSponsor({ organization }: { organization: Org false, ), }, + { + id: 'prevalidation_requests', + name: 'Prevalidation requests', + state: DashboardRoutes.PREVALIDATION_REQUESTS, + dusk: 'csvPrevalidationRequestsPage', + stateParams: { organizationId: organization?.id }, + show: + organization.allow_prevalidation_requests && + hasPermission( + organization, + [Permission.VALIDATE_RECORDS, Permission.MANAGE_VALIDATORS], + false, + ), + }, { id: 'fund_requests', name: 'Aanvragen', diff --git a/react/src/dashboard/modules/state_router/RouterBuilder.tsx b/react/src/dashboard/modules/state_router/RouterBuilder.tsx index 754bd99b2..f14fc0d7a 100644 --- a/react/src/dashboard/modules/state_router/RouterBuilder.tsx +++ b/react/src/dashboard/modules/state_router/RouterBuilder.tsx @@ -98,6 +98,7 @@ export enum DashboardRoutes { ORGANIZATION_NOTIFICATIONS = 'organization-notifications', FEEDBACK = 'feedback', CSV_VALIDATION = 'csv-validation', + PREVALIDATION_REQUESTS = 'prevalidation-requests', PREFERENCE_EMAILS = 'preferences-emails', PREFERENCE_NOTIFICATIONS = 'preferences-notifications', SECURITY_2FA = 'security-2fa', diff --git a/react/src/dashboard/props/models/Fund.tsx b/react/src/dashboard/props/models/Fund.tsx index 62f4392f4..a8940df90 100644 --- a/react/src/dashboard/props/models/Fund.tsx +++ b/react/src/dashboard/props/models/Fund.tsx @@ -117,6 +117,8 @@ export default interface Fund { faq?: Array; csv_primary_key: string; csv_required_keys: Array; + csv_required_keys_except_prefill: Array; + csv_required_keys_by_groups: Array; formulas?: Array; budget?: FundVoucherStatistics & { used_active_vouchers?: string; diff --git a/react/src/dashboard/props/models/Organization.tsx b/react/src/dashboard/props/models/Organization.tsx index d3969f353..daebcd86f 100644 --- a/react/src/dashboard/props/models/Organization.tsx +++ b/react/src/dashboard/props/models/Organization.tsx @@ -121,6 +121,7 @@ export default interface Organization { allow_profiles_relations?: boolean; allow_profiles_households?: boolean; allow_2fa_restrictions?: boolean; + allow_prevalidation_requests?: boolean; allow_reservation_custom_fields: boolean; auth_2fa_funds_policy: 'optional' | 'required' | 'restrict_features'; auth_2fa_funds_remember_ip: boolean; diff --git a/react/src/dashboard/props/models/PrevalidationRequest.tsx b/react/src/dashboard/props/models/PrevalidationRequest.tsx new file mode 100644 index 000000000..400db8994 --- /dev/null +++ b/react/src/dashboard/props/models/PrevalidationRequest.tsx @@ -0,0 +1,18 @@ +import Fund from './Fund'; + +export default interface PrevalidationRequest { + id: number; + fund_id: number; + state: string; + bsn: string; + identity_address: string; + failed_reason?: string; + failed_reason_locale?: string; + fund?: Fund; + employee: { + id: number; + email?: string; + identity_address: string; + organization_id: number; + }; +} diff --git a/react/src/dashboard/router/routes.tsx b/react/src/dashboard/router/routes.tsx index a540e53be..bb298ce42 100644 --- a/react/src/dashboard/router/routes.tsx +++ b/react/src/dashboard/router/routes.tsx @@ -103,6 +103,7 @@ import ImplementationPreCheck from '../components/pages/implementation-pre-check import ImplementationTranslations from '../components/pages/implementations-edit/ImplementationTranslations'; import ImplementationAnnouncements from '../components/pages/implementations-edit/ImplementationAnnouncements'; import ImplementationTermsAndPrivacy from '../components/pages/implementations-edit/ImplementationTermsAndPrivacy'; +import PrevalidationRequests from '../components/pages/person-prevalidations/PrevalidationRequests'; const router = new RouterBuilder(); @@ -649,6 +650,11 @@ router.state(DashboardRoutes.CSV_VALIDATION, , { altPath: `/organizations/:organizationId/csv-validations`, }); +router.state(DashboardRoutes.PREVALIDATION_REQUESTS, , { + path: `/organisaties/:organizationId/prevalidation-requests`, + altPath: `/organizations/:organizationId/prevalidation-requests`, +}); + router.state(DashboardRoutes.PREFERENCE_EMAILS, , { path: `/voorkeuren/emails`, altPath: `/preferences/emails`, diff --git a/react/src/dashboard/services/FundService.ts b/react/src/dashboard/services/FundService.ts index 926a56eb9..d877de4f5 100644 --- a/react/src/dashboard/services/FundService.ts +++ b/react/src/dashboard/services/FundService.ts @@ -242,6 +242,12 @@ export class FundService { return Papa.unparse([fund.csv_required_keys.filter((key) => !key.endsWith('_eligible'))]); } + public sampleCSVForPrevalidationRequest(fund: Fund): string { + return Papa.unparse([ + ['bsn', ...fund.csv_required_keys_except_prefill.filter((key) => !key.endsWith('_eligible'))], + ]); + } + public topUp(company_id: number, fund_id: number): Promise> { return this.apiRequest.post(`${this.prefix}/${company_id}/funds/${fund_id}/top-up`); } diff --git a/react/src/dashboard/services/PrevalidationRequestService.ts b/react/src/dashboard/services/PrevalidationRequestService.ts new file mode 100644 index 000000000..890080ef3 --- /dev/null +++ b/react/src/dashboard/services/PrevalidationRequestService.ts @@ -0,0 +1,66 @@ +import { useState } from 'react'; +import ApiRequestService from './ApiRequestService'; +import ApiResponse, { ApiResponseSingle } from '../props/ApiResponses'; +import { ConfigurableTableColumn } from '../components/pages/vouchers/hooks/useConfigurableTable'; +import PrevalidationRequest from '../props/models/PrevalidationRequest'; + +export class PrevalidationRequestService { + /** + * @param apiRequest + */ + public constructor(protected apiRequest: ApiRequestService = new ApiRequestService()) {} + + /** + * Url prefix + * + * @param data + */ + public prefix = '/platform/organizations'; + + public list(organization_id: number, filters: object = {}): Promise> { + return this.apiRequest.get(`${this.prefix}/${organization_id}/prevalidation-requests`, filters); + } + + public storeBatch( + organization_id: number, + data: Array<{ [key: string]: string }>, + fund_id: number = null, + file?: object, + ): Promise { + return this.apiRequest.post(`${this.prefix}/${organization_id}/prevalidation-requests/collection`, { + data: data, + fund_id: fund_id, + file, + }); + } + + public resubmitFailed(organization_id: number): Promise> { + return this.apiRequest.get(`${this.prefix}/${organization_id}/prevalidation-requests/resubmit-failed`); + } + + public resubmit(organization_id: number, id: number): Promise> { + return this.apiRequest.get(`${this.prefix}/${organization_id}/prevalidation-requests/${id}/resubmit`); + } + + public destroy(organization_id: number, id: number): Promise> { + return this.apiRequest.delete(`${this.prefix}/${organization_id}/prevalidation-requests/${id}`); + } + + public getColumns(): Array { + const list = ['bsn', 'fund', 'employee', 'state', 'failed_reason'].filter((item) => item); + + return list.map((key) => ({ + key, + label: `prevalidation_requests.labels.${key}`, + tooltip: { + key: key, + title: `prevalidation_requests.labels.${key}`, + description: `prevalidation_requests.tooltips.${key}`, + }, + })); + } +} + +export function usePrevalidationRequestService(): PrevalidationRequestService { + return useState(new PrevalidationRequestService())[0]; +} From 2e91231752c69185c1c883a343b624a7c28afa61 Mon Sep 17 00:00:00 2001 From: RobinMeles Date: Wed, 7 Jan 2026 11:12:01 +0100 Subject: [PATCH 11/18] translations for error pages --- .../webshop/i18n/nl/pages/fund-request.mjs | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/react/src/webshop/i18n/nl/pages/fund-request.mjs b/react/src/webshop/i18n/nl/pages/fund-request.mjs index 911824fbb..46f740c26 100644 --- a/react/src/webshop/i18n/nl/pages/fund-request.mjs +++ b/react/src/webshop/i18n/nl/pages/fund-request.mjs @@ -236,11 +236,11 @@ export default { no: 'Nee', }, prefills: { - title: 'Check that your information is correct.', - subtitle: 'If your information is incorrect, please contact us using the button below.', - children: 'Children', - child: 'Child', - partner: "Partner's details", + title: 'Controleer of de gegevens correct zijn.', + subtitle: 'Als uw informatie niet correct is, kunt u onderaan op de knop klikken.', + children: 'Kinderen', + child: 'Kind', + partner: 'Gegevens van uw partner', }, cards: { back: 'Terug', @@ -253,24 +253,23 @@ export default { contacts: 'Neem voor vragen contact op met {{name}}.', }, not_filled_required_criteria: { - title: 'Dit tegoed is al geactiveerd', + title: 'Ontbrekende gegevens', heading: 'Aanvraag mislukt', description: - 'U krijgt deze melding omdat het tegoed is geactiveerd door een
familielid of voogd.

De tegoeden zijn beschikbaar in het account van de persoon die
deze als eerste heeft geactiveerd.', + 'U krijgt deze melding omdat een aantal gegevens van u niet zijn gevonden in het externe systeem. Hierdoor kan uw aanvraag niet volledig beoordeeld worden.', contacts: 'Neem voor vragen contact op met {{name}}.', }, connection_error: { - title: 'Dit tegoed is al geactiveerd', + title: 'Technische storing', heading: 'Aanvraag mislukt', description: - 'U krijgt deze melding omdat het tegoed is geactiveerd door een
familielid of voogd.

De tegoeden zijn beschikbaar in het account van de persoon die
deze als eerste heeft geactiveerd.', + 'U krijgt deze melding omdat er sprake is van een technische storing. U kunt het op een later moment opnieuw proberen.', contacts: 'Neem voor vragen contact op met {{name}}.', }, not_found: { - title: 'Dit tegoed is al geactiveerd', + title: 'Uw gegevens zijn niet gevonden', heading: 'Aanvraag mislukt', - description: - 'U krijgt deze melding omdat het tegoed is geactiveerd door een
familielid of voogd.

De tegoeden zijn beschikbaar in het account van de persoon die
deze als eerste heeft geactiveerd.', + description: 'U krijgt deze melding omdat uw gegevens niet gevonden zijn in het externe systeem.', contacts: 'Neem voor vragen contact op met {{name}}.', }, }, From 759b90745e09c762a4ed7df4f58d7db2d111b4b9 Mon Sep 17 00:00:00 2001 From: Yaroslav Kosterin Date: Wed, 7 Jan 2026 19:13:58 +0200 Subject: [PATCH 12/18] add autotests for prevalidation request csv upload --- .../pages/person-prevalidations/PrevalidationRequests.tsx | 5 ++++- .../elements/steps/criteria/FundRequestCriteriaChildren.tsx | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx b/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx index 872cffa70..4d1e9f4e9 100644 --- a/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx +++ b/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx @@ -214,7 +214,7 @@ export default function PrevalidationRequests() { } return ( -
+
{translate('prevalidation_requests.header.title')} ({prevalidationRequests?.meta?.total}) @@ -390,10 +390,12 @@ export default function PrevalidationRequests() { {row.state === 'fail' ? ( (
{ resubmitRequest(row); close(); @@ -405,6 +407,7 @@ export default function PrevalidationRequests() {
{ deleteRequest(row); close(); diff --git a/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaChildren.tsx b/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaChildren.tsx index 748729c9a..2f8fc7a17 100644 --- a/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaChildren.tsx +++ b/react/src/webshop/components/pages/funds-request/elements/steps/criteria/FundRequestCriteriaChildren.tsx @@ -14,7 +14,7 @@ export default function FundRequestCriteriaChildren({ const translate = useTranslate(); const splitChildLabel = useCallback((text?: string) => { - const match = text ? text.match(/^(Child\s+\d+)\s+(.+)$/) : null; + const match = text ? text.match(/^(Kind\s+\d+)\s+(.+)$/) : null; return match ? { child: match[1], value: upperFirst(match[2]) } : null; }, []); From 7e09bce16c2e5adb9646caaa6553a70861e175f0 Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Thu, 8 Jan 2026 15:12:43 +0200 Subject: [PATCH 13/18] npm audit fix --- package-lock.json | 158 ++++++++++++++++++++++++++-------------------- 1 file changed, 91 insertions(+), 67 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2423c62e9..3d974793a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -304,7 +304,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.0", @@ -1873,7 +1872,6 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -1950,7 +1948,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", - "peer": true, "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", @@ -3172,7 +3169,6 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dev": true, - "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -3331,7 +3327,6 @@ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -3714,7 +3709,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz", "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.8.1", "@typescript-eslint/types": "8.8.1", @@ -4728,7 +4722,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -4804,7 +4797,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -5300,23 +5292,24 @@ "dev": true }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -5332,12 +5325,43 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/body-parser/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/bonjour-service": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", @@ -5565,7 +5589,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001669", "electron-to-chromium": "^1.5.41", @@ -5741,7 +5764,6 @@ "version": "4.4.4", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.4.tgz", "integrity": "sha512-emICKGBABnxhMjUjlYRR12PmOXhJ2eJjEHL2/dZlWjxRAZT1D8xplLFq5M0tMQK8ja+wBS/tuVEJB5C6r7VxJA==", - "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -7190,7 +7212,6 @@ "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -7252,7 +7273,6 @@ "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "build/bin/cli.js" }, @@ -7746,22 +7766,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/express/node_modules/qs": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", - "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -8668,7 +8672,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.27.6" }, @@ -8686,6 +8689,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -10795,7 +10799,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.0", @@ -10898,7 +10901,6 @@ "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -11023,12 +11025,13 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -11110,16 +11113,48 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/raw-body/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -11128,7 +11163,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -11170,7 +11204,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -11732,14 +11765,14 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sass": { "version": "1.78.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.78.0.tgz", "integrity": "sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==", "dev": true, - "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -12830,7 +12863,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -12996,7 +13028,6 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -13182,8 +13213,7 @@ "node_modules/tslib": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "peer": true + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/tty-browserify": { "version": "0.0.1", @@ -13315,7 +13345,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "devOptional": true, - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -13533,7 +13562,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13698,7 +13726,6 @@ "version": "5.94.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", - "peer": true, "dependencies": { "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", @@ -13745,7 +13772,6 @@ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", "dev": true, - "peer": true, "dependencies": { "@discoveryjs/json-ext": "^0.6.1", "@webpack-cli/configtest": "^3.0.1", @@ -13905,7 +13931,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14143,7 +14168,6 @@ "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } From 06a68b45a382d0d430a87b90c4f0ab3fc384c6a4 Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Thu, 8 Jan 2026 19:54:10 +0200 Subject: [PATCH 14/18] prevalidation request csv - refactoring --- .../PrevalidationRequests.tsx | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx b/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx index 4d1e9f4e9..7d76ba6f2 100644 --- a/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx +++ b/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx @@ -60,10 +60,10 @@ export default function PrevalidationRequests() { >(null); const [states] = useState([ - { key: null, name: 'Alle' }, - { key: 'pending', name: 'Pending' }, - { key: 'success', name: 'Success' }, - { key: 'fail', name: 'Fail' }, + { key: null, name: translate('prevalidation_requests.states.all') }, + { key: 'pending', name: translate('prevalidation_requests.states.pending') }, + { key: 'success', name: translate('prevalidation_requests.states.success') }, + { key: 'fail', name: translate('prevalidation_requests.states.fail') }, ]); const [filterValues, filterValuesActive, filterUpdate, filter] = useFilterNext<{ @@ -147,7 +147,7 @@ export default function PrevalidationRequests() { prevalidationRequestService .resubmit(activeOrganization?.id, request.id) .then(() => { - pushSuccess('Gelukt!', 'Request resubmitted.'); + pushSuccess('Gelukt!', 'Verzoek opnieuw verzonden.'); fetchPrevalidationRequests(); }) .catch(pushApiError); @@ -159,7 +159,7 @@ export default function PrevalidationRequests() { prevalidationRequestService .resubmitFailed(activeOrganization?.id) .then(() => { - pushSuccess('Gelukt!', 'Request resubmitted.'); + pushSuccess('Gelukt!', 'Verzoek opnieuw verzonden.'); fetchPrevalidationRequests(); }) .catch(pushApiError); @@ -170,7 +170,7 @@ export default function PrevalidationRequests() { prevalidationRequestService .destroy(activeOrganization?.id, request.id) .then(() => { - pushSuccess('Gelukt!', 'Request deleted.'); + pushSuccess('Gelukt!', 'Verzoek verwijderd.'); fetchPrevalidationRequests(); }) .catch(pushApiError); @@ -376,15 +376,17 @@ export default function PrevalidationRequests() {
- {row.employee?.email || 'Unknown'} + {row.employee?.email || 'Onbekend'} - {row.state === 'fail' && row.failed_reason - ? row.failed_reason_locale - : ''} + {row.state === 'fail' && row.failed_reason ? ( + row.failed_reason_locale + ) : ( + + )} From c9cd627319096a4e04ae23b247c16c83fb51523b Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Fri, 9 Jan 2026 00:20:21 +0200 Subject: [PATCH 15/18] prevalidation full-file validation, cancel logic, and delete confirmation --- .../ModalPrevalidationRequestsUpload.tsx | 183 ++++++++++++++++-- .../PrevalidationRequests.tsx | 42 +++- react/src/dashboard/hooks/useBeforeUnload.tsx | 18 ++ .../i18n/nl/i18n-modals-danger_zone.js | 2 + .../remove-prevalidation-request.js | 8 + .../i18n/nl/pages/prevalidation-requests.js | 19 +- .../elements/aside/LayoutAsideSponsor.tsx | 2 +- .../services/PrevalidationRequestService.ts | 11 ++ 8 files changed, 255 insertions(+), 30 deletions(-) create mode 100644 react/src/dashboard/hooks/useBeforeUnload.tsx create mode 100644 react/src/dashboard/i18n/nl/modals/danger-zone/remove-prevalidation-request.js diff --git a/react/src/dashboard/components/modals/ModalPrevalidationRequestsUpload.tsx b/react/src/dashboard/components/modals/ModalPrevalidationRequestsUpload.tsx index c8620a02d..efc7cc961 100644 --- a/react/src/dashboard/components/modals/ModalPrevalidationRequestsUpload.tsx +++ b/react/src/dashboard/components/modals/ModalPrevalidationRequestsUpload.tsx @@ -23,6 +23,7 @@ import SelectControlOptionsFund from '../elements/select-control/templates/Selec import { usePrevalidationRequestService } from '../../services/PrevalidationRequestService'; import { ProfileRecordType } from '../../props/models/Sponsor/SponsorIdentity'; import RecordType from '../../props/models/RecordType'; +import useBeforeUnload from '../../hooks/useBeforeUnload'; type CSVErrorProp = { emptyHeader?: string | string[]; @@ -51,6 +52,8 @@ enum CSVProgress { uploaded, } +type ProcessingMode = 'validate' | 'upload' | null; + export default function ModalPrevalidationRequestsUpload({ funds, fundId, @@ -93,8 +96,12 @@ export default function ModalPrevalidationRequestsUpload({ const [progressStatus, setProgressStatus] = useState(''); const [acceptedFiles] = useState(['.csv']); + const [processingMode, setProcessingMode] = useState(null); const abortRef = useRef(false); + const processedRef = useRef<{ processed: number; total: number }>({ processed: 0, total: 0 }); + const cancelPhaseRef = useRef(null); + const closeAfterCancelRef = useRef(false); const inputRef = useRef(null); const criteriaRecordTypeKeys = useMemo(() => { @@ -309,11 +316,52 @@ export default function ModalPrevalidationRequestsUpload({ [criteriaRecordTypeKeys, fund, fundRecordKey, fundRecordKeyValue, parseCsvFile, reset], ); - const updateProgressBarValue = useCallback((progress: number) => { + const updateProgressBarValue = useCallback((progress: number, status?: string) => { setProgressBar(progress); - setProgressStatus(progress < 100 ? 'Aan het uploaden...' : 'Klaar!'); + setProgressStatus(progress < 100 ? status || 'Aan het uploaden...' : 'Klaar!'); }, []); + const notifyCanceled = useCallback(() => { + const { processed, total } = processedRef.current; + const phase = cancelPhaseRef.current; + + if (phase === 'validate') { + pushSuccess('Validatie geannuleerd', `Gevalideerd: ${processed} van ${total}. Geen uploads uitgevoerd.`); + } else if (phase === 'upload') { + pushSuccess('Upload geannuleerd', `Geüpload: ${processed} van ${total}.`); + } else { + pushSuccess('Upload geannuleerd', `Verwerkt: ${processed} van ${total}.`); + } + }, [pushSuccess]); + + const finalizeCancel = useCallback(() => { + setProcessingMode(null); + setCsvProgress(CSVProgress.validated); + setProgressBar(0); + setProgressStatus(''); + setHideModal(false); + notifyCanceled(); + cancelPhaseRef.current = null; + + if (closeAfterCancelRef.current) { + closeAfterCancelRef.current = false; + modal.close(); + } + }, [modal, notifyCanceled]); + + const requestCancel = useCallback(() => { + if (processingMode) { + cancelPhaseRef.current = processingMode; + abortRef.current = true; + closeAfterCancelRef.current = true; + return; + } + + setStep(Steps.select_fund); + }, [processingMode]); + + useBeforeUnload(!!processingMode); + const chunkList = useCallback((arr: Array, len: number) => { const chunks = []; const n = arr.length; @@ -327,16 +375,106 @@ export default function ModalPrevalidationRequestsUpload({ return chunks; }, []); - const startUploadingToServer = useCallback(() => { + const startValidationToServer = useCallback((): Promise => { + return new Promise((resolve) => { + setCsvProgress(CSVProgress.uploading); + setProcessingMode('validate'); + processedRef.current = { processed: 0, total: data.length }; + + const submitData = chunkList(JSON.parse(JSON.stringify(data)), dataChunkSize); + const chunksCount = submitData.length; + const errors = {}; + + let currentChunkNth = 0; + + updateProgressBarValue(0, 'Aan het valideren...'); + + const resolveIfFinished = () => { + if (abortRef.current) { + abortRef.current = false; + finalizeCancel(); + return resolve(false); + } + + if (currentChunkNth == chunksCount) { + setProcessingMode(null); + + if (Object.keys(errors).length > 0) { + showInvalidRows(errors, data); + setCsvProgress(CSVProgress.validated); + setProgressBar(0); + setProgressStatus(''); + return resolve(false); + } + + return resolve(true); + } + + validateChunk(submitData[currentChunkNth]); + }; + + const validateChunk = (data: Array<{ [key: string]: string }>) => { + prevalidationRequestService + .storeBatchValidate(fund.organization_id, data, fund.id) + .then(() => { + currentChunkNth++; + processedRef.current = { + processed: Math.min(currentChunkNth * dataChunkSize, processedRef.current.total), + total: processedRef.current.total, + }; + updateProgressBarValue((currentChunkNth / chunksCount) * 100, 'Aan het valideren...'); + resolveIfFinished(); + }) + .catch((err: ResponseError) => { + if (err.status == 422 && err.data.errors) { + Object.keys(err.data.errors).forEach(function (key) { + const keyData = key.split('.'); + keyData[1] = (parseInt(keyData[1], 10) + currentChunkNth * dataChunkSize).toString(); + errors[keyData.join('.')] = err.data.errors[key]; + }); + } else { + setProcessingMode(null); + pushApiError(err, 'Onbekende error.'); + return resolve(false); + } + + currentChunkNth++; + processedRef.current = { + processed: Math.min(currentChunkNth * dataChunkSize, processedRef.current.total), + total: processedRef.current.total, + }; + updateProgressBarValue((currentChunkNth / chunksCount) * 100, 'Aan het valideren...'); + resolveIfFinished(); + }); + }; + + validateChunk(submitData[currentChunkNth]); + }); + }, [ + chunkList, + data, + dataChunkSize, + updateProgressBarValue, + prevalidationRequestService, + fund.organization_id, + fund.id, + pushApiError, + showInvalidRows, + finalizeCancel, + ]); + + const startUploadingToServer = useCallback((): Promise => { return new Promise((resolve, reject) => { setCsvProgress(CSVProgress.uploading); + setProcessingMode('upload'); + processedRef.current = { processed: 0, total: data.length }; const submitData = chunkList(JSON.parse(JSON.stringify(data)), dataChunkSize); const chunksCount = submitData.length; let currentChunkNth = 0; - updateProgressBarValue(0); + updateProgressBarValue(0, 'Aan het uploaden...'); const uploadChunk = async function (data: Array<{ [key: string]: string }>) { prevalidationRequestService @@ -352,18 +490,25 @@ export default function ModalPrevalidationRequestsUpload({ setChanged(true); currentChunkNth++; - updateProgressBarValue((currentChunkNth / chunksCount) * 100); + processedRef.current = { + processed: Math.min(currentChunkNth * dataChunkSize, processedRef.current.total), + total: processedRef.current.total, + }; + updateProgressBarValue((currentChunkNth / chunksCount) * 100, 'Aan het uploaden...'); if (currentChunkNth == chunksCount) { setTimeout(() => { setProgressBar(100); setCsvProgress(CSVProgress.uploaded); onCompleted?.(); + setProcessingMode(null); resolve(null); }, 0); } else { if (abortRef.current) { - return (abortRef.current = false); + abortRef.current = false; + finalizeCancel(); + return resolve(false); } uploadChunk(submitData[currentChunkNth]); @@ -379,6 +524,7 @@ export default function ModalPrevalidationRequestsUpload({ } pushApiError(err, 'Onbekende error.'); + setProcessingMode(null); reject(); }); }; @@ -398,15 +544,24 @@ export default function ModalPrevalidationRequestsUpload({ pushApiError, showInvalidRows, pushDanger, + finalizeCancel, ]); - const onConfirmUpload = useCallback(() => { + const onConfirmUpload = useCallback(async () => { pushSuccess('Inladen...', 'Inladen van gegevens voor controle op dubbele waarden!', { icon: 'download-outline', }); + const validated = await startValidationToServer(); + + if (!validated) { + return; + } + + setProgressBar(0); + updateProgressBarValue(0, 'Aan het uploaden...'); startUploadingToServer().then(); - }, [pushSuccess, startUploadingToServer]); + }, [pushSuccess, startUploadingToServer, startValidationToServer, updateProgressBarValue]); const onDragEvent = useCallback((e: React.DragEvent, isDragOver: boolean) => { e?.preventDefault(); @@ -427,9 +582,13 @@ export default function ModalPrevalidationRequestsUpload({ )} key={`step_${step}`} data-dusk="modalPrevalidationRequestUpload"> -
+
- +
Upload CSV-bestand
{step == Steps.select_fund && ( @@ -586,8 +745,8 @@ export default function ModalPrevalidationRequestsUpload({ {/* Confirm selected fund button */} diff --git a/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx b/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx index 7d76ba6f2..6fe03ac49 100644 --- a/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx +++ b/react/src/dashboard/components/pages/person-prevalidations/PrevalidationRequests.tsx @@ -36,6 +36,7 @@ import usePushSuccess from '../../../hooks/usePushSuccess'; import usePushApiError from '../../../hooks/usePushApiError'; import { DashboardRoutes } from '../../../modules/state_router/RouterBuilder'; import { useNavigateState } from '../../../modules/state_router/Router'; +import ModalDangerZone from '../../modals/ModalDangerZone'; export default function PrevalidationRequests() { const translate = useTranslate(); @@ -167,15 +168,40 @@ export default function PrevalidationRequests() { const deleteRequest = useCallback( (request: PrevalidationRequest) => { - prevalidationRequestService - .destroy(activeOrganization?.id, request.id) - .then(() => { - pushSuccess('Gelukt!', 'Verzoek verwijderd.'); - fetchPrevalidationRequests(); - }) - .catch(pushApiError); + openModal((modal) => ( + { + prevalidationRequestService + .destroy(activeOrganization?.id, request.id) + .then(() => { + pushSuccess('Gelukt!', 'Verzoek verwijderd.'); + fetchPrevalidationRequests(); + modal.close(); + }) + .catch(pushApiError); + }, + text: translate('modals.danger_zone.remove_prevalidation_request.buttons.confirm'), + }} + /> + )); }, - [activeOrganization?.id, fetchPrevalidationRequests, prevalidationRequestService, pushApiError, pushSuccess], + [ + openModal, + translate, + activeOrganization?.id, + fetchPrevalidationRequests, + prevalidationRequestService, + pushApiError, + pushSuccess, + ], ); const fetchRecordTypes = useCallback(() => { diff --git a/react/src/dashboard/hooks/useBeforeUnload.tsx b/react/src/dashboard/hooks/useBeforeUnload.tsx new file mode 100644 index 000000000..9ca589be6 --- /dev/null +++ b/react/src/dashboard/hooks/useBeforeUnload.tsx @@ -0,0 +1,18 @@ +import { useEffect } from 'react'; + +export default function useBeforeUnload(enabled: boolean) { + useEffect(() => { + if (!enabled) { + return; + } + + const handleBeforeUnload = (event: BeforeUnloadEvent) => { + event.preventDefault(); + event.returnValue = ''; + }; + + window.addEventListener('beforeunload', handleBeforeUnload); + + return () => window.removeEventListener('beforeunload', handleBeforeUnload); + }, [enabled]); +} diff --git a/react/src/dashboard/i18n/nl/i18n-modals-danger_zone.js b/react/src/dashboard/i18n/nl/i18n-modals-danger_zone.js index 28d3b9850..956a3befa 100644 --- a/react/src/dashboard/i18n/nl/i18n-modals-danger_zone.js +++ b/react/src/dashboard/i18n/nl/i18n-modals-danger_zone.js @@ -16,6 +16,7 @@ import recreate_bi_connection from './modals/danger-zone/recreate-bi-connection' import remove_reservation_field from './modals/danger-zone/remove-reservation-field'; import remove_mollie_connection from './modals/danger-zone/remove-mollie-connection'; import exclude_pre_check_fund from './modals/danger-zone/exclude_pre_check_fund'; +import remove_prevalidation_request from './modals/danger-zone/remove-prevalidation-request'; export default { remove_provider_application, @@ -36,4 +37,5 @@ export default { remove_reservation_field, remove_mollie_connection, exclude_pre_check_fund, + remove_prevalidation_request, }; diff --git a/react/src/dashboard/i18n/nl/modals/danger-zone/remove-prevalidation-request.js b/react/src/dashboard/i18n/nl/modals/danger-zone/remove-prevalidation-request.js new file mode 100644 index 000000000..1c422ed64 --- /dev/null +++ b/react/src/dashboard/i18n/nl/modals/danger-zone/remove-prevalidation-request.js @@ -0,0 +1,8 @@ +export default { + title: 'Prevalidatieverzoek verwijderen', + description: 'Weet je zeker dat je dit prevalidatieverzoek wilt verwijderen?', + buttons: { + cancel: 'Annuleren', + confirm: 'Bevestigen', + }, +}; diff --git a/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js b/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js index edb279e49..6a90223c5 100644 --- a/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js +++ b/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js @@ -1,12 +1,12 @@ export default { header: { - title: 'Requests', + title: 'Prevalidatieverzoeken', }, labels: { bsn: 'BSN', fund: 'Fonds', employee: 'Medewerker', - failed_reason: 'Failed reason', + failed_reason: 'Reden van mislukking', created_at: 'Datum', search: 'Zoeken', state: 'Status', @@ -15,21 +15,22 @@ export default { }, buttons: { upload: 'Upload .csv bestand', - resubmit: 'Resubmit', - delete: 'Delete', - resubmit_failed: 'Resubmit failed', + resubmit: 'Opnieuw verzenden', + delete: 'Verwijderen', + resubmit_failed: 'Mislukte verzoeken opnieuw verzenden', }, states: { - pending: 'Pending', - success: 'Success', - fail: 'Fail', + pending: 'In behandeling', + success: 'Gelukt', + fail: 'Mislukt', + all: 'Alle', }, tooltips: { bsn: 'BSN', fund: 'Fonds', employee: 'Medewerker', state: 'Status', - failed_reason: 'Failed reason', + failed_reason: 'Reden van mislukking', }, empty: { title: 'Geen aanvragers toevoegen', diff --git a/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx b/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx index 25c79174a..0b95b8efd 100644 --- a/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx +++ b/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx @@ -79,7 +79,7 @@ export default function LayoutAsideSponsor({ organization }: { organization: Org }, { id: 'prevalidation_requests', - name: 'Prevalidation requests', + name: 'Prevalidatieverzoeken', state: DashboardRoutes.PREVALIDATION_REQUESTS, dusk: 'csvPrevalidationRequestsPage', stateParams: { organizationId: organization?.id }, diff --git a/react/src/dashboard/services/PrevalidationRequestService.ts b/react/src/dashboard/services/PrevalidationRequestService.ts index 890080ef3..cafcb241b 100644 --- a/react/src/dashboard/services/PrevalidationRequestService.ts +++ b/react/src/dashboard/services/PrevalidationRequestService.ts @@ -34,6 +34,17 @@ export class PrevalidationRequestService { }); } + public storeBatchValidate( + organization_id: number, + data: Array<{ [key: string]: string }>, + fund_id: number = null, + ): Promise> { + return this.apiRequest.post(`${this.prefix}/${organization_id}/prevalidation-requests/collection/validate`, { + data: data, + fund_id: fund_id, + }); + } + public resubmitFailed(organization_id: number): Promise> { return this.apiRequest.get(`${this.prefix}/${organization_id}/prevalidation-requests/resubmit-failed`); } From 967ff933bb94c19a15934681b1e6662cfd9db74c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Jan 2026 22:35:08 +0000 Subject: [PATCH 16/18] Bump react-router in the npm_and_yarn group across 1 directory Bumps the npm_and_yarn group with 1 update in the / directory: [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router). Updates `react-router` from 7.5.2 to 7.12.0 - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router@7.12.0/packages/react-router) --- updated-dependencies: - dependency-name: react-router dependency-version: 7.12.0 dependency-type: direct:production dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] --- package-lock.json | 17 +++++------------ package.json | 2 +- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3d974793a..22a7bd66d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,7 +46,7 @@ "react-i18next": "^16.0.0", "react-image-crop": "^11.0.6", "react-range-slider-input": "^3.2.1", - "react-router": "^7.5.2", + "react-router": "^7.12.0", "react-slider": "^2.0.6", "summernote": "^0.9.1", "terser-webpack-plugin": "^5.3.9", @@ -11294,14 +11294,13 @@ } }, "node_modules/react-router": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.2.tgz", - "integrity": "sha512-9Rw8r199klMnlGZ8VAsV/I8WrIF6IyJ90JQUdboupx1cdkgYqwnrYjH+I/nY/7cA1X5zia4mDJqH36npP7sxGQ==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz", + "integrity": "sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" + "set-cookie-parser": "^2.6.0" }, "engines": { "node": ">=20.0.0" @@ -13221,12 +13220,6 @@ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, "node_modules/turndown": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.0.tgz", diff --git a/package.json b/package.json index b6b87a7b0..7226c5f1d 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "react-i18next": "^16.0.0", "react-image-crop": "^11.0.6", "react-range-slider-input": "^3.2.1", - "react-router": "^7.5.2", + "react-router": "^7.12.0", "react-slider": "^2.0.6", "summernote": "^0.9.1", "terser-webpack-plugin": "^5.3.9", From a49f7797a294d3ef345251cc9a99593a655af65d Mon Sep 17 00:00:00 2001 From: RobinMeles Date: Fri, 9 Jan 2026 14:53:01 +0100 Subject: [PATCH 17/18] minor translations for iconnect prevalidations --- .../nl/modals/danger-zone/remove-prevalidation-request.js | 4 ++-- react/src/dashboard/i18n/nl/pages/prevalidation-requests.js | 6 +++--- .../dashboard/layout/elements/aside/LayoutAsideSponsor.tsx | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/react/src/dashboard/i18n/nl/modals/danger-zone/remove-prevalidation-request.js b/react/src/dashboard/i18n/nl/modals/danger-zone/remove-prevalidation-request.js index 1c422ed64..f39ac0c62 100644 --- a/react/src/dashboard/i18n/nl/modals/danger-zone/remove-prevalidation-request.js +++ b/react/src/dashboard/i18n/nl/modals/danger-zone/remove-prevalidation-request.js @@ -1,6 +1,6 @@ export default { - title: 'Prevalidatieverzoek verwijderen', - description: 'Weet je zeker dat je dit prevalidatieverzoek wilt verwijderen?', + title: 'Gegevens verwijderen', + description: 'Weet je zeker dat je deze gegevens wilt verwijderen?', buttons: { cancel: 'Annuleren', confirm: 'Bevestigen', diff --git a/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js b/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js index 6a90223c5..0240a2b29 100644 --- a/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js +++ b/react/src/dashboard/i18n/nl/pages/prevalidation-requests.js @@ -1,6 +1,6 @@ export default { header: { - title: 'Prevalidatieverzoeken', + title: 'Klaarzetten met BRP', }, labels: { bsn: 'BSN', @@ -33,7 +33,7 @@ export default { failed_reason: 'Reden van mislukking', }, empty: { - title: 'Geen aanvragers toevoegen', - description: 'U bent geen beoordelaar voor een fonds dat actief is om aanvragers aan toe te voegen.', + title: 'Geen aanvragers klaargezet', + description: 'Er zijn nog geen aanvragers klaargezet voor dit fonds.', }, }; diff --git a/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx b/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx index 0b95b8efd..a9f426b95 100644 --- a/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx +++ b/react/src/dashboard/layout/elements/aside/LayoutAsideSponsor.tsx @@ -79,7 +79,7 @@ export default function LayoutAsideSponsor({ organization }: { organization: Org }, { id: 'prevalidation_requests', - name: 'Prevalidatieverzoeken', + name: 'Klaarzetten met BRP', state: DashboardRoutes.PREVALIDATION_REQUESTS, dusk: 'csvPrevalidationRequestsPage', stateParams: { organizationId: organization?.id }, From 7a014a2a2923f7466289affa88c724c3f8f78b47 Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Mon, 12 Jan 2026 11:25:47 +0200 Subject: [PATCH 18/18] update translations --- react/src/webshop/i18n/translated/ar.json | 37 ++++++++ react/src/webshop/i18n/translated/de.json | 37 ++++++++ react/src/webshop/i18n/translated/en-US.json | 37 ++++++++ react/src/webshop/i18n/translated/fr.json | 37 ++++++++ react/src/webshop/i18n/translated/pl.json | 37 ++++++++ react/src/webshop/i18n/translated/ru.json | 37 ++++++++ react/src/webshop/i18n/translated/tr.json | 37 ++++++++ react/src/webshop/i18n/translated/uk.json | 37 ++++++++ translations/cache/cache.json | 92 ++++++++++++++++++++ 9 files changed, 388 insertions(+) diff --git a/react/src/webshop/i18n/translated/ar.json b/react/src/webshop/i18n/translated/ar.json index 756bdb2eb..238a0ecd1 100644 --- a/react/src/webshop/i18n/translated/ar.json +++ b/react/src/webshop/i18n/translated/ar.json @@ -1087,6 +1087,43 @@ "subtitle": "تحتوي هذه الصفحة على معلومات حول الطلب. يمكن الاطلاع على الحالة والبيانات المكتملة وأي أسئلة إضافية هنا.", "modal": { "title": "سؤال إضافي" + }, + "cards": { + "back": "رجوع", + "connection_error": { + "contacts": "للأسئلة، اتصل على {{name}}.", + "description": "تظهر لك هذه الرسالة بسبب وجود خطأ فني. يمكنك المحاولة مرة أخرى في وقت لاحق.", + "heading": "فشل الطلب", + "title": "عطل فني" + }, + "not_filled_required_criteria": { + "contacts": "للأسئلة، اتصل على {{name}}.", + "description": "تتلقى هذه الرسالة لأن بعض التفاصيل الخاصة بك لم يتم العثور عليها في النظام الخارجي. ونتيجة لذلك، لا يمكن تقييم طلبك بشكل كامل.", + "heading": "فشل الطلب", + "title": "البيانات المفقودة" + }, + "not_found": { + "contacts": "للأسئلة، اتصل على {{name}}.", + "description": "تظهر لك هذه الرسالة لأن بياناتك لم يتم العثور عليها في النظام الخارجي.", + "heading": "فشل الطلب", + "title": "لم يتم العثور على بياناتك" + }, + "taken_by_partner": { + "contacts": "للأسئلة، اتصل على {{name}}.", + "description": "ستصلك هذه الرسالة لأن الرصيد تم تفعيله من قبل أحد أفراد العائلة أو ولي الأمر
.

يتوفر الرصيد في حساب الشخص الذي قام
بتفعيله أولاً.", + "heading": "فشل الطلب", + "title": "تم تفعيل هذا الرصيد بالفعل" + } + }, + "options": { + "no": "لا يوجد" + }, + "prefills": { + "child": "الطفل", + "children": "الأطفال", + "partner": "تفاصيل شريكك", + "subtitle": "إذا كانت معلوماتك غير صحيحة، يمكنك النقر على الزر الموجود في الأسفل.", + "title": "تحقق من صحة البيانات." } }, "fund_requests": { diff --git a/react/src/webshop/i18n/translated/de.json b/react/src/webshop/i18n/translated/de.json index b08299dd0..9a80d9e87 100644 --- a/react/src/webshop/i18n/translated/de.json +++ b/react/src/webshop/i18n/translated/de.json @@ -664,6 +664,43 @@ "subtitle": "Diese Seite enthält Informationen über die Bewerbung. Der Status, die ausgefüllten Daten und eventuelle Zusatzfragen können hier eingesehen werden.", "modal": { "title": "Zusätzliche Frage" + }, + "cards": { + "back": "Zurück", + "connection_error": { + "contacts": "Bei Fragen wenden Sie sich bitte an {{name}}.", + "description": "Sie erhalten diese Meldung, weil ein technischer Fehler aufgetreten ist. Sie können es zu einem späteren Zeitpunkt erneut versuchen.", + "heading": "Anfrage fehlgeschlagen", + "title": "Technisches Versagen" + }, + "not_filled_required_criteria": { + "contacts": "Bei Fragen wenden Sie sich bitte an {{name}}.", + "description": "Sie erhalten diese Meldung, weil einige Ihrer Angaben im externen System nicht gefunden wurden. Aus diesem Grund kann Ihre Bewerbung nicht vollständig geprüft werden.", + "heading": "Anfrage fehlgeschlagen", + "title": "Fehlende Daten" + }, + "not_found": { + "contacts": "Bei Fragen wenden Sie sich bitte an {{name}}.", + "description": "Sie erhalten diese Meldung, weil Ihre Daten im externen System nicht gefunden wurden.", + "heading": "Anfrage fehlgeschlagen", + "title": "Ihre Angaben wurden nicht gefunden" + }, + "taken_by_partner": { + "contacts": "Bei Fragen wenden Sie sich bitte an {{name}}.", + "description": "Sie erhalten diese Meldung, weil das Guthaben von einem
Familienmitglied oder Erziehungsberechtigten aktiviert wurde.

Das Guthaben ist auf dem Konto der Person verfügbar, die
es zuerst aktiviert hat.", + "heading": "Anfrage fehlgeschlagen", + "title": "Dieser Kredit ist bereits aktiviert worden" + } + }, + "options": { + "no": "Nein" + }, + "prefills": { + "child": "Kind", + "children": "Kinder", + "partner": "Angaben zu Ihrem Partner", + "subtitle": "Wenn Ihre Angaben nicht korrekt sind, können Sie auf die Schaltfläche am unteren Rand klicken.", + "title": "Prüfen Sie, ob die Daten korrekt sind." } }, "fund_requests": { diff --git a/react/src/webshop/i18n/translated/en-US.json b/react/src/webshop/i18n/translated/en-US.json index 7dc508832..7b48340c8 100644 --- a/react/src/webshop/i18n/translated/en-US.json +++ b/react/src/webshop/i18n/translated/en-US.json @@ -842,6 +842,43 @@ "subtitle": "This page contains information about the application. The status, completed data and any additional questions can be viewed here.", "modal": { "title": "Additional question" + }, + "cards": { + "back": "Back", + "connection_error": { + "contacts": "For questions, contact {{name}}.", + "description": "You are receiving this message because there is a technical error. You can try again at a later time.", + "heading": "Application failed", + "title": "Technical failure" + }, + "not_filled_required_criteria": { + "contacts": "For questions, contact {{name}}.", + "description": "You are receiving this message because some of your information was not found in the external system. As a result, your application cannot be fully evaluated.", + "heading": "Application failed", + "title": "Missing data" + }, + "not_found": { + "contacts": "For questions, contact {{name}}.", + "description": "You get this message because your data was not found in the external system.", + "heading": "Application failed", + "title": "Your information was not found" + }, + "taken_by_partner": { + "contacts": "For questions, contact {{name}}.", + "description": "You get this message because the credit was activated by a
family member or guardian.

The credit is available in the account of the person who
activated it first.", + "heading": "Application failed", + "title": "This credit has already been activated" + } + }, + "options": { + "no": "No" + }, + "prefills": { + "child": "Child", + "children": "Children", + "partner": "Details of your partner", + "subtitle": "If your information is incorrect, you can click the button at the bottom.", + "title": "Check that the data is correct." } }, "fund_requests": { diff --git a/react/src/webshop/i18n/translated/fr.json b/react/src/webshop/i18n/translated/fr.json index 7cd2ee46b..0f1f38f90 100644 --- a/react/src/webshop/i18n/translated/fr.json +++ b/react/src/webshop/i18n/translated/fr.json @@ -664,6 +664,43 @@ "subtitle": "Cette page contient des informations sur la demande. L'état d'avancement, les données complétées et les éventuelles questions complémentaires peuvent être consultés ici.", "modal": { "title": "Question complémentaire" + }, + "cards": { + "back": "Retour", + "connection_error": { + "contacts": "Pour toute question, veuillez contacter {{name}}.", + "description": "Vous recevez ce message en raison d'une erreur technique. Vous pouvez réessayer ultérieurement.", + "heading": "Échec de la demande", + "title": "Défaillance technique" + }, + "not_filled_required_criteria": { + "contacts": "Pour toute question, veuillez contacter {{name}}.", + "description": "Vous recevez ce message parce que certaines de vos données n'ont pas été trouvées dans le système externe. Par conséquent, votre demande ne peut pas être évaluée dans son intégralité.", + "heading": "Échec de la demande", + "title": "Données manquantes" + }, + "not_found": { + "contacts": "Pour toute question, veuillez contacter {{name}}.", + "description": "Vous obtenez ce message parce que vos données n'ont pas été trouvées dans le système externe.", + "heading": "Échec de la demande", + "title": "Vos coordonnées n'ont pas été trouvées" + }, + "taken_by_partner": { + "contacts": "Pour toute question, veuillez contacter {{name}}.", + "description": "Vous recevez ce message parce que le crédit a été activé par un membre de la famille ou un tuteur
.

Le crédit est disponible sur le compte de la personne qui l'a activé en premier (
).", + "heading": "Échec de la demande", + "title": "Ce crédit a déjà été activé" + } + }, + "options": { + "no": "Non" + }, + "prefills": { + "child": "Enfant", + "children": "Les enfants", + "partner": "Coordonnées de votre partenaire", + "subtitle": "Si vos informations sont incorrectes, vous pouvez cliquer sur le bouton en bas de page.", + "title": "Vérifier que les données sont correctes." } }, "fund_requests": { diff --git a/react/src/webshop/i18n/translated/pl.json b/react/src/webshop/i18n/translated/pl.json index 1a8cc1cc7..6d823e992 100644 --- a/react/src/webshop/i18n/translated/pl.json +++ b/react/src/webshop/i18n/translated/pl.json @@ -664,6 +664,43 @@ "subtitle": "Ta strona zawiera informacje o aplikacji. Można tu sprawdzić status, wypełnione dane i wszelkie dodatkowe pytania.", "modal": { "title": "Pytanie dodatkowe" + }, + "cards": { + "back": "Powrót", + "connection_error": { + "contacts": "W razie pytań prosimy o kontakt pod adresem {{name}}.", + "description": "Otrzymujesz ten komunikat, ponieważ wystąpił błąd techniczny. Możesz spróbować ponownie w późniejszym czasie.", + "heading": "Żądanie nie powiodło się", + "title": "Awaria techniczna" + }, + "not_filled_required_criteria": { + "contacts": "W razie pytań prosimy o kontakt pod adresem {{name}}.", + "description": "Otrzymujesz tę wiadomość, ponieważ niektóre z Twoich danych nie zostały znalezione w systemie zewnętrznym. W rezultacie aplikacja nie może zostać w pełni oceniona.", + "heading": "Żądanie nie powiodło się", + "title": "Brakujące dane" + }, + "not_found": { + "contacts": "W razie pytań prosimy o kontakt pod adresem {{name}}.", + "description": "Ten komunikat pojawia się, ponieważ dane nie zostały znalezione w systemie zewnętrznym.", + "heading": "Żądanie nie powiodło się", + "title": "Twoje dane nie zostały znalezione" + }, + "taken_by_partner": { + "contacts": "W razie pytań prosimy o kontakt pod adresem {{name}}.", + "description": "Otrzymujesz tę wiadomość, ponieważ kredyt został aktywowany przez członka rodziny lub opiekuna
.

Kredyt jest dostępny na koncie osoby, która
aktywowała go jako pierwsza.", + "heading": "Żądanie nie powiodło się", + "title": "Ten kredyt został już aktywowany" + } + }, + "options": { + "no": "Nie" + }, + "prefills": { + "child": "Dziecko", + "children": "Dzieci", + "partner": "Szczegóły dotyczące partnera", + "subtitle": "Jeśli informacje są nieprawidłowe, możesz kliknąć przycisk na dole.", + "title": "Sprawdź, czy dane są prawidłowe." } }, "fund_requests": { diff --git a/react/src/webshop/i18n/translated/ru.json b/react/src/webshop/i18n/translated/ru.json index 4cd6c3ab6..b006a46ea 100644 --- a/react/src/webshop/i18n/translated/ru.json +++ b/react/src/webshop/i18n/translated/ru.json @@ -664,6 +664,43 @@ "subtitle": "Эта страница содержит информацию о заявке. Здесь можно просмотреть статус, заполненные данные и дополнительные вопросы.", "modal": { "title": "Дополнительный вопрос" + }, + "cards": { + "back": "Назад", + "connection_error": { + "contacts": "По вопросам обращайтесь по адресу {{name}}.", + "description": "Вы получили это сообщение из-за технической ошибки. Вы можете повторить попытку позже.", + "heading": "Запрос не прошел", + "title": "Технический сбой" + }, + "not_filled_required_criteria": { + "contacts": "По вопросам обращайтесь по адресу {{name}}.", + "description": "Вы получили это сообщение, потому что некоторые ваши данные не были найдены во внешней системе. В результате ваше заявление не может быть полностью рассмотрено.", + "heading": "Запрос не прошел", + "title": "Отсутствующие данные" + }, + "not_found": { + "contacts": "По вопросам обращайтесь по адресу {{name}}.", + "description": "Вы получаете это сообщение, потому что ваши данные не были найдены во внешней системе.", + "heading": "Запрос не прошел", + "title": "Ваши данные не найдены" + }, + "taken_by_partner": { + "contacts": "По вопросам обращайтесь по адресу {{name}}.", + "description": "Вы получаете это сообщение, потому что кредит был активирован членом семьи или опекуном
.

Кредит доступен на счете того, кто
активировал его первым.", + "heading": "Запрос не прошел", + "title": "Этот кредит уже активирован" + } + }, + "options": { + "no": "Нет" + }, + "prefills": { + "child": "Ребенок", + "children": "Дети", + "partner": "Подробная информация о вашем партнере", + "subtitle": "Если ваша информация неверна, вы можете нажать кнопку внизу.", + "title": "Проверьте правильность данных." } }, "fund_requests": { diff --git a/react/src/webshop/i18n/translated/tr.json b/react/src/webshop/i18n/translated/tr.json index b4796978b..fd1da64a4 100644 --- a/react/src/webshop/i18n/translated/tr.json +++ b/react/src/webshop/i18n/translated/tr.json @@ -1066,6 +1066,43 @@ "subtitle": "Bu sayfa başvuru hakkında bilgi içerir. Durum, tamamlanan veriler ve ek sorular buradan görüntülenebilir.", "modal": { "title": "Ek soru" + }, + "cards": { + "back": "Geri", + "connection_error": { + "contacts": "Sorularınız için {{name}} ile iletişime geçebilirsiniz.", + "description": "Teknik bir hata olduğu için bu mesajı alıyorsunuz. Daha sonra tekrar deneyebilirsiniz.", + "heading": "İstek başarısız oldu", + "title": "Teknik arıza" + }, + "not_filled_required_criteria": { + "contacts": "Sorularınız için {{name}} ile iletişime geçebilirsiniz.", + "description": "Bazı bilgileriniz harici sistemde bulunamadığı için bu mesajı alıyorsunuz. Sonuç olarak, başvurunuz tam olarak değerlendirilememektedir.", + "heading": "İstek başarısız oldu", + "title": "Eksik veri" + }, + "not_found": { + "contacts": "Sorularınız için {{name}} ile iletişime geçebilirsiniz.", + "description": "Verileriniz harici sistemde bulunamadığı için bu mesajı alırsınız.", + "heading": "İstek başarısız oldu", + "title": "Bilgileriniz bulunamadı" + }, + "taken_by_partner": { + "contacts": "Sorularınız için {{name}} ile iletişime geçebilirsiniz.", + "description": "Bu mesajı alıyorsunuz çünkü kredi bir
aile üyesi veya vasisi tarafından etkinleştirildi.

Kredi
ilk etkinleştiren kişinin hesabında kullanılabilir.", + "heading": "İstek başarısız oldu", + "title": "Bu kredi zaten etkinleştirildi" + } + }, + "options": { + "no": "Hayır" + }, + "prefills": { + "child": "Çocuk", + "children": "Çocuklar", + "partner": "Partnerinizin detayları", + "subtitle": "Bilgileriniz yanlışsa, alttaki düğmeye tıklayabilirsiniz.", + "title": "Verilerin doğru olup olmadığını kontrol edin." } }, "fund": { diff --git a/react/src/webshop/i18n/translated/uk.json b/react/src/webshop/i18n/translated/uk.json index 3ea8e8a17..91bb206c1 100644 --- a/react/src/webshop/i18n/translated/uk.json +++ b/react/src/webshop/i18n/translated/uk.json @@ -664,6 +664,43 @@ "subtitle": "Ця сторінка містить інформацію про заявку. Статус, заповнені дані та будь-які додаткові питання можна переглянути тут.", "modal": { "title": "Додаткове запитання" + }, + "cards": { + "back": "Назад", + "connection_error": { + "contacts": "З питаннями звертайтеся за адресою: {{name}}.", + "description": "Ви отримали це повідомлення через технічну помилку. Ви можете спробувати пізніше.", + "heading": "Запит не вдалося виконати", + "title": "Технічна несправність" + }, + "not_filled_required_criteria": { + "contacts": "З питаннями звертайтеся за адресою: {{name}}.", + "description": "Ви отримали це повідомлення, тому що деякі з ваших даних не були знайдені в зовнішній системі. Внаслідок цього ваша заявка не може бути оцінена в повному обсязі.", + "heading": "Запит не вдалося виконати", + "title": "Відсутні дані" + }, + "not_found": { + "contacts": "З питаннями звертайтеся за адресою: {{name}}.", + "description": "Ви отримуєте це повідомлення, тому що ваші дані не були знайдені в зовнішній системі.", + "heading": "Запит не вдалося виконати", + "title": "Ваші дані не знайдено" + }, + "taken_by_partner": { + "contacts": "З питаннями звертайтеся за адресою: {{name}}.", + "description": "Ви отримали це повідомлення, тому що кредит був активований
членом сім'ї або опікуном.

Кредит доступний в акаунті особи, яка
активувала його першою.", + "heading": "Запит не вдалося виконати", + "title": "Цей кредит вже активовано" + } + }, + "options": { + "no": "Ні." + }, + "prefills": { + "child": "Дитинко.", + "children": "Діти", + "partner": "Інформація про вашого партнера", + "subtitle": "Якщо ваша інформація невірна, ви можете натиснути кнопку внизу.", + "title": "Перевірте правильність даних." } }, "fund_requests": { diff --git a/translations/cache/cache.json b/translations/cache/cache.json index 3b363afec..ff5286ac1 100644 --- a/translations/cache/cache.json +++ b/translations/cache/cache.json @@ -1267,6 +1267,74 @@ "fund_request.buttons.send", "Verzenden" ], + [ + "fund_request.cards.back", + "Terug" + ], + [ + "fund_request.cards.connection_error.contacts", + "Neem voor vragen contact op met {{name}}." + ], + [ + "fund_request.cards.connection_error.description", + "U krijgt deze melding omdat er sprake is van een technische storing. U kunt het op een later moment opnieuw proberen." + ], + [ + "fund_request.cards.connection_error.heading", + "Aanvraag mislukt" + ], + [ + "fund_request.cards.connection_error.title", + "Technische storing" + ], + [ + "fund_request.cards.not_filled_required_criteria.contacts", + "Neem voor vragen contact op met {{name}}." + ], + [ + "fund_request.cards.not_filled_required_criteria.description", + "U krijgt deze melding omdat een aantal gegevens van u niet zijn gevonden in het externe systeem. Hierdoor kan uw aanvraag niet volledig beoordeeld worden." + ], + [ + "fund_request.cards.not_filled_required_criteria.heading", + "Aanvraag mislukt" + ], + [ + "fund_request.cards.not_filled_required_criteria.title", + "Ontbrekende gegevens" + ], + [ + "fund_request.cards.not_found.contacts", + "Neem voor vragen contact op met {{name}}." + ], + [ + "fund_request.cards.not_found.description", + "U krijgt deze melding omdat uw gegevens niet gevonden zijn in het externe systeem." + ], + [ + "fund_request.cards.not_found.heading", + "Aanvraag mislukt" + ], + [ + "fund_request.cards.not_found.title", + "Uw gegevens zijn niet gevonden" + ], + [ + "fund_request.cards.taken_by_partner.contacts", + "Neem voor vragen contact op met {{name}}." + ], + [ + "fund_request.cards.taken_by_partner.description", + "U krijgt deze melding omdat het tegoed is geactiveerd door een
familielid of voogd.

De tegoeden zijn beschikbaar in het account van de persoon die
deze als eerste heeft geactiveerd." + ], + [ + "fund_request.cards.taken_by_partner.heading", + "Aanvraag mislukt" + ], + [ + "fund_request.cards.taken_by_partner.title", + "Dit tegoed is al geactiveerd" + ], [ "fund_request.clarifications.info_requested", "Extra vraag gesteld" @@ -1351,6 +1419,30 @@ "fund_request.not_requester", "U bent niet de eigenaar van deze aanvraag." ], + [ + "fund_request.options.no", + "Nee" + ], + [ + "fund_request.prefills.child", + "Kind" + ], + [ + "fund_request.prefills.children", + "Kinderen" + ], + [ + "fund_request.prefills.partner", + "Gegevens van uw partner" + ], + [ + "fund_request.prefills.subtitle", + "Als uw informatie niet correct is, kunt u onderaan op de knop klikken." + ], + [ + "fund_request.prefills.title", + "Controleer of de gegevens correct zijn." + ], [ "fund_request.received.title", "Ontvangen"

)Kia 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%0Dc*Ju1p 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