@manifest-editor/shell 2.0.0 → 2.0.1-next.0.ede7d58
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 +20 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +31 -31
- package/dist/index.d.cts +29 -29
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +27 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -17
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadButton as r,EmptyState as i,ErrorMessage as a,Form as o,GridIcon as s,IconButton as c,IconHandle as l,ManifestEditorLogo as u,Modal as d,ModalBackSlot as f,PaddedSidebarContainer as p,PanelSideMenu as m,ResetIcon as h,ResizeHandle as g,Sidebar as _,SidebarContent as v,SidebarHeader as y,SidebarTabs as b,Spinner as ee,Tab as x,TabList as te,TabPanel as S,Tabs as C,Tooltip as w,TooltipTrigger as T,useLocalStorage as E,useOptionalLocalStorage as ne,useOptionalLocalStorage as re}from"@manifest-editor/components";import{Component as ie,Fragment as ae,Suspense as oe,createContext as D,createElement as se,createRef as ce,forwardRef as le,memo as ue,useCallback as O,useContext as k,useEffect as A,useImperativeHandle as de,useLayoutEffect as fe,useMemo as j,useReducer as M,useRef as N,useState as P}from"react";import{Fragment as F,jsx as I,jsxs as L}from"react/jsx-runtime";import R,{ThemeProvider as pe,css as z}from"styled-components";import me from"react-accessible-dropdown-menu-hook";import{AtlasStoreProvider as he,AtlasStoreProvider as ge,AtlasStoreReactContext as _e,CollectionContext as ve,ImageServiceLoaderContext as ye,ManifestContext as be,ReactVaultContext as xe,ResourceReactContext as Se,VaultProvider as Ce,useAtlasStore as we,useCurrentAnnotationMetadata as Te,useExistingVault as Ee,useManifest as De,useResourceContext as Oe,useVault as B,useVaultSelector as ke}from"react-iiif-vault";import{original as Ae,produce as je}from"immer";import{getValue as Me}from"@iiif/helpers";import*as Ne from"@iiif/helpers/vault";import{Vault as Pe}from"@iiif/helpers/vault";import{isSpecificResource as Fe,toRef as V}from"@iiif/parser";import{Creator as Ie,matchBasedOnResource as Le}from"@manifest-editor/creator-api";import{
|
|
1
|
+
import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadButton as r,EmptyState as i,ErrorMessage as a,Form as o,GridIcon as s,IconButton as c,IconHandle as l,ManifestEditorLogo as u,Modal as d,ModalBackSlot as f,PaddedSidebarContainer as p,PanelSideMenu as m,ResetIcon as h,ResizeHandle as g,Sidebar as _,SidebarContent as v,SidebarHeader as y,SidebarTabs as b,Spinner as ee,Tab as x,TabList as te,TabPanel as S,Tabs as C,Tooltip as w,TooltipTrigger as T,useLocalStorage as E,useOptionalLocalStorage as ne,useOptionalLocalStorage as re}from"@manifest-editor/components";import{Component as ie,Fragment as ae,Suspense as oe,createContext as D,createElement as se,createRef as ce,forwardRef as le,memo as ue,useCallback as O,useContext as k,useEffect as A,useImperativeHandle as de,useLayoutEffect as fe,useMemo as j,useReducer as M,useRef as N,useState as P}from"react";import{Fragment as F,jsx as I,jsxs as L}from"react/jsx-runtime";import R,{ThemeProvider as pe,css as z}from"styled-components";import me from"react-accessible-dropdown-menu-hook";import{AtlasStoreProvider as he,AtlasStoreProvider as ge,AtlasStoreReactContext as _e,CollectionContext as ve,ImageServiceLoaderContext as ye,ManifestContext as be,ReactVaultContext as xe,ResourceReactContext as Se,VaultProvider as Ce,useAtlasStore as we,useCurrentAnnotationMetadata as Te,useExistingVault as Ee,useManifest as De,useResourceContext as Oe,useVault as B,useVaultSelector as ke}from"react-iiif-vault";import{original as Ae,produce as je}from"immer";import{getValue as Me}from"@iiif/helpers";import*as Ne from"@iiif/helpers/vault";import{Vault as Pe}from"@iiif/helpers/vault";import{isSpecificResource as Fe,toRef as V}from"@iiif/parser";import{Creator as Ie,matchBasedOnResource as Le}from"@manifest-editor/creator-api";import{create as Re,createStore as ze,useStore as H}from"zustand";import{ErrorBoundary as Be}from"react-error-boundary";import{addReference as Ve,batchActions as He,modifyEntityField as Ue,reorderEntityField as We,requestResource as Ge}from"@iiif/helpers/vault/actions";import{actionListFromResource as Ke}from"@iiif/helpers/vault/utility";import{EditorInstance as qe}from"@manifest-editor/editor-api";import Je from"mitt";import{useDebounce as Ye}from"tiny-use-debounce";import{Transition as Xe}from"react-transition-group";import Ze from"shallowequal";import{ImageServiceLoader as Qe}from"@atlas-viewer/iiif-image-api";var $e=!0,et=`Invariant failed`;function U(e,t){if(!e){if($e)throw Error(et);var n=typeof t==`function`?t():t,r=n?`${et}: ${n}`:et;throw Error(r)}}const tt={previews:[],behaviorPresets:[`auto-advance`,`no-auto-advance`,`repeat`,`no-repeat`,`unordered`,`individuals`,`continuous`,`paged`,`non-paged`,`facing-pages`,`multi-part`,`together`,`sequence`,`thumbnail-nav`,`no-nav`,`hidden`],defaultPreview:null,editorConfig:{},newTemplates:null,i18n:{advancedLanguageMode:!1,availableLanguages:[`en`,`cy`,`nl`,`fr`],defaultLanguage:`en`},editorFeatureFlags:{enableMultiImageCanvases:!0,enableMultiMediaCanvases:!0,annotationPopups:!1,rememberCanvasId:!0,manifestGridOptions:!1,rememberLeftPanelId:!1},uploadBackends:[],export:{baseIdentifier:null,version:3}},nt=D(tt),rt=D(()=>{});function it(){return k(nt)}function at(){return k(rt)}function ot({children:e,config:t,saveConfig:n}){let[r,i]=P(null),a=j(()=>({...tt,...t||{},...r||{},editorFeatureFlags:{...tt.editorFeatureFlags,...t?.editorFeatureFlags||{},...r?.editorFeatureFlags}}),[t,r]),o=O(e=>{i(e),n&&n(e)},[t]);return I(rt.Provider,{value:o,children:I(nt.Provider,{value:a,children:e})})}const st=D(null),ct=D(null),lt=D({state:null,setState:()=>{}});function ut(){let e=k(ct);return U(e,`Hook useAppInstance must be used inside <AppProvider />`),e}function W(){let e=k(st);return U(e,`Hook useApp must be used inside <AppProvider />`),e}function dt(){return k(lt)}function ft(e){let[t,n,r]=E(`app-state/${e.appId}/${e.instanceId}`,e.initialState||{}),i=O(e=>{let t=r.current?JSON.parse(r.current||`{}`):{},i=(typeof e==`function`?e(t):e)||{};n({...t,...i})},[]);A(()=>{e.args&&i(e.args)},[e.appId]);let a=j(()=>({state:t||{},setState:i}),[i,t]);return I(lt.Provider,{value:a,children:e.children})}function pt({instanceId:e,appId:t,args:n,definition:r,children:i,initialState:a}){let o=j(()=>({instanceId:e,appId:t,args:n}),[e,t,n]),s=j(()=>a||{},[e]);return I(ot,{config:r.config||{},children:I(st.Provider,{value:r,children:I(ct.Provider,{value:o,children:I(ft,{instanceId:o.instanceId,appId:o.appId,args:o.args,initialState:s,children:i})})})})}const mt=D(null);function ht(){let e=k(mt);return U(e,`Hook useApps must be used inside <MultiAppProvider />`),e}function gt(e,t=!1){let[n,r]=re(`SelectedApplication`,e||{id:`splash`},!t);return[n,r]}function _t({apps:e,initialApp:t,saveCurrentApp:n=!0,instanceId:r,children:i,config:a={}}){let{defaultApp:o=`splash`,collectionApp:s=`collection-editor`,manifestApp:c=`manifest-editor`}=a,[l,u]=gt(t,n),d=e=>{e===`Manifest`&&u({id:c}),e===`Collection`&&u({id:s})},f=j(()=>({currentApp:l||{id:o},initialApp:t||{id:o},apps:e,changeApp:u,changeProjectType:d}),[t,e,l]),p=e[f.currentApp.id];return!l||!p?null:I(pt,{appId:l.id,definition:p,instanceId:l.id+r,args:l.args,children:I(mt.Provider,{value:f,children:i})})}const vt=R.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
align-items: center;
|
|
4
4
|
height: 3em;
|
|
@@ -236,7 +236,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
236
236
|
border-radius: 5px;
|
|
237
237
|
user-select: none;
|
|
238
238
|
cursor: not-allowed;
|
|
239
|
-
`;function tn({downloadEnabled:e,fileName:t}){let{active:n,configs:i,actions:a,selected:o}=Ht(),s=B(),c=it(),l=Et(),u=i.filter(e=>e.type===`external-manifest-preview`),{isOpen:d,buttonProps:f,itemProps:p}=me(u.length);return u.length===0?I(en,{children:`Preview not available`}):L(F,{children:[e?I(`div`,{className:`mr-4`,children:I(r,{fileName:t||`manifest.json`,label:`Download manifest`,getData:()=>c.export&&c.export.version===2?JSON.stringify(s.toPresentation2(l),null,2):JSON.stringify(s.toPresentation3(l),null,2)})}):null,L(Gt,{children:[I(Kt,{onClick:()=>{if(!o){let e=c.defaultPreview;if(e){let t=i.find(t=>t.id===e);if(t){a.selectPreview(t.id);return}}a.selectPreview(i[0].id)}a.updatePreviews()},children:`Preview`}),I(qt,{$open:d,...f,children:I(St,{})}),I(Jt,{$open:d,children:u.map((e,t)=>{let r=n.indexOf(e.id)===-1;return L(Yt,{...p[t],children:[I(Zt,{$status:r?`available`:e.id===o?`active`:`configured`}),I(Qt,{onClick:()=>{a.selectPreview(e.id)},children:e.label}),r?null:I($t,{onClick:()=>a.deletePreview(e.id),children:I(xt,{})})]},e.id)})})]})]})}const nn=ue(function(e){let[t]=E(`menu-hidden`);return I(yt,{children:L(vt,{children:[I(bt,{onClick:e.onClickLogo,children:I(u,{})}),I(tn,{})]})})}),rn=D(null);function an(){return k(rn)||null}function on(e,t){let n=an();return n?n[e][t]:null}function sn({children:e,menu:t}){return I(rn.Provider,{value:t,children:e})}function cn(){return k(_e)}function ln(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(e=>e[0])),n=Math.min(...e.points.map(e=>e[1])),r=Math.max(0,...e.points.map(e=>e[0])),i=Math.max(0,...e.points.map(e=>e[1]));return{x:t,y:n,width:r-t,height:i-n}}return null}const un=async e=>new Promise((t,n)=>{let r=document.createElement(`img`);r.onload=()=>t(r),r.onerror=()=>n(),r.src=e,r.complete&&t(r)}),dn=async e=>new Promise((t,n)=>{let r=document.createElement(`video`);r.onloadedmetadata=()=>t(r),r.onerror=()=>n(),r.preload=`metadata`,r.src=e});async function fn(){}async function pn(e,...t){if(!e)return;if(e.endsWith(`.mp3`)||e.endsWith(`.mp4`)||e.endsWith(`.m4a`)||e.endsWith(`.m4v`))try{let t=await dn(e);if(t){let n=t.videoWidth===0;return{id:e,type:t.videoWidth===0?`Sound`:`Video`,width:t.videoWidth||void 0,height:t.videoHeight||void 0,duration:t.duration,format:n?`audio/mp4`:`video/mp4`}}}catch{}let n=null;try{await fetch(e,{method:`HEAD`}),n=await fetch(e)}catch{return gn(e)}if(!n.ok&&(n=await fetch(e+`/info.json`),!n.ok))return gn(e);let r=n.headers.get(`Content-Type`);if(r?.includes(`image/`))return gn(e,r);let i=null;try{i=await n.json()}catch{return null}return await hn(i,e)}function mn(e){return e.protocol&&e.protocol===`http://iiif.io/api/image`?(e.type||(e.type=`ImageService`),e):null}async function hn(e,t){let n=mn(e);if(n)return n;if(!(e.id||e[`@id`]))return null;let r=await new Ne.Vault().load(t,e);if(r&&(r&&r?.type===`Manifest`||r?.type===`Collection`))return{id:t,type:r.type,label:Me(r.label)}}async function gn(e,t){let n=e.split(`/`);if(n.length>=8){let e=n.slice(-4);if(e[3].split(`.`).length===2&&(e[2][0]===`!`||e[2]===e[2])){let e=await _n(n.slice(0,n.length-4).join(`/`)+`/info.json`);if(e&&e?.type&&e?.type?.startsWith(`ImageService`))return e}}try{let n=await un(e);return{id:e,type:`Image`,width:n.width,height:n.height,format:await vn(e,t)}}catch{}return null}async function _n(e){try{let t=await fetch(e);return t.ok?await hn(await t.json(),e):null}catch(e){return console.log(e),null}}async function vn(e,t){if(t)return t;try{let t=(await fetch(e,{method:`HEAD`,mode:`no-cors`})).headers.get(`Content-type`);if(t)return t}catch{}let n=e.toLowerCase();return n.endsWith(`jpg`)||n.endsWith(`jpeg`)?`image/jpeg`:n.endsWith(`png`)?`image/png`:`image/jpeg`}async function yn(e){try{let t=await un(e);if(t)return{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}}catch{return null}return null}
|
|
239
|
+
`;function tn({downloadEnabled:e,fileName:t}){let{active:n,configs:i,actions:a,selected:o}=Ht(),s=B(),c=it(),l=Et(),u=i.filter(e=>e.type===`external-manifest-preview`),{isOpen:d,buttonProps:f,itemProps:p}=me(u.length);return u.length===0?I(en,{children:`Preview not available`}):L(F,{children:[e?I(`div`,{className:`mr-4`,children:I(r,{fileName:t||`manifest.json`,label:`Download manifest`,getData:()=>c.export&&c.export.version===2?JSON.stringify(s.toPresentation2(l),null,2):JSON.stringify(s.toPresentation3(l),null,2)})}):null,L(Gt,{children:[I(Kt,{onClick:()=>{if(!o){let e=c.defaultPreview;if(e){let t=i.find(t=>t.id===e);if(t){a.selectPreview(t.id);return}}a.selectPreview(i[0].id)}a.updatePreviews()},children:`Preview`}),I(qt,{$open:d,...f,children:I(St,{})}),I(Jt,{$open:d,children:u.map((e,t)=>{let r=n.indexOf(e.id)===-1;return L(Yt,{...p[t],children:[I(Zt,{$status:r?`available`:e.id===o?`active`:`configured`}),I(Qt,{onClick:()=>{a.selectPreview(e.id)},children:e.label}),r?null:I($t,{onClick:()=>a.deletePreview(e.id),children:I(xt,{})})]},e.id)})})]})]})}const nn=ue(function(e){let[t]=E(`menu-hidden`);return I(yt,{children:L(vt,{children:[I(bt,{onClick:e.onClickLogo,children:I(u,{})}),I(tn,{})]})})}),rn=D(null);function an(){return k(rn)||null}function on(e,t){let n=an();return n?n[e][t]:null}function sn({children:e,menu:t}){return I(rn.Provider,{value:t,children:e})}function cn(){return k(_e)}function ln(e){if(!e)return null;if(e.points.length>2){let t=Math.min(...e.points.map(e=>e[0])),n=Math.min(...e.points.map(e=>e[1])),r=Math.max(0,...e.points.map(e=>e[0])),i=Math.max(0,...e.points.map(e=>e[1]));return{x:t,y:n,width:r-t,height:i-n}}return null}const un=async e=>new Promise((t,n)=>{let r=document.createElement(`img`);r.onload=()=>t(r),r.onerror=()=>n(),r.src=e,r.complete&&t(r)}),dn=async e=>new Promise((t,n)=>{let r=document.createElement(`video`);r.onloadedmetadata=()=>t(r),r.onerror=()=>n(),r.preload=`metadata`,r.src=e});async function fn(){}async function pn(e,...t){if(!e)return;if(e.endsWith(`.mp3`)||e.endsWith(`.mp4`)||e.endsWith(`.m4a`)||e.endsWith(`.m4v`))try{let t=await dn(e);if(t){let n=t.videoWidth===0;return{id:e,type:t.videoWidth===0?`Sound`:`Video`,width:t.videoWidth||void 0,height:t.videoHeight||void 0,duration:t.duration,format:n?`audio/mp4`:`video/mp4`}}}catch{}let n=null;try{await fetch(e,{method:`HEAD`}),n=await fetch(e)}catch{return gn(e)}if(!n.ok&&(n=await fetch(e+`/info.json`),!n.ok))return gn(e);let r=n.headers.get(`Content-Type`);if(r?.includes(`image/`))return gn(e,r);let i=null;try{i=await n.json()}catch{return null}return await hn(i,e)}function mn(e){return e.protocol&&e.protocol===`http://iiif.io/api/image`?(e.type||(e.type=`ImageService`),e):null}async function hn(e,t){let n=mn(e);if(n)return n;if(!(e.id||e[`@id`]))return null;let r=await new Ne.Vault().load(t,e);if(r&&(r&&r?.type===`Manifest`||r?.type===`Collection`))return{id:t,type:r.type,label:Me(r.label)}}async function gn(e,t){let n=e.split(`/`);if(n.length>=8){let e=n.slice(-4);if(e[3].split(`.`).length===2&&(e[2][0]===`!`||e[2]===e[2])){let e=await _n(n.slice(0,n.length-4).join(`/`)+`/info.json`);if(e&&e?.type&&e?.type?.startsWith(`ImageService`))return e}}try{let n=await un(e);return{id:e,type:`Image`,width:n.width,height:n.height,format:await vn(e,t)}}catch{}return null}async function _n(e){try{let t=await fetch(e);return t.ok?await hn(await t.json(),e):null}catch(e){return console.log(e),null}}async function vn(e,t){if(t)return t;try{let t=(await fetch(e,{method:`HEAD`,mode:`no-cors`})).headers.get(`Content-type`);if(t)return t}catch{}let n=e.toLowerCase();return n.endsWith(`jpg`)||n.endsWith(`jpeg`)?`image/jpeg`:n.endsWith(`png`)?`image/png`:`image/jpeg`}async function yn(e){try{let t=await un(e);if(t)return{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}}catch{return null}return null}async function bn(e){let t;try{await fetch(e).then(e=>e.json().catch(e=>{console.error(`'${e}' happened!`)})).then(e=>{t={...e}})}catch(e){console.log(e)}return t}function xn(e,t,n){return`create_${e}_${t}_${V(n)?.type||`unknown`}`}function Sn(e,t,n=`text/json`){let r=e instanceof Blob?e:new Blob([e],{type:n}),i=document.createElement(`a`);i.download=t,i.href=window.URL.createObjectURL(r);let a=new MouseEvent(`click`,{view:window,bubbles:!0,cancelable:!0});i.dispatchEvent(a),i.remove()}async function Cn(e){return navigator.clipboard.writeText(typeof e==`string`?e:JSON.stringify(e,null,2))}function wn(){return`${Math.random().toString(36).substr(2)}-${Date.now().toString(36)}`}function Tn(e,t){let{default:n,config:r,...i}=e,a={metadata:n,layout:{leftPanels:[],rightPanels:[],centerPanels:[],...i},config:r};return t?t(a):a}function En(e,t,n){return{...e,metadata:t,config:{...e.config||{},...n.config||{}},layout:{...e.layout,leftPanels:[...(e.layout.leftPanels||[]).filter(e=>n?.leftPanelIds?n.leftPanelIds.includes(e.id):!0),...n?.leftPanels||[]],annotations:[...n?.annotations||[],...e.layout.annotations||[]],canvasEditors:[...n?.canvasEditors||[],...e.layout.canvasEditors||[]],creators:[...n?.creators||[],...e.layout.creators||[]],background:[...e.layout?.background||[],...n?.background||[]],editors:[...n?.editors||[],...e.layout.editors||[]],rightPanels:[...e.layout.rightPanels||[],...n?.rightPanels||[]],centerPanels:[...e.layout.centerPanels||[],...n?.centerPanels||[]],modals:[...e.layout.modals||[],...n?.modalPanels||[]]}}}const Dn=Re(e=>({regions:{},resources:[],setRegion:(t,n)=>{e(e=>({...e.regions,regions:{[t]:n||null}}))},setHighlight:t=>{e({resources:Array.isArray(t)?t:[t]})},highlight:t=>{e(e=>e.resources.indexOf(t)===-1?{resources:[...e.resources,t]}:e)},clearHighlight:t=>{e(e=>({resources:e.resources.filter(e=>e!==t)}))}}));function On(e){let t=j(()=>wn(),[]),n=Dn(e=>e.regions[t]),r=Dn(e=>e.setRegion);A(()=>{n&&e?n!==e&&(n.x!==e.x||n.y!==e.y||n.width!==e.width||n.height!==e.height)&&r(t,e||null):r(t,e||null)},[n]),A(()=>()=>r(t,null),[])}function kn(e){let t=Dn(e=>e.highlight),n=Dn(e=>e.clearHighlight);return A(()=>()=>{e&&n(e)},[n,e]),j(()=>({onMouseEnter(){e&&t(e)},onMouseLeave(){e&&n(e)}}),[e,t,n])}const An=e=>L(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`0 0 24 24`,...e,children:[I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z`,fill:`currentColor`})]}),jn=({style:e})=>L(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`1rem`,viewBox:`0 0 24 24`,width:`1rem`,fill:`#000000`,style:e,children:[I(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),I(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`})]}),Mn=D(null),Nn=D(null);function Pn(){return k(Nn)}function Fn(){return k(Mn)}function In(){return W().layout}function Ln(){let e=W(),t=e.layout,n=k(Mn),r=k(Nn);return j(()=>({actions:n,state:r,...t}),[e,r])}function Rn(e){let t=e.error.toString(),[n,r]=P(!1);return L(p,{children:[I(a,{className:`mb-2`,children:t}),I(Wt,{onClick:e.resetErrorBoundary,children:`Try again`})]})}function zn(e){return e&&e.pinnable}function Bn({initial:e,fallback:t,options:n={}}){return Math.max(n.minWidth||0,Math.min(n.maxWidth||1/0,e||t))}function Vn(e){return typeof e==`string`?se(`div`,{dangerouslySetInnerHTML:{__html:e}}):e}const Hn=R.div`
|
|
240
240
|
position: relative;
|
|
241
241
|
display: inline-block;
|
|
242
242
|
`;R.div`
|
|
@@ -254,7 +254,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
254
254
|
background-color: ${e=>e.theme.color.lightgrey||`lightgrey`};
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
|
-
`;const
|
|
257
|
+
`;const Un=R.button`
|
|
258
258
|
padding: 0 ${e=>e.theme.padding.small||`0.5rem`};
|
|
259
259
|
color: ${e=>e.theme.color.main||`none`};
|
|
260
260
|
background-color: ${e=>e.theme.color.white||`white`};
|
|
@@ -281,7 +281,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
281
281
|
color: #fff;
|
|
282
282
|
}
|
|
283
283
|
`}
|
|
284
|
-
`,
|
|
284
|
+
`,Wn=R.div`
|
|
285
285
|
display: none;
|
|
286
286
|
flex-direction: column;
|
|
287
287
|
position: absolute;
|
|
@@ -308,17 +308,17 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
308
308
|
${e=>e.$open&&z`
|
|
309
309
|
display: flex;
|
|
310
310
|
`}
|
|
311
|
-
`,
|
|
311
|
+
`,Gn=R.div`
|
|
312
312
|
color: #999;
|
|
313
313
|
text-transform: uppercase;
|
|
314
314
|
font-weight: 600;
|
|
315
315
|
padding: 0.7em;
|
|
316
316
|
font-size: 0.875em;
|
|
317
|
-
`,
|
|
317
|
+
`,Kn=R.div`
|
|
318
318
|
height: 1px;
|
|
319
319
|
margin: 0 0.5em;
|
|
320
320
|
background: #eee;
|
|
321
|
-
`,
|
|
321
|
+
`,qn=D(null);function Jn(){return k(qn)}const Yn=R.div`
|
|
322
322
|
display: flex;
|
|
323
323
|
flex-direction: column;
|
|
324
324
|
position: relative;
|
|
@@ -370,7 +370,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
370
370
|
&[data-state="unmounted"] {
|
|
371
371
|
transform: translateX(100%);
|
|
372
372
|
}
|
|
373
|
-
`,
|
|
373
|
+
`,Xn=R.div`
|
|
374
374
|
background: #fff;
|
|
375
375
|
display: flex;
|
|
376
376
|
height: 2.8em;
|
|
@@ -404,15 +404,15 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
404
404
|
svg {
|
|
405
405
|
font-size: 1.2em;
|
|
406
406
|
}
|
|
407
|
-
`,
|
|
407
|
+
`,Zn=R.div`
|
|
408
408
|
flex: 1 1 0px;
|
|
409
|
-
`,
|
|
409
|
+
`,Qn=R.div`
|
|
410
410
|
font-size: 0.875em;
|
|
411
411
|
flex: 1 1 0px;
|
|
412
412
|
padding-left: 1em;
|
|
413
413
|
text-align: center;
|
|
414
414
|
align-self: center;
|
|
415
|
-
|
|
415
|
+
`,$n=R.div`
|
|
416
416
|
flex: 1 1 0px;
|
|
417
417
|
display: flex;
|
|
418
418
|
|
|
@@ -423,7 +423,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
423
423
|
> * {
|
|
424
424
|
min-width: 0;
|
|
425
425
|
}
|
|
426
|
-
`;function Wn({panel:e,state:t,actions:n,isLeft:r,pinActions:i=n,transition:a,close:o,available:s=[],style:c,noHeader:l}){let u=k(xe)||null,[d,f]=P(!1),p=dt(),m=Tn(),{tabs:h,pinnable:g,hideHeader:_}=e?.options||{},v=[p.state.canvasId,e?.id],y=j(()=>(s||[]).filter(e=>!e.requiresState),[s]),{itemProps:b,isOpen:ee,setIsOpen:x}=me(y.length),[te,S]=P(``),C=N();A(()=>f(!1),v),A(()=>S(``),[e]),A(()=>(C.current=S,()=>{C.current=void 0}),[]);let w=O(e=>{C.current&&C.current(e)},[]),T=O(r=>{let i=e?t.stack.length?n.popStack:e.backAction?()=>e&&e.backAction&&e.backAction(t,{...m,current:n},p):null:null;r&&(!i||r.metaKey)&&y.length?(r.preventDefault(),x(!0)):i&&i()},[n,p,m,e,x,t,y.length]),E=r=>{n.change({id:r.id,state:r.defaultState,stacked:!!(t.stack.length||e?.backAction)})};if(!e||!t.current)return null;let ne=e.backAction||t.stack.length?I(q,{onClick:T,children:I(Dn,{})}):null,re=I(q,{onClick:o||n.close,children:I(xt,{})});return I(Ln.Provider,{value:w,children:L(zn,{"data-state":a,"data-flipped":r,style:c,"data-header":!l,children:[l?null:L(Bn,{"data-tabs":!!h,"data-error":d,children:[L(Mn,{style:{display:`flex`,height:`100%`},children:[e.renderBackAction?e.renderBackAction({backAction:T,fallback:ne}):ne,y.length?L(Pn,{$open:ee,style:{left:`0.5em`},children:[I(Fn,{children:`All panels`}),I(In,{}),y.map((t,n)=>I(Nn,{...b[n],onClick:()=>E(t),$active:e.id===t.id,children:t.label},n))]}):null]}),te?I(Hn,{children:te}):_?I(Vn,{}):I(Hn,{children:e.label}),g?t.pinned?I(q,{onClick:i.unpin,children:I(En,{fill:`orange`})}):I(q,{onClick:()=>i.pin({id:e.id,state:t.state}),children:I(En,{fill:`#ddd`})}):null,e.renderCloseAction?e.renderCloseAction({closeAction:o||n.close,fallback:re}):re]}),I(Un,{className:`OverrideScrollbar`,children:I(Re,{onError:()=>f(!0),FallbackComponent:On,resetKeys:v,onReset:()=>f(!1),children:jn(e.render(t.state||e.defaultState||{},{...m,current:n,vault:u,transition:a},p))})})]})})}async function Gn(e){let t;try{await fetch(e).then(e=>e.json().catch(e=>{console.error(`'${e}' happened!`)})).then(e=>{t={...e}})}catch(e){console.log(e)}return t}function Kn(e,t,n){return`create_${e}_${t}_${V(n)?.type||`unknown`}`}function qn(e,t,n=`text/json`){let r=e instanceof Blob?e:new Blob([e],{type:n}),i=document.createElement(`a`);i.download=t,i.href=window.URL.createObjectURL(r);let a=new MouseEvent(`click`,{view:window,bubbles:!0,cancelable:!0});i.dispatchEvent(a),i.remove()}async function Jn(e){return navigator.clipboard.writeText(typeof e==`string`?e:JSON.stringify(e,null,2))}function Yn(){return`${Math.random().toString(36).substr(2)}-${Date.now().toString(36)}`}function Xn(e,t){let{default:n,config:r,...i}=e,a={metadata:n,layout:{leftPanels:[],rightPanels:[],centerPanels:[],...i},config:r};return t?t(a):a}function Zn(e,t,n){return{...e,metadata:t,config:{...e.config||{},...n.config||{}},layout:{...e.layout,leftPanels:[...(e.layout.leftPanels||[]).filter(e=>n?.leftPanelIds?n.leftPanelIds.includes(e.id):!0),...n?.leftPanels||[]],annotations:[...n?.annotations||[],...e.layout.annotations||[]],canvasEditors:[...n?.canvasEditors||[],...e.layout.canvasEditors||[]],creators:[...n?.creators||[],...e.layout.creators||[]],background:[...e.layout?.background||[],...n?.background||[]],editors:[...n?.editors||[],...e.layout.editors||[]],rightPanels:[...e.layout.rightPanels||[],...n?.rightPanels||[]],centerPanels:[...e.layout.centerPanels||[],...n?.centerPanels||[]],modals:[...e.layout.modals||[],...n?.modalPanels||[]]}}}const Qn=ze(e=>({regions:{},resources:[],setRegion:(t,n)=>{e(e=>({...e.regions,regions:{[t]:n||null}}))},setHighlight:t=>{e({resources:Array.isArray(t)?t:[t]})},highlight:t=>{e(e=>e.resources.indexOf(t)===-1?{resources:[...e.resources,t]}:e)},clearHighlight:t=>{e(e=>({resources:e.resources.filter(e=>e!==t)}))}}));function $n(e){let t=j(()=>Yn(),[]),n=Qn(e=>e.regions[t]),r=Qn(e=>e.setRegion);A(()=>{n&&e?n!==e&&(n.x!==e.x||n.y!==e.y||n.width!==e.width||n.height!==e.height)&&r(t,e||null):r(t,e||null)},[n]),A(()=>()=>r(t,null),[])}function er(e){let t=Qn(e=>e.highlight),n=Qn(e=>e.clearHighlight);return A(()=>()=>{e&&n(e)},[n,e]),j(()=>({onMouseEnter(){e&&t(e)},onMouseLeave(){e&&n(e)}}),[e,t,n])}function tr(e=`vault://homepage-collection.json`){let t=new Pe,n=window.localStorage.getItem(`preview-vault-collection`),r=!1;if(n)try{let i=JSON.parse(n);if(i.id&&i.id===e){t.dispatch(Ge({id:i.id}));let e=Ke(i.id,i);t.dispatch(He({actions:e})),r=!0}}catch{}if(!r){let n=Ke(e,{"@context":`http://iiif.io/api/presentation/3/context.json`,id:e,type:`Collection`,label:{en:[`Recent items`]},items:[]});t.dispatch(Ge({id:e})),t.dispatch(He({actions:n}))}return t.on(`after:@iiif/REMOVE_REFERENCE`,n=>{n.action.payload.id===e&&window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}),{vault:t,unsubscribe:()=>{},addHistory:(n,r)=>{let i=t.getState();if(n&&r&&(r===`Collection`||r===`Manifest`)){let a=i.iiif.entities.Collection[e];if(a){let i=a.items.findIndex(e=>e.id===n);i===-1?t.dispatch(Ve({id:e,type:`Collection`,reference:{id:n,type:r},key:`items`,index:0})):t.dispatch(We({id:e,type:`Collection`,key:`items`,startIndex:i,endIndex:0})),window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}}},clearHistory:()=>{t.dispatch(Ue({id:e,type:`Collection`,key:`items`,value:[]})),window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}}}function nr(){return k(rr)}const rr=D(new Pe),ir=D({addHistory:(e,t)=>{},clearHistory:()=>{}}),ar=`manifest-editor://homepage-collection.json`;function or(){return k(ir)}function sr(e){let{vault:t,unsubscribe:n,addHistory:r,clearHistory:i}=j(()=>tr(ar),[]);return A(()=>n,[]),I(ir.Provider,{value:{addHistory:r,clearHistory:i},children:I(rr.Provider,{value:t,children:e.children})})}function cr({children:e}){return I(Ce,{vault:nr(),children:e})}function lr(e,t,n,r,i){let a=B(),o=W(),{create:s,edit:c}=Cn(),l=j(()=>Le({type:n,parent:e,index:0,property:t},o.layout.creators||[],{vault:a}),[e,t,o.layout.creators,n,a]),u=e&&l.length!==0,d=O((a,o)=>{e&&s({type:n,parent:V(e),property:t,index:a,target:r,initialData:o,...i||{}})},[s,e,t,n,i,r]),f=O((a,o,c)=>{e&&s({type:n,filter:a,parent:V(e),property:t,index:o,target:r,initialData:c,...i||{}})},[s,e,t,n,i,r]);return[u,{create:d,edit:O((n,r)=>{c(n,e?{parent:V(e),property:t,index:r}:void 0)},[c,e,t]),createFiltered:f,creator:O((a,o)=>{e&&s({type:n,initialCreator:a,parent:V(e),property:t,target:r,initialData:o,...i||{}})},[n,t,e,r,s,i]),buttonProps:j(()=>({"data-action-id":Kn(n,t,e)}),[n,t,e])}]}function ur(){let e=B(),t=nr(),n=W();return j(()=>new Ie(e,n.layout.creators||[],t),[n.layout.creators,e])}const dr=ue(function(t){let n=B(),{edit:r,modal:o}=Cn(),[s,c]=P(!1),[l,u]=P(null),d=ur(),f=N(!1),p=t.resource.initialData?.selector;$n(p);let m={targetType:t.resource.type,parent:t.resource.parent?{property:t.resource.property,atIndex:t.resource.index,resource:t.resource.parent}:void 0,target:t.resource.target,initialData:t.resource.initialData},h=e=>{try{if(s||f.current)return;c(!0),f.current=!0,d.create(t.creator.id,e,m).catch(e=>(u(e?.message||`Unknown error`),null)).then(async e=>{if(t.onCreate?.(),t.skipEditingOnCreate||!e)return;let n=Array.isArray(e)?e[0]:e;c(!1),o.popStack(),o.close(),n&&r(n,{parent:V(t.resource.parent),property:t.resource.property,index:t.resource.index})})}catch(e){u(e?.message||`Unknown error`)}},g=async()=>!0;if(A(()=>{t.resource.initialData?.showEmptyForm||!t.creator.render&&!s&&h({})},[t.creator]),l)return I(`div`,{className:`flex flex-col items-center p-4`,children:I(a,{children:l})});let _=I(`div`,{className:`flex flex-col items-center py-8`,children:L(`div`,{className:`flex gap-2 items-center`,children:[I(ee,{}),` `,I(`span`,{children:`Loading`})]})});return s?_:t.creator.render?I(F,{children:I(oe,{fallback:_,children:t.creator.render({vault:n,runCreate:h,validate:g,options:m})})}):L(F,{children:[I(i,{children:`No options available`}),I(e,{primary:!0,onPress:()=>h({}),children:t.creator.actionButton||`Create`})]})});function fr(e){let n=W(),r=B(),[i,a]=P(e.resource.initialCreator||``),o=Rn(),l=j(()=>Le(e.resource,n.layout.creators||[],{vault:r}),[e.resource,n.layout.creators,r]);l.length===1&&!i&&a(l[0].id);let u=l.find(e=>e.id===i);if(A(()=>{u&&o?.(u.label)}),l.length===0)return I(`div`,{children:`Not currently supported`});let d=I(f,{children:I(c,{root:document.getElementById(`headlessui-portal-root`)||void 0,label:`Back to Add content options`,className:`group`,placement:`right`,onPress:()=>a(``),children:I(s,{className:`text-2xl opacity-50 group-hover:opacity-70`})})});return u?u.hiddenModal?L(F,{children:[d,I(dr,{creator:u,resource:e.resource})]}):L(`div`,{children:[d,I(`div`,{className:`p-2 py-6`,children:I(dr,{creator:u,resource:e.resource})})]}):I(t,{label:`Select a type`,items:l.map(e=>({id:e.id,title:e.label,description:e.summary||``,icon:e.icon,onClick:()=>a(e.id)}))})}const pr={id:`@manifest-editor/creator`,label:`Add content`,options:{hideHeader:!0,tabs:!1},render(e){return I(fr,{resource:e})}};function mr(e,t){switch(t.type){case`setStack`:return{...e,stack:t.payload.resources,current:t.payload.resources[0]||null};case`edit`:{let n=t.payload.reset;return(t.payload.resource?.resource.source?.type===`Manifest`||t.payload.resource?.resource.source?.type===`Canvas`)&&(n=!0),e.current?.resource.source.id===t.payload.resource?.resource.source.id?{...e,current:t.payload.resource}:{...e,current:t.payload.resource,stack:n?[]:e.current?[e.current,...e.stack]:e.stack}}case`syncRemoval`:{let n=V(t.payload.resource.resource);if(!n||!e.stack.find(e=>V(e.resource)?.id===n.id))return e;let r=e.current?.resource.id===n.id?null:e.current,i=hr(e.stack.filter(e=>V(e.resource)?.id!==n.id),r);return{...e,stack:i,current:r}}case`updateCurrent`:return{...e,current:t.payload.resource};case`back`:{let t=e.stack[0];return{...e,stack:e.stack.slice(1),current:t||null}}case`close`:return{...e,stack:[],current:null};case`create`:return t.payload.resource===null?{...e,create:null}:{...e,create:t.payload}}return e}function hr(e,t){let n=[],r=null;for(let t of e)r?.resource.id!==t.resource.id&&(n.push(t),r=t);return r&&r.resource.id===t?.resource.id?n.slice(0,n.length-1):n}const gr={stack:[],current:null,create:null},J=D(gr),_r=D({edit(){},close(){},back(){},setStack(){},updateCurrent(){},create(){return()=>{}}});function vr(){return k(_r)}function yr(){return k(J).current}function br(){return k(J).stack}function xr(){return k(J).create}function Sr(){let{manifest:e}=Oe(),t=B(),[n,r]=M(e=>e+1,0);U(e,`Manifest not found`);let i=j(()=>new qe({reference:{id:e,type:`Manifest`},vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function Cr(){let{collection:e}=Oe(),t=B(),[n,r]=M(e=>e+1,0);U(e,`Collection not found`);let i=j(()=>new qe({reference:{id:e,type:`Collection`},vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function wr(e,t={}){let n=B(),[r,i]=M(e=>e+1,0);!t.allowNull&&U(e,`Resource not found`);let a=j(()=>t.allowNull&&!e?null:new qe({reference:V(e),vault:n,context:{resource:e,parent:t.parent,index:t.index,parentProperty:t.parentProperty}}),[e,n]);return A(()=>a?.observe.start(i),[a]),a&&(a.observe.key=`${r}`,a.observe.reset()),a}function Tr(){let{annotationPage:e}=Oe();return U(e,`Annotation page not found`),wr({id:e,type:`AnnotationPage`})}function Er(){let e=yr(),t=B(),[n,r]=M(e=>e+1,0);U(e,`No resource selected`);let i=j(()=>new qe({reference:e.resource.source||e.resource,vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function Dr(e){let t=B(),[n,r]=M(mr,e),i=O(e=>{r(e)},[]);A(()=>t.on(`@iiif/REMOVE_REFERENCE`,e=>{let t=e.action,n={id:t.payload.id,type:t.payload.type},i=t.payload.reference;r({type:`syncRemoval`,payload:{resource:{parent:n,resource:i}}})}),[t]);let a=O((e,t=!1)=>i({type:`edit`,payload:{resource:e,reset:t}}),[]),o=O(e=>i({type:`setStack`,payload:{resources:e}}),[]),s=O(e=>i({type:`updateCurrent`,payload:{resource:e}}),[]),c=O(()=>i({type:`close`}),[]),l=O(()=>i({type:`back`}),[]),u=O((e,t)=>(i({type:`create`,payload:{resource:e,options:t}}),()=>{i({type:`create`,payload:{resource:null}})}),[]);return[n,j(()=>({edit:a,updateCurrent:s,close:c,back:l,create:u,setStack:o}),[])]}function Or(e){let{instanceId:t}=ut(),[n,r]=Dr(e.initialState||gr);return I(_r.Provider,{value:r,children:I(J.Provider,{value:n,children:e.children})},t)}function kr({resource:e,children:t}){let{instanceId:n}=ut(),[r,i]=Dr(j(()=>({create:null,stack:[],current:{resource:{type:`SpecificResource`,source:{id:e.id,type:e.type}}}}),[]));return I(_r.Provider,{value:i,children:I(J.Provider,{value:r,children:t})},n)}function Ar({fallback:e,backAction:t}){let n=br(),{back:r}=vr();return n.length?I(q,{onClick:r,children:I(Dn,{})}):e}function jr({closeAction:e,fallback:t}){let n=br();return yr()||n.length?I(q,{onClick:()=>{e()},children:I(xt,{})}):t}function Mr(e,t,n,r){let i=t.filter(t=>t.resourceType===e.resource.source.type);if(i.length===0)return null;for(let t of i){let i=[],a={},o=(t.editors||[]).filter(t=>{if(r.hideTabs&&r.hideTabs.includes(t.id)||r.onlyTabs&&!r.onlyTabs.includes(t.id))return!1;if(t.supports.sortKey){if(i.includes(t.supports.sortKey))return!1;t.supports.sortFallback&&(a[t.supports.sortKey]=t)}return n.edit&&!t.supports.edit||t.supports.custom&&t.supports.custom(e,n.vault)===!1?!1:(t.supports.sortKey&&i.push(t.supports.sortKey),!0)}),s=Object.keys(a);for(let e of s)!i.includes(e)&&a[e]&&!o.includes(a[e])&&o.push(a[e]);if(o.length)return{...t,editors:o}}return null}function Nr({currentTab:e=void 0}){let t=yr(),n=k(Se),r=W(),i=Et(),a=B(),{change:o}=Cn(),s=Rn(),{editorConfig:c}=it(),l=t?.resource.source?.id,u=t?.resource.source?.type,d=l!==i.id;l&&d&&i.type===`Collection`&&u===`Collection`&&(u=`EmbeddedCollection`);let f=(u?c[u]:c.All)||{},p=j(()=>{let e={...n},r=t?.resource.source.id,i=t?.resource.source.type,a={Collection:`collection`,Manifest:`manifest`,Range:`range`,Canvas:`canvas`,Annotation:`annotation`,AnnotationPage:`annotationPage`};return i&&a[i]&&(e[a[i]]=r),e},[t,n]);function m(e){return t?I(Se.Provider,{value:p,children:e}):e}let h=j(()=>{if(!t)return null;let e=r.layout.editors||[];return Mr(t,(r.layout.resources||[]).map(t=>typeof t==`string`?{id:`@default/`+t,label:t,resourceType:t,auto:!0,editors:e.filter(e=>e.supports.resourceTypes.includes(t))}:t),{edit:!0,vault:a},f)},[t,r]);if(A(()=>{s(h?.label||``)},[h]),A(()=>{let t=h?.editors.map(e=>e.id)||[];t.find(t=>t===e)||o(`@manifest-editor/editor`,{currentTab:t[0]})},[h?.editors,e,o]),!t||!h)return null;if(f.singleTab){let e=(h?.editors||[]).find(e=>e.id===f.singleTab);if(e)return m(I(`div`,{className:`w-full`,children:e.component(f)},t.resource.source?.id))}return m(I(b,{isNested:d,rootResource:i,menuId:t.resource.source.id,menu:(h?.editors||[]).map((e,t)=>({id:e.id,label:e.label,renderComponent:()=>e.component(f)})),selectedKey:e,onSelectionChange:e=>{o(`@manifest-editor/editor`,{currentTab:e})}},t.resource.source?.id))}const Pr={id:`@manifest-editor/editor`,label:`Editor`,options:{hideHeader:!0,tabs:!0,minWidth:400},renderBackAction:({backAction:e,fallback:t})=>I(Ar,{backAction:e,fallback:t}),renderCloseAction:({closeAction:e,fallback:t})=>I(jr,{closeAction:e,fallback:t}),render({currentTab:e}){return I(Nr,{currentTab:e})}},Fr={color:{main:`#B84C74`,mainHover:`#4a89ff`,logoPink:`#E94581`,white:`white`,grey:`grey`,black:`black`,lightgrey:`#F8F9FA`,mediumgrey:`#dddddd`,danger:`#a90e21`,warning:`#e38627`,lightdanger:`#ffeaea`,lightsuccess:`#c5e8c5`,success:`#6ccd55`,greyOverlay:`rgba(0, 0, 0, 0.2)`,highlight:`#faeed7`},iiifColor:{manifest:`rgba(0, 0, 0, 0.2)`,canvas:`rgba(255, 222, 219, 0.8)`,service:`rgba(13, 110, 253, 0.8)`,annotation:`rgba(247, 226, 173, 0.8)`,contentResource:`rgba(207, 247, 255, 0.8)`,ranges:`rgba(144, 213, 157, 0.8)`},padding:{xs:`0.25rem`,small:`0.5rem`,medium:`1rem`,large:`2rem`},device:{mobile:`375px`,tablet:`768px`,laptop:`992px`,desktop:`1200px`},shadows:{standard:`rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 5px 15px 0px`,bottom:`rgba(0, 0, 0, 0.1) 0px 4px 2px -2px`}};function Ir(e){let{}=e,t=B(),n=W(),r=j(()=>Le(e.resource,n.layout.creators||[],{vault:t}),[e.resource,n.layout.creators,t]);return r.length===0?I(`div`,{children:`No supported creators found`}):I(`div`,{children:L(C,{className:`w-full flex-1 overflow-hidden flex flex-col`,children:[I(te,{className:`flex-1 overflow-hidden w-full flex text-sm whitespace-nowrap`,items:r,children:e=>I(x,{id:e.id,children:e.label})}),r.map(t=>I(S,{id:t.id,className:`p-2`,children:I(pe,{theme:Fr,children:I(dr,{creator:t,resource:e.resource,onCreate:e.onCreate,skipEditingOnCreate:!0})})},t.id))]})})}function Lr(e){let[t,n]=P(!1),r=N(),i=N(0);function a(t){i.current--,!(t&&i.current!==0)&&(r.current&&(clearTimeout(r.current),r.current=0),r.current=setTimeout(()=>{n(!1)},e))}function o(){i.current++,r.current&&clearTimeout(r.current),n(!0)}return j(()=>[t,{set:o,clear:a}],[t])}function Rr(){let t=Ht(),n=Et(),r=it(),i=at(),[a,s]=Lr(2e3);function c(e){e.preventDefault();let t=new FormData(e.target);i({defaultPreview:t.get(`defaultPreview`),i18n:{...r.i18n||{},advancedLanguageMode:t.get(`advancedLanguageMode`)===`on`,availableLanguages:(t.get(`availableLanguages`)||``).split(`,`).map(e=>e.trim()),defaultLanguage:t.get(`defaultLanguage`)},export:{...r.export||{},version:t.get(`isVersion2`)===`on`?2:3,baseIdentifier:t.get(`base`)||null},editorFeatureFlags:{...r.editorFeatureFlags||{},rememberCanvasId:t.get(`rememberCanvasId`)===`on`,rememberLeftPanelId:t.get(`rememberLeftPanelId`)===`on`,annotationPopups:t.get(`annotationPopups`)===`on`,manifestGridOptions:t.get(`manifestGridOptions`)===`on`,enableMultiImageCanvases:t.get(`enableMultiImageCanvases`)===`on`,enableMultiMediaCanvases:t.get(`enableMultiMediaCanvases`)===`on`}}),s.set(),s.clear()}return L(_,{children:[I(y,{title:`Workspace configuration`}),a?I(`div`,{className:`bg-me-primary-500 text-white p-3 text-sm`,children:`Changes saved`}):null,I(v,{className:`p-4`,children:L(o.Form,{onSubmit:c,className:`flex flex-col gap-3`,children:[L(o.InputContainer,{children:[I(o.Label,{htmlFor:`defaultLanguage`,children:`Default Language`}),I(o.Input,{type:`text`,name:`defaultLanguage`,id:`defaultLanguage`,defaultValue:r.i18n?.defaultLanguage||``})]}),L(o.InputContainer,{children:[I(o.Label,{htmlFor:`availableLanguages`,children:`Available Languages`}),I(o.Input,{type:`text`,name:`availableLanguages`,id:`availableLanguages`,defaultValue:(r.i18n?.availableLanguages||[]).join(`, `)})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`advancedLanguageMode`,id:`advancedLanguageMode`,defaultChecked:r.i18n?.advancedLanguageMode||!1}),I(o.Label,{htmlFor:`advancedLanguageMode`,children:`Advanced Language Mode`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`textGranularityEnabled`,id:`textGranularityEnabled`,defaultChecked:r.i18n?.textGranularityEnabled||!1}),I(o.Label,{htmlFor:`textGranularityEnabled`,children:`Enable text granularity`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`rememberCanvasId`,id:`rememberCanvasId`,defaultChecked:r.editorFeatureFlags?.rememberCanvasId||!1}),I(o.Label,{htmlFor:`rememberCanvasId`,children:`Remember Canvas ID`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`rememberLeftPanelId`,id:`rememberLeftPanelId`,defaultChecked:r.editorFeatureFlags?.rememberLeftPanelId||!1}),I(o.Label,{htmlFor:`rememberLeftPanelId`,children:`Remember Left panel`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`manifestGridOptions`,id:`manifestGridOptions`,defaultChecked:r.editorFeatureFlags?.manifestGridOptions||!1}),I(o.Label,{htmlFor:`manifestGridOptions`,children:`Manifest Grid Options`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`isVersion2`,id:`isVersion2`,defaultChecked:r.export?.version===2}),L(o.Label,{htmlFor:`isVersion2`,children:[`Export Presentation 2 `,n.type,`s`]})]}),L(o.InputContainer,{children:[I(o.Label,{htmlFor:`defaultPreview`,children:`Default preview`}),I(`div`,{children:t.configs.map((e,t)=>e.type===`iiif-preview-service`?null:L(o.InputContainer,{horizontal:!0,children:[I(o.Input,{type:`radio`,id:e.id,name:`defaultPreview`,value:e.id,defaultChecked:r.defaultPreview?r.defaultPreview===e.id:t===0}),I(`label`,{htmlFor:e.id,children:e.label})]},e.id))})]}),n.type===`Manifest`?I(`a`,{className:`text-sm text-me-primary-500 hover:underline hover:text-me-primary-600`,href:window.location.pathname.includes(`/exhibition`)?window.location.pathname.replace(`/exhibition`,``)||`/`:`${window.location.pathname}/exhibition`,children:window.location.pathname.includes(`/exhibition`)?`Return to Manifest Editor`:`Go to Exhibition Editor`}):null,I(`div`,{className:`mt-5`,children:I(e,{type:`submit`,children:`Save changes`})})]})})]})}function zr(){return Be((e,t)=>({specificMenus:{},resourceMenus:{},hookMenuItem(t){let n=Yn(),r=t.resource?.id||``,i=t.resource?.type;return i?r?(e(e=>({specificMenus:{...e.specificMenus,[r]:{...e.specificMenus[r]||{},menus:{...e.specificMenus[r]?.menus||{},[n]:{sectionTitle:t.sectionTitle,items:t.items}}}}})),()=>{e(e=>({specificMenus:{...e.specificMenus,[r]:{...e.specificMenus[r]||{},menus:{...e.specificMenus[r]?.menus||{},[n]:void 0}}}}))}):(e(e=>({resourceMenus:{...e.resourceMenus,[i]:{...e.resourceMenus[i]||{},menus:{...e.resourceMenus[i]?.menus||{},[n]:{sectionTitle:t.sectionTitle,items:t.items}}}}})),()=>{e(e=>({resourceMenus:{...e.resourceMenus,[i]:{...e.resourceMenus[i]||{},menus:{...e.resourceMenus[i]?.menus||{},[n]:void 0}}}}))}):()=>{}}}))}const Br=D(null);function Vr({children:e}){let t=j(()=>zr(),[]);return I(Br.Provider,{value:t,children:e})}function Hr(){let e=k(Br);if(!e)throw Error(`useContextMenuStore must be used within a ContextMenuProvider`);return e}function Ur(e){let t=Hr(),n=H(t,e=>e.resourceMenus),r=H(t,e=>e.specificMenus);return j(()=>{let t=r[e.id||``]?.menus||{},i=n[e.type]?.menus||{},a=Object.values(t).flat(),o=[...Object.values(i).flat(),...a].filter(e=>e!==void 0),s=[],c=[];for(let e of o){let t=[];for(let n of e.items||[])n.id&&s.includes(n.id)||(s.push(n.id),t.push(n));t.length&&c.push({...e,items:t})}return Wr(c)},[r,n,e.id,e.type])}function Wr(e){let t={},n=[];e.forEach(e=>{if(!e)return;let r=e.sectionTitle;if(!r){n.push(...e.items||[]);return}t[r]||(t[r]=[]),t[r].push(...e.items)});let r=Object.entries(t).map(([e,t])=>({sectionTitle:e,items:t}));return n.length&&r.push({items:n}),r}function Gr(e,t=[]){let n=H(Hr(),e=>e.hookMenuItem);A(()=>n(e),[n,e.resource?.id,e.resource?.type,...t])}var Kr={};function qr(e){return L(`div`,{className:Kr.CenterPanelContainer,children:[e.title||e.close?L(`div`,{className:Kr.CenterPanelHeader,children:[e.title?I(`h2`,{className:Kr.CenterPanelTitle,children:e.title}):null,e.close?I(K,{className:Kr.CenterPanelClose,onClick:e.close,children:I(xt,{})}):null]}):null,e.children]})}const Jr=R.div`
|
|
426
|
+
`;function er({panel:e,state:t,actions:n,isLeft:r,pinActions:i=n,transition:a,close:o,available:s=[],style:c,noHeader:l}){let u=k(xe)||null,[d,f]=P(!1),p=dt(),m=Ln(),{tabs:h,pinnable:g,hideHeader:_}=e?.options||{},v=[p.state.canvasId,e?.id],y=j(()=>(s||[]).filter(e=>!e.requiresState),[s]),{itemProps:b,isOpen:ee,setIsOpen:x}=me(y.length),[te,S]=P(``),C=N();A(()=>f(!1),v),A(()=>S(``),[e]),A(()=>(C.current=S,()=>{C.current=void 0}),[]);let w=O(e=>{C.current&&C.current(e)},[]),T=O(r=>{let i=e?t.stack.length?n.popStack:e.backAction?()=>e&&e.backAction&&e.backAction(t,{...m,current:n},p):null:null;r&&(!i||r.metaKey)&&y.length?(r.preventDefault(),x(!0)):i&&i()},[n,p,m,e,x,t,y.length]),E=r=>{n.change({id:r.id,state:r.defaultState,stacked:!!(t.stack.length||e?.backAction)})};if(!e||!t.current)return null;let ne=e.backAction||t.stack.length?I(q,{onClick:T,children:I(jn,{})}):null,re=I(q,{onClick:o||n.close,children:I(xt,{})});return I(qn.Provider,{value:w,children:L(Yn,{"data-state":a,"data-flipped":r,style:c,"data-header":!l,children:[l?null:L(Xn,{"data-tabs":!!h,"data-error":d,children:[L(Hn,{style:{display:`flex`,height:`100%`},children:[e.renderBackAction?e.renderBackAction({backAction:T,fallback:ne}):ne,y.length?L(Wn,{$open:ee,style:{left:`0.5em`},children:[I(Gn,{children:`All panels`}),I(Kn,{}),y.map((t,n)=>I(Un,{...b[n],onClick:()=>E(t),$active:e.id===t.id,children:t.label},n))]}):null]}),te?I(Qn,{children:te}):_?I(Zn,{}):I(Qn,{children:e.label}),g?t.pinned?I(q,{onClick:i.unpin,children:I(An,{fill:`orange`})}):I(q,{onClick:()=>i.pin({id:e.id,state:t.state}),children:I(An,{fill:`#ddd`})}):null,e.renderCloseAction?e.renderCloseAction({closeAction:o||n.close,fallback:re}):re]}),I($n,{className:`OverrideScrollbar`,children:I(Be,{onError:()=>f(!0),FallbackComponent:Rn,resetKeys:v,onReset:()=>f(!1),children:Vn(e.render(t.state||e.defaultState||{},{...m,current:n,vault:u,transition:a},p))})})]})})}function tr(e=`vault://homepage-collection.json`){let t=new Pe,n=window.localStorage.getItem(`preview-vault-collection`),r=!1;if(n)try{let i=JSON.parse(n);if(i.id&&i.id===e){t.dispatch(Ge({id:i.id}));let e=Ke(i.id,i);t.dispatch(He({actions:e})),r=!0}}catch{}if(!r){let n=Ke(e,{"@context":`http://iiif.io/api/presentation/3/context.json`,id:e,type:`Collection`,label:{en:[`Recent items`]},items:[]});t.dispatch(Ge({id:e})),t.dispatch(He({actions:n}))}return t.on(`after:@iiif/REMOVE_REFERENCE`,n=>{n.action.payload.id===e&&window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}),{vault:t,unsubscribe:()=>{},addHistory:(n,r)=>{let i=t.getState();if(n&&r&&(r===`Collection`||r===`Manifest`)){let a=i.iiif.entities.Collection[e];if(a){let i=a.items.findIndex(e=>e.id===n);i===-1?t.dispatch(Ve({id:e,type:`Collection`,reference:{id:n,type:r},key:`items`,index:0})):t.dispatch(We({id:e,type:`Collection`,key:`items`,startIndex:i,endIndex:0})),window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}}},clearHistory:()=>{t.dispatch(Ue({id:e,type:`Collection`,key:`items`,value:[]})),window.localStorage.setItem(`preview-vault-collection`,JSON.stringify(t.toPresentation3({id:e,type:`Collection`})))}}}function nr(){return k(rr)}const rr=D(new Pe),ir=D({addHistory:(e,t)=>{},clearHistory:()=>{}}),ar=`manifest-editor://homepage-collection.json`;function or(){return k(ir)}function sr(e){let{vault:t,unsubscribe:n,addHistory:r,clearHistory:i}=j(()=>tr(ar),[]);return A(()=>n,[]),I(ir.Provider,{value:{addHistory:r,clearHistory:i},children:I(rr.Provider,{value:t,children:e.children})})}function cr({children:e}){return I(Ce,{vault:nr(),children:e})}function lr(e,t,n,r,i){let a=B(),o=W(),{create:s,edit:c}=Fn(),l=j(()=>Le({type:n,parent:e,index:0,property:t},o.layout.creators||[],{vault:a}),[e,t,o.layout.creators,n,a]),u=e&&l.length!==0,d=O((a,o)=>{if(e)return s({type:n,parent:V(e),property:t,index:a,target:r,initialData:o,...i||{}})},[s,e,t,n,i,r]),f=O((a,o,c)=>{if(e)return s({type:n,filter:a,parent:V(e),property:t,index:o,target:r,initialData:c,...i||{}})},[s,e,t,n,i,r]);return[u,{create:d,edit:O((n,r)=>{c(n,e?{parent:V(e),property:t,index:r}:void 0)},[c,e,t]),createFiltered:f,creator:O((a,o)=>{if(e)return s({type:n,initialCreator:a,parent:V(e),property:t,target:r,initialData:o,...i||{}})},[n,t,e,r,s,i]),buttonProps:j(()=>({"data-action-id":xn(n,t,e)}),[n,t,e])}]}function ur(){let e=B(),t=nr(),n=W();return j(()=>new Ie(e,n.layout.creators||[],t),[n.layout.creators,e])}const dr=ue(function(t){let n=B(),{edit:r,modal:o}=Fn(),[s,c]=P(!1),[l,u]=P(null),d=ur(),f=N(!1),p=t.resource.initialData?.selector;On(p);let m={targetType:t.resource.type,parent:t.resource.parent?{property:t.resource.property,atIndex:t.resource.index,resource:t.resource.parent}:void 0,target:t.resource.target,initialData:t.resource.initialData},h=e=>{try{if(s||f.current)return;c(!0),f.current=!0,d.create(t.creator.id,e,m).catch(e=>(u(e?.message||`Unknown error`),null)).then(async e=>{if(t.onCreate?.(),t.skipEditingOnCreate||!e)return;let n=Array.isArray(e)?e[0]:e;c(!1),o.popStack(),o.close(),n&&r(n,{parent:V(t.resource.parent),property:t.resource.property,index:t.resource.index})})}catch(e){u(e?.message||`Unknown error`)}},g=async()=>!0;if(A(()=>{t.resource.initialData?.showEmptyForm||!t.creator.render&&!s&&h({})},[t.creator]),l)return I(`div`,{className:`flex flex-col items-center p-4`,children:I(a,{children:l})});let _=I(`div`,{className:`flex flex-col items-center py-8`,children:L(`div`,{className:`flex gap-2 items-center`,children:[I(ee,{}),` `,I(`span`,{children:`Loading`})]})});return s?_:t.creator.render?I(F,{children:I(oe,{fallback:_,children:t.creator.render({vault:n,runCreate:h,validate:g,options:m})})}):L(F,{children:[I(i,{children:`No options available`}),I(e,{primary:!0,onPress:()=>h({}),children:t.creator.actionButton||`Create`})]})});function fr(e){let n=W(),r=B(),[a,o]=P(e.resource.initialCreator||``),l=Jn(),u=j(()=>Le(e.resource,n.layout.creators||[],{vault:r}),[e.resource,n.layout.creators,r]);u.length===1&&!a&&o(u[0].id);let d=u.find(e=>e.id===a);if(A(()=>{d&&l?.(d.label)}),u.length===0)return I(i,{children:`Not currently supported`});let p=I(f,{children:I(c,{root:document.getElementById(`headlessui-portal-root`)||void 0,label:`Back to Add content options`,className:`group`,placement:`right`,onPress:()=>o(``),children:I(s,{className:`text-2xl opacity-50 group-hover:opacity-70`})})});return d?d.hiddenModal?L(F,{children:[p,I(dr,{creator:d,resource:e.resource})]}):L(`div`,{children:[p,I(`div`,{className:`p-2 py-6`,children:I(dr,{creator:d,resource:e.resource})})]}):I(t,{label:`Select a type`,items:u.map(e=>({id:e.id,title:e.label,description:e.summary||``,icon:e.icon,onClick:()=>o(e.id)}))})}const pr={id:`@manifest-editor/creator`,label:`Add content`,options:{hideHeader:!0,tabs:!1},render(e){return I(fr,{resource:e})}};function mr(e,t){switch(t.type){case`setStack`:return{...e,stack:t.payload.resources,current:t.payload.resources[0]||null};case`edit`:{let n=t.payload.reset;return(t.payload.resource?.resource.source?.type===`Manifest`||t.payload.resource?.resource.source?.type===`Canvas`)&&(n=!0),e.current?.resource.source.id===t.payload.resource?.resource.source.id?{...e,current:t.payload.resource}:{...e,current:t.payload.resource,stack:n?[]:e.current?[e.current,...e.stack]:e.stack}}case`syncRemoval`:{let n=V(t.payload.resource.resource);if(!n||!e.stack.find(e=>V(e.resource)?.id===n.id))return e;let r=e.current?.resource.id===n.id?null:e.current,i=hr(e.stack.filter(e=>V(e.resource)?.id!==n.id),r);return{...e,stack:i,current:r}}case`updateCurrent`:return{...e,current:t.payload.resource};case`back`:{let t=e.stack[0];return{...e,stack:e.stack.slice(1),current:t||null}}case`close`:return{...e,stack:[],current:null};case`create`:return t.payload.resource===null?{...e,create:null}:{...e,create:t.payload}}return e}function hr(e,t){let n=[],r=null;for(let t of e)r?.resource.id!==t.resource.id&&(n.push(t),r=t);return r&&r.resource.id===t?.resource.id?n.slice(0,n.length-1):n}const gr={stack:[],current:null,create:null},J=D(gr),_r=D({edit(){},close(){},back(){},setStack(){},updateCurrent(){},create(){return()=>{}}});function vr(){return k(_r)}function yr(){return k(J).current}function br(){return k(J).stack}function xr(){return k(J).create}function Sr(){let{manifest:e}=Oe(),t=B(),[n,r]=M(e=>e+1,0);U(e,`Manifest not found`);let i=j(()=>new qe({reference:{id:e,type:`Manifest`},vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function Cr(){let{collection:e}=Oe(),t=B(),[n,r]=M(e=>e+1,0);U(e,`Collection not found`);let i=j(()=>new qe({reference:{id:e,type:`Collection`},vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function wr(e,t={}){let n=B(),[r,i]=M(e=>e+1,0);!t.allowNull&&U(e,`Resource not found`);let a=j(()=>t.allowNull&&!e?null:new qe({reference:V(e),vault:n,context:{resource:e,parent:t.parent,index:t.index,parentProperty:t.parentProperty}}),[e,n]);return A(()=>a?.observe.start(i),[a]),a&&(a.observe.key=`${r}`,a.observe.reset()),a}function Tr(){let{annotationPage:e}=Oe();return U(e,`Annotation page not found`),wr({id:e,type:`AnnotationPage`})}function Er(){let e=yr(),t=B(),[n,r]=M(e=>e+1,0);U(e,`No resource selected`);let i=j(()=>new qe({reference:e.resource.source||e.resource,vault:t}),[e,t]);return A(()=>i.observe.start(r),[i]),i.observe.key=`${n}`,i.observe.reset(),i}function Dr(e){let t=B(),[n,r]=M(mr,e),i=O(e=>{r(e)},[]);A(()=>t.on(`@iiif/REMOVE_REFERENCE`,e=>{let t=e.action,n={id:t.payload.id,type:t.payload.type},i=t.payload.reference;r({type:`syncRemoval`,payload:{resource:{parent:n,resource:i}}})}),[t]);let a=O((e,t=!1)=>i({type:`edit`,payload:{resource:e,reset:t}}),[]),o=O(e=>i({type:`setStack`,payload:{resources:e}}),[]),s=O(e=>i({type:`updateCurrent`,payload:{resource:e}}),[]),c=O(()=>i({type:`close`}),[]),l=O(()=>i({type:`back`}),[]),u=O((e,t)=>(i({type:`create`,payload:{resource:e,options:t}}),()=>{i({type:`create`,payload:{resource:null}})}),[]);return[n,j(()=>({edit:a,updateCurrent:s,close:c,back:l,create:u,setStack:o}),[])]}function Or(e){let{instanceId:t}=ut(),[n,r]=Dr(e.initialState||gr);return I(_r.Provider,{value:r,children:I(J.Provider,{value:n,children:e.children})},t)}function kr({resource:e,children:t}){let{instanceId:n}=ut(),[r,i]=Dr(j(()=>({create:null,stack:[],current:{resource:{type:`SpecificResource`,source:{id:e.id,type:e.type}}}}),[]));return I(_r.Provider,{value:i,children:I(J.Provider,{value:r,children:t})},n)}function Ar({fallback:e,backAction:t}){let n=br(),{back:r}=vr();return n.length?I(q,{onClick:r,children:I(jn,{})}):e}function jr({closeAction:e,fallback:t}){let n=br();return yr()||n.length?I(q,{onClick:()=>{e()},children:I(xt,{})}):t}function Mr(e,t,n,r){let i=t.filter(t=>t.resourceType===e.resource.source.type);if(i.length===0)return null;for(let t of i){let i=[],a={},o=(t.editors||[]).filter(t=>{if(r.hideTabs&&r.hideTabs.includes(t.id)||r.onlyTabs&&!r.onlyTabs.includes(t.id))return!1;if(t.supports.sortKey){if(i.includes(t.supports.sortKey))return!1;t.supports.sortFallback&&(a[t.supports.sortKey]=t)}return n.edit&&!t.supports.edit||t.supports.custom&&t.supports.custom(e,n.vault)===!1?!1:(t.supports.sortKey&&i.push(t.supports.sortKey),!0)}),s=Object.keys(a);for(let e of s)!i.includes(e)&&a[e]&&!o.includes(a[e])&&o.push(a[e]);if(o.length)return{...t,editors:o}}return null}function Nr({currentTab:e=void 0}){let t=yr(),n=k(Se),r=W(),i=Et(),a=B(),{change:o}=Fn(),s=Jn(),{editorConfig:c}=it(),l=t?.resource.source?.id,u=t?.resource.source?.type,d=l!==i.id;l&&d&&i.type===`Collection`&&u===`Collection`&&(u=`EmbeddedCollection`);let f=(u?c[u]:c.All)||{},p=j(()=>{let e={...n},r=t?.resource.source.id,i=t?.resource.source.type,a={Collection:`collection`,Manifest:`manifest`,Range:`range`,Canvas:`canvas`,Annotation:`annotation`,AnnotationPage:`annotationPage`};return i&&a[i]&&(e[a[i]]=r),e},[t,n]);function m(e){return t?I(Se.Provider,{value:p,children:e}):e}let h=j(()=>{if(!t)return null;let e=r.layout.editors||[];return Mr(t,(r.layout.resources||[]).map(t=>typeof t==`string`?{id:`@default/`+t,label:t,resourceType:t,auto:!0,editors:e.filter(e=>e.supports.resourceTypes.includes(t))}:t),{edit:!0,vault:a},f)},[t,r]);if(A(()=>{s(h?.label||``)},[h]),A(()=>{let t=h?.editors.map(e=>e.id)||[];t.find(t=>t===e)||o(`@manifest-editor/editor`,{currentTab:t[0]})},[h?.editors,e,o]),!t||!h)return null;if(f.singleTab){let e=(h?.editors||[]).find(e=>e.id===f.singleTab);if(e)return m(I(`div`,{className:`w-full`,children:e.component(f)},t.resource.source?.id))}return m(I(b,{isNested:d,rootResource:i,menuId:t.resource.source.id,menu:(h?.editors||[]).map((e,t)=>({id:e.id,label:e.label,renderComponent:()=>e.component(f)})),selectedKey:e,onSelectionChange:e=>{o(`@manifest-editor/editor`,{currentTab:e})}},t.resource.source?.id))}const Pr={id:`@manifest-editor/editor`,label:`Editor`,options:{hideHeader:!0,tabs:!0,minWidth:400},renderBackAction:({backAction:e,fallback:t})=>I(Ar,{backAction:e,fallback:t}),renderCloseAction:({closeAction:e,fallback:t})=>I(jr,{closeAction:e,fallback:t}),render({currentTab:e}){return I(Nr,{currentTab:e})}},Fr={color:{main:`#B84C74`,mainHover:`#4a89ff`,logoPink:`#E94581`,white:`white`,grey:`grey`,black:`black`,lightgrey:`#F8F9FA`,mediumgrey:`#dddddd`,danger:`#a90e21`,warning:`#e38627`,lightdanger:`#ffeaea`,lightsuccess:`#c5e8c5`,success:`#6ccd55`,greyOverlay:`rgba(0, 0, 0, 0.2)`,highlight:`#faeed7`},iiifColor:{manifest:`rgba(0, 0, 0, 0.2)`,canvas:`rgba(255, 222, 219, 0.8)`,service:`rgba(13, 110, 253, 0.8)`,annotation:`rgba(247, 226, 173, 0.8)`,contentResource:`rgba(207, 247, 255, 0.8)`,ranges:`rgba(144, 213, 157, 0.8)`},padding:{xs:`0.25rem`,small:`0.5rem`,medium:`1rem`,large:`2rem`},device:{mobile:`375px`,tablet:`768px`,laptop:`992px`,desktop:`1200px`},shadows:{standard:`rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 5px 15px 0px`,bottom:`rgba(0, 0, 0, 0.1) 0px 4px 2px -2px`}};function Ir(e){let{}=e,t=B(),n=W(),r=j(()=>Le(e.resource,n.layout.creators||[],{vault:t}),[e.resource,n.layout.creators,t]);return r.length===0?I(`div`,{children:`No supported creators found`}):I(`div`,{children:L(C,{className:`w-full flex-1 overflow-hidden flex flex-col`,children:[I(te,{className:`flex-1 overflow-hidden w-full flex text-sm whitespace-nowrap`,items:r,children:e=>I(x,{id:e.id,children:e.label})}),r.map(t=>I(S,{id:t.id,className:`p-2`,children:I(pe,{theme:Fr,children:I(dr,{creator:t,resource:e.resource,onCreate:e.onCreate,skipEditingOnCreate:!0})})},t.id))]})})}function Lr(e){let[t,n]=P(!1),r=N(),i=N(0);function a(t){i.current--,!(t&&i.current!==0)&&(r.current&&(clearTimeout(r.current),r.current=0),r.current=setTimeout(()=>{n(!1)},e))}function o(){i.current++,r.current&&clearTimeout(r.current),n(!0)}return j(()=>[t,{set:o,clear:a}],[t])}function Rr(){let t=Ht(),n=Et(),r=it(),i=at(),[a,s]=Lr(2e3);function c(e){e.preventDefault();let t=new FormData(e.target);i({defaultPreview:t.get(`defaultPreview`),i18n:{...r.i18n||{},advancedLanguageMode:t.get(`advancedLanguageMode`)===`on`,availableLanguages:(t.get(`availableLanguages`)||``).split(`,`).map(e=>e.trim()),defaultLanguage:t.get(`defaultLanguage`)},export:{...r.export||{},version:t.get(`isVersion2`)===`on`?2:3,baseIdentifier:t.get(`base`)||null},editorFeatureFlags:{...r.editorFeatureFlags||{},rememberCanvasId:t.get(`rememberCanvasId`)===`on`,rememberLeftPanelId:t.get(`rememberLeftPanelId`)===`on`,annotationPopups:t.get(`annotationPopups`)===`on`,manifestGridOptions:t.get(`manifestGridOptions`)===`on`,enableMultiImageCanvases:t.get(`enableMultiImageCanvases`)===`on`,enableMultiMediaCanvases:t.get(`enableMultiMediaCanvases`)===`on`}}),s.set(),s.clear()}return L(_,{children:[I(y,{title:`Workspace configuration`}),a?I(`div`,{className:`bg-me-primary-500 text-white p-3 text-sm`,children:`Changes saved`}):null,I(v,{className:`p-4`,children:L(o.Form,{onSubmit:c,className:`flex flex-col gap-3`,children:[L(o.InputContainer,{children:[I(o.Label,{htmlFor:`defaultLanguage`,children:`Default Language`}),I(o.Input,{type:`text`,name:`defaultLanguage`,id:`defaultLanguage`,defaultValue:r.i18n?.defaultLanguage||``})]}),L(o.InputContainer,{children:[I(o.Label,{htmlFor:`availableLanguages`,children:`Available Languages`}),I(o.Input,{type:`text`,name:`availableLanguages`,id:`availableLanguages`,defaultValue:(r.i18n?.availableLanguages||[]).join(`, `)})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`advancedLanguageMode`,id:`advancedLanguageMode`,defaultChecked:r.i18n?.advancedLanguageMode||!1}),I(o.Label,{htmlFor:`advancedLanguageMode`,children:`Advanced Language Mode`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`textGranularityEnabled`,id:`textGranularityEnabled`,defaultChecked:r.i18n?.textGranularityEnabled||!1}),I(o.Label,{htmlFor:`textGranularityEnabled`,children:`Enable text granularity`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`rememberCanvasId`,id:`rememberCanvasId`,defaultChecked:r.editorFeatureFlags?.rememberCanvasId||!1}),I(o.Label,{htmlFor:`rememberCanvasId`,children:`Remember Canvas ID`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`rememberLeftPanelId`,id:`rememberLeftPanelId`,defaultChecked:r.editorFeatureFlags?.rememberLeftPanelId||!1}),I(o.Label,{htmlFor:`rememberLeftPanelId`,children:`Remember Left panel`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`manifestGridOptions`,id:`manifestGridOptions`,defaultChecked:r.editorFeatureFlags?.manifestGridOptions||!1}),I(o.Label,{htmlFor:`manifestGridOptions`,children:`Manifest Grid Options`})]}),L(o.InputContainer,{horizontal:!0,className:`my-3`,children:[I(o.Input,{type:`checkbox`,name:`isVersion2`,id:`isVersion2`,defaultChecked:r.export?.version===2}),L(o.Label,{htmlFor:`isVersion2`,children:[`Export Presentation 2 `,n.type,`s`]})]}),L(o.InputContainer,{children:[I(o.Label,{htmlFor:`defaultPreview`,children:`Default preview`}),I(`div`,{children:t.configs.map((e,t)=>e.type===`iiif-preview-service`?null:L(o.InputContainer,{horizontal:!0,children:[I(o.Input,{type:`radio`,id:e.id,name:`defaultPreview`,value:e.id,defaultChecked:r.defaultPreview?r.defaultPreview===e.id:t===0}),I(`label`,{htmlFor:e.id,children:e.label})]},e.id))})]}),n.type===`Manifest`?I(`a`,{className:`text-sm text-me-primary-500 hover:underline hover:text-me-primary-600`,href:window.location.pathname.includes(`/exhibition`)?window.location.pathname.replace(`/exhibition`,``)||`/`:`${window.location.pathname}/exhibition`,children:window.location.pathname.includes(`/exhibition`)?`Return to Manifest Editor`:`Go to Exhibition Editor`}):null,I(`div`,{className:`mt-5`,children:I(e,{type:`submit`,children:`Save changes`})})]})})]})}function zr(){return ze((e,t)=>({specificMenus:{},resourceMenus:{},hookMenuItem(t){let n=wn(),r=t.resource?.id||``,i=t.resource?.type;return i?r?(e(e=>({specificMenus:{...e.specificMenus,[r]:{...e.specificMenus[r]||{},menus:{...e.specificMenus[r]?.menus||{},[n]:{sectionTitle:t.sectionTitle,items:t.items}}}}})),()=>{e(e=>({specificMenus:{...e.specificMenus,[r]:{...e.specificMenus[r]||{},menus:{...e.specificMenus[r]?.menus||{},[n]:void 0}}}}))}):(e(e=>({resourceMenus:{...e.resourceMenus,[i]:{...e.resourceMenus[i]||{},menus:{...e.resourceMenus[i]?.menus||{},[n]:{sectionTitle:t.sectionTitle,items:t.items}}}}})),()=>{e(e=>({resourceMenus:{...e.resourceMenus,[i]:{...e.resourceMenus[i]||{},menus:{...e.resourceMenus[i]?.menus||{},[n]:void 0}}}}))}):()=>{}}}))}const Br=D(null);function Vr({children:e}){let t=j(()=>zr(),[]);return I(Br.Provider,{value:t,children:e})}function Hr(){let e=k(Br);if(!e)throw Error(`useContextMenuStore must be used within a ContextMenuProvider`);return e}function Ur(e){let t=Hr(),n=H(t,e=>e.resourceMenus),r=H(t,e=>e.specificMenus);return j(()=>{let t=r[e.id||``]?.menus||{},i=n[e.type]?.menus||{},a=Object.values(t).flat(),o=[...Object.values(i).flat(),...a].filter(e=>e!==void 0),s=[],c=[];for(let e of o){let t=[];for(let n of e.items||[])n.id&&s.includes(n.id)||(s.push(n.id),t.push(n));t.length&&c.push({...e,items:t})}return Wr(c)},[r,n,e.id,e.type])}function Wr(e){let t={},n=[];e.forEach(e=>{if(!e)return;let r=e.sectionTitle;if(!r){n.push(...e.items||[]);return}t[r]||(t[r]=[]),t[r].push(...e.items)});let r=Object.entries(t).map(([e,t])=>({sectionTitle:e,items:t}));return n.length&&r.push({items:n}),r}function Gr(e,t=[]){let n=H(Hr(),e=>e.hookMenuItem);A(()=>n(e),[n,e.resource?.id,e.resource?.type,...t])}var Kr={};function qr(e){return L(`div`,{className:Kr.CenterPanelContainer,children:[e.title||e.close?L(`div`,{className:Kr.CenterPanelHeader,children:[e.title?I(`h2`,{className:Kr.CenterPanelTitle,children:e.title}):null,e.close?I(K,{className:Kr.CenterPanelClose,onClick:e.close,children:I(xt,{})}):null]}):null,e.children]})}const Jr=R.div`
|
|
427
427
|
flex: 1;
|
|
428
428
|
display: flex;
|
|
429
429
|
width: 100%;
|
|
@@ -618,7 +618,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
618
618
|
position: sticky;
|
|
619
619
|
bottom: 0;
|
|
620
620
|
}
|
|
621
|
-
`;function fi(e){let t=De(),n=B(),r=
|
|
621
|
+
`;function fi(e){let t=De(),n=B(),r=Fn(),i=j(()=>JSON.stringify(n.toPresentation3(t),null,2),[t,n]),a=j(()=>JSON.stringify(n.toPresentation2(t),null,2),[t,n]);return I(qr,{title:`Export manifest`,close:r.centerPanel.popStack,children:I(`div`,{style:{flex:1,overflowY:`auto`},children:I(li,{items:[{label:`Presentation 3`,description:`Download this version by clicking the "Download" button.`,maxHeight:400,large:!0,initialOpen:!0,overflow:!0,icon:I(K,{onClick:()=>Sn(i,`manifest.json`),children:I(ui,{})}),children:L(`div`,{style:{maxWidth:`100%`},children:[I(`pre`,{style:{whiteSpace:`pre-wrap`},children:JSON.stringify(n.toPresentation3(t),null,2)}),L(di,{"data-sticky":`true`,children:[I(K,{onClick:()=>Cn(i),children:`Copy to clipboard`}),I(K,{onClick:()=>Sn(i,`manifest.json`),children:`Download`})]})]})},{label:`Presentation 2`,description:`Download this version by clicking the "Download" button.`,maxHeight:400,large:!0,icon:I(K,{onClick:()=>Sn(a,`manifest.json`),children:I(ui,{})}),children:L(`div`,{style:{maxWidth:`100%`},children:[I(`pre`,{style:{whiteSpace:`pre-wrap`},children:JSON.stringify(n.toPresentation2(t),null,2)}),L(di,{"data-sticky":`true`,children:[I(K,{onClick:()=>Cn(a),children:`Copy to clipboard`}),I(K,{onClick:()=>Sn(a,`manifest.json`),children:`Download`})]})]})}]})})})}const pi=D(Je());function mi({children:e,emitter:t}){return I(pi.Provider,{value:t,children:e})}function hi(){return k(pi)}function gi(e,t,n=[]){let r=k(pi);A(()=>{let n=e=>{t(e)};return r.on(e,n),()=>{r.off(e,n)}},[r,e,...n])}function _i(e,t=[]){let n=t.length?t:Array(e.length).fill(!1);if(typeof window>`u`)return n;let r=e.map(e=>window.matchMedia(e)),i=()=>r.map(e=>e.matches),[a,o]=P(i);return fe(()=>{let e=()=>o(i);return r.forEach(t=>t.addListener(e)),()=>r.forEach(t=>t.removeListener(e))},[]),a}function vi(e,t,n,r=!0){let i=Ye(t,n);A(()=>typeof window>`u`?()=>void 0:(window.addEventListener(`beforeunload`,t,!1),()=>{t(),window.removeEventListener(`beforeunload`,t)}),[t]),A(()=>{if(e&&r)return e.subscribe(i,!0)},[i,e,r])}function yi(){let e=we(),t=H(e,e=>e.switchTool),n=H(e,e=>e.polygonState.currentTool),r=H(e,e=>e.polygonState.selectedStamp),i=H(e,e=>e.polygonState.showBoundingBox);return j(()=>({currentTool:n,selectedStamp:r,draw:{active:n===`pencil`,enable:t.draw},polygon:{active:n===`pen`,enable:t.pen},line:{active:n===`line`,enable:t.line},lineBox:{active:n===`lineBox`,enable:t.lineBox},square:{active:n===`box`,enable:t.box},triangle:{active:r?.id===`triangle`,enable:t.triangle},hexagon:{active:r?.id===`hexagon`,enable:t.hexagon},circle:{active:r?.id===`circle`,enable:t.circle},remove:{active:i,enable:t.remove}}),[i,r,n,t])}function bi({key:e,initialValue:t,requestId:n,getInitialValue:r}){let[i,a]=Te({requestId:n}),[o,s]=P(r&&r(i)||i[e]||t);return[o,O(t=>{a({[e]:t}),s(t)},[])]}const xi=R.div`
|
|
622
622
|
position: relative;
|
|
623
623
|
width: 1px;
|
|
624
624
|
background: rgba(0, 0, 0, 0.2);
|
|
@@ -713,7 +713,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
713
713
|
top: 0;
|
|
714
714
|
bottom: 0;
|
|
715
715
|
z-index: 51; // This will always be quite high.
|
|
716
|
-
`,Ei=le(function({dir:e,open:t,actions:r,reset:i},a){let[o,s]=P(!0),c=`mt-[calc(50vh+8px)]`,u=e===`left`?`${c} ml-[13px]`:`${c} ml-[3px]`;return L(xi,{onClick:()=>r.open(),children:[I(Ti,{$open:t,$dir:e,className:`group`,children:t?null:L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:Ci,$dir:e,onClick:e=>r.open(),children:I(St,{className:`text-2xl`,rotate:e===`right`?90:270})}),I(n,{children:`Open`})]})}),L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{"aria-label":`Resize panel`,asChild:!0,children:I(`div`,{children:L(wi,{ref:a,$open:t,$dir:e,className:`group`,children:[t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:l,onPress:()=>r.close(),children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(xt,{})})}),I(n,{children:`Close`})]}):null,i&&t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:l,onPress:()=>i(),children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(h,{})})}),I(n,{children:`Reset`})]}):null,t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{asChild:!0,"aria-label":`Resize panel`,children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(g,{"aria-label":`Resize panel`})})}),I(n,{children:`Resize panel`})]}):null]})})}),o&&I(n,{className:u,children:`Resize panel`})]})]})});function Di(e){return I(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 42 42`,xmlns:`http://www.w3.org/2000/svg`,stroke:`currentColor`,...e,children:L(`g`,{transform:`translate(2 2)`,strokeWidth:5,fill:`none`,fillRule:`evenodd`,children:[I(`circle`,{strokeOpacity:.5,cx:18,cy:18,r:18}),I(`path`,{d:`M36 18c0-9.94-8.06-18-18-18`,children:I(`animateTransform`,{attributeName:`transform`,type:`rotate`,from:`0 18 18`,to:`360 18 18`,dur:`1s`,repeatCount:`indefinite`})})]})})}var Y={};function Oi(){return L(F,{children:[I(`div`,{"data-header":`true`,className:Y.ghostLoadingBlock}),L(`div`,{className:Y.ghostBlockList,children:[I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock})]})]})}function ki(e,t,n,r=[]){fe(()=>{let r=e.current;if(r)return r.addEventListener(t,n),()=>{r.removeEventListener(t,n)}},[t,...r])}function Ai(e,t,n,r){return Math.sqrt(Math.abs(n-e)**2+Math.abs(r-t)**2)}function ji(e,t,n,r){return n||(r?r/e:t)}function Mi(e,t={}){let n=N(null),r=N(null),i=N(null),a=N(null),o=N(.5),[s,c]=P(!1),l=N(!1),u=N(0),d=N({x:0,y:0}),[{widthA:f,widthB:p},m]=E(`resize-layout/${e}`,{widthA:`auto`,widthB:`${
|
|
716
|
+
`,Ei=le(function({dir:e,open:t,actions:r,reset:i},a){let[o,s]=P(!0),c=`mt-[calc(50vh+8px)]`,u=e===`left`?`${c} ml-[13px]`:`${c} ml-[3px]`;return L(xi,{onClick:()=>r.open(),children:[I(Ti,{$open:t,$dir:e,className:`group`,children:t?null:L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:Ci,$dir:e,onClick:e=>r.open(),children:I(St,{className:`text-2xl`,rotate:e===`right`?90:270})}),I(n,{children:`Open`})]})}),L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{"aria-label":`Resize panel`,asChild:!0,children:I(`div`,{children:L(wi,{ref:a,$open:t,$dir:e,className:`group`,children:[t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:l,onPress:()=>r.close(),children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(xt,{})})}),I(n,{children:`Close`})]}):null,i&&t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{as:l,onPress:()=>i(),children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(h,{})})}),I(n,{children:`Reset`})]}):null,t?L(w,{placement:e===`left`?`right`:`left`,children:[I(T,{asChild:!0,"aria-label":`Resize panel`,children:I(`div`,{onMouseOut:()=>{s(!0)},onMouseOver:()=>{s(!1)},children:I(g,{"aria-label":`Resize panel`})})}),I(n,{children:`Resize panel`})]}):null]})})}),o&&I(n,{className:u,children:`Resize panel`})]})]})});function Di(e){return I(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 42 42`,xmlns:`http://www.w3.org/2000/svg`,stroke:`currentColor`,...e,children:L(`g`,{transform:`translate(2 2)`,strokeWidth:5,fill:`none`,fillRule:`evenodd`,children:[I(`circle`,{strokeOpacity:.5,cx:18,cy:18,r:18}),I(`path`,{d:`M36 18c0-9.94-8.06-18-18-18`,children:I(`animateTransform`,{attributeName:`transform`,type:`rotate`,from:`0 18 18`,to:`360 18 18`,dur:`1s`,repeatCount:`indefinite`})})]})})}var Y={};function Oi(){return L(F,{children:[I(`div`,{"data-header":`true`,className:Y.ghostLoadingBlock}),L(`div`,{className:Y.ghostBlockList,children:[I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock}),I(`div`,{className:Y.ghostLoadingBlock})]})]})}function ki(e,t,n,r=[]){fe(()=>{let r=e.current;if(r)return r.addEventListener(t,n),()=>{r.removeEventListener(t,n)}},[t,...r])}function Ai(e,t,n,r){return Math.sqrt(Math.abs(n-e)**2+Math.abs(r-t)**2)}function ji(e,t,n,r){return n||(r?r/e:t)}function Mi(e,t={}){let n=N(null),r=N(null),i=N(null),a=N(null),o=N(.5),[s,c]=P(!1),l=N(!1),u=N(0),d=N({x:0,y:0}),[{widthA:f,widthB:p},m]=E(`resize-layout/${e}`,{widthA:`auto`,widthB:`${Bn({initial:t.widthA,fallback:320,options:{minWidth:t.minWidthPx,maxWidth:t.maxWidthPx}})}px`}),{loading:h=!1}=t;return ki(a,`mousedown`,e=>{d.current.x=e.pageX,d.current.y=e.pageY,u.current&&(clearTimeout(u.current),u.current=0),u.current=setTimeout(()=>{c(!0),l.current=!0},350)},[h]),ki({current:typeof window<`u`?window:void 0},`mouseup`,()=>{let e=n.current;if(e&&l.current){let{x:n,width:r}=e.getBoundingClientRect(),i=t.marginLeft||0,a=ji(r,.8,t.maxWidthPct,t.maxWidthPx)*r,s=ji(r,.2,t.minWidthPct,t.minWidthPx)*r;if(t.left){let e=o.current*r-i;m({widthA:`${(1-o.current)*r-i}`,widthB:`${e>a?a:e<s?s:e}px`})}else{let e=1-o.current*r-i;m({widthA:`${e>a?a:e<s?s:e}px`,widthB:`${o.current*r-i}px`})}c(!1),l.current=!1,t.onDragEnd&&t.onDragEnd()}clearTimeout(u.current),u.current=0},[h]),ki(n,`mousemove`,e=>{if(!l.current&&u.current&&Ai(d.current.x,d.current.y,e.pageX,e.pageY)>20&&(c(!0),l.current=!0,clearTimeout(u.current),u.current=0),l.current&&r.current){let i=n.current;if(i){let{x:n,width:a}=i.getBoundingClientRect(),s=t.marginLeft||0,c=t.left||!1,l=ji(a,.8,t.maxWidthPct,t.maxWidthPx),u=ji(a,.2,t.minWidthPct,t.minWidthPx);o.current=(a+n-e.pageX-5)/a,c&&(o.current=1-o.current),o.current=o.current<u?u:o.current,o.current=o.current>l?l:o.current,r.current.style.width=`${o.current*a-s}px`}}},[s,h]),{refs:{container:n,resizer:a,resizableDiv:r,otherDiv:i},setWidths:m,isDragging:s,widthA:f,widthB:p}}const Ni=R.div`
|
|
717
717
|
position: relative;
|
|
718
718
|
display: flex;
|
|
719
719
|
flex: 1;
|
|
@@ -796,7 +796,7 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
796
796
|
transform: translateY(0);
|
|
797
797
|
`}
|
|
798
798
|
|
|
799
|
-
${
|
|
799
|
+
${Xn} {
|
|
800
800
|
box-shadow: none;
|
|
801
801
|
padding-left: 0.5em;
|
|
802
802
|
padding-right: 0.5em;
|
|
@@ -984,6 +984,6 @@ import{ActionButton as e,CreatorGrid as t,DefaultTooltipContent as n,DownloadBut
|
|
|
984
984
|
flex: 1;
|
|
985
985
|
min-width: 0;
|
|
986
986
|
overflow: hidden;
|
|
987
|
-
`,Qi=ue(function(e){let t=dt(),n=Tn(),{vault:r}=k(xe),i=r||void 0,a=N(null),o=N(null),{loading:s,state:c,leftPanels:l,centerPanels:u,rightPanels:f,modals:p=[],actions:h}=n,g=l.find(e=>e.id===c.leftPanel.current),_=f.find(e=>e.id===c.rightPanel.current),v=u.find(e=>e.id===c.centerPanel.current),y=p.find(e=>e.id===c.modal.current),b=c.pinnedRightPanel.pinned?f.find(e=>e.id===c.pinnedRightPanel.current):void 0,[ee]=_i([`(max-width: 1020px)`]),x=e.isLoading||!1,te=j(()=>(n.background||[]).map((e,t)=>I(ae,{children:e.render()},t)),[n.background]),S=Mi(`left-panel/${g?.id}`,{left:!0,marginLeft:60,minWidthPx:g?.options?.minWidth||200,maxWidthPx:g?.options?.maxWidth||720,loading:s}),C=Mi(`right-panel/${_?.id}`,{left:!1,minWidthPx:_?.options?.minWidth||320,maxWidthPx:_?.options?.maxWidth||720,loading:s}),w=_&&(b?.id!==_.id||!Ze(c.pinnedRightPanel.state,c.rightPanel.state)),T=S.widthB===`auto`?void 0:()=>S.setWidths({widthA:`auto`,widthB:An({options:g?.options,fallback:320})}),E=C.widthB===`auto`?void 0:()=>C.setWidths({widthA:`auto`,widthB:An({options:_?.options,fallback:320})});if(fe(()=>{ee&&c.leftPanel.open&&c.rightPanel.open&&(h.leftPanel.close(),h.rightPanel.close())},[ee]),fe(()=>{if(v&&v.onMount)return v.onMount(c.centerPanel.state||v.defaultState||{},{...n,current:h.centerPanel,vault:i},t)},[c.centerPanel.current]),fe(()=>{f.length&&h.rightPanel.change({id:f[0].id}),l.length&&h.leftPanel.change({id:l[0].id}),u.length&&h.centerPanel.change({id:u[0].id})},[]),s)return null;let ne=t=>I(Xi,{$menu:e.leftPanelMenuPosition||`bottom`,ref:S.refs.resizableDiv,className:t?`transition transition-${t}`:``,style:{width:c.leftPanel.open||t!==`exited`?S.widthB:void 0,minWidth:g?.options?.minWidth},children:x?I(Zi,{children:I(Oi,{})}):L(F,{children:[e.leftPanelMenu?I(X,{$open:c.leftPanel.open&&t!==`exited`,$position:e.leftPanelMenuPosition||`bottom`,children:e.leftPanelMenu}):null,I(Zi,{children:c.leftPanel.open||t!==`exited`?I(F,{children:g?I(Wn,{isLeft:!0,noHeader:!0,transition:t,panel:g,state:c.leftPanel,actions:h.leftPanel}):null}):null})]})}),re=()=>!y||c.modal.open===!1?null:I(d,{title:y.label,onClose:()=>h.modal.close(),children:jn(y.render(c.modal.state||y.defaultState||{},{...n,current:h.modal,vault:i},t))}),ie=()=>L(Xi,{$menu:e.centerPanelMenuPosition||`top`,children:[e.centerPanelMenu?I(X,{$open:c.centerPanel.open,$position:e.centerPanelMenuPosition||`top`,children:e.centerPanelMenu}):null,I(Zi,{children:I(Re,{resetKeys:[v?.id],FallbackComponent:On,children:x?I(`div`,{style:{display:`flex`,flex:1,justifyContent:`center`,alignItems:`center`},children:I(Di,{stroke:`rgba(0,0,0,.3)`,fontSize:`2em`})}):c.centerPanel.open&&v?jn(v.render(c.centerPanel.state||v.defaultState||{},{...n,current:h.centerPanel,vault:i},t)):null})})]}),oe=t=>I(Xi,{$menu:e.rightPanelMenuPosition||`bottom`,ref:C.refs.resizableDiv,className:t?`transition transition-${t}`:``,style:{width:c.rightPanel.open||t!==`exited`?C.widthB:void 0,minWidth:_?.options?.minWidth},children:x?I(Zi,{children:I(Oi,{})}):L(F,{children:[e.rightPanelMenu?I(X,{$open:c.rightPanel.open,$position:e.rightPanelMenuPosition||`bottom`,children:e.rightPanelMenu}):null,I(Zi,{children:c.rightPanel.open||t!==`exited`?L(F,{children:[w?I(Wn,{panel:_,state:c.rightPanel,actions:h.rightPanel,pinActions:h.pinnedRightPanel,available:f}):null,b?I(Wn,{panel:b,state:c.pinnedRightPanel,actions:h.pinnedRightPanel,close:h.rightPanel.close}):null]}):null})]})});return ee?L(Ui,{children:[e.hideHeader?null:L(Wi,{children:[e.header||null,e.menu?I(`menu`,{children:e.menu}):null]}),I(Ki,{children:L(Ni,{children:[I(Pi,{children:ie()}),L(Fi,{children:[l.length>0?I(Ii,{onClick:h.leftPanel.toggle,children:g?.label}):null,f.length>0?I(Ri,{children:L(zi,{onClick:h.rightPanel.toggle,children:[I(St,{rotate:180}),_?.label]})}):null,I(Li,{children:`Preview`})]}),f.length>0?I(Bi,{$open:c.rightPanel.open,children:oe()}):null,l.length>0?I(Vi,{$open:c.leftPanel.open,children:ne()}):null,l.length>0||f.length>0?I(Hi,{$open:c.leftPanel.open||c.rightPanel.open,onClick:()=>{h.leftPanel.close(),h.rightPanel.close()}}):null]})})]}):L(Ui,{className:`manifest-editor ${e.className}`,children:[e.hideHeader?null:L(Wi,{children:[e.header||null,e.menu?I(`menu`,{children:e.menu}):null]}),L(Ki,{ref:e=>{S.refs.container.current=e,C.refs.container.current=e},children:[l.length>0?I(m,{current:c.leftPanel.current,items:l.map(e=>({id:e.id,label:e.label,icon:e.icon,divide:e.divide,onClick:()=>{c.leftPanel.current===e.id?h.leftPanel.toggle():h.leftPanel.change({id:e.id})}})),open:c.leftPanel.open}):null,l.length>0?I(Xe,{nodeRef:a,in:c.leftPanel.open,timeout:400,unmountOnExit:!1,children:e=>L(F,{children:[I(qi,{ref:a,$width:S.widthB,$state:e,$motion:!0,children:ne(e)}),I(Ei,{ref:S.refs.resizer,reset:T,dir:`left`,transition:e,open:c.leftPanel.open||e!==`exited`,actions:h.leftPanel})]})}):null,I(Ji,{children:ie()}),f.length>0?I(Xe,{nodeRef:o,in:c.rightPanel.open,timeout:400,unmountOnExit:!1,children:e=>L(F,{children:[I(Ei,{ref:C.refs.resizer,dir:`right`,reset:E,open:c.rightPanel.open,actions:h.rightPanel}),I(Yi,{ref:o,$width:C.widthB,$state:e,$motion:!0,children:oe(e)})]})}):null]}),I(Gi,{children:e.footer||null}),I(`div`,{className:`hidden`,children:te}),I(F,{children:re()})]})});function Z(e,t){function n(){t({type:`popStack`,panel:e,payload:void 0})}function r(n){t({type:`change`,panel:e,payload:n})}function i(n){t({type:`open`,panel:e,payload:n})}function a(){t({type:`close`,panel:e,payload:void 0})}function o(){t({type:`toggle`,panel:e,payload:void 0})}function s(){t({type:`minimise`,panel:e,payload:void 0})}function c(n){t({type:`maximise`,panel:e,payload:n})}function l(n){t({type:`setCustomWidth`,panel:e,payload:n})}function u(){t({type:`resetSize`,panel:e,payload:void 0})}function d(n){t({type:`pin`,panel:e,payload:n})}function f(){t({type:`unpin`,panel:e,payload:void 0})}return j(()=>({popStack:n,change:r,open:i,close:a,toggle:o,minimise:s,maximise:c,setCustomWidth:l,resetSize:u,pin:d,unpin:f}),[])}function $i(e,t){if(t.payload&&t.payload.stacked){if(e.current){let n=e.stack[e.stack.length-1];if(n&&n.id===e.current)return;t.payload.unique&&(e.stack=e.stack.filter(t=>t.id!==e.current)),e.stack.push({id:e.current,state:e.state?{...Ae(e.state)}:{}})}}else e.stack=[]}function ea(e,t){switch(t.type){case`popStack`:if(e.stack.length){let t=e.stack[e.stack.length-1];t&&(e.current=t.id,e.state=t.state),e.stack=e.stack.slice(0,-1)}break;case`change`:t.payload.id!==e.current&&$i(e,t),e.state=t.payload.state,e.current=t.payload.id;break;case`close`:e.open=!1;break;case`open`:e.open=!0,t.payload&&(t.payload.id!==e.current&&$i(e,t),e.state=t.payload.state,e.current=t.payload.id);break;case`toggle`:e.open=!e.open;break;case`maximise`:e.minimised=!1,t.payload&&(e.state=t.payload.state,e.current=t.payload.id);break;case`minimise`:e.minimised=!0;break;case`setCustomWidth`:e.customWidth=t.payload;break;case`resetSize`:e.customWidth=void 0}if(kn(e))switch(t.type){case`pin`:e.pinned=!0,e.state=t.payload.state,e.current=t.payload.id;break;case`unpin`:e.pinned=!1,e.state=void 0;break}}const ta=je((e,t)=>{switch(t.panel){case`centerPanel`:ea(e.centerPanel,t);break;case`leftPanel`:ea(e.leftPanel,t);break;case`rightPanel`:ea(e.rightPanel,t);break;case`modal`:ea(e.modal,t);break;case`pinnedRightPanel`:ea(e.pinnedRightPanel,t);break}});function Q(){return{customWidth:void 0,minimised:!1,open:!0,current:null,state:null,stack:[]}}function na(){return{leftPanel:Q(),centerPanel:Q(),rightPanel:Q(),modal:Q(),pinnedRightPanel:{...Q(),pinnable:!0,pinned:!1}}}const ra=D({resource:null});function ia(){return k(ra)}function aa(){let e=B(),{resource:t}=ia();U(t,`Nothing selected`);let{id:n,type:r}=t;return ke(()=>e.get({id:n,type:r}),[n,r])}function oa(){let{resource:e}=ia();return e}function sa({resource:e,children:t}){let{id:n,type:r}=e||{};return I(ra.Provider,{value:j(()=>({resource:n&&r?{id:n,type:r}:null}),[n,r]),children:t})}var ca=class extends ie{constructor(...e){super(...e),G(this,`state`,{hasError:!1})}static getDerivedStateFromError(e){return console.error(e),{hasError:!0}}componentDidCatch(e,t){console.error(`Uncaught error:`,e,t)}render(){return this.state.hasError?I(`h1`,{children:`Sorry.. there was an error`}):this.props.children}};function la(e,t){return typeof e==`string`?{id:e,state:t}:e}const ua=ue(function(e){let t=W(),n=hi(),r=t.layout,[i,a]=M(ta,void 0,na),o={centerPanel:Z(`centerPanel`,a),leftPanel:Z(`leftPanel`,a),rightPanel:Z(`rightPanel`,a),pinnedRightPanel:Z(`pinnedRightPanel`,a),modal:Z(`modal`,a),editingStack:vr()};function s(e){let t=r.rightPanels.find(t=>t.id===e);if(t)return[t,o.rightPanel,o.pinnedRightPanel];let n=r.centerPanels.find(t=>t.id===e);if(n)return[n,o.centerPanel];let i=r.leftPanels.find(t=>t.id===e);if(i)return[i,o.leftPanel];U(!1,`Was not able to find panel with id "${e}"`)}function c(e,t){let{id:r,state:i,stacked:a}=la(e,t),[o,c,l]=s(r);if(l&&o.options?.openPinned)l.pin({id:r,state:{...o.defaultState||{},...i||{}}});else{let e={id:r,state:{...o.defaultState||{},...i||{}},stacked:a};n.emit(`layout.open`,e),c.open(e)}}function l(e,t){let{id:r,state:i}=la(e,t),[a,o]=s(r),c={id:r,state:{...a.defaultState||{},...i||{}},stacked:!0};n.emit(`layout.open`,c),o.open(c)}function u(e,t){let{id:r,state:i,stacked:a}=la(e,t),[o,c]=s(r),l={id:r,state:{...o.defaultState||{},...i||{}},stacked:a};n.emit(`layout.change`,l),c.change(l)}function d(e,t){let{id:r}=la(e,t),[,i]=s(r);n.emit(`layout.close`,{id:r}),i.close()}function f(e,t){let{id:r}=la(e,t),[,i]=s(r);n.emit(`layout.toggle`,{id:r}),i.toggle()}function p(e,t={},{reset:i,property:a,stacked:s,forceOpen:c}={}){let l={resource:Fe(e)?e:{type:`SpecificResource`,source:e},...t};n.emit(`layout.edit`,l),o.editingStack.edit(l,i),r.rightPanels.find(e=>e.id===`@manifest-editor/editor`)&&(c?o.rightPanel.open({id:`@manifest-editor/editor`,stacked:s!==!1,state:{property:a},unique:!0}):o.rightPanel.change({id:`@manifest-editor/editor`,stacked:s!==!1,state:{property:a},unique:!0}))}function m(e){o.editingStack.create(e,{}),n.emit(`layout.create`,e),r.modals?.find(e=>e.id===`@manifest-editor/creator`)?o.modal.open({id:`@manifest-editor/creator`,stacked:!0,unique:!0,state:e}):r.rightPanels.find(e=>e.id===`@manifest-editor/creator`)&&o.rightPanel.open({id:`@manifest-editor/creator`,stacked:!0,unique:!0,state:e})}let h={open:c,change:u,close:d,toggle:f,stack:l,edit:p,create:m};return I(bn.Provider,{value:j(()=>({...o,...h}),[r]),children:I(xn.Provider,{value:i,children:e.children})})}),da=[{id:`universal-viewer`,config:{url:`https://universalviewer.dev/#?iiifManifestId={manifestId}`},type:`external-manifest-preview`,label:`Universal viewer`},{id:`mirador-3`,type:`external-manifest-preview`,label:`Mirador 3`,config:{url:`https://tomcrane.github.io/scratch/mirador3/?iiif-content={manifestId}`}},{id:`annona`,type:`external-manifest-preview`,label:`Annona`,config:{url:`https://ncsu-libraries.github.io/annona/tools/#/display?url={manifestId}&viewtype=iiif-storyboard&settings=%7B%22fullpage%22%3Atrue%7D`}},{id:`iiif-preview`,config:{url:`https://iiif-preview.digirati.services/store`},type:`iiif-preview-service`,label:`IIIF Preview`}],fa=new Qe({approximateServices:!0,verificationsRequired:8,enableFetching:!0});function pa({config:e,saveConfig:t,children:n,theme:r,previews:i,resource:a,editing:o}){let s=it(),c=j(()=>({...s,...e,previews:e?.previews||s.previews||da}),[s,e]);return I(ca,{children:I(ye.Provider,{value:fa,children:I(Ot,{resource:a,children:I(sr,{children:I(pe,{theme:r||Fr,children:I(ot,{config:c,saveConfig:t,children:I(Or,{children:I(ua,{children:I(Vr,{children:I(Bt,{previews:i||[],configs:c.previews,children:I(ge,{children:n})})})})})})})})})})})}const ma={},ha=D(`global`);function ga(){return k(ha)}function _a(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function va(e){let t=ga(),[,n]=M(e=>e+1,0),r=j(()=>(ma[t]||(ma[t]={}),ma[t][e]||(ma[t][e]={name:e,emitter:Je(),status:`idle`,promise:Promise.resolve(),abort:new AbortController,reject:()=>void 0,resolve:()=>void 0}),ma[t][e]),[t,e]);return $(r,`abort`,n),$(r,`error`,n),$(r,`complete`,n),$(r,`running`,n),r}function $(e,t,n){let r=O(()=>n(e),[n]);A(()=>{let n=e.emitter;return n.on(t,r),()=>n.off(t,r)},[t,r,e.emitter])}const ya=()=>void 0;function ba(e,t){let n=va(e);return $(n,`complete`,t||ya),[e=>{n.status===`running`&&(n.abort.abort(),n.emitter.emit(`abort`)),n.error&&(n.error=``);let t=_a();t.promise.then(()=>n.emitter.emit(`complete`)).catch(()=>n.emitter.emit(`error`)),n.status=`running`,n.request=e,n.promise=t.promise,n.resolve=t.resolve,n.reject=t.reject,n.emitter.emit(`running`)},n]}function xa(e,t){let n=va(e);return $(n,`running`,t),[e=>{n.status===`running`&&(n.response=e,n.status=`complete`,n.resolve())},n,(e,t)=>{n.status===`running`&&(n.error=t||e,n.status=`error`,n.reject(e))}]}function Sa({children:e}){return I(ha.Provider,{value:j(()=>`id-${Date.now()}`,[]),children:e})}function Ca(e){return!1}function wa({as:e,reference:t,onReference:n,onLink:r,onAnalysis:i,onDropReference:a,onDropLink:o,onDropAnalysis:s,onPasteReference:c,onPasteLink:l,onPasteAnalysis:u,...d}){let f=e||`div`,p=a||n,m=c||n,h=l||r,g=u||i,_=j(()=>t,[t?.id,t?.type]),v=O(function(e){e.defaultPrevented||(e.preventDefault(),e.clipboardData&&_&&_.id&&_.type&&e.clipboardData.setData(`application/json+vault`,JSON.stringify({id:_.id,type:_.type})))},[_]),y=O(async function(e){if(!e.defaultPrevented&&(e.preventDefault(),e.clipboardData)){if(d.onLoading&&d.onLoading(),m){let t=e.clipboardData.getData(`application/json+vault`);if(t)try{let e=JSON.parse(t);e&&e.id&&e.type&&m(e)}catch{}}if(h||g){let t=e.clipboardData.getData(`text`);if(t.startsWith(`http`)){let e=t.split(`
|
|
988
|
-
`);for(let t of e){if(g)try{let e=await Ca(t);if(e){g(e);continue}}catch{}h&&h(t)}}}d.onComplete&&d.onComplete()}},[]),b=O(function(e){e.defaultPrevented||(e.preventDefault(),e.dataTransfer&&d.draggable&&(e.dataTransfer.effectAllowed=`all`,_&&_.id&&_.type&&e.dataTransfer.setData(`application/json+vault`,JSON.stringify({id:_.id,type:_.type}))))},[]);return I(f,{onCopy:v,onPaste:y,onDrop:O(async function(e){if(e.preventDefault(),e.dataTransfer){if(p){let t=e.dataTransfer.getData(`application/json+vault`);if(t)try{let n=JSON.parse(t);n&&n.id&&n.type&&p(n,e)}catch{return}}let t=e.dataTransfer.getData(`application/json`);if(t){JSON.parse(t);return}if(e.dataTransfer.getData(`text/plain`))return}},[]),onDragOver:O(e=>{e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`)},[]),onDragStart:b,tabIndex:-1,...d})}export{nn as AppHeader,sn as AppMenuProvider,pt as AppProvider,ct as AppReactContext,Dt as AppResourceInstanceProvider,Ot as AppResourceProvider,lt as AppStateReactContext,he as AtlasStoreProvider,_e as AtlasStoreReactContext,Ir as BaseAnnotationCreator,Nr as BaseEditor,Ar as BaseEditorBackButton,jr as BaseEditorCloseButton,Rr as ConfigEditor,ot as ConfigProvider,nt as ConfigReactContext,Vr as ContextMenuProvider,Br as ContextMenuReactContext,Or as EditingStack,J as EditingStackContext,mi as EventEmitterProvider,fi as ExportPanel,ar as HOMEPAGE_COLLECTION,xi as HandleContainer,Ei as HandleControls,kr as InlineEditingStack,Qi as Layout,
|
|
987
|
+
`,Qi=ue(function(e){let t=dt(),n=Ln(),{vault:r}=k(xe),i=r||void 0,a=N(null),o=N(null),{loading:s,state:c,leftPanels:l,centerPanels:u,rightPanels:f,modals:p=[],actions:h}=n,g=l.find(e=>e.id===c.leftPanel.current),_=f.find(e=>e.id===c.rightPanel.current),v=u.find(e=>e.id===c.centerPanel.current),y=p.find(e=>e.id===c.modal.current),b=c.pinnedRightPanel.pinned?f.find(e=>e.id===c.pinnedRightPanel.current):void 0,[ee]=_i([`(max-width: 1020px)`]),x=e.isLoading||!1,te=j(()=>(n.background||[]).map((e,t)=>I(ae,{children:e.render()},t)),[n.background]),S=Mi(`left-panel/${g?.id}`,{left:!0,marginLeft:60,minWidthPx:g?.options?.minWidth||200,maxWidthPx:g?.options?.maxWidth||720,loading:s}),C=Mi(`right-panel/${_?.id}`,{left:!1,minWidthPx:_?.options?.minWidth||320,maxWidthPx:_?.options?.maxWidth||720,loading:s}),w=_&&(b?.id!==_.id||!Ze(c.pinnedRightPanel.state,c.rightPanel.state)),T=S.widthB===`auto`?void 0:()=>S.setWidths({widthA:`auto`,widthB:Bn({options:g?.options,fallback:320})}),E=C.widthB===`auto`?void 0:()=>C.setWidths({widthA:`auto`,widthB:Bn({options:_?.options,fallback:320})});if(fe(()=>{ee&&c.leftPanel.open&&c.rightPanel.open&&(h.leftPanel.close(),h.rightPanel.close())},[ee]),fe(()=>{if(v&&v.onMount)return v.onMount(c.centerPanel.state||v.defaultState||{},{...n,current:h.centerPanel,vault:i},t)},[c.centerPanel.current]),fe(()=>{f.length&&h.rightPanel.change({id:f[0].id}),l.length&&h.leftPanel.change({id:l[0].id}),u.length&&h.centerPanel.change({id:u[0].id})},[]),s)return null;let ne=t=>I(Xi,{$menu:e.leftPanelMenuPosition||`bottom`,ref:S.refs.resizableDiv,className:[`manifest-editor`,t?`transition transition-${t}`:``].join(` `),style:{width:c.leftPanel.open||t!==`exited`?S.widthB:void 0,minWidth:g?.options?.minWidth},children:x?I(Zi,{children:I(Oi,{})}):L(F,{children:[e.leftPanelMenu?I(X,{$open:c.leftPanel.open&&t!==`exited`,$position:e.leftPanelMenuPosition||`bottom`,children:e.leftPanelMenu}):null,I(Zi,{children:c.leftPanel.open||t!==`exited`?I(F,{children:g?I(er,{isLeft:!0,noHeader:!0,transition:t,panel:g,state:c.leftPanel,actions:h.leftPanel}):null}):null})]})}),re=()=>!y||c.modal.open===!1?null:I(d,{title:y.label,onClose:()=>h.modal.close(),children:Vn(y.render(c.modal.state||y.defaultState||{},{...n,current:h.modal,vault:i},t))}),ie=()=>L(Xi,{$menu:e.centerPanelMenuPosition||`top`,children:[e.centerPanelMenu?I(X,{$open:c.centerPanel.open,$position:e.centerPanelMenuPosition||`top`,children:e.centerPanelMenu}):null,I(Zi,{children:I(Be,{resetKeys:[v?.id],FallbackComponent:Rn,children:x?I(`div`,{style:{display:`flex`,flex:1,justifyContent:`center`,alignItems:`center`},children:I(Di,{stroke:`rgba(0,0,0,.3)`,fontSize:`2em`})}):c.centerPanel.open&&v?Vn(v.render(c.centerPanel.state||v.defaultState||{},{...n,current:h.centerPanel,vault:i},t)):null})})]}),oe=t=>I(Xi,{$menu:e.rightPanelMenuPosition||`bottom`,ref:C.refs.resizableDiv,className:t?`transition transition-${t}`:``,style:{width:c.rightPanel.open||t!==`exited`?C.widthB:void 0,minWidth:_?.options?.minWidth},children:x?I(Zi,{children:I(Oi,{})}):L(F,{children:[e.rightPanelMenu?I(X,{$open:c.rightPanel.open,$position:e.rightPanelMenuPosition||`bottom`,children:e.rightPanelMenu}):null,I(Zi,{children:c.rightPanel.open||t!==`exited`?L(F,{children:[w?I(er,{panel:_,state:c.rightPanel,actions:h.rightPanel,pinActions:h.pinnedRightPanel,available:f}):null,b?I(er,{panel:b,state:c.pinnedRightPanel,actions:h.pinnedRightPanel,close:h.rightPanel.close}):null]}):null})]})});return ee?L(Ui,{children:[e.hideHeader?null:L(Wi,{children:[e.header||null,e.menu?I(`menu`,{children:e.menu}):null]}),I(Ki,{children:L(Ni,{children:[I(Pi,{children:ie()}),L(Fi,{children:[l.length>0?I(Ii,{onClick:h.leftPanel.toggle,children:g?.label}):null,f.length>0?I(Ri,{children:L(zi,{onClick:h.rightPanel.toggle,children:[I(St,{rotate:180}),_?.label]})}):null,I(Li,{children:`Preview`})]}),f.length>0?I(Bi,{$open:c.rightPanel.open,children:oe()}):null,l.length>0?I(Vi,{$open:c.leftPanel.open,children:ne()}):null,l.length>0||f.length>0?I(Hi,{$open:c.leftPanel.open||c.rightPanel.open,onClick:()=>{h.leftPanel.close(),h.rightPanel.close()}}):null]})})]}):L(Ui,{className:`manifest-editor ${e.className}`,children:[e.hideHeader?null:L(Wi,{children:[e.header||null,e.menu?I(`menu`,{children:e.menu}):null]}),L(Ki,{ref:e=>{S.refs.container.current=e,C.refs.container.current=e},children:[l.length>0?I(m,{current:c.leftPanel.current,items:l.map(e=>({id:e.id,label:e.label,icon:e.icon,divide:e.divide,onClick:()=>{c.leftPanel.current===e.id?h.leftPanel.toggle():h.leftPanel.change({id:e.id})}})),open:c.leftPanel.open}):null,l.length>0?I(Xe,{nodeRef:a,in:c.leftPanel.open,timeout:400,unmountOnExit:!1,children:e=>L(F,{children:[I(qi,{ref:a,$width:S.widthB,$state:e,$motion:!0,children:ne(e)}),I(Ei,{ref:S.refs.resizer,reset:T,dir:`left`,transition:e,open:c.leftPanel.open||e!==`exited`,actions:h.leftPanel})]})}):null,I(Ji,{children:ie()}),f.length>0?I(Xe,{nodeRef:o,in:c.rightPanel.open,timeout:400,unmountOnExit:!1,children:e=>L(F,{children:[I(Ei,{ref:C.refs.resizer,dir:`right`,reset:E,open:c.rightPanel.open,actions:h.rightPanel}),I(Yi,{ref:o,$width:C.widthB,$state:e,$motion:!0,children:oe(e)})]})}):null]}),I(Gi,{children:e.footer||null}),I(`div`,{className:`hidden`,children:te}),I(F,{children:re()})]})});function Z(e,t){function n(){t({type:`popStack`,panel:e,payload:void 0})}function r(n){t({type:`change`,panel:e,payload:n})}function i(n){t({type:`open`,panel:e,payload:n})}function a(){t({type:`close`,panel:e,payload:void 0})}function o(){t({type:`toggle`,panel:e,payload:void 0})}function s(){t({type:`minimise`,panel:e,payload:void 0})}function c(n){t({type:`maximise`,panel:e,payload:n})}function l(n){t({type:`setCustomWidth`,panel:e,payload:n})}function u(){t({type:`resetSize`,panel:e,payload:void 0})}function d(n){t({type:`pin`,panel:e,payload:n})}function f(){t({type:`unpin`,panel:e,payload:void 0})}return j(()=>({popStack:n,change:r,open:i,close:a,toggle:o,minimise:s,maximise:c,setCustomWidth:l,resetSize:u,pin:d,unpin:f}),[])}function $i(e,t){if(t.payload&&t.payload.stacked){if(e.current){let n=e.stack[e.stack.length-1];if(n&&n.id===e.current)return;t.payload.unique&&(e.stack=e.stack.filter(t=>t.id!==e.current)),e.stack.push({id:e.current,state:e.state?{...Ae(e.state)}:{}})}}else e.stack=[]}function ea(e,t){switch(t.type){case`popStack`:if(e.stack.length){let t=e.stack[e.stack.length-1];t&&(e.current=t.id,e.state=t.state),e.stack=e.stack.slice(0,-1)}break;case`change`:t.payload.id!==e.current&&$i(e,t),e.state=t.payload.state,e.current=t.payload.id;break;case`close`:e.open=!1;break;case`open`:e.open=!0,t.payload&&(t.payload.id!==e.current&&$i(e,t),e.state=t.payload.state,e.current=t.payload.id);break;case`toggle`:e.open=!e.open;break;case`maximise`:e.minimised=!1,t.payload&&(e.state=t.payload.state,e.current=t.payload.id);break;case`minimise`:e.minimised=!0;break;case`setCustomWidth`:e.customWidth=t.payload;break;case`resetSize`:e.customWidth=void 0}if(zn(e))switch(t.type){case`pin`:e.pinned=!0,e.state=t.payload.state,e.current=t.payload.id;break;case`unpin`:e.pinned=!1,e.state=void 0;break}}const ta=je((e,t)=>{switch(t.panel){case`centerPanel`:ea(e.centerPanel,t);break;case`leftPanel`:ea(e.leftPanel,t);break;case`rightPanel`:ea(e.rightPanel,t);break;case`modal`:ea(e.modal,t);break;case`pinnedRightPanel`:ea(e.pinnedRightPanel,t);break}});function Q(){return{customWidth:void 0,minimised:!1,open:!0,current:null,state:null,stack:[]}}function na(){return{leftPanel:Q(),centerPanel:Q(),rightPanel:Q(),modal:Q(),pinnedRightPanel:{...Q(),pinnable:!0,pinned:!1}}}const ra=D({resource:null});function ia(){return k(ra)}function aa(){let e=B(),{resource:t}=ia();U(t,`Nothing selected`);let{id:n,type:r}=t;return ke(()=>e.get({id:n,type:r}),[n,r])}function oa(){let{resource:e}=ia();return e}function sa({resource:e,children:t}){let{id:n,type:r}=e||{};return I(ra.Provider,{value:j(()=>({resource:n&&r?{id:n,type:r}:null}),[n,r]),children:t})}var ca=class extends ie{constructor(...e){super(...e),G(this,`state`,{hasError:!1})}static getDerivedStateFromError(e){return console.error(e),{hasError:!0}}componentDidCatch(e,t){console.error(`Uncaught error:`,e,t)}render(){return this.state.hasError?I(`h1`,{children:`Sorry.. there was an error`}):this.props.children}};function la(e,t){return typeof e==`string`?{id:e,state:t}:e}const ua=ue(function(e){let t=W(),n=hi(),r=t.layout,[i,a]=M(ta,void 0,na),o={centerPanel:Z(`centerPanel`,a),leftPanel:Z(`leftPanel`,a),rightPanel:Z(`rightPanel`,a),pinnedRightPanel:Z(`pinnedRightPanel`,a),modal:Z(`modal`,a),editingStack:vr()};function s(e){let t=r.rightPanels.find(t=>t.id===e);if(t)return[t,o.rightPanel,o.pinnedRightPanel];let n=r.centerPanels.find(t=>t.id===e);if(n)return[n,o.centerPanel];let i=r.leftPanels.find(t=>t.id===e);if(i)return[i,o.leftPanel];U(!1,`Was not able to find panel with id "${e}"`)}function c(e,t){let{id:r,state:i,stacked:a}=la(e,t),[o,c,l]=s(r);if(l&&o.options?.openPinned)l.pin({id:r,state:{...o.defaultState||{},...i||{}}});else{let e={id:r,state:{...o.defaultState||{},...i||{}},stacked:a};n.emit(`layout.open`,e),c.open(e)}}function l(e,t){let{id:r,state:i}=la(e,t),[a,o]=s(r),c={id:r,state:{...a.defaultState||{},...i||{}},stacked:!0};n.emit(`layout.open`,c),o.open(c)}function u(e,t){let{id:r,state:i,stacked:a}=la(e,t),[o,c]=s(r),l={id:r,state:{...o.defaultState||{},...i||{}},stacked:a};n.emit(`layout.change`,l),c.change(l)}function d(e,t){let{id:r}=la(e,t),[,i]=s(r);n.emit(`layout.close`,{id:r}),i.close()}function f(e,t){let{id:r}=la(e,t),[,i]=s(r);n.emit(`layout.toggle`,{id:r}),i.toggle()}function p(e,t={},{reset:i,property:a,stacked:s,forceOpen:c}={}){let l={resource:Fe(e)?e:{type:`SpecificResource`,source:e},...t};n.emit(`layout.edit`,l),o.editingStack.edit(l,i),r.rightPanels.find(e=>e.id===`@manifest-editor/editor`)&&(c?o.rightPanel.open({id:`@manifest-editor/editor`,stacked:s!==!1,state:{property:a},unique:!0}):o.rightPanel.change({id:`@manifest-editor/editor`,stacked:s!==!1,state:{property:a},unique:!0}))}function m(e){o.editingStack.create(e,{}),n.emit(`layout.create`,e),r.modals?.find(e=>e.id===`@manifest-editor/creator`)?o.modal.open({id:`@manifest-editor/creator`,stacked:!0,unique:!0,state:e}):r.rightPanels.find(e=>e.id===`@manifest-editor/creator`)&&o.rightPanel.open({id:`@manifest-editor/creator`,stacked:!0,unique:!0,state:e})}let h={open:c,change:u,close:d,toggle:f,stack:l,edit:p,create:m};return I(Mn.Provider,{value:j(()=>({...o,...h}),[r]),children:I(Nn.Provider,{value:i,children:e.children})})}),da=[{id:`universal-viewer`,config:{url:`https://universalviewer.dev/#?iiifManifestId={manifestId}`},type:`external-manifest-preview`,label:`Universal viewer`},{id:`mirador-3`,type:`external-manifest-preview`,label:`Mirador 3`,config:{url:`https://tomcrane.github.io/scratch/mirador3/?iiif-content={manifestId}`}},{id:`annona`,type:`external-manifest-preview`,label:`Annona`,config:{url:`https://ncsu-libraries.github.io/annona/tools/#/display?url={manifestId}&viewtype=iiif-storyboard&settings=%7B%22fullpage%22%3Atrue%7D`}},{id:`iiif-preview`,config:{url:`https://iiif-preview.digirati.services/store`},type:`iiif-preview-service`,label:`IIIF Preview`}],fa=new Qe({approximateServices:!0,verificationsRequired:8,enableFetching:!0});function pa({config:e,saveConfig:t,children:n,theme:r,previews:i,resource:a,editing:o}){let s=it(),c=j(()=>({...s,...e,previews:e?.previews||s.previews||da}),[s,e]);return I(ca,{children:I(ye.Provider,{value:fa,children:I(Ot,{resource:a,children:I(sr,{children:I(pe,{theme:r||Fr,children:I(ot,{config:c,saveConfig:t,children:I(Or,{children:I(ua,{children:I(Vr,{children:I(Bt,{previews:i||[],configs:c.previews,children:I(ge,{children:n})})})})})})})})})})})}const ma={},ha=D(`global`);function ga(){return k(ha)}function _a(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function va(e){let t=ga(),[,n]=M(e=>e+1,0),r=j(()=>(ma[t]||(ma[t]={}),ma[t][e]||(ma[t][e]={name:e,emitter:Je(),status:`idle`,promise:Promise.resolve(),abort:new AbortController,reject:()=>void 0,resolve:()=>void 0}),ma[t][e]),[t,e]);return $(r,`abort`,n),$(r,`error`,n),$(r,`complete`,n),$(r,`running`,n),r}function $(e,t,n){let r=O(()=>n(e),[n]);A(()=>{let n=e.emitter;return n.on(t,r),()=>n.off(t,r)},[t,r,e.emitter])}const ya=()=>void 0;function ba(e,t){let n=va(e);return $(n,`complete`,t||ya),[e=>{n.status===`running`&&(n.abort.abort(),n.emitter.emit(`abort`)),n.error&&(n.error=``);let t=_a();t.promise.then(()=>n.emitter.emit(`complete`)).catch(()=>n.emitter.emit(`error`)),n.status=`running`,n.request=e,n.promise=t.promise,n.resolve=t.resolve,n.reject=t.reject,n.emitter.emit(`running`)},n]}function xa(e,t){let n=va(e);return $(n,`running`,t),[e=>{n.status===`running`&&(n.response=e,n.status=`complete`,n.resolve())},n,(e,t)=>{n.status===`running`&&(n.error=t||e,n.status=`error`,n.reject(e))}]}function Sa({children:e}){return I(ha.Provider,{value:j(()=>`id-${Date.now()}`,[]),children:e})}function Ca(e){return!1}function wa({as:e,reference:t,onReference:n,onLink:r,onAnalysis:i,onDropReference:a,onDropLink:o,onDropAnalysis:s,onPasteReference:c,onPasteLink:l,onPasteAnalysis:u,...d}){let f=e||`div`,p=a||n,m=c||n,h=l||r,g=u||i,_=j(()=>t,[t?.id,t?.type]),v=O(function(e){e.defaultPrevented||(e.preventDefault(),e.clipboardData&&_&&_.id&&_.type&&e.clipboardData.setData(`application/json+vault`,JSON.stringify({id:_.id,type:_.type})))},[_]),y=O(async function(e){if(!e.defaultPrevented&&(e.preventDefault(),e.clipboardData)){if(d.onLoading&&d.onLoading(),m){let t=e.clipboardData.getData(`application/json+vault`);if(t)try{let e=JSON.parse(t);e&&e.id&&e.type&&m(e)}catch{}}if(h||g){let t=e.clipboardData.getData(`text`);if(t.startsWith(`http`)){let e=t.split(`
|
|
988
|
+
`);for(let t of e){if(g)try{let e=await Ca(t);if(e){g(e);continue}}catch{}h&&h(t)}}}d.onComplete&&d.onComplete()}},[]),b=O(function(e){e.defaultPrevented||(e.preventDefault(),e.dataTransfer&&d.draggable&&(e.dataTransfer.effectAllowed=`all`,_&&_.id&&_.type&&e.dataTransfer.setData(`application/json+vault`,JSON.stringify({id:_.id,type:_.type}))))},[]);return I(f,{onCopy:v,onPaste:y,onDrop:O(async function(e){if(e.preventDefault(),e.dataTransfer){if(p){let t=e.dataTransfer.getData(`application/json+vault`);if(t)try{let n=JSON.parse(t);n&&n.id&&n.type&&p(n,e)}catch{return}}let t=e.dataTransfer.getData(`application/json`);if(t){JSON.parse(t);return}if(e.dataTransfer.getData(`text/plain`))return}},[]),onDragOver:O(e=>{e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`)},[]),onDragStart:b,tabIndex:-1,...d})}export{nn as AppHeader,sn as AppMenuProvider,pt as AppProvider,ct as AppReactContext,Dt as AppResourceInstanceProvider,Ot as AppResourceProvider,lt as AppStateReactContext,he as AtlasStoreProvider,_e as AtlasStoreReactContext,Ir as BaseAnnotationCreator,Nr as BaseEditor,Ar as BaseEditorBackButton,jr as BaseEditorCloseButton,Rr as ConfigEditor,ot as ConfigProvider,nt as ConfigReactContext,Vr as ContextMenuProvider,Br as ContextMenuReactContext,Or as EditingStack,J as EditingStackContext,mi as EventEmitterProvider,fi as ExportPanel,ar as HOMEPAGE_COLLECTION,xi as HandleContainer,Ei as HandleControls,kr as InlineEditingStack,Qi as Layout,Mn as LayoutActionsReactContext,Nn as LayoutStateReactContext,er as ModularPanel,Xn as ModularPanelHeader,q as ModulePanelButton,_t as MultiAppProvider,Rn as PanelError,tn as PreviewButton,Bt as PreviewProvider,cr as PreviewVaultBoundary,sr as PreviewVaultContext,st as PrimeAppReactContext,pi as ReactEmitterContext,sa as ResourceEditingProvider,ra as ResourceEditingReactContext,rt as SaveConfigReactContext,pa as ShellProvider,Sa as TaskBridge,wa as UniversalCopyTarget,pn as analyse,hn as analyseJson,pr as baseCreator,Pr as baseEditor,Cn as copyToClipboard,xn as createActionIdentity,Sn as createDownload,tr as createPreviewVault,fn as detectMedia,Mr as editBasedOnResource,En as extendApp,na as getDefaultLayoutState,Q as getDefaultPanelState,vn as getFormat,yn as getImageDimensions,bn as getManifestNomalized,zn as isPinnableState,ta as layoutReducer,Tn as mapApp,Bn as panelSizing,ln as polygonToBoundingBox,wn as randomId,Vn as renderHelper,bi as useAnnotationCreatorState,Tr as useAnnotationPageEditor,W as useApp,ut as useAppInstance,an as useAppMenu,on as useAppMenuItem,Et as useAppResource,Tt as useAppResourceInstance,dt as useAppState,ht as useApps,cn as useAtlasStore,In as useAvailableLayouts,Cr as useCollectionEditor,it as useConfig,xr as useCreatingResource,lr as useCreator,Gr as useCustomContextMenu,Lr as useDecayState,ia as useEditingContext,yr as useEditingResource,br as useEditingResourceStack,vr as useEditingStack,Er as useEditor,hi as useEmitter,gi as useEvent,wr as useGenericEditor,Dn as useHighlightedImageResource,kn as useHoverHighlightImageResource,ur as useInlineCreator,Fn as useLayoutActions,Ln as useLayoutProvider,Pn as useLayoutState,E as useLocalStorage,Sr as useManifestEditor,_i as useMatchMedia,ne as useOptionalLocalStorage,oa as useOptionalResource,Z as usePanelActions,Ht as usePreviewContext,or as usePreviewHistory,nr as usePreviewVault,Vt as usePreviews,aa as useResource,Ur as useResourceContextMenuItems,at as useSaveConfig,vi as useSaveVault,Jn as useSetCustomTitle,yi as useSvgTools,va as useTask,ba as useTaskDispatch,$ as useTaskEvent,xa as useTaskRunner,On as useTemporaryHighlight};
|
|
989
989
|
//# sourceMappingURL=index.js.map
|