polotno 0.31.7 → 0.32.2

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/config.d.ts CHANGED
@@ -9,3 +9,4 @@ export { registerToolbarComponent as unstable_registerToolbarComponent } from '.
9
9
  export { setTranslations, getTranslations } from './utils/l10n';
10
10
  export { registerNextDomDrop as unstable_registerNextDomDrop } from './canvas/page';
11
11
  export { getGoogleFontsListAPI, getGoogleFontImage, setAPI } from './utils/api';
12
+ export { setRemoveBackgroundEnabled as unstable_setRemoveBackgroundEnabled } from './toolbar/image-toolbar';
package/config.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setAPI=exports.getGoogleFontImage=exports.getGoogleFontsListAPI=exports.unstable_registerNextDomDrop=exports.getTranslations=exports.setTranslations=exports.unstable_registerToolbarComponent=exports.unstable_registerTransformerAttrs=exports.unstable_registerShapeComponent=exports.unstable_registerShapeModel=exports.unstable_setImageLoaderHook=exports.toggleFadeInAnimation=exports.setUploadFunc=exports.addGlobalFont=exports.setGoogleFonts=void 0;var fonts_1=require("./utils/fonts");Object.defineProperty(exports,"setGoogleFonts",{enumerable:!0,get:function(){return fonts_1.setGoogleFonts}}),Object.defineProperty(exports,"addGlobalFont",{enumerable:!0,get:function(){return fonts_1.addGlobalFont}});var upload_panel_1=require("./side-panel/upload-panel");Object.defineProperty(exports,"setUploadFunc",{enumerable:!0,get:function(){return upload_panel_1.setUploadFunc}});var use_fadein_1=require("./canvas/use-fadein");Object.defineProperty(exports,"toggleFadeInAnimation",{enumerable:!0,get:function(){return use_fadein_1.toggleFadeInAnimation}});var image_element_1=require("./canvas/image-element");Object.defineProperty(exports,"unstable_setImageLoaderHook",{enumerable:!0,get:function(){return image_element_1.setImageLoaderHook}});var store_1=require("./model/store");Object.defineProperty(exports,"unstable_registerShapeModel",{enumerable:!0,get:function(){return store_1.registerShapeModel}});var element_1=require("./canvas/element");Object.defineProperty(exports,"unstable_registerShapeComponent",{enumerable:!0,get:function(){return element_1.registerShapeComponent}});var page_1=require("./canvas/page");Object.defineProperty(exports,"unstable_registerTransformerAttrs",{enumerable:!0,get:function(){return page_1.registerTransformerAttrs}});var toolbar_1=require("./toolbar/toolbar");Object.defineProperty(exports,"unstable_registerToolbarComponent",{enumerable:!0,get:function(){return toolbar_1.registerToolbarComponent}});var l10n_1=require("./utils/l10n");Object.defineProperty(exports,"setTranslations",{enumerable:!0,get:function(){return l10n_1.setTranslations}}),Object.defineProperty(exports,"getTranslations",{enumerable:!0,get:function(){return l10n_1.getTranslations}});var page_2=require("./canvas/page");Object.defineProperty(exports,"unstable_registerNextDomDrop",{enumerable:!0,get:function(){return page_2.registerNextDomDrop}});var api_1=require("./utils/api");Object.defineProperty(exports,"getGoogleFontsListAPI",{enumerable:!0,get:function(){return api_1.getGoogleFontsListAPI}}),Object.defineProperty(exports,"getGoogleFontImage",{enumerable:!0,get:function(){return api_1.getGoogleFontImage}}),Object.defineProperty(exports,"setAPI",{enumerable:!0,get:function(){return api_1.setAPI}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.unstable_setRemoveBackgroundEnabled=exports.setAPI=exports.getGoogleFontImage=exports.getGoogleFontsListAPI=exports.unstable_registerNextDomDrop=exports.getTranslations=exports.setTranslations=exports.unstable_registerToolbarComponent=exports.unstable_registerTransformerAttrs=exports.unstable_registerShapeComponent=exports.unstable_registerShapeModel=exports.unstable_setImageLoaderHook=exports.toggleFadeInAnimation=exports.setUploadFunc=exports.addGlobalFont=exports.setGoogleFonts=void 0;var fonts_1=require("./utils/fonts");Object.defineProperty(exports,"setGoogleFonts",{enumerable:!0,get:function(){return fonts_1.setGoogleFonts}}),Object.defineProperty(exports,"addGlobalFont",{enumerable:!0,get:function(){return fonts_1.addGlobalFont}});var upload_panel_1=require("./side-panel/upload-panel");Object.defineProperty(exports,"setUploadFunc",{enumerable:!0,get:function(){return upload_panel_1.setUploadFunc}});var use_fadein_1=require("./canvas/use-fadein");Object.defineProperty(exports,"toggleFadeInAnimation",{enumerable:!0,get:function(){return use_fadein_1.toggleFadeInAnimation}});var image_element_1=require("./canvas/image-element");Object.defineProperty(exports,"unstable_setImageLoaderHook",{enumerable:!0,get:function(){return image_element_1.setImageLoaderHook}});var store_1=require("./model/store");Object.defineProperty(exports,"unstable_registerShapeModel",{enumerable:!0,get:function(){return store_1.registerShapeModel}});var element_1=require("./canvas/element");Object.defineProperty(exports,"unstable_registerShapeComponent",{enumerable:!0,get:function(){return element_1.registerShapeComponent}});var page_1=require("./canvas/page");Object.defineProperty(exports,"unstable_registerTransformerAttrs",{enumerable:!0,get:function(){return page_1.registerTransformerAttrs}});var toolbar_1=require("./toolbar/toolbar");Object.defineProperty(exports,"unstable_registerToolbarComponent",{enumerable:!0,get:function(){return toolbar_1.registerToolbarComponent}});var l10n_1=require("./utils/l10n");Object.defineProperty(exports,"setTranslations",{enumerable:!0,get:function(){return l10n_1.setTranslations}}),Object.defineProperty(exports,"getTranslations",{enumerable:!0,get:function(){return l10n_1.getTranslations}});var page_2=require("./canvas/page");Object.defineProperty(exports,"unstable_registerNextDomDrop",{enumerable:!0,get:function(){return page_2.registerNextDomDrop}});var api_1=require("./utils/api");Object.defineProperty(exports,"getGoogleFontsListAPI",{enumerable:!0,get:function(){return api_1.getGoogleFontsListAPI}}),Object.defineProperty(exports,"getGoogleFontImage",{enumerable:!0,get:function(){return api_1.getGoogleFontImage}}),Object.defineProperty(exports,"setAPI",{enumerable:!0,get:function(){return api_1.setAPI}});var image_toolbar_1=require("./toolbar/image-toolbar");Object.defineProperty(exports,"unstable_setRemoveBackgroundEnabled",{enumerable:!0,get:function(){return image_toolbar_1.setRemoveBackgroundEnabled}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polotno",
3
- "version": "0.31.7",
3
+ "version": "0.32.2",
4
4
  "description": "Design Editor Framework",
5
5
  "author": "Anton Lavrenov",
6
6
  "keywords": [
@@ -7,6 +7,7 @@ declare type Props = {
7
7
  hideImageCrop?: boolean;
8
8
  hideImageFit?: boolean;
9
9
  };
10
+ export declare function setRemoveBackgroundEnabled(val: boolean): void;
10
11
  export declare const ImageToolbar: (({ store, hideImageFlip, hideImageEffects, hideImageCrop, hideImageFit, }: Props) => JSX.Element) & {
11
12
  displayName: string;
12
13
  };
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ImageToolbar=void 0;const react_1=__importDefault(require("react")),mobx_react_lite_1=require("mobx-react-lite"),core_1=require("@blueprintjs/core"),filters_picker_1=__importDefault(require("./filters-picker")),flip_button_1=__importDefault(require("./flip-button")),l10n_1=require("../utils/l10n");exports.ImageToolbar=(0,mobx_react_lite_1.observer)((({store:e,hideImageFlip:t,hideImageEffects:r,hideImageCrop:o,hideImageFit:l})=>{const a=e.selectedElements[0],c=a._cropModeEnabled,i=react_1.default.useRef({});return react_1.default.useEffect((()=>{c&&(i.current={x:a.x,y:a.y,width:a.width,height:a.height,cropX:a.cropX,cropY:a.cropY,cropWidth:a.cropWidth,cropHeight:a.cropHeight})}),[c]),react_1.default.createElement(core_1.Navbar.Group,{align:core_1.Alignment.LEFT},!c&&react_1.default.createElement(react_1.default.Fragment,null,!t&&react_1.default.createElement(flip_button_1.default,{element:a}),!r&&react_1.default.createElement(filters_picker_1.default,{element:a,store:e}),!l&&react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.fitToBackground"),minimal:!0,onClick:()=>{a.set({x:0,y:0,width:e.width,height:e.height,rotation:0})}}),!o&&react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.crop"),minimal:!0,onClickCapture:e=>{e.stopPropagation(),a.toggleCropMode(!0)}}),a.clipSrc&&react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.removeClip"),minimal:!0,onClickCapture:e=>{a.set({clipSrc:""})}})),c&&react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.cropDone"),minimal:!0,icon:"tick",onClickCapture:e=>{a.toggleCropMode(!1)}}),react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.cropCancel"),minimal:!0,icon:"cross",onClickCapture:e=>{a.set(Object.assign({},i.current)),a.toggleCropMode(!1)}})))})),exports.default=exports.ImageToolbar;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ImageToolbar=exports.setRemoveBackgroundEnabled=void 0;const react_1=__importDefault(require("react")),mobx_react_lite_1=require("mobx-react-lite"),core_1=require("@blueprintjs/core"),filters_picker_1=__importDefault(require("./filters-picker")),flip_button_1=__importDefault(require("./flip-button")),remove_background_button_1=require("./remove-background-button"),l10n_1=require("../utils/l10n");let removeBackgroundEnabled=!1;function setRemoveBackgroundEnabled(e){removeBackgroundEnabled=e}exports.setRemoveBackgroundEnabled=setRemoveBackgroundEnabled,exports.ImageToolbar=(0,mobx_react_lite_1.observer)((({store:e,hideImageFlip:t,hideImageEffects:r,hideImageCrop:o,hideImageFit:a})=>{const l=e.selectedElements[0],c=l._cropModeEnabled,n=react_1.default.useRef({});return console.log(removeBackgroundEnabled),react_1.default.useEffect((()=>{c&&(n.current={x:l.x,y:l.y,width:l.width,height:l.height,cropX:l.cropX,cropY:l.cropY,cropWidth:l.cropWidth,cropHeight:l.cropHeight})}),[c]),react_1.default.createElement(core_1.Navbar.Group,{align:core_1.Alignment.LEFT},!c&&react_1.default.createElement(react_1.default.Fragment,null,!t&&react_1.default.createElement(flip_button_1.default,{element:l}),!r&&react_1.default.createElement(filters_picker_1.default,{element:l,store:e}),!a&&react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.fitToBackground"),minimal:!0,onClick:()=>{l.set({x:0,y:0,width:e.width,height:e.height,rotation:0})}}),!o&&react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.crop"),minimal:!0,onClickCapture:e=>{e.stopPropagation(),l.toggleCropMode(!0)}}),l.clipSrc&&react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.removeClip"),minimal:!0,onClickCapture:e=>{l.set({clipSrc:""})}}),removeBackgroundEnabled&&react_1.default.createElement(remove_background_button_1.RemoveBackgroundButton,{element:l})),c&&react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.cropDone"),minimal:!0,icon:"tick",onClickCapture:e=>{l.toggleCropMode(!1)}}),react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.cropCancel"),minimal:!0,icon:"cross",onClickCapture:e=>{l.set(Object.assign({},n.current)),l.toggleCropMode(!1)}})))})),exports.default=exports.ImageToolbar;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ export declare function setRemoveBackgroundFunc(func: any): void;
3
+ export declare const RemoveBackgroundDialog: (({ isOpen, onClose, element, }: {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ element: any;
7
+ }) => JSX.Element) & {
8
+ displayName: string;
9
+ };
10
+ export declare const RemoveBackgroundButton: ({ element }: {
11
+ element: any;
12
+ }) => JSX.Element;
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RemoveBackgroundButton=exports.RemoveBackgroundDialog=exports.setRemoveBackgroundFunc=void 0;const react_1=__importDefault(require("react")),mobx_react_lite_1=require("mobx-react-lite"),core_1=require("@blueprintjs/core"),api_1=require("../utils/api"),l10n_1=require("../utils/l10n");let removeBackgroundFunc=async e=>{const t=await fetch((0,api_1.removeBackground)(),{method:"POST",body:JSON.stringify({url:e})});if(200!==t.status)return e;return(await t.json()).url};function setRemoveBackgroundFunc(e){removeBackgroundFunc=e}exports.setRemoveBackgroundFunc=setRemoveBackgroundFunc,exports.RemoveBackgroundDialog=(0,mobx_react_lite_1.observer)((({isOpen:e,onClose:t,element:r})=>{const[o,a]=react_1.default.useState(r.src);react_1.default.useEffect((()=>{a(r.src)}),[r.src]);const[c,n]=react_1.default.useState(!1),l=o!==r.src;return react_1.default.createElement(core_1.Dialog,{onClose:t,title:"Remove background from image",isOpen:e,style:{width:"80%",maxWidth:"700px"}},react_1.default.createElement("div",{className:core_1.Classes.DIALOG_BODY},react_1.default.createElement("img",{src:o,style:{width:"100%",maxHeight:"400px",objectFit:"contain"}})),react_1.default.createElement("div",{className:core_1.Classes.DIALOG_FOOTER,style:{position:"relative"}},react_1.default.createElement("a",{href:"https://photoroom.com/api",title:"Remove backgrounds with the PhotoRoom app",style:{background:"rgba(255, 255, 255, 0.8)",borderRadius:"10px",display:"inline-block",position:"absolute",top:"50%",transform:"translateY(-50%)"},target:"_blank"},react_1.default.createElement("img",{src:"https://api.polotno.dev/assets/removed-by-photoroom.svg",width:"120"})),react_1.default.createElement("div",{className:core_1.Classes.DIALOG_FOOTER_ACTIONS},!l&&react_1.default.createElement(core_1.Button,{onClick:async()=>{n(!0);try{a(await removeBackgroundFunc(r.src))}catch(e){console.error(e)}n(!1)},loading:c},(0,l10n_1.t)("toolbar.removeBackground")),l&&react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(core_1.Button,{onClick:()=>{a(r.src),t()},loading:c},(0,l10n_1.t)("toolbar.cancelRemoveBackground")),react_1.default.createElement(core_1.Button,{onClick:()=>{r.set({src:o}),t()},loading:c,intent:"primary"},(0,l10n_1.t)("toolbar.confirmRemoveBackground"))))))}));const RemoveBackgroundButton=({element:e})=>{const[t,r]=react_1.default.useState(!1);return react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(core_1.Button,{text:(0,l10n_1.t)("toolbar.removeBackground"),minimal:!0,onClick:e=>{r(!0)}}),react_1.default.createElement(exports.RemoveBackgroundDialog,{isOpen:t,onClose:()=>{r(!1)},element:e}))};exports.RemoveBackgroundButton=RemoveBackgroundButton;
package/utils/api.d.ts CHANGED
@@ -16,6 +16,7 @@ export declare const URLS: {
16
16
  export declare const getGoogleFontsListAPI: () => string;
17
17
  export declare const getGoogleFontImage: (fontFamily: string) => string;
18
18
  export declare const polotnoShapesList: () => string;
19
+ export declare const removeBackground: () => string;
19
20
  export declare const templateList: (props: Params & {
20
21
  sizeQuery: string;
21
22
  }) => string;
package/utils/api.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setAPI=exports.iconscoutDownload=exports.iconscoutList=exports.unsplashDownload=exports.unsplashList=exports.textTemplateList=exports.templateList=exports.polotnoShapesList=exports.getGoogleFontImage=exports.getGoogleFontsListAPI=exports.URLS=exports.URL=exports.API=void 0;const validate_key_1=require("./validate-key");exports.API="https://api.polotno.dev/api",exports.URL="https://api.polotno.dev";const showedWarnings={},warn=(e,t)=>{showedWarnings[e]||(showedWarnings[e]=!0,console.error(t))},replaceAll=(e,t,o)=>e.replace(new RegExp(t,"g"),o),ICONSCOUT_MESSAGE="API for iconscout is provided as a demonstration.\nFor production usage you have to use your own API endpoint.\nhttps://iconscout.com/developers, https://iconscout.com/legal/api-license-development-agreement\nhttps://polotno.dev/docs/server-api";exports.URLS={unsplashList:({query:e,page:t=1})=>`${exports.API}/get-unsplash?query=${e}&per_page=20&page=${t}&KEY=${(0,validate_key_1.getKey)()}`,unsplashDownload:e=>`${exports.API}/download-unsplash?id=${e}&KEY=${(0,validate_key_1.getKey)()}`,iconscoutList:({query:e,page:t=1})=>(warn("iconscout",ICONSCOUT_MESSAGE),`${exports.API}/get-iconscout?query=${e}&page=${t}&KEY=${(0,validate_key_1.getKey)()}`),iconscoutDownload:e=>(warn("iconscout",ICONSCOUT_MESSAGE),`${exports.API}/download-iconscout?uuid=${e}&KEY=${(0,validate_key_1.getKey)()}`),templateList:({query:e,page:t=1,sizeQuery:o})=>`${exports.API}/get-templates?${o}&query=${e}&per_page=30&page=${t}&KEY=${(0,validate_key_1.getKey)()}`};const getGoogleFontsListAPI=()=>`${exports.API}/get-google-fonts?KEY=${(0,validate_key_1.getKey)()}`;exports.getGoogleFontsListAPI=getGoogleFontsListAPI;const getGoogleFontImage=e=>{return`${exports.URL}/google-fonts-previews/black/${t=e,o=" ",s="-",t.replace(new RegExp(o,"g"),s)}.png`;var t,o,s};exports.getGoogleFontImage=getGoogleFontImage;const polotnoShapesList=()=>`${exports.API}/get-basic-shapes?KEY=${(0,validate_key_1.getKey)()}`;exports.polotnoShapesList=polotnoShapesList;const templateList=e=>exports.URLS.templateList(e);exports.templateList=templateList;const textTemplateList=()=>`${exports.API}/get-text-templates?KEY=${(0,validate_key_1.getKey)()}`;exports.textTemplateList=textTemplateList;const unsplashList=e=>exports.URLS.unsplashList(e);exports.unsplashList=unsplashList;const unsplashDownload=e=>exports.URLS.unsplashDownload(e);exports.unsplashDownload=unsplashDownload;const iconscoutList=e=>exports.URLS.iconscoutList(e);exports.iconscoutList=iconscoutList;const iconscoutDownload=e=>exports.URLS.iconscoutDownload(e);exports.iconscoutDownload=iconscoutDownload;const setAPI=(e,t)=>{exports.URLS[e]=t};exports.setAPI=setAPI;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setAPI=exports.iconscoutDownload=exports.iconscoutList=exports.unsplashDownload=exports.unsplashList=exports.textTemplateList=exports.templateList=exports.removeBackground=exports.polotnoShapesList=exports.getGoogleFontImage=exports.getGoogleFontsListAPI=exports.URLS=exports.URL=exports.API=void 0;const validate_key_1=require("./validate-key");exports.API="https://api.polotno.dev/api",exports.URL="https://api.polotno.dev";const showedWarnings={},warn=(e,t)=>{showedWarnings[e]||(showedWarnings[e]=!0,console.error(t))},replaceAll=(e,t,o)=>e.replace(new RegExp(t,"g"),o),ICONSCOUT_MESSAGE="API for iconscout is provided as a demonstration.\nFor production usage you have to use your own API endpoint.\nhttps://iconscout.com/developers, https://iconscout.com/legal/api-license-development-agreement\nhttps://polotno.dev/docs/server-api";exports.URLS={unsplashList:({query:e,page:t=1})=>`${exports.API}/get-unsplash?query=${e}&per_page=20&page=${t}&KEY=${(0,validate_key_1.getKey)()}`,unsplashDownload:e=>`${exports.API}/download-unsplash?id=${e}&KEY=${(0,validate_key_1.getKey)()}`,iconscoutList:({query:e,page:t=1})=>(warn("iconscout",ICONSCOUT_MESSAGE),`${exports.API}/get-iconscout?query=${e}&page=${t}&KEY=${(0,validate_key_1.getKey)()}`),iconscoutDownload:e=>(warn("iconscout",ICONSCOUT_MESSAGE),`${exports.API}/download-iconscout?uuid=${e}&KEY=${(0,validate_key_1.getKey)()}`),templateList:({query:e,page:t=1,sizeQuery:o})=>`${exports.API}/get-templates?${o}&query=${e}&per_page=30&page=${t}&KEY=${(0,validate_key_1.getKey)()}`};const getGoogleFontsListAPI=()=>`${exports.API}/get-google-fonts?KEY=${(0,validate_key_1.getKey)()}`;exports.getGoogleFontsListAPI=getGoogleFontsListAPI;const getGoogleFontImage=e=>{return`${exports.URL}/google-fonts-previews/black/${t=e,o=" ",s="-",t.replace(new RegExp(o,"g"),s)}.png`;var t,o,s};exports.getGoogleFontImage=getGoogleFontImage;const polotnoShapesList=()=>`${exports.API}/get-basic-shapes?KEY=${(0,validate_key_1.getKey)()}`;exports.polotnoShapesList=polotnoShapesList;const removeBackground=()=>`${exports.API}/remove-image-background?KEY=${(0,validate_key_1.getKey)()}`;exports.removeBackground=removeBackground;const templateList=e=>exports.URLS.templateList(e);exports.templateList=templateList;const textTemplateList=()=>`${exports.API}/get-text-templates?KEY=${(0,validate_key_1.getKey)()}`;exports.textTemplateList=textTemplateList;const unsplashList=e=>exports.URLS.unsplashList(e);exports.unsplashList=unsplashList;const unsplashDownload=e=>exports.URLS.unsplashDownload(e);exports.unsplashDownload=unsplashDownload;const iconscoutList=e=>exports.URLS.iconscoutList(e);exports.iconscoutList=iconscoutList;const iconscoutDownload=e=>exports.URLS.iconscoutDownload(e);exports.iconscoutDownload=iconscoutDownload;const setAPI=(e,t)=>{exports.URLS[e]=t};exports.setAPI=setAPI;
package/utils/l10n.d.ts CHANGED
@@ -27,6 +27,9 @@ export declare const getTranslations: () => {
27
27
  flipHorizontally: string;
28
28
  flipVertically: string;
29
29
  fitToBackground: string;
30
+ removeBackground: string;
31
+ cancelRemoveBackground: string;
32
+ confirmRemoveBackground: string;
30
33
  crop: string;
31
34
  cropDone: string;
32
35
  cropCancel: string;
package/utils/l10n.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.t=exports.getTranslations=exports.setTranslations=void 0;const mobx_1=require("mobx"),translation=(0,mobx_1.observable)({toolbar:{opacity:"Opacity",effects:"Effects",blur:"Blur",brightness:"Brightness",sepia:"Sepia",grayscale:"Grayscale",textStroke:"Text Stroke",shadow:"Shadow",border:"Border",cornerRadius:"Corner Radius",position:"Position",layering:"Layering",toForward:"To forward",up:"Up",down:"Down",toBottom:"To bottom",alignLeft:"Align left",alignCenter:"Align center",alignRight:"Align right",alignTop:"Align top",alignMiddle:"Align middle",alignBottom:"Align bottom",flip:"Flip",flipHorizontally:"Flip horizontally",flipVertically:"Flip vertically",fitToBackground:"Fit to background",crop:"Crop",cropDone:"Done",cropCancel:"Cancel",removeClip:"Remove clip",removeMask:"Remove mask",transparency:"Transparency",lockedDescription:"Object is locked. Unlock it to allow changes from canvas.",unlockedDescription:"Object is unlocked. Lock it to prevent changes from canvas.",removeElements:"Remove elements",duplicateElements:"Duplicate elements",download:"Download",saveAsImage:"Save as image",saveAsPDF:"Save as PDF",saveAsHDPDF:"Save as High Quality PDF"},scale:{reset:"Reset"},sidePanel:{templates:"Templates",searchTemplatesWithSameSize:"Show templates with the same size",searchPlaceholder:"Search...",otherFormats:"Other formats",noResults:"No results",text:"Text",uploadFont:"Upload font",myFonts:"My fonts",photos:"Photos",elements:"Elements",upload:"Upload",uploadImage:"Upload Image",uploadTip:"Do you want to upload your own images?",background:"Background",resize:"Resize",useMagicResize:"Use magic resize",magicResizeDescription:"Magic resize will automatically resize and move all elements on the canvas"}});function get(e,t){var o,a=t.split("."),s=e;for(o=0;o<a.length;++o){if(null==s[a[o]])return;s=s[a[o]]}return s}const isObject=e=>e&&"object"==typeof e;function mergeDeep(e,t){Object.keys(t).forEach((o=>{const a=e[o],s=t[o];isObject(s)&&isObject(a)?mergeDeep(a,s):e[o]=s}))}exports.setTranslations=(0,mobx_1.action)((e=>{mergeDeep(translation,e)}));const getTranslations=()=>(0,mobx_1.toJS)(translation);exports.getTranslations=getTranslations;const WARNED={},t=e=>{const t=get(translation,e);if(void 0!==t)return t;WARNED[e]||(WARNED[e]=!0,console.warn(`Missing translation '${e}'`));const o=e.split(".");return o[o.length-1]};exports.t=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.t=exports.getTranslations=exports.setTranslations=void 0;const mobx_1=require("mobx"),translation=(0,mobx_1.observable)({toolbar:{opacity:"Opacity",effects:"Effects",blur:"Blur",brightness:"Brightness",sepia:"Sepia",grayscale:"Grayscale",textStroke:"Text Stroke",shadow:"Shadow",border:"Border",cornerRadius:"Corner Radius",position:"Position",layering:"Layering",toForward:"To forward",up:"Up",down:"Down",toBottom:"To bottom",alignLeft:"Align left",alignCenter:"Align center",alignRight:"Align right",alignTop:"Align top",alignMiddle:"Align middle",alignBottom:"Align bottom",flip:"Flip",flipHorizontally:"Flip horizontally",flipVertically:"Flip vertically",fitToBackground:"Fit to background",removeBackground:"Remove background",cancelRemoveBackground:"Cancel",confirmRemoveBackground:"Confirm",crop:"Crop",cropDone:"Done",cropCancel:"Cancel",removeClip:"Remove clip",removeMask:"Remove mask",transparency:"Transparency",lockedDescription:"Object is locked. Unlock it to allow changes from canvas.",unlockedDescription:"Object is unlocked. Lock it to prevent changes from canvas.",removeElements:"Remove elements",duplicateElements:"Duplicate elements",download:"Download",saveAsImage:"Save as image",saveAsPDF:"Save as PDF",saveAsHDPDF:"Save as High Quality PDF"},scale:{reset:"Reset"},sidePanel:{templates:"Templates",searchTemplatesWithSameSize:"Show templates with the same size",searchPlaceholder:"Search...",otherFormats:"Other formats",noResults:"No results",text:"Text",uploadFont:"Upload font",myFonts:"My fonts",photos:"Photos",elements:"Elements",upload:"Upload",uploadImage:"Upload Image",uploadTip:"Do you want to upload your own images?",background:"Background",resize:"Resize",useMagicResize:"Use magic resize",magicResizeDescription:"Magic resize will automatically resize and move all elements on the canvas"}});function get(e,o){var t,a=o.split("."),n=e;for(t=0;t<a.length;++t){if(null==n[a[t]])return;n=n[a[t]]}return n}const isObject=e=>e&&"object"==typeof e;function mergeDeep(e,o){Object.keys(o).forEach((t=>{const a=e[t],n=o[t];isObject(n)&&isObject(a)?mergeDeep(a,n):e[t]=n}))}exports.setTranslations=(0,mobx_1.action)((e=>{mergeDeep(translation,e)}));const getTranslations=()=>(0,mobx_1.toJS)(translation);exports.getTranslations=getTranslations;const WARNED={},t=e=>{const o=get(translation,e);if(void 0!==o)return o;WARNED[e]||(WARNED[e]=!0,console.warn(`Missing translation '${e}'`));const t=e.split(".");return t[t.length-1]};exports.t=t;