UNPKG

filepond-plugin-image-validate-size

Version:

Image Size Validation Plugin for FilePond

10 lines (7 loc) 3.38 kB
/*! * FilePondPluginImageValidateSize 1.2.7 * Licensed under MIT, https://opensource.org/licenses/MIT/ * Please visit https://pqina.nl/filepond/ for details. */ /* eslint-disable */ const e=({addFilter:e,utils:i})=>{const{Type:a,replaceInString:t,isFile:E}=i,_=(e,i,a)=>new Promise((t,E)=>{const _=({width:e,height:a})=>{const{minWidth:_,minHeight:I,maxWidth:l,maxHeight:o,minResolution:T,maxResolution:n}=i,A=e*a;e<_||a<I?E("TOO_SMALL"):e>l||a>o?E("TOO_BIG"):null!==T&&A<T?E("TOO_LOW_RES"):null!==n&&A>n&&E("TOO_HIGH_RES"),t()};(e=>new Promise((i,a)=>{const t=document.createElement("img");t.src=URL.createObjectURL(e),t.onerror=(e=>{clearInterval(E),a(e)});const E=setInterval(()=>{t.naturalWidth&&t.naturalHeight&&(clearInterval(E),URL.revokeObjectURL(t.src),i({width:t.naturalWidth,height:t.naturalHeight}))},1)}))(e).then(_).catch(()=>{a?a(e,i).then(_).catch(()=>E()):E()})});return e("LOAD_FILE",(e,{query:i})=>new Promise((a,I)=>{if(!E(e)||!(e=>/^image/.test(e.type))(e)||!i("GET_ALLOW_IMAGE_VALIDATE_SIZE"))return void a(e);const l={minWidth:i("GET_IMAGE_VALIDATE_SIZE_MIN_WIDTH"),minHeight:i("GET_IMAGE_VALIDATE_SIZE_MIN_HEIGHT"),maxWidth:i("GET_IMAGE_VALIDATE_SIZE_MAX_WIDTH"),maxHeight:i("GET_IMAGE_VALIDATE_SIZE_MAX_HEIGHT"),minResolution:i("GET_IMAGE_VALIDATE_SIZE_MIN_RESOLUTION"),maxResolution:i("GET_IMAGE_VALIDATE_SIZE_MAX_RESOLUTION")},o=i("GET_IMAGE_VALIDATE_SIZE_MEASURE");_(e,l,o).then(()=>{a(e)}).catch(a=>{const E=a?{TOO_SMALL:{label:i("GET_IMAGE_VALIDATE_SIZE_LABEL_IMAGE_SIZE_TOO_SMALL"),details:i("GET_IMAGE_VALIDATE_SIZE_LABEL_EXPECTED_MIN_SIZE")},TOO_BIG:{label:i("GET_IMAGE_VALIDATE_SIZE_LABEL_IMAGE_SIZE_TOO_BIG"),details:i("GET_IMAGE_VALIDATE_SIZE_LABEL_EXPECTED_MAX_SIZE")},TOO_LOW_RES:{label:i("GET_IMAGE_VALIDATE_SIZE_LABEL_IMAGE_RESOLUTION_TOO_LOW"),details:i("GET_IMAGE_VALIDATE_SIZE_LABEL_EXPECTED_MIN_RESOLUTION")},TOO_HIGH_RES:{label:i("GET_IMAGE_VALIDATE_SIZE_LABEL_IMAGE_RESOLUTION_TOO_HIGH"),details:i("GET_IMAGE_VALIDATE_SIZE_LABEL_EXPECTED_MAX_RESOLUTION")}}[a]:{label:i("GET_IMAGE_VALIDATE_SIZE_LABEL_FORMAT_ERROR"),details:e.type};I({status:{main:E.label,sub:a?t(E.details,l):E.details}})})})),{options:{allowImageValidateSize:[!0,a.BOOLEAN],imageValidateSizeLabelFormatError:["Image type not supported",a.STRING],imageValidateSizeMeasure:[null,a.FUNCTION],imageValidateSizeMinResolution:[null,a.INT],imageValidateSizeMaxResolution:[null,a.INT],imageValidateSizeLabelImageResolutionTooLow:["Resolution is too low",a.STRING],imageValidateSizeLabelImageResolutionTooHigh:["Resolution is too high",a.STRING],imageValidateSizeLabelExpectedMinResolution:["Minimum resolution is {minResolution}",a.STRING],imageValidateSizeLabelExpectedMaxResolution:["Maximum resolution is {maxResolution}",a.STRING],imageValidateSizeMinWidth:[1,a.INT],imageValidateSizeMinHeight:[1,a.INT],imageValidateSizeMaxWidth:[65535,a.INT],imageValidateSizeMaxHeight:[65535,a.INT],imageValidateSizeLabelImageSizeTooSmall:["Image is too small",a.STRING],imageValidateSizeLabelImageSizeTooBig:["Image is too big",a.STRING],imageValidateSizeLabelExpectedMinSize:["Minimum size is {minWidth} × {minHeight}",a.STRING],imageValidateSizeLabelExpectedMaxSize:["Maximum size is {maxWidth} × {maxHeight}",a.STRING]}}};"undefined"!=typeof window&&void 0!==window.document&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:e}));export default e;