geoiq-frontend-ui-kit
Version:
This project is a UI kit for GeoIQ's frontend. It's built with React, TypeScript, and Vite.
106 lines (105 loc) • 6.5 kB
JavaScript
import { VERSION as m } from "./index150.es.js";
import { CROP_RATIOS as we, FILTERS as Ie, FONTS as Ee, SHAPES as Le, SWATCHES as Re } from "./index150.es.js";
import { createState as h, getState as f, emit as c, emptySourceCanvas as y, resetAdjValues as x, getSel as C } from "./index151.es.js";
import { zoomIn as g, zoomOut as T, zoomToFit as z, ZOOM_MIN as F, ZOOM_MAX as O, syncCanvasSize as k, render as S, fitStage as v } from "./index152.es.js";
import { undo as w, redo as I } from "./index153.es.js";
import { rotate as E, flip as L, resetToOriginal as R, applyCrop as W, cancelCrop as B, setCropRatio as b } from "./index154.es.js";
import { setMode as A, selectLayer as M } from "./index155.es.js";
import { commitTextEdit as p } from "./index156.es.js";
import { addSticker as _ } from "./index157.es.js";
import { deleteLayer as j, deleteSelected as H, duplicateSelected as N, bringSelectedToFront as P, sendSelectedToBack as U, setAdjustment as Z, setFilter as D, selectShapeType as V, setShapeFill as $, setShapeWidth as q, setBrushSize as X, setBrushStyle as G, setTextFont as J, setTextSize as K, setTextColor as Q, setShapeColor as Y, setDrawColor as ee, setSelectedColor as te, setSelectedText as oe, setSelectedFont as se, setSelectedTextSize as re, setSelectedBoxWidth as ie, setSelectedShapeFill as ae, setSelectedWidth as ne, layerName as le } from "./index158.es.js";
import { doSave as de, produce as ce, normalizeSource as n, loadState as u, doLoadImage as l } from "./index159.es.js";
import { mount as Se } from "./index160.es.js";
function pe(r) {
r = r || {};
const o = {}, e = h(r);
function i() {
typeof r.onUiChange == "function" && r.onUiChange(d());
}
e.notify = i, o.on = (t, s) => (e.listeners[t] && e.listeners[t].push(s), o), o.off = (t, s) => (e.listeners[t] && (e.listeners[t] = e.listeners[t].filter((a) => a !== s)), o);
function d() {
const t = C(e);
return {
hasImage: !!e.sourceCanvas.width,
mode: e.mode,
canUndo: e.undoStack.length > 0,
canRedo: e.redoStack.length > 0,
canReset: !!e.originalCanvas,
zoomPercent: Math.round(e.zoom * 100),
canZoomIn: e.zoom < O - 1e-6,
canZoomOut: e.zoom > F + 1e-6,
closeOnBackdrop: r.closeOnBackdrop !== !1,
canOpenImage: r.allowOpenImage !== !1,
isEditingText: !!e.editingLayer,
editingSelectAll: e.editingSelectAll,
dims: e.sourceCanvas.width ? `${e.sourceCanvas.width} × ${e.sourceCanvas.height} px` : "No image",
statusText: e.statusText,
isSaving: e.isSaving,
isLoadingImage: e.isLoadingImage,
adjustments: { ...e.adj },
selectedShapeType: e.selectedShapeType,
textColor: e.textColor,
shapeColor: e.shapeColor,
drawColor: e.drawColor,
shapeFill: e.shapeFill,
shapeWidth: e.shapeWidth,
brushSize: e.brushSize,
brushStyle: e.brushStyle,
textFont: e.textFont,
textSize: e.textSize,
cropRatio: e.cropRatio,
stickers: e.stickers,
selected: t ? {
id: t.id,
type: t.type,
color: t.color,
text: t.type === "text" ? t.text : void 0,
font: t.type === "text" ? t.font : void 0,
size: t.type === "text" ? t.size : void 0,
boxWidth: t.type === "text" ? t.boxWidth : void 0,
fill: t.type === "shape" ? t.fill : void 0,
width: t.type === "shape" || t.type === "stroke" ? t.width : void 0
} : null,
layers: e.layers.map((s) => ({
id: s.id,
type: s.type,
name: le(s)
}))
};
}
return o.getUiState = d, o.refitStage = () => {
!e.mounted || !e.sourceCanvas.width || (v(e), S(e));
}, o.zoomIn = () => g(e), o.zoomOut = () => T(e), o.zoomToFit = () => z(e), o.setMode = (t) => A(e, t), o.selectLayer = (t) => M(e, t), o.undo = () => w(e), o.redo = () => I(e), o.rotate = (t) => E(e, t), o.flip = (t) => L(e, t), o.resetToOriginal = () => R(e), o.applyCrop = () => W(e), o.cancelCrop = () => B(e), o.setCropRatio = (t) => b(e, t), o.commitTextEdit = () => p(e), o.addSticker = (t) => _(e, t), o.setStickers = (t) => {
e.stickers = t || [], i();
}, o.deleteLayer = (t) => j(e, t), o.deleteSelected = () => H(e), o.duplicateSelected = () => N(e), o.bringSelectedToFront = () => P(e), o.sendSelectedToBack = () => U(e), o.setAdjustment = (t, s) => Z(e, t, s), o.setFilter = (t) => D(e, t), o.selectShapeType = (t) => V(e, t), o.setShapeFill = (t) => $(e, t), o.setShapeWidth = (t) => q(e, t), o.setBrushSize = (t) => X(e, t), o.setBrushStyle = (t) => G(e, t), o.setTextFont = (t) => J(e, t), o.setTextSize = (t) => K(e, t), o.setTextColor = (t) => Q(e, t), o.setShapeColor = (t) => Y(e, t), o.setDrawColor = (t) => ee(e, t), o.setSelectedColor = (t) => te(e, t), o.setSelectedText = (t) => oe(e, t), o.setSelectedFont = (t) => se(e, t), o.setSelectedTextSize = (t) => re(e, t), o.setSelectedBoxWidth = (t) => ie(e, t), o.setSelectedShapeFill = (t) => ae(e, t), o.setSelectedWidth = (t) => ne(e, t), o.save = () => de(e, o), o.export = (t) => (t = t || {}, e.sourceCanvas.width ? ce(e, t.type, t.quality) : Promise.resolve(null)), o.getState = () => f(e), o.mount = (t) => Se(e, o, t), o.openFile = (t) => n(
e,
t,
(s) => l(e, s)
), o.open = (t) => {
if (t = t || {}, e.isOpenFlag)
return i(), o;
e.isOpenFlag = !0;
const s = () => {
e.mounted && e.sourceCanvas.width && (k(e), S(e)), i(), c(e, "open", {});
};
return t.state ? (u(e, t.state), setTimeout(s, 0)) : t.image ? n(e, t.image, (a) => {
l(e, a), setTimeout(s, 0);
}) : setTimeout(s, 0), o;
}, o.close = () => (e.isOpenFlag = !1, p(e), i(), c(e, "close", {}), o), o.loadImage = (t) => (n(
e,
t,
(s) => l(e, s)
), o), o.loadState = (t) => (u(e, t), o), o.reset = () => (e.sourceCanvas = y(), e.originalCanvas = null, e.layers = [], e.selectedId = null, e.undoStack = [], e.redoStack = [], e.zoom = 1, x(e), e.statusText = "Ready", i(), o), o.isOpen = () => e.isOpenFlag, o.destroy = () => {
o._keyHandler && document.removeEventListener("keydown", o._keyHandler), o._resizeHandler && window.removeEventListener("resize", o._resizeHandler), Object.keys(e.listeners).forEach((t) => e.listeners[t] = []);
}, r.autoOpen && o.open({ image: r.image, state: r.state }), o;
}
const Oe = { version: m, create: pe };
export {
we as CROP_RATIOS,
Ie as FILTERS,
Ee as FONTS,
Le as SHAPES,
Re as SWATCHES,
Oe as default
};
//# sourceMappingURL=index135.es.js.map