@yoopta/image 6.0.0-beta.1 → 6.0.0-beta.4

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.
@@ -1,5 +1,5 @@
1
- import type { ImageUploadOptions, ImageUploadPreview, UseImageDeleteReturn, UseImageUploadReturn } from '../types';
2
- export declare const useImageDelete: (options: ImageUploadOptions) => UseImageDeleteReturn;
1
+ import type { ImageDeleteOptions, ImageUploadOptions, ImageUploadPreview, UseImageDeleteReturn, UseImageUploadReturn } from '../types';
2
+ export declare const useImageDelete: (options: ImageDeleteOptions) => UseImageDeleteReturn;
3
3
  export declare const useImageUpload: (options: ImageUploadOptions) => UseImageUploadReturn;
4
4
  export declare const useImageDimensions: () => {
5
5
  getDimensions: (file: File) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"use-upload.d.ts","sourceRoot":"","sources":["../../src/hooks/use-upload.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,cAAc,YAAa,kBAAkB,KAAG,oBAsC5D,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,kBAAkB,KAAG,oBAwC5D,CAAC;AAEF,eAAO,MAAM,kBAAkB;0BACA,IAAI,KAAG,QAAQ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAsB/E,CAAC;AAEF,eAAO,MAAM,eAAe;;4BAIK,IAAI;;;;CAyBpC,CAAC"}
1
+ {"version":3,"file":"use-upload.d.ts","sourceRoot":"","sources":["../../src/hooks/use-upload.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,kBAAkB,EAKlB,kBAAkB,EAClB,kBAAkB,EAKlB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAalB,eAAO,MAAM,cAAc,YAAa,kBAAkB,KAAG,oBA6F5D,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,kBAAkB,KAAG,oBA6G5D,CAAC;AAEF,eAAO,MAAM,kBAAkB;0BACA,IAAI,KAAG,QAAQ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAsB/E,CAAC;AAEF,eAAO,MAAM,eAAe;;4BAGK,IAAI;;;;CAuBpC,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { ImageUploadOptions, ImageUploadProgress, UploadError, UploadResult } from '../types';
2
- export declare const useXHRRequest: ({ onError, onSuccess, onProgress, accept, maxSize, method, endpoint, headers, }: ImageUploadOptions) => {
1
+ import type { ImageUploadProgress, UploadError, UploadResult, XHRRequestOptions } from '../types';
2
+ export declare const useXHRRequest: ({ onError, onSuccess, onProgress, accept, maxSize, method, endpoint, headers, }: XHRRequestOptions) => {
3
3
  xhrFetch: (body: XMLHttpRequestBodyInit) => Promise<UploadResult>;
4
4
  cancel: () => void;
5
5
  reset: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-xhr.d.ts","sourceRoot":"","sources":["../../src/hooks/use-xhr.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,YAAY,EAEb,MAAM,UAAU,CAAC;AAqBlB,eAAO,MAAM,aAAa,oFASvB,kBAAkB;qBAUK,sBAAsB,KAAG,QAAQ,YAAY,CAAC;;;;;;;CA+KvE,CAAC"}
1
+ {"version":3,"file":"use-xhr.d.ts","sourceRoot":"","sources":["../../src/hooks/use-xhr.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EAEZ,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAqBlB,eAAO,MAAM,aAAa,oFASvB,iBAAiB;qBAUM,sBAAsB,KAAG,QAAQ,YAAY,CAAC;;;;;;;CA+KvE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Image } from './plugin/image-plugin';
2
- export { ImageElement, ImageElementProps, ImageUploadResponse, ImagePluginOptions, ImageUploadOptions, ImageDeleteOptions, ImageUploadPreview, UseImageDeleteReturn, UseImageUploadReturn, ImageUploadProgress, } from './types';
2
+ export { ImageElement, ImageElementProps, ImageUploadResponse, ImagePluginOptions, ImageUploadOptions, ImageDeleteOptions, ImageUploadFn, ImageDeleteFn, ImageUploadEndpointOptions, ImageDeleteEndpointOptions, ImageUploadPreview, UseImageDeleteReturn, UseImageUploadReturn, ImageUploadProgress, } from './types';
3
3
  export { useImageUpload, useImageDelete, useImageDimensions, useImagePreview, } from './hooks/use-upload';
4
4
  export { ImageCommands } from './commands';
5
5
  export default Image;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,0BAA0B,EAC1B,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAe,KAAK,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{generateId as r,Blocks as s,Elements as n,YooptaPlugin as i}from"@yoopta/editor";import{useState as o,useRef as a,useCallback as l}from"react";const d={buildImageElements:(e,t={})=>{const s=Object.assign(Object.assign({},t.props),{nodeType:"void"});return{id:r(),type:"image",children:[{text:""}],props:s}},insertImage:(e,t={})=>{const{at:r,focus:n,props:i}=t,o=d.buildImageElements(e,{props:i}),a=s.buildBlockData({value:[o],type:"Image",meta:{align:"center",depth:0}});s.insertBlock(e,a.type,{focus:n,at:r,blockData:a})},deleteImage:(e,t)=>{s.deleteBlock(e,{blockId:t})},updateImage:(e,t,r)=>{n.updateElement(e,{blockId:t,type:"image",props:r})}},c=e=>"number"==typeof e?e:parseInt(e.replace(/[^\d]/g,""),10),p={left:"flex-start",center:"center",right:"flex-end"},g=new i({type:"Image",elements:e("image",{render:r=>{var s,n;return t("div",Object.assign({},r.attributes,{contentEditable:!1},{children:[e("img",{src:r.element.props.src,alt:r.element.props.alt,width:null===(s=r.element.props.sizes)||void 0===s?void 0:s.width,height:null===(n=r.element.props.sizes)||void 0===n?void 0:n.height,style:{objectFit:r.element.props.fit}}),r.children]}))},props:{id:null,src:null,alt:null,srcSet:null,bgColor:null,fit:null,sizes:{width:0,height:0}},nodeType:"void"}),commands:d,options:{display:{title:"Image",description:"Upload from device or insert with link"},maxSizes:{maxWidth:650,maxHeight:550}},parsers:{html:{deserialize:{nodeNames:["IMG"],parse:(e,t)=>{var s;if("IMG"===e.nodeName){const n={width:e.getAttribute("width")?parseInt(e.getAttribute("width")||"650",10):650,height:e.getAttribute("height")?parseInt(e.getAttribute("height")||"500",10):500},i=null===(s=t.plugins.Image.options)||void 0===s?void 0:s.maxSizes,o=((e,t)=>{const r=c(e.width),s=c(e.height),n=c(t.width),i=c(t.height);if(r<=n&&s<=i)return{width:r,height:s};const o=r/n,a=s/i,l=Math.max(o,a),d=Math.round(r/l),p=Math.round(s/l);return{width:Math.min(d,n),height:Math.min(p,i)}})(n,{width:i.maxWidth,height:i.maxHeight}),a={id:r(),nodeType:"void",src:e.getAttribute("src")||"",alt:e.getAttribute("alt")||"",srcSet:e.getAttribute("srcset")||"",fit:e.getAttribute("objectFit")||"contain",sizes:o};return{id:r(),type:"image",children:[{text:""}],props:a}}}},serialize:(e,t,r)=>{const{align:s="center",depth:n=0}=r||{};return`<div style="margin-left: ${20*n}px; display: flex; width: 100%; justify-content: ${p[s]||"center"};">\n <img data-meta-align="${s}" data-meta-depth="${n}" src="${e.props.src}" alt="${e.props.alt}" width="${e.props.sizes.width}" height="${e.props.sizes.height}" objectFit="${e.props.fit}"/>\n </div>`}},markdown:{serialize:e=>`![${e.props.alt||e.id}](${e.props.src})\n`},email:{serialize:(e,t,r)=>{const{align:s="center",depth:n=0}=r||{};return`\n <table style="width:100%;">\n <tbody style="width:100%;">\n <tr>\n <td style="margin-left: ${20*n}px; display: flex; width: 100%; justify-content: ${p[s]||"center"}; margin-top: 1rem;">\n <img data-meta-align="${s}" style="margin: 0 auto; object-fit:${e.props.fit||"contain"};" data-meta-depth="${n}" src="${e.props.src}" alt="${e.props.alt}" width="${e.props.sizes.width}" height="${e.props.sizes.height}" />\n </td>\n </tr>\n </tbody>\n </table>\n `}}}}),u=({onError:e,onSuccess:t,onProgress:r,accept:s,maxSize:n,method:i="POST",endpoint:d,headers:c})=>{const[p,g]=o({loading:!1,progress:null,error:null,result:null}),u=a(null),h=l(()=>{u.current&&(u.current.abort(),u.current=null)},[]),m=l(()=>{g({loading:!1,progress:null,error:null,result:null})},[]);return Object.assign(Object.assign({},p),{xhrFetch:o=>new Promise((a,l)=>{if(o instanceof File){const t=((e,t,r)=>{if(t&&!t.includes(e.type))return{message:`Invalid file type. Allowed types: ${t}`,code:"INVALID_TYPE"};if(r&&e.size>r)return{message:`File size exceeds ${(r/1024/1024).toFixed(2)}MB`,code:"FILE_TOO_LARGE"};return null})(o,s,n);if(t)return g(e=>Object.assign(Object.assign({},e),{error:t})),null==e||e(t),void l(t)}g({loading:!0,progress:{loaded:0,total:o instanceof File?o.size:0,percentage:0},error:null,result:null});const p=new XMLHttpRequest;u.current=p,p.upload.addEventListener("progress",e=>{if(e.lengthComputable){const t={loaded:e.loaded,total:e.total,percentage:Math.round(e.loaded/e.total*100)};g(e=>Object.assign(Object.assign({},e),{progress:t})),null==r||r(t)}}),p.addEventListener("load",()=>{if(p.status>=200&&p.status<300)try{const e=JSON.parse(p.responseText);g(t=>Object.assign(Object.assign({},t),{loading:!1,result:e})),null==t||t(e),a(e)}catch(t){const r={message:"Failed to parse server response",code:"PARSE_ERROR",status:p.status};g(e=>Object.assign(Object.assign({},e),{loading:!1,error:r})),null==e||e(r),l(r)}else{const t={message:`Upload failed with status ${p.status}`,code:"HTTP_ERROR",status:p.status};g(e=>Object.assign(Object.assign({},e),{loading:!1,error:t})),null==e||e(t),l(t)}}),p.addEventListener("error",()=>{const t={message:"Network error occurred",code:"NETWORK_ERROR"};g(e=>Object.assign(Object.assign({},e),{loading:!1,error:t})),null==e||e(t),l(t)}),p.addEventListener("abort",()=>{const e={message:"Upload cancelled",code:"ABORT"};g(t=>Object.assign(Object.assign({},t),{loading:!1,error:e})),l(e)}),p.addEventListener("timeout",()=>{const t={message:"Upload timeout",code:"TIMEOUT"};g(e=>Object.assign(Object.assign({},e),{loading:!1,error:t})),null==e||e(t),l(t)}),p.open(i,d),c&&Object.entries(c).forEach(([e,t])=>{p.setRequestHeader(e,t)}),p.timeout=3e4,p.send(o)}),cancel:h,reset:m})},h=e=>{const{endpoint:t,method:r="DELETE",headers:s={},fieldName:n="file",onSuccess:i,onError:o,onProgress:a}=e,{xhrFetch:l,cancel:d,reset:c,loading:p,progress:g,error:h,result:m}=u({onError:o,onSuccess:i,onProgress:a,fieldName:n,method:r,endpoint:t,headers:s});return{loading:p,progress:g,error:h,result:m,deleteImage:e=>{var t;const r=null===(t=e.props)||void 0===t?void 0:t.id;if(!r)throw new Error("FileId is required");return l(JSON.stringify({fileId:r}))},cancel:d,reset:c}},m=e=>{const{endpoint:t,method:r="POST",headers:s={},fieldName:n="file",maxSize:i,accept:o="image/jpeg, image/jpg, image/png, image/gif, image/webp",onSuccess:a,onError:l,onProgress:d}=e,{xhrFetch:c,cancel:p,reset:g,loading:h,progress:m,error:b,result:f}=u({onError:l,onSuccess:a,onProgress:d,fieldName:n,accept:o,maxSize:i,method:r,endpoint:t,headers:s});return{loading:h,progress:m,error:b,result:f,upload:e=>{const t=new FormData;return t.append(null!=n?n:"yoopta-image-file",e),c(t)},cancel:p,reset:g}},b=()=>({getDimensions:e=>new Promise((t,r)=>{const s=new Image,n=URL.createObjectURL(e);s.onload=()=>{URL.revokeObjectURL(n),t({width:s.naturalWidth,height:s.naturalHeight})},s.onerror=()=>{URL.revokeObjectURL(n),r(new Error("Failed to load image"))},s.src=n})}),f=()=>{const[e,t]=o(null);return{preview:e,generatePreview:r=>{e&&URL.revokeObjectURL(e.url);const s=URL.createObjectURL(r);return t({url:s}),{url:s}},clearPreview:()=>{e&&(URL.revokeObjectURL(e.url),t(null))}}};export{d as ImageCommands,g as default,h as useImageDelete,b as useImageDimensions,f as useImagePreview,m as useImageUpload};
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{generateId as r,Blocks as s,Elements as n,YooptaPlugin as i}from"@yoopta/editor";import{useState as o,useRef as l,useCallback as a}from"react";const d={buildImageElements:(e,t={})=>{const s=Object.assign(Object.assign({},t.props),{nodeType:"void"});return{id:r(),type:"image",children:[{text:""}],props:s}},insertImage:(e,t={})=>{const{at:r,focus:n,props:i}=t,o=d.buildImageElements(e,{props:i}),l=s.buildBlockData({value:[o],type:"Image",meta:{align:"center",depth:0}});s.insertBlock(e,l.type,{focus:n,at:r,blockData:l})},deleteImage:(e,t)=>{s.deleteBlock(e,{blockId:t})},updateImage:(e,t,r)=>{n.updateElement(e,{blockId:t,type:"image",props:r})}},c=e=>"number"==typeof e?e:parseInt(e.replace(/[^\d]/g,""),10),u={left:"flex-start",center:"center",right:"flex-end"},g=new i({type:"Image",elements:e("image",{render:r=>{var s,n;return t("div",Object.assign({},r.attributes,{contentEditable:!1},{children:[e("img",{src:r.element.props.src,alt:r.element.props.alt,width:null===(s=r.element.props.sizes)||void 0===s?void 0:s.width,height:null===(n=r.element.props.sizes)||void 0===n?void 0:n.height,style:{objectFit:r.element.props.fit}}),r.children]}))},props:{id:null,src:null,alt:null,srcSet:null,bgColor:null,fit:null,sizes:{width:0,height:0}},nodeType:"void"}),commands:d,options:{display:{title:"Image",description:"Upload from device or insert with link"},maxSizes:{maxWidth:650,maxHeight:550}},parsers:{html:{deserialize:{nodeNames:["IMG"],parse:(e,t)=>{var s;if("IMG"===e.nodeName){const n={width:e.getAttribute("width")?parseInt(e.getAttribute("width")||"650",10):650,height:e.getAttribute("height")?parseInt(e.getAttribute("height")||"500",10):500},i=null===(s=t.plugins.Image.options)||void 0===s?void 0:s.maxSizes,o=((e,t)=>{const r=c(e.width),s=c(e.height),n=c(t.width),i=c(t.height);if(r<=n&&s<=i)return{width:r,height:s};const o=r/n,l=s/i,a=Math.max(o,l),d=Math.round(r/a),u=Math.round(s/a);return{width:Math.min(d,n),height:Math.min(u,i)}})(n,{width:i.maxWidth,height:i.maxHeight}),l={id:r(),nodeType:"void",src:e.getAttribute("src")||"",alt:e.getAttribute("alt")||"",srcSet:e.getAttribute("srcset")||"",fit:e.getAttribute("objectFit")||"contain",sizes:o};return{id:r(),type:"image",children:[{text:""}],props:l}}}},serialize:(e,t,r)=>{const{align:s="center",depth:n=0}=r||{};return`<div style="margin-left: ${20*n}px; display: flex; width: 100%; justify-content: ${u[s]||"center"};">\n <img data-meta-align="${s}" data-meta-depth="${n}" src="${e.props.src}" alt="${e.props.alt}" width="${e.props.sizes.width}" height="${e.props.sizes.height}" objectFit="${e.props.fit}"/>\n </div>`}},markdown:{serialize:e=>`![${e.props.alt||e.id}](${e.props.src})\n`},email:{serialize:(e,t,r)=>{const{align:s="center",depth:n=0}=r||{};return`\n <table style="width:100%;">\n <tbody style="width:100%;">\n <tr>\n <td style="margin-left: ${20*n}px; display: flex; width: 100%; justify-content: ${u[s]||"center"}; margin-top: 1rem;">\n <img data-meta-align="${s}" style="margin: 0 auto; object-fit:${e.props.fit||"contain"};" data-meta-depth="${n}" src="${e.props.src}" alt="${e.props.alt}" width="${e.props.sizes.width}" height="${e.props.sizes.height}" />\n </td>\n </tr>\n </tbody>\n </table>\n `}}}});function p(e,t,r,s){return new(r||(r=Promise))(function(n,i){function o(e){try{a(s.next(e))}catch(e){i(e)}}function l(e){try{a(s.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(o,l)}a((s=s.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;const h=({onError:e,onSuccess:t,onProgress:r,accept:s,maxSize:n,method:i="POST",endpoint:d,headers:c})=>{const[u,g]=o({loading:!1,progress:null,error:null,result:null}),p=l(null),h=a(()=>{p.current&&(p.current.abort(),p.current=null)},[]),m=a(()=>{g({loading:!1,progress:null,error:null,result:null})},[]);return Object.assign(Object.assign({},u),{xhrFetch:o=>new Promise((l,a)=>{if(o instanceof File){const t=((e,t,r)=>{if(t&&!t.includes(e.type))return{message:`Invalid file type. Allowed types: ${t}`,code:"INVALID_TYPE"};if(r&&e.size>r)return{message:`File size exceeds ${(r/1024/1024).toFixed(2)}MB`,code:"FILE_TOO_LARGE"};return null})(o,s,n);if(t)return g(e=>Object.assign(Object.assign({},e),{error:t})),null==e||e(t),void a(t)}g({loading:!0,progress:{loaded:0,total:o instanceof File?o.size:0,percentage:0},error:null,result:null});const u=new XMLHttpRequest;p.current=u,u.upload.addEventListener("progress",e=>{if(e.lengthComputable){const t={loaded:e.loaded,total:e.total,percentage:Math.round(e.loaded/e.total*100)};g(e=>Object.assign(Object.assign({},e),{progress:t})),null==r||r(t)}}),u.addEventListener("load",()=>{if(u.status>=200&&u.status<300)try{const e=JSON.parse(u.responseText);g(t=>Object.assign(Object.assign({},t),{loading:!1,result:e})),null==t||t(e),l(e)}catch(t){const r={message:"Failed to parse server response",code:"PARSE_ERROR",status:u.status};g(e=>Object.assign(Object.assign({},e),{loading:!1,error:r})),null==e||e(r),a(r)}else{const t={message:`Upload failed with status ${u.status}`,code:"HTTP_ERROR",status:u.status};g(e=>Object.assign(Object.assign({},e),{loading:!1,error:t})),null==e||e(t),a(t)}}),u.addEventListener("error",()=>{const t={message:"Network error occurred",code:"NETWORK_ERROR"};g(e=>Object.assign(Object.assign({},e),{loading:!1,error:t})),null==e||e(t),a(t)}),u.addEventListener("abort",()=>{const e={message:"Upload cancelled",code:"ABORT"};g(t=>Object.assign(Object.assign({},t),{loading:!1,error:e})),a(e)}),u.addEventListener("timeout",()=>{const t={message:"Upload timeout",code:"TIMEOUT"};g(e=>Object.assign(Object.assign({},e),{loading:!1,error:t})),null==e||e(t),a(t)}),u.open(i,d),c&&Object.entries(c).forEach(([e,t])=>{u.setRequestHeader(e,t)}),u.timeout=3e4,u.send(o)}),cancel:h,reset:m})},m=e=>{var t,r,s;const n=(e=>"function"==typeof e)(e),[i,l]=o({loading:!1,progress:null,error:null,result:null}),d=n?{endpoint:""}:e,c=h({endpoint:d.endpoint,method:null!==(t=d.method)&&void 0!==t?t:"DELETE",headers:null!==(r=d.headers)&&void 0!==r?r:{},fieldName:null!==(s=d.fieldName)&&void 0!==s?s:"file",onSuccess:d.onSuccess,onError:d.onError,onProgress:d.onProgress}),u=a(t=>p(void 0,void 0,void 0,function*(){var r,s,i;if(!n)throw new Error("Custom delete called but options is not a function");const o=null===(r=t.props)||void 0===r?void 0:r.src;if(!o)throw new Error("Image src is required");l(e=>Object.assign(Object.assign({},e),{loading:!0,error:null}));try{yield e(o);const r={id:null!==(i=null===(s=t.props)||void 0===s?void 0:s.id)&&void 0!==i?i:"",url:o};return l(e=>Object.assign(Object.assign({},e),{loading:!1,result:r})),r}catch(e){const t={message:e instanceof Error?e.message:"Delete failed",code:"CUSTOM_DELETE_ERROR"};throw l(e=>Object.assign(Object.assign({},e),{loading:!1,error:t})),t}}),[e,n]),g=a(()=>{l({loading:!1,progress:null,error:null,result:null})},[]),m=a(e=>{var t;const r=null===(t=e.props)||void 0===t?void 0:t.id;if(!r)throw new Error("FileId is required");return c.xhrFetch(JSON.stringify({fileId:r}))},[c]);return n?Object.assign(Object.assign({},i),{deleteImage:u,cancel:()=>{},reset:g}):{loading:c.loading,progress:c.progress,error:c.error,result:c.result,deleteImage:m,cancel:c.cancel,reset:c.reset}},b=e=>{var t,r,s,n;const i=(e=>"function"==typeof e)(e),[l,d]=o({loading:!1,progress:null,error:null,result:null}),c=i?{endpoint:""}:e,u=h({endpoint:c.endpoint,method:null!==(t=c.method)&&void 0!==t?t:"POST",headers:null!==(r=c.headers)&&void 0!==r?r:{},fieldName:null!==(s=c.fieldName)&&void 0!==s?s:"file",maxSize:c.maxSize,accept:null!==(n=c.accept)&&void 0!==n?n:"image/jpeg, image/jpg, image/png, image/gif, image/webp",onSuccess:c.onSuccess,onError:c.onError,onProgress:c.onProgress}),g=a(t=>p(void 0,void 0,void 0,function*(){var r,s,n,o;if(!i)throw new Error("Custom upload called but options is not a function");d(e=>Object.assign(Object.assign({},e),{loading:!0,progress:{loaded:0,total:t.size,percentage:0},error:null}));try{const i=e=>{d(t=>Object.assign(Object.assign({},t),{progress:e}))},l=yield e(t,i),a={id:null!==(r=l.id)&&void 0!==r?r:"",url:null!==(s=l.src)&&void 0!==s?s:"",width:"number"==typeof(null===(n=l.sizes)||void 0===n?void 0:n.width)?l.sizes.width:void 0,height:"number"==typeof(null===(o=l.sizes)||void 0===o?void 0:o.height)?l.sizes.height:void 0};return d(e=>Object.assign(Object.assign({},e),{loading:!1,progress:{loaded:t.size,total:t.size,percentage:100},result:a})),a}catch(e){const t={message:e instanceof Error?e.message:"Upload failed",code:"CUSTOM_UPLOAD_ERROR"};throw d(e=>Object.assign(Object.assign({},e),{loading:!1,error:t})),t}}),[e,i]),m=a(()=>{d({loading:!1,progress:null,error:null,result:null})},[]),b=a(e=>{var t;const r=new FormData;return r.append(null!==(t=c.fieldName)&&void 0!==t?t:"yoopta-image-file",e),u.xhrFetch(r)},[c.fieldName,u]);return i?Object.assign(Object.assign({},l),{upload:g,cancel:()=>{},reset:m}):{loading:u.loading,progress:u.progress,error:u.error,result:u.result,upload:b,cancel:u.cancel,reset:u.reset}},f=()=>({getDimensions:e=>new Promise((t,r)=>{const s=new Image,n=URL.createObjectURL(e);s.onload=()=>{URL.revokeObjectURL(n),t({width:s.naturalWidth,height:s.naturalHeight})},s.onerror=()=>{URL.revokeObjectURL(n),r(new Error("Failed to load image"))},s.src=n})}),v=()=>{const[e,t]=o(null);return{preview:e,generatePreview:r=>{e&&URL.revokeObjectURL(e.url);const s=URL.createObjectURL(r);return t({url:s}),{url:s}},clearPreview:()=>{e&&(URL.revokeObjectURL(e.url),t(null))}}};export{d as ImageCommands,g as default,m as useImageDelete,f as useImageDimensions,v as useImagePreview,b as useImageUpload};
@@ -1 +1 @@
1
- {"version":3,"file":"image-plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/image-plugin.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAG1D,OAAO,KAAK,EAAE,eAAe,EAAqB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAgCvF,QAAA,MAAM,KAAK,mDAiGT,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"image-plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/image-plugin.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAG1D,OAAO,KAAK,EAAE,eAAe,EAAqB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAgCvF,QAAA,MAAM,KAAK,mDA2FT,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -19,26 +19,30 @@ export type ImageOptimizationFields = {
19
19
  deviceSizes?: number[];
20
20
  provider?: 'imgix' | 'cloudinary' | 'akamai';
21
21
  };
22
- export type ImageUploadOptions = {
22
+ export type ImageUploadFn = (file: File, onProgress?: (progress: ImageUploadProgress) => void) => Promise<ImageElementProps>;
23
+ export type ImageDeleteFn = (src: string) => Promise<void>;
24
+ export type ImageUploadEndpointOptions = {
23
25
  endpoint: string;
24
- method?: 'POST' | 'PUT' | 'DELETE' | 'PATCH';
26
+ method?: 'POST' | 'PUT' | 'PATCH';
25
27
  headers?: Record<string, string>;
26
28
  fieldName?: string;
27
29
  maxSize?: number;
28
30
  accept?: string;
29
- onProgress?: (progress: any) => void;
30
- onSuccess?: (result: any) => void;
31
- onError?: (error: any) => void;
31
+ onProgress?: (progress: ImageUploadProgress) => void;
32
+ onSuccess?: (result: UploadResult) => void;
33
+ onError?: (error: UploadError) => void;
32
34
  };
33
- export type ImageDeleteOptions = {
35
+ export type ImageDeleteEndpointOptions = {
34
36
  endpoint: string;
35
37
  method?: 'DELETE' | 'PATCH';
36
38
  headers?: Record<string, string>;
37
39
  fieldName?: string;
38
- onProgress?: (progress: any) => void;
39
- onSuccess?: (result: any) => void;
40
- onError?: (error: any) => void;
40
+ onProgress?: (progress: ImageUploadProgress) => void;
41
+ onSuccess?: (result: UploadResult) => void;
42
+ onError?: (error: UploadError) => void;
41
43
  };
44
+ export type ImageUploadOptions = ImageUploadEndpointOptions | ImageUploadFn;
45
+ export type ImageDeleteOptions = ImageDeleteEndpointOptions | ImageDeleteFn;
42
46
  export type ImagePluginOptions = {
43
47
  upload?: ImageUploadOptions;
44
48
  delete?: ImageDeleteOptions;
@@ -48,6 +52,17 @@ export type ImagePluginOptions = {
48
52
  } | null;
49
53
  optimizations?: ImageOptimizationFields | null;
50
54
  };
55
+ export type XHRRequestOptions = {
56
+ endpoint: string;
57
+ method?: 'POST' | 'PUT' | 'PATCH' | 'DELETE';
58
+ headers?: Record<string, string>;
59
+ fieldName?: string;
60
+ maxSize?: number;
61
+ accept?: string;
62
+ onProgress?: (progress: ImageUploadProgress) => void;
63
+ onSuccess?: (result: UploadResult) => void;
64
+ onError?: (error: UploadError) => void;
65
+ };
51
66
  export type ImageElementMap = {
52
67
  image: ImageElement;
53
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yoopta/image",
3
- "version": "6.0.0-beta.1",
3
+ "version": "6.0.0-beta.4",
4
4
  "description": "Image plugin for Yoopta Editor",
5
5
  "author": "Darginec05 <devopsbanda@gmail.com>",
6
6
  "homepage": "https://github.com/Darginec05/Yoopta-Editor#readme",
@@ -35,5 +35,5 @@
35
35
  "bugs": {
36
36
  "url": "https://github.com/Darginec05/Yoopta-Editor/issues"
37
37
  },
38
- "gitHead": "ff6a5ae2937a56e0d1820df29fdfd6356171786c"
38
+ "gitHead": "7259edee990882228148adcca6a6adafa1aa8b03"
39
39
  }