@widergy/energy-ui 3.177.0 → 3.178.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/components/UTActionCard/components/AdditionalMessage/styles.module.scss +3 -3
- package/dist/components/UTActionCard/components/BottomActions/styles.module.scss +1 -1
- package/dist/components/UTActionCard/components/Header/styles.module.scss +7 -7
- package/dist/components/UTActionCard/components/HeaderActions/index.js +1 -1
- package/dist/components/UTActionCard/components/HeaderActions/styles.module.scss +1 -1
- package/dist/components/UTActionCard/styles.module.scss +6 -6
- package/dist/components/UTAlert/styles.module.scss +4 -4
- package/dist/components/UTAttachmentList/components/Preview/styles.module.scss +2 -2
- package/dist/components/UTAttachmentList/components/PreviewModal/styles.module.scss +1 -1
- package/dist/components/UTAttachmentList/constants.js +1 -1
- package/dist/components/UTAttachmentList/index.js +1 -1
- package/dist/components/UTAttachmentList/layout.js +1 -1
- package/dist/components/UTAttachmentList/styles.module.scss +19 -35
- package/dist/components/UTAttachmentList/theme.js +1 -1
- package/dist/components/UTAttachmentList/utils.js +1 -1
- package/dist/components/UTBaseInputField/components/IconAdornment/constants.js +1 -1
- package/dist/components/UTBaseInputField/components/IconAdornment/index.js +1 -1
- package/dist/components/UTBaseInputField/components/TooltipAdornment/index.js +1 -1
- package/dist/components/UTBaseInputField/index.js +1 -1
- package/dist/components/UTBaseInputField/styles.module.scss +6 -3
- package/dist/components/UTBaseInputField/theme.js +1 -1
- package/dist/components/UTBreadcrumbs/styles.module.scss +1 -1
- package/dist/components/UTButton/styles.module.scss +10 -9
- package/dist/components/UTCarousel/components/Slider/layout.js +1 -1
- package/dist/components/UTCheckList/versions/V1/styles.module.scss +6 -9
- package/dist/components/UTCheckbox/versions/V0/index.js +1 -1
- package/dist/components/UTCheckbox/versions/V1/index.js +1 -1
- package/dist/components/UTCheckbox/versions/V1/styles.module.scss +6 -0
- package/dist/components/UTCheckbox/versions/V1/theme.js +1 -1
- package/dist/components/UTCuit/versions/V1/styles.module.scss +1 -1
- package/dist/components/UTDatePicker/versions/V1/constants.js +1 -1
- package/dist/components/UTDatePicker/versions/V1/index.js +1 -1
- package/dist/components/UTDatePicker/versions/V1/styles.module.scss +11 -0
- package/dist/components/UTDocumentWizard/index.js +1 -1
- package/dist/components/UTFieldLabel/styles.module.scss +4 -4
- package/dist/components/UTFileInput/layout.js +1 -1
- package/dist/components/UTFileInput/styles.module.scss +10 -10
- package/dist/components/UTHeader/index.js +1 -1
- package/dist/components/UTHeader/styles.module.scss +5 -6
- package/dist/components/UTIcon/constants.js +1 -1
- package/dist/components/UTIcon/index.js +1 -1
- package/dist/components/UTIcon/styles.module.scss +2 -1
- package/dist/components/UTIcon/theme.js +1 -1
- package/dist/components/UTImageRadio/components/ImageRadioCard/styles.module.scss +6 -11
- package/dist/components/UTImageRadio/index.js +1 -1
- package/dist/components/UTImageRadio/styles.module.scss +2 -2
- package/dist/components/UTKpi/styles.module.scss +5 -5
- package/dist/components/UTLabel/components/Markdown/components/ListItem/index.js +1 -1
- package/dist/components/UTLabel/constants.js +1 -1
- package/dist/components/UTLabel/theme.js +1 -1
- package/dist/components/UTMenu/index.js +1 -1
- package/dist/components/UTPanel/versions/V1/components/AdditionalContentModule/styles.module.scss +8 -8
- package/dist/components/UTPanel/versions/V1/components/DataItem/styles.module.scss +5 -5
- package/dist/components/UTPanel/versions/V1/styles.module.scss +13 -13
- package/dist/components/UTPasswordField/versions/V0/components/PasswordValidations/components/Error/styles.module.scss +2 -2
- package/dist/components/UTPasswordField/versions/V0/components/PasswordValidations/components/Validation/styles.module.scss +2 -2
- package/dist/components/UTPasswordField/versions/V0/components/PasswordValidations/index.js +1 -1
- package/dist/components/UTPasswordField/versions/V0/components/PasswordWarning/styles.module.scss +3 -3
- package/dist/components/UTPhoneInput/versions/V1/styles.module.scss +2 -2
- package/dist/components/UTRadioGroup/versions/V1/components/Radio/constants.js +1 -1
- package/dist/components/UTRadioGroup/versions/V1/components/Radio/index.js +1 -1
- package/dist/components/UTRadioGroup/versions/V1/components/Radio/theme.js +1 -1
- package/dist/components/UTRadioGroup/versions/V1/components/Radio/utils.js +1 -0
- package/dist/components/UTRadioGroup/versions/V1/index.js +1 -1
- package/dist/components/UTRadioGroup/versions/V1/styles.module.scss +7 -11
- package/dist/components/UTRating/versions/V0/components/Faces/index.js +1 -1
- package/dist/components/UTRating/versions/V0/index.js +1 -1
- package/dist/components/UTSelect/versions/V0/components/Option/index.js +1 -1
- package/dist/components/UTSelect/versions/V0/index.js +1 -1
- package/dist/components/UTSelect/versions/V1/styles.module.scss +1 -1
- package/dist/components/UTSelectableCard/constants.js +1 -1
- package/dist/components/UTSelectableCard/index.js +1 -1
- package/dist/components/UTSelectableCard/theme.js +1 -1
- package/dist/components/UTSelectableCard/utils.js +1 -0
- package/dist/components/UTSignature/theme.js +1 -1
- package/dist/components/UTStatusMessage/constants.js +1 -1
- package/dist/components/UTStatusMessage/index.js +1 -1
- package/dist/components/UTStatusMessage/styles.module.scss +32 -1
- package/dist/components/UTStatusMessage/theme.js +1 -1
- package/dist/components/UTStepper/styles.module.scss +1 -1
- package/dist/components/UTSwitch/versions/V0/index.js +1 -1
- package/dist/components/UTSwitch/versions/V1/constants.js +1 -1
- package/dist/components/UTSwitch/versions/V1/index.js +1 -1
- package/dist/components/UTSwitch/versions/V1/styles.module.scss +0 -2
- package/dist/components/UTSwitch/versions/V1/theme.js +1 -1
- package/dist/components/UTTable/components/ActionIcons/index.js +1 -1
- package/dist/components/UTTable/components/ResponsiveCell/index.js +1 -1
- package/dist/components/UTTextArea/versions/V0/styles.module.scss +4 -4
- package/dist/components/UTTextInput/versions/V0/index.js +1 -1
- package/dist/components/UTTextInput/versions/V1/styles.module.scss +1 -1
- package/dist/components/UTTopbar/components/UserMenu/index.js +1 -1
- package/dist/components/UTVirtualizedList/components/VirtualizedData/index.js +1 -1
- package/dist/components/UTWorkflowContainer/versions/V1/components/NavActions/index.js +1 -1
- package/dist/components/UTWorkflowContainer/versions/V1/components/NavActions/styles.module.scss +8 -8
- package/dist/components/UTWorkflowContainer/versions/V1/constants.js +1 -1
- package/dist/components/UTWorkflowContainer/versions/V1/index.js +1 -1
- package/dist/components/UTWorkflowContainer/versions/V1/styles.module.scss +42 -14
- package/dist/components/UTWorkflowContainer/versions/V1/theme.js +1 -1
- package/dist/constants/testIds.js +1 -1
- package/dist/esm/components/UTActionCard/components/AdditionalMessage/styles.module.scss +3 -3
- package/dist/esm/components/UTActionCard/components/BottomActions/styles.module.scss +1 -1
- package/dist/esm/components/UTActionCard/components/Header/styles.module.scss +7 -7
- package/dist/esm/components/UTActionCard/components/HeaderActions/index.js +1 -1
- package/dist/esm/components/UTActionCard/components/HeaderActions/styles.module.scss +1 -1
- package/dist/esm/components/UTActionCard/styles.module.scss +6 -6
- package/dist/esm/components/UTAlert/styles.module.scss +4 -4
- package/dist/esm/components/UTAttachmentList/components/Preview/styles.module.scss +2 -2
- package/dist/esm/components/UTAttachmentList/components/PreviewModal/styles.module.scss +1 -1
- package/dist/esm/components/UTAttachmentList/constants.js +1 -1
- package/dist/esm/components/UTAttachmentList/index.js +1 -1
- package/dist/esm/components/UTAttachmentList/layout.js +1 -1
- package/dist/esm/components/UTAttachmentList/styles.module.scss +19 -35
- package/dist/esm/components/UTAttachmentList/theme.js +1 -1
- package/dist/esm/components/UTAttachmentList/utils.js +1 -1
- package/dist/esm/components/UTBaseInputField/components/IconAdornment/constants.js +1 -1
- package/dist/esm/components/UTBaseInputField/components/IconAdornment/index.js +1 -1
- package/dist/esm/components/UTBaseInputField/components/TooltipAdornment/index.js +1 -1
- package/dist/esm/components/UTBaseInputField/index.js +1 -1
- package/dist/esm/components/UTBaseInputField/styles.module.scss +6 -3
- package/dist/esm/components/UTBaseInputField/theme.js +1 -1
- package/dist/esm/components/UTBreadcrumbs/styles.module.scss +1 -1
- package/dist/esm/components/UTButton/styles.module.scss +10 -9
- package/dist/esm/components/UTCarousel/components/Slider/layout.js +1 -1
- package/dist/esm/components/UTCheckList/versions/V1/styles.module.scss +6 -9
- package/dist/esm/components/UTCheckbox/versions/V0/index.js +1 -1
- package/dist/esm/components/UTCheckbox/versions/V1/index.js +1 -1
- package/dist/esm/components/UTCheckbox/versions/V1/styles.module.scss +6 -0
- package/dist/esm/components/UTCheckbox/versions/V1/theme.js +1 -1
- package/dist/esm/components/UTCuit/versions/V1/styles.module.scss +1 -1
- package/dist/esm/components/UTDatePicker/versions/V1/constants.js +1 -1
- package/dist/esm/components/UTDatePicker/versions/V1/index.js +1 -1
- package/dist/esm/components/UTDatePicker/versions/V1/styles.module.scss +11 -0
- package/dist/esm/components/UTDocumentWizard/index.js +1 -1
- package/dist/esm/components/UTFieldLabel/styles.module.scss +4 -4
- package/dist/esm/components/UTFileInput/layout.js +1 -1
- package/dist/esm/components/UTFileInput/styles.module.scss +10 -10
- package/dist/esm/components/UTHeader/index.js +1 -1
- package/dist/esm/components/UTHeader/styles.module.scss +5 -6
- package/dist/esm/components/UTIcon/constants.js +1 -1
- package/dist/esm/components/UTIcon/index.js +1 -1
- package/dist/esm/components/UTIcon/styles.module.scss +2 -1
- package/dist/esm/components/UTIcon/theme.js +1 -1
- package/dist/esm/components/UTImageRadio/components/ImageRadioCard/styles.module.scss +6 -11
- package/dist/esm/components/UTImageRadio/index.js +1 -1
- package/dist/esm/components/UTImageRadio/styles.module.scss +2 -2
- package/dist/esm/components/UTKpi/styles.module.scss +5 -5
- package/dist/esm/components/UTLabel/components/Markdown/components/ListItem/index.js +1 -1
- package/dist/esm/components/UTLabel/constants.js +1 -1
- package/dist/esm/components/UTLabel/theme.js +1 -1
- package/dist/esm/components/UTMenu/index.js +1 -1
- package/dist/esm/components/UTPanel/versions/V1/components/AdditionalContentModule/styles.module.scss +8 -8
- package/dist/esm/components/UTPanel/versions/V1/components/DataItem/styles.module.scss +5 -5
- package/dist/esm/components/UTPanel/versions/V1/styles.module.scss +13 -13
- package/dist/esm/components/UTPasswordField/versions/V0/components/PasswordValidations/components/Error/styles.module.scss +2 -2
- package/dist/esm/components/UTPasswordField/versions/V0/components/PasswordValidations/components/Validation/styles.module.scss +2 -2
- package/dist/esm/components/UTPasswordField/versions/V0/components/PasswordValidations/index.js +1 -1
- package/dist/esm/components/UTPasswordField/versions/V0/components/PasswordWarning/styles.module.scss +3 -3
- package/dist/esm/components/UTPhoneInput/versions/V1/styles.module.scss +2 -2
- package/dist/esm/components/UTRadioGroup/versions/V1/components/Radio/constants.js +1 -1
- package/dist/esm/components/UTRadioGroup/versions/V1/components/Radio/index.js +1 -1
- package/dist/esm/components/UTRadioGroup/versions/V1/components/Radio/theme.js +1 -1
- package/dist/esm/components/UTRadioGroup/versions/V1/components/Radio/utils.js +1 -0
- package/dist/esm/components/UTRadioGroup/versions/V1/index.js +1 -1
- package/dist/esm/components/UTRadioGroup/versions/V1/styles.module.scss +7 -11
- package/dist/esm/components/UTRating/versions/V0/components/Faces/index.js +1 -1
- package/dist/esm/components/UTRating/versions/V0/index.js +1 -1
- package/dist/esm/components/UTSelect/versions/V0/components/Option/index.js +1 -1
- package/dist/esm/components/UTSelect/versions/V0/index.js +1 -1
- package/dist/esm/components/UTSelect/versions/V1/styles.module.scss +1 -1
- package/dist/esm/components/UTSelectableCard/constants.js +1 -1
- package/dist/esm/components/UTSelectableCard/index.js +1 -1
- package/dist/esm/components/UTSelectableCard/theme.js +1 -1
- package/dist/esm/components/UTSelectableCard/utils.js +1 -0
- package/dist/esm/components/UTSignature/theme.js +1 -1
- package/dist/esm/components/UTStatusMessage/constants.js +1 -1
- package/dist/esm/components/UTStatusMessage/index.js +1 -1
- package/dist/esm/components/UTStatusMessage/styles.module.scss +32 -1
- package/dist/esm/components/UTStatusMessage/theme.js +1 -1
- package/dist/esm/components/UTStepper/styles.module.scss +1 -1
- package/dist/esm/components/UTSwitch/versions/V0/index.js +1 -1
- package/dist/esm/components/UTSwitch/versions/V1/constants.js +1 -1
- package/dist/esm/components/UTSwitch/versions/V1/index.js +1 -1
- package/dist/esm/components/UTSwitch/versions/V1/styles.module.scss +0 -2
- package/dist/esm/components/UTSwitch/versions/V1/theme.js +1 -1
- package/dist/esm/components/UTTable/components/ActionIcons/index.js +1 -1
- package/dist/esm/components/UTTable/components/ResponsiveCell/index.js +1 -1
- package/dist/esm/components/UTTextArea/versions/V0/styles.module.scss +4 -4
- package/dist/esm/components/UTTextInput/versions/V0/index.js +1 -1
- package/dist/esm/components/UTTextInput/versions/V1/styles.module.scss +1 -1
- package/dist/esm/components/UTTopbar/components/UserMenu/index.js +1 -1
- package/dist/esm/components/UTVirtualizedList/components/VirtualizedData/index.js +1 -1
- package/dist/esm/components/UTWorkflowContainer/versions/V1/components/NavActions/index.js +1 -1
- package/dist/esm/components/UTWorkflowContainer/versions/V1/components/NavActions/styles.module.scss +8 -8
- package/dist/esm/components/UTWorkflowContainer/versions/V1/constants.js +1 -1
- package/dist/esm/components/UTWorkflowContainer/versions/V1/index.js +1 -1
- package/dist/esm/components/UTWorkflowContainer/versions/V1/styles.module.scss +42 -14
- package/dist/esm/components/UTWorkflowContainer/versions/V1/theme.js +1 -1
- package/dist/esm/constants/testIds.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/types/iconTypes.js +1 -1
- package/dist/esm/utils/hooks/useCSSVariables/appearanceTokens.js +1 -1
- package/dist/esm/utils/hooks/useCSSVariables/dimensionTokens.js +1 -1
- package/dist/index.js +1 -1
- package/dist/types/iconTypes.js +1 -1
- package/dist/utils/hooks/useCSSVariables/appearanceTokens.js +1 -1
- package/dist/utils/hooks/useCSSVariables/dimensionTokens.js +1 -1
- package/package.json +1 -1
- package/dist/components/UTSelectableCard/assets/check.svg +0 -3
- package/dist/esm/components/UTSelectableCard/assets/check.svg +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useEffect,useRef,useState}from"react";import{func,arrayOf,string,shape,number,node,bool,objectOf,oneOfType,any}from"prop-types";import{fileSignatureValidation,fileSizeValidation}from"@widergy/web-utils/lib/validate";import{resizeImage}from"@widergy/web-utils/lib/image";import{isIE}from"@widergy/web-utils/lib/browser";import isEmpty from"lodash/isEmpty";import{buttonTypes}from"../../types/buttonTypes";import WithTheme from"../WithTheme";import{retrieveStyle}from"./theme";import{FORMAT_ERROR_TEXT,SIZE_ERROR_TEXT,ASPECT_RATIO_ERROR_TEXT,MAX_FILES_ERROR,DEFAULT_MAX_FILES,PREVIEW_TYPES}from"./constants";import Attachment from"./layout";import{pdfAspectRatioValidation,isImage,isPDF,getSizeInMB,hasPreview,isDownloadable,getNotRepeatedFiles,getBlobFromUrl,getDefaultAttachment}from"./utils";const AttachmentListContainer=e=>{var t,a,i,n
|
|
1
|
+
import React,{useEffect,useRef,useState}from"react";import{func,arrayOf,string,shape,number,node,bool,objectOf,oneOfType,any}from"prop-types";import{fileSignatureValidation,fileSizeValidation}from"@widergy/web-utils/lib/validate";import{resizeImage}from"@widergy/web-utils/lib/image";import{isIE}from"@widergy/web-utils/lib/browser";import isEmpty from"lodash/isEmpty";import{buttonTypes}from"../../types/buttonTypes";import WithTheme from"../WithTheme";import{retrieveStyle}from"./theme";import{FORMAT_ERROR_TEXT,SIZE_ERROR_TEXT,ASPECT_RATIO_ERROR_TEXT,MAX_FILES_ERROR,DEFAULT_MAX_FILES,PREVIEW_TYPES}from"./constants";import Attachment from"./layout";import{pdfAspectRatioValidation,isImage,isPDF,getSizeInMB,hasPreview,isDownloadable,getNotRepeatedFiles,getBlobFromUrl,getDefaultAttachment,getUploadIconAreaColors}from"./utils";const AttachmentListContainer=e=>{var t,a,i,r,n;let{acceptedFileTypes:l,actions:o,allowedPDFUploadSizes:s,classes:d,containerClassname:u,customValidation:m,dataTestId:c,deleteDataTestId:f,disabled:p,disableResize:y,errorClassname:g,field:v,fieldTypes:E=[],hideLabels:T,icon:R,input:h,loadingTextClassname:b,maxFileSize:A=99999999,onLoaded:I,notifyOnInitialLoad:O=!0,previewDataTestId:_,readOnly:S=!1,resizeConfig:w,sanitize:C,theme:F,titleVariant:z}=e;const{areaBackground:P,areaBorderColor:D}=getUploadIconAreaColors(F),L=null==v||null===(t=v.configuration)||void 0===t?void 0:t.help_text,x=(null==v||null===(a=v.configuration)||void 0===a?void 0:a.max_file_size)||A,V=(null==v||null===(i=v.configuration)||void 0===i?void 0:i.accepted_file_types)||l,M=(null==v||null===(r=v.configuration)||void 0===r?void 0:r.max_files)||DEFAULT_MAX_FILES,[B,X]=useState([]),[U,W]=useState(!1),[j,N]=useState(FORMAT_ERROR_TEXT),Y=useRef(null),[k,G]=useState((null==h||null===(n=h.value)||void 0===n?void 0:n.files)||[]),Z=(e,t)=>{W(!0),N(t?"".concat(e,"(").concat(t,")"):e)},H=async e=>{const t=e=>new Promise((t,a)=>{const i=new FileReader;i.onload=a=>{hasPreview(e)||isDownloadable(e)?t({src:a.target.result,file:e}):t({src:null,file:e})},i.onerror=e=>a(e),i.readAsDataURL(e)});try{const a=(await Promise.all(e.map(t))).map(e=>{let{src:t,file:a}=e;return((e,t)=>({...t,src:e}))(t,{type:a.type,name:a.name,size:getSizeInMB(a.size),onClick:()=>{return(e=a.name)&&X(t=>t.filter(t=>t.name!==e)),G(t=>{const a=Object.values(t).filter(t=>t.name!==e);return h.onChange&&h.onChange(isEmpty(a)?null:{files:a}),a}),Y.current&&(Y.current.value=null),void W(!1);var e}})});X(e=>getNotRepeatedFiles([...(e||[]).filter(e=>"loading"!==e.type),...a]))}catch(e){X(e=>(e||[]).filter(e=>"loading"!==e.type)),Z(null==e?void 0:e.message)}},q=async function(){var e,t;let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const r=Array.isArray(h.value)?h.value.length:1;if(a===r)return I&&I(),O&&h.onChange&&h.onChange({files:i}),G(i),void H(i);const n=Array.isArray(h.value)?h.value.flatMap(e=>Object.values(e)[0]):h.value,l=Array.isArray(h.value)?(null===(e=h.value[a])||void 0===e?void 0:e.url)||(null===(t=n[a])||void 0===t?void 0:t.url):h.value;getBlobFromUrl(l,async e=>{if(e){var t,r;const l=Array.isArray(h.value)?(null===(t=h.value[a])||void 0===t?void 0:t.name)||(null===(r=n[a])||void 0===r?void 0:r.name):null,o=new File([e],l||getDefaultAttachment(e.type.substring(e.type.indexOf("/")+1),a+1),{type:e.type});q(a+1,[...i,o])}else X(e=>{let t=!1;return e.map(e=>t||e.type!==PREVIEW_TYPES.LOADING?e:(t=!0,{...e,type:PREVIEW_TYPES.ERROR}))}),q(a+1,i)})};return useEffect(()=>{var e;if(isEmpty(k)?isEmpty(null===(e=h.value)||void 0===e?void 0:e.files)||H(h.value.files):H(k),Array.isArray(h.value)&&!isEmpty(h.value)||h.value&&"string"==typeof h.value){if(isEmpty(B)){const e=Array.isArray(h.value)?h.value.length:1;X(Array.from({length:e},()=>({type:PREVIEW_TYPES.LOADING})))}q()}},[h]),React.createElement(Attachment,{actions:o,acceptedFileTypes:V,areaBackground:P,areaBorderColor:D,classes:d,containerClassname:u,disabled:p,dataTestId:c,deleteDataTestId:f,error:U,errorClassname:g,errorText:j,field:v,fieldTypes:E,fileInputRef:Y,helpText:L,hideLabels:T,icon:R,loadingTextClassname:b,maxFiles:M,maxFileSize:getSizeInMB(x),onChange:async e=>{var t;const a=(null===(t=h.value)||void 0===t?void 0:t.files)||k,i=Object.values(isEmpty(a)?e.target.files:getNotRepeatedFiles([...a,...e.target.files])),r={formatError:FORMAT_ERROR_TEXT,sizeError:"".concat(SIZE_ERROR_TEXT," ").concat(getSizeInMB(x),"MB."),aspectRatioError:"".concat(ASPECT_RATIO_ERROR_TEXT," ").concat(null==s?void 0:s.map(e=>e.name).join(" - "),")")};W(!1);const n=async e=>{if(e<i.length){if(M&&i.length>M)return void Z(MAX_FILES_ERROR,M);let t=i[e];if(t){let a=!m||await m(t,Z);if(a){if(a=await fileSignatureValidation(t,E,t.type),!a)return void Z(r.formatError);if(C&&(t=await C(t)),a=fileSizeValidation(t,x),a&&isPDF(t)&&!isEmpty(s)&&(a=await pdfAspectRatioValidation(t,s),!a))return void Z(r.aspectRatioError);if(a||y||!isImage(t)||isIE()||(t=await resizeImage(t,w),a=fileSizeValidation(t,x),i[e]=t),!a)return void Z(r.sizeError)}}await n(e+1)}else h.onChange&&h.onChange({files:i}),G(i),await H(i)};await n(0)},preview:B,previewDataTestId:_,readOnly:S,titleVariant:z})};AttachmentListContainer.propTypes={acceptedFileTypes:string,actions:arrayOf(buttonTypes),allowedPDFUploadSizes:arrayOf(shape({name:string,heightInPt:number,widthInPt:number,tolerance:number})),classes:objectOf(string),containerClassname:string,customValidation:func,disabled:bool,dataTestId:string,deleteDataTestId:string,disableResize:bool,errorClassname:string,field:any,fieldTypes:arrayOf(string),hideLabels:bool,icon:node,input:shape({value:oneOfType([string,shape({name:string,type:string})])}),loadingTextClassname:string,maxFileSize:number,onLoaded:func,notifyOnInitialLoad:bool,previewDataTestId:string,readOnly:bool,resizeConfig:shape({type:string,maxWidth:number,maxHeight:number}),sanitize:func,theme:any,titleVariant:string};export default WithTheme(retrieveStyle)(AttachmentListContainer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{Fragment,useState}from"react";import{shape,string,bool,func,arrayOf,objectOf,elementType,instanceOf,number,object}from"prop-types";import{inputFiles}from"@widergy/web-utils/lib/constants/files";import isEmpty from"lodash/isEmpty";import download from"downloadjs";import{buttonTypes}from"../../types/buttonTypes";import UTLabel from"../UTLabel";import UTButton from"../UTButton";import UTIcon from"../UTIcon";import UTFieldLabel from"../UTFieldLabel";import{DEFAULT_UPLOADING_TEXT,FILE_NOT_FOUND_ERROR_TEXT,FORMAT_FILE_LABEL,ICON_SIZE,INDICATIONS,MAX_SIZE_FILE_LABEL,MB_LABEL,PREVIEW_TYPES,
|
|
1
|
+
import React,{Fragment,useState}from"react";import{shape,string,bool,func,arrayOf,objectOf,elementType,instanceOf,number,object}from"prop-types";import{inputFiles}from"@widergy/web-utils/lib/constants/files";import isEmpty from"lodash/isEmpty";import download from"downloadjs";import{buttonTypes}from"../../types/buttonTypes";import UTLabel from"../UTLabel";import UTButton from"../UTButton";import UTIcon from"../UTIcon";import UTFieldLabel from"../UTFieldLabel";import UTValidation from"../UTValidation";import{formatErrorToValidation}from"../UTValidation/utils";import{DEFAULT_UPLOADING_TEXT,FILE_NOT_FOUND_ERROR_TEXT,FORMAT_FILE_LABEL,ICON_SIZE,INDICATIONS,MAX_SIZE_FILE_LABEL,MB_LABEL,PREVIEW_TYPES,UPLOAD_ICON_AREA_RADIUS,UPLOAD_ICON_AREA_SIZE,UPLOAD_ICON_SIZE,previewPropType}from"./constants";import Preview from"./components/Preview";import{getAvailableFileTypesLabel,isAudio,isDownloadable,isImage,isVideo}from"./utils";import PreviewModal from"./components/PreviewModal";import styles from"./styles.module.scss";const AttachmentList=e=>{var t;let{actions:a,acceptedFileTypes:r,areaBackground:o,areaBorderColor:l,classes:n,dataTestId:i,deleteDataTestId:c,disabled:s,error:m,errorClassname:d,errorText:p,field:T,fieldTypes:E=[],fileInputRef:I,helpText:R,hideLabels:y,maxFiles:u,maxFileSize:v,onChange:L,preview:_,previewDataTestId:b,readOnly:f,RemoveIcon:O,titleVariant:g}=e;const U=((null==T||null===(t=T.configuration)||void 0===t?void 0:t.ignore_title)||y)&&(null==T?void 0:T.title),A=r||E.map(e=>inputFiles[e].inputType).join(),N=O||"IconTrash",C=isEmpty(_),w=_.length<u,[h,P]=useState(!1),[F,D]=useState(null),[S,B]=useState(!1),M=e=>{D(e),P(!0)};return React.createElement(React.Fragment,null,U&&React.createElement("div",{className:styles.upperTitleContainer},React.createElement(UTFieldLabel,{actions:a,readOnly:T.read_only,size:g,required:T.required},null==T?void 0:T.title)),React.createElement("div",{className:"".concat(styles.container," ").concat(n.container," ").concat(m&&n.errorContainer," ").concat(f&&n.readOnlyContainer),onMouseEnter:()=>B(!0),onMouseLeave:()=>B(!1)},!C&&_.map(e=>React.createElement("div",{className:"".concat(styles.previewContainer," ").concat(n.previewContainer),"data-testid":b},e.type===PREVIEW_TYPES.LOADING?React.createElement(React.Fragment,null,React.createElement(UTIcon,{name:"IconLoader",className:styles.loaderIcon,size:ICON_SIZE,colorTheme:"accent"}),React.createElement(UTLabel,{className:styles.loadingText,colorTheme:"gray",variant:"small"},DEFAULT_UPLOADING_TEXT),React.createElement("div",null)):e.type===PREVIEW_TYPES.ERROR?React.createElement(React.Fragment,null,React.createElement(UTIcon,{name:"IconX",colorTheme:"error",size:ICON_SIZE}),React.createElement(UTLabel,{className:styles.errorText,colorTheme:"error",variant:"small"},FILE_NOT_FOUND_ERROR_TEXT),React.createElement("div",null)):React.createElement(React.Fragment,null,e.src?React.createElement(Preview,{classes:n,openPreviewModal:M,preview:e,previewProps:_.previewProps}):React.createElement(UTIcon,{name:"IconCheck",colorTheme:"accent",size:ICON_SIZE}),React.createElement("div",{className:styles.fileContainer},React.createElement(UTLabel,{colorTheme:"gray",variant:"small"},e.name),React.createElement(UTLabel,{colorTheme:"gray",variant:"small"},e.size,MB_LABEL)),(isAudio(e)||isVideo(e))&&React.createElement(UTButton,{disabled:s,Icon:"IconPlayerPlay",onClick:()=>{D(e),P(!0)},size:"small",variant:"text"}),(isDownloadable(e)||f&&isImage(e))&&e.src&&React.createElement(UTButton,{Icon:"IconDownload",onClick:()=>download(e.src,e.name,e.type),size:"small",variant:"text"}),!f&&React.createElement(UTButton,{dataTestId:c,disabled:s,Icon:N,onClick:e.onClick,size:"small",variant:"text"})))),!f&&C&&React.createElement(UTIcon,{area:!0,areaBackground:o,areaBorderColor:l,areaRadius:UPLOAD_ICON_AREA_RADIUS,areaSize:UPLOAD_ICON_AREA_SIZE,className:"".concat(styles.filesIcon," ").concat(n.filesIcon),colorTheme:S?"accent":"gray",name:"IconCloudUpload",shade:S?"03":void 0,size:UPLOAD_ICON_SIZE}),!f&&React.createElement("div",{className:"".concat(styles.labelAndInputContainer," ").concat(!C&&styles.positionRelative)},C&&React.createElement(UTLabel,{colorTheme:S?"accent":void 0,shade:S?"05":void 0,variant:"body"},INDICATIONS),w&&React.createElement("input",{className:styles.input,"data-testid":i,accept:A,ref:I,type:"file",onChange:L,disabled:s,multiple:!0})),!f&&React.createElement(UTLabel,{colorTheme:"gray",variant:"small",className:styles.aclaration},"".concat(FORMAT_FILE_LABEL).concat(getAvailableFileTypesLabel(A),".")," ",React.createElement("br",null),"".concat(MAX_SIZE_FILE_LABEL).concat(v,"MB"))),R&&React.createElement(UTLabel,{className:styles.helpText,colorTheme:"gray",variant:"small"},R),m&&React.createElement(UTValidation,{className:"".concat(styles.errorMessage," ").concat(d||""),validationData:formatErrorToValidation(p)}),h&&React.createElement(PreviewModal,{preview:F,previewProps:_.previewProps,previewModalIsOpen:h,closePreviewModal:()=>P(!1)}))};AttachmentList.propTypes={acceptedFileTypes:string,actions:arrayOf(buttonTypes),areaBackground:string,areaBorderColor:string,classes:objectOf(string),dataTestId:string,deleteDataTestId:string,disabled:bool,error:bool,errorClassname:string,errorText:string,field:object,fieldTypes:arrayOf(string),fileInputRef:objectOf(shape({current:instanceOf(Element)})),helpText:string,hideLabels:bool,maxFileSize:number,maxFiles:number,onChange:func,preview:arrayOf(shape({src:string,type:string})),previewDataTestId:string,previewProps:previewPropType,readOnly:bool,RemoveIcon:elementType,titleVariant:string};export default AttachmentList;
|
|
@@ -1,37 +1,29 @@
|
|
|
1
|
-
$box-shadow: #e4e6eae5;
|
|
2
|
-
|
|
3
1
|
.container {
|
|
4
2
|
align-items: center;
|
|
5
|
-
border-radius:
|
|
3
|
+
border-radius: var(--UT-attachmentList-radius, 4px);
|
|
6
4
|
display: flex;
|
|
7
5
|
flex-direction: column;
|
|
8
|
-
gap: 16px;
|
|
9
|
-
grid-gap: 16px;
|
|
10
|
-
height:
|
|
11
|
-
|
|
12
|
-
max-width: 452px;
|
|
13
|
-
min-height: 210px;
|
|
14
|
-
padding: 0 16px;
|
|
6
|
+
gap: var(--UT-attachmentList-gap-lg, 16px);
|
|
7
|
+
grid-gap: var(--UT-attachmentList-gap-lg, 16px);
|
|
8
|
+
height: auto;
|
|
9
|
+
padding: var(--UT-attachmentList-padding-md, 16px);
|
|
15
10
|
position: relative;
|
|
16
|
-
|
|
11
|
+
background-color: var(--light01);
|
|
17
12
|
}
|
|
18
13
|
|
|
19
14
|
.filesIcon {
|
|
20
15
|
margin-bottom: -8px;
|
|
16
|
+
transition: color 0.2s ease-in-out, stroke 0.2s ease-in-out;
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
.labelAndInputContainer {
|
|
24
20
|
align-items: center;
|
|
25
21
|
display: flex;
|
|
26
|
-
grid-gap:
|
|
22
|
+
grid-gap: var(--UT-attachmentList-gap-sm, 8px);
|
|
27
23
|
justify-content: center;
|
|
28
24
|
width: 100%;
|
|
29
25
|
}
|
|
30
26
|
|
|
31
|
-
.uploadButtonFullWidth {
|
|
32
|
-
width: 100%;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
27
|
.input {
|
|
36
28
|
cursor: pointer;
|
|
37
29
|
display: block;
|
|
@@ -46,27 +38,22 @@ $box-shadow: #e4e6eae5;
|
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
.aclaration {
|
|
49
|
-
margin-bottom: 16px;
|
|
50
41
|
text-align: center;
|
|
51
42
|
}
|
|
52
43
|
|
|
53
44
|
.previewContainer {
|
|
54
45
|
align-items: center;
|
|
55
|
-
border-radius:
|
|
56
|
-
|
|
46
|
+
border-radius: var(--UT-attachmentList-radius, 4px);
|
|
47
|
+
border: 1px solid var(--light04);
|
|
57
48
|
box-sizing: border-box;
|
|
58
49
|
cursor: initial;
|
|
59
50
|
display: flex;
|
|
60
51
|
flex-direction: row;
|
|
61
|
-
grid-gap: 16px;
|
|
52
|
+
grid-gap: var(--UT-attachmentList-gap-lg, 16px);
|
|
62
53
|
justify-content: space-between;
|
|
63
|
-
padding: 16px;
|
|
54
|
+
padding: var(--UT-attachmentList-padding-md, 16px);
|
|
64
55
|
width: 100%;
|
|
65
56
|
z-index: 5;
|
|
66
|
-
|
|
67
|
-
&:first-child {
|
|
68
|
-
margin-top: 16px;
|
|
69
|
-
}
|
|
70
57
|
}
|
|
71
58
|
|
|
72
59
|
.positionRelative {
|
|
@@ -77,19 +64,16 @@ $box-shadow: #e4e6eae5;
|
|
|
77
64
|
display: flex;
|
|
78
65
|
flex: 1;
|
|
79
66
|
flex-direction: column;
|
|
80
|
-
grid-gap: 4px;
|
|
67
|
+
grid-gap: var(--UT-attachmentList-gap-xs, 4px);
|
|
81
68
|
overflow-wrap: anywhere;
|
|
82
69
|
}
|
|
83
70
|
|
|
84
71
|
.helpText {
|
|
85
|
-
margin-top: 12px;
|
|
72
|
+
margin-top: var(--UT-attachmentList-margin-sm, 12px);
|
|
86
73
|
}
|
|
87
74
|
|
|
88
|
-
.
|
|
89
|
-
|
|
90
|
-
flex-direction: row;
|
|
91
|
-
grid-gap: 8px;
|
|
92
|
-
margin-top: 12px;
|
|
75
|
+
.errorMessage {
|
|
76
|
+
margin-top: var(--UT-attachmentList-gap-sm, 8px);
|
|
93
77
|
}
|
|
94
78
|
|
|
95
79
|
@keyframes rotate {
|
|
@@ -112,6 +96,6 @@ $box-shadow: #e4e6eae5;
|
|
|
112
96
|
}
|
|
113
97
|
|
|
114
98
|
.upperTitleContainer {
|
|
115
|
-
padding:
|
|
116
|
-
width:
|
|
117
|
-
}
|
|
99
|
+
padding-bottom: var(--UT-attachmentList-padding-md, 16px);
|
|
100
|
+
width: 500px;
|
|
101
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const retrieveStyle=e=>{var o,t,l
|
|
1
|
+
export const retrieveStyle=e=>{var o,r,t,l;let{theme:i}=e;return{container:{border:"1px solid ".concat(null===(o=i.Palette)||void 0===o?void 0:o.light["04"])},errorContainer:{border:"2px solid ".concat(null===(r=i.Palette)||void 0===r?void 0:r.error["04"])},previewContainer:{backgroundColor:null===(t=i.Palette)||void 0===t?void 0:t.light["01"]},readOnlyContainer:{border:"1px solid ".concat(null===(l=i.Palette)||void 0===l?void 0:l.light["04"])}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{inputFiles}from"@widergy/web-utils/lib/constants/files";import{DEFAULT_ATTACHMENT_NAME}from"./constants";window["pdfjs-dist/build/pdf"]&&(window["pdfjs-dist/build/pdf"].GlobalWorkerOptions.workerSrc="//cdnjs.cloudflare.com/ajax/libs/pdf.js/".concat(window["pdfjs-dist/build/pdf"].version,"/pdf.worker.js"));const getImage=async e=>fetch(e,{method:"GET"}).catch(e=>console.error(e));export const getBlobFromUrl=async(e,t)=>{if(!e||!t)return!1;const i=await getImage(e);if(null!=i&&i.ok)try{t(await i.blob())}catch{t(null)}else t(null)};const lengthMatches=(e,t,i)=>{const
|
|
1
|
+
import{inputFiles}from"@widergy/web-utils/lib/constants/files";import{DEFAULT_ATTACHMENT_NAME}from"./constants";window["pdfjs-dist/build/pdf"]&&(window["pdfjs-dist/build/pdf"].GlobalWorkerOptions.workerSrc="//cdnjs.cloudflare.com/ajax/libs/pdf.js/".concat(window["pdfjs-dist/build/pdf"].version,"/pdf.worker.js"));const getImage=async e=>fetch(e,{method:"GET"}).catch(e=>console.error(e));export const getBlobFromUrl=async(e,t)=>{if(!e||!t)return!1;const i=await getImage(e);if(null!=i&&i.ok)try{t(await i.blob())}catch{t(null)}else t(null)};const lengthMatches=(e,t,i)=>{const o=e*(i/100);return Math.abs(e-t)<o},pageMatches=(e,t)=>{const i=e.getViewport({scale:1});return t.some(e=>lengthMatches(e.heightInPt,i.height,e.toleranceInPercentage)&&lengthMatches(e.widthInPt,i.width,e.toleranceInPercentage)||lengthMatches(e.heightInPt,i.width,e.toleranceInPercentage)&&lengthMatches(e.widthInPt,i.height,e.toleranceInPercentage))};export const pdfAspectRatioValidation=async(e,t)=>{const i=window["pdfjs-dist/build/pdf"].getDocument(URL.createObjectURL(e)),o=await i.promise,s=o.numPages,n=[];for(let e=1;e<=s;e+=1)n.push(o.getPage(e));return(await Promise.all(n)).every(e=>pageMatches(e,t))};export const isImage=e=>inputFiles.image.validType.includes(null==e?void 0:e.type);export const isPDF=e=>inputFiles.pdf.validType.includes(null==e?void 0:e.type);export const isAudio=e=>inputFiles.audio.validType.includes(null==e?void 0:e.type);export const isVideo=e=>inputFiles.video.validType.includes(null==e?void 0:e.type);export const isHTML=e=>inputFiles.html.validType.includes(null==e?void 0:e.type);export const isCSV=e=>inputFiles.csv.validType.includes(null==e?void 0:e.type);export const isXLS=e=>inputFiles.xls.validType.includes(null==e?void 0:e.type);export const isXLSX=e=>inputFiles.xlsx.validType.includes(null==e?void 0:e.type);export const isDownloadable=e=>isPDF(e)||isCSV(e)||isXLS(e)||isXLSX(e);export const hasPreview=e=>isImage(e)||isAudio(e)||isVideo(e)||isPDF(e);export const isValidFile=e=>hasPreview(e)||isPDF(e)||isHTML(e);export const isNewFile=(e,t)=>{var i,o;if(!e&&!t)return!1;if(!e||!t)return!0;const s=typeof e;return s!==typeof t||("string"===s?e!==t:(null===(i=e.file)||void 0===i?void 0:i.lastModified)!==(null===(o=t.file)||void 0===o?void 0:o.lastModified))};export const getAvailableFileTypesLabel=e=>Array.isArray(e)?e.join(", ").replace(/,\s([^,]+)$/," o $1"):e.split(",").filter(e=>e.trim().startsWith(".")).join(", ").replace(/,\s([^,]+)$/," o $1");export const getSizeInMB=e=>(e/1048576).toFixed(2);export const getNotRepeatedFiles=e=>e.filter((e,t,i)=>t===i.findIndex(t=>t.name===e.name));export const getDefaultAttachment=(e,t)=>"".concat(DEFAULT_ATTACHMENT_NAME,"-").concat(t).concat(e&&".".concat(e));export const getUploadIconAreaColors=e=>({areaBackground:e.Palette.light["01"],areaBorderColor:e.Palette.light["03"]});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const ERROR_ICON="IconAlertCircle";export const ICON_SIZE=
|
|
1
|
+
export const ERROR_ICON="IconAlertCircle";export const ICON_SIZE=16;export const ICON_SIZE_CSS_VAR="var(--UT-baseInput-adornment-size, 16px)";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(o){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var r in e)({}).hasOwnProperty.call(e,r)&&(o[r]=e[r])}return o},_extends.apply(null,arguments)}import React from"react";import{shape,string,elementType,bool,oneOfType,object}from"prop-types";import UTIcon from"../../../UTIcon";import{isUTIcon}from"../../../../utils/componentUtils";import{ERROR_ICON,ICON_SIZE}from"./constants";import{getIconColorProps}from"./utils";const IconAdornment=o=>{var n;let{changeIconOnError:e=!0,changeOnError:r,changeOnFocus:t,colorTheme:c,error:l,focused:s,Icon:i,inputStyle:
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(o){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var r in e)({}).hasOwnProperty.call(e,r)&&(o[r]=e[r])}return o},_extends.apply(null,arguments)}import React from"react";import{shape,string,elementType,bool,oneOfType,object}from"prop-types";import UTIcon from"../../../UTIcon";import{isUTIcon}from"../../../../utils/componentUtils";import{ERROR_ICON,ICON_SIZE,ICON_SIZE_CSS_VAR}from"./constants";import{getIconColorProps}from"./utils";const IconAdornment=o=>{var n;let{changeIconOnError:e=!0,changeOnError:r,changeOnFocus:t,colorTheme:c,error:l,focused:s,Icon:i,inputStyle:I,shade:a,showOnlyOnError:p}=o;const O=p||r;if(p&&!l)return null;const m=l&&e?ERROR_ICON:i;return m?isUTIcon(m)?React.createElement(UTIcon,_extends({name:m,size:ICON_SIZE_CSS_VAR},getIconColorProps(O,t,c,l,s,a))):React.createElement(i,{fill:null==I||null===(n=I.root)||void 0===n?void 0:n.color,size:ICON_SIZE,style:{fontSize:ICON_SIZE_CSS_VAR,height:ICON_SIZE_CSS_VAR,width:ICON_SIZE_CSS_VAR}}):null};IconAdornment.propTypes={changeIconOnError:bool,changeOnError:bool,changeOnFocus:bool,colorTheme:string,error:oneOfType([bool,string]),focused:bool,Icon:elementType,inputStyle:shape({root:object}),shade:string,showOnlyOnError:bool};export default IconAdornment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import{string}from"prop-types";import UTIcon from"../../../UTIcon";import UTTooltip from"../../../UTTooltip";import styles from"./styles.module.scss";const TooltipAdornment=t=>{let{contentDataTestId:o,dataTestId:e,tooltip:r}=t;return React.createElement(UTTooltip,{content:r,dataTestId:o},React.createElement("div",{className:styles.tooltip,"data-testid":e},React.createElement(UTIcon,{name:"IconInfoCircle",colorTheme:"gray"})))};TooltipAdornment.propTypes={contentDataTestId:string,dataTestId:string,tooltip:string};export default TooltipAdornment;
|
|
1
|
+
import React from"react";import{string}from"prop-types";import UTIcon from"../../../UTIcon";import UTTooltip from"../../../UTTooltip";import styles from"./styles.module.scss";const TooltipAdornment=t=>{let{contentDataTestId:o,dataTestId:e,tooltip:r}=t;return React.createElement(UTTooltip,{content:r,dataTestId:o,tippyProps:{appendTo:()=>document.body,interactive:!1}},React.createElement("div",{className:styles.tooltip,"data-testid":e},React.createElement(UTIcon,{name:"IconInfoCircle",colorTheme:"gray"})))};TooltipAdornment.propTypes={contentDataTestId:string,dataTestId:string,tooltip:string};export default TooltipAdornment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},_extends.apply(null,arguments)}import{string,bool,func,number,objectOf,arrayOf,shape,object,oneOfType,instanceOf}from"prop-types";import React,{useCallback,useMemo,useState}from"react";import TextField from"@material-ui/core/TextField";import{mergeClasses}from"../../utils/classesUtils";import UTLabel from"../UTLabel";import WithTheme from"../WithTheme";import{COMPONENTS_MAPPER,COMPONENT_KEYS}from"./constants";import{retrieveStyle}from"./theme";import{validateAdornments}from"./utils";import styles from"./styles.module.scss";const UTBaseInputField=e=>{let{autocomplete:t,classes:n,classNames:o={},dataKeyboard:a,dataTestId:
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},_extends.apply(null,arguments)}import{string,bool,func,number,objectOf,arrayOf,shape,object,oneOfType,instanceOf}from"prop-types";import React,{useCallback,useMemo,useState}from"react";import TextField from"@material-ui/core/TextField";import{mergeClasses}from"../../utils/classesUtils";import UTLabel from"../UTLabel";import WithTheme from"../WithTheme";import{COMPONENTS_MAPPER,COMPONENT_KEYS}from"./constants";import{retrieveStyle}from"./theme";import{validateAdornments}from"./utils";import styles from"./styles.module.scss";const UTBaseInputField=e=>{let{autocomplete:t,classes:n,classNames:o={},dataKeyboard:a,dataTestId:s,disabled:r,error:l,id:i,inputRef:c,inputSize:m,leftAdornments:u=[],maxLength:p,maxRows:d=1,minRows:f,muiProps:g,name:y,onBlur:h,onChange:b=()=>{},onFocus:O,onKeyDown:T=()=>{},placeholder:C,readOnly:v,rightAdornments:R=[],showCharacterCount:w,type:P,value:x=null}=e;const E=useMemo(()=>mergeClasses(n,o),[o,n]),[N,A]=useState(!1),S=useCallback(e=>{A(!0),null==O||O(e)},[O]),k=useCallback(e=>{A(!1),null==h||h(e)},[h]),M=useCallback(e=>{const t=e.target.value;if("numeric"===P){const e=t.replace(/\D/g,"");null==b||b(e)}else null==b||b(t)},[b,P]),j=useCallback(e=>{const t=["Backspace","ArrowLeft","ArrowRight","Delete","Tab","Enter"].includes(e.key),n=/^[0-9]$/.test(e.key);"numeric"!==P||n||t?t||e.stopPropagation():e.preventDefault(),T(e)},[P]),I=d>1,F="small"===m?styles.gapSmall:styles.gapMedium,_=useMemo(()=>w&&p&&!r&&!v,[w,p,r,v]),B=useMemo(()=>validateAdornments(u)?u:[],[u]),K=useMemo(()=>validateAdornments(R)?R:[],[R]),L=useCallback(e=>{const t=COMPONENTS_MAPPER[e.name],n={...e.props,error:l,focused:N,disabled:r&&!v,classNames:e.name===COMPONENT_KEYS.ACTION?{root:styles.actionButton}:void 0};return t?React.createElement(t,_extends({},n,{key:e.key||e.name})):null},[l,r,v,N]);return React.createElement(TextField,_extends({autocomplete:t||"new-password",className:E.container,disabled:r||v,error:l,form:{autocomplete:"off"},id:i,inputRef:c,margin:"none",maxRows:d,minRows:f||d,multiline:I,onBlur:k,onChange:M,onFocus:S,onKeyDown:j,placeholder:C,type:"numeric"===P?"text":P,value:x,variant:"outlined"},g,{InputProps:{inputProps:{autocomplete:t,"data-testid":s,"data-keyboard":a,maxLength:p,name:y,readOnly:v,...null==g?void 0:g.inputProps},classes:{adornedEnd:F,adornedStart:F,input:E.input,notchedOutline:"".concat(E.inputContainer," ").concat(N&&E.focusedInputContainer),root:"".concat(E.root," ").concat(N&&E.focusedRoot," ").concat(x&&E.withValueRoot)},startAdornment:B.length>0?React.createElement("div",{className:"".concat(styles.adornmentsContainer," ").concat(F)},B.map(L)):_&&React.createElement(UTLabel,{className:E.charactersCount,colorTheme:"gray",variant:"small"},(null==x?void 0:x.length)||0,"/",p),endAdornment:K.length>0&&React.createElement("div",{className:"".concat(styles.adornmentsContainer," ").concat(F," ").concat(I&&styles.multilineAdornmentsContainer)},K.map(L)),...null==g?void 0:g.InputProps}}))};export const propTypes={alwaysShowPlaceholder:bool,autocomplete:string,classes:objectOf(string),classNames:objectOf(string),dataKeyboard:string,dataTestId:string,disabled:bool,error:oneOfType([bool,string]),id:string,inputRef:oneOfType([func,shape({current:instanceOf(Element)})]),inputSize:string,leftAdornments:arrayOf(shape({name:string.isRequired,props:object})),maxLength:number,maxRows:number,minRows:number,muiProps:shape({inputProps:object,InputProps:object}),name:string,onBlur:func,onChange:func,onFocus:func,onKeyDown:func,placeholder:string,readOnly:bool,rightAdornments:arrayOf(shape({name:string.isRequired,props:object})),showCharacterCount:bool,type:string,value:string,variant:string};UTBaseInputField.propTypes=propTypes;export default WithTheme(retrieveStyle)(UTBaseInputField);
|
|
@@ -6,11 +6,14 @@
|
|
|
6
6
|
align-items: center;
|
|
7
7
|
display: flex;
|
|
8
8
|
flex-shrink: 0;
|
|
9
|
-
grid-gap: 16px;
|
|
10
9
|
}
|
|
11
10
|
|
|
12
|
-
.
|
|
13
|
-
grid-gap:
|
|
11
|
+
.gapMedium {
|
|
12
|
+
grid-gap: var(--UT-baseInput-gap-md, 8px);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.gapSmall {
|
|
16
|
+
grid-gap: var(--UT-baseInput-gap-sm, 4px);
|
|
14
17
|
}
|
|
15
18
|
|
|
16
19
|
.multilineAdornmentsContainer {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getFontStyles}from"../UTLabel/theme";import{getActionPalette}from"./utils";const charactersCountRowHeight=20,
|
|
1
|
+
import{getFontStyles}from"../UTLabel/theme";import{getActionPalette}from"./utils";const charactersCountRowHeight=20,PADDING_Y={medium:"var(--UT-baseInput-padding-y-md, 8px)",small:"var(--UT-baseInput-padding-y-sm, 4px)"},PADDING_X={medium:"var(--UT-baseInput-padding-x-md, 12px)",small:"var(--UT-baseInput-padding-x-sm, 8px)"},GRID_GAP={medium:"var(--UT-baseInput-gap-md, 8px)",small:"var(--UT-baseInput-gap-sm, 4px)"},getPaddingValues=t=>{const r="small"===t?"small":"medium",e=PADDING_Y[r];return{verticalPadding:e,horizontalPadding:PADDING_X[r],multilineVerticalPadding:"calc(".concat(e," + ").concat(GRID_GAP[r]," + ").concat(20,"px)")}},getBackgroundColor=t=>{let{theme:r,variant:e,error:a,disabled:o,readOnly:n}=t;return n?"transparent":"gray"===e?r.Palette.light["04"]:"transparent"===e&&a?r.Palette.error["01"]:"transparent"===e?"transparent":o?r.Palette.light["03"]:r.Palette.light["01"]},getBorderColor=t=>{let{theme:r,variant:e,error:a,readOnly:o,disabled:n}=t;return"gray"===e||"transparent"===e||o||n?"transparent !important":"".concat(a?r.Palette.error["04"]:r.Palette.light["04"]," !important")},getBackgroundColorOnHover=t=>{let{theme:r,variant:e,error:a,readOnly:o}=t;return"gray"===e?r.Palette.light["05"]:"transparent"===e&&a?r.Palette.error["02"]:o?void 0:r.Palette.light["03"]};export const retrieveStyle=t=>{let{alwaysShowPlaceholder:r,disabled:e,error:a,inputSize:o,maxLength:n,readOnly:l,showCharacterCount:i,theme:d,variant:p}=t;const c=e&&!l,s=i&&n&&!c&&!l,g=getActionPalette(d),{verticalPadding:u,horizontalPadding:m,multilineVerticalPadding:h}=getPaddingValues(o);return{charactersCount:{bottom:u,position:"absolute"},root:{backgroundColor:getBackgroundColor({theme:d,variant:p,error:a,disabled:c,readOnly:l}),borderRadius:"var(--UT-baseInput-radius, 8px)",paddingBottom:s?h:u,paddingLeft:m,paddingRight:m,paddingTop:u,...l&&{paddingLeft:0,paddingRight:0},"&:hover":{backgroundColor:getBackgroundColorOnHover({theme:d,variant:p,error:a,readOnly:l})},"&:active":{...!c&&!l&&{backgroundColor:d.Palette.light["01"],"& $inputContainer":{borderColor:"".concat(a?d.Palette.error["04"]:g["04"]," !important"),borderWidth:"1px !important"},"& $input":{"&::placeholder":{color:"".concat(d.Palette.gray["02"]," !important"),opacity:1}}}}},inputContainer:{borderColor:getBorderColor({theme:d,variant:p,error:a,readOnly:l,disabled:c}),borderRadius:"var(--UT-baseInput-radius, 8px)",borderWidth:"1px",transition:"border-color 0.15s ease, box-shadow 0.15s ease"},focusedRoot:{backgroundColor:"transparent"===p?d.Palette.light["03"]:d.Palette.light["01"],"&:hover":{backgroundColor:"transparent"===p?d.Palette.light["03"]:d.Palette.light["01"]},..."transparent"!==p&&!a&&{boxShadow:"0 0 0 4px ".concat(g["02"])},..."transparent"!==p&&a&&{boxShadow:"0 0 0 4px ".concat(d.Palette.error["02"])}},withValueRoot:{..."transparent"===p&&!a&&{backgroundColor:"transparent"}},focusedInputContainer:{..."transparent"!==p&&!a&&{borderColor:"".concat(g["04"]," !important"),borderWidth:"1px !important"},..."transparent"!==p&&a&&{borderColor:"".concat(d.Palette.error["04"]," !important"),borderWidth:"1px !important"}},input:{...getFontStyles({theme:d,variant:"body",weight:"regular"}),caretColor:g["04"],color:d.Palette.dark["05"],minHeight:"22px",overflow:"auto",padding:0,textOverflow:"ellipsis","&::placeholder":{color:"transparent"!==p||c?d.Palette.gray["02"]:d.Palette.dark["05"],opacity:r?1:0,transition:"none",userSelect:"none"},"&::selection":{backgroundColor:g["02"]},"&:focus":{"&::placeholder":{color:"".concat(d.Palette.gray["02"]," !important"),opacity:1}},...c&&{color:d.Palette.gray["04"]}}}};
|
|
@@ -54,15 +54,15 @@ $small-icon: var(--UT-button-icon-size-sm, 1.25rem);
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
.paddingLarge {
|
|
57
|
-
padding: var(--UT-button-padding-md,
|
|
57
|
+
padding: var(--UT-button-padding-md, 8px) var(--UT-button-padding-lg, 12px);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
.paddingMedium {
|
|
61
|
-
padding: var(--UT-button-padding-sm,
|
|
61
|
+
padding: var(--UT-button-padding-sm, 4px) var(--UT-button-padding-md, 8px);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
.paddingSmall {
|
|
65
|
-
padding: var(--UT-button-padding-xs,
|
|
65
|
+
padding: var(--UT-button-padding-xs, 2px) var(--UT-button-padding-sm, 4px);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
.fullHeight {
|
|
@@ -75,6 +75,7 @@ $small-icon: var(--UT-button-icon-size-sm, 1.25rem);
|
|
|
75
75
|
width: 100%;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
|
|
78
79
|
.hideTextOnResponsive {
|
|
79
80
|
.textContainer {
|
|
80
81
|
@media #{$mobile} {
|
|
@@ -84,33 +85,33 @@ $small-icon: var(--UT-button-icon-size-sm, 1.25rem);
|
|
|
84
85
|
|
|
85
86
|
&.paddingLarge {
|
|
86
87
|
@media #{$mobile} {
|
|
87
|
-
padding: var(--UT-button-padding-md,
|
|
88
|
+
padding: var(--UT-button-padding-md, 8px);
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
&.paddingMedium {
|
|
92
93
|
@media #{$mobile} {
|
|
93
|
-
padding: var(--UT-button-padding-sm,
|
|
94
|
+
padding: var(--UT-button-padding-sm, 4px);
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
&.paddingSmall {
|
|
98
99
|
@media #{$mobile} {
|
|
99
|
-
padding: var(--UT-button-padding-xs,
|
|
100
|
+
padding: var(--UT-button-padding-xs, 2px);
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
.noChildren {
|
|
105
106
|
&.paddingLarge {
|
|
106
|
-
padding: var(--UT-button-padding-md,
|
|
107
|
+
padding: var(--UT-button-padding-md, 8px);
|
|
107
108
|
}
|
|
108
109
|
|
|
109
110
|
&.paddingMedium {
|
|
110
|
-
padding: var(--UT-button-padding-sm,
|
|
111
|
+
padding: var(--UT-button-padding-sm, 4px);
|
|
111
112
|
}
|
|
112
113
|
|
|
113
114
|
&.paddingSmall {
|
|
114
|
-
padding: var(--UT-button-padding-xs,
|
|
115
|
+
padding: var(--UT-button-padding-xs, 2px);
|
|
115
116
|
}
|
|
116
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{PureComponent,Fragment}from"react";import{number,shape,bool,func,objectOf,string,node,arrayOf,oneOfType}from"prop-types";import Legend from"../Legend";import Button from"../Button";import styles from"./styles.module.scss";import Slide from"./component/Slide";import{INSIDE}from"./constants";class Slider extends PureComponent{render(){const{transitionSlide:e,slides:t,containerWidth:n,slideArray:r,shouldAnimate:a,index:o,withBorder:s,handleLegend:i,handlePrevSlide:l,handleNextSlide:c,timeAnimation:d,arrow:m,legend:g,classes:p}=this.props,u=35===d?.035:.4;return React.createElement(Fragment,null,m&&m.position===INSIDE&&React.createElement(Button,{ArrowCustom:m.arrowCustomLeft,callback:m.callbackLeft,left:!0,onPress:l,className:styles.arrowLeft,classes:p}),React.createElement("div",{style:{transform:"translate3d(".concat(e,"px, 0px, 0px)"),width:"".concat(n*r.length,"px"),transition:"".concat(a?"transform ".concat(u,"s linear 0s"):"none")},className:"".concat(styles.slideContainer),draggable:"false"},r.map((e,t)=>React.createElement(Slide,{animationTime:u,border:s,classes:p,currentSlide:o-1,imgSrc:e.imgSrc,key:"slide-".concat(e.id||e.imgSrc),onClick:e.onClick,position:t-1,renderContent:e.renderContent,shouldAnimate:a,widthContainer:n}))),g&&g.position===INSIDE&&React.createElement("div",{className:styles.legendContainer,style:{justifyContent:g.align||"center",paddingBottom:g.paddingBottom,paddingLeft:g.paddingLeft}},React.createElement("div",{className:styles.legend},t.map((e,t)=>React.createElement(Legend,{key:"legend-in-".concat(e.id||e.imgSrc),classes:p,currentSlide:o===r.length-1?0:0===o?1:o-1,index:t,LegendCustom:g.legendCustom,onClick:i})))),m&&m.position===INSIDE&&React.createElement(Button,{ArrowCustom:m.arrowCustomRight,callback:m.callbackRight,onPress:c,className:styles.arrowRight,classes:p}))}}Slider.propTypes={slideArray:arrayOf(shape({imgSrc:string,id:oneOfType([number,string])})),slides:arrayOf(shape({imgSrc:string,id:oneOfType([number,string])})),arrow:shape({position:string,arrowCustomLeft:node,arrowCustomRight:node,callbackLeft:func,callbackRight:func}),legend:shape({position:string,legendCustom:node}),transitionSlide:number,containerWidth:number,shouldAnimate:bool,index:number,withBorder:number,handleLegend:func,handlePrevSlide:func,handleNextSlide:func,timeAnimation:number,classes:objectOf(string)};export default Slider;
|
|
1
|
+
import React,{PureComponent,Fragment}from"react";import{number,shape,bool,func,objectOf,string,node,arrayOf,oneOfType}from"prop-types";import Legend from"../Legend";import Button from"../Button";import styles from"./styles.module.scss";import Slide from"./component/Slide";import{INSIDE}from"./constants";class Slider extends PureComponent{render(){const{transitionSlide:e,slides:t,containerWidth:n,slideArray:r,shouldAnimate:a,index:o,withBorder:s,handleLegend:i,handlePrevSlide:l,handleNextSlide:c,timeAnimation:d,arrow:m,legend:g,classes:p}=this.props,u=35===d?.035:.4;return React.createElement(React.Fragment,null,m&&m.position===INSIDE&&React.createElement(Button,{ArrowCustom:m.arrowCustomLeft,callback:m.callbackLeft,left:!0,onPress:l,className:styles.arrowLeft,classes:p}),React.createElement("div",{style:{transform:"translate3d(".concat(e,"px, 0px, 0px)"),width:"".concat(n*r.length,"px"),transition:"".concat(a?"transform ".concat(u,"s linear 0s"):"none")},className:"".concat(styles.slideContainer),draggable:"false"},r.map((e,t)=>React.createElement(Slide,{animationTime:u,border:s,classes:p,currentSlide:o-1,imgSrc:e.imgSrc,key:"slide-".concat(e.id||e.imgSrc),onClick:e.onClick,position:t-1,renderContent:e.renderContent,shouldAnimate:a,widthContainer:n}))),g&&g.position===INSIDE&&React.createElement("div",{className:styles.legendContainer,style:{justifyContent:g.align||"center",paddingBottom:g.paddingBottom,paddingLeft:g.paddingLeft}},React.createElement("div",{className:styles.legend},t.map((e,t)=>React.createElement(Legend,{key:"legend-in-".concat(e.id||e.imgSrc),classes:p,currentSlide:o===r.length-1?0:0===o?1:o-1,index:t,LegendCustom:g.legendCustom,onClick:i})))),m&&m.position===INSIDE&&React.createElement(Button,{ArrowCustom:m.arrowCustomRight,callback:m.callbackRight,onPress:c,className:styles.arrowRight,classes:p}))}}Slider.propTypes={slideArray:arrayOf(shape({imgSrc:string,id:oneOfType([number,string])})),slides:arrayOf(shape({imgSrc:string,id:oneOfType([number,string])})),arrow:shape({position:string,arrowCustomLeft:node,arrowCustomRight:node,callbackLeft:func,callbackRight:func}),legend:shape({position:string,legendCustom:node}),transitionSlide:number,containerWidth:number,shouldAnimate:bool,index:number,withBorder:number,handleLegend:func,handlePrevSlide:func,handleNextSlide:func,timeAnimation:number,classes:objectOf(string)};export default Slider;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
$spacing-medium: 16px;
|
|
2
|
-
$spacing-small: 8px;
|
|
3
|
-
|
|
4
1
|
.buttonVariant {
|
|
5
2
|
width: 100%;
|
|
6
3
|
}
|
|
@@ -8,33 +5,33 @@ $spacing-small: 8px;
|
|
|
8
5
|
.categoryContainer {
|
|
9
6
|
display: flex;
|
|
10
7
|
flex-direction: column;
|
|
11
|
-
grid-gap:
|
|
8
|
+
grid-gap: var(--UT-checkList-gap-lg, 16px);
|
|
12
9
|
}
|
|
13
10
|
|
|
14
11
|
.categoryTitle {
|
|
15
|
-
padding: 8px 0;
|
|
12
|
+
padding: var(--UT-checkList-padding-y, 8px) 0;
|
|
16
13
|
}
|
|
17
14
|
|
|
18
15
|
.checkboxesContainer {
|
|
19
16
|
display: flex;
|
|
20
17
|
flex-direction: column;
|
|
21
18
|
align-self: flex-start;
|
|
22
|
-
grid-gap:
|
|
19
|
+
grid-gap: var(--UT-checkList-gap-lg, 16px);
|
|
23
20
|
width: 100%;
|
|
24
21
|
}
|
|
25
22
|
|
|
26
23
|
.container {
|
|
27
24
|
display: flex;
|
|
28
25
|
flex-direction: column;
|
|
29
|
-
grid-gap:
|
|
26
|
+
grid-gap: var(--UT-checkList-gap-lg, 16px);
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
.headerContainer {
|
|
33
30
|
display: flex;
|
|
34
31
|
flex-direction: column;
|
|
35
|
-
grid-gap: 8px;
|
|
32
|
+
grid-gap: var(--UT-checkList-gap-sm, 8px);
|
|
36
33
|
}
|
|
37
34
|
|
|
38
35
|
.smallVerticalSpacing {
|
|
39
|
-
grid-gap:
|
|
36
|
+
grid-gap: var(--UT-checkList-gap-sm, 8px);
|
|
40
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{Fragment,useEffect}from"react";import{func,string,bool,number,shape,oneOfType,element,object,node,objectOf}from"prop-types";import Checkbox from"@material-ui/core/Checkbox";import FormControlLabel from"@material-ui/core/FormControlLabel";import{shouldShowErrors}from"@widergy/web-utils/lib/form";import{useMutableState}from"@widergy/energy-hooks";import{inputPropTypes,metaPropTypes}from"../../../../types/formTypes";import{mergeClasses}from"../../../../utils/classesUtils";import UTLabel from"../../../UTLabel";import UTTooltip from"../../../UTTooltip";import WithTheme from"../../../WithTheme";var Checked=function(e){return React.createElement("svg",e,React.createElement("path",{d:"M10 14Zm0 3-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9Z"}))};Checked.defaultProps={xmlns:"http://www.w3.org/2000/svg",viewBox:"5 6.58 14 10.42"};import{retrieveStyle,retrieveMuiTheme}from"./theme";import{tippyProps}from"./constants";import styles from"./styles.module.scss";const UTCheckbox=e=>{let{classes:t={},classNames:o,color:r="primary",checkboxDataTestId:l,CustomCheckedIcon:a=Checked,customRowLabel:s,CustomUncheckedIcon:n=e=>{let{className:t}=e;return React.createElement("div",{className:t})},disabled:c,disableRipple:m,input:i,item:p,label:u,labelDataTestId:b,labelProps:d={},meta:h,onChange:f,showError:T,tooltipContent:C,useCustomIcons:y,value:g}=e;const[k,v]=useMutableState(g);useEffect(()=>{v(g||(null==i?void 0:i.value))},[null==i?void 0:i.value,g]);const
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{Fragment,useEffect}from"react";import{func,string,bool,number,shape,oneOfType,element,object,node,objectOf}from"prop-types";import Checkbox from"@material-ui/core/Checkbox";import FormControlLabel from"@material-ui/core/FormControlLabel";import{shouldShowErrors}from"@widergy/web-utils/lib/form";import{useMutableState}from"@widergy/energy-hooks";import{inputPropTypes,metaPropTypes}from"../../../../types/formTypes";import{mergeClasses}from"../../../../utils/classesUtils";import UTLabel from"../../../UTLabel";import UTTooltip from"../../../UTTooltip";import WithTheme from"../../../WithTheme";var Checked=function(e){return React.createElement("svg",e,React.createElement("path",{d:"M10 14Zm0 3-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9Z"}))};Checked.defaultProps={xmlns:"http://www.w3.org/2000/svg",viewBox:"5 6.58 14 10.42"};import{retrieveStyle,retrieveMuiTheme}from"./theme";import{tippyProps}from"./constants";import styles from"./styles.module.scss";const UTCheckbox=e=>{let{classes:t={},classNames:o,color:r="primary",checkboxDataTestId:l,CustomCheckedIcon:a=Checked,customRowLabel:s,CustomUncheckedIcon:n=e=>{let{className:t}=e;return React.createElement("div",{className:t})},disabled:c,disableRipple:m,input:i,item:p,label:u,labelDataTestId:b,labelProps:d={},meta:h,onChange:f,showError:T,tooltipContent:C,useCustomIcons:y,value:g}=e;const[k,v]=useMutableState(g);useEffect(()=>{v(g||(null==i?void 0:i.value))},[null==i?void 0:i.value,g]);const R=mergeClasses(t,o);return React.createElement(React.Fragment,null,React.createElement(FormControlLabel,{disabled:c,control:React.createElement(UTTooltip,{content:C,stringContentClassName:styles.disableSelectionTooltip,tippyProps:tippyProps},React.createElement("span",null,React.createElement(Checkbox,{classes:{colorPrimary:R.checkboxColorPrimary,colorSecondary:R.checkboxColorSecondary},checkedIcon:y&&React.createElement(a,{className:R.checkedIcon}),inputProps:{"data-testid":l},icon:y&&React.createElement(n,{className:R.uncheckedIcon}),checked:k.current||!1,onChange:e=>{f&&f(g),null!=i&&i.onChange&&i.onChange(e.target.checked)},value:(null==i?void 0:i.value)||g,color:r,disableRipple:m,disabled:c}))),label:s?React.createElement(s,{item:p}):React.createElement(UTLabel,_extends({className:R.label,dataTestId:b,variant:"small",withMarkdown:!0},d),u),classes:R&&{root:R.root,label:R.label}}),T&&shouldShowErrors(h)&&React.createElement(UTLabel,{colorTheme:"error",variant:"small"},h.error))};UTCheckbox.propTypes={classes:shape({checkboxColorPrimary:string,checkboxColorSecondary:string}),classNames:objectOf(string),color:string,checkboxDataTestId:string,CustomCheckedIcon:node,customRowLabel:oneOfType([func,element,string]),CustomUncheckedIcon:node,disabled:bool,disableRipple:bool,input:inputPropTypes,item:oneOfType([string,object]),label:oneOfType([number,string]),labelDataTestId:string,labelProps:object,meta:metaPropTypes,onChange:func,showError:bool,tooltipContent:element,useCustomIcons:bool,value:oneOfType([bool,string])};export default WithTheme(retrieveStyle,retrieveMuiTheme)(UTCheckbox);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import React,{Fragment,useMemo}from"react";import{arrayOf,bool,elementType,func,objectOf,string}from"prop-types";import{shouldShowErrors}from"@widergy/web-utils/lib/form";import{mergeClasses}from"../../../../utils/classesUtils";import UTFieldLabel from"../../../UTFieldLabel";import UTIcon from"../../../UTIcon";import WithTheme from"../../../WithTheme";import UTTouchableWithoutFeedback from"../../../UTTouchableWithoutFeedback";import{buttonTypes}from"../../../../types/buttonTypes";import{metaPropTypes}from"../../../../types/formTypes";import{formatErrorToValidation}from"../../../UTValidation/utils";import UTValidation from"../../../UTValidation";import{BUTTON_VARIANT,CHECKED_ICON,INDETERMINATE_ICON}from"./constants";import{retrieveStyle}from"./theme";import styles from"./styles.module.scss";const UTCheckbox=e=>{let{actions:t,checkboxDataTestId:o,classes:a,classNames:r,CustomComponent:i,dataTestId:s,disabled:l,indeterminate:m,isSimple:n=!1,meta:c,onChange:T=()=>{},required:d,icon:p,title:h,value:b=!1,variant:u="default",withUpperTitle:f}=e;const E=useMemo(()=>mergeClasses(a,r),[r,a]),C=useMemo(()=>m?INDETERMINATE_ICON:!0===b?CHECKED_ICON:"",[m,b]),U=!0===b&&u===BUTTON_VARIANT,I=c&&shouldShowErrors(c)&&c.error||"",N=formatErrorToValidation(I);return React.createElement(React.Fragment,null,f&&React.createElement(UTFieldLabel,{actions:t,required:d},h),React.createElement(UTTouchableWithoutFeedback,{className:E.container,dataTestId:s,disabled:l,onMouseDown:()=>{!l&&T&&T(!b)}},React.createElement("div",{className:E.content},React.createElement("div",{className:E.boxContainer,"data-testid":o},n?React.createElement(UTIcon,{name:"IconCheck",shade:"04",colorTheme:"accent",className:b?void 0:styles.hidden}):React.createElement("div",{className:E.box},React.createElement("div",{className:E.iconContainer},C&&React.createElement(UTIcon,{colorTheme:"light",name:m?"IconMinus":"IconCheck",size:10})))),i||React.createElement(UTFieldLabel,{className:E.title,highlighted:U,icon:p,required:d},h)),I&&React.createElement(UTValidation,{className:E.validation,validationData:N})))};UTCheckbox.propTypes={actions:arrayOf(buttonTypes),checkboxDataTestId:string,classes:objectOf(string),classNames:objectOf(string),CustomComponent:elementType,dataTestId:string,disabled:bool,indeterminate:bool,isSimple:bool,meta:metaPropTypes.isRequired,onChange:func,required:bool,icon:string,title:string,value:bool,variant:string,withUpperTitle:bool};export default WithTheme(retrieveStyle)(UTCheckbox);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{shouldShowErrors}from"@widergy/web-utils/lib/form";import{BUTTON_VARIANT,SPACING}from"./constants";const MEDIUM_SPACING=
|
|
1
|
+
import{shouldShowErrors}from"@widergy/web-utils/lib/form";import{BUTTON_VARIANT,SPACING}from"./constants";const MEDIUM_SPACING="var(--UT-checkbox-gap-md, 8px)",SMALL_SPACING="var(--UT-checkbox-gap-sm, 4px)",baseCheckBoxTheme=e=>({container:{alignItems:"center !important",display:"flex",flexWrap:"wrap",gap:"0px"},content:{display:"flex",flexDirection:"row",alignItems:"center"},iconContainer:{border:"1px solid ".concat(e.Palette.light["05"]),borderRadius:"var(--UT-checkbox-radius, 4px)",display:"flex",height:"var(--UT-checkbox-size, 16px)",placeContent:"center",placeItems:"center",width:"var(--UT-checkbox-size, 16px)"},box:{borderRadius:25,overflow:"hidden",padding:3},validation:{flexBasis:"100%"}}),conditionalStyles=e=>{var t,o,r,n,a;let{value:i,indeterminate:c,reversed:l,spacing:d,variant:s,theme:v,disabled:b,error:x}=e;const p=d===SPACING.SMALL?SMALL_SPACING:MEDIUM_SPACING;return{container:{...l&&{flexDirection:"row-reverse",justifyContent:"space-between"},...b&&{opacity:.5},...s===BUTTON_VARIANT&&{borderRadius:"8px",padding:"small"===d?"8px 12px":"12px 16px",backgroundColor:x?v.Palette.error["01"]:"transparent","&:active, &:hover":{transition:"background-color 0.1s ease-in-out"},"&:active":{backgroundColor:x?v.Palette.error["02"]:v.Palette.light["04"]},"&:hover":{backgroundColor:x?v.Palette.error["02"]:v.Palette.light["03"]}}},content:{...l&&{flexDirection:"row-reverse",justifyContent:"space-between",...s===BUTTON_VARIANT&&{width:"100%"}}},iconContainer:{...x&&{borderColor:v.Palette.error["04"]},...(!0===i||c)&&{backgroundColor:(null===(t=v.Palette.actions)||void 0===t?void 0:t.accent["04"])||v.Palette.accent["04"],borderColor:(null===(o=v.Palette.actions)||void 0===o?void 0:o.accent["04"])||v.Palette.accent["04"]}},boxContainer:{...l?{marginLeft:p,marginRight:0}:{marginRight:p},...s!==BUTTON_VARIANT&&{"&:active, &:hover":{"& $box":{borderColor:x?v.Palette.error["03"]:(null===(r=v.Palette.actions)||void 0===r?void 0:r.accent["03"])||v.Palette.accent["03"],borderWidth:1,overflow:"hidden",transition:"background-color 0.1s ease-in-out"}},"&:active":{"& $box":{backgroundColor:x?v.Palette.error["02"]:(null===(n=v.Palette.actions)||void 0===n?void 0:n.accent["02"])||v.Palette.accent["02"]}},"&:hover":{"& $box":{backgroundColor:x?v.Palette.error["01"]:(null===(a=v.Palette.actions)||void 0===a?void 0:a.accent["01"])||v.Palette.accent["01"]}}}},title:s===BUTTON_VARIANT&&{userSelect:"none"}}};export const retrieveStyle=e=>{let{value:t,disabled:o,indeterminate:r,reversed:n,spacing:a,theme:i,variant:c,meta:l}=e;const d=baseCheckBoxTheme(i),s=l&&shouldShowErrors(l),{container:v,content:b,iconContainer:x,boxContainer:p,title:h}=conditionalStyles({value:t,disabled:o,indeterminate:r,reversed:n,spacing:a,variant:c,theme:i,error:s});return{box:d.box,content:{...d.content,...b},container:{...d.container,...v},iconContainer:{...d.iconContainer,...x},boxContainer:p,title:h,validation:d.validation}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const OUTPUT_LABEL_MASK="DD/MM/YYYY";export const WEEKDAYS_LABELS=["Dom","Lun","Mar","Mie","Jue","Vie","Sab"];export const MONTH_YEAR_FORMAT="MMMM YYYY";export const DAY_NUMBER_FORMAT="DD";export const DEFAULT_PLACEHOLDER="DD/MM/AAAA";export const TYPING_ERROR_MESSAGE="Fecha inválida";export const DEFAULT_PROPS={variant:"select",size:"
|
|
1
|
+
export const OUTPUT_LABEL_MASK="DD/MM/YYYY";export const WEEKDAYS_LABELS=["Dom","Lun","Mar","Mie","Jue","Vie","Sab"];export const MONTH_YEAR_FORMAT="MMMM YYYY";export const DAY_NUMBER_FORMAT="DD";export const DEFAULT_PLACEHOLDER="DD/MM/AAAA";export const TYPING_ERROR_MESSAGE="Fecha inválida";export const DEFAULT_PROPS={variant:"select",size:"md"};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}import React,{useRef,useState,useEffect}from"react";import Popover from"@material-ui/core/Popover";import dayjs from"dayjs";import customParseFormat from"dayjs/plugin/customParseFormat";import{bool,elementType,func,object,shape,string,oneOf}from"prop-types";import UTBaseInputField from"../../../UTBaseInputField";import UTButton from"../../../UTButton";import UTFieldLabel from"../../../UTFieldLabel";import UTLabel from"../../../UTLabel";import UTValidation from"../../../UTValidation";import{COMPONENT_KEYS}from"../../../UTBaseInputField/constants";import Calendar from"./components/Calendar";import styles from"./styles.module.scss";import{DEFAULT_PROPS,DEFAULT_PLACEHOLDER,OUTPUT_LABEL_MASK,TYPING_ERROR_MESSAGE}from"./constants";import{dateMatchesFormat,getFinalDate}from"./utils";dayjs.extend(customParseFormat);const CALENDAR_PAPER_PROPS={onMouseDown:e=>e.preventDefault()},UTDatePicker=e=>{let{classNames:t={},CustomIcon:a,dataTestId:r,disabled:o,error:n="",helpText:l,onChange:s=()=>{},placeholder:i,popoverProps:c,range:d,readOnly:m=!1,required:u,size:p=DEFAULT_PROPS.size,title:T,value:E="",variant:P=DEFAULT_PROPS.variant}=e;const{maxDate:U,minDate:f}=d||{},[_,A]=useState(null),[v,L]=useState(!1),[O,g]=useState(""),[R,h]=useState(!1),[S,D]=useState(!1),y=useRef(null),F=useRef(null);useEffect(()=>{L(!1),g(""),D(!1),!E&&null!=_&&_.isValid()?A(null):dateMatchesFormat(E,OUTPUT_LABEL_MASK)?A(dayjs(E,OUTPUT_LABEL_MASK)):A(null)},[E]);const M=()=>{var e;o||m||(h(!0),null===(e=F.current)||void 0===e||e.focus())},b=v?O:null!=_&&_.isValid()?_.format(OUTPUT_LABEL_MASK):"",B=!!n||S,C=null==_?void 0:_.isValid(),I=i||DEFAULT_PLACEHOLDER,x=(C||v)&&!o&&!m,
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}import React,{useRef,useState,useEffect}from"react";import Popover from"@material-ui/core/Popover";import dayjs from"dayjs";import customParseFormat from"dayjs/plugin/customParseFormat";import{bool,elementType,func,object,shape,string,oneOf}from"prop-types";import UTBaseInputField from"../../../UTBaseInputField";import UTButton from"../../../UTButton";import UTFieldLabel from"../../../UTFieldLabel";import UTLabel from"../../../UTLabel";import UTValidation from"../../../UTValidation";import{COMPONENT_KEYS}from"../../../UTBaseInputField/constants";import Calendar from"./components/Calendar";import styles from"./styles.module.scss";import{DEFAULT_PROPS,DEFAULT_PLACEHOLDER,OUTPUT_LABEL_MASK,TYPING_ERROR_MESSAGE}from"./constants";import{dateMatchesFormat,getFinalDate}from"./utils";dayjs.extend(customParseFormat);const CALENDAR_PAPER_PROPS={className:styles.calendarPaper,onMouseDown:e=>e.preventDefault()},UTDatePicker=e=>{let{classNames:t={},CustomIcon:a,dataTestId:r,disabled:o,error:n="",helpText:l,onChange:s=()=>{},placeholder:i,popoverProps:c,range:d,readOnly:m=!1,required:u,size:p=DEFAULT_PROPS.size,title:T,value:E="",variant:P=DEFAULT_PROPS.variant}=e;const{maxDate:U,minDate:f}=d||{},[_,A]=useState(null),[v,L]=useState(!1),[O,g]=useState(""),[R,h]=useState(!1),[S,D]=useState(!1),y=useRef(null),F=useRef(null);useEffect(()=>{L(!1),g(""),D(!1),!E&&null!=_&&_.isValid()?A(null):dateMatchesFormat(E,OUTPUT_LABEL_MASK)?A(dayjs(E,OUTPUT_LABEL_MASK)):A(null)},[E]);const M=()=>{var e;o||m||(h(!0),null===(e=F.current)||void 0===e||e.focus())},b=v?O:null!=_&&_.isValid()?_.format(OUTPUT_LABEL_MASK):"",B=!!n||S,C=null==_?void 0:_.isValid(),I=i||DEFAULT_PLACEHOLDER,x=(C||v)&&!o&&!m,N=!m&&!o,K=n||(S?TYPING_ERROR_MESSAGE:""),j="picker"===P,k=B&&!o?[{name:COMPONENT_KEYS.ICON,props:{showOnlyOnError:!0}}]:[],w={colorTheme:B?"error":R?"primary":"gray",Icon:a||"IconCalendarEvent"},V=N?React.createElement("div",{className:styles.endAdornments},React.createElement(UTButton,_extends({},x?{colorTheme:"dark",Icon:"IconX"}:w,{classNames:{root:styles.calendarButton},onClick:x?e=>{e.stopPropagation(),A(null),L(!1),g(""),D(!1),s("")}:M,size:"small",variant:"text"}))):void 0;return React.createElement(React.Fragment,null,React.createElement("div",{className:styles.root},T&&React.createElement(UTFieldLabel,{className:null==t?void 0:t.upperTitle,required:u,withMarkdown:!0},T),React.createElement("div",{ref:y},React.createElement(UTBaseInputField,{alwaysShowPlaceholder:!0,classNames:t,dataTestId:r,inputRef:F,disabled:o,error:B,readOnly:m,inputSize:"sm"===p?"small":void 0,variant:j?"transparent":void 0,leftAdornments:k,maxLength:10,muiProps:{InputProps:{endAdornment:V},onChange:e=>{var t,a;const r=(e=>{const t=e.replace(/\D/g,"").slice(0,8);return t.length<=2?t:t.length<=4?"".concat(t.slice(0,2),"/").concat(t.slice(2)):"".concat(t.slice(0,2),"/").concat(t.slice(2,4),"/").concat(t.slice(4))})(v?e.target.value:null!==(t=null===(a=e.nativeEvent)||void 0===a?void 0:a.data)&&void 0!==t?t:"");g(r),L(!0);if(8===r.replace(/\D/g,"").length){const e=dateMatchesFormat(r,OUTPUT_LABEL_MASK)&&dayjs(r,OUTPUT_LABEL_MASK).isValid();D(!e),e&&A(dayjs(r,OUTPUT_LABEL_MASK))}else D(!1)},fullWidth:!0},onBlur:e=>{var t;if((null===(t=y.current)||void 0===t||!t.contains(e.relatedTarget))&&(h(!1),D(!1),v)){if(L(!1),g(""),!O)return A(null),void s("");if(dateMatchesFormat(O,OUTPUT_LABEL_MASK)){const e=dayjs(O,OUTPUT_LABEL_MASK);if(e.isValid()){const t=getFinalDate({date:e,maxDate:U,minDate:f});return A(t),void s(t.format(OUTPUT_LABEL_MASK))}}A(null),s("")}},onFocus:M,placeholder:I,value:b})),l&&React.createElement(UTLabel,{colorTheme:"gray",variant:"small",withMarkdown:!0},l),"select"===P&&K&&React.createElement(UTValidation,{dataTestId:r?"".concat(r,".errorMessage"):void 0,validationData:[{items:[{status:"error",text:K}]}]})),React.createElement(Popover,_extends({anchorEl:y.current,anchorOrigin:{horizontal:"left",vertical:"bottom"},disableAutoFocus:!0,disableEnforceFocus:!0,disableRestoreFocus:!0,onClose:()=>{h(!1),D(!1),v&&(L(!1),g(""),E&&dateMatchesFormat(E,OUTPUT_LABEL_MASK)?A(dayjs(E,OUTPUT_LABEL_MASK)):A(null))},open:R,PaperProps:CALENDAR_PAPER_PROPS,transformOrigin:{horizontal:"left",vertical:"top"}},c),React.createElement(Calendar,{maxDate:U,minDate:f,onDaySelect:e=>{const t=getFinalDate({date:e,maxDate:U,minDate:f});A(t),L(!1),g(""),D(!1),t.isValid()?s(t.format(OUTPUT_LABEL_MASK)):s(""),h(!1)},pickedDate:_})))};UTDatePicker.propTypes={classNames:object,CustomIcon:elementType,dataTestId:string,disabled:bool,error:string,helpText:string,onChange:func,placeholder:string,popoverProps:object,range:shape({maxDate:string,minDate:string}),readOnly:bool,required:bool,size:string,title:string,value:string,variant:oneOf(["select","picker"])};export default UTDatePicker;
|
|
@@ -12,6 +12,17 @@
|
|
|
12
12
|
grid-gap: var(--UT-datepicker-adornments-gap);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
.calendarButton {
|
|
16
|
+
margin: -4px !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.calendarPaper {
|
|
20
|
+
background-color: var(--light01) !important;
|
|
21
|
+
border-radius: 8px !important;
|
|
22
|
+
box-shadow: var(--shadowGrayBottom2, 0px 6px 12px rgba(24, 44, 73, 0.1)) !important;
|
|
23
|
+
margin-top: 8px !important;
|
|
24
|
+
}
|
|
25
|
+
|
|
15
26
|
.calendarContainer {
|
|
16
27
|
box-sizing: border-box;
|
|
17
28
|
display: flex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},_extends.apply(null,arguments)}import React,{Fragment,useEffect,useRef,useState}from"react";import{arrayOf,object}from"prop-types";import UTTabs from"../UTTabs";import UTLabel from"../UTLabel";import UTLoading from"../UTLoading";import UTSheet from"../UTSheet";import{useScreenSize}from"../../utils/useScreenSize";import{getTabsOptions}from"./utils";import styles from"./styles.module.scss";import ChevronsManager from"./components/ChevronsManager";import PageWizard from"./components/PageWizard";import SectionDetails from"./components/SectionDetails";import Sheet from"./components/Sheet";import{LAST_OPTION_PROPS,NEXT,PREV,SLIDE_PROPS}from"./constants";const UTDocumentWizard=e=>{var t;let{classNames:a,handlers:n={},labels:s,pages:o=[],scaleConfig:r,sections:c=[]}=e;const l=useRef(null),i=getTabsOptions(o),[m,u]=useState(null===(t=i[0])||void 0===t?void 0:t.value),d=i.findIndex(e=>e.value===m),f=d<=0,p=d>=i.length-1,g=useRef(null),[S,v]=useState(!1),[R,T]=useState(null),b=c.find(e=>"".concat(e.id)===R),{trackClickGlossarySection:E=()=>{}}=n,y=e=>{S||(g.current&&(clearTimeout(g.current),g.current=null),v(!0),g.current=setTimeout(()=>{if(e===m)return v(!1),void(g.current=null);u(e),v(!1),g.current=null},600))},h=useRef(null),P=null==o?void 0:o.find(e=>"".concat(e.id)==="".concat(m));useEffect(()=>()=>{g.current&&clearTimeout(g.current)},[]);const[O,C]=useState(!1),{isMobileSize:U}=useScreenSize(),N=React.createElement(Sheet,{sectionSelected:b}),{chevronsManagerTitle:z,sectionDetails:D}=s;return useEffect(()=>{b&&E(null==b?void 0:b.title)},[b]),React.createElement(Fragment,null,React.createElement("div",{className:"".concat(styles.container," ").concat(null==a?void 0:a.container)},React.createElement("div",{className:styles.pageWizardContainer,ref:h},React.createElement("div",{className:"".concat(styles.pageManagerSection," ").concat(null==a?void 0:a.pageManagerSection)},React.createElement("div",{className:styles.slidePageManagerContainer},React.createElement(UTLabel,{variant:"title2"},z),React.createElement(ChevronsManager,{prevDisabled:f,nextDisabled:p,onClick:e=>{let t=null;e!==PREV||f?e!==NEXT||p||(t=i[d+1].value):t=i[d-1].value,t!==m&&y(t)}})),React.createElement("div",{className:styles.pageManagerContainer},React.createElement(UTTabs,{options:i,value:m,onChange:e=>{y(e)},classes:{tabsRoot:styles.tabs,tabRoot:styles.tabRoot,label:styles.tab,selected:styles.selected,indicator:styles.indicator},lastOptionProps:LAST_OPTION_PROPS}))),React.createElement("div",{className:styles.scrollContainer},S&&React.createElement("div",{className:styles.loadingContainer},React.createElement(UTLoading,{loading:!0})),!S&&P&&React.createElement(PageWizard,{canvasRef:l,classNames:a,clickedSection:R,containerRef:h,isChangingTab:S,isMobileSize:U,isSheetOpen:O,onSectionChange:e=>{T(e),U&&C(!!e)},page:P,scaleConfig:r,sections:c,sectionSelected:b}))),React.createElement(SectionDetails,_extends({sectionSelected:b},D))),React.createElement(UTSheet,{SlideProps:SLIDE_PROPS,anchor:"bottom",open:O,toggleDrawer:e=>{if(U){if(!e){var t;const e=null===(t=l.current)||void 0===t?void 0:t.getContext("2d");var a;if(e)e.restore(),null===(a=l.current)||void 0===a||a.focus()}C(e)}}},N))};UTDocumentWizard.propTypes={classNames:object,handlers:object,labels:object,pages:arrayOf({}),scaleConfig:object,sections:arrayOf({})};export default UTDocumentWizard;
|
|
1
|
+
function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},_extends.apply(null,arguments)}import React,{Fragment,useEffect,useRef,useState}from"react";import{arrayOf,object}from"prop-types";import UTTabs from"../UTTabs";import UTLabel from"../UTLabel";import UTLoading from"../UTLoading";import UTSheet from"../UTSheet";import{useScreenSize}from"../../utils/useScreenSize";import{getTabsOptions}from"./utils";import styles from"./styles.module.scss";import ChevronsManager from"./components/ChevronsManager";import PageWizard from"./components/PageWizard";import SectionDetails from"./components/SectionDetails";import Sheet from"./components/Sheet";import{LAST_OPTION_PROPS,NEXT,PREV,SLIDE_PROPS}from"./constants";const UTDocumentWizard=e=>{var t;let{classNames:a,handlers:n={},labels:s,pages:o=[],scaleConfig:r,sections:c=[]}=e;const l=useRef(null),i=getTabsOptions(o),[m,u]=useState(null===(t=i[0])||void 0===t?void 0:t.value),d=i.findIndex(e=>e.value===m),f=d<=0,p=d>=i.length-1,g=useRef(null),[S,v]=useState(!1),[R,T]=useState(null),b=c.find(e=>"".concat(e.id)===R),{trackClickGlossarySection:E=()=>{}}=n,y=e=>{S||(g.current&&(clearTimeout(g.current),g.current=null),v(!0),g.current=setTimeout(()=>{if(e===m)return v(!1),void(g.current=null);u(e),v(!1),g.current=null},600))},h=useRef(null),P=null==o?void 0:o.find(e=>"".concat(e.id)==="".concat(m));useEffect(()=>()=>{g.current&&clearTimeout(g.current)},[]);const[O,C]=useState(!1),{isMobileSize:U}=useScreenSize(),N=React.createElement(Sheet,{sectionSelected:b}),{chevronsManagerTitle:z,sectionDetails:D}=s;return useEffect(()=>{b&&E(null==b?void 0:b.title)},[b]),React.createElement(React.Fragment,null,React.createElement("div",{className:"".concat(styles.container," ").concat(null==a?void 0:a.container)},React.createElement("div",{className:styles.pageWizardContainer,ref:h},React.createElement("div",{className:"".concat(styles.pageManagerSection," ").concat(null==a?void 0:a.pageManagerSection)},React.createElement("div",{className:styles.slidePageManagerContainer},React.createElement(UTLabel,{variant:"title2"},z),React.createElement(ChevronsManager,{prevDisabled:f,nextDisabled:p,onClick:e=>{let t=null;e!==PREV||f?e!==NEXT||p||(t=i[d+1].value):t=i[d-1].value,t!==m&&y(t)}})),React.createElement("div",{className:styles.pageManagerContainer},React.createElement(UTTabs,{options:i,value:m,onChange:e=>{y(e)},classes:{tabsRoot:styles.tabs,tabRoot:styles.tabRoot,label:styles.tab,selected:styles.selected,indicator:styles.indicator},lastOptionProps:LAST_OPTION_PROPS}))),React.createElement("div",{className:styles.scrollContainer},S&&React.createElement("div",{className:styles.loadingContainer},React.createElement(UTLoading,{loading:!0})),!S&&P&&React.createElement(PageWizard,{canvasRef:l,classNames:a,clickedSection:R,containerRef:h,isChangingTab:S,isMobileSize:U,isSheetOpen:O,onSectionChange:e=>{T(e),U&&C(!!e)},page:P,scaleConfig:r,sections:c,sectionSelected:b}))),React.createElement(SectionDetails,_extends({sectionSelected:b},D))),React.createElement(UTSheet,{SlideProps:SLIDE_PROPS,anchor:"bottom",open:O,toggleDrawer:e=>{if(U){if(!e){var t;const e=null===(t=l.current)||void 0===t?void 0:t.getContext("2d");var a;if(e)e.restore(),null===(a=l.current)||void 0===a||a.focus()}C(e)}}},N))};UTDocumentWizard.propTypes={classNames:object,handlers:object,labels:object,pages:arrayOf({}),scaleConfig:object,sections:arrayOf({})};export default UTDocumentWizard;
|