@widergy/energy-ui 3.188.7 → 3.189.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
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
# [3.189.0](https://github.com/widergy/energy-ui/compare/v3.188.7...v3.189.0) (2026-09-28)
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
###
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* [CX-3046] heic to jpeg attachment ([#874](https://github.com/widergy/energy-ui/issues/874)) ([8c03564](https://github.com/widergy/energy-ui/commit/8c03564f1d998c8c1c194c47216c541b65185648))
|
|
7
|
+
|
|
8
|
+
## [3.188.7](https://github.com/widergy/energy-ui/compare/v3.188.6...v3.188.7) (2026-09-25)
|
|
9
|
+
|
|
10
|
+
### Correcciones
|
|
5
11
|
|
|
6
|
-
*
|
|
12
|
+
* Se corrigió un problema por el que los identificadores de prueba no se aplicaban correctamente sobre las opciones de los campos de selección tipo radio, lo que impedía su detección en pruebas automatizadas. [#871](https://github.com/widergy/Energy-UI/pull/871) [CX-3138](https://widergy.atlassian.net/browse/CX-3138)
|
|
7
13
|
|
|
8
14
|
## [3.188.6](https://github.com/widergy/energy-ui/compare/v3.188.5...v3.188.6) (2026-09-24)
|
|
9
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_propTypes=require("prop-types"),_validate=require("@widergy/web-utils/lib/validate"),_image=require("@widergy/web-utils/lib/image"),_browser=require("@widergy/web-utils/lib/browser"),_isEmpty=_interopRequireDefault(require("lodash/isEmpty")),_buttonTypes=require("../../types/buttonTypes"),_WithTheme=_interopRequireDefault(require("../WithTheme")),_theme=require("./theme"),_constants=require("./constants"),_layout=_interopRequireDefault(require("./layout")),_utils=require("./utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,s,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?i(n,t,s):n[t]=e[t]);return n})(e,t)}const AttachmentListContainer=e=>{var t,a,r,i,s;let{acceptedFileTypes:n,actions:l,allowedPDFUploadSizes:o,classes:p,containerClassname:u,customValidation:d,dataTestId:_,deleteDataTestId:y,disabled:c,disableResize:f,errorClassname:T,field:v,fieldTypes:m=[],hideLabels:g,icon:h,input:b,loadingTextClassname:E,maxFileSize:R=99999999,onLoaded:w,notifyOnInitialLoad:I=!0,previewDataTestId:O,readOnly:A=!1,resizeConfig:C,sanitize:S,theme:z,titleVariant:D}=e;const{areaBackground:F,areaBorderColor:q}=(0,_utils.getUploadIconAreaColors)(z),P=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)||R,L=(null==v||null===(r=v.configuration)||void 0===r?void 0:r.accepted_file_types)||n,M=(null==v||null===(i=v.configuration)||void 0===i?void 0:i.max_files)||_constants.DEFAULT_MAX_FILES,[W,V]=(0,_react.useState)([]),[j,B]=(0,_react.useState)(!1),[k,U]=(0,_react.useState)(_constants.FORMAT_ERROR_TEXT),X=(0,_react.useRef)(null),[N,Y]=(0,_react.useState)((null==b||null===(s=b.value)||void 0===s?void 0:s.files)||[]),G=(e,t)=>{B(!0),U(t?"".concat(e,"(").concat(t,")"):e)},H=async e=>{const t=e=>new Promise((t,a)=>{const r=new FileReader;r.onload=a=>{(0,_utils.hasPreview)(e)||(0,_utils.isDownloadable)(e)?t({src:a.target.result,file:e}):t({src:null,file:e})},r.onerror=e=>a(e),r.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:(0,_utils.getSizeInMB)(a.size),onClick:()=>{return(e=a.name)&&V(t=>t.filter(t=>t.name!==e)),Y(t=>{const a=Object.values(t).filter(t=>t.name!==e);return b.onChange&&b.onChange((0,_isEmpty.default)(a)?null:{files:a}),a}),X.current&&(X.current.value=null),void B(!1);var e}})});V(e=>(0,_utils.getNotRepeatedFiles)([...(e||[]).filter(e=>"loading"!==e.type),...a]))}catch(e){V(e=>(e||[]).filter(e=>"loading"!==e.type)),G(null==e?void 0:e.message)}},Z=async function(){var e,t;let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const i=Array.isArray(b.value)?b.value.length:1;if(a===i)return w&&w(),I&&b.onChange&&b.onChange({files:r}),Y(r),void H(r);const s=Array.isArray(b.value)?b.value.flatMap(e=>Object.values(e)[0]):b.value,n=Array.isArray(b.value)?(null===(e=b.value[a])||void 0===e?void 0:e.url)||(null===(t=s[a])||void 0===t?void 0:t.url):b.value;(0,_utils.getBlobFromUrl)(n,async e=>{if(e){var t,i;const n=Array.isArray(b.value)?(null===(t=b.value[a])||void 0===t?void 0:t.name)||(null===(i=s[a])||void 0===i?void 0:i.name):null,l=new File([e],n||(0,_utils.getDefaultAttachment)(e.type.substring(e.type.indexOf("/")+1),a+1),{type:e.type});Z(a+1,[...r,l])}else V(e=>{let t=!1;return e.map(e=>t||e.type!==_constants.PREVIEW_TYPES.LOADING?e:(t=!0,{...e,type:_constants.PREVIEW_TYPES.ERROR}))}),Z(a+1,r)})};return(0,_react.useEffect)(()=>{var e;if((0,_isEmpty.default)(N)?(0,_isEmpty.default)(null===(e=b.value)||void 0===e?void 0:e.files)||H(b.value.files):H(N),Array.isArray(b.value)&&!(0,_isEmpty.default)(b.value)||b.value&&"string"==typeof b.value){if((0,_isEmpty.default)(W)){const e=Array.isArray(b.value)?b.value.length:1;V(Array.from({length:e},()=>({type:_constants.PREVIEW_TYPES.LOADING})))}Z()}},[b]),_react.default.createElement(_layout.default,{actions:l,acceptedFileTypes:L,areaBackground:F,areaBorderColor:q,classes:p,containerClassname:u,disabled:c,dataTestId:_,deleteDataTestId:y,error:j,errorClassname:T,errorText:k,field:v,fieldTypes:m,fileInputRef:X,helpText:P,hideLabels:g,icon:h,loadingTextClassname:E,maxFiles:M,maxFileSize:(0,_utils.getSizeInMB)(x),onChange:async e=>{var t;const a=(null===(t=b.value)||void 0===t?void 0:t.files)||N,r=Object.values((0,_isEmpty.default)(a)?e.target.files:(0,_utils.getNotRepeatedFiles)([...a,...e.target.files])),i={formatError:_constants.FORMAT_ERROR_TEXT,sizeError:"".concat(_constants.SIZE_ERROR_TEXT," ").concat((0,_utils.getSizeInMB)(x),"MB."),aspectRatioError:"".concat(_constants.ASPECT_RATIO_ERROR_TEXT," ").concat(null==o?void 0:o.map(e=>e.name).join(" - "),")")};B(!1);const s=async e=>{if(e<r.length){if(M&&r.length>M)return void G(_constants.MAX_FILES_ERROR,M);let t=r[e];if(t){let a=!d||await d(t,G);if(a){if(a=await(0,_validate.fileSignatureValidation)(t,m,t.type),!a)return void G(i.formatError);if(S
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_propTypes=require("prop-types"),_validate=require("@widergy/web-utils/lib/validate"),_image=require("@widergy/web-utils/lib/image"),_browser=require("@widergy/web-utils/lib/browser"),_isEmpty=_interopRequireDefault(require("lodash/isEmpty")),_buttonTypes=require("../../types/buttonTypes"),_WithTheme=_interopRequireDefault(require("../WithTheme")),_theme=require("./theme"),_constants=require("./constants"),_layout=_interopRequireDefault(require("./layout")),_utils=require("./utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,s,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?i(n,t,s):n[t]=e[t]);return n})(e,t)}const AttachmentListContainer=e=>{var t,a,r,i,s;let{acceptedFileTypes:n,actions:l,allowedPDFUploadSizes:o,classes:p,containerClassname:u,customValidation:d,dataTestId:_,deleteDataTestId:y,disabled:c,disableResize:f,errorClassname:T,field:v,fieldTypes:m=[],hideLabels:g,icon:h,input:b,loadingTextClassname:E,maxFileSize:R=99999999,onLoaded:w,notifyOnInitialLoad:I=!0,previewDataTestId:O,readOnly:A=!1,resizeConfig:C,sanitize:S,theme:z,titleVariant:D}=e;const{areaBackground:F,areaBorderColor:q}=(0,_utils.getUploadIconAreaColors)(z),P=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)||R,L=(null==v||null===(r=v.configuration)||void 0===r?void 0:r.accepted_file_types)||n,M=(null==v||null===(i=v.configuration)||void 0===i?void 0:i.max_files)||_constants.DEFAULT_MAX_FILES,[W,V]=(0,_react.useState)([]),[j,B]=(0,_react.useState)(!1),[k,U]=(0,_react.useState)(_constants.FORMAT_ERROR_TEXT),X=(0,_react.useRef)(null),[N,Y]=(0,_react.useState)((null==b||null===(s=b.value)||void 0===s?void 0:s.files)||[]),G=(e,t)=>{B(!0),U(t?"".concat(e,"(").concat(t,")"):e)},H=async e=>{const t=e=>new Promise((t,a)=>{const r=new FileReader;r.onload=a=>{(0,_utils.hasPreview)(e)||(0,_utils.isDownloadable)(e)?t({src:a.target.result,file:e}):t({src:null,file:e})},r.onerror=e=>a(e),r.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:(0,_utils.getSizeInMB)(a.size),onClick:()=>{return(e=a.name)&&V(t=>t.filter(t=>t.name!==e)),Y(t=>{const a=Object.values(t).filter(t=>t.name!==e);return b.onChange&&b.onChange((0,_isEmpty.default)(a)?null:{files:a}),a}),X.current&&(X.current.value=null),void B(!1);var e}})});V(e=>(0,_utils.getNotRepeatedFiles)([...(e||[]).filter(e=>"loading"!==e.type),...a]))}catch(e){V(e=>(e||[]).filter(e=>"loading"!==e.type)),G(null==e?void 0:e.message)}},Z=async function(){var e,t;let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const i=Array.isArray(b.value)?b.value.length:1;if(a===i)return w&&w(),I&&b.onChange&&b.onChange({files:r}),Y(r),void H(r);const s=Array.isArray(b.value)?b.value.flatMap(e=>Object.values(e)[0]):b.value,n=Array.isArray(b.value)?(null===(e=b.value[a])||void 0===e?void 0:e.url)||(null===(t=s[a])||void 0===t?void 0:t.url):b.value;(0,_utils.getBlobFromUrl)(n,async e=>{if(e){var t,i;const n=Array.isArray(b.value)?(null===(t=b.value[a])||void 0===t?void 0:t.name)||(null===(i=s[a])||void 0===i?void 0:i.name):null,l=new File([e],n||(0,_utils.getDefaultAttachment)(e.type.substring(e.type.indexOf("/")+1),a+1),{type:e.type});Z(a+1,[...r,l])}else V(e=>{let t=!1;return e.map(e=>t||e.type!==_constants.PREVIEW_TYPES.LOADING?e:(t=!0,{...e,type:_constants.PREVIEW_TYPES.ERROR}))}),Z(a+1,r)})};return(0,_react.useEffect)(()=>{var e;if((0,_isEmpty.default)(N)?(0,_isEmpty.default)(null===(e=b.value)||void 0===e?void 0:e.files)||H(b.value.files):H(N),Array.isArray(b.value)&&!(0,_isEmpty.default)(b.value)||b.value&&"string"==typeof b.value){if((0,_isEmpty.default)(W)){const e=Array.isArray(b.value)?b.value.length:1;V(Array.from({length:e},()=>({type:_constants.PREVIEW_TYPES.LOADING})))}Z()}},[b]),_react.default.createElement(_layout.default,{actions:l,acceptedFileTypes:L,areaBackground:F,areaBorderColor:q,classes:p,containerClassname:u,disabled:c,dataTestId:_,deleteDataTestId:y,error:j,errorClassname:T,errorText:k,field:v,fieldTypes:m,fileInputRef:X,helpText:P,hideLabels:g,icon:h,loadingTextClassname:E,maxFiles:M,maxFileSize:(0,_utils.getSizeInMB)(x),onChange:async e=>{var t;const a=(null===(t=b.value)||void 0===t?void 0:t.files)||N,r=Object.values((0,_isEmpty.default)(a)?e.target.files:(0,_utils.getNotRepeatedFiles)([...a,...e.target.files])),i={formatError:_constants.FORMAT_ERROR_TEXT,sizeError:"".concat(_constants.SIZE_ERROR_TEXT," ").concat((0,_utils.getSizeInMB)(x),"MB."),aspectRatioError:"".concat(_constants.ASPECT_RATIO_ERROR_TEXT," ").concat(null==o?void 0:o.map(e=>e.name).join(" - "),")")};B(!1);const s=async e=>{if(e<r.length){if(M&&r.length>M)return void G(_constants.MAX_FILES_ERROR,M);let t=r[e];if(t){let a=!d||await d(t,G);if(a){if(a=await(0,_validate.fileSignatureValidation)(t,m,t.type),!a)return void G(i.formatError);if(S)try{t=await S(t)}catch(e){return void G(i.formatError)}if(a=(0,_validate.fileSizeValidation)(t,x),a&&(0,_utils.isPDF)(t)&&!(0,_isEmpty.default)(o)&&(a=await(0,_utils.pdfAspectRatioValidation)(t,o),!a))return void G(i.aspectRatioError);if(a||f||!(0,_utils.isImage)(t)||(0,_browser.isIE)()||(t=await(0,_image.resizeImage)(t,C),a=(0,_validate.fileSizeValidation)(t,x)),r[e]=t,!a)return void G(i.sizeError)}}await s(e+1)}else b.onChange&&b.onChange({files:r}),Y(r),await H(r)};await s(0)},preview:W,previewDataTestId:O,readOnly:A,titleVariant:D})};AttachmentListContainer.propTypes={acceptedFileTypes:_propTypes.string,actions:(0,_propTypes.arrayOf)(_buttonTypes.buttonTypes),allowedPDFUploadSizes:(0,_propTypes.arrayOf)((0,_propTypes.shape)({name:_propTypes.string,heightInPt:_propTypes.number,widthInPt:_propTypes.number,tolerance:_propTypes.number})),classes:(0,_propTypes.objectOf)(_propTypes.string),containerClassname:_propTypes.string,customValidation:_propTypes.func,disabled:_propTypes.bool,dataTestId:_propTypes.string,deleteDataTestId:_propTypes.string,disableResize:_propTypes.bool,errorClassname:_propTypes.string,field:_propTypes.any,fieldTypes:(0,_propTypes.arrayOf)(_propTypes.string),hideLabels:_propTypes.bool,icon:_propTypes.node,input:(0,_propTypes.shape)({value:(0,_propTypes.oneOfType)([_propTypes.string,(0,_propTypes.shape)({name:_propTypes.string,type:_propTypes.string})])}),loadingTextClassname:_propTypes.string,maxFileSize:_propTypes.number,onLoaded:_propTypes.func,notifyOnInitialLoad:_propTypes.bool,previewDataTestId:_propTypes.string,readOnly:_propTypes.bool,resizeConfig:(0,_propTypes.shape)({type:_propTypes.string,maxWidth:_propTypes.number,maxHeight:_propTypes.number}),sanitize:_propTypes.func,theme:_propTypes.any,titleVariant:_propTypes.string};var _default=exports.default=(0,_WithTheme.default)(_theme.retrieveStyle)(AttachmentListContainer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_propTypes=require("prop-types"),_validate=require("@widergy/web-utils/lib/validate"),_image=require("@widergy/web-utils/lib/image"),_browser=require("@widergy/web-utils/lib/browser"),_array=require("@widergy/web-utils/lib/array"),_WithTheme=_interopRequireDefault(require("../../components/WithTheme")),_buttonTypes=require("../../types/buttonTypes"),_theme=require("./theme"),_constants=require("./constants"),_layout=_interopRequireDefault(require("./layout")),_utils=require("./utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(a=t?r:i){if(a.has(e))return a.get(e);a.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?a(o,t,s):o[t]=e[t]);return o})(e,t)}function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==typeof t?t:t+""}function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var r=i.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}class AttachmentContainer extends _react.Component{constructor(e){super(e),_defineProperty(this,"loadElement",()=>{const{input:e,onLoaded:t}=this.props;(0,_utils.getBlobFromUrl)(e.value,i=>{if(null!=i&&i.type){const t=i.type.substring(i.type.indexOf("/")+1);this.setState({name:this.getDefaultAttachment(e.value,t)}),(0,_utils.hasPreview)(i)&&this.buildPreview(i)}else this.setState({name:this.getDefaultAttachment(e.value)});t&&t()})}),_defineProperty(this,"loadDefaultValues",()=>{const{input:e}=this.props;this.hasDefaultValueToLoad()?this.loadElement():this.hasDefaultFileObjectToLoad()&&this.setFile(e.value.file)}),_defineProperty(this,"getDefaultAttachment",(e,t)=>e&&"string"==typeof e&&_react.default.createElement("a",{href:e,target:"_blank",rel:"noopener noreferrer"},_constants.DEFAULT_ATTACHMENT_NAME,t&&".".concat(t))||""),_defineProperty(this,"hasDefaultValueToLoad",()=>this.props.input.value&&"string"==typeof this.props.input.value),_defineProperty(this,"hasDefaultFileObjectToLoad",()=>{const{input:e}=this.props;return e.value&&"object"==typeof e.value&&(0,_utils.isValidFile)(e.value.file)}),_defineProperty(this,"onChange",async e=>{var t;let i=e.target.files[0];const{resizeConfig:r,disableResize:a}=this.props,s={formatError:_constants.FORMAT_ERROR_TEXT,sizeError:"".concat(_constants.SIZE_ERROR_TEXT," ").concat(Math.round(this.props.maxFileSize/1048576),"MB."),aspectRatioError:"".concat(_constants.ASPECT_RATIO_ERROR_TEXT," ").concat(null===(t=this.props.allowedPDFUploadSizes)||void 0===t?void 0:t.map(e=>e.name).join(" - "),")")};if(this.setState({error:!1}),i){let e=!this.props.customValidation||await this.props.customValidation(i,this.onFailValidation);if(e){if(e=await(0,_validate.fileSignatureValidation)(i,this.props.fieldTypes,i.type),e)
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_propTypes=require("prop-types"),_validate=require("@widergy/web-utils/lib/validate"),_image=require("@widergy/web-utils/lib/image"),_browser=require("@widergy/web-utils/lib/browser"),_array=require("@widergy/web-utils/lib/array"),_WithTheme=_interopRequireDefault(require("../../components/WithTheme")),_buttonTypes=require("../../types/buttonTypes"),_theme=require("./theme"),_constants=require("./constants"),_layout=_interopRequireDefault(require("./layout")),_utils=require("./utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(a=t?r:i){if(a.has(e))return a.get(e);a.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?a(o,t,s):o[t]=e[t]);return o})(e,t)}function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==typeof t?t:t+""}function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var r=i.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}class AttachmentContainer extends _react.Component{constructor(e){super(e),_defineProperty(this,"loadElement",()=>{const{input:e,onLoaded:t}=this.props;(0,_utils.getBlobFromUrl)(e.value,i=>{if(null!=i&&i.type){const t=i.type.substring(i.type.indexOf("/")+1);this.setState({name:this.getDefaultAttachment(e.value,t)}),(0,_utils.hasPreview)(i)&&this.buildPreview(i)}else this.setState({name:this.getDefaultAttachment(e.value)});t&&t()})}),_defineProperty(this,"loadDefaultValues",()=>{const{input:e}=this.props;this.hasDefaultValueToLoad()?this.loadElement():this.hasDefaultFileObjectToLoad()&&this.setFile(e.value.file)}),_defineProperty(this,"getDefaultAttachment",(e,t)=>e&&"string"==typeof e&&_react.default.createElement("a",{href:e,target:"_blank",rel:"noopener noreferrer"},_constants.DEFAULT_ATTACHMENT_NAME,t&&".".concat(t))||""),_defineProperty(this,"hasDefaultValueToLoad",()=>this.props.input.value&&"string"==typeof this.props.input.value),_defineProperty(this,"hasDefaultFileObjectToLoad",()=>{const{input:e}=this.props;return e.value&&"object"==typeof e.value&&(0,_utils.isValidFile)(e.value.file)}),_defineProperty(this,"onChange",async e=>{var t;let i=e.target.files[0];const{resizeConfig:r,disableResize:a}=this.props,s={formatError:_constants.FORMAT_ERROR_TEXT,sizeError:"".concat(_constants.SIZE_ERROR_TEXT," ").concat(Math.round(this.props.maxFileSize/1048576),"MB."),aspectRatioError:"".concat(_constants.ASPECT_RATIO_ERROR_TEXT," ").concat(null===(t=this.props.allowedPDFUploadSizes)||void 0===t?void 0:t.map(e=>e.name).join(" - "),")")};if(this.setState({error:!1}),i){let e=!this.props.customValidation||await this.props.customValidation(i,this.onFailValidation);if(e){if(e=await(0,_validate.fileSignatureValidation)(i,this.props.fieldTypes,i.type),e){if(this.props.sanitize)try{i=await this.props.sanitize(i)}catch(e){return this.onFailValidation(s.formatError)}return e=(0,_validate.fileSizeValidation)(i,this.props.maxFileSize),e&&(0,_utils.isPDF)(i)&&!(0,_array.isEmpty)(this.props.allowedPDFUploadSizes)?(e=await(0,_utils.pdfAspectRatioValidation)(i,this.props.allowedPDFUploadSizes),e?this.setFile(i):this.onFailValidation(s.aspectRatioError)):(e||a||!(0,_utils.isImage)(i)||(0,_browser.isIE)()||(i=await(0,_image.resizeImage)(i,r),e=(0,_validate.fileSizeValidation)(i,this.props.maxFileSize)),e?this.setFile(i):this.onFailValidation(s.sizeError))}this.onFailValidation(s.formatError)}}}),_defineProperty(this,"onFailValidation",e=>this.setState({error:!0,errorText:e})),_defineProperty(this,"setFile",async e=>{const{onChange:t,onLoaded:i}=this.props;this.setState({loading:!0,name:e.name}),(0,_utils.hasPreview)(e)&&this.buildPreview(e),t&&t({file:e}),this.setState({loading:!1}),i&&i()}),_defineProperty(this,"buildPreview",e=>{const t=new FileReader;t.onload=t=>this.setState({preview:{src:t.target.result,type:e.type}}),t.readAsDataURL(e)}),_defineProperty(this,"removeValue",()=>{this.setState({loading:!1,name:"",preview:{}}),this.props.onChange&&this.props.onChange("")}),this.state={loading:!1,name:"",preview:{},error:!1,errorText:_constants.FORMAT_ERROR_TEXT}}componentDidMount(){this.loadDefaultValues()}componentDidUpdate(e){var t;const{fieldTypes:i,input:r}=this.props;(null===(t=e.fieldTypes)||void 0===t?void 0:t[0])!==(null==i?void 0:i[0])?this.removeValue():(0,_utils.isNewFile)(e.input.value,r.value)&&this.loadDefaultValues()}render(){const{acceptedFileTypes:e,actions:t,classes:i,containerClassname:r,dataTestId:a,deleteDataTestId:s,disabled:o,errorClassname:p,field:n,fieldTypes:l,hideLabels:u,icon:d,input:_,loadingTextClassname:y,previewClassname:c,previewDataTestId:h,previewProps:f,RemoveIcon:T,removeFileClassname:m,titleVariant:v}=this.props,{name:g,preview:b,loading:w,error:P,errorText:F}=this.state,D=this.hasDefaultValueToLoad()&&!g;return _react.default.createElement(_layout.default,{acceptedFileTypes:e,actions:t,classes:i,containerClassname:r,dataTestId:a,deleteDataTestId:s,disabled:o,error:P,errorClassname:p,errorText:F,field:n,fieldTypes:l,hideLabels:u,icon:d,loading:w||D,loadingTextClassname:y,name:g||this.getDefaultAttachment(_.value),onChange:this.onChange,onClick:this.removeValue,preview:b,previewClassname:c,previewDataTestId:h,previewProps:f,removeFileClassname:m,RemoveIcon:T,titleVariant:v,uploadingText:D?_constants.DEFAULT_UPLOADING_TEXT:""})}}AttachmentContainer.propTypes={acceptedFileTypes:_propTypes.string,actions:(0,_propTypes.arrayOf)(_buttonTypes.buttonTypes),allowedPDFUploadSizes:(0,_propTypes.arrayOf)((0,_propTypes.shape)({name:_propTypes.string,heightInPt:_propTypes.number,widthInPt:_propTypes.number,tolerance:_propTypes.number})),classes:(0,_propTypes.objectOf)(_propTypes.string),containerClassname:_propTypes.string,customValidation:_propTypes.func,dataTestId:_propTypes.string,deleteDataTestId:_propTypes.string,disableResize:_propTypes.bool,disabled:_propTypes.bool,errorClassname:_propTypes.string,field:_propTypes.object,fieldTypes:(0,_propTypes.arrayOf)(_propTypes.string),hideLabels:_propTypes.string,icon:_propTypes.node,input:(0,_propTypes.shape)({value:(0,_propTypes.oneOfType)([_propTypes.string,(0,_propTypes.shape)({name:_propTypes.string,type:_propTypes.string})])}),loadingTextClassname:_propTypes.string,maxFileSize:_propTypes.number,onChange:_propTypes.func,onLoaded:_propTypes.func,previewClassname:_propTypes.string,previewDataTestId:_propTypes.string,previewProps:_constants.previewPropType,removeFileClassname:_propTypes.string,RemoveIcon:_propTypes.elementType,resizeConfig:(0,_propTypes.shape)({type:_propTypes.string,maxWidth:_propTypes.number,maxHeight:_propTypes.number}),sanitize:_propTypes.func,titleVariant:_propTypes.string},AttachmentContainer.defaultProps={maxFileSize:99999999};var _default=exports.default=(0,_WithTheme.default)(_theme.retrieveStyle)(AttachmentContainer);
|
|
@@ -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,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
|
|
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)try{t=await C(t)}catch(e){return void Z(r.formatError)}if(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
|
-
function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==typeof t?t:t+""}function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var a=i.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}import React,{Component}from"react";import{arrayOf,bool,elementType,func,node,number,object,objectOf,oneOfType,shape,string}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"@widergy/web-utils/lib/array";import WithTheme from"../../components/WithTheme";import{buttonTypes}from"../../types/buttonTypes";import{retrieveStyle}from"./theme";import{FORMAT_ERROR_TEXT,SIZE_ERROR_TEXT,ASPECT_RATIO_ERROR_TEXT,DEFAULT_UPLOADING_TEXT,DEFAULT_ATTACHMENT_NAME,previewPropType}from"./constants";import Attachment from"./layout";import{getBlobFromUrl,pdfAspectRatioValidation,hasPreview,isImage,isPDF,isValidFile,isNewFile}from"./utils";class AttachmentContainer extends Component{constructor(e){super(e),_defineProperty(this,"loadElement",()=>{const{input:e,onLoaded:t}=this.props;getBlobFromUrl(e.value,i=>{if(null!=i&&i.type){const t=i.type.substring(i.type.indexOf("/")+1);this.setState({name:this.getDefaultAttachment(e.value,t)}),hasPreview(i)&&this.buildPreview(i)}else this.setState({name:this.getDefaultAttachment(e.value)});t&&t()})}),_defineProperty(this,"loadDefaultValues",()=>{const{input:e}=this.props;this.hasDefaultValueToLoad()?this.loadElement():this.hasDefaultFileObjectToLoad()&&this.setFile(e.value.file)}),_defineProperty(this,"getDefaultAttachment",(e,t)=>e&&"string"==typeof e&&React.createElement("a",{href:e,target:"_blank",rel:"noopener noreferrer"},DEFAULT_ATTACHMENT_NAME,t&&".".concat(t))||""),_defineProperty(this,"hasDefaultValueToLoad",()=>this.props.input.value&&"string"==typeof this.props.input.value),_defineProperty(this,"hasDefaultFileObjectToLoad",()=>{const{input:e}=this.props;return e.value&&"object"==typeof e.value&&isValidFile(e.value.file)}),_defineProperty(this,"onChange",async e=>{var t;let i=e.target.files[0];const{resizeConfig:a,disableResize:r}=this.props,s={formatError:FORMAT_ERROR_TEXT,sizeError:"".concat(SIZE_ERROR_TEXT," ").concat(Math.round(this.props.maxFileSize/1048576),"MB."),aspectRatioError:"".concat(ASPECT_RATIO_ERROR_TEXT," ").concat(null===(t=this.props.allowedPDFUploadSizes)||void 0===t?void 0:t.map(e=>e.name).join(" - "),")")};if(this.setState({error:!1}),i){let e=!this.props.customValidation||await this.props.customValidation(i,this.onFailValidation);if(e){if(e=await fileSignatureValidation(i,this.props.fieldTypes,i.type),e)
|
|
1
|
+
function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==typeof t?t:t+""}function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var a=i.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}import React,{Component}from"react";import{arrayOf,bool,elementType,func,node,number,object,objectOf,oneOfType,shape,string}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"@widergy/web-utils/lib/array";import WithTheme from"../../components/WithTheme";import{buttonTypes}from"../../types/buttonTypes";import{retrieveStyle}from"./theme";import{FORMAT_ERROR_TEXT,SIZE_ERROR_TEXT,ASPECT_RATIO_ERROR_TEXT,DEFAULT_UPLOADING_TEXT,DEFAULT_ATTACHMENT_NAME,previewPropType}from"./constants";import Attachment from"./layout";import{getBlobFromUrl,pdfAspectRatioValidation,hasPreview,isImage,isPDF,isValidFile,isNewFile}from"./utils";class AttachmentContainer extends Component{constructor(e){super(e),_defineProperty(this,"loadElement",()=>{const{input:e,onLoaded:t}=this.props;getBlobFromUrl(e.value,i=>{if(null!=i&&i.type){const t=i.type.substring(i.type.indexOf("/")+1);this.setState({name:this.getDefaultAttachment(e.value,t)}),hasPreview(i)&&this.buildPreview(i)}else this.setState({name:this.getDefaultAttachment(e.value)});t&&t()})}),_defineProperty(this,"loadDefaultValues",()=>{const{input:e}=this.props;this.hasDefaultValueToLoad()?this.loadElement():this.hasDefaultFileObjectToLoad()&&this.setFile(e.value.file)}),_defineProperty(this,"getDefaultAttachment",(e,t)=>e&&"string"==typeof e&&React.createElement("a",{href:e,target:"_blank",rel:"noopener noreferrer"},DEFAULT_ATTACHMENT_NAME,t&&".".concat(t))||""),_defineProperty(this,"hasDefaultValueToLoad",()=>this.props.input.value&&"string"==typeof this.props.input.value),_defineProperty(this,"hasDefaultFileObjectToLoad",()=>{const{input:e}=this.props;return e.value&&"object"==typeof e.value&&isValidFile(e.value.file)}),_defineProperty(this,"onChange",async e=>{var t;let i=e.target.files[0];const{resizeConfig:a,disableResize:r}=this.props,s={formatError:FORMAT_ERROR_TEXT,sizeError:"".concat(SIZE_ERROR_TEXT," ").concat(Math.round(this.props.maxFileSize/1048576),"MB."),aspectRatioError:"".concat(ASPECT_RATIO_ERROR_TEXT," ").concat(null===(t=this.props.allowedPDFUploadSizes)||void 0===t?void 0:t.map(e=>e.name).join(" - "),")")};if(this.setState({error:!1}),i){let e=!this.props.customValidation||await this.props.customValidation(i,this.onFailValidation);if(e){if(e=await fileSignatureValidation(i,this.props.fieldTypes,i.type),e){if(this.props.sanitize)try{i=await this.props.sanitize(i)}catch(e){return this.onFailValidation(s.formatError)}return e=fileSizeValidation(i,this.props.maxFileSize),e&&isPDF(i)&&!isEmpty(this.props.allowedPDFUploadSizes)?(e=await pdfAspectRatioValidation(i,this.props.allowedPDFUploadSizes),e?this.setFile(i):this.onFailValidation(s.aspectRatioError)):(e||r||!isImage(i)||isIE()||(i=await resizeImage(i,a),e=fileSizeValidation(i,this.props.maxFileSize)),e?this.setFile(i):this.onFailValidation(s.sizeError))}this.onFailValidation(s.formatError)}}}),_defineProperty(this,"onFailValidation",e=>this.setState({error:!0,errorText:e})),_defineProperty(this,"setFile",async e=>{const{onChange:t,onLoaded:i}=this.props;this.setState({loading:!0,name:e.name}),hasPreview(e)&&this.buildPreview(e),t&&t({file:e}),this.setState({loading:!1}),i&&i()}),_defineProperty(this,"buildPreview",e=>{const t=new FileReader;t.onload=t=>this.setState({preview:{src:t.target.result,type:e.type}}),t.readAsDataURL(e)}),_defineProperty(this,"removeValue",()=>{this.setState({loading:!1,name:"",preview:{}}),this.props.onChange&&this.props.onChange("")}),this.state={loading:!1,name:"",preview:{},error:!1,errorText:FORMAT_ERROR_TEXT}}componentDidMount(){this.loadDefaultValues()}componentDidUpdate(e){var t;const{fieldTypes:i,input:a}=this.props;(null===(t=e.fieldTypes)||void 0===t?void 0:t[0])!==(null==i?void 0:i[0])?this.removeValue():isNewFile(e.input.value,a.value)&&this.loadDefaultValues()}render(){const{acceptedFileTypes:e,actions:t,classes:i,containerClassname:a,dataTestId:r,deleteDataTestId:s,disabled:o,errorClassname:n,field:l,fieldTypes:p,hideLabels:d,icon:m,input:h,loadingTextClassname:u,previewClassname:f,previewDataTestId:c,previewProps:T,RemoveIcon:y,removeFileClassname:g,titleVariant:v}=this.props,{name:b,preview:w,loading:E,error:F,errorText:P}=this.state,R=this.hasDefaultValueToLoad()&&!b;return React.createElement(Attachment,{acceptedFileTypes:e,actions:t,classes:i,containerClassname:a,dataTestId:r,deleteDataTestId:s,disabled:o,error:F,errorClassname:n,errorText:P,field:l,fieldTypes:p,hideLabels:d,icon:m,loading:E||R,loadingTextClassname:u,name:b||this.getDefaultAttachment(h.value),onChange:this.onChange,onClick:this.removeValue,preview:w,previewClassname:f,previewDataTestId:c,previewProps:T,removeFileClassname:g,RemoveIcon:y,titleVariant:v,uploadingText:R?DEFAULT_UPLOADING_TEXT:""})}}AttachmentContainer.propTypes={acceptedFileTypes:string,actions:arrayOf(buttonTypes),allowedPDFUploadSizes:arrayOf(shape({name:string,heightInPt:number,widthInPt:number,tolerance:number})),classes:objectOf(string),containerClassname:string,customValidation:func,dataTestId:string,deleteDataTestId:string,disableResize:bool,disabled:bool,errorClassname:string,field:object,fieldTypes:arrayOf(string),hideLabels:string,icon:node,input:shape({value:oneOfType([string,shape({name:string,type:string})])}),loadingTextClassname:string,maxFileSize:number,onChange:func,onLoaded:func,previewClassname:string,previewDataTestId:string,previewProps:previewPropType,removeFileClassname:string,RemoveIcon:elementType,resizeConfig:shape({type:string,maxWidth:number,maxHeight:number}),sanitize:func,titleVariant:string},AttachmentContainer.defaultProps={maxFileSize:99999999};export default WithTheme(retrieveStyle)(AttachmentContainer);
|