@manifest-editor/projects 2.1.1-next.0.96fdf30 → 2.2.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/dist/index.cjs +18 -17
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +23 -34
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +22 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -14
- package/dist/index.js.map +1 -1
- package/package.json +20 -14
package/dist/index.d.cts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import * as react0 from "react";
|
|
2
|
-
import { Dispatch, ReactNode } from "react";
|
|
3
1
|
import { Collection, Manifest } from "@iiif/presentation-3";
|
|
4
2
|
import { Vault } from "@iiif/helpers/vault";
|
|
5
3
|
import { Preview } from "@manifest-editor/shell";
|
|
6
|
-
import
|
|
7
|
-
import * as styled_components_dist_types6 from "styled-components/dist/types";
|
|
8
|
-
import * as styled_components6 from "styled-components";
|
|
9
|
-
|
|
4
|
+
import { Dispatch, ReactNode } from "react";
|
|
10
5
|
//#region src/types/Storage.d.ts
|
|
11
6
|
interface Storage {
|
|
12
7
|
type: string;
|
|
@@ -75,7 +70,7 @@ interface ProjectActions {
|
|
|
75
70
|
type ProjectActionsType = { [T in keyof ProjectActions]: {
|
|
76
71
|
type: T;
|
|
77
72
|
payload: Parameters<ProjectActions[T]>[0];
|
|
78
|
-
} }[keyof ProjectActions];
|
|
73
|
+
}; }[keyof ProjectActions];
|
|
79
74
|
interface EditorProject {
|
|
80
75
|
id: string;
|
|
81
76
|
name: string;
|
|
@@ -122,8 +117,8 @@ interface ProjectStorage<S extends Storage, DataType = any, Ref extends Storage
|
|
|
122
117
|
}
|
|
123
118
|
//#endregion
|
|
124
119
|
//#region src/ProjectContext.d.ts
|
|
125
|
-
declare const ProjectReactContext:
|
|
126
|
-
declare const ProjectLoadingReactContext:
|
|
120
|
+
declare const ProjectReactContext: import("react").Context<ProjectContext | null>;
|
|
121
|
+
declare const ProjectLoadingReactContext: import("react").Context<{
|
|
127
122
|
isLoading: boolean;
|
|
128
123
|
isError: boolean;
|
|
129
124
|
error?: string;
|
|
@@ -164,14 +159,8 @@ declare function useProjectActionsWithBackend(dispatch: Dispatch<ProjectActionsT
|
|
|
164
159
|
setPreview: (publication: Preview) => void;
|
|
165
160
|
removePreview: (id: string) => void;
|
|
166
161
|
};
|
|
167
|
-
declare function useProjectBackend({
|
|
168
|
-
|
|
169
|
-
current
|
|
170
|
-
}: ProjectContext, backend: ProjectBackend): void;
|
|
171
|
-
declare function useProjectLoader<T$1 extends Storage = any>({
|
|
172
|
-
actions,
|
|
173
|
-
current
|
|
174
|
-
}: ProjectContext, storage: ProjectStorage<T$1>): {
|
|
162
|
+
declare function useProjectBackend({ actions, current }: ProjectContext, backend: ProjectBackend): void;
|
|
163
|
+
declare function useProjectLoader<T extends Storage = any>({ actions, current }: ProjectContext, storage: ProjectStorage<T>): {
|
|
175
164
|
vault: Vault | null;
|
|
176
165
|
ready: boolean;
|
|
177
166
|
error: string;
|
|
@@ -184,7 +173,7 @@ declare function useProjectCreators(): {
|
|
|
184
173
|
};
|
|
185
174
|
//#endregion
|
|
186
175
|
//#region src/storage/AbstractVaultLoader.d.ts
|
|
187
|
-
declare abstract class AbstractVaultLoader<T
|
|
176
|
+
declare abstract class AbstractVaultLoader<T extends Storage> implements ProjectStorage<ManifestStorage | CollectionStorage, Manifest | Collection, T> {
|
|
188
177
|
abstract type: string;
|
|
189
178
|
vaults: Record<string, Vault | null>;
|
|
190
179
|
saveInterval: number;
|
|
@@ -194,14 +183,14 @@ declare abstract class AbstractVaultLoader<T$1 extends Storage> implements Proje
|
|
|
194
183
|
shouldUpdateWithVault(): boolean;
|
|
195
184
|
canCreate(): boolean;
|
|
196
185
|
canDelete(): boolean;
|
|
197
|
-
abstract create(project: EditorProject, data: Manifest | Collection): Promise<T
|
|
186
|
+
abstract create(project: EditorProject, data: Manifest | Collection): Promise<T>;
|
|
198
187
|
createVaultInstance(project: EditorProject): [Vault, Promise<void>];
|
|
199
188
|
closeVaultInstance(project: EditorProject, vault: Vault): void;
|
|
200
|
-
saveStorage(storage: T
|
|
201
|
-
abstract getStorage(storage: T
|
|
202
|
-
abstract saveStorageData(manifest: CollectionStorage | ManifestStorage, storage: T
|
|
203
|
-
abstract deleteStorage(storage: T
|
|
204
|
-
abstract getBackendStorage(project: EditorProject): T
|
|
189
|
+
saveStorage(storage: T): Promise<void>;
|
|
190
|
+
abstract getStorage(storage: T): Promise<CollectionStorage | ManifestStorage | null>;
|
|
191
|
+
abstract saveStorageData(manifest: CollectionStorage | ManifestStorage, storage: T): void | Promise<void>;
|
|
192
|
+
abstract deleteStorage(storage: T): Promise<void>;
|
|
193
|
+
abstract getBackendStorage(project: EditorProject): T;
|
|
205
194
|
}
|
|
206
195
|
//#endregion
|
|
207
196
|
//#region src/ProjectContext.internal.d.ts
|
|
@@ -212,22 +201,22 @@ interface ProjectProviderProps {
|
|
|
212
201
|
backend?: ProjectBackend;
|
|
213
202
|
initialState?: () => ProjectState;
|
|
214
203
|
}
|
|
215
|
-
declare function ProjectProvider(props: ProjectProviderProps):
|
|
204
|
+
declare function ProjectProvider(props: ProjectProviderProps): import("react").JSX.Element;
|
|
216
205
|
//#endregion
|
|
217
206
|
//#region src/components/AppMenu.d.ts
|
|
218
|
-
declare const IconButton:
|
|
207
|
+
declare const IconButton: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>;
|
|
219
208
|
declare function AppMenu(props: {
|
|
220
209
|
hideMenu?: boolean;
|
|
221
|
-
}):
|
|
210
|
+
}): import("react").JSX.Element;
|
|
222
211
|
//#endregion
|
|
223
212
|
//#region src/components/DraftTitleEditor.d.ts
|
|
224
|
-
declare const Draft:
|
|
225
|
-
declare const DraftsText:
|
|
226
|
-
declare const DraftTitleEdit:
|
|
227
|
-
declare const DraftTitleEditInput:
|
|
228
|
-
declare const DraftTitleEditButton:
|
|
229
|
-
declare const DraftTitle:
|
|
230
|
-
declare function DraftTitleEditor():
|
|
213
|
+
declare const Draft: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
|
|
214
|
+
declare const DraftsText: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
|
|
215
|
+
declare const DraftTitleEdit: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, never>>;
|
|
216
|
+
declare const DraftTitleEditInput: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>;
|
|
217
|
+
declare const DraftTitleEditButton: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<any, never>> | (import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<any, never>> & Omit<any, keyof import("react").Component<any, {}, any>>);
|
|
218
|
+
declare const DraftTitle: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
|
|
219
|
+
declare function DraftTitleEditor(): import("react").JSX.Element;
|
|
231
220
|
//#endregion
|
|
232
221
|
export { AppMenu, Draft, DraftTitle, DraftTitleEdit, DraftTitleEditButton, DraftTitleEditInput, DraftTitleEditor, DraftsText, IconButton, ProjectLoadingReactContext, ProjectProvider, ProjectProviderProps, ProjectReactContext, useCurrentProject, useOptionalCurrentProject, useProjectActionsWithBackend, useProjectBackend, useProjectContext, useProjectCreators, useProjectLoader, useProjectLoading };
|
|
233
222
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/Storage.ts","../src/types/Publication.ts","../src/ProjectContext.types.tsx","../src/ProjectContext.tsx","../src/ProjectContext.hooks.ts","../src/storage/AbstractVaultLoader.ts","../src/ProjectContext.internal.tsx","../src/components/AppMenu.tsx","../src/components/DraftTitleEditor.tsx"],"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/Storage.ts","../src/types/Publication.ts","../src/ProjectContext.types.tsx","../src/ProjectContext.tsx","../src/ProjectContext.hooks.ts","../src/storage/AbstractVaultLoader.ts","../src/ProjectContext.internal.tsx","../src/components/AppMenu.tsx","../src/components/DraftTitleEditor.tsx"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import * as react10 from "react";
|
|
2
1
|
import { Dispatch, ReactNode } from "react";
|
|
3
2
|
import { Preview } from "@manifest-editor/shell";
|
|
4
3
|
import { Vault } from "@iiif/helpers/vault";
|
|
5
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
6
|
-
import * as styled_components6 from "styled-components";
|
|
7
4
|
import { Collection, Manifest } from "@iiif/presentation-3";
|
|
8
|
-
import * as styled_components_dist_types6 from "styled-components/dist/types";
|
|
9
|
-
|
|
10
5
|
//#region src/types/Storage.d.ts
|
|
11
6
|
interface Storage {
|
|
12
7
|
type: string;
|
|
@@ -75,7 +70,7 @@ interface ProjectActions {
|
|
|
75
70
|
type ProjectActionsType = { [T in keyof ProjectActions]: {
|
|
76
71
|
type: T;
|
|
77
72
|
payload: Parameters<ProjectActions[T]>[0];
|
|
78
|
-
} }[keyof ProjectActions];
|
|
73
|
+
}; }[keyof ProjectActions];
|
|
79
74
|
interface EditorProject {
|
|
80
75
|
id: string;
|
|
81
76
|
name: string;
|
|
@@ -122,8 +117,8 @@ interface ProjectStorage<S extends Storage, DataType = any, Ref extends Storage
|
|
|
122
117
|
}
|
|
123
118
|
//#endregion
|
|
124
119
|
//#region src/ProjectContext.d.ts
|
|
125
|
-
declare const ProjectReactContext:
|
|
126
|
-
declare const ProjectLoadingReactContext:
|
|
120
|
+
declare const ProjectReactContext: import("react").Context<ProjectContext | null>;
|
|
121
|
+
declare const ProjectLoadingReactContext: import("react").Context<{
|
|
127
122
|
isLoading: boolean;
|
|
128
123
|
isError: boolean;
|
|
129
124
|
error?: string;
|
|
@@ -164,14 +159,8 @@ declare function useProjectActionsWithBackend(dispatch: Dispatch<ProjectActionsT
|
|
|
164
159
|
setPreview: (publication: Preview) => void;
|
|
165
160
|
removePreview: (id: string) => void;
|
|
166
161
|
};
|
|
167
|
-
declare function useProjectBackend({
|
|
168
|
-
|
|
169
|
-
current
|
|
170
|
-
}: ProjectContext, backend: ProjectBackend): void;
|
|
171
|
-
declare function useProjectLoader<T$1 extends Storage = any>({
|
|
172
|
-
actions,
|
|
173
|
-
current
|
|
174
|
-
}: ProjectContext, storage: ProjectStorage<T$1>): {
|
|
162
|
+
declare function useProjectBackend({ actions, current }: ProjectContext, backend: ProjectBackend): void;
|
|
163
|
+
declare function useProjectLoader<T extends Storage = any>({ actions, current }: ProjectContext, storage: ProjectStorage<T>): {
|
|
175
164
|
vault: Vault | null;
|
|
176
165
|
ready: boolean;
|
|
177
166
|
error: string;
|
|
@@ -184,7 +173,7 @@ declare function useProjectCreators(): {
|
|
|
184
173
|
};
|
|
185
174
|
//#endregion
|
|
186
175
|
//#region src/storage/AbstractVaultLoader.d.ts
|
|
187
|
-
declare abstract class AbstractVaultLoader<T
|
|
176
|
+
declare abstract class AbstractVaultLoader<T extends Storage> implements ProjectStorage<ManifestStorage | CollectionStorage, Manifest | Collection, T> {
|
|
188
177
|
abstract type: string;
|
|
189
178
|
vaults: Record<string, Vault | null>;
|
|
190
179
|
saveInterval: number;
|
|
@@ -194,14 +183,14 @@ declare abstract class AbstractVaultLoader<T$1 extends Storage> implements Proje
|
|
|
194
183
|
shouldUpdateWithVault(): boolean;
|
|
195
184
|
canCreate(): boolean;
|
|
196
185
|
canDelete(): boolean;
|
|
197
|
-
abstract create(project: EditorProject, data: Manifest | Collection): Promise<T
|
|
186
|
+
abstract create(project: EditorProject, data: Manifest | Collection): Promise<T>;
|
|
198
187
|
createVaultInstance(project: EditorProject): [Vault, Promise<void>];
|
|
199
188
|
closeVaultInstance(project: EditorProject, vault: Vault): void;
|
|
200
|
-
saveStorage(storage: T
|
|
201
|
-
abstract getStorage(storage: T
|
|
202
|
-
abstract saveStorageData(manifest: CollectionStorage | ManifestStorage, storage: T
|
|
203
|
-
abstract deleteStorage(storage: T
|
|
204
|
-
abstract getBackendStorage(project: EditorProject): T
|
|
189
|
+
saveStorage(storage: T): Promise<void>;
|
|
190
|
+
abstract getStorage(storage: T): Promise<CollectionStorage | ManifestStorage | null>;
|
|
191
|
+
abstract saveStorageData(manifest: CollectionStorage | ManifestStorage, storage: T): void | Promise<void>;
|
|
192
|
+
abstract deleteStorage(storage: T): Promise<void>;
|
|
193
|
+
abstract getBackendStorage(project: EditorProject): T;
|
|
205
194
|
}
|
|
206
195
|
//#endregion
|
|
207
196
|
//#region src/ProjectContext.internal.d.ts
|
|
@@ -212,22 +201,22 @@ interface ProjectProviderProps {
|
|
|
212
201
|
backend?: ProjectBackend;
|
|
213
202
|
initialState?: () => ProjectState;
|
|
214
203
|
}
|
|
215
|
-
declare function ProjectProvider(props: ProjectProviderProps):
|
|
204
|
+
declare function ProjectProvider(props: ProjectProviderProps): import("react").JSX.Element;
|
|
216
205
|
//#endregion
|
|
217
206
|
//#region src/components/AppMenu.d.ts
|
|
218
|
-
declare const IconButton:
|
|
207
|
+
declare const IconButton: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>;
|
|
219
208
|
declare function AppMenu(props: {
|
|
220
209
|
hideMenu?: boolean;
|
|
221
|
-
}):
|
|
210
|
+
}): import("react").JSX.Element;
|
|
222
211
|
//#endregion
|
|
223
212
|
//#region src/components/DraftTitleEditor.d.ts
|
|
224
|
-
declare const Draft:
|
|
225
|
-
declare const DraftsText:
|
|
226
|
-
declare const DraftTitleEdit:
|
|
227
|
-
declare const DraftTitleEditInput:
|
|
228
|
-
declare const DraftTitleEditButton:
|
|
229
|
-
declare const DraftTitle:
|
|
230
|
-
declare function DraftTitleEditor():
|
|
213
|
+
declare const Draft: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
|
|
214
|
+
declare const DraftsText: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
|
|
215
|
+
declare const DraftTitleEdit: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, never>>;
|
|
216
|
+
declare const DraftTitleEditInput: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>;
|
|
217
|
+
declare const DraftTitleEditButton: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<any, never>> | (import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<any, never>> & Omit<any, keyof import("react").Component<any, {}, any>>);
|
|
218
|
+
declare const DraftTitle: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
|
|
219
|
+
declare function DraftTitleEditor(): import("react").JSX.Element;
|
|
231
220
|
//#endregion
|
|
232
221
|
export { AppMenu, Draft, DraftTitle, DraftTitleEdit, DraftTitleEditButton, DraftTitleEditInput, DraftTitleEditor, DraftsText, IconButton, ProjectLoadingReactContext, ProjectProvider, ProjectProviderProps, ProjectReactContext, useCurrentProject, useOptionalCurrentProject, useProjectActionsWithBackend, useProjectBackend, useProjectContext, useProjectCreators, useProjectLoader, useProjectLoading };
|
|
233
222
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/Storage.ts","../src/types/Publication.ts","../src/ProjectContext.types.tsx","../src/ProjectContext.tsx","../src/ProjectContext.hooks.ts","../src/storage/AbstractVaultLoader.ts","../src/ProjectContext.internal.tsx","../src/components/AppMenu.tsx","../src/components/DraftTitleEditor.tsx"],"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/Storage.ts","../src/types/Publication.ts","../src/ProjectContext.types.tsx","../src/ProjectContext.tsx","../src/ProjectContext.hooks.ts","../src/storage/AbstractVaultLoader.ts","../src/ProjectContext.internal.tsx","../src/components/AppMenu.tsx","../src/components/DraftTitleEditor.tsx"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMemo as i,useReducer as a,useRef as o,useState as s}from"react";import{useDebounce as c}from"tiny-use-debounce";import{getValue as l}from"@iiif/helpers";import{convertPresentation2 as u}from"@iiif/parser/presentation-2";import{ClientVault as d}from"@manifest-editor/client-vault";import{AppResourceInstanceProvider as f,AppResourceProvider as p,getManifestNomalized as m,useApps as h,useLocalStorage as g}from"@manifest-editor/shell";import{produce as _}from"immer";import*as v from"localforage";import y from"localforage";import{Vault as b}from"@iiif/helpers/vault";import{VaultProvider as ee}from"react-iiif-vault";import{Fragment as x,jsx as S,jsxs as C}from"react/jsx-runtime";import w,{css as T}from"styled-components";import te from"react-accessible-dropdown-menu-hook";import{flushSync as ne}from"react-dom";var re=Object.create,E=Object.defineProperty,ie=Object.getOwnPropertyDescriptor,ae=Object.getOwnPropertyNames,oe=Object.getPrototypeOf,se=Object.prototype.hasOwnProperty,D=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ce=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ae(t),a=0,o=i.length,s;a<o;a++)s=i[a],!se.call(e,s)&&s!==n&&E(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ie(t,s))||r.enumerable});return e},O=(e,t,n)=>(n=e==null?{}:re(oe(e)),ce(t||!e||!e.__esModule?E(n,`default`,{value:e,enumerable:!0}):n,e)),le=!0,k=`Invariant failed`;function A(e,t){if(!e){if(le)throw Error(k);var n=typeof t==`function`?t():t,r=n?`${k}: ${n}`:k;throw Error(r)}}const j=e(null),M=e({error:void 0,isError:!1,isLoading:!1});function ue(){return n(M)}function N(){let e=n(j);return A(e,`useProjectContext can only be called from inside <ProjectProvider />`),e}function de(){let e=N().current;return A(e,`No current project`),e}function fe(){return N().current||null}var pe=D(((e,t)=>{t.exports=function(e,t,n,r){var i=n?n.call(r,e,t):void 0;if(i!==void 0)return!!i;if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var a=Object.keys(e),o=Object.keys(t);if(a.length!==o.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var l=a[c];if(!s(l))return!1;var u=e[l],d=t[l];if(i=n?n.call(r,u,d,l):void 0,i===!1||i===void 0&&u!==d)return!1}return!0}})),P=D(((e,t)=>{(function(n,r,i){typeof e==`object`?(t.exports=i(),t.exports.default=i()):typeof define==`function`&&define.amd?define(i):r[n]=i()})(`slugify`,e,function(){var e=JSON.parse(`{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E'","Ը":"Y'","Թ":"T'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C'","Կ":"K","Հ":"H","Ձ":"D'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P'","Ք":"Q'","Օ":"O''","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"'","’":"'","“":"\\"","”":"\\"","„":"\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}`),t=JSON.parse(`{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}`);function n(n,r){if(typeof n!=`string`)throw Error(`slugify: string argument expected`);r=typeof r==`string`?{replacement:r}:r||{};var i=t[r.locale]||{},a=r.replacement===void 0?`-`:r.replacement,o=r.trim===void 0?!0:r.trim,s=n.normalize().split(``).reduce(function(t,n){var o=i[n];return o===void 0&&(o=e[n]),o===void 0&&(o=n),o===a&&(o=` `),t+o.replace(r.remove||/[^\w\s$*_+~.()'"!\-:@]+/g,``)},``);return r.strict&&(s=s.replace(/[^A-Za-z0-9\s]/g,``)),o&&(s=s.trim()),s=s.replace(/\s+/g,a),r.lower&&(s=s.toLowerCase()),s}return n.extend=function(t){Object.assign(e,t)},n})})),me=O(pe(),1),he=O(P(),1);function ge(){return`${Math.random().toString(36).substr(2)}-${Date.now().toString(36)}`}function F(e,t={}){let n=l(e.label)||`Untitled manifest`;return{id:`manifest-editor://project/${ge()}`,filename:(0,he.default)(n,{lower:!0}),name:n,metadata:{created:Date.now(),modified:Date.now()},resource:{id:e.id,type:`Manifest`},publications:[],previews:[],settings:{},storage:{type:`manifest-storage`,data:e},...t}}var _e=O(P(),1);function I(e,t){let n=t.map(e=>e.filename),r=(e.name||e.filename||`Untitled project`).toLowerCase();if(e.filename&&n.indexOf(e.filename)!==-1&&(e.filename=void 0),!e.filename){let t=0;for(;!e.filename;){let i=`${(0,_e.default)(r,{lower:!0})}${t?` (${t})`:``}`;if(n.indexOf(i)===-1){e.filename=i,e.name=`${e.name} (${t})`;break}t++}}}function L(){return`${Math.random().toString(36).substr(2)}-${Date.now().toString(36)}`}var R=O(P(),1);function ve(e,t={}){let n=l(e.label)||`Untitled collection`;return{id:`manifest-editor://project/${L()}`,filename:(0,R.default)(n,{lower:!0}),name:n,metadata:{created:Date.now(),modified:Date.now()},resource:{id:e.id,type:`Collection`},publications:[],previews:[],settings:{},storage:{type:`collection-storage`,data:e},...t}}function z(e,t,n){async function r(r){let i=await t.getAllProjects(!0),a={...r};if(I(a,i),!n.canCreate())throw Error(`Cannot create project with this storage backend`);let s=await n.create(a,a.storage.data),c={...a,storage:s};await t.createProject(c),e({type:`createProject`,payload:c}),o(a.id)}function a(n){t.canDelete()&&(e({type:`deleteProject`,payload:n}),t.deleteProject(n).then(()=>{console.log(`Loader: project deleted`)}))}function o(n){e({type:`switchProject`,payload:n}),t.setLastProject(n).then(()=>{})}function s(t){e({type:`deselectProject`,payload:t})}function c(t){throw e({type:`forkProject`,payload:t}),Error(`Not implemented yet`)}function l(t){e({type:`setLoadingStatus`,payload:t})}function u(r){console.log(`trying to save project...`),e({type:`saveProject`,payload:r}),Promise.all([t.updateProject(r),n.saveStorage(r.storage)]).then(()=>{console.log(`Loader: project saved`)})}function d(t){e({type:`updateDetails`,payload:t})}function f(t){e({type:`createPublication`,payload:t})}function p(t){e({type:`updatePublication`,payload:t})}function m(t){e({type:`removePublication`,payload:t})}function h(t){e({type:`updateSettings`,payload:t})}function g(t){e({type:`updateThumbnail`,payload:t})}function _(t){e({type:`updateStorage`,payload:t})}function v(t){e({type:`load`,payload:t})}function y(t){e({type:`setPreview`,payload:t})}function b(t){e({type:`removePreview`,payload:t})}return i(()=>({createProject:r,deleteProject:a,switchProject:o,deselectProject:s,forkProject:c,saveProject:u,setLoadingStatus:l,load:v,updateDetails:d,createPublication:f,updatePublication:p,removePublication:m,updateSettings:h,updateThumbnail:g,updateStorage:_,setPreview:y,removePreview:b}),[])}function B({actions:e,current:t},n){r(()=>{e.setLoadingStatus({loading:!0,lastLoaded:0,loaded:!1}),n.getAllProjects().then(async t=>{let r=await n.getLastProject(),i=t.find(e=>e.id===r);e.load({allProjects:t,current:i||null,loadingStatus:{loaded:!0,loading:!1,lastLoaded:Date.now()}})})},[])}function V({actions:e,current:n},a){let l=o(null),[u,f]=s(!1),[p,m]=s(``),h=t(()=>{let t=l.current;t&&a.saveStorage(t.storage).then(()=>{let n=a.getBackendStorage(t);(0,me.default)(n,t.storage)||e.saveProject({...t,storage:n})})},[e,a]),g=c(h,a.saveInterval),_=n?.id;r(()=>{l.current=n},[n]);let{vault:v,promise:y}=i(()=>{if(n){let[e,t]=a.createVaultInstance(n);return{vault:e,promise:t}}return{vault:null,promise:null}},[a,_]);return r(()=>{let e=a,t=n,r=v;return()=>{r&&t?e.closeVaultInstance(t,r):r instanceof d&&r.ws.close()}},[a,n,v]),r(()=>{f(!1);let e=!1;return y&&y.then(()=>{e||f(!0)}).catch(e=>{m(e.message)}),()=>{e=!0}},[y]),r(()=>(window.addEventListener(`beforeunload`,h,!1),()=>{window.removeEventListener(`beforeunload`,h)}),[h]),r(()=>()=>{h()},[h,_]),r(()=>{if(v&&a.shouldUpdateWithVault())return v.subscribe(g,!0)},[g,a,v]),{vault:v,ready:u,error:p}}function ye(){let{actions:e}=N(),n=t(function(){e.createProject(F({"@context":`http://iiif.io/api/presentation/3/context.json`,id:`https://example.org/${L()}`,type:`Manifest`,label:{en:[`Blank Manifest`]},items:[]}))},[]),r=t(async function(t){let n=await m(t);n&&(n[`@id`]&&(n=u(n)),n&&e.createProject(F(n)))},[]),i=t(async function(t){let n=await m(t);n&&(n[`@id`]&&(n=u(n)),n&&e.createProject(ve(n)))},[]);return{createProjectFromManifestJson:t(async function(t){let n=JSON.parse(t);n&&(n[`@id`]&&(n=u(n)),n&&e.createProject(F(n)))},[]),createProjectFromManifestId:r,createProjectFromCollectionId:i,createBlankManifest:n}}const be=_(function(e,t){if(e.current)switch(t.type){case`removePublication`:e.current.publications=e.current.publications.filter(e=>e.id!==t.payload);break;case`saveProject`:e.current.metadata.modified=Date.now();break;case`updateDetails`:e.current.name=t.payload.name,e.current.filename=t.payload.filename;break;case`updateStorage`:e.current.storage=t.payload;break;case`createPublication`:e.current.publications.find(e=>e.id===t.payload.id)||e.current.publications.push(t.payload);break;case`updateThumbnail`:e.current.thumbnail=t.payload;break;case`updateSettings`:e.current.settings=t.payload;break;case`updatePublication`:{let n=e.current.publications.find(e=>e.id===t.payload.id);n&&(n.config=t.payload.config);break}case`removePreview`:{let n=e.current.previews?.findIndex(e=>e.id===t.payload);n!==-1&&e.current.previews.splice(n,1);break}case`setPreview`:{let n=e.current.previews?.findIndex(e=>e.id===t.payload.id);n===-1?e.current.previews.push(t.payload):e.current.previews.splice(n,1,t.payload);break}}switch(t.type){case`load`:e.allProjects=t.payload.allProjects,e.current=t.payload.current,e.loadingStatus=t.payload.loadingStatus;break;case`forkProject`:break;case`deleteProject`:e.allProjects=e.allProjects.filter(e=>e.id!==t.payload),e.current&&e.current.id===t.payload&&(e.current=null);break;case`deselectProject`:e.current=null;break;case`createProject`:e.allProjects.push(t.payload),e.current=t.payload;break;case`switchProject`:e.current=e.allProjects.find(e=>e.id===t.payload)||null;break;case`setLoadingStatus`:e.loadingStatus=t.payload;break}});function xe(e={loading:!1,loaded:!0,lastLoaded:0}){return{allProjects:[],current:null,loadingStatus:e}}function H(e){"@babel/helpers - typeof";return H=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},H(e)}function Se(e,t){if(H(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(H(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ce(e){var t=Se(e,`string`);return H(t)==`symbol`?t:t+``}function U(e,t,n){return(t=Ce(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var we=class{constructor(e){U(this,`namespace`,void 0),U(this,`saveInterval`,void 0),U(this,`storage`,void 0),this.namespace=e?.namespace||`default-v1.1`,this.saveInterval=5e3,this.storage=v.createInstance({name:`manifest-editor-projects`})}async deleteProject(e){await this.storage.removeItem(`${this.namespace}/projects/${e}`)}async createProject(e){let t=await this.getProjectIndex();await this.storage.setItem(`${this.namespace}/projects/${e.id}`,JSON.stringify(e)),t.indexOf(e.id)===-1&&(t.push(e.id),await this.saveProjectIndex(t))}canDelete(){return!0}async getAllProjects(){try{let e=await this.getProjectIndex(),t=[];for(let n of e){if(n===`_index`)continue;let e=await this.storage.getItem(`${this.namespace}/projects/${n}`);if(e)try{t.push(JSON.parse(e))}catch{}}return t}catch(e){return console.error(`Error loading from localstorage`,e),[]}}async getLastProject(){return this.storage.getItem(`${this.namespace}/last`)}async setLastProject(e){await this.storage.setItem(`${this.namespace}/last`,e)}async updateProject(e){await this.storage.setItem(`${this.namespace}/projects/${e.id}`,JSON.stringify(e))}async saveProjectIndex(e){await this.storage.setItem(`${this.namespace}/_index`,JSON.stringify(e))}async getProjectIndex(){let e=await this.storage.getItem(`${this.namespace}/_index`);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}},Te=class{constructor(e={}){U(this,`vaults`,{}),U(this,`saveInterval`,void 0),this.saveInterval=e.saveInterval||5e3}shouldUpdateWithVault(){return!0}canCreate(){return!0}canDelete(){return!0}createVaultInstance(e){let t=this.vaults[e.storage.data.key];if(t)return[t,Promise.resolve()];let n=new b;return[n,(async()=>{let t=await this.getStorage(e.storage);await n.loadManifest(e.resource.id,JSON.parse(JSON.stringify(t?.data))),this.vaults[e.storage.data.key]=n})()]}closeVaultInstance(e,t){}async saveStorage(e){let t=this.vaults[e.data.key],n={id:e.data.id,type:e.data.type};if(t){let r=t.toPresentation3(n),i=r.type===`Collection`?{type:`collection-storage`,data:r}:{type:`manifest-storage`,data:r};await this.saveStorageData(i,e)}}},Ee=class extends Te{constructor(e){super({saveInterval:5e3}),U(this,`type`,`local-storage`),U(this,`namespace`,void 0),U(this,`storage`,void 0),U(this,`vaults`,{}),this.namespace=e?.namespace||`default`,this.storage=y.createInstance({name:`local-storage-resource-loader`})}shouldUpdateWithVault(){return!0}async create(e,t){let n=L();return await localStorage.setItem(`${this.namespace}/store/${n}`,JSON.stringify(t)),{type:`resource-keyed-storage`,data:{id:t.id,type:t.type,key:n}}}async getStorage(e){try{let t=await localStorage.getItem(`${this.namespace}/store/${e.data.key}`),n=t?JSON.parse(t):null;return A(n,`Resource not found`),n.type===`Collection`?{type:`collection-storage`,data:n}:{type:`manifest-storage`,data:n}}catch{return null}}async saveStorageData(e,t){await localStorage.setItem(`${this.namespace}/store/${t.data.key}`,JSON.stringify(e.data))}async deleteStorage(e){this.vaults[e.data.key]=null,await localStorage.removeItem(`${this.namespace}/store/${e.data.key}`)}getBackendStorage(e){return e.storage}};function De(e){let{currentApp:t,changeApp:n}=h(),o=i(()=>e.backend||new we,[]),s=i(()=>e.storage||new Ee,[]),[c,l]=a(be,void 0,e.initialState||xe),u=z(l,o,s),d=i(()=>({actions:u,canDelete:o.canDelete(),...c}),[u,o,c]),{vault:m,ready:g,error:_}=V(d,s),v=d.current?.resource,y=i(()=>({isLoading:!g,isError:!!_,error:_}),[g,_]);return B(d,o),r(()=>{c.loadingStatus&&c.loadingStatus.loaded&&g&&(!m||!v)&&t?.id!==(e.defaultApp||`splash`)&&n({id:e.defaultApp||`splash`})},[]),c.loadingStatus&&c.loadingStatus.loading||d.current&&!v?S(`div`,{children:`Loading...`}):S(M.Provider,{value:y,children:S(j.Provider,{value:d,children:S(ee,{vault:m||void 0,children:S(f,{id:d.current?.id,children:S(p,{resource:v,children:e.children})})},c.current?.id)})})}const Oe=()=>C(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`1rem`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,children:[S(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),S(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`})]});w.button`
|
|
1
|
+
import*as e from"react";import{createContext as t,useCallback as n,useContext as r,useEffect as i,useMemo as a,useReducer as o,useRef as s,useState as c}from"react";import{useDebounce as l}from"tiny-use-debounce";import{getValue as u}from"@iiif/helpers";import{convertPresentation2 as d}from"@iiif/parser/presentation-2";import{ClientVault as f}from"@manifest-editor/client-vault";import{AppResourceInstanceProvider as p,AppResourceProvider as m,getManifestNomalized as h,useApps as g,useLocalStorage as _}from"@manifest-editor/shell";import{produce as v}from"immer";import*as y from"localforage";import b from"localforage";import{Vault as ee}from"@iiif/helpers/vault";import{VaultProvider as te}from"react-iiif-vault";import{Fragment as x,jsx as S,jsxs as C}from"react/jsx-runtime";import w,{css as T}from"styled-components";import{flushSync as ne}from"react-dom";var re=Object.create,E=Object.defineProperty,ie=Object.getOwnPropertyDescriptor,ae=Object.getOwnPropertyNames,oe=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,O=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),se=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ae(t),a=0,o=i.length,s;a<o;a++)s=i[a],!D.call(e,s)&&s!==n&&E(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ie(t,s))||r.enumerable});return e},k=(e,t,n)=>(n=e==null?{}:re(oe(e)),se(t||!e||!e.__esModule||!D.call(e,`default`)?E(n,`default`,{value:e,enumerable:!0}):n,e)),ce=`Invariant failed`;function A(e,t){if(!e)throw Error(ce)}const j=t(null),M=t({error:void 0,isError:!1,isLoading:!1});function le(){return r(M)}function N(){let e=r(j);return A(e,`useProjectContext can only be called from inside <ProjectProvider />`),e}function ue(){let e=N().current;return A(e,`No current project`),e}function de(){return N().current||null}var fe=O(((e,t)=>{t.exports=function(e,t,n,r){var i=n?n.call(r,e,t):void 0;if(i!==void 0)return!!i;if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var a=Object.keys(e),o=Object.keys(t);if(a.length!==o.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var l=a[c];if(!s(l))return!1;var u=e[l],d=t[l];if(i=n?n.call(r,u,d,l):void 0,i===!1||i===void 0&&u!==d)return!1}return!0}})),pe=O(((e,t)=>{(function(n,r,i){typeof e==`object`?(t.exports=i(),t.exports.default=i()):typeof define==`function`&&define.amd?define(i):r[n]=i()})(`slugify`,e,function(){var e=JSON.parse(`{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E'","Ը":"Y'","Թ":"T'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C'","Կ":"K","Հ":"H","Ձ":"D'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P'","Ք":"Q'","Օ":"O''","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"'","’":"'","“":"\\"","”":"\\"","„":"\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}`),t=JSON.parse(`{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}`);function n(n,r){if(typeof n!=`string`)throw Error(`slugify: string argument expected`);r=typeof r==`string`?{replacement:r}:r||{};var i=t[r.locale]||{},a=r.replacement===void 0?`-`:r.replacement,o=r.trim===void 0||r.trim,s=n.normalize().split(``).reduce(function(t,n){var o=i[n];return o===void 0&&(o=e[n]),o===void 0&&(o=n),o===a&&(o=` `),t+o.replace(r.remove||/[^\w\s$*_+~.()'"!\-:@]+/g,``)},``);return r.strict&&(s=s.replace(/[^A-Za-z0-9\s]/g,``)),o&&(s=s.trim()),s=s.replace(/\s+/g,a),r.lower&&(s=s.toLowerCase()),s}return n.extend=function(t){Object.assign(e,t)},n})})),me=k(fe(),1),P=k(pe(),1);function he(){return`${Math.random().toString(36).substr(2)}-${Date.now().toString(36)}`}function F(e,t={}){let n=u(e.label)||`Untitled manifest`;return{id:`manifest-editor://project/${he()}`,filename:(0,P.default)(n,{lower:!0}),name:n,metadata:{created:Date.now(),modified:Date.now()},resource:{id:e.id,type:`Manifest`},publications:[],previews:[],settings:{},storage:{type:`manifest-storage`,data:e},...t}}function ge(e,t){let n=t.map(e=>e.filename),r=(e.name||e.filename||`Untitled project`).toLowerCase();if(e.filename&&n.indexOf(e.filename)!==-1&&(e.filename=void 0),!e.filename){let t=0;for(;!e.filename;){let i=`${(0,P.default)(r,{lower:!0})}${t?` (${t})`:``}`;if(n.indexOf(i)===-1){e.filename=i,e.name=`${e.name} (${t})`;break}t++}}}function I(){return`${Math.random().toString(36).substr(2)}-${Date.now().toString(36)}`}function _e(e,t={}){let n=u(e.label)||`Untitled collection`;return{id:`manifest-editor://project/${I()}`,filename:(0,P.default)(n,{lower:!0}),name:n,metadata:{created:Date.now(),modified:Date.now()},resource:{id:e.id,type:`Collection`},publications:[],previews:[],settings:{},storage:{type:`collection-storage`,data:e},...t}}function L(e,t,n){async function r(r){let i=await t.getAllProjects(!0),a={...r};if(ge(a,i),!n.canCreate())throw Error(`Cannot create project with this storage backend`);let s=await n.create(a,a.storage.data),c={...a,storage:s};await t.createProject(c),e({type:`createProject`,payload:c}),o(a.id)}function i(n){t.canDelete()&&(e({type:`deleteProject`,payload:n}),t.deleteProject(n).then(()=>{console.log(`Loader: project deleted`)}))}function o(n){e({type:`switchProject`,payload:n}),t.setLastProject(n).then(()=>{})}function s(t){e({type:`deselectProject`,payload:t})}function c(t){throw e({type:`forkProject`,payload:t}),Error(`Not implemented yet`)}function l(t){e({type:`setLoadingStatus`,payload:t})}function u(r){console.log(`trying to save project...`),e({type:`saveProject`,payload:r}),Promise.all([t.updateProject(r),n.saveStorage(r.storage)]).then(()=>{console.log(`Loader: project saved`)})}function d(t){e({type:`updateDetails`,payload:t})}function f(t){e({type:`createPublication`,payload:t})}function p(t){e({type:`updatePublication`,payload:t})}function m(t){e({type:`removePublication`,payload:t})}function h(t){e({type:`updateSettings`,payload:t})}function g(t){e({type:`updateThumbnail`,payload:t})}function _(t){e({type:`updateStorage`,payload:t})}function v(t){e({type:`load`,payload:t})}function y(t){e({type:`setPreview`,payload:t})}function b(t){e({type:`removePreview`,payload:t})}return a(()=>({createProject:r,deleteProject:i,switchProject:o,deselectProject:s,forkProject:c,saveProject:u,setLoadingStatus:l,load:v,updateDetails:d,createPublication:f,updatePublication:p,removePublication:m,updateSettings:h,updateThumbnail:g,updateStorage:_,setPreview:y,removePreview:b}),[])}function R({actions:e,current:t},n){i(()=>{e.setLoadingStatus({loading:!0,lastLoaded:0,loaded:!1}),n.getAllProjects().then(async t=>{let r=await n.getLastProject(),i=t.find(e=>e.id===r);e.load({allProjects:t,current:i||null,loadingStatus:{loaded:!0,loading:!1,lastLoaded:Date.now()}})})},[])}function z({actions:e,current:t},r){let o=s(null),[u,d]=c(!1),[p,m]=c(``),h=n(()=>{let t=o.current;t&&r.saveStorage(t.storage).then(()=>{let n=r.getBackendStorage(t);(0,me.default)(n,t.storage)||e.saveProject({...t,storage:n})})},[e,r]),g=l(h,r.saveInterval),_=t?.id;i(()=>{o.current=t},[t]);let{vault:v,promise:y}=a(()=>{if(t){let[e,n]=r.createVaultInstance(t);return{vault:e,promise:n}}return{vault:null,promise:null}},[r,_]);return i(()=>{let e=r,n=t,i=v;return()=>{i&&n?e.closeVaultInstance(n,i):i instanceof f&&i.ws.close()}},[r,t,v]),i(()=>{d(!1);let e=!1;return y&&y.then(()=>{e||d(!0)}).catch(e=>{m(e.message)}),()=>{e=!0}},[y]),i(()=>(window.addEventListener(`beforeunload`,h,!1),()=>{window.removeEventListener(`beforeunload`,h)}),[h]),i(()=>()=>{h()},[h,_]),i(()=>{if(v&&r.shouldUpdateWithVault())return v.subscribe(g,!0)},[g,r,v]),{vault:v,ready:u,error:p}}function ve(){let{actions:e}=N(),t=n(function(){e.createProject(F({"@context":`http://iiif.io/api/presentation/3/context.json`,id:`https://example.org/${I()}`,type:`Manifest`,label:{en:[`Blank Manifest`]},items:[]}))},[]),r=n(async function(t){let n=await h(t);n&&(n[`@id`]&&(n=d(n)),n&&e.createProject(F(n)))},[]),i=n(async function(t){let n=await h(t);n&&(n[`@id`]&&(n=d(n)),n&&e.createProject(_e(n)))},[]);return{createProjectFromManifestJson:n(async function(t){let n=JSON.parse(t);n&&(n[`@id`]&&(n=d(n)),n&&e.createProject(F(n)))},[]),createProjectFromManifestId:r,createProjectFromCollectionId:i,createBlankManifest:t}}const ye=v(function(e,t){if(e.current)switch(t.type){case`removePublication`:e.current.publications=e.current.publications.filter(e=>e.id!==t.payload);break;case`saveProject`:e.current.metadata.modified=Date.now();break;case`updateDetails`:e.current.name=t.payload.name,e.current.filename=t.payload.filename;break;case`updateStorage`:e.current.storage=t.payload;break;case`createPublication`:e.current.publications.find(e=>e.id===t.payload.id)||e.current.publications.push(t.payload);break;case`updateThumbnail`:e.current.thumbnail=t.payload;break;case`updateSettings`:e.current.settings=t.payload;break;case`updatePublication`:{let n=e.current.publications.find(e=>e.id===t.payload.id);n&&(n.config=t.payload.config);break}case`removePreview`:{let n=e.current.previews?.findIndex(e=>e.id===t.payload);n!==-1&&e.current.previews.splice(n,1);break}case`setPreview`:{let n=e.current.previews?.findIndex(e=>e.id===t.payload.id);n===-1?e.current.previews.push(t.payload):e.current.previews.splice(n,1,t.payload);break}}switch(t.type){case`load`:e.allProjects=t.payload.allProjects,e.current=t.payload.current,e.loadingStatus=t.payload.loadingStatus;break;case`forkProject`:break;case`deleteProject`:e.allProjects=e.allProjects.filter(e=>e.id!==t.payload),e.current&&e.current.id===t.payload&&(e.current=null);break;case`deselectProject`:e.current=null;break;case`createProject`:e.allProjects.push(t.payload),e.current=t.payload;break;case`switchProject`:e.current=e.allProjects.find(e=>e.id===t.payload)||null;break;case`setLoadingStatus`:e.loadingStatus=t.payload}});function be(e={loading:!1,loaded:!0,lastLoaded:0}){return{allProjects:[],current:null,loadingStatus:e}}function B(e){"@babel/helpers - typeof";return B=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},B(e)}function xe(e,t){if(B(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(B(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Se(e){var t=xe(e,`string`);return B(t)==`symbol`?t:t+``}function V(e,t,n){return(t=Se(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ce=class{constructor(e){V(this,`namespace`,void 0),V(this,`saveInterval`,void 0),V(this,`storage`,void 0),this.namespace=e?.namespace||`default-v1.1`,this.saveInterval=5e3,this.storage=y.createInstance({name:`manifest-editor-projects`})}async deleteProject(e){await this.storage.removeItem(`${this.namespace}/projects/${e}`)}async createProject(e){let t=await this.getProjectIndex();await this.storage.setItem(`${this.namespace}/projects/${e.id}`,JSON.stringify(e)),t.indexOf(e.id)===-1&&(t.push(e.id),await this.saveProjectIndex(t))}canDelete(){return!0}async getAllProjects(){try{let e=await this.getProjectIndex(),t=[];for(let n of e){if(n===`_index`)continue;let e=await this.storage.getItem(`${this.namespace}/projects/${n}`);if(e)try{t.push(JSON.parse(e))}catch{}}return t}catch(e){return console.error(`Error loading from localstorage`,e),[]}}async getLastProject(){return this.storage.getItem(`${this.namespace}/last`)}async setLastProject(e){await this.storage.setItem(`${this.namespace}/last`,e)}async updateProject(e){await this.storage.setItem(`${this.namespace}/projects/${e.id}`,JSON.stringify(e))}async saveProjectIndex(e){await this.storage.setItem(`${this.namespace}/_index`,JSON.stringify(e))}async getProjectIndex(){let e=await this.storage.getItem(`${this.namespace}/_index`);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}},we=class{constructor(e={}){V(this,`vaults`,{}),V(this,`saveInterval`,void 0),this.saveInterval=e.saveInterval||5e3}shouldUpdateWithVault(){return!0}canCreate(){return!0}canDelete(){return!0}createVaultInstance(e){let t=this.vaults[e.storage.data.key];if(t)return[t,Promise.resolve()];let n=new ee;return[n,(async()=>{let t=await this.getStorage(e.storage);await n.loadManifest(e.resource.id,JSON.parse(JSON.stringify(t?.data))),this.vaults[e.storage.data.key]=n})()]}closeVaultInstance(e,t){}async saveStorage(e){let t=this.vaults[e.data.key],n={id:e.data.id,type:e.data.type};if(t){let r=t.toPresentation3(n),i=r.type===`Collection`?{type:`collection-storage`,data:r}:{type:`manifest-storage`,data:r};await this.saveStorageData(i,e)}}},Te=class extends we{constructor(e){super({saveInterval:5e3}),V(this,`type`,`local-storage`),V(this,`namespace`,void 0),V(this,`storage`,void 0),V(this,`vaults`,{}),this.namespace=e?.namespace||`default`,this.storage=b.createInstance({name:`local-storage-resource-loader`})}shouldUpdateWithVault(){return!0}async create(e,t){let n=I();return await localStorage.setItem(`${this.namespace}/store/${n}`,JSON.stringify(t)),{type:`resource-keyed-storage`,data:{id:t.id,type:t.type,key:n}}}async getStorage(e){try{let t=await localStorage.getItem(`${this.namespace}/store/${e.data.key}`),n=t?JSON.parse(t):null;return A(n,`Resource not found`),n.type===`Collection`?{type:`collection-storage`,data:n}:{type:`manifest-storage`,data:n}}catch{return null}}async saveStorageData(e,t){await localStorage.setItem(`${this.namespace}/store/${t.data.key}`,JSON.stringify(e.data))}async deleteStorage(e){this.vaults[e.data.key]=null,await localStorage.removeItem(`${this.namespace}/store/${e.data.key}`)}getBackendStorage(e){return e.storage}};function Ee(e){let{currentApp:t,changeApp:n}=g(),r=a(()=>e.backend||new Ce,[]),s=a(()=>e.storage||new Te,[]),[c,l]=o(ye,void 0,e.initialState||be),u=L(l,r,s),d=a(()=>({actions:u,canDelete:r.canDelete(),...c}),[u,r,c]),{vault:f,ready:h,error:_}=z(d,s),v=d.current?.resource,y=a(()=>({isLoading:!h,isError:!!_,error:_}),[h,_]);return R(d,r),i(()=>{c.loadingStatus&&c.loadingStatus.loaded&&h&&(!f||!v)&&t?.id!==(e.defaultApp||`splash`)&&n({id:e.defaultApp||`splash`})},[]),c.loadingStatus&&c.loadingStatus.loading||d.current&&!v?S(`div`,{children:`Loading...`}):S(M.Provider,{value:y,children:S(j.Provider,{value:d,children:S(te,{vault:f||void 0,children:S(p,{id:d.current?.id,children:S(m,{resource:v,children:e.children})})},c.current?.id)})})}const H=()=>C(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`1rem`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,children:[S(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),S(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`})]});w.button`
|
|
2
2
|
border: none;
|
|
3
3
|
outline: none;
|
|
4
4
|
background-color: transparent;
|
|
@@ -10,7 +10,7 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
10
10
|
&:hover {
|
|
11
11
|
color: inherit;
|
|
12
12
|
}
|
|
13
|
-
`;const
|
|
13
|
+
`;const U=w.button`
|
|
14
14
|
padding: 0.5rem 1rem;
|
|
15
15
|
color: ${e=>e.theme.color.main||`none`};
|
|
16
16
|
background-color: ${e=>e.theme.color.white||`white`};
|
|
@@ -28,11 +28,11 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
28
28
|
&:hover {
|
|
29
29
|
background: #eee;
|
|
30
30
|
}
|
|
31
|
-
`,
|
|
31
|
+
`,De=w(U)`
|
|
32
32
|
padding: 0.25em ${e=>e.theme.padding.xs||`0.4em`};
|
|
33
33
|
height: unset;
|
|
34
34
|
background: none;
|
|
35
|
-
`;w(
|
|
35
|
+
`;w(U)`
|
|
36
36
|
{
|
|
37
37
|
padding: 0 ${e=>e.theme.padding.medium||`1rem`};
|
|
38
38
|
color: ${e=>e.theme.color.main||`#B84C74;`};
|
|
@@ -51,7 +51,7 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
51
51
|
cursor: not-allowed;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
`,w(
|
|
54
|
+
`,w(U)`
|
|
55
55
|
padding: 0 ${e=>e.theme.padding.medium||`1rem`};
|
|
56
56
|
color: ${e=>e.theme.color.white||`white`};
|
|
57
57
|
background-color: ${e=>e.theme.color.main||`#B84C74;`};
|
|
@@ -70,7 +70,7 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
70
70
|
flex-wrap: wrap;
|
|
71
71
|
align-items: flex-start;
|
|
72
72
|
justify-content: ${e=>e.$right?`flex-end`:`flex-start`};
|
|
73
|
-
`;const
|
|
73
|
+
`;const Oe=w.div`
|
|
74
74
|
position: relative;
|
|
75
75
|
display: inline-block;
|
|
76
76
|
`;w.div`
|
|
@@ -115,7 +115,7 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
115
115
|
color: #fff;
|
|
116
116
|
}
|
|
117
117
|
`}
|
|
118
|
-
`;const
|
|
118
|
+
`;const ke=w.div`
|
|
119
119
|
display: none;
|
|
120
120
|
flex-direction: column;
|
|
121
121
|
position: absolute;
|
|
@@ -133,7 +133,7 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
133
133
|
overflow: hidden;
|
|
134
134
|
padding-bottom: 3px;
|
|
135
135
|
|
|
136
|
-
${
|
|
136
|
+
${U} {
|
|
137
137
|
&:hover {
|
|
138
138
|
background-color: ${e=>e.theme.color.lightgrey||`lightgrey`};
|
|
139
139
|
}
|
|
@@ -142,17 +142,17 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
142
142
|
${e=>e.$open&&T`
|
|
143
143
|
display: flex;
|
|
144
144
|
`}
|
|
145
|
-
`,
|
|
145
|
+
`,W=w.div`
|
|
146
146
|
color: #999;
|
|
147
147
|
text-transform: uppercase;
|
|
148
148
|
font-weight: 600;
|
|
149
149
|
padding: 0.7em;
|
|
150
150
|
font-size: 0.875em;
|
|
151
|
-
`,
|
|
151
|
+
`,G=w.div`
|
|
152
152
|
height: 1px;
|
|
153
153
|
margin: 0 0.5em;
|
|
154
154
|
background: #eee;
|
|
155
|
-
`,q=w.button`
|
|
155
|
+
`;var Ae=O(((t,n)=>{n.exports={...e}})),K=k(O((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Ae();function n(e,n){let[r,i]=(0,t.useState)(!1),a=(0,t.useRef)(null),o=(0,t.useRef)(!0),s=(0,t.useRef)(!1),c=(0,t.useRef)(null),l=(0,t.useMemo)(()=>Array.from({length:e},()=>(0,t.createRef)()),[e]),u=e=>e.key!==void 0,d=e=>{var t;a.current=e,(t=l[e].current)==null||t.focus()};(0,t.useEffect)(()=>{if(o.current){o.current=!1;return}r&&(!s.current||n?.focusFirstItemOnClick)?d(0):r||(s.current=!1)},[r]),(0,t.useEffect)(()=>{if(!r)return;let e={removed:!1},t=e=>{setTimeout(()=>{e.target instanceof Element&&(e.target.closest(`[role="menu"]`)instanceof Element||i(!1))},10)};return setTimeout(()=>{e.removed||document.addEventListener(`click`,t)},1),()=>{e.removed=!0,document.removeEventListener(`click`,t)}},[r]),(0,t.useEffect)(()=>{let e=e=>{r&&(e.key===`ArrowDown`||e.key===`ArrowUp`)&&e.preventDefault()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]);let f=e=>{if(u(e)){let{key:t}=e;if(![`Enter`,` `,`Tab`,`ArrowDown`,`Escape`].includes(t))return;(t===`Tab`||t===`ArrowDown`)&&s.current&&r&&(e.preventDefault(),d(0)),(t===`Enter`||t===` `)&&(e.preventDefault(),i(!0)),t===`Escape`&&(e.preventDefault(),i(!1))}else n?.focusFirstItemOnClick||(s.current=!r),i(!r)},p=e=>{var t;let{key:n}=e;if([`Tab`,`Shift`,`Enter`,`Escape`,`ArrowUp`,`ArrowDown`,` `].includes(n)){let r=a.current;if(n===`Escape`){i(!1),(t=c.current)==null||t.focus();return}if(n===`Tab`){i(!1);return}if(n===`Enter`||n===` `){e.currentTarget.href||e.currentTarget.click(),i(!1);return}r!==null&&(n===`ArrowUp`?--r:n===`ArrowDown`&&(r+=1),r>l.length-1?r=0:r<0&&(r=l.length-1)),r!==null&&d(r);return}if(/[a-zA-Z0-9./<>?;:"'`!@#$%^&*()\\[\]{}_+=|\\-~,]/.test(n)){let e=l.findIndex(e=>(e.current?.innerText)?.toLowerCase().startsWith(n.toLowerCase())||(e.current?.textContent)?.toLowerCase().startsWith(n.toLowerCase())||(e.current?.getAttribute(`aria-label`))?.toLowerCase().startsWith(n.toLowerCase()));e!==-1&&d(e)}};return{buttonProps:{onKeyDown:f,onClick:f,tabIndex:0,ref:c,role:`button`,"aria-haspopup":!0,"aria-expanded":r},itemProps:Array.from({length:e},(e,t)=>({onKeyDown:p,tabIndex:-1,role:`menuitem`,ref:l[t]})),isOpen:r,setIsOpen:i,moveFocus:d}}e.default=n}))(),1);const je=typeof K.default==`object`&&K.default!==null&&`default`in K.default?K.default.default:K.default,q=w.button`
|
|
156
156
|
height: 1.75em;
|
|
157
157
|
width: 1.75em;
|
|
158
158
|
background: #e9e9e9;
|
|
@@ -171,7 +171,7 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
171
171
|
fill: #fff;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
`;function Me(e){let{current:t}=N(),[n,r]=
|
|
174
|
+
`;function Me(e){let{current:t}=N(),[n,r]=_(`menu-hidden`),{apps:i,changeApp:a}=g(),o=t?.resource.type,s=Object.values(i).filter(e=>!(e.metadata.project&&e.metadata.projectType!==o||!t&&e.metadata.project||e.metadata.type===`launcher`)),{itemProps:c,buttonProps:l,isOpen:u,setIsOpen:d}=je(s.length+1);return C(Oe,{children:[S(q,{...l,children:S(H,{})}),C(ke,{$open:u,children:[S(W,{children:`Apps`}),S(G,{}),s.map((e,t)=>S(U,{...c[t],onClick:()=>{a({id:e.metadata.id}),d(!1)},children:e.metadata.title},e.metadata.id)),e.hideMenu?null:C(x,{children:[S(W,{children:`Quick Settings`}),S(G,{}),S(U,{...c[s.length+0],onClick:()=>r(!n),children:n?`Show menu`:`Hide menu`})]})]})]})}const J=w.div`
|
|
175
175
|
display: flex;
|
|
176
176
|
flex-direction: row;
|
|
177
177
|
flex: 1;
|
|
@@ -193,7 +193,7 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
193
193
|
border: 1px solid #999;
|
|
194
194
|
padding: 0.2em;
|
|
195
195
|
margin: -0.2em 0;
|
|
196
|
-
`,Q=w(
|
|
196
|
+
`,Q=w(De)`
|
|
197
197
|
font-size: 1em;
|
|
198
198
|
display: inline-block;
|
|
199
199
|
`,$=w.div`
|
|
@@ -202,5 +202,5 @@ import{createContext as e,useCallback as t,useContext as n,useEffect as r,useMem
|
|
|
202
202
|
text-overflow: ellipsis;
|
|
203
203
|
white-space: nowrap;
|
|
204
204
|
overflow: hidden;
|
|
205
|
-
`;function Ne(){let{actions:e,current:t}=N(),[n,r]=
|
|
205
|
+
`;function Ne(){let{actions:e,current:t}=N(),[n,r]=c(!1);return C(J,{children:[S(Y,{children:`Drafts`}),t?S(x,{children:n?C(X,{onSubmit:t=>{let n=new FormData(t.target),i=Object.fromEntries(n.entries());e.updateDetails(i),r(!1)},children:[S(Z,{id:`project-title`,defaultValue:t.name,name:`name`}),S(Q,{children:`Save`})]}):S($,{onClick:()=>{ne(()=>{r(!0)}),document.getElementById(`project-title`)?.focus()},children:t.name||`Untitled project`})}):null]})}export{Me as AppMenu,J as Draft,$ as DraftTitle,X as DraftTitleEdit,Q as DraftTitleEditButton,Z as DraftTitleEditInput,Ne as DraftTitleEditor,Y as DraftsText,q as IconButton,M as ProjectLoadingReactContext,Ee as ProjectProvider,j as ProjectReactContext,ue as useCurrentProject,de as useOptionalCurrentProject,L as useProjectActionsWithBackend,R as useProjectBackend,N as useProjectContext,ve as useProjectCreators,z as useProjectLoader,le as useProjectLoading};
|
|
206
206
|
//# sourceMappingURL=index.js.map
|