@manifest-editor/creators 2.0.3-next.0.9825dc3 → 2.0.3-next.0.da9a339
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/{iiif-browser-form.lazy-X1qeXSx5.js → iiif-browser-form.lazy-B1XgjrGQ.js} +2 -2
- package/dist/iiif-browser-form.lazy-B1XgjrGQ.js.map +1 -0
- package/dist/{iiif-browser-form.lazy-hdiWtT9m.cjs → iiif-browser-form.lazy-DE1Gqs-q.cjs} +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +43 -43
- package/dist/index.js +2 -2
- package/dist/{manifest-browser-form.lazy-DWabAT8J.cjs → manifest-browser-form.lazy-CIUTZSTb.cjs} +1 -1
- package/dist/{manifest-browser-form.lazy-Bm07wmnB.js → manifest-browser-form.lazy-CvgqUwj3.js} +2 -2
- package/dist/{manifest-browser-form.lazy-Bm07wmnB.js.map → manifest-browser-form.lazy-CvgqUwj3.js.map} +1 -1
- package/dist/manifest-browser-form.lazy-DYKHUOu_.js +1 -0
- package/dist/manifest-browser-form.lazy-GlS8qL75.cjs +1 -0
- package/package.json +7 -7
- package/dist/iiif-browser-form.lazy-X1qeXSx5.js.map +0 -1
- package/dist/manifest-browser-form.lazy-D6pK_j7N.cjs +0 -1
- package/dist/manifest-browser-form.lazy-RbQ8NE8u.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useMemo as e}from"react";import{jsx as t}from"react/jsx-runtime";import{PreviewVaultBoundary as n,usePreviewVault as r}from"@manifest-editor/shell";import{IIIFBrowser as i}from"iiif-browser";function a(a){let o=e(()=>a.options.initialData||{},[a.options.initialData]),s=r(),c=e(()=>[{type:`callback`,label:`Select`,supportedTypes:[`Canvas`,`CanvasList`,`CanvasRegion`,`ImageService`,`ImageServiceRegion`],cb:e=>a.runCreate({output:e}),format:{type:`custom`,format:(e,t,n)=>{let r=Array.isArray(e)?e:[{...e,parent:t}],i=[];for(let e of r)i.push({resource:n.get(e),parent:e.parent,selector:e.selector});return i}}}],[a.runCreate]),l=e(()=>({canCropImage:!0,canSelectCanvas:!0,canSelectManifest:!1,canSelectCollection:!1,multiSelect:!0,...o.iiifBrowserOptions?.navigation||{}}),[o]);return t(n,{children:t(i,{ui:e(()=>({buttonClassName:`bg-me-primary-500 text-white hover:bg-me-primary-600`,...o.iiifBrowserOptions?.ui||{}}),[o]),vault:s,className:`iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full`,output:c,navigation:l,customPages:o.iiifBrowserOptions?.customPages||{},history:o.iiifBrowserOptions?.history||{}})})}export{a as default};
|
|
2
|
-
//# sourceMappingURL=iiif-browser-form.lazy-
|
|
1
|
+
import{useMemo as e}from"react";import{jsx as t}from"react/jsx-runtime";import{PreviewVaultBoundary as n,usePreviewVault as r}from"@manifest-editor/shell";import{IIIFBrowser as i}from"iiif-browser";function a(a){let o=e(()=>a.options.initialData||{},[a.options.initialData]),s=r(),c=e(()=>[{type:`callback`,label:`Select`,supportedTypes:[`Canvas`,`CanvasList`,`CanvasRegion`,`ImageService`,`ImageServiceRegion`],cb:e=>a.runCreate({output:e}),format:{type:`custom`,format:(e,t,n)=>{let r=Array.isArray(e)?e:[{...e,parent:t}],i=[];for(let e of r)i.push({resource:n.get(e),parent:e.parent,selector:e.selector});return i}}}],[a.runCreate]),l=e(()=>({canCropImage:!0,canSelectCanvas:!0,canSelectManifest:!1,canSelectCollection:!1,multiSelect:!0,...o.iiifBrowserOptions?.navigation||{}}),[o]);return t(n,{children:t(i,{ui:e(()=>({buttonClassName:`bg-me-primary-500 text-white hover:bg-me-primary-600`,homeLink:`${window.location.origin}/collection.json`,...o.iiifBrowserOptions?.ui||{}}),[o]),vault:s,className:`iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full`,output:c,navigation:l,customPages:o.iiifBrowserOptions?.customPages||{},history:o.iiifBrowserOptions?.history||{}})})}export{a as default};
|
|
2
|
+
//# sourceMappingURL=iiif-browser-form.lazy-B1XgjrGQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iiif-browser-form.lazy-B1XgjrGQ.js","names":["initialData: IIIFBrowserCreatorInitialData","resource","vault"],"sources":["../src/ContentResource/IIIFBrowserCreator/iiif-browser-form.lazy.tsx"],"sourcesContent":["import type { CreatorContext } from \"@manifest-editor/creator-api\";\nimport { PreviewVaultBoundary, usePreviewVault } from \"@manifest-editor/shell\";\nimport { IIIFBrowser, type IIIFBrowserProps } from \"iiif-browser\";\nimport { useMemo } from \"react\";\n\nexport interface IIIFBrowserCreatorInitialData {\n iiifBrowserOptions?: Partial<IIIFBrowserProps>;\n}\n\nexport default function IIIFBrowserCreatorForm(props: CreatorContext) {\n const initialData: IIIFBrowserCreatorInitialData = useMemo(() => {\n return props.options.initialData || {};\n }, [props.options.initialData]);\n\n const vault = usePreviewVault();\n const output = useMemo(() => {\n return [\n {\n type: \"callback\",\n label: \"Select\",\n supportedTypes: [\"Canvas\", \"CanvasList\", \"CanvasRegion\", \"ImageService\", \"ImageServiceRegion\"],\n cb: (resource) => props.runCreate({ output: resource }),\n format: {\n type: \"custom\",\n format: (resource, parent, vault) => {\n const resourcesAsArray = Array.isArray(resource) ? resource : [{ ...resource, parent }];\n const resources = [];\n for (const resource of resourcesAsArray) {\n resources.push({\n resource: vault.get(resource),\n parent: resource.parent,\n selector: resource.selector,\n });\n }\n return resources;\n },\n },\n },\n ] as IIIFBrowserProps[\"output\"];\n }, [props.runCreate]);\n\n const navigationOptions = useMemo(() => {\n return {\n canCropImage: true,\n canSelectCanvas: true,\n canSelectManifest: false,\n canSelectCollection: false,\n // @todo fix the output so this one works.\n multiSelect: true,\n ...(initialData.iiifBrowserOptions?.navigation || {}),\n } as IIIFBrowserProps[\"navigation\"];\n }, [initialData]);\n\n const uiOptions = useMemo(() => {\n return {\n buttonClassName: \"bg-me-primary-500 text-white hover:bg-me-primary-600\",\n homeLink: `${window.location.origin}/collection.json`,\n // /collection.json\n ...(initialData.iiifBrowserOptions?.ui || {}),\n } as IIIFBrowserProps[\"ui\"];\n }, [initialData]);\n\n return (\n <PreviewVaultBoundary>\n <IIIFBrowser\n ui={uiOptions}\n vault={vault}\n className=\"iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full\"\n output={output}\n navigation={navigationOptions}\n customPages={initialData.iiifBrowserOptions?.customPages || {}}\n history={initialData.iiifBrowserOptions?.history || {}}\n />\n </PreviewVaultBoundary>\n );\n}\n"],"mappings":"sMASA,SAAwB,EAAuB,EAAuB,CACpE,IAAMA,EAA6C,MAC1C,EAAM,QAAQ,aAAe,EAAE,CACrC,CAAC,EAAM,QAAQ,YAAY,CAAC,CAEzB,EAAQ,GAAiB,CACzB,EAAS,MACN,CACL,CACE,KAAM,WACN,MAAO,SACP,eAAgB,CAAC,SAAU,aAAc,eAAgB,eAAgB,qBAAqB,CAC9F,GAAK,GAAa,EAAM,UAAU,CAAE,OAAQ,EAAU,CAAC,CACvD,OAAQ,CACN,KAAM,SACN,QAAS,EAAU,EAAQ,IAAU,CACnC,IAAM,EAAmB,MAAM,QAAQ,EAAS,CAAG,EAAW,CAAC,CAAE,GAAG,EAAU,SAAQ,CAAC,CACjF,EAAY,EAAE,CACpB,IAAK,IAAMC,KAAY,EACrB,EAAU,KAAK,CACb,SAAUC,EAAM,IAAID,EAAS,CAC7B,OAAQA,EAAS,OACjB,SAAUA,EAAS,SACpB,CAAC,CAEJ,OAAO,GAEV,CACF,CACF,CACA,CAAC,EAAM,UAAU,CAAC,CAEf,EAAoB,OACjB,CACL,aAAc,GACd,gBAAiB,GACjB,kBAAmB,GACnB,oBAAqB,GAErB,YAAa,GACb,GAAI,EAAY,oBAAoB,YAAc,EAAE,CACrD,EACA,CAAC,EAAY,CAAC,CAWjB,OACE,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CACC,GAZY,OACT,CACL,gBAAiB,uDACjB,SAAU,GAAG,OAAO,SAAS,OAAO,kBAEpC,GAAI,EAAY,oBAAoB,IAAM,EAAE,CAC7C,EACA,CAAC,EAAY,CAAC,CAMJ,QACP,UAAU,6FACF,SACR,WAAY,EACZ,YAAa,EAAY,oBAAoB,aAAe,EAAE,CAC9D,QAAS,EAAY,oBAAoB,SAAW,EAAE,EACtD,CAAA,CACmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./index.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`),r=require(`@manifest-editor/shell`),i=require(`iiif-browser`);function a(e){let a=(0,t.useMemo)(()=>e.options.initialData||{},[e.options.initialData]),o=(0,r.usePreviewVault)(),s=(0,t.useMemo)(()=>[{type:`callback`,label:`Select`,supportedTypes:[`Canvas`,`CanvasList`,`CanvasRegion`,`ImageService`,`ImageServiceRegion`],cb:t=>e.runCreate({output:t}),format:{type:`custom`,format:(e,t,n)=>{let r=Array.isArray(e)?e:[{...e,parent:t}],i=[];for(let e of r)i.push({resource:n.get(e),parent:e.parent,selector:e.selector});return i}}}],[e.runCreate]),c=(0,t.useMemo)(()=>({canCropImage:!0,canSelectCanvas:!0,canSelectManifest:!1,canSelectCollection:!1,multiSelect:!0,...a.iiifBrowserOptions?.navigation||{}}),[a]);return(0,n.jsx)(r.PreviewVaultBoundary,{children:(0,n.jsx)(i.IIIFBrowser,{ui:(0,t.useMemo)(()=>({buttonClassName:`bg-me-primary-500 text-white hover:bg-me-primary-600`,...a.iiifBrowserOptions?.ui||{}}),[a]),vault:o,className:`iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full`,output:s,navigation:c,customPages:a.iiifBrowserOptions?.customPages||{},history:a.iiifBrowserOptions?.history||{}})})}exports.default=a;
|
|
1
|
+
const e=require(`./index.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`),r=require(`@manifest-editor/shell`),i=require(`iiif-browser`);function a(e){let a=(0,t.useMemo)(()=>e.options.initialData||{},[e.options.initialData]),o=(0,r.usePreviewVault)(),s=(0,t.useMemo)(()=>[{type:`callback`,label:`Select`,supportedTypes:[`Canvas`,`CanvasList`,`CanvasRegion`,`ImageService`,`ImageServiceRegion`],cb:t=>e.runCreate({output:t}),format:{type:`custom`,format:(e,t,n)=>{let r=Array.isArray(e)?e:[{...e,parent:t}],i=[];for(let e of r)i.push({resource:n.get(e),parent:e.parent,selector:e.selector});return i}}}],[e.runCreate]),c=(0,t.useMemo)(()=>({canCropImage:!0,canSelectCanvas:!0,canSelectManifest:!1,canSelectCollection:!1,multiSelect:!0,...a.iiifBrowserOptions?.navigation||{}}),[a]);return(0,n.jsx)(r.PreviewVaultBoundary,{children:(0,n.jsx)(i.IIIFBrowser,{ui:(0,t.useMemo)(()=>({buttonClassName:`bg-me-primary-500 text-white hover:bg-me-primary-600`,homeLink:`${window.location.origin}/collection.json`,...a.iiifBrowserOptions?.ui||{}}),[a]),vault:o,className:`iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full`,output:s,navigation:c,customPages:a.iiifBrowserOptions?.customPages||{},history:a.iiifBrowserOptions?.history||{}})})}exports.default=a;
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require(`./manifest-browser-form.lazy-
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require(`./manifest-browser-form.lazy-CIUTZSTb.cjs`);let l=require(`@manifest-editor/creator-api`),u=require(`@iiif/helpers`),d=require(`@manifest-editor/components`),f=require(`@manifest-editor/editors`),p=require(`react`);p=s(p);let m=require(`react/jsx-runtime`),h=require(`react-iiif-vault`),g=require(`styled-components`);g=s(g);let _=require(`@manifest-editor/shell`),v=require(`@iiif/parser/image-3`),y=require(`@manifest-editor/editor-api`),ee=require(`react-error-boundary`),te=require(`iiif-browser`);async function b(e,t){let n={id:e.url||t.generateId(`provider`),label:e.label,type:`Agent`,homepage:[],logo:[]};return e.homepage&&(n.homepage=[t.embed({id:e.url,label:(0,u.getValue)(e.homepageLabel)?e.homepageLabel:{en:[`Homepage`]},type:`Text`,format:`text/html`,language:[`en`]})]),e.logo&&(n.logo=[t.embed({id:e.logo,type:`Image`})]),t.embed(n)}function x(e){let t=e.options.initialData,[n,r]=(0,p.useState)(t.url||``),[i,a]=(0,p.useState)(t.label||{en:[``]}),[o,s]=(0,p.useState)(t.homepage||``),[c,l]=(0,p.useState)(t.logo||``),[u,h]=(0,p.useState)(t.homepageLabel||{en:[``]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`div`,{className:`max-w-xl`,children:[(0,m.jsx)(f.LanguageFieldEditor,{containerId:`label`,focusId:`label_`,label:`Label`,fields:i,onSave:e=>a(e.toInternationalString())}),(0,m.jsxs)(f.InputContainer,{$fluid:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`provider-logo`,children:`Logo`}),(0,m.jsx)(f.Input,{placeholder:`https://example.org/logo.png`,type:`text`,id:`provider-logo`,value:c,onChange:e=>l(e.target.value)})]}),(0,m.jsxs)(f.InputContainer,{$fluid:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`provider-homepage`,children:`Homepage`}),(0,m.jsx)(f.Input,{placeholder:`https://example.org/homepage`,type:`text`,id:`provider-homepage`,value:o,onChange:e=>s(e.target.value)})]}),o?(0,m.jsx)(`div`,{children:(0,m.jsx)(f.LanguageFieldEditor,{containerId:`homepageLabel`,focusId:`homepageLabel_`,label:`Homepage label`,fields:u,onSave:e=>h(e.toInternationalString())})}):null,(0,m.jsxs)(f.InputContainer,{$fluid:!0,children:[(0,m.jsx)(f.InputLabel,{$margin:!1,htmlFor:`provider-url`,children:`Provider ID`}),(0,m.jsx)(`span`,{className:`text-gray-500 text-sm mb-2`,children:`Will be generated if not specified, this is not a URL that the user can follow`}),(0,m.jsx)(f.Input,{placeholder:`https://id.loc.gov/authorities/abc123`,type:`text`,id:`provider-url`,value:n,onChange:e=>r(e.target.value)})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({url:n,label:i,homepage:o,homepageLabel:u,logo:c})},children:`Add provider`})]})})}const ne=(0,l.defineCreator)({id:`@manifest-editor/provider`,label:`Provider`,summary:`Create a new provider`,resourceType:`Agent`,resourceFields:[`id`,`type`,`label`],supports:{parentTypes:[`Manifest`,`Collection`],parentFields:[`provider`],initialData:!0},create:b,render(e){return(0,m.jsx)(x,{...e})}}),re=e=>(0,m.jsxs)(`svg`,{...e,viewBox:`4 4 16 16`,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,children:[e.title?(0,m.jsx)(`title`,{children:e.title}):null,(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{d:`M8 5v14l11-7z`,fill:`currentColor`})]}),ie=e=>(0,m.jsxs)(`svg`,{...e,viewBox:`4 4 16 16`,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,children:[e.title?(0,m.jsx)(`title`,{children:e.title}):null,(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{fill:`currentColor`,d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`})]}),ae=({title:e,...t})=>(0,m.jsxs)(`svg`,{...t,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`2 2 20 20`,children:[e?(0,m.jsx)(`title`,{children:e}):null,(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{fill:`currentColor`,d:`M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z`})]}),oe=({title:e,...t})=>(0,m.jsxs)(`svg`,{...t,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`2 2 20 20`,children:[e?(0,m.jsx)(`title`,{children:e}):null,(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{fill:`currentColor`,d:`M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z`})]}),se=({title:e,...t})=>(0,m.jsxs)(`svg`,{...t,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`2 2 20 20`,children:[e?(0,m.jsx)(`title`,{children:e}):null,(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{fill:`currentColor`,d:`M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 0 0 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4 9.91 6.09 12 8.18V4z`})]}),ce=g.default.div`
|
|
2
2
|
background: #ededed; // Not in variable.
|
|
3
3
|
display: flex;
|
|
4
4
|
padding: 0.5em;
|
|
@@ -94,4 +94,4 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
94
94
|
`;function S(e){let[t,n]=(0,p.useState)(!1),{progress:r,currentTime:i,element:a}=(0,h.useMediaElements)(),{duration:o,isMuted:s,volume:c,isPlaying:l,playRequested:u}=(0,h.useMediaState)(),{setVolume:d,toggleMute:f,play:g,pause:_,setDurationPercent:v}=(0,h.useMediaActions)(),y=s||c===0?se:c>50?ae:oe;return(0,p.useLayoutEffect)(()=>{if(a.current){let t=a.current;if(t.error&&e.onError){e.onError(t.error?.message||`Unknown error`);return}let n=()=>{e.onError&&e.onError(t.error?.message||`Unknown error`)},r=()=>{t.duration&&e.onDuration&&e.onDuration(t.duration),e.onDimensions&&t instanceof HTMLVideoElement&&e.onDimensions(t.videoWidth,t.videoHeight)};return t.addEventListener(`loadedmetadata`,r),t.addEventListener(`error`,n),()=>{t.removeEventListener(`loadedmetadata`,r),t.removeEventListener(`error`,n)}}},[]),(0,m.jsxs)(ce,{children:[(0,m.jsx)(ue,{disabled:u,onClick:()=>{l?_():g()},children:u?(0,m.jsx)(ye,{stroke:`#999`}):l?(0,m.jsx)(ie,{title:`Pause`}):(0,m.jsx)(re,{title:`Play`})}),(0,m.jsx)(de,{ref:i,children:`0:00`}),(0,m.jsxs)(fe,{onClick:e=>{let{left:t,width:n}=e.currentTarget.getBoundingClientRect();v((e.pageX-t)/n)},children:[(0,m.jsx)(me,{}),o?(0,m.jsx)(pe,{ref:r}):null]}),(0,m.jsx)(de,{children:(0,h.formatTime)(o)}),(0,m.jsxs)(ge,{onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[(0,m.jsx)(_e,{$isOpen:t,children:(0,m.jsxs)(`span`,{children:[(0,m.jsx)(xe,{htmlFor:`audio-slider`,children:`Change volume`}),(0,m.jsx)(ve,{id:`audio-slider`,role:`slider`,disabled:s,min:`0`,max:`100`,value:c,onChange:e=>d(Number(e.currentTarget.value))})]})}),(0,m.jsx)(he,{onClick:()=>f(),children:(0,m.jsx)(y,{title:s?`Mute`:`Unmute`})})]})]})}async function C(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=t.embed({id:e.url,type:`Sound`,format:`audio/mp4`,duration:e.duration||0});if(r===`Annotation`)return t.embed({...n,label:(0,u.getValue)(e.label)&&e.label,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:i,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),a=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:i,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:a,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},duration:e.duration||0,items:[s]})}}function w(e){let[t,n]=(0,p.useState)(``),[r,i]=(0,p.useState)(0),[a,o]=(0,p.useState)(``),[s,c]=(0,p.useState)({en:[``]});return(0,p.useEffect)(()=>{if(o(``),i(0),t){let e=t.split(`/`).pop()?.split(`.`).shift();c({en:[e||``]})}},[t]),(0,m.jsxs)(d.PaddedSidebarContainer,{children:[a?(0,m.jsx)(d.ErrorMessage,{children:a}):null,(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`audio-url`,children:`URL`}),(0,m.jsx)(f.Input,{type:`text`,id:`audio-url`,value:t,onChange:e=>n(e.target.value)})]}),t&&!a?(0,m.jsx)(`div`,{children:(0,m.jsx)(f.LanguageFieldEditor,{containerId:`label`,focusId:`label_`,label:`Label`,fields:s,onSave:e=>c(e.toInternationalString())},`${t}__${r}`)}):null,t&&!a?(0,m.jsx)(h.CanvasPanel.AudioHTML,{media:{url:t,duration:r,type:`Sound`},children:(0,m.jsx)(S,{onError:e=>o(e),onDuration:e=>i(~~e)},`${t}__${r}`)},`${t}__${r}`):null,r&&!a?(0,m.jsxs)(f.FormFieldWrapper,{children:[(0,m.jsx)(f.InputLabel,{htmlFor:`duration`,children:`Duration`}),(0,m.jsx)(f.Input,{type:`number`,id:`duration`,value:r,onChange:e=>i(e.target.valueAsNumber)})]}):null,(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({url:t,duration:r,label:s})},isDisabled:!t||!!a,children:`Add audio`})]})}const T=(0,l.defineCreator)({id:`@manifest-editor/audio-annotation`,create:C,label:`Audio`,summary:`Audio annotation`,icon:(0,m.jsx)(d.AudioIcon,{}),render(e){return(0,m.jsx)(w,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{initialData:!0,onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},staticFields:{type:`Annotation`}});async function E(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=Object.keys(e.body),a=[];for(let r of i){let i=e.body[r].join(`
|
|
95
95
|
`);i&&a.push(await t.create(`@manifest-editor/html-body-creator`,{language:r,body:i},{parent:{resource:n,property:`items`}}))}let o=await t.create(`@manifest-editor/image-url-creator`,{url:e.imageUrl},{parent:{resource:n,property:`body`}});if(o&&a.push(o),r===`Annotation`)return t.embed({...n,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:a,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),i=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:a,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:i,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},height:e.height||1e3,width:e.width||1e3,items:[s]})}}function D(e){let[t,n]=(0,_.useAnnotationCreatorState)({key:`bodyValue`,initialValue:{en:[``]},requestId:e.options.initialData?.requestId});return(0,m.jsx)(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());e.runCreate({body:{en:[r.caption]},imageUrl:r.url})},children:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`url`,children:`URL to Image`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``,placeholder:`https://example.org/image.jpg`})]}),(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`caption`,children:`Caption`}),(0,m.jsx)(f.Input,{id:`caption`,name:`caption`,placeholder:`Enter a caption`,onChange:e=>n({en:[e.target.value]}),value:t.en?.[0]||``})]}),(0,m.jsx)(d.ActionButton,{primary:!0,type:`submit`,children:`Create`})]})})}const O=(0,l.defineCreator)({id:`@manifest-editor/captioned-image-annotation`,create:E,label:`Captioned image`,summary:`Add an image from a URL with caption`,icon:(0,m.jsx)(d.AddImageIcon,{}),render(e){return(0,m.jsx)(D,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{initialData:!0,disallowPainting:!0,parentTypes:[`AnnotationPage`],parentFields:[`items`]},staticFields:{type:`Annotation`}});async function k(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=Object.keys(e.body),a=[];for(let r of i){let i=e.body[r].join(`
|
|
96
96
|
`);i&&a.push(await t.create(`@manifest-editor/html-body-creator`,{language:r,body:i},{parent:{resource:n,property:`items`}}))}if(r===`Annotation`)return t.embed({...n,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:a,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),i=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:a,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:i,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},height:e.height||1e3,width:e.width||1e3,items:[s]})}}function A(e){let[t,n]=(0,_.useAnnotationCreatorState)({key:`bodyValue`,initialValue:{en:[``]},requestId:e.options.initialData?.requestId}),r=(0,u.getValue)(t).trim()===``;return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(d.HTMLEditor,{className:`border-none`,value:t.en?.[0]||``,onChange:e=>n({en:[e]})}),(0,m.jsx)(d.ActionButton,{primary:!0,type:`button`,onPress:()=>{e.runCreate({body:t})},isDisabled:r,children:`Create`})]})}const j=(0,l.defineCreator)({id:`@manifest-editor/html-annotation`,create:k,label:`HTML`,summary:`HTML annotation`,icon:(0,m.jsx)(d.HTMLIcon,{}),render(e){return(0,m.jsx)(A,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{initialData:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},staticFields:{type:`Annotation`}}),M={canvasInteraction:!0,spatial:!0,async run(e,{vault:t,options:n}){if(e&&e.type===`Annotation`&&n.targetType===`Annotation`){let n=t.get(e),r=n.target;if(!(r&&r.source?.type===`Canvas`))return;let i=r.source,a=t.get(i);if(!a.items)return;let o=t.get(a.items[0]);if(!o||o.items.length<2&&!a.behavior.includes(`multi-image`))return;let s=t.get(n.body)[0],c=n.body[0]?.selector,l=(s.service||[]).find(e=>(0,v.isImageService)(e));l&&l.width&&l.height&&(l.width!==s.width&&t.modifyEntityField({id:s.id,type:`ContentResource`},`width`,l.width),l.height!==s.height&&t.modifyEntityField({id:s.id,type:`ContentResource`},`height`,l.height));let u=l?.width||s.width,d=l?.height||s.height;if(c&&(c.type===`iiif:ImageApiSelector`||c.type===`ImageApiSelector`)&&c.region){let[e,t,n,r]=c.region.split(`,`);u=Number(n)||u,d=Number(r)||d}let p=new y.EditorInstance({vault:t,reference:e}),m=(0,f.centerRectangles)(a,{width:u,height:d},.6);p.annotation.target.setPosition(m)}}},N={canvasInteraction:!0,spatial:!0,async run(e,{vault:t,options:n}){if(e&&e.type===`Annotation`&&n.targetType===`Annotation`){let n=t.get(e),r=n.target;if(!(r&&r.source?.type===`Canvas`))return;let i=r.source,a=t.get(i);if(!a.items||a.behavior.includes(`multi-image`))return;let o=t.get(a.items[0]);if(!o||o.items.length>1)return;let s=t.get(n.body);if(s.length!==1)return;let c=s[0],l=n.body[0]?.selector,u=(c.service||[])[0],d=u?.width||c.width,f=u?.height||c.height,p=c.duration||u?.duration;if(l&&(l.type===`iiif:ImageApiSelector`||l.type===`ImageApiSelector`)&&l.region){let[e,t,n,r]=l.region.split(`,`);d=Number(n)||d,f=Number(r)||f}let m=new y.EditorInstance({vault:t,reference:i});t.batch(()=>{d!==void 0&&m.technical.width.set(d),f!==void 0&&m.technical.height.set(f),p!==void 0&&m.technical.duration.set(p)})}}};var Se=Object.defineProperty,Ce=(e,t,n)=>t in e?Se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,P=(e,t,n)=>(Ce(e,typeof t==`symbol`?t:t+``,n),n);function F(e){return e.endsWith(`info.json`)?e:e.endsWith(`/`)?`${e}info.json`:`${e}/info.json`}var we=`http://library.stanford.edu/iiif/image-api/compliance.html#level0`,I=`http://library.stanford.edu/iiif/image-api/compliance.html#level1`,L=`http://library.stanford.edu/iiif/image-api/compliance.html#level2`,Te=`http://library.stanford.edu/iiif/image-api/conformance.html#level0`,Ee=`http://library.stanford.edu/iiif/image-api/conformance.html#level1`,De=`http://library.stanford.edu/iiif/image-api/conformance.html#level2`,Oe=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0`,ke=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1`,Ae=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2`,je=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0`,Me=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1`,Ne=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2`,Pe=`http://iiif.io/api/image/1/level0.json`,Fe=`http://iiif.io/api/image/1/profiles/level0.json`,Ie=`http://iiif.io/api/image/1/level1.json`,Le=`http://iiif.io/api/image/1/profiles/level1.json`,Re=`http://iiif.io/api/image/1/level2.json`,ze=`http://iiif.io/api/image/1/profiles/level2.json`,Be=`http://iiif.io/api/image/2/level0.json`,Ve=`http://iiif.io/api/image/2/profiles/level0.json`,He=`http://iiif.io/api/image/2/level1.json`,Ue=`http://iiif.io/api/image/2/profiles/level1.json`,We=`http://iiif.io/api/image/2/level2.json`,Ge=`http://iiif.io/api/image/2/profiles/level2.json`,Ke=`level0`,qe=`level1`,Je=`level2`,Ye=`http://iiif.io/api/image/2/level0`,Xe=`http://iiif.io/api/image/2/level1`,Ze=`http://iiif.io/api/image/2/level2`,Qe=[Ze,L,De,Ae,Ne,Re,ze,We,Ge,Je],$e=[...Qe,Xe,I,Ee,ke,Me,Ie,Le,He,Ue,qe],et=[Ye,Xe,Ze,we,I,L,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,Ke,qe,Je],tt=et,nt={extraFormats:[`jpg`],extraQualities:[`default`],extraFeatures:[`sizeByWhListed`]},rt={extraFormats:[`jpg`],extraQualities:[`default`],extraFeatures:[`baseUriRedirect`,`cors`,`jsonldMediaType`,`regionByPx`,`regionSquare`,`sizeByWhListed`,`sizeByH`,`sizeByW`,`sizeByWh`]},it={extraFormats:[`jpg`,`png`],extraQualities:[`default`],extraFeatures:[`baseUriRedirect`,`cors`,`jsonldMediaType`,`regionByPct`,`regionByPx`,`regionSquare`,`rotationBy90s`,`sizeByWhListed`,`sizeByConfinedWh`,`sizeByH`,`sizeByPct`,`sizeByW`,`sizeByWh`]},at=[`baseUriRedirect`,`canonicalLinkHeader`,`cors`,`jsonldMediaType`,`mirroring`,`profileLinkHeader`,`regionByPct`,`regionByPx`,`regionSquare`,`rotationArbitrary`,`rotationBy90s`,`sizeByConfinedWh`,`sizeByH`,`sizeByPct`,`sizeByW`,`sizeByWh`,`sizeUpscaling`,`sizeByWhListed`,`sizeByDistortedWh`,`sizeByForcedWh`];function ot(e){return Qe.indexOf(e)===-1?$e.indexOf(e)===-1?nt:rt:it}function st(e){let t=e?Array.isArray(e.profile)?e.profile:[e.profile]:[],n={extraQualities:[],extraFormats:[],extraFeatures:[]};for(let e of t)if(typeof e==`string`&&(e=ot(e)),e){if(e.formats)for(let t of e.formats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.qualities)for(let t of e.qualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);if(e.supports)for(let t of e.supports)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);if(e.maxHeight&&(n.maxHeight=e.maxHeight),e.maxWidth&&(n.maxWidth=e.maxWidth),e.maxArea&&(n.maxArea=e.maxArea),e.extraFormats)for(let t of e.extraFormats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.extraQualities)for(let t of e.extraQualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);if(e.extraFeatures)for(let t of e.extraFeatures)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);e.maxHeight&&(n.maxHeight=e.maxHeight),e.maxWidth&&(n.maxWidth=e.maxWidth),e.maxArea&&(n.maxArea=e.maxArea)}if(e.extraFormats)for(let t of e.extraFormats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.extraFeatures)for(let t of e.extraFeatures)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);if(e.extraQualities)for(let t of e.extraQualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);return n}function ct(e){try{if(e===`full`)return{full:!0};if(e===`square`)return{square:!0};let t=e.startsWith(`pct:`),n=e.substr(t?4:0).split(`,`).map(e=>parseFloat(e));return{x:n[0],y:n[1],w:n[2],h:n[3],percent:t}}catch{throw Error(`Expected 'full', 'square' or 'x,y,w,h'. Found `+e)}}function lt(e){let t={upscaled:!1,max:!1,confined:!1};if(e[0]===`^`&&(t.upscaled=!0,e=e.slice(1)),e===`max`||e===`full`)return t.max=!0,t.serialiseAsFull=e===`full`,t;if(e[0]===`!`&&(t.confined=!0,e=e.slice(1)),e[0]===`p`)return t.percentScale=parseFloat(e.slice(4)),t;let n=e.split(`,`).map(e=>e.trim());return n.length&&typeof n[0]<`u`&&(n[0]!==``&&(t.width=parseInt(n[0],10)),typeof n[1]<`u`&&n[1]!==``?(t.height=parseInt(n[1],10),t.version=2):t.version=3),t}function ut(e){let t={angle:0};if(e[0]===`!`&&(t.mirror=!0,e=e.substr(1)),t.angle=parseFloat(e)%360,Number.isNaN(t.angle))throw Error(`Invalid rotation ${e}`);return t}function dt(e,t=``){let n=e.match(/^(([a-zA-Z]+):\/\/([^/]+))?((.*)+)/);if(!n)throw Error(`Invalid or unknown input ${e}`);let r=n[2],i=n[3],a=n[4];if(a[0]===`/`&&(a=a.substring(1)),t.length>0){if(t[0]===`/`&&(t=t.substring(1)),t!==a.substring(0,t.length))throw Error(`Path does not start with prefix (path: ${a}, prefix: ${t})`);a=a.substring(t.length)}return{scheme:r,server:i,path:a,prefix:t}}function ft(e,t=``){let{path:n,scheme:r,server:i,prefix:a}=dt(e,t),o=(n||``).split(`/`).reverse(),[s,c,l,u,...d]=o,f=d.reverse().filter(Boolean).join(`/`);if(o.length===1||s===``)return{type:`base`,scheme:r,server:i,prefix:a,identifier:f};if(s===`info.json`){let[,...e]=o;return{type:`info`,scheme:r,server:i,prefix:a,identifier:e.reverse().filter(Boolean).join(`/`)}}let p=(s||``).split(`.`);if(typeof p[1]>`u`||typeof p[0]>`u`||typeof u>`u`||typeof l>`u`||typeof c>`u`)throw Error(`Invalid image request`);return{type:`image`,scheme:r,server:i,prefix:a,identifier:f,originalPath:n,region:ct(u),size:lt(l),rotation:ut(c),quality:p[0],format:p[1]}}function pt(e){let t=ft(F(e.id));if(t.type!==`info`)throw Error(`Invalid service URL`);let n=st(e);return{identifier:t.identifier,originalPath:``,server:t.server,prefix:t.prefix,scheme:t.scheme,type:`image`,quality:n.extraQualities.indexOf(`default`)===-1?n.extraQualities[0]:`default`,region:{full:!0},size:{max:!0,upscaled:!1,confined:!1},format:`jpg`,rotation:{angle:0}}}function mt(e,t,n){let r=n.length,i=[];for(let t=0;t<r;t++){let r=n[t];if(r){let t=r.width;i.push(e/t)}}return i}function ht(e,t,n){let r=n.length,i=[];for(let a=0;a<r;a++){let r=n[a];r&&i.push({width:Math.floor(e/r),height:Math.floor(t/r)})}return i}function R(e){if(e[`@id`])return e[`@id`];if(e.id)return e.id}function z(e){if(!e||!e.profile||!R(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`&&et.indexOf(e)!==-1)return!0;return!1}function gt(e){if(!z(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`){if($e.indexOf(e)!==-1)return!0}else{let t=[...e.supports||[],...e.extraFeatures||[]];if(t.indexOf(`regionByPx`)!==-1&&(t.indexOf(`sizeByW`)!==-1||t.indexOf(`sizeByWh`)!==-1))return!0}return!1}function B(e,t){if(t&&t.profile){let n=t.profile;if(n){let t=Array.isArray(n)?n:[n];return t.includes(`level${e}`)||t.includes(`http://iiif.io/api/image/2/level${e}.json`)||t.includes(`http://iiif.io/api/image/1/level${e}.json`)||t.includes(`http://iiif.io/api/image/1/profiles/level${e}.json`)}}return!1}function V(e){return z(e)?B(0,e)?0:B(1,e)?1:B(2,e)?2:null:null}function _t(e){return(e[`@context`]?Array.isArray(e[`@context`])?e[`@context`]:[e[`@context`]]:[]).indexOf(`http://iiif.io/api/image/3/context.json`)!==-1}function vt(e){if(!gt(e))return[];let t=[],n=Array.isArray(e.profile)?e.profile:[e.profile],r=n.length;for(let t=0;t<r;t++){let r=n[t];if(r&&typeof r!=`string`&&(r.maxHeight||r.maxWidth))return[{id:R(e),type:`variable`,minWidth:0,minHeight:0,maxHeight:r.maxHeight||r.maxWidth,maxWidth:r.maxWidth||r.maxHeight,level:V(e),version:e[`@context`]===`http://iiif.io/api/image/3/context.json`?3:2}]}if(e.tiles){let n=e.tiles.length;for(let r=0;r<n;r++){let n=e.tiles[r];n&&(n.height||n.width)&&t.push({id:R(e),type:`variable`,minHeight:0,minWidth:0,maxHeight:n.height||n.width,maxWidth:n.width,level:V(e),version:_t(e)?3:2})}}return t}function yt(e){let t=e.match(/^.*\/(full)\/(((\d+),(\d+)?)|max)\/(\d+)\/default\.(jpg|png|jpeg)$/);if(t&&t[4]&&t[5]){let n=t[1],r=parseInt(t[4],10),i=parseInt(t[5],10),a=t[7];if((n===`max`||n===`full`)&&r&&i&&a)return{type:`fixed`,id:e,height:i,width:r}}return{type:`unknown`,id:e}}function bt(e){if(e[`@type`])return e[`@type`];if(e.type)return e.type}function xt(e){if(typeof e==`string`)return yt(e);let t=bt(e);if(t!==`Image`&&t!==`sc:Image`)return null;let n=e,r=R(n);return r?r&&n.width&&n.height?{id:r,type:`fixed`,width:n.width,height:n.height,unsafe:!0}:yt(r):null}function St(e){return z(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:R(e),type:`fixed-service`,height:t.height,width:t.width,level:V(e),version:_t(e)?3:2})):[]}function Ct(e){let t=[],n=e.length;for(let r=0;r<n;r++){let n=e[r];if(!n)continue;let i=St(n);i.length&&t.push(...i);let a=vt(n);a.length&&t.push(...a)}return t}function wt(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],n=t.length,r=[];for(let e=0;e<n;e++)z(t[e])&&r.push(t[e]);return r}function Tt(e,t=!0,n){let r=[],i=xt(e);if(i===null)return r;let a=e;if(r.push(i),t&&a&&a.width&&a.height){let e=[],t=wt(a);for(let r of t){let t={id:R(r),width:a.width,height:a.height};if(n.canLoadSync(t)){let r=n.loadServiceSync(t);r&&(r.height||(r.height=a.height),r.width||(r.width=a.width),e.push(...Ct([r])))}}if(e.length)return r.push(...e),r}return a.service&&r.push(...Ct(a.service)),r}function Et({x:e=0,y:t=0,w:n,h:r,full:i,square:a,percent:o}){if(i)return`full`;if(a)return`square`;if(typeof n>`u`||typeof r>`u`)throw Error(`RegionParameter: invalid region`);let s=`${e},${t},${n},${r}`;return o?`pct:${s}`:s}function Dt({max:e,percentScale:t,upscaled:n,confined:r,width:i,height:a,serialiseAsFull:o,version:s}){let c=[];return n&&c.push(`^`),e?(c.push(o?`full`:`max`),c.join(``)):(r&&c.push(`!`),t&&c.push(`pct:${t}`),i&&c.push(`${i}`),c.push(`,`),a&&s===3&&c.push(`${a}`),c.join(``))}function Ot(e){return`${e.mirror?`!`:``}${(e.angle||0)%360}`}function kt(e,t){let n=e.prefix.startsWith(`/`)?e.prefix.substr(1):e.prefix,r=`${e.scheme}://${e.server}/${n?`${n}/`:``}${e.identifier}`;if(e.type===`base`)return r;if(e.type===`info`)return`${r}/info.json`;let{size:i}=e,{region:a,rotation:o,format:s,quality:c}=e;if(t){let e=t[`@context`]?Array.isArray(t[`@context`])?t[`@context`]:[t[`@context`]]:[],n=e.indexOf(`http://iiif.io/api/image/2/context.json`)!==-1,r=e.indexOf(`http://iiif.io/api/image/3/context.json`)!==-1;if((i.width===t.width&&!i.height||i.height===t.height&&!i.width||i.width===t.width&&i.height===t.height)&&(i={...i,max:!0}),n&&(i.max&&!i.serialiseAsFull&&(i={...i,serialiseAsFull:!0}),!i.max&&i.width&&i.height&&(i={...i,height:void 0}),i={...i,version:2}),r){if(i.max&&i.serialiseAsFull&&(i={...i,serialiseAsFull:!1}),i.width&&!i.height&&t.width&&t.height){let e=t.height/t.width;i={...i,height:Math.ceil(i.width*e)}}i={...i,version:3}}}return[r,Et(a),Dt(i),Ot(o),`${c}.${s}`].filter(Boolean).join(`/`)}function H(e,t,n){let r=pt({"@context":e.version===3?`http://iiif.io/api/image/3/context.json`:`http://iiif.io/api/image/2/context.json`,id:F(R(e)),profile:e.level===null||typeof e.level>`u`?`level0`:`level${e.level}`,type:e.version===3?`ImageService3`:`ImageService2`});if(r.type!==`image`)throw Error(`Invalid service`);return r.size.max=!1,r.size.width=t,r.size.height=n,{id:kt(r),type:`fixed`,width:t,height:n||e.height/(e.width||1)*t,unsafe:e.width>t}}function U(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,``);return t.indexOf(`/`)===-1?t:t.split(`/`)[0]}function At(e,t,n){let r=e.width?e.width:e.maxWidth;return n.height<=e.maxHeight&&n.width<=e.maxWidth&&n.height>=e.minHeight&&n.width>=e.minWidth&&(!t||Math.abs(n.width-r)<Math.abs(t.width-r))}function jt(e,t){let n=[],r=Object.assign({unsafeImageService:!1,atAnyCost:!0,fallback:!0,minHeight:64,minWidth:64,maxHeight:1/0,maxWidth:1/0,returnAllOptions:!1,preferFixedSize:!1,allowUnsafe:!1,explain:!1,height:0,width:0},e),i=(e,t=0)=>r.explain?n.push(Array(t).fill(0).map(e=>` `).join(``)+e().trim()):void 0,a=[],o=[],s=null;i(()=>`Using configuration: ${JSON.stringify(r,null,2)}`);let c=(e,t)=>{if(i(()=>`Swapping choice`,3),At(r,t,e)){if(r.preferFixedSize&&e.unsafe){i(()=>`We found an image that was marked as unsafe, but it was the best size. (${e.id})`,4),o.push(e);return}r.returnAllOptions&&t&&o.push(t),i(()=>`We found a new image that was the best size. (${e.id})`,4),s=e}else r.returnAllOptions&&o.push(e)};i(()=>`The input shows we have ${t.length} list(s) of candidates to choose from.`);let l=t.length;for(let e=0;e<l;e++){let n=t[e]();i(()=>`Candidate group ${e}: ${JSON.stringify(n,null,2)}`,1);let o=n.length;i(()=>`Checking candidate list number ${e} and found ${o} potential ways of creating image(s)`,1);for(let e=0;e<o;e++){let t=n[e];i(()=>`-> Checking candidate ${e}`,1),t.type===`unknown`&&r.atAnyCost&&(i(()=>`We've found an unknown image type, adding this to the "last resort" list`,2),a.push(t)),t.type===`fixed`&&(t.unsafe?(i(()=>`We've found an unsafe fixed image type, adding this to the "last resort" list`,2),a.push(t)):(i(()=>`We've found a fixed size image, checking if it matches the request`,2),c(t,s))),t.type===`fixed-service`&&(r.unsafeImageService?(i(()=>`Checking for an image from the tile source, without calculating the right height and width (unsafeImageService)`,2),c(H(t,r.width,r.height),s)):(i(()=>`Checking for an image from the tile source 3`,2),c(H(t,t.width,t.height),s))),t.type===`variable`&&t.maxWidth&&c(H({id:t.id,type:`fixed-service`,width:t.maxWidth,height:t.maxWidth,level:t.level,version:t.version},t.maxWidth),s)}if(s&&!r.returnAllOptions){if(s.unsafe||r.allowUnsafe)continue;i(()=>`We found a match in choice list number ${e}, no searching any more`);break}}return r.atAnyCost&&o.length===0?(i(()=>s?`We found an image! ${s.id} of type ${s.type}`:`We found no images, but "atAnyCost" is set, so returning that`),{best:s||a[0]||null,fallback:a.slice(1),log:n}):r.returnAllOptions?(i(()=>`Returning all options that we have found`),{best:(r.atAnyCost?s||o[0]||a[0]:s||o[0])||null,fallback:[...o,...a],log:n}):(i(()=>`Returning the best image that we found, and a fallback`),{best:s||o[0]||null,fallback:s?o:o.slice(1),log:n})}function Mt(e,t,n){let r=e>t?e:t,i=n.length,a=[];for(let e=0;e<i;e++){let t=n[e];if(!t||t.scaleFactors.length===0)continue;let i=t.scaleFactors[0];if(!i)continue;let o=r/i,s=[i];for(;o>=t.width;)i*=2,s.push(i),o/=2;a.push({...t,scaleFactors:s})}return a}function Nt(e,t){if(e.length!==t.length)return!1;if(e.length===0&&t.length===0)return!0;let n=e.length,r=!0;for(let i=0;i<n;i++){let n=e[i],a=t[i];if(n.width!==a.width||n.height!==a.height){r=!1;break}}if(r)return!0;let i=0;for(let r=0;r<n;r++)for(let a=0;a<n;a++)if(e[r].width===t[a].width&&e[r].height===t[a].height){i++;break}return i===n}function Pt(e){return B(0,e)}var Ft=class{constructor(e={}){P(this,`config`,{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),P(this,`fetchingCount`,0),P(this,`imageServices`,{}),P(this,`knownImageServers`,{}),this.config=Object.assign(this.config,e)}setConfig(e){Object.assign(this.config,e)}sample(e,t,n=!0){let r=U(R(e)),i=F(R(e)),a=this.knownImageServers[r];return this.imageServices[i]=Object.assign(e,{real:!0}),!a&&e.tiles&&!Pt(e)?(this.knownImageServers[r]={verifications:0,malformed:!1,root:r,preLoaded:n,sampledId:R(e),verified:!1,server:null,result:{context:e[`@context`]||[],sampledProfile:e.profile,resourceServiceRatio:t&&e.height?t.height/e.height:1,sampledSizes:e.sizes||[],sizeRatios:mt(e.width,e.height,e.sizes||[]),sampledTiles:e.tiles||[]}},!0):this.verify(e)}preLoad(e,t=!0){this.knownImageServers[e.root]=e,t&&(this.knownImageServers[e.root].malformed=!1,this.knownImageServers[e.root].verifications=this.config.verificationsRequired)}predict(e,t=!1,n=!1){let r=e?.source,i=U(R(e)),a=this.knownImageServers[i],o=F(R(e));return this.imageServices[o]?this.imageServices[o]||null:!this.config.approximateServices||!a||!a.result||!(r?.height||e.height)||!(r?.width||e.width)||!n&&(a.malformed||a.verifications<this.config.verificationsRequired)||Pt(e.source)?null:(this.imageServices[o]||(this.imageServices[o]={"@context":a.result.context,"@id":R(e),id:R(e),protocol:`http://iiif.io/api/image`,tiles:r?.tiles||Mt(e.width,e.height,a.result.sampledTiles),sizes:r?.sizes||ht(Math.round(e.width/a.result.resourceServiceRatio),Math.round(e.height/a.result.resourceServiceRatio),a.result.sizeRatios),profile:r?.profile||a.result.sampledProfile,height:r?.height||e.height,width:r?.width||e.width,real:!1}),this.imageServices[o]||null)}async getThumbnailFromResource(e,t,n=!0,r=[]){let i=e?await this.getImageCandidates(e,n):[];return jt(t,[()=>r,()=>i])}async getImageCandidates(e,t=!0){let n=e;if(t&&n&&n.height&&n.width){let e=wt(n);for(let t of e){let e={id:R(t),width:t.width?t.width:n.width,height:t.height?t.height:n.height,source:t};await this.loadService(e)}}return Tt(e,t,this)}async verify(e){let t=this.predict(e,!1,!0),n=await this.fetchService(R(e));if(!t)return!1;let r=t.height===n.height&&t.width===n.width&&t[`@context`]===n[`@context`]&&Nt(t.sizes||[],n.sizes||[]);if(r){let t=U(R(e)),n=this.knownImageServers[t];n&&(n.verifications+=1,n.verifications>=this.config.verificationsRequired&&(n.verified=!0))}return r}canLoadSync(e){let t=typeof e==`string`?e:R(e),n=F(t);if(this.imageServices[n])return!0;let r=this.knownImageServers[U(t)];return!!(r&&!r.malformed&&r.verifications>=this.config.verificationsRequired)}async markAsMalformed(e){return this.knownImageServers[U(R(e))].malformed=!0,this.loadService(e,!0)}async fetchService(e,t=!1){let n=F(e),r=this.imageServices[n];if(r&&(!t||r.real))return r;if(!this.config.enableFetching)throw Error(`Fetching is not enabled`);let i=await this.fetch(n).then(e=>e.json());return!i.id&&i[`@id`]&&(i.id=i[`@id`]),i.id!==e&&(i.id=e,i[`@id`]&&(i[`@id`]=e)),this.imageServices[n]=Object.assign(i,{real:!0}),this.imageServices[n]}async fetch(e,t){return fetch(e,t)}async loadService(e,t=!1){if(!this.config.disableThrottling){let e=!0;for(;e;)if(this.fetchingCount>=this.config.verificationsRequired)await new Promise(e=>setTimeout(e,500));else{e=!1;break}}let n=this.knownImageServers[U(R(e))];if(n&&!n.malformed&&!t){await n.result;let t=this.loadServiceSync(e);if(t)return t}this.fetchingCount++;let r=await this.fetchService(R(e),t);return this.fetchingCount--,r.real&&this.sample(r,e),r}loadServiceSync(e){let t=F(R(e));return this.imageServices[t]?this.imageServices[t]:this.config.approximateServices?this.predict(e):null}},It=new Ft;const W={canvasInteraction:!0,spatial:!0,async run(e,{vault:t,options:n}){if(e&&e.type===`Annotation`&&n.targetType===`Annotation`){let n=t.get(e),r=n.target;if(!(r&&r.source?.type===`Canvas`))return;let i=r.source,a=t.get(i);if(!a.items||a.behavior.includes(`multi-image`)||!t.get(a.items[0]))return;let o=Array.isArray(n.body)?n.body[0]:n.body;if(o.type===`SpecificResource`&&o.selector)return;let s=t.get(n.body)[0],c=(s.service||[]).find(e=>z(e));c&&c.width&&c.height&&(c.width!==s.width&&t.modifyEntityField({id:s.id,type:`ContentResource`},`width`,c.width),c.height!==s.height&&t.modifyEntityField({id:s.id,type:`ContentResource`},`height`,c.height))}}};async function Lt(e,t){let n={...e.service};n[`@id`]&&(n.id=n[`@id`]),n[`@type`]&&(n.type=n[`@type`]);let r=(0,v.createImageServiceRequest)(n),i=(0,v.imageServiceRequestToString)({identifier:r.identifier,server:r.server,scheme:r.scheme,type:`image`,size:{max:!e.size?.width&&!e.size?.height,confined:!1,upscaled:!1,...e.size||{}},format:`jpg`,region:{full:!0},rotation:{angle:0},quality:`default`,prefix:r.prefix,originalPath:r.originalPath});return t.embed({id:i,type:`Image`,format:e.format||`image/jpeg`,height:e.height||n.height,width:e.width||n.width,service:e.embedService===!1?void 0:[e.service]})}function G(e){return e.endsWith(`default.jpg`)?(0,v.imageServiceRequestToString)({...(0,v.parseImageServiceRequest)(e),type:`info`}):(0,v.canonicalServiceUrl)(e)}function K(e){let[t,n]=(0,p.useState)(``);return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries()),i=r.url;if(i){let t=G(i);if(!t)throw Error(`Invalid image service request`);fetch(t).then(e=>e.json()).then(t=>{e.runCreate({url:r.url,service:t})})}},children:[(0,m.jsx)(`div`,{className:`flex gap-2 items-center`,children:(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link to image service`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``,onPaste:e=>{let t=e.clipboardData.getData(`text/plain`);n(t?G(t):``)},onBlur:e=>n(e.currentTarget.value?G(e.currentTarget.value):``)})]})}),(0,m.jsx)(`div`,{className:`relative flex z-0 my-5 h-96 min-h-0 min-w-0 overflow-hidden bg-gray-200 rounded items-center justify-center`,children:t.trim()?(0,m.jsx)(ee.ErrorBoundary,{fallbackRender:()=>(0,m.jsx)(`div`,{children:`Invalid service`}),children:(0,m.jsx)(h.ImageService,{src:t,fluid:!0,errorFallback:()=>(0,m.jsx)(`div`,{children:`Invalid service`}),background:`rgb(229,231,235)`,className:`h-full w-full`,containerProps:{className:`w-full h-full z-10`}})}):(0,m.jsx)(`div`,{className:`text-grey-600`,children:`Preview`})}),(0,m.jsx)(`div`,{children:(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,isDisabled:!t,children:`Create`})})]})})}async function Rt(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=await(0,l.creatorHelper)(t,`Annotation`,`body`,`@manifest-editor/image-service-creator`)(e,{parent:{resource:n,property:`body`}});if(r===`Annotation`)return{...n,body:[i],motivation:e.motivation||`painting`,target:t.getTarget()};if(r===`Canvas`){let r=t.generateId(`canvas`),a=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:[i],target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:a,type:`AnnotationPage`,items:[o]}),c;return e.service?.sizes&&(c=await(0,l.creatorHelper)(t,`Canvas`,`thumbnail`,`@manifest-editor/thumbnail-image`)({service:e.service,width:e.thumbnailSize||400})),t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled canvas`]},height:i.resource.height||1e3,width:i.resource.width||1e3,thumbnail:c?[c]:void 0,items:[s]})}}function zt(e){return(0,m.jsx)(K,{...e})}const Bt=(0,l.defineCreator)({id:`@manifest-editor/image-service-annotation`,create:Rt,label:`IIIF Image`,dependencies:[`@manifest-editor/image-service-creator`],summary:`IIIF Image service`,tags:[`image`,`image-service`],icon:(0,m.jsx)(d.IIIFLogo,{style:{padding:10}}),render(e){return(0,m.jsx)(zt,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},sideEffects:[W,N,M],staticFields:{type:`Annotation`}});async function Vt(e,t){if(!e.height||!e.width){let t=await(0,_.getImageDimensions)(e.url);t&&(e.height=t.height,e.width=t.width)}return t.embed({id:e.url,type:`Image`,format:e.format||await(0,_.getFormat)(e.url),height:e.height,width:e.width,service:e.service?Array.isArray(e.service)?e.service:[e.service]:void 0})}function q(e){return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());r.url&&e.runCreate({url:r.url})},children:[(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link to Image`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}async function Ht(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=await(0,l.creatorHelper)(t,`Annotation`,`body`,`@manifest-editor/image-url-creator`)(e,{parent:{resource:n,property:`body`}});if(r===`Annotation`)return t.embed({...n,body:[i],motivation:e.motivation||`painting`,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),a=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:[i],target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:a,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled canvas`]},height:i.resource.height||1e3,width:i.resource.width||1e3,items:[s]})}throw Error(`Unsupported target type`)}function Ut(e){return(0,m.jsx)(q,{...e})}const Wt=(0,l.defineCreator)({id:`@manifest-editor/image-url-annotation`,create:Ht,label:`Image`,dependencies:[`@manifest-editor/image-url-creator`],summary:`Image from URL`,tags:[`image`],icon:(0,m.jsx)(d.AddImageIcon,{}),render(e){return(0,m.jsx)(Ut,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},sideEffects:[W,N,M],staticFields:{type:`Annotation`}});async function Gt(e,t){let n=[],r=(0,l.creatorHelper)(t,`Annotation`,`body`,`@manifest-editor/image-url-creator`);for(let i of e.images)n.push(await r(i,t.options));return n}function J(e){return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(d.Form.Form,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());r.urls&&e.runCreate({images:r.urls.split(`
|
|
97
|
-
`).map(e=>({url:e}))})},children:[(0,m.jsxs)(d.Form.InputContainer,{className:`mb-4`,children:[(0,m.jsx)(d.Form.Label,{children:`Enter a list of URLs (one per line)`}),(0,m.jsx)(d.Form.TextArea,{name:`urls`,rows:`10`})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}async function Kt(e,t){let n=[],r=(0,l.creatorHelper)(t,`AnnotationPage`,`items`,`@manifest-editor/image-url-annotation`);for(let i of e.images)n.push(await r(i,t.options));return n}const qt=(0,l.defineCreator)({id:`@manifest-editor/image-url-list-annotation`,create:Kt,label:`List of Images`,dependencies:[`@manifest-editor/image-url-annotation`],summary:`List of Images from URLs`,tags:[`image`],icon:(0,m.jsx)(d.ImageListIcon,{}),render(e){return(0,m.jsx)(J,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},sideEffects:[W,N,M],staticFields:{type:`Annotation`}}),Jt=(0,l.defineCreator)({id:`@manifest-editor/no-body-annotation`,create:Yt,label:`Annotation without body`,summary:`Add an annotation that only has motivation and target`,icon:(0,m.jsx)(d.EmptyCanvasIcon,{}),resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`target`],supports:{initialData:!0,parentTypes:[`AnnotationPage`],parentFields:[`items`],disallowPainting:!0},actionButton:`Create empty annotation`,sideEffects:[],staticFields:{type:`Annotation`}});function Yt(e,t){return t.embed({id:t.generateId(`annotation`),type:`Annotation`,label:e?.label,motivation:e.motivation||t.options.initialData?.motivation||`highlighting`,target:t.getTarget()})}function Xt({media:e,onError:t,duration:n,onDuration:r,onDimensions:i}){let[{element:a,currentTime:o,progress:s},c,l]=(0,h.useSimpleMediaPlayer)({duration:n});return(0,m.jsxs)(h.MediaPlayerProvider,{element:a,state:c,actions:l,currentTime:o,progress:s,children:[(0,m.jsx)(`div`,{style:{maxHeight:400,aspectRatio:`${e.width}/${e.height}`,position:`relative`},children:(0,m.jsx)(h.CanvasPanel.VideoHTML,{element:a,media:e,playPause:l.playPause})}),(0,m.jsx)(S,{onError:t,onDuration:r,onDimensions:i})]})}async function Zt(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=t.embed({id:e.url,type:`Video`,format:`video/mp4`,width:e.width,height:e.height,duration:e.duration||0});if(r===`Annotation`)return t.embed({...n,label:(0,u.getValue)(e.label)&&e.label,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:i,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),a=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:i,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:a,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},duration:e.duration||0,width:e.width,height:e.height,items:[s]})}}function Qt(e){let[t,n]=(0,p.useState)(``),[r,i]=(0,p.useState)(0),[a,o]=(0,p.useState)(0),[s,c]=(0,p.useState)(0),[l,u]=(0,p.useState)(``),[h,g]=(0,p.useState)({en:[``]});return(0,p.useEffect)(()=>{if(u(``),i(0),t){let e=t.split(`/`).pop()?.split(`.`).shift();g({en:[e||``]})}},[t]),(0,m.jsxs)(d.PaddedSidebarContainer,{children:[l?(0,m.jsx)(d.ErrorMessage,{children:l}):null,(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`video-url`,children:`URL`}),(0,m.jsx)(f.Input,{type:`text`,id:`video-url`,value:t,onChange:e=>n(e.target.value)})]}),t&&!l?(0,m.jsx)(`div`,{children:(0,m.jsx)(f.LanguageFieldEditor,{containerId:`label`,focusId:`label_`,label:`Label`,fields:h,onSave:e=>g(e.toInternationalString())},`${t}__${r}`)}):null,t&&!l?(0,m.jsx)(`div`,{className:`mb-4 bg-black`,children:(0,m.jsx)(Xt,{duration:r,onDuration:e=>i(e),onError:e=>u(e),media:{url:t,duration:r,height:s,width:a,type:`Video`},onDimensions:(e,t)=>{o(e||0),c(t||0)}})}):null,!l&&(r||a||s)?(0,m.jsx)(f.InputContainer,{$wide:!0,children:(0,m.jsx)(f.DimensionsTriplet,{widthId:`width`,width:a||0,changeWidth:e=>o(e),heightId:`height`,height:s||0,changeHeight:e=>c(e),durationId:`duration`,duration:r||0,changeDuration:e=>i(e)})}):null,(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({url:t,duration:r,label:h,width:a,height:s})},isDisabled:!t||!!l,children:`Add video`})]})}const $t=(0,l.defineCreator)({id:`@manifest-editor/video-annotation`,create:Zt,label:`Video`,summary:`Video annotation`,icon:(0,m.jsx)(d.VideoIcon,{}),render(e){return(0,m.jsx)(Qt,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,initialData:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},staticFields:{type:`Annotation`}}),en=()=>(0,m.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24px`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,transform:`scale(-1, 1)`,children:(0,m.jsxs)(`g`,{children:[(0,m.jsx)(`rect`,{fill:`none`,height:`24`,width:`24`}),(0,m.jsx)(`path`,{d:`M16,20H2V4h14V20z M18,8h4V4h-4V8z M18,20h4v-4h-4V20z M18,14h4v-4h-4V14z`})]})}),tn=(0,l.defineCreator)({id:`@manifest-editor/empty-annotation-page`,create:(e,t)=>t.embed({id:t.generateId(`annotations`),label:e.label,type:`AnnotationPage`,items:[]}),label:`Empty annotation page`,summary:`AnnotationPage with nothing`,icon:(0,m.jsx)(en,{}),resourceType:`AnnotationPage`,resourceFields:[`id`,`type`,`items`],supports:{parentTypes:[`Manifest`,`Canvas`,`Range`],parentFieldMap:{Manifest:[`annotations`],Canvas:[`items`,`annotations`],Range:[`annotations`]}}}),nn=(0,l.defineCreator)({id:`@manifest-editor/empty-canvas`,create:(e,t)=>{let n=t.generateId(`canvas`),r=t.embed({id:t.generateId(`annotation-page`,{id:n,type:`Canvas`}),type:`AnnotationPage`,items:[]});return{id:n,type:`Canvas`,label:e.label||{en:[``]},height:e.height||1e3,width:e.width||1e3,items:[r]}},label:`Empty canvas`,summary:`No content`,icon:(0,m.jsx)(d.EmptyCanvasIcon,{}),resourceType:`Canvas`,resourceFields:[`id`,`type`,`label`,`height`,`width`,`items`],supports:{parentTypes:[`Manifest`],parentFields:[`items`]}});var rn=process.env.NODE_ENV===`production`,Y=`Invariant failed`;function X(e,t){if(!e){if(rn)throw Error(Y);var n=typeof t==`function`?t():t,r=n?`${Y}: ${n}`:Y;throw Error(r)}}const an=(0,l.defineCreator)({id:`@manifest-editor/internal-canvas`,create:sn,label:`Internal canvas link`,summary:`Canvas from the same manifest`,icon:(0,m.jsx)(en,{}),resourceType:`Canvas`,resourceFields:[`id`,`type`,`label`],supports:{parentTypes:[`Manifest`],parentFields:[`start`]},render:e=>(0,m.jsx)(on,{...e})});function on(e){let t=(0,h.useManifest)(),n=(0,h.useVault)(),r=(0,p.useMemo)(()=>({canSelectCanvas:!1,canSelectCollection:!1,canSelectManifest:!0,canCropImage:!1,alwaysShowNavigationArrow:!1,multiSelect:!1}),[]),i=(0,p.useMemo)(()=>[{type:`callback`,cb:t=>e.runCreate({id:t}),label:`Select canvas`,supportedTypes:[`Canvas`],format:{type:`url`}}],[e.runCreate]),a=(0,p.useMemo)(()=>({saveToLocalStorage:!1,restoreFromLocalStorage:!1,initialHistory:[{url:t?.id,resource:t?.id,route:`/loading?id=${t?.id}`,metadata:{type:`Manifest`}}]}),[t?.id]);return X(t,`Manifest is not loaded`),(0,m.jsx)(h.VaultProvider,{vault:n,children:(0,m.jsx)(te.IIIFBrowser,{vault:n,navigation:r,output:i,history:a})})}async function sn(e,t){return t.embed({id:e.id,type:`Canvas`})}const cn=e=>(0,m.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,height:`1em`,width:`1em`,...e,children:[(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{d:`M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98 13.87 11h-3.74L12 5.98z`})]});async function ln(e,t){return t.embed({id:t.generateId(`html/${e.language}`),language:e.language,type:`TextualBody`,format:`text/html`,value:e.body||``})}function un(e){let{i18n:t}=(0,_.useConfig)(),[n,r]=(0,p.useState)(`<p></p>`),[i,a]=(0,p.useState)(t.defaultLanguage);return(0,m.jsxs)(d.PaddedSidebarContainer,{children:[(0,m.jsx)(d.HTMLEditor,{className:`border-none`,value:n,onChange:e=>r(e)}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({language:i,body:n})},children:`Create`})]})}const dn=(0,l.defineCreator)({id:`@manifest-editor/html-body-creator`,create:ln,label:`HTML Body`,summary:`Add HTML annotation body`,icon:(0,m.jsx)(cn,{}),render(e){return(0,m.jsx)(un,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`language`,`type`,`format`,`value`],supports:{parentTypes:[`Annotation`],parentFields:[`body`]},staticFields:{type:`TextualBody`,format:`text/html`}});function fn(e,t,n){return`${e}/${Math.floor(t.x)},${Math.floor(t.y)},${Math.floor(t.width)},${Math.floor(t.height)}/${n}/0/default.jpg`}async function pn(e,t){let n=t.options.targetType,r=e.output,i=[];for(let{resource:a,selector:o,parent:s}of r){let r=a.type,c=new u.Vault;if((n===`Canvas`||n===`Annotation`||n===`ContentResource`)&&r===`Canvas`){let r=a.id,l=s?.type===`Manifest`?s.id:void 0;X(l,`Could not find Manifest`);let u=c.get({id:l,type:`Manifest`})||await c.loadManifest(l);X(u,`Manifest not found`);let d=u.items.find(e=>e.id===r);X(d,`Canvas not found`);let f=c.get(d);if(n===`Canvas`&&o?.type!==`BoxSelector`){let e=c.toPresentation3(f);e.label||(e.label={en:[`Untitled canvas`]}),console.log(`loading full canvas`,e),t.vault.loadSync(e.id,e),i.push(t.embed({id:e.id,type:`Canvas`}));continue}let p=c.get(f.items[0]),m=c.get(p.items[0]);if(n===`Annotation`||n===`Canvas`||n===`ContentResource`){let r=c.toPresentation3(m);r.id=t.generateId(`Annotation`);let a=null,s={width:0,height:0};if(r?.body?.service){let t=r?.body.width,n=r?.body.height;a=(0,v.getImageServices)(r?.body)[0],a&&(!a.width||!a.height)&&(a.width=t,a.height=n),s.width=t,s.height=n,e.trackSize&&e.trackSize(s)}if(o?.type===`BoxSelector`){let s={type:`ImageApiSelector`,region:[~~o.spatial.x,~~o.spatial.y,~~o.spatial.width,~~o.spatial.height].join(`,`)},c={...r.body},l=``;if(a){let e=a.id||a[`@id`]||``;e&&(c.id=fn(e,o.spatial,`max`),l=fn(e,o.spatial,`512,`))}if(r.body={id:t.generateId(`SpecificResource`,m),type:`SpecificResource`,source:c,selector:s},e.trackSize&&e.trackSize({width:~~o.spatial.width,height:~~o.spatial.height}),n===`ContentResource`){i.push(r.body);continue}if(n===`Canvas`){let e=t.generateId(`Canvas`,m);r.target=e;let n=t.generateId(`Page`,m),a=t.embed({id:n,type:`AnnotationPage`,items:[r]});i.push(t.embed({id:e,type:`Canvas`,label:{en:[`Untitled canvas`]},width:~~o.spatial.width,height:~~o.spatial.height,thumbnail:l?[t.embed({id:l,type:`Image`,format:`image/jpeg`,width:512,height:Math.round(o.spatial.height/o.spatial.width*512)})]:void 0,items:[a]}));continue}i.push(t.embed({...r,target:t.getTarget()}));continue}i.push(t.embed({...c.toPresentation3(m),target:t.getTarget()}))}}}return i}const mn=(0,p.lazy)(()=>Promise.resolve().then(()=>require(`./iiif-browser-form.lazy-hdiWtT9m.cjs`))),hn=(0,l.defineCreator)({id:`@manifest-editor/iiif-browser-creator`,create:pn,label:`IIIF Browser`,summary:`Browse IIIF Resources`,icon:(0,m.jsx)(d.IIIFBrowserIcon,{}),render(e){return(0,m.jsx)(mn,{...e})},hiddenModal:!0,tags:[`image`,`image-service`],resourceType:`ContentResource`,resourceFields:[`id`,`language`,`type`,`format`,`value`],additionalTypes:[`Annotation`,`Canvas`],supports:{onlyPainting:!0,parentTypes:[`Annotation`,`Manifest`,`AnnotationPage`],parentFields:[`body`,`items`],parentFieldMap:{Annotation:[`body`],Manifest:[`items`],AnnotationPage:[`items`]}},sideEffects:[W,N,M],staticFields:{}}),gn=(0,l.defineCreator)({id:`@manifest-editor/image-service-creator`,create:Lt,label:`Image Service`,summary:`Add an image from Image Service`,icon:(0,m.jsx)(d.IIIFLogo,{style:{padding:10}}),render(e){return(0,m.jsx)(K,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`type`,`height`,`width`,`format`,`service`],supports:{parentFields:[`logo`,`body`,`thumbnail`]}}),Z=(0,l.defineCreator)({id:`@manifest-editor/image-url-creator`,create:Vt,label:`Image`,summary:`Image from a URL`,icon:(0,m.jsx)(d.AddImageIcon,{}),render(e){return(0,m.jsx)(q,{...e})},resourceType:`ContentResource`,resourceFields:[`format`],supports:{parentFields:[`logo`,`body`,`thumbnail`]},staticFields:{type:`Image`}}),_n=(0,l.defineCreator)({id:`@manifest-editor/image-url-list`,label:`Image URL List`,summary:`Image from a list of URLs`,create:Gt,icon:(0,m.jsx)(d.ImageListIcon,{}),render(e){return(0,m.jsx)(J,{...e})},resourceType:`ContentResource`,resourceFields:[`format`],supports:{parentFields:[`logo`,`body`,`thumbnail`]},staticFields:{type:`Image`}});async function vn(e,t){return t.embed({id:e.url,type:`Text`,label:e.label,format:`text/plain`})}function yn(e){let[t,n]=(0,p.useState)({en:[`View as text`]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i=Object.fromEntries(r.entries());i.url&&e.runCreate({url:i.url,label:t})},children:[(0,m.jsx)(f.LanguageFieldEditor,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link to plaintext`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}const bn=(0,l.defineCreator)({id:`@manifest-editor/plaintext-creator`,create:vn,label:`Plaintext`,summary:`Add link to an plaintext`,icon:(0,m.jsx)(cn,{}),render(e){return(0,m.jsx)(yn,{...e})},resourceType:`ContentResource`,resourceFields:[`label`,`format`],supports:{parentFields:[`seeAlso`,`rendering`,`homepage`]},staticFields:{format:`text/plain`}});function xn(e,t){e[`@id`]&&(e.id=e[`@id`]),e[`@type`]&&(e.type=e[`@type`]);let n=(0,v.createImageServiceRequest)(e);return(0,v.imageServiceRequestToString)({identifier:n.identifier,server:n.server,scheme:n.scheme,type:`image`,size:{max:!1,confined:!1,upscaled:!1,width:t.width,height:t.height},format:`jpg`,region:{full:!0},rotation:{angle:0},quality:`default`,prefix:n.prefix,originalPath:n.originalPath})}function Q(e){return e.endsWith(`default.jpg`)?(0,v.imageServiceRequestToString)({...(0,v.parseImageServiceRequest)(e),type:`info`}):(0,v.canonicalServiceUrl)(e)}async function Sn(e,t){let n={...e.service},r=n.sizes;if(n[`@id`]&&(n.id=n[`@id`]),n[`@type`]&&(n.type=n[`@type`]),e.thumbnailUrl)return t.embed({id:e.thumbnailUrl,type:`Image`,format:`image/jpeg`,width:e.width,height:e.height});if(r){let i=e.width||400,a=null;for(let e of r)(!a||Math.abs(e.width-i)<Math.abs(a.width-i))&&(a={width:e.width,height:e.height});if(a){let e=xn(n,a);return t.embed({id:e,type:`Image`,format:`image/jpeg`,width:a.width,height:a.height})}}return null}function Cn(e){let[t,n]=(0,p.useState)(``),[r,i]=(0,p.useState)(null),[a,o]=(0,p.useState)({width:0,height:0}),s=(0,p.useMemo)(()=>!r||!a.width||!a.height?null:xn(r,a),[a,r]);return r?(0,m.jsxs)(d.PaddedSidebarContainer,{children:[(0,m.jsxs)(`div`,{className:`mb-4`,children:[(0,m.jsx)(`div`,{className:`mb-2`,children:r[`@id`]||r.id}),(0,m.jsx)(`div`,{className:`flex gap-2 mb-4`,children:r.sizes?.map(e=>{let t=e.width===a.width;return(0,m.jsxs)(d.ActionButton,{primary:t,isDisabled:t,large:!0,onPress:()=>o(e),children:[e.width,`x`,e.height]},e.width)})}),s?(0,m.jsx)(`img`,{src:s,alt:`preview of selected resource`}):null]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,isDisabled:!s,onPress:()=>{r&&e.runCreate({service:r,width:a.width,height:a.height})},children:`Add thumbnail`})]}):(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:e=>{e.preventDefault();let t=new FormData(e.target),n=Object.fromEntries(t.entries()).url;if(n){let e=Q(n);if(!e)throw Error(`Invalid image service request`);fetch(e).then(e=>e.json()).then(e=>{i(e);let t=e.sizes?.[0];t&&o(t)})}},children:[(0,m.jsx)(`div`,{className:`flex gap-2 items-center`,children:(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link to image service`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``,onPaste:e=>{let t=e.clipboardData.getData(`text/plain`);n(t?Q(t):``)},onBlur:e=>n(e.currentTarget.value?Q(e.currentTarget.value):``)})]})}),(0,m.jsx)(`div`,{children:(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,isDisabled:!t,children:`Select size`})})]})})}const wn=(0,l.defineCreator)({id:`@manifest-editor/thumbnail-image`,create:Sn,label:`Thumbnail from service`,summary:`Add thumbnail from an image service`,icon:(0,m.jsx)(d.ScaledImageIcon,{}),render(e){return(0,m.jsx)(Cn,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`type`,`format`],supports:{parentFields:[`thumbnail`]}});function Tn(){return(0,m.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24px`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,children:[(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{d:`M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z`})]})}async function En(e,t){return t.embed({id:e.url,type:`Text`,label:e.label,format:`text/html`})}function Dn(e){let[t,n]=(0,p.useState)({en:[``]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i=Object.fromEntries(r.entries());i.url&&e.runCreate({url:i.url,label:t})},children:[(0,m.jsx)(f.LanguageFieldEditor,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create link`})]})})}const On=(0,l.defineCreator)({id:`@manifest-editor/web-page-creator`,create:En,label:`Web page`,summary:`Add link to an external web page`,icon:(0,m.jsx)(Tn,{}),render(e){return(0,m.jsx)(Dn,{...e})},resourceType:`ContentResource`,resourceFields:[`label`,`format`],supports:{parentFields:[`seeAlso`,`rendering`,`homepage`]}}),kn=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function $(e){let t=(e||``).match(kn);return t?t[1]:null}function An(e){return!!$(e.youtubeUrl)}async function jn(e,t){let n=$(e.youtubeUrl),r=t.embed({id:`https://www.youtube.com/watch?v=${n}`,type:`Video`,service:[{profile:`http://digirati.com/objectifier`,params:{data:`https://www.youtube.com/embed/${n}`}},{id:`https://www.youtube.com/watch?v=${n}`,profile:`https://www.youtube.com`}]});if(t.options.targetType===`Canvas`){let n=t.generateId(`canvas`),i=t.generateId(`annotation-page`,{id:n,type:`Canvas`}),a=t.embed({id:t.generateId(`annotation`,{id:i,type:`AnnotationPage`}),type:`Annotation`,motivation:`painting`,body:[r],target:{type:`SpecificResource`,source:{id:n,type:`Canvas`}}}),o=t.embed({id:i,type:`AnnotationPage`,items:[a]});return t.embed({id:n,type:`Canvas`,label:e.label||{en:[`Untitled YouTube canvas`]},height:e.height||1e3,width:e.width||1e3,duration:e.duration||1,items:[o]})}return t.options.targetType===`Annotation`?t.embed({id:t.generateId(`annotation`),type:`Annotation`,motivation:`painting`,body:[r],target:t.getTarget()}):r}function Mn(e){return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());r.youtubeUrl&&e.runCreate({youtubeUrl:r.youtubeUrl})},children:[(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link to YouTube`}),(0,m.jsx)(f.Input,{id:`youtubeUrl`,name:`youtubeUrl`,defaultValue:``})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}const Nn=(0,l.defineCreator)({id:`@manifest-editor/youtube`,create:jn,label:`YouTube`,summary:`Embed YouTube`,icon:(0,m.jsx)(d.YouTubeIcon,{}),resourceType:`ContentResource`,additionalTypes:[`Canvas`,`Annotation`],resourceFields:[`id`,`type`,`service`],render:e=>(0,m.jsx)(Mn,{...e}),supports:{onlyPainting:!0,parentTypes:[`Annotation`,`Manifest`,`AnnotationPage`],parentFieldMap:{Annotation:[`body`],Manifest:[`items`],AnnotationPage:[`items`]}},staticFields:{type:`Video`}});async function Pn(e,t){let n=e.output||[],r=[];for(let e of n){let{resource:n,parent:i,selector:a}=e,o=t.getPreviewVault(),s=(0,u.createThumbnailHelper)(o);if(n.type===`Manifest`){let e=n.id;X(e,`Could not find Manifest ID`);let i=await o.loadManifest(e),a=await s.getBestThumbnailAtSize(i,{width:256,height:256},!1);X(i,`Manifest not found`),r.push(t.embed({id:n.id,type:`Manifest`,label:i.label,summary:i.summary,thumbnail:a?.best?[{id:a.best.id,type:`Image`}]:void 0}));continue}if(n.type===`Collection`){let e=n.id;X(e,`Could not find Manifest ID`);let i=await o.loadManifest(e);X(i,`Collection not found`),r.push(t.embed({id:n.id,type:`Collection`,label:i.label}))}}return r}const Fn=(0,p.lazy)(()=>Promise.resolve().then(()=>require(`./manifest-browser-form.lazy-D6pK_j7N.cjs`))),In=(0,l.defineCreator)({id:`@manifest-editor/manifest-browser-creator`,create:Pn,label:`IIIF Browser`,summary:`Browse IIIF Resources`,icon:(0,m.jsx)(d.IIIFBrowserIcon,{}),render(e){return(0,m.jsx)(c.t,{...e})},resourceType:`Manifest`,resourceFields:[`id`,`label`],additionalTypes:[`Collection`],supports:{parentTypes:[`Collection`],parentFieldMap:{Collection:[`items`]}},sideEffects:[],staticFields:{}});async function Ln(e,t,n){let r=t.generateId(`range`,n?{id:n,type:`Range`}:void 0);return t.embed({id:r,type:`Range`,label:e.label||{en:[`Untitled range`]},items:e.items||[]})}function Rn(e){let[t,n]=(0,p.useState)({en:[``]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),t&&e.runCreate({type:`Range`,label:t})},children:[(0,m.jsx)(f.LanguageFieldEditor,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),(0,m.jsx)(d.ActionButton,{primary:!0,type:`submit`,children:`Create range`})]})})}const zn=(0,l.defineCreator)({id:`@manifest-editor/range-with-items`,create:Ln,label:`Range`,summary:`Add a new range`,icon:(0,m.jsx)(d.RangesIcon,{}),render(e){return(0,m.jsx)(Rn,{...e})},resourceType:`Range`,resourceFields:[`id`,`label`,`type`],supports:{parentTypes:[`Range`],parentFields:[`items`]},staticFields:{type:`Range`}});async function Bn(e,t,n){let r=t.generateId(`range`,n?{id:n,type:`Range`}:void 0);return t.embed({id:r,type:`Range`,label:e.label||{en:[`Table of Contents`]},items:(e.items||[]).map(e=>t.ref(e))})}function Vn(e){let[t,n]=(0,p.useState)({en:[``]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),t&&e.runCreate({type:`Range`,label:t})},children:[(0,m.jsx)(f.LanguageFieldEditor,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),(0,m.jsx)(d.ActionButton,{primary:!0,type:`submit`,children:`Create range`})]})})}const Hn=(0,l.defineCreator)({id:`@manifest-editor/range-top-level`,create:Bn,label:`Top Level Range`,summary:`Add a new top level range`,icon:(0,m.jsx)(d.RangesIcon,{}),render(e){return(0,m.jsx)(Vn,{...e})},resourceType:`Range`,resourceFields:[`id`,`label`,`type`],supports:{parentTypes:[`Manifest`],parentFields:[`structures`]},staticFields:{type:`Range`}}),Un=[gn,Bt,Z,Wt,$t,T,dn,j,Nn,hn,nn,bn,On,tn,Jt,an,O,_n,qt,wn,Hn,zn,ne];exports.CreateAudioAnnotationForm=w,exports.CreateCaptionedImageAnnotation=D,exports.CreateHTMLAnnotation=A,exports.CreateHTMLBodyForm=un,exports.CreateImageServerForm=K,exports.CreateImageServiceAnnotationForm=zt,exports.CreateImageUrlAnnotationForm=Ut,exports.CreateImageUrlForm=q,exports.CreateImageUrlListForm=J,exports.CreatePlaintextForm=yn,exports.CreateProviderForm=x,exports.CreateThumbnailForm=Cn,exports.CreateVideoAnnotationForm=Qt,exports.CreateWebPageForm=Dn,exports.IIIFBrowserCreatorForm=mn,exports.ManifestBrowserCreatorForm=Fn,exports.RangeWithItemsCreatorForm=Rn,exports.TopLevelRangeCreatorForm=Vn,exports.YouTubeForm=Mn,exports.allCreators=Un,exports.audioAnnotation=T,exports.captionedImageAnnotation=O,exports.createAudioAnnotation=C,exports.createCaptionedImageAnnotation=E,exports.createFromIIIFBrowserOutput=pn,exports.createFromManifestBrowserOutput=Pn,exports.createHtmlAnnotation=k,exports.createHtmlBody=ln,exports.createImageServer=Lt,exports.createImageServiceAnnotation=Rt,exports.createImageUrl=Vt,exports.createImageUrlAnnotation=Ht,exports.createImageUrlList=Gt,exports.createImageUrlListAnnotation=Kt,exports.createNoBodyAnnotation=Yt,exports.createPlaintext=vn,exports.createProvider=b,exports.createRangeTopLevel=Bn,exports.createRangeWithItems=Ln,exports.createThumbnail=Sn,exports.createVideoAnnotation=Zt,exports.createWebPage=En,exports.createYoutubeBody=jn,exports.emptyAnnotationPage=tn,exports.emptyCanvas=nn,exports.getYouTubeId=$,exports.htmlAnnotation=j,exports.htmlBodyCreator=dn,exports.iiifBrowserCreator=hn,exports.imageServiceAnnotation=Bt,exports.imageServiceCreator=gn,exports.imageUrlAnnotation=Wt,exports.imageUrlCreator=Z,exports.imageUrlListAnnotation=qt,exports.imageUrlListCreator=_n,exports.internalCanvas=an,exports.manifestBrowserCreator=In,exports.noBodyAnnotation=Jt,exports.plaintextCreator=bn,exports.providerCreator=ne,exports.rangeTopLevel=Hn,exports.rangeWithItems=zn,exports.t=s,exports.validateYouTube=An,exports.videoAnnotation=$t,exports.webPageCreator=On,exports.youTubeBodyCreator=Nn;
|
|
97
|
+
`).map(e=>({url:e}))})},children:[(0,m.jsxs)(d.Form.InputContainer,{className:`mb-4`,children:[(0,m.jsx)(d.Form.Label,{children:`Enter a list of URLs (one per line)`}),(0,m.jsx)(d.Form.TextArea,{name:`urls`,rows:`10`})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}async function Kt(e,t){let n=[],r=(0,l.creatorHelper)(t,`AnnotationPage`,`items`,`@manifest-editor/image-url-annotation`);for(let i of e.images)n.push(await r(i,t.options));return n}const qt=(0,l.defineCreator)({id:`@manifest-editor/image-url-list-annotation`,create:Kt,label:`List of Images`,dependencies:[`@manifest-editor/image-url-annotation`],summary:`List of Images from URLs`,tags:[`image`],icon:(0,m.jsx)(d.ImageListIcon,{}),render(e){return(0,m.jsx)(J,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},sideEffects:[W,N,M],staticFields:{type:`Annotation`}}),Jt=(0,l.defineCreator)({id:`@manifest-editor/no-body-annotation`,create:Yt,label:`Annotation without body`,summary:`Add an annotation that only has motivation and target`,icon:(0,m.jsx)(d.EmptyCanvasIcon,{}),resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`target`],supports:{initialData:!0,parentTypes:[`AnnotationPage`],parentFields:[`items`],disallowPainting:!0},actionButton:`Create empty annotation`,sideEffects:[],staticFields:{type:`Annotation`}});function Yt(e,t){return t.embed({id:t.generateId(`annotation`),type:`Annotation`,label:e?.label,motivation:e.motivation||t.options.initialData?.motivation||`highlighting`,target:t.getTarget()})}function Xt({media:e,onError:t,duration:n,onDuration:r,onDimensions:i}){let[{element:a,currentTime:o,progress:s},c,l]=(0,h.useSimpleMediaPlayer)({duration:n});return(0,m.jsxs)(h.MediaPlayerProvider,{element:a,state:c,actions:l,currentTime:o,progress:s,children:[(0,m.jsx)(`div`,{style:{maxHeight:400,aspectRatio:`${e.width}/${e.height}`,position:`relative`},children:(0,m.jsx)(h.CanvasPanel.VideoHTML,{element:a,media:e,playPause:l.playPause})}),(0,m.jsx)(S,{onError:t,onDuration:r,onDimensions:i})]})}async function Zt(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=t.embed({id:e.url,type:`Video`,format:`video/mp4`,width:e.width,height:e.height,duration:e.duration||0});if(r===`Annotation`)return t.embed({...n,label:(0,u.getValue)(e.label)&&e.label,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:i,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),a=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:i,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:a,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},duration:e.duration||0,width:e.width,height:e.height,items:[s]})}}function Qt(e){let[t,n]=(0,p.useState)(``),[r,i]=(0,p.useState)(0),[a,o]=(0,p.useState)(0),[s,c]=(0,p.useState)(0),[l,u]=(0,p.useState)(``),[h,g]=(0,p.useState)({en:[``]});return(0,p.useEffect)(()=>{if(u(``),i(0),t){let e=t.split(`/`).pop()?.split(`.`).shift();g({en:[e||``]})}},[t]),(0,m.jsxs)(d.PaddedSidebarContainer,{children:[l?(0,m.jsx)(d.ErrorMessage,{children:l}):null,(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`video-url`,children:`URL`}),(0,m.jsx)(f.Input,{type:`text`,id:`video-url`,value:t,onChange:e=>n(e.target.value)})]}),t&&!l?(0,m.jsx)(`div`,{children:(0,m.jsx)(f.LanguageFieldEditor,{containerId:`label`,focusId:`label_`,label:`Label`,fields:h,onSave:e=>g(e.toInternationalString())},`${t}__${r}`)}):null,t&&!l?(0,m.jsx)(`div`,{className:`mb-4 bg-black`,children:(0,m.jsx)(Xt,{duration:r,onDuration:e=>i(e),onError:e=>u(e),media:{url:t,duration:r,height:s,width:a,type:`Video`},onDimensions:(e,t)=>{o(e||0),c(t||0)}})}):null,!l&&(r||a||s)?(0,m.jsx)(f.InputContainer,{$wide:!0,children:(0,m.jsx)(f.DimensionsTriplet,{widthId:`width`,width:a||0,changeWidth:e=>o(e),heightId:`height`,height:s||0,changeHeight:e=>c(e),durationId:`duration`,duration:r||0,changeDuration:e=>i(e)})}):null,(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({url:t,duration:r,label:h,width:a,height:s})},isDisabled:!t||!!l,children:`Add video`})]})}const $t=(0,l.defineCreator)({id:`@manifest-editor/video-annotation`,create:Zt,label:`Video`,summary:`Video annotation`,icon:(0,m.jsx)(d.VideoIcon,{}),render(e){return(0,m.jsx)(Qt,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,initialData:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},staticFields:{type:`Annotation`}}),en=()=>(0,m.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24px`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,transform:`scale(-1, 1)`,children:(0,m.jsxs)(`g`,{children:[(0,m.jsx)(`rect`,{fill:`none`,height:`24`,width:`24`}),(0,m.jsx)(`path`,{d:`M16,20H2V4h14V20z M18,8h4V4h-4V8z M18,20h4v-4h-4V20z M18,14h4v-4h-4V14z`})]})}),tn=(0,l.defineCreator)({id:`@manifest-editor/empty-annotation-page`,create:(e,t)=>t.embed({id:t.generateId(`annotations`),label:e.label,type:`AnnotationPage`,items:[]}),label:`Empty annotation page`,summary:`AnnotationPage with nothing`,icon:(0,m.jsx)(en,{}),resourceType:`AnnotationPage`,resourceFields:[`id`,`type`,`items`],supports:{parentTypes:[`Manifest`,`Canvas`,`Range`],parentFieldMap:{Manifest:[`annotations`],Canvas:[`items`,`annotations`],Range:[`annotations`]}}}),nn=(0,l.defineCreator)({id:`@manifest-editor/empty-canvas`,create:(e,t)=>{let n=t.generateId(`canvas`),r=t.embed({id:t.generateId(`annotation-page`,{id:n,type:`Canvas`}),type:`AnnotationPage`,items:[]});return{id:n,type:`Canvas`,label:e.label||{en:[``]},height:e.height||1e3,width:e.width||1e3,items:[r]}},label:`Empty canvas`,summary:`No content`,icon:(0,m.jsx)(d.EmptyCanvasIcon,{}),resourceType:`Canvas`,resourceFields:[`id`,`type`,`label`,`height`,`width`,`items`],supports:{parentTypes:[`Manifest`],parentFields:[`items`]}});var rn=process.env.NODE_ENV===`production`,Y=`Invariant failed`;function X(e,t){if(!e){if(rn)throw Error(Y);var n=typeof t==`function`?t():t,r=n?`${Y}: ${n}`:Y;throw Error(r)}}const an=(0,l.defineCreator)({id:`@manifest-editor/internal-canvas`,create:sn,label:`Internal canvas link`,summary:`Canvas from the same manifest`,icon:(0,m.jsx)(en,{}),resourceType:`Canvas`,resourceFields:[`id`,`type`,`label`],supports:{parentTypes:[`Manifest`],parentFields:[`start`]},render:e=>(0,m.jsx)(on,{...e})});function on(e){let t=(0,h.useManifest)(),n=(0,h.useVault)(),r=(0,p.useMemo)(()=>({canSelectCanvas:!1,canSelectCollection:!1,canSelectManifest:!0,canCropImage:!1,alwaysShowNavigationArrow:!1,multiSelect:!1}),[]),i=(0,p.useMemo)(()=>[{type:`callback`,cb:t=>e.runCreate({id:t}),label:`Select canvas`,supportedTypes:[`Canvas`],format:{type:`url`}}],[e.runCreate]),a=(0,p.useMemo)(()=>({saveToLocalStorage:!1,restoreFromLocalStorage:!1,initialHistory:[{url:t?.id,resource:t?.id,route:`/loading?id=${t?.id}`,metadata:{type:`Manifest`}}]}),[t?.id]);return X(t,`Manifest is not loaded`),(0,m.jsx)(h.VaultProvider,{vault:n,children:(0,m.jsx)(te.IIIFBrowser,{vault:n,navigation:r,output:i,history:a})})}async function sn(e,t){return t.embed({id:e.id,type:`Canvas`})}const cn=e=>(0,m.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,height:`1em`,width:`1em`,...e,children:[(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{d:`M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98 13.87 11h-3.74L12 5.98z`})]});async function ln(e,t){return t.embed({id:t.generateId(`html/${e.language}`),language:e.language,type:`TextualBody`,format:`text/html`,value:e.body||``})}function un(e){let{i18n:t}=(0,_.useConfig)(),[n,r]=(0,p.useState)(`<p></p>`),[i,a]=(0,p.useState)(t.defaultLanguage);return(0,m.jsxs)(d.PaddedSidebarContainer,{children:[(0,m.jsx)(d.HTMLEditor,{className:`border-none`,value:n,onChange:e=>r(e)}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({language:i,body:n})},children:`Create`})]})}const dn=(0,l.defineCreator)({id:`@manifest-editor/html-body-creator`,create:ln,label:`HTML Body`,summary:`Add HTML annotation body`,icon:(0,m.jsx)(cn,{}),render(e){return(0,m.jsx)(un,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`language`,`type`,`format`,`value`],supports:{parentTypes:[`Annotation`],parentFields:[`body`]},staticFields:{type:`TextualBody`,format:`text/html`}});function fn(e,t,n){return`${e}/${Math.floor(t.x)},${Math.floor(t.y)},${Math.floor(t.width)},${Math.floor(t.height)}/${n}/0/default.jpg`}async function pn(e,t){let n=t.options.targetType,r=e.output,i=[];for(let{resource:a,selector:o,parent:s}of r){let r=a.type,c=new u.Vault;if((n===`Canvas`||n===`Annotation`||n===`ContentResource`)&&r===`Canvas`){let r=a.id,l=s?.type===`Manifest`?s.id:void 0;X(l,`Could not find Manifest`);let u=c.get({id:l,type:`Manifest`})||await c.loadManifest(l);X(u,`Manifest not found`);let d=u.items.find(e=>e.id===r);X(d,`Canvas not found`);let f=c.get(d);if(n===`Canvas`&&o?.type!==`BoxSelector`){let e=c.toPresentation3(f);e.label||(e.label={en:[`Untitled canvas`]}),console.log(`loading full canvas`,e),t.vault.loadSync(e.id,e),i.push(t.embed({id:e.id,type:`Canvas`}));continue}let p=c.get(f.items[0]),m=c.get(p.items[0]);if(n===`Annotation`||n===`Canvas`||n===`ContentResource`){let r=c.toPresentation3(m);r.id=t.generateId(`Annotation`);let a=null,s={width:0,height:0};if(r?.body?.service){let t=r?.body.width,n=r?.body.height;a=(0,v.getImageServices)(r?.body)[0],a&&(!a.width||!a.height)&&(a.width=t,a.height=n),s.width=t,s.height=n,e.trackSize&&e.trackSize(s)}if(o?.type===`BoxSelector`){let s={type:`ImageApiSelector`,region:[~~o.spatial.x,~~o.spatial.y,~~o.spatial.width,~~o.spatial.height].join(`,`)},c={...r.body},l=``;if(a){let e=a.id||a[`@id`]||``;e&&(c.id=fn(e,o.spatial,`max`),l=fn(e,o.spatial,`512,`))}if(r.body={id:t.generateId(`SpecificResource`,m),type:`SpecificResource`,source:c,selector:s},e.trackSize&&e.trackSize({width:~~o.spatial.width,height:~~o.spatial.height}),n===`ContentResource`){i.push(r.body);continue}if(n===`Canvas`){let e=t.generateId(`Canvas`,m);r.target=e;let n=t.generateId(`Page`,m),a=t.embed({id:n,type:`AnnotationPage`,items:[r]});i.push(t.embed({id:e,type:`Canvas`,label:{en:[`Untitled canvas`]},width:~~o.spatial.width,height:~~o.spatial.height,thumbnail:l?[t.embed({id:l,type:`Image`,format:`image/jpeg`,width:512,height:Math.round(o.spatial.height/o.spatial.width*512)})]:void 0,items:[a]}));continue}i.push(t.embed({...r,target:t.getTarget()}));continue}i.push(t.embed({...c.toPresentation3(m),target:t.getTarget()}))}}}return i}const mn=(0,p.lazy)(()=>Promise.resolve().then(()=>require(`./iiif-browser-form.lazy-DE1Gqs-q.cjs`))),hn=(0,l.defineCreator)({id:`@manifest-editor/iiif-browser-creator`,create:pn,label:`IIIF Browser`,summary:`Browse IIIF Resources`,icon:(0,m.jsx)(d.IIIFBrowserIcon,{}),render(e){return(0,m.jsx)(mn,{...e})},hiddenModal:!0,tags:[`image`,`image-service`],resourceType:`ContentResource`,resourceFields:[`id`,`language`,`type`,`format`,`value`],additionalTypes:[`Annotation`,`Canvas`],supports:{onlyPainting:!0,parentTypes:[`Annotation`,`Manifest`,`AnnotationPage`],parentFields:[`body`,`items`],parentFieldMap:{Annotation:[`body`],Manifest:[`items`],AnnotationPage:[`items`]}},sideEffects:[W,N,M],staticFields:{}}),gn=(0,l.defineCreator)({id:`@manifest-editor/image-service-creator`,create:Lt,label:`Image Service`,summary:`Add an image from Image Service`,icon:(0,m.jsx)(d.IIIFLogo,{style:{padding:10}}),render(e){return(0,m.jsx)(K,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`type`,`height`,`width`,`format`,`service`],supports:{parentFields:[`logo`,`body`,`thumbnail`]}}),Z=(0,l.defineCreator)({id:`@manifest-editor/image-url-creator`,create:Vt,label:`Image`,summary:`Image from a URL`,icon:(0,m.jsx)(d.AddImageIcon,{}),render(e){return(0,m.jsx)(q,{...e})},resourceType:`ContentResource`,resourceFields:[`format`],supports:{parentFields:[`logo`,`body`,`thumbnail`]},staticFields:{type:`Image`}}),_n=(0,l.defineCreator)({id:`@manifest-editor/image-url-list`,label:`Image URL List`,summary:`Image from a list of URLs`,create:Gt,icon:(0,m.jsx)(d.ImageListIcon,{}),render(e){return(0,m.jsx)(J,{...e})},resourceType:`ContentResource`,resourceFields:[`format`],supports:{parentFields:[`logo`,`body`,`thumbnail`]},staticFields:{type:`Image`}});async function vn(e,t){return t.embed({id:e.url,type:`Text`,label:e.label,format:`text/plain`})}function yn(e){let[t,n]=(0,p.useState)({en:[`View as text`]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i=Object.fromEntries(r.entries());i.url&&e.runCreate({url:i.url,label:t})},children:[(0,m.jsx)(f.LanguageFieldEditor,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link to plaintext`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}const bn=(0,l.defineCreator)({id:`@manifest-editor/plaintext-creator`,create:vn,label:`Plaintext`,summary:`Add link to an plaintext`,icon:(0,m.jsx)(cn,{}),render(e){return(0,m.jsx)(yn,{...e})},resourceType:`ContentResource`,resourceFields:[`label`,`format`],supports:{parentFields:[`seeAlso`,`rendering`,`homepage`]},staticFields:{format:`text/plain`}});function xn(e,t){e[`@id`]&&(e.id=e[`@id`]),e[`@type`]&&(e.type=e[`@type`]);let n=(0,v.createImageServiceRequest)(e);return(0,v.imageServiceRequestToString)({identifier:n.identifier,server:n.server,scheme:n.scheme,type:`image`,size:{max:!1,confined:!1,upscaled:!1,width:t.width,height:t.height},format:`jpg`,region:{full:!0},rotation:{angle:0},quality:`default`,prefix:n.prefix,originalPath:n.originalPath})}function Q(e){return e.endsWith(`default.jpg`)?(0,v.imageServiceRequestToString)({...(0,v.parseImageServiceRequest)(e),type:`info`}):(0,v.canonicalServiceUrl)(e)}async function Sn(e,t){let n={...e.service},r=n.sizes;if(n[`@id`]&&(n.id=n[`@id`]),n[`@type`]&&(n.type=n[`@type`]),e.thumbnailUrl)return t.embed({id:e.thumbnailUrl,type:`Image`,format:`image/jpeg`,width:e.width,height:e.height});if(r){let i=e.width||400,a=null;for(let e of r)(!a||Math.abs(e.width-i)<Math.abs(a.width-i))&&(a={width:e.width,height:e.height});if(a){let e=xn(n,a);return t.embed({id:e,type:`Image`,format:`image/jpeg`,width:a.width,height:a.height})}}return null}function Cn(e){let[t,n]=(0,p.useState)(``),[r,i]=(0,p.useState)(null),[a,o]=(0,p.useState)({width:0,height:0}),s=(0,p.useMemo)(()=>!r||!a.width||!a.height?null:xn(r,a),[a,r]);return r?(0,m.jsxs)(d.PaddedSidebarContainer,{children:[(0,m.jsxs)(`div`,{className:`mb-4`,children:[(0,m.jsx)(`div`,{className:`mb-2`,children:r[`@id`]||r.id}),(0,m.jsx)(`div`,{className:`flex gap-2 mb-4`,children:r.sizes?.map(e=>{let t=e.width===a.width;return(0,m.jsxs)(d.ActionButton,{primary:t,isDisabled:t,large:!0,onPress:()=>o(e),children:[e.width,`x`,e.height]},e.width)})}),s?(0,m.jsx)(`img`,{src:s,alt:`preview of selected resource`}):null]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,isDisabled:!s,onPress:()=>{r&&e.runCreate({service:r,width:a.width,height:a.height})},children:`Add thumbnail`})]}):(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:e=>{e.preventDefault();let t=new FormData(e.target),n=Object.fromEntries(t.entries()).url;if(n){let e=Q(n);if(!e)throw Error(`Invalid image service request`);fetch(e).then(e=>e.json()).then(e=>{i(e);let t=e.sizes?.[0];t&&o(t)})}},children:[(0,m.jsx)(`div`,{className:`flex gap-2 items-center`,children:(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link to image service`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``,onPaste:e=>{let t=e.clipboardData.getData(`text/plain`);n(t?Q(t):``)},onBlur:e=>n(e.currentTarget.value?Q(e.currentTarget.value):``)})]})}),(0,m.jsx)(`div`,{children:(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,isDisabled:!t,children:`Select size`})})]})})}const wn=(0,l.defineCreator)({id:`@manifest-editor/thumbnail-image`,create:Sn,label:`Thumbnail from service`,summary:`Add thumbnail from an image service`,icon:(0,m.jsx)(d.ScaledImageIcon,{}),render(e){return(0,m.jsx)(Cn,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`type`,`format`],supports:{parentFields:[`thumbnail`]}});function Tn(){return(0,m.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24px`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,children:[(0,m.jsx)(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),(0,m.jsx)(`path`,{d:`M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z`})]})}async function En(e,t){return t.embed({id:e.url,type:`Text`,label:e.label,format:`text/html`})}function Dn(e){let[t,n]=(0,p.useState)({en:[``]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i=Object.fromEntries(r.entries());i.url&&e.runCreate({url:i.url,label:t})},children:[(0,m.jsx)(f.LanguageFieldEditor,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link`}),(0,m.jsx)(f.Input,{id:`url`,name:`url`,defaultValue:``})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create link`})]})})}const On=(0,l.defineCreator)({id:`@manifest-editor/web-page-creator`,create:En,label:`Web page`,summary:`Add link to an external web page`,icon:(0,m.jsx)(Tn,{}),render(e){return(0,m.jsx)(Dn,{...e})},resourceType:`ContentResource`,resourceFields:[`label`,`format`],supports:{parentFields:[`seeAlso`,`rendering`,`homepage`]}}),kn=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function $(e){let t=(e||``).match(kn);return t?t[1]:null}function An(e){return!!$(e.youtubeUrl)}async function jn(e,t){let n=$(e.youtubeUrl),r=t.embed({id:`https://www.youtube.com/watch?v=${n}`,type:`Video`,service:[{profile:`http://digirati.com/objectifier`,params:{data:`https://www.youtube.com/embed/${n}`}},{id:`https://www.youtube.com/watch?v=${n}`,profile:`https://www.youtube.com`}]});if(t.options.targetType===`Canvas`){let n=t.generateId(`canvas`),i=t.generateId(`annotation-page`,{id:n,type:`Canvas`}),a=t.embed({id:t.generateId(`annotation`,{id:i,type:`AnnotationPage`}),type:`Annotation`,motivation:`painting`,body:[r],target:{type:`SpecificResource`,source:{id:n,type:`Canvas`}}}),o=t.embed({id:i,type:`AnnotationPage`,items:[a]});return t.embed({id:n,type:`Canvas`,label:e.label||{en:[`Untitled YouTube canvas`]},height:e.height||1e3,width:e.width||1e3,duration:e.duration||1,items:[o]})}return t.options.targetType===`Annotation`?t.embed({id:t.generateId(`annotation`),type:`Annotation`,motivation:`painting`,body:[r],target:t.getTarget()}):r}function Mn(e){return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());r.youtubeUrl&&e.runCreate({youtubeUrl:r.youtubeUrl})},children:[(0,m.jsxs)(f.InputContainer,{$wide:!0,children:[(0,m.jsx)(f.InputLabel,{htmlFor:`id`,children:`Link to YouTube`}),(0,m.jsx)(f.Input,{id:`youtubeUrl`,name:`youtubeUrl`,defaultValue:``})]}),(0,m.jsx)(d.ActionButton,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}const Nn=(0,l.defineCreator)({id:`@manifest-editor/youtube`,create:jn,label:`YouTube`,summary:`Embed YouTube`,icon:(0,m.jsx)(d.YouTubeIcon,{}),resourceType:`ContentResource`,additionalTypes:[`Canvas`,`Annotation`],resourceFields:[`id`,`type`,`service`],render:e=>(0,m.jsx)(Mn,{...e}),supports:{onlyPainting:!0,parentTypes:[`Annotation`,`Manifest`,`AnnotationPage`],parentFieldMap:{Annotation:[`body`],Manifest:[`items`],AnnotationPage:[`items`]}},staticFields:{type:`Video`}});async function Pn(e,t){let n=e.output||[],r=[];for(let e of n){let{resource:n,parent:i,selector:a}=e,o=t.getPreviewVault(),s=(0,u.createThumbnailHelper)(o);if(n.type===`Manifest`){let e=n.id;X(e,`Could not find Manifest ID`);let i=await o.loadManifest(e),a=await s.getBestThumbnailAtSize(i,{width:256,height:256},!1);X(i,`Manifest not found`),r.push(t.embed({id:n.id,type:`Manifest`,label:i.label,summary:i.summary,thumbnail:a?.best?[{id:a.best.id,type:`Image`}]:void 0}));continue}if(n.type===`Collection`){let e=n.id;X(e,`Could not find Manifest ID`);let i=await o.loadManifest(e);X(i,`Collection not found`),r.push(t.embed({id:n.id,type:`Collection`,label:i.label}))}}return r}const Fn=(0,p.lazy)(()=>Promise.resolve().then(()=>require(`./manifest-browser-form.lazy-GlS8qL75.cjs`))),In=(0,l.defineCreator)({id:`@manifest-editor/manifest-browser-creator`,create:Pn,label:`IIIF Browser`,summary:`Browse IIIF Resources`,icon:(0,m.jsx)(d.IIIFBrowserIcon,{}),render(e){return(0,m.jsx)(c.t,{...e})},resourceType:`Manifest`,resourceFields:[`id`,`label`],additionalTypes:[`Collection`],supports:{parentTypes:[`Collection`],parentFieldMap:{Collection:[`items`]}},sideEffects:[],staticFields:{}});async function Ln(e,t,n){let r=t.generateId(`range`,n?{id:n,type:`Range`}:void 0);return t.embed({id:r,type:`Range`,label:e.label||{en:[`Untitled range`]},items:e.items||[]})}function Rn(e){let[t,n]=(0,p.useState)({en:[``]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),t&&e.runCreate({type:`Range`,label:t})},children:[(0,m.jsx)(f.LanguageFieldEditor,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),(0,m.jsx)(d.ActionButton,{primary:!0,type:`submit`,children:`Create range`})]})})}const zn=(0,l.defineCreator)({id:`@manifest-editor/range-with-items`,create:Ln,label:`Range`,summary:`Add a new range`,icon:(0,m.jsx)(d.RangesIcon,{}),render(e){return(0,m.jsx)(Rn,{...e})},resourceType:`Range`,resourceFields:[`id`,`label`,`type`],supports:{parentTypes:[`Range`],parentFields:[`items`]},staticFields:{type:`Range`}});async function Bn(e,t,n){let r=t.generateId(`range`,n?{id:n,type:`Range`}:void 0);return t.embed({id:r,type:`Range`,label:e.label||{en:[`Table of Contents`]},items:(e.items||[]).map(e=>t.ref(e))})}function Vn(e){let[t,n]=(0,p.useState)({en:[``]});return(0,m.jsx)(d.PaddedSidebarContainer,{children:(0,m.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),t&&e.runCreate({type:`Range`,label:t})},children:[(0,m.jsx)(f.LanguageFieldEditor,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),(0,m.jsx)(d.ActionButton,{primary:!0,type:`submit`,children:`Create range`})]})})}const Hn=(0,l.defineCreator)({id:`@manifest-editor/range-top-level`,create:Bn,label:`Top Level Range`,summary:`Add a new top level range`,icon:(0,m.jsx)(d.RangesIcon,{}),render(e){return(0,m.jsx)(Vn,{...e})},resourceType:`Range`,resourceFields:[`id`,`label`,`type`],supports:{parentTypes:[`Manifest`],parentFields:[`structures`]},staticFields:{type:`Range`}}),Un=[gn,Bt,Z,Wt,$t,T,dn,j,Nn,hn,nn,bn,On,tn,Jt,an,O,_n,qt,wn,Hn,zn,ne];exports.CreateAudioAnnotationForm=w,exports.CreateCaptionedImageAnnotation=D,exports.CreateHTMLAnnotation=A,exports.CreateHTMLBodyForm=un,exports.CreateImageServerForm=K,exports.CreateImageServiceAnnotationForm=zt,exports.CreateImageUrlAnnotationForm=Ut,exports.CreateImageUrlForm=q,exports.CreateImageUrlListForm=J,exports.CreatePlaintextForm=yn,exports.CreateProviderForm=x,exports.CreateThumbnailForm=Cn,exports.CreateVideoAnnotationForm=Qt,exports.CreateWebPageForm=Dn,exports.IIIFBrowserCreatorForm=mn,exports.ManifestBrowserCreatorForm=Fn,exports.RangeWithItemsCreatorForm=Rn,exports.TopLevelRangeCreatorForm=Vn,exports.YouTubeForm=Mn,exports.allCreators=Un,exports.audioAnnotation=T,exports.captionedImageAnnotation=O,exports.createAudioAnnotation=C,exports.createCaptionedImageAnnotation=E,exports.createFromIIIFBrowserOutput=pn,exports.createFromManifestBrowserOutput=Pn,exports.createHtmlAnnotation=k,exports.createHtmlBody=ln,exports.createImageServer=Lt,exports.createImageServiceAnnotation=Rt,exports.createImageUrl=Vt,exports.createImageUrlAnnotation=Ht,exports.createImageUrlList=Gt,exports.createImageUrlListAnnotation=Kt,exports.createNoBodyAnnotation=Yt,exports.createPlaintext=vn,exports.createProvider=b,exports.createRangeTopLevel=Bn,exports.createRangeWithItems=Ln,exports.createThumbnail=Sn,exports.createVideoAnnotation=Zt,exports.createWebPage=En,exports.createYoutubeBody=jn,exports.emptyAnnotationPage=tn,exports.emptyCanvas=nn,exports.getYouTubeId=$,exports.htmlAnnotation=j,exports.htmlBodyCreator=dn,exports.iiifBrowserCreator=hn,exports.imageServiceAnnotation=Bt,exports.imageServiceCreator=gn,exports.imageUrlAnnotation=Wt,exports.imageUrlCreator=Z,exports.imageUrlListAnnotation=qt,exports.imageUrlListCreator=_n,exports.internalCanvas=an,exports.manifestBrowserCreator=In,exports.noBodyAnnotation=Jt,exports.plaintextCreator=bn,exports.providerCreator=ne,exports.rangeTopLevel=Hn,exports.rangeWithItems=zn,exports.t=s,exports.validateYouTube=An,exports.videoAnnotation=$t,exports.webPageCreator=On,exports.youTubeBodyCreator=Nn;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _manifest_editor_creator_api92 from "@manifest-editor/creator-api";
|
|
2
2
|
import { CreatorContext, CreatorFunctionContext, CreatorResource } from "@manifest-editor/creator-api";
|
|
3
3
|
import * as _iiif_presentation_30 from "@iiif/presentation-3";
|
|
4
4
|
import { ImageService, InternationalString, Reference } from "@iiif/presentation-3";
|
|
@@ -15,7 +15,7 @@ interface CreateProviderPayload {
|
|
|
15
15
|
homepageLabel?: InternationalString;
|
|
16
16
|
logo?: string;
|
|
17
17
|
}
|
|
18
|
-
declare function createProvider(data: CreateProviderPayload, ctx: CreatorFunctionContext): Promise<
|
|
18
|
+
declare function createProvider(data: CreateProviderPayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource>;
|
|
19
19
|
declare function CreateProviderForm(props: CreatorContext<CreateProviderPayload>): react_jsx_runtime0.JSX.Element;
|
|
20
20
|
//#endregion
|
|
21
21
|
//#region src/Agent/ProviderCreator/index.d.ts
|
|
@@ -26,7 +26,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
declare const providerCreator:
|
|
29
|
+
declare const providerCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateProviderPayload, "@manifest-editor/provider", "Agent", [], ["Agent"], ["Manifest", "Collection"], ["provider"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
30
30
|
//#endregion
|
|
31
31
|
//#region src/Annotation/AudioAnnotation/create-audio-annotation.d.ts
|
|
32
32
|
interface CreateAudioAnnotationPayload {
|
|
@@ -35,7 +35,7 @@ interface CreateAudioAnnotationPayload {
|
|
|
35
35
|
duration?: number;
|
|
36
36
|
url: string;
|
|
37
37
|
}
|
|
38
|
-
declare function createAudioAnnotation(data: CreateAudioAnnotationPayload, ctx: CreatorFunctionContext): Promise<
|
|
38
|
+
declare function createAudioAnnotation(data: CreateAudioAnnotationPayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource | undefined>;
|
|
39
39
|
declare function CreateAudioAnnotationForm(props: CreatorContext<CreateAudioAnnotationPayload>): react_jsx_runtime0.JSX.Element;
|
|
40
40
|
//#endregion
|
|
41
41
|
//#region src/Annotation/AudioAnnotation/index.d.ts
|
|
@@ -46,7 +46,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
declare const audioAnnotation:
|
|
49
|
+
declare const audioAnnotation: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateAudioAnnotationPayload, "@manifest-editor/audio-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource | undefined>>;
|
|
50
50
|
//#endregion
|
|
51
51
|
//#region src/Annotation/CaptionedImageAnnotation/create-captioned-image-annotation.d.ts
|
|
52
52
|
interface CreateCaptionedImageAnnotationPayload {
|
|
@@ -57,7 +57,7 @@ interface CreateCaptionedImageAnnotationPayload {
|
|
|
57
57
|
height?: number;
|
|
58
58
|
width?: number;
|
|
59
59
|
}
|
|
60
|
-
declare function createCaptionedImageAnnotation(data: CreateCaptionedImageAnnotationPayload, ctx: CreatorFunctionContext): Promise<
|
|
60
|
+
declare function createCaptionedImageAnnotation(data: CreateCaptionedImageAnnotationPayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource | undefined>;
|
|
61
61
|
declare function CreateCaptionedImageAnnotation(props: CreatorContext<CreateCaptionedImageAnnotationPayload>): react_jsx_runtime0.JSX.Element;
|
|
62
62
|
//#endregion
|
|
63
63
|
//#region src/Annotation/CaptionedImageAnnotation/index.d.ts
|
|
@@ -68,7 +68,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
declare const captionedImageAnnotation:
|
|
71
|
+
declare const captionedImageAnnotation: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateCaptionedImageAnnotationPayload, "@manifest-editor/captioned-image-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource | undefined>>;
|
|
72
72
|
//#endregion
|
|
73
73
|
//#region src/Annotation/HTMLAnnotation/create-html-annotation.d.ts
|
|
74
74
|
interface CreateHTMLAnnotationPayload {
|
|
@@ -78,7 +78,7 @@ interface CreateHTMLAnnotationPayload {
|
|
|
78
78
|
height?: number;
|
|
79
79
|
width?: number;
|
|
80
80
|
}
|
|
81
|
-
declare function createHtmlAnnotation(data: CreateHTMLAnnotationPayload, ctx: CreatorFunctionContext): Promise<
|
|
81
|
+
declare function createHtmlAnnotation(data: CreateHTMLAnnotationPayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource | undefined>;
|
|
82
82
|
declare function CreateHTMLAnnotation(props: CreatorContext<CreateHTMLAnnotationPayload>): react_jsx_runtime0.JSX.Element;
|
|
83
83
|
//#endregion
|
|
84
84
|
//#region src/Annotation/HTMLAnnotation/index.d.ts
|
|
@@ -89,7 +89,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
declare const htmlAnnotation:
|
|
92
|
+
declare const htmlAnnotation: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateHTMLAnnotationPayload, "@manifest-editor/html-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource | undefined>>;
|
|
93
93
|
//#endregion
|
|
94
94
|
//#region src/ContentResource/ImageServiceCreator/create-image-service.d.ts
|
|
95
95
|
interface CreateImageServicePayload {
|
|
@@ -102,7 +102,7 @@ interface CreateImageServicePayload {
|
|
|
102
102
|
embedService?: boolean;
|
|
103
103
|
selector?: RegionParameter;
|
|
104
104
|
}
|
|
105
|
-
declare function createImageServer(data: CreateImageServicePayload, ctx: CreatorFunctionContext): Promise<
|
|
105
|
+
declare function createImageServer(data: CreateImageServicePayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource>;
|
|
106
106
|
declare function CreateImageServerForm(props: CreatorContext<CreateImageServicePayload>): react_jsx_runtime0.JSX.Element;
|
|
107
107
|
//#endregion
|
|
108
108
|
//#region src/Annotation/ImageServiceAnnotation/create-service-annotation.d.ts
|
|
@@ -122,7 +122,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
-
declare const imageServiceAnnotation:
|
|
125
|
+
declare const imageServiceAnnotation: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageServiceAnnotationPayload, "@manifest-editor/image-service-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<any>>;
|
|
126
126
|
//#endregion
|
|
127
127
|
//#region src/ContentResource/ImageUrlCreator/create-image-url.d.ts
|
|
128
128
|
interface CreateImageUrlPayload {
|
|
@@ -151,7 +151,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
declare const imageUrlAnnotation:
|
|
154
|
+
declare const imageUrlAnnotation: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageUrlAnnotationPayload, "@manifest-editor/image-url-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
155
155
|
//#endregion
|
|
156
156
|
//#region src/Annotation/ImageUrlListAnnotation/index.d.ts
|
|
157
157
|
declare module "@manifest-editor/creator-api" {
|
|
@@ -161,9 +161,9 @@ declare module "@manifest-editor/creator-api" {
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
|
-
declare const imageUrlListAnnotation:
|
|
164
|
+
declare const imageUrlListAnnotation: _manifest_editor_creator_api92.SpecificCreatorDefinition<{
|
|
165
165
|
images: CreateImageUrlPayload[];
|
|
166
|
-
}, "@manifest-editor/image-url-list-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<
|
|
166
|
+
}, "@manifest-editor/image-url-list-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource[]>>;
|
|
167
167
|
//#endregion
|
|
168
168
|
//#region src/Annotation/VideoAnnotation/create-video-annotation.d.ts
|
|
169
169
|
interface CreateVideoAnnotationPayload {
|
|
@@ -174,7 +174,7 @@ interface CreateVideoAnnotationPayload {
|
|
|
174
174
|
width: number;
|
|
175
175
|
height: number;
|
|
176
176
|
}
|
|
177
|
-
declare function createVideoAnnotation(data: CreateVideoAnnotationPayload, ctx: CreatorFunctionContext): Promise<
|
|
177
|
+
declare function createVideoAnnotation(data: CreateVideoAnnotationPayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource | undefined>;
|
|
178
178
|
declare function CreateVideoAnnotationForm(props: CreatorContext<CreateVideoAnnotationPayload>): react_jsx_runtime0.JSX.Element;
|
|
179
179
|
//#endregion
|
|
180
180
|
//#region src/Annotation/VideoAnnotation/index.d.ts
|
|
@@ -185,7 +185,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
-
declare const videoAnnotation:
|
|
188
|
+
declare const videoAnnotation: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateVideoAnnotationPayload, "@manifest-editor/video-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource | undefined>>;
|
|
189
189
|
//#endregion
|
|
190
190
|
//#region src/AnnotationPage/EmptyAnnotationPage/index.d.ts
|
|
191
191
|
declare module "@manifest-editor/creator-api" {
|
|
@@ -195,9 +195,9 @@ declare module "@manifest-editor/creator-api" {
|
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
|
-
declare const emptyAnnotationPage:
|
|
198
|
+
declare const emptyAnnotationPage: _manifest_editor_creator_api92.SpecificCreatorDefinition<{
|
|
199
199
|
label?: InternationalString;
|
|
200
|
-
}, "@manifest-editor/empty-annotation-page", "AnnotationPage", [], ["AnnotationPage"], ["Manifest", "Canvas", "Range"], [],
|
|
200
|
+
}, "@manifest-editor/empty-annotation-page", "AnnotationPage", [], ["AnnotationPage"], ["Manifest", "Canvas", "Range"], [], _manifest_editor_creator_api92.CreatorResource>;
|
|
201
201
|
//#endregion
|
|
202
202
|
//#region src/Canvas/EmptyCanvas/index.d.ts
|
|
203
203
|
declare module "@manifest-editor/creator-api" {
|
|
@@ -207,7 +207,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
declare const emptyCanvas:
|
|
210
|
+
declare const emptyCanvas: _manifest_editor_creator_api92.SpecificCreatorDefinition<{
|
|
211
211
|
label?: InternationalString;
|
|
212
212
|
width?: number;
|
|
213
213
|
height?: number;
|
|
@@ -217,7 +217,7 @@ declare const emptyCanvas: _manifest_editor_creator_api86.SpecificCreatorDefinit
|
|
|
217
217
|
readonly label: InternationalString;
|
|
218
218
|
readonly height: number;
|
|
219
219
|
readonly width: number;
|
|
220
|
-
readonly items: readonly [
|
|
220
|
+
readonly items: readonly [_manifest_editor_creator_api92.CreatorResource];
|
|
221
221
|
}>;
|
|
222
222
|
//#endregion
|
|
223
223
|
//#region src/ContentResource/HTMLBodyCreator/create-html-body.d.ts
|
|
@@ -225,7 +225,7 @@ interface CreateHTMLBodyPayload {
|
|
|
225
225
|
language?: string;
|
|
226
226
|
body: string;
|
|
227
227
|
}
|
|
228
|
-
declare function createHtmlBody(data: CreateHTMLBodyPayload, ctx: CreatorFunctionContext): Promise<
|
|
228
|
+
declare function createHtmlBody(data: CreateHTMLBodyPayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource>;
|
|
229
229
|
declare function CreateHTMLBodyForm(props: CreatorContext<CreateHTMLBodyPayload>): react_jsx_runtime0.JSX.Element;
|
|
230
230
|
//#endregion
|
|
231
231
|
//#region src/ContentResource/HTMLBodyCreator/index.d.ts
|
|
@@ -236,7 +236,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
|
-
declare const htmlBodyCreator:
|
|
239
|
+
declare const htmlBodyCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateHTMLBodyPayload, "@manifest-editor/html-body-creator", "ContentResource", [], ["ContentResource"], ["Annotation"], ["body"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
240
240
|
//#endregion
|
|
241
241
|
//#region src/ContentResource/IIIFBrowserCreator/iiif-browser-form.lazy.d.ts
|
|
242
242
|
declare function IIIFBrowserCreatorForm$1(props: CreatorContext): react_jsx_runtime0.JSX.Element;
|
|
@@ -267,7 +267,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
|
-
declare const iiifBrowserCreator:
|
|
270
|
+
declare const iiifBrowserCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<IIIFBrowserCreatorPayload, "@manifest-editor/iiif-browser-creator", "ContentResource", ["Annotation", "Canvas"], ["ContentResource", "Annotation", "Canvas"], ["Annotation", "Manifest", "AnnotationPage"], ["body", "items"], Promise<any[]>>;
|
|
271
271
|
//#endregion
|
|
272
272
|
//#region src/ContentResource/ImageServiceCreator/index.d.ts
|
|
273
273
|
declare module "@manifest-editor/creator-api" {
|
|
@@ -277,7 +277,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
|
-
declare const imageServiceCreator:
|
|
280
|
+
declare const imageServiceCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageServicePayload, "@manifest-editor/image-service-creator", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["logo", "body", "thumbnail"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
281
281
|
//#endregion
|
|
282
282
|
//#region src/ContentResource/ImageUrlCreator/index.d.ts
|
|
283
283
|
declare module "@manifest-editor/creator-api" {
|
|
@@ -287,7 +287,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
|
-
declare const imageUrlCreator:
|
|
290
|
+
declare const imageUrlCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageUrlPayload, "@manifest-editor/image-url-creator", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["logo", "body", "thumbnail"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
291
291
|
//#endregion
|
|
292
292
|
//#region src/ContentResource/ImageUrlListCreator/create-image-url-list.d.ts
|
|
293
293
|
interface CreateImageUrlListPayload {
|
|
@@ -304,14 +304,14 @@ declare module "@manifest-editor/creator-api" {
|
|
|
304
304
|
}
|
|
305
305
|
}
|
|
306
306
|
}
|
|
307
|
-
declare const imageUrlListCreator:
|
|
307
|
+
declare const imageUrlListCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageUrlListPayload, "@manifest-editor/image-url-list", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["logo", "body", "thumbnail"], Promise<_manifest_editor_creator_api92.CreatorResource[]>>;
|
|
308
308
|
//#endregion
|
|
309
309
|
//#region src/ContentResource/PlaintextCreator/create-plaintext.d.ts
|
|
310
310
|
interface CreatePlaintextPayload {
|
|
311
311
|
url: string;
|
|
312
312
|
label?: InternationalString;
|
|
313
313
|
}
|
|
314
|
-
declare function createPlaintext(data: CreatePlaintextPayload, ctx: CreatorFunctionContext): Promise<
|
|
314
|
+
declare function createPlaintext(data: CreatePlaintextPayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource>;
|
|
315
315
|
declare function CreatePlaintextForm(props: CreatorContext): react_jsx_runtime0.JSX.Element;
|
|
316
316
|
//#endregion
|
|
317
317
|
//#region src/ContentResource/PlaintextCreator/index.d.ts
|
|
@@ -322,14 +322,14 @@ declare module "@manifest-editor/creator-api" {
|
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
declare const plaintextCreator:
|
|
325
|
+
declare const plaintextCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreatePlaintextPayload, "@manifest-editor/plaintext-creator", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["seeAlso", "rendering", "homepage"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
326
326
|
//#endregion
|
|
327
327
|
//#region src/ContentResource/WebPageCreator/create-web-page.d.ts
|
|
328
328
|
interface CreateWebpagePayload {
|
|
329
329
|
url: string;
|
|
330
330
|
label?: InternationalString;
|
|
331
331
|
}
|
|
332
|
-
declare function createWebPage(data: CreateWebpagePayload, ctx: CreatorFunctionContext): Promise<
|
|
332
|
+
declare function createWebPage(data: CreateWebpagePayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource>;
|
|
333
333
|
declare function CreateWebPageForm(props: CreatorContext): react_jsx_runtime0.JSX.Element;
|
|
334
334
|
//#endregion
|
|
335
335
|
//#region src/ContentResource/WebPageCreator/index.d.ts
|
|
@@ -340,7 +340,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
|
-
declare const webPageCreator:
|
|
343
|
+
declare const webPageCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateWebpagePayload, "@manifest-editor/web-page-creator", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["seeAlso", "rendering", "homepage"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
344
344
|
//#endregion
|
|
345
345
|
//#region src/ContentResource/YouTubeCreator/create-youtube-body.d.ts
|
|
346
346
|
interface CreateYouTubeBodyPayload {
|
|
@@ -352,7 +352,7 @@ interface CreateYouTubeBodyPayload {
|
|
|
352
352
|
}
|
|
353
353
|
declare function getYouTubeId(url: string): string | null | undefined;
|
|
354
354
|
declare function validateYouTube(data: CreateYouTubeBodyPayload): boolean;
|
|
355
|
-
declare function createYoutubeBody(data: CreateYouTubeBodyPayload, ctx: CreatorFunctionContext): Promise<
|
|
355
|
+
declare function createYoutubeBody(data: CreateYouTubeBodyPayload, ctx: CreatorFunctionContext): Promise<_manifest_editor_creator_api92.CreatorResource>;
|
|
356
356
|
declare function YouTubeForm(props: CreatorContext): react_jsx_runtime0.JSX.Element;
|
|
357
357
|
//#endregion
|
|
358
358
|
//#region src/ContentResource/YouTubeCreator/index.d.ts
|
|
@@ -363,7 +363,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
|
-
declare const youTubeBodyCreator:
|
|
366
|
+
declare const youTubeBodyCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateYouTubeBodyPayload, "@manifest-editor/youtube", "ContentResource", ["Canvas", "Annotation"], ["ContentResource", "Canvas", "Annotation"], ["Annotation", "Manifest", "AnnotationPage"], [], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
367
367
|
//#endregion
|
|
368
368
|
//#region src/Manifest/ManifestBrowserCreator/manifest-browser-form.lazy.d.ts
|
|
369
369
|
declare function ManifestBrowserCreatorForm$1(props: CreatorContext): react_jsx_runtime0.JSX.Element;
|
|
@@ -390,7 +390,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
390
390
|
}
|
|
391
391
|
}
|
|
392
392
|
}
|
|
393
|
-
declare const manifestBrowserCreator:
|
|
393
|
+
declare const manifestBrowserCreator: _manifest_editor_creator_api92.SpecificCreatorDefinition<ManifestBrowserCreatorPayload, "@manifest-editor/manifest-browser-creator", "Manifest", ["Collection"], ["Manifest", "Collection"], ["Collection"], [], Promise<_manifest_editor_creator_api92.CreatorResource[]>>;
|
|
394
394
|
//#endregion
|
|
395
395
|
//#region src/Range/RangeWithItems/create-range-with-items.d.ts
|
|
396
396
|
interface CreateRangeWithItemsPayload {
|
|
@@ -409,7 +409,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
409
409
|
}
|
|
410
410
|
}
|
|
411
411
|
}
|
|
412
|
-
declare const rangeWithItems:
|
|
412
|
+
declare const rangeWithItems: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateRangeWithItemsPayload, "@manifest-editor/range-with-items", "Range", [], ["Range"], ["Range"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
413
413
|
//#endregion
|
|
414
414
|
//#region src/Range/TopLevelRangeCreator/create-range-top-level.d.ts
|
|
415
415
|
interface CreateTopLevelRangePayload {
|
|
@@ -428,7 +428,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
428
428
|
}
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
|
-
declare const rangeTopLevel:
|
|
431
|
+
declare const rangeTopLevel: _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateTopLevelRangePayload, "@manifest-editor/range-top-level", "Range", [], ["Range"], ["Manifest"], ["structures"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
432
432
|
//#endregion
|
|
433
433
|
//#region src/Annotation/ImageUrlListAnnotation/create-image-url-list-annotation.d.ts
|
|
434
434
|
declare function createImageUrlListAnnotation(payload: {
|
|
@@ -447,8 +447,8 @@ interface NoBodyAnnotationPayload {
|
|
|
447
447
|
label?: InternationalString;
|
|
448
448
|
motivation?: string;
|
|
449
449
|
}
|
|
450
|
-
declare const noBodyAnnotation:
|
|
451
|
-
declare function createNoBodyAnnotation(data: NoBodyAnnotationPayload, ctx: CreatorFunctionContext):
|
|
450
|
+
declare const noBodyAnnotation: _manifest_editor_creator_api92.SpecificCreatorDefinition<NoBodyAnnotationPayload, "@manifest-editor/no-body-annotation", "Annotation", [], ["Annotation"], ["AnnotationPage"], ["items"], _manifest_editor_creator_api92.CreatorResource>;
|
|
451
|
+
declare function createNoBodyAnnotation(data: NoBodyAnnotationPayload, ctx: CreatorFunctionContext): _manifest_editor_creator_api92.CreatorResource;
|
|
452
452
|
//#endregion
|
|
453
453
|
//#region src/Canvas/InternalCanvas/index.d.ts
|
|
454
454
|
declare module "@manifest-editor/creator-api" {
|
|
@@ -458,7 +458,7 @@ declare module "@manifest-editor/creator-api" {
|
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
|
-
declare const internalCanvas:
|
|
461
|
+
declare const internalCanvas: _manifest_editor_creator_api92.SpecificCreatorDefinition<InternalCanvasPayload, "@manifest-editor/internal-canvas", "Canvas", [], ["Canvas"], ["Manifest"], ["start"], Promise<_manifest_editor_creator_api92.CreatorResource>>;
|
|
462
462
|
interface InternalCanvasPayload {
|
|
463
463
|
id: string;
|
|
464
464
|
}
|
|
@@ -474,7 +474,7 @@ declare function createThumbnail(data: CreateThumbnailPayload, ctx: CreatorFunct
|
|
|
474
474
|
declare function CreateThumbnailForm(props: CreatorContext): react_jsx_runtime0.JSX.Element;
|
|
475
475
|
//#endregion
|
|
476
476
|
//#region src/index.d.ts
|
|
477
|
-
declare const allCreators: (
|
|
477
|
+
declare const allCreators: (_manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageServicePayload, "@manifest-editor/image-service-creator", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["logo", "body", "thumbnail"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageServiceAnnotationPayload, "@manifest-editor/image-service-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<any>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageUrlPayload, "@manifest-editor/image-url-creator", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["logo", "body", "thumbnail"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageUrlAnnotationPayload, "@manifest-editor/image-url-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateVideoAnnotationPayload, "@manifest-editor/video-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource | undefined>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateAudioAnnotationPayload, "@manifest-editor/audio-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource | undefined>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateHTMLBodyPayload, "@manifest-editor/html-body-creator", "ContentResource", [], ["ContentResource"], ["Annotation"], ["body"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateHTMLAnnotationPayload, "@manifest-editor/html-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource | undefined>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateYouTubeBodyPayload, "@manifest-editor/youtube", "ContentResource", ["Canvas", "Annotation"], ["ContentResource", "Canvas", "Annotation"], ["Annotation", "Manifest", "AnnotationPage"], [], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<IIIFBrowserCreatorPayload, "@manifest-editor/iiif-browser-creator", "ContentResource", ["Annotation", "Canvas"], ["ContentResource", "Annotation", "Canvas"], ["Annotation", "Manifest", "AnnotationPage"], ["body", "items"], Promise<any[]>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<{
|
|
478
478
|
label?: _iiif_presentation_30.InternationalString;
|
|
479
479
|
width?: number;
|
|
480
480
|
height?: number;
|
|
@@ -484,12 +484,12 @@ declare const allCreators: (_manifest_editor_creator_api86.SpecificCreatorDefini
|
|
|
484
484
|
readonly label: _iiif_presentation_30.InternationalString;
|
|
485
485
|
readonly height: number;
|
|
486
486
|
readonly width: number;
|
|
487
|
-
readonly items: readonly [
|
|
488
|
-
}> |
|
|
487
|
+
readonly items: readonly [_manifest_editor_creator_api92.CreatorResource];
|
|
488
|
+
}> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreatePlaintextPayload, "@manifest-editor/plaintext-creator", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["seeAlso", "rendering", "homepage"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateWebpagePayload, "@manifest-editor/web-page-creator", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["seeAlso", "rendering", "homepage"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<{
|
|
489
489
|
label?: _iiif_presentation_30.InternationalString;
|
|
490
|
-
}, "@manifest-editor/empty-annotation-page", "AnnotationPage", [], ["AnnotationPage"], ["Manifest", "Canvas", "Range"], [],
|
|
490
|
+
}, "@manifest-editor/empty-annotation-page", "AnnotationPage", [], ["AnnotationPage"], ["Manifest", "Canvas", "Range"], [], _manifest_editor_creator_api92.CreatorResource> | _manifest_editor_creator_api92.SpecificCreatorDefinition<NoBodyAnnotationPayload, "@manifest-editor/no-body-annotation", "Annotation", [], ["Annotation"], ["AnnotationPage"], ["items"], _manifest_editor_creator_api92.CreatorResource> | _manifest_editor_creator_api92.SpecificCreatorDefinition<InternalCanvasPayload, "@manifest-editor/internal-canvas", "Canvas", [], ["Canvas"], ["Manifest"], ["start"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateCaptionedImageAnnotationPayload, "@manifest-editor/captioned-image-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource | undefined>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateImageUrlListPayload, "@manifest-editor/image-url-list", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["logo", "body", "thumbnail"], Promise<_manifest_editor_creator_api92.CreatorResource[]>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<{
|
|
491
491
|
images: CreateImageUrlPayload[];
|
|
492
|
-
}, "@manifest-editor/image-url-list-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<
|
|
492
|
+
}, "@manifest-editor/image-url-list-annotation", "Annotation", ["Canvas"], ["Annotation", "Canvas"], ["AnnotationPage", "Manifest"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource[]>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateThumbnailPayload, "@manifest-editor/thumbnail-image", "ContentResource", [], ["ContentResource"], _manifest_editor_creator_api92.AllParentTypes, ["thumbnail"], Promise<_manifest_editor_creator_api92.CreatorResource | null>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateTopLevelRangePayload, "@manifest-editor/range-top-level", "Range", [], ["Range"], ["Manifest"], ["structures"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateRangeWithItemsPayload, "@manifest-editor/range-with-items", "Range", [], ["Range"], ["Range"], ["items"], Promise<_manifest_editor_creator_api92.CreatorResource>> | _manifest_editor_creator_api92.SpecificCreatorDefinition<CreateProviderPayload, "@manifest-editor/provider", "Agent", [], ["Agent"], ["Manifest", "Collection"], ["provider"], Promise<_manifest_editor_creator_api92.CreatorResource>>)[];
|
|
493
493
|
//#endregion
|
|
494
494
|
export { CreateAudioAnnotationForm, CreateAudioAnnotationPayload, CreateCaptionedImageAnnotation, CreateCaptionedImageAnnotationPayload, CreateHTMLAnnotation, CreateHTMLAnnotationPayload, CreateHTMLBodyForm, CreateHTMLBodyPayload, CreateImageServerForm, CreateImageServiceAnnotationForm, CreateImageServiceAnnotationPayload, CreateImageServicePayload, CreateImageUrlAnnotationForm, CreateImageUrlAnnotationPayload, CreateImageUrlForm, CreateImageUrlListForm, CreateImageUrlListPayload, CreateImageUrlPayload, CreatePlaintextForm, CreatePlaintextPayload, CreateProviderForm, CreateProviderPayload, CreateRangeWithItemsPayload, CreateThumbnailForm, CreateThumbnailPayload, CreateTopLevelRangePayload, CreateVideoAnnotationForm, CreateVideoAnnotationPayload, CreateWebPageForm, CreateWebpagePayload, CreateYouTubeBodyPayload, IIIFBrowserCreatorForm, IIIFBrowserCreatorPayload, InternalCanvasPayload, ManifestBrowserCreatorForm, type ManifestBrowserCreatorPayload, NoBodyAnnotationPayload, RangeWithItemsCreatorForm, TopLevelRangeCreatorForm, YouTubeForm, allCreators, audioAnnotation, captionedImageAnnotation, createAudioAnnotation, createCaptionedImageAnnotation, createFromIIIFBrowserOutput, createFromManifestBrowserOutput, createHtmlAnnotation, createHtmlBody, createImageServer, createImageServiceAnnotation, createImageUrl, createImageUrlAnnotation, createImageUrlList, createImageUrlListAnnotation, createNoBodyAnnotation, createPlaintext, createProvider, createRangeTopLevel, createRangeWithItems, createThumbnail, createVideoAnnotation, createWebPage, createYoutubeBody, emptyAnnotationPage, emptyCanvas, getYouTubeId, htmlAnnotation, htmlBodyCreator, iiifBrowserCreator, imageServiceAnnotation, imageServiceCreator, imageUrlAnnotation, imageUrlCreator, imageUrlListAnnotation, imageUrlListCreator, internalCanvas, manifestBrowserCreator, noBodyAnnotation, plaintextCreator, providerCreator, rangeTopLevel, rangeWithItems, validateYouTube, videoAnnotation, webPageCreator, youTubeBodyCreator };
|
|
495
495
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./manifest-browser-form.lazy-
|
|
1
|
+
import{t as e}from"./manifest-browser-form.lazy-CvgqUwj3.js";import{creatorHelper as t,defineCreator as n}from"@manifest-editor/creator-api";import{Vault as r,createThumbnailHelper as i,getValue as a}from"@iiif/helpers";import{ActionButton as o,AddImageIcon as s,AudioIcon as c,EmptyCanvasIcon as l,ErrorMessage as u,Form as d,HTMLEditor as f,HTMLIcon as p,IIIFBrowserIcon as m,IIIFLogo as h,ImageListIcon as g,PaddedSidebarContainer as _,RangesIcon as ee,ScaledImageIcon as te,VideoIcon as ne,YouTubeIcon as re}from"@manifest-editor/components";import{DimensionsTriplet as ie,FormFieldWrapper as ae,Input as v,InputContainer as y,InputLabel as b,LanguageFieldEditor as x,centerRectangles as oe}from"@manifest-editor/editors";import{lazy as se,useEffect as ce,useLayoutEffect as le,useMemo as S,useState as C}from"react";import{Fragment as ue,jsx as w,jsxs as T}from"react/jsx-runtime";import{CanvasPanel as de,ImageService as fe,MediaPlayerProvider as pe,VaultProvider as me,formatTime as he,useManifest as ge,useMediaActions as _e,useMediaElements as ve,useMediaState as ye,useSimpleMediaPlayer as be,useVault as xe}from"react-iiif-vault";import E,{css as Se}from"styled-components";import{getFormat as Ce,getImageDimensions as we,useAnnotationCreatorState as D,useConfig as Te}from"@manifest-editor/shell";import{canonicalServiceUrl as O,createImageServiceRequest as k,getImageServices as Ee,imageServiceRequestToString as A,isImageService as De,parseImageServiceRequest as j}from"@iiif/parser/image-3";import{EditorInstance as M}from"@manifest-editor/editor-api";import{ErrorBoundary as Oe}from"react-error-boundary";import{IIIFBrowser as ke}from"iiif-browser";async function N(e,t){let n={id:e.url||t.generateId(`provider`),label:e.label,type:`Agent`,homepage:[],logo:[]};return e.homepage&&(n.homepage=[t.embed({id:e.url,label:a(e.homepageLabel)?e.homepageLabel:{en:[`Homepage`]},type:`Text`,format:`text/html`,language:[`en`]})]),e.logo&&(n.logo=[t.embed({id:e.logo,type:`Image`})]),t.embed(n)}function Ae(e){let t=e.options.initialData,[n,r]=C(t.url||``),[i,a]=C(t.label||{en:[``]}),[s,c]=C(t.homepage||``),[l,u]=C(t.logo||``),[d,f]=C(t.homepageLabel||{en:[``]});return w(_,{children:T(`div`,{className:`max-w-xl`,children:[w(x,{containerId:`label`,focusId:`label_`,label:`Label`,fields:i,onSave:e=>a(e.toInternationalString())}),T(y,{$fluid:!0,children:[w(b,{htmlFor:`provider-logo`,children:`Logo`}),w(v,{placeholder:`https://example.org/logo.png`,type:`text`,id:`provider-logo`,value:l,onChange:e=>u(e.target.value)})]}),T(y,{$fluid:!0,children:[w(b,{htmlFor:`provider-homepage`,children:`Homepage`}),w(v,{placeholder:`https://example.org/homepage`,type:`text`,id:`provider-homepage`,value:s,onChange:e=>c(e.target.value)})]}),s?w(`div`,{children:w(x,{containerId:`homepageLabel`,focusId:`homepageLabel_`,label:`Homepage label`,fields:d,onSave:e=>f(e.toInternationalString())})}):null,T(y,{$fluid:!0,children:[w(b,{$margin:!1,htmlFor:`provider-url`,children:`Provider ID`}),w(`span`,{className:`text-gray-500 text-sm mb-2`,children:`Will be generated if not specified, this is not a URL that the user can follow`}),w(v,{placeholder:`https://id.loc.gov/authorities/abc123`,type:`text`,id:`provider-url`,value:n,onChange:e=>r(e.target.value)})]}),w(o,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({url:n,label:i,homepage:s,homepageLabel:d,logo:l})},children:`Add provider`})]})})}const je=n({id:`@manifest-editor/provider`,label:`Provider`,summary:`Create a new provider`,resourceType:`Agent`,resourceFields:[`id`,`type`,`label`],supports:{parentTypes:[`Manifest`,`Collection`],parentFields:[`provider`],initialData:!0},create:N,render(e){return w(Ae,{...e})}}),Me=e=>T(`svg`,{...e,viewBox:`4 4 16 16`,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,children:[e.title?w(`title`,{children:e.title}):null,w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{d:`M8 5v14l11-7z`,fill:`currentColor`})]}),Ne=e=>T(`svg`,{...e,viewBox:`4 4 16 16`,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,children:[e.title?w(`title`,{children:e.title}):null,w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{fill:`currentColor`,d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`})]}),Pe=({title:e,...t})=>T(`svg`,{...t,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`2 2 20 20`,children:[e?w(`title`,{children:e}):null,w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{fill:`currentColor`,d:`M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z`})]}),Fe=({title:e,...t})=>T(`svg`,{...t,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`2 2 20 20`,children:[e?w(`title`,{children:e}):null,w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{fill:`currentColor`,d:`M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z`})]}),Ie=({title:e,...t})=>T(`svg`,{...t,xmlns:`http://www.w3.org/2000/svg`,height:`1em`,width:`1em`,viewBox:`2 2 20 20`,children:[e?w(`title`,{children:e}):null,w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{fill:`currentColor`,d:`M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 0 0 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4 9.91 6.09 12 8.18V4z`})]}),Le=E.div`
|
|
2
2
|
background: #ededed; // Not in variable.
|
|
3
3
|
display: flex;
|
|
4
4
|
padding: 0.5em;
|
|
@@ -94,5 +94,5 @@ import{t as e}from"./manifest-browser-form.lazy-Bm07wmnB.js";import{creatorHelpe
|
|
|
94
94
|
`;function Ze(e){let[t,n]=C(!1),{progress:r,currentTime:i,element:a}=ve(),{duration:o,isMuted:s,volume:c,isPlaying:l,playRequested:u}=ye(),{setVolume:d,toggleMute:f,play:p,pause:m,setDurationPercent:h}=_e(),g=s||c===0?Ie:c>50?Pe:Fe;return le(()=>{if(a.current){let t=a.current;if(t.error&&e.onError){e.onError(t.error?.message||`Unknown error`);return}let n=()=>{e.onError&&e.onError(t.error?.message||`Unknown error`)},r=()=>{t.duration&&e.onDuration&&e.onDuration(t.duration),e.onDimensions&&t instanceof HTMLVideoElement&&e.onDimensions(t.videoWidth,t.videoHeight)};return t.addEventListener(`loadedmetadata`,r),t.addEventListener(`error`,n),()=>{t.removeEventListener(`loadedmetadata`,r),t.removeEventListener(`error`,n)}}},[]),T(Le,{children:[w(ze,{disabled:u,onClick:()=>{l?m():p()},children:u?w(Je,{stroke:`#999`}):l?w(Ne,{title:`Pause`}):w(Me,{title:`Play`})}),w(Be,{ref:i,children:`0:00`}),T(Ve,{onClick:e=>{let{left:t,width:n}=e.currentTarget.getBoundingClientRect();h((e.pageX-t)/n)},children:[w(Ue,{}),o?w(He,{ref:r}):null]}),w(Be,{children:he(o)}),T(Ge,{onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[w(Ke,{$isOpen:t,children:T(`span`,{children:[w(Xe,{htmlFor:`audio-slider`,children:`Change volume`}),w(qe,{id:`audio-slider`,role:`slider`,disabled:s,min:`0`,max:`100`,value:c,onChange:e=>d(Number(e.currentTarget.value))})]})}),w(We,{onClick:()=>f(),children:w(g,{title:s?`Mute`:`Unmute`})})]})]})}async function Qe(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=t.embed({id:e.url,type:`Sound`,format:`audio/mp4`,duration:e.duration||0});if(r===`Annotation`)return t.embed({...n,label:a(e.label)&&e.label,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:i,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),a=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:i,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:a,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},duration:e.duration||0,items:[s]})}}function $e(e){let[t,n]=C(``),[r,i]=C(0),[a,s]=C(``),[c,l]=C({en:[``]});return ce(()=>{if(s(``),i(0),t){let e=t.split(`/`).pop()?.split(`.`).shift();l({en:[e||``]})}},[t]),T(_,{children:[a?w(u,{children:a}):null,T(y,{$wide:!0,children:[w(b,{htmlFor:`audio-url`,children:`URL`}),w(v,{type:`text`,id:`audio-url`,value:t,onChange:e=>n(e.target.value)})]}),t&&!a?w(`div`,{children:w(x,{containerId:`label`,focusId:`label_`,label:`Label`,fields:c,onSave:e=>l(e.toInternationalString())},`${t}__${r}`)}):null,t&&!a?w(de.AudioHTML,{media:{url:t,duration:r,type:`Sound`},children:w(Ze,{onError:e=>s(e),onDuration:e=>i(~~e)},`${t}__${r}`)},`${t}__${r}`):null,r&&!a?T(ae,{children:[w(b,{htmlFor:`duration`,children:`Duration`}),w(v,{type:`number`,id:`duration`,value:r,onChange:e=>i(e.target.valueAsNumber)})]}):null,w(o,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({url:t,duration:r,label:c})},isDisabled:!t||!!a,children:`Add audio`})]})}const et=n({id:`@manifest-editor/audio-annotation`,create:Qe,label:`Audio`,summary:`Audio annotation`,icon:w(c,{}),render(e){return w($e,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{initialData:!0,onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},staticFields:{type:`Annotation`}});async function tt(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=Object.keys(e.body),a=[];for(let r of i){let i=e.body[r].join(`
|
|
95
95
|
`);i&&a.push(await t.create(`@manifest-editor/html-body-creator`,{language:r,body:i},{parent:{resource:n,property:`items`}}))}let o=await t.create(`@manifest-editor/image-url-creator`,{url:e.imageUrl},{parent:{resource:n,property:`body`}});if(o&&a.push(o),r===`Annotation`)return t.embed({...n,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:a,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),i=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:a,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:i,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},height:e.height||1e3,width:e.width||1e3,items:[s]})}}function nt(e){let[t,n]=D({key:`bodyValue`,initialValue:{en:[``]},requestId:e.options.initialData?.requestId});return w(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());e.runCreate({body:{en:[r.caption]},imageUrl:r.url})},children:T(ue,{children:[T(y,{$wide:!0,children:[w(b,{htmlFor:`url`,children:`URL to Image`}),w(v,{id:`url`,name:`url`,defaultValue:``,placeholder:`https://example.org/image.jpg`})]}),T(y,{$wide:!0,children:[w(b,{htmlFor:`caption`,children:`Caption`}),w(v,{id:`caption`,name:`caption`,placeholder:`Enter a caption`,onChange:e=>n({en:[e.target.value]}),value:t.en?.[0]||``})]}),w(o,{primary:!0,type:`submit`,children:`Create`})]})})}const rt=n({id:`@manifest-editor/captioned-image-annotation`,create:tt,label:`Captioned image`,summary:`Add an image from a URL with caption`,icon:w(s,{}),render(e){return w(nt,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{initialData:!0,disallowPainting:!0,parentTypes:[`AnnotationPage`],parentFields:[`items`]},staticFields:{type:`Annotation`}});async function it(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=Object.keys(e.body),a=[];for(let r of i){let i=e.body[r].join(`
|
|
96
96
|
`);i&&a.push(await t.create(`@manifest-editor/html-body-creator`,{language:r,body:i},{parent:{resource:n,property:`items`}}))}if(r===`Annotation`)return t.embed({...n,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:a,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),i=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:a,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:i,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},height:e.height||1e3,width:e.width||1e3,items:[s]})}}function at(e){let[t,n]=D({key:`bodyValue`,initialValue:{en:[``]},requestId:e.options.initialData?.requestId}),r=a(t).trim()===``;return T(ue,{children:[w(f,{className:`border-none`,value:t.en?.[0]||``,onChange:e=>n({en:[e]})}),w(o,{primary:!0,type:`button`,onPress:()=>{e.runCreate({body:t})},isDisabled:r,children:`Create`})]})}const ot=n({id:`@manifest-editor/html-annotation`,create:it,label:`HTML`,summary:`HTML annotation`,icon:w(p,{}),render(e){return w(at,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{initialData:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},staticFields:{type:`Annotation`}}),P={canvasInteraction:!0,spatial:!0,async run(e,{vault:t,options:n}){if(e&&e.type===`Annotation`&&n.targetType===`Annotation`){let n=t.get(e),r=n.target;if(!(r&&r.source?.type===`Canvas`))return;let i=r.source,a=t.get(i);if(!a.items)return;let o=t.get(a.items[0]);if(!o||o.items.length<2&&!a.behavior.includes(`multi-image`))return;let s=t.get(n.body)[0],c=n.body[0]?.selector,l=(s.service||[]).find(e=>De(e));l&&l.width&&l.height&&(l.width!==s.width&&t.modifyEntityField({id:s.id,type:`ContentResource`},`width`,l.width),l.height!==s.height&&t.modifyEntityField({id:s.id,type:`ContentResource`},`height`,l.height));let u=l?.width||s.width,d=l?.height||s.height;if(c&&(c.type===`iiif:ImageApiSelector`||c.type===`ImageApiSelector`)&&c.region){let[e,t,n,r]=c.region.split(`,`);u=Number(n)||u,d=Number(r)||d}let f=new M({vault:t,reference:e}),p=oe(a,{width:u,height:d},.6);f.annotation.target.setPosition(p)}}},F={canvasInteraction:!0,spatial:!0,async run(e,{vault:t,options:n}){if(e&&e.type===`Annotation`&&n.targetType===`Annotation`){let n=t.get(e),r=n.target;if(!(r&&r.source?.type===`Canvas`))return;let i=r.source,a=t.get(i);if(!a.items||a.behavior.includes(`multi-image`))return;let o=t.get(a.items[0]);if(!o||o.items.length>1)return;let s=t.get(n.body);if(s.length!==1)return;let c=s[0],l=n.body[0]?.selector,u=(c.service||[])[0],d=u?.width||c.width,f=u?.height||c.height,p=c.duration||u?.duration;if(l&&(l.type===`iiif:ImageApiSelector`||l.type===`ImageApiSelector`)&&l.region){let[e,t,n,r]=l.region.split(`,`);d=Number(n)||d,f=Number(r)||f}let m=new M({vault:t,reference:i});t.batch(()=>{d!==void 0&&m.technical.width.set(d),f!==void 0&&m.technical.height.set(f),p!==void 0&&m.technical.duration.set(p)})}}};var st=Object.defineProperty,ct=(e,t,n)=>t in e?st(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,I=(e,t,n)=>(ct(e,typeof t==`symbol`?t:t+``,n),n);function L(e){return e.endsWith(`info.json`)?e:e.endsWith(`/`)?`${e}info.json`:`${e}/info.json`}var lt=`http://library.stanford.edu/iiif/image-api/compliance.html#level0`,ut=`http://library.stanford.edu/iiif/image-api/compliance.html#level1`,dt=`http://library.stanford.edu/iiif/image-api/compliance.html#level2`,ft=`http://library.stanford.edu/iiif/image-api/conformance.html#level0`,pt=`http://library.stanford.edu/iiif/image-api/conformance.html#level1`,mt=`http://library.stanford.edu/iiif/image-api/conformance.html#level2`,ht=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0`,gt=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1`,_t=`http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2`,vt=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0`,yt=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1`,bt=`http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2`,xt=`http://iiif.io/api/image/1/level0.json`,St=`http://iiif.io/api/image/1/profiles/level0.json`,Ct=`http://iiif.io/api/image/1/level1.json`,wt=`http://iiif.io/api/image/1/profiles/level1.json`,Tt=`http://iiif.io/api/image/1/level2.json`,Et=`http://iiif.io/api/image/1/profiles/level2.json`,Dt=`http://iiif.io/api/image/2/level0.json`,Ot=`http://iiif.io/api/image/2/profiles/level0.json`,kt=`http://iiif.io/api/image/2/level1.json`,At=`http://iiif.io/api/image/2/profiles/level1.json`,jt=`http://iiif.io/api/image/2/level2.json`,Mt=`http://iiif.io/api/image/2/profiles/level2.json`,Nt=`level0`,Pt=`level1`,Ft=`level2`,It=`http://iiif.io/api/image/2/level0`,Lt=`http://iiif.io/api/image/2/level1`,Rt=`http://iiif.io/api/image/2/level2`,zt=[Rt,dt,mt,_t,bt,Tt,Et,jt,Mt,Ft],Bt=[...zt,Lt,ut,pt,gt,yt,Ct,wt,kt,At,Pt],Vt=[It,Lt,Rt,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft],Ht={extraFormats:[`jpg`],extraQualities:[`default`],extraFeatures:[`sizeByWhListed`]},Ut={extraFormats:[`jpg`],extraQualities:[`default`],extraFeatures:[`baseUriRedirect`,`cors`,`jsonldMediaType`,`regionByPx`,`regionSquare`,`sizeByWhListed`,`sizeByH`,`sizeByW`,`sizeByWh`]},Wt={extraFormats:[`jpg`,`png`],extraQualities:[`default`],extraFeatures:[`baseUriRedirect`,`cors`,`jsonldMediaType`,`regionByPct`,`regionByPx`,`regionSquare`,`rotationBy90s`,`sizeByWhListed`,`sizeByConfinedWh`,`sizeByH`,`sizeByPct`,`sizeByW`,`sizeByWh`]};function Gt(e){return zt.indexOf(e)===-1?Bt.indexOf(e)===-1?Ht:Ut:Wt}function Kt(e){let t=e?Array.isArray(e.profile)?e.profile:[e.profile]:[],n={extraQualities:[],extraFormats:[],extraFeatures:[]};for(let e of t)if(typeof e==`string`&&(e=Gt(e)),e){if(e.formats)for(let t of e.formats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.qualities)for(let t of e.qualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);if(e.supports)for(let t of e.supports)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);if(e.maxHeight&&(n.maxHeight=e.maxHeight),e.maxWidth&&(n.maxWidth=e.maxWidth),e.maxArea&&(n.maxArea=e.maxArea),e.extraFormats)for(let t of e.extraFormats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.extraQualities)for(let t of e.extraQualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);if(e.extraFeatures)for(let t of e.extraFeatures)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);e.maxHeight&&(n.maxHeight=e.maxHeight),e.maxWidth&&(n.maxWidth=e.maxWidth),e.maxArea&&(n.maxArea=e.maxArea)}if(e.extraFormats)for(let t of e.extraFormats)n.extraFormats.indexOf(t)===-1&&n.extraFormats.push(t);if(e.extraFeatures)for(let t of e.extraFeatures)n.extraFeatures.indexOf(t)===-1&&n.extraFeatures.push(t);if(e.extraQualities)for(let t of e.extraQualities)n.extraQualities.indexOf(t)===-1&&n.extraQualities.push(t);return n}function qt(e){try{if(e===`full`)return{full:!0};if(e===`square`)return{square:!0};let t=e.startsWith(`pct:`),n=e.substr(t?4:0).split(`,`).map(e=>parseFloat(e));return{x:n[0],y:n[1],w:n[2],h:n[3],percent:t}}catch{throw Error(`Expected 'full', 'square' or 'x,y,w,h'. Found `+e)}}function Jt(e){let t={upscaled:!1,max:!1,confined:!1};if(e[0]===`^`&&(t.upscaled=!0,e=e.slice(1)),e===`max`||e===`full`)return t.max=!0,t.serialiseAsFull=e===`full`,t;if(e[0]===`!`&&(t.confined=!0,e=e.slice(1)),e[0]===`p`)return t.percentScale=parseFloat(e.slice(4)),t;let n=e.split(`,`).map(e=>e.trim());return n.length&&typeof n[0]<`u`&&(n[0]!==``&&(t.width=parseInt(n[0],10)),typeof n[1]<`u`&&n[1]!==``?(t.height=parseInt(n[1],10),t.version=2):t.version=3),t}function Yt(e){let t={angle:0};if(e[0]===`!`&&(t.mirror=!0,e=e.substr(1)),t.angle=parseFloat(e)%360,Number.isNaN(t.angle))throw Error(`Invalid rotation ${e}`);return t}function Xt(e,t=``){let n=e.match(/^(([a-zA-Z]+):\/\/([^/]+))?((.*)+)/);if(!n)throw Error(`Invalid or unknown input ${e}`);let r=n[2],i=n[3],a=n[4];if(a[0]===`/`&&(a=a.substring(1)),t.length>0){if(t[0]===`/`&&(t=t.substring(1)),t!==a.substring(0,t.length))throw Error(`Path does not start with prefix (path: ${a}, prefix: ${t})`);a=a.substring(t.length)}return{scheme:r,server:i,path:a,prefix:t}}function Zt(e,t=``){let{path:n,scheme:r,server:i,prefix:a}=Xt(e,t),o=(n||``).split(`/`).reverse(),[s,c,l,u,...d]=o,f=d.reverse().filter(Boolean).join(`/`);if(o.length===1||s===``)return{type:`base`,scheme:r,server:i,prefix:a,identifier:f};if(s===`info.json`){let[,...e]=o;return{type:`info`,scheme:r,server:i,prefix:a,identifier:e.reverse().filter(Boolean).join(`/`)}}let p=(s||``).split(`.`);if(typeof p[1]>`u`||typeof p[0]>`u`||typeof u>`u`||typeof l>`u`||typeof c>`u`)throw Error(`Invalid image request`);return{type:`image`,scheme:r,server:i,prefix:a,identifier:f,originalPath:n,region:qt(u),size:Jt(l),rotation:Yt(c),quality:p[0],format:p[1]}}function Qt(e){let t=Zt(L(e.id));if(t.type!==`info`)throw Error(`Invalid service URL`);let n=Kt(e);return{identifier:t.identifier,originalPath:``,server:t.server,prefix:t.prefix,scheme:t.scheme,type:`image`,quality:n.extraQualities.indexOf(`default`)===-1?n.extraQualities[0]:`default`,region:{full:!0},size:{max:!0,upscaled:!1,confined:!1},format:`jpg`,rotation:{angle:0}}}function $t(e,t,n){let r=n.length,i=[];for(let t=0;t<r;t++){let r=n[t];if(r){let t=r.width;i.push(e/t)}}return i}function en(e,t,n){let r=n.length,i=[];for(let a=0;a<r;a++){let r=n[a];r&&i.push({width:Math.floor(e/r),height:Math.floor(t/r)})}return i}function R(e){if(e[`@id`])return e[`@id`];if(e.id)return e.id}function z(e){if(!e||!e.profile||!R(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`&&Vt.indexOf(e)!==-1)return!0;return!1}function tn(e){if(!z(e))return!1;let t=Array.isArray(e.profile)?e.profile:[e.profile];for(let e of t)if(typeof e==`string`){if(Bt.indexOf(e)!==-1)return!0}else{let t=[...e.supports||[],...e.extraFeatures||[]];if(t.indexOf(`regionByPx`)!==-1&&(t.indexOf(`sizeByW`)!==-1||t.indexOf(`sizeByWh`)!==-1))return!0}return!1}function B(e,t){if(t&&t.profile){let n=t.profile;if(n){let t=Array.isArray(n)?n:[n];return t.includes(`level${e}`)||t.includes(`http://iiif.io/api/image/2/level${e}.json`)||t.includes(`http://iiif.io/api/image/1/level${e}.json`)||t.includes(`http://iiif.io/api/image/1/profiles/level${e}.json`)}}return!1}function V(e){return z(e)?B(0,e)?0:B(1,e)?1:B(2,e)?2:null:null}function nn(e){return(e[`@context`]?Array.isArray(e[`@context`])?e[`@context`]:[e[`@context`]]:[]).indexOf(`http://iiif.io/api/image/3/context.json`)!==-1}function rn(e){if(!tn(e))return[];let t=[],n=Array.isArray(e.profile)?e.profile:[e.profile],r=n.length;for(let t=0;t<r;t++){let r=n[t];if(r&&typeof r!=`string`&&(r.maxHeight||r.maxWidth))return[{id:R(e),type:`variable`,minWidth:0,minHeight:0,maxHeight:r.maxHeight||r.maxWidth,maxWidth:r.maxWidth||r.maxHeight,level:V(e),version:e[`@context`]===`http://iiif.io/api/image/3/context.json`?3:2}]}if(e.tiles){let n=e.tiles.length;for(let r=0;r<n;r++){let n=e.tiles[r];n&&(n.height||n.width)&&t.push({id:R(e),type:`variable`,minHeight:0,minWidth:0,maxHeight:n.height||n.width,maxWidth:n.width,level:V(e),version:nn(e)?3:2})}}return t}function an(e){let t=e.match(/^.*\/(full)\/(((\d+),(\d+)?)|max)\/(\d+)\/default\.(jpg|png|jpeg)$/);if(t&&t[4]&&t[5]){let n=t[1],r=parseInt(t[4],10),i=parseInt(t[5],10),a=t[7];if((n===`max`||n===`full`)&&r&&i&&a)return{type:`fixed`,id:e,height:i,width:r}}return{type:`unknown`,id:e}}function on(e){if(e[`@type`])return e[`@type`];if(e.type)return e.type}function sn(e){if(typeof e==`string`)return an(e);let t=on(e);if(t!==`Image`&&t!==`sc:Image`)return null;let n=e,r=R(n);return r?r&&n.width&&n.height?{id:r,type:`fixed`,width:n.width,height:n.height,unsafe:!0}:an(r):null}function cn(e){return z(e)?(e&&e.sizes?e.sizes:[]).map(t=>({id:R(e),type:`fixed-service`,height:t.height,width:t.width,level:V(e),version:nn(e)?3:2})):[]}function ln(e){let t=[],n=e.length;for(let r=0;r<n;r++){let n=e[r];if(!n)continue;let i=cn(n);i.length&&t.push(...i);let a=rn(n);a.length&&t.push(...a)}return t}function un(e){let t=e.service?Array.isArray(e.service)?e.service:[e.service]:[],n=t.length,r=[];for(let e=0;e<n;e++)z(t[e])&&r.push(t[e]);return r}function dn(e,t=!0,n){let r=[],i=sn(e);if(i===null)return r;let a=e;if(r.push(i),t&&a&&a.width&&a.height){let e=[],t=un(a);for(let r of t){let t={id:R(r),width:a.width,height:a.height};if(n.canLoadSync(t)){let r=n.loadServiceSync(t);r&&(r.height||(r.height=a.height),r.width||(r.width=a.width),e.push(...ln([r])))}}if(e.length)return r.push(...e),r}return a.service&&r.push(...ln(a.service)),r}function fn({x:e=0,y:t=0,w:n,h:r,full:i,square:a,percent:o}){if(i)return`full`;if(a)return`square`;if(typeof n>`u`||typeof r>`u`)throw Error(`RegionParameter: invalid region`);let s=`${e},${t},${n},${r}`;return o?`pct:${s}`:s}function pn({max:e,percentScale:t,upscaled:n,confined:r,width:i,height:a,serialiseAsFull:o,version:s}){let c=[];return n&&c.push(`^`),e?(c.push(o?`full`:`max`),c.join(``)):(r&&c.push(`!`),t&&c.push(`pct:${t}`),i&&c.push(`${i}`),c.push(`,`),a&&s===3&&c.push(`${a}`),c.join(``))}function mn(e){return`${e.mirror?`!`:``}${(e.angle||0)%360}`}function hn(e,t){let n=e.prefix.startsWith(`/`)?e.prefix.substr(1):e.prefix,r=`${e.scheme}://${e.server}/${n?`${n}/`:``}${e.identifier}`;if(e.type===`base`)return r;if(e.type===`info`)return`${r}/info.json`;let{size:i}=e,{region:a,rotation:o,format:s,quality:c}=e;if(t){let e=t[`@context`]?Array.isArray(t[`@context`])?t[`@context`]:[t[`@context`]]:[],n=e.indexOf(`http://iiif.io/api/image/2/context.json`)!==-1,r=e.indexOf(`http://iiif.io/api/image/3/context.json`)!==-1;if((i.width===t.width&&!i.height||i.height===t.height&&!i.width||i.width===t.width&&i.height===t.height)&&(i={...i,max:!0}),n&&(i.max&&!i.serialiseAsFull&&(i={...i,serialiseAsFull:!0}),!i.max&&i.width&&i.height&&(i={...i,height:void 0}),i={...i,version:2}),r){if(i.max&&i.serialiseAsFull&&(i={...i,serialiseAsFull:!1}),i.width&&!i.height&&t.width&&t.height){let e=t.height/t.width;i={...i,height:Math.ceil(i.width*e)}}i={...i,version:3}}}return[r,fn(a),pn(i),mn(o),`${c}.${s}`].filter(Boolean).join(`/`)}function H(e,t,n){let r=Qt({"@context":e.version===3?`http://iiif.io/api/image/3/context.json`:`http://iiif.io/api/image/2/context.json`,id:L(R(e)),profile:e.level===null||typeof e.level>`u`?`level0`:`level${e.level}`,type:e.version===3?`ImageService3`:`ImageService2`});if(r.type!==`image`)throw Error(`Invalid service`);return r.size.max=!1,r.size.width=t,r.size.height=n,{id:hn(r),type:`fixed`,width:t,height:n||e.height/(e.width||1)*t,unsafe:e.width>t}}function U(e){let t=e.replace(/(https?:\/\/)?(www.)?/i,``);return t.indexOf(`/`)===-1?t:t.split(`/`)[0]}function gn(e,t,n){let r=e.width?e.width:e.maxWidth;return n.height<=e.maxHeight&&n.width<=e.maxWidth&&n.height>=e.minHeight&&n.width>=e.minWidth&&(!t||Math.abs(n.width-r)<Math.abs(t.width-r))}function _n(e,t){let n=[],r=Object.assign({unsafeImageService:!1,atAnyCost:!0,fallback:!0,minHeight:64,minWidth:64,maxHeight:1/0,maxWidth:1/0,returnAllOptions:!1,preferFixedSize:!1,allowUnsafe:!1,explain:!1,height:0,width:0},e),i=(e,t=0)=>r.explain?n.push(Array(t).fill(0).map(e=>` `).join(``)+e().trim()):void 0,a=[],o=[],s=null;i(()=>`Using configuration: ${JSON.stringify(r,null,2)}`);let c=(e,t)=>{if(i(()=>`Swapping choice`,3),gn(r,t,e)){if(r.preferFixedSize&&e.unsafe){i(()=>`We found an image that was marked as unsafe, but it was the best size. (${e.id})`,4),o.push(e);return}r.returnAllOptions&&t&&o.push(t),i(()=>`We found a new image that was the best size. (${e.id})`,4),s=e}else r.returnAllOptions&&o.push(e)};i(()=>`The input shows we have ${t.length} list(s) of candidates to choose from.`);let l=t.length;for(let e=0;e<l;e++){let n=t[e]();i(()=>`Candidate group ${e}: ${JSON.stringify(n,null,2)}`,1);let o=n.length;i(()=>`Checking candidate list number ${e} and found ${o} potential ways of creating image(s)`,1);for(let e=0;e<o;e++){let t=n[e];i(()=>`-> Checking candidate ${e}`,1),t.type===`unknown`&&r.atAnyCost&&(i(()=>`We've found an unknown image type, adding this to the "last resort" list`,2),a.push(t)),t.type===`fixed`&&(t.unsafe?(i(()=>`We've found an unsafe fixed image type, adding this to the "last resort" list`,2),a.push(t)):(i(()=>`We've found a fixed size image, checking if it matches the request`,2),c(t,s))),t.type===`fixed-service`&&(r.unsafeImageService?(i(()=>`Checking for an image from the tile source, without calculating the right height and width (unsafeImageService)`,2),c(H(t,r.width,r.height),s)):(i(()=>`Checking for an image from the tile source 3`,2),c(H(t,t.width,t.height),s))),t.type===`variable`&&t.maxWidth&&c(H({id:t.id,type:`fixed-service`,width:t.maxWidth,height:t.maxWidth,level:t.level,version:t.version},t.maxWidth),s)}if(s&&!r.returnAllOptions){if(s.unsafe||r.allowUnsafe)continue;i(()=>`We found a match in choice list number ${e}, no searching any more`);break}}return r.atAnyCost&&o.length===0?(i(()=>s?`We found an image! ${s.id} of type ${s.type}`:`We found no images, but "atAnyCost" is set, so returning that`),{best:s||a[0]||null,fallback:a.slice(1),log:n}):r.returnAllOptions?(i(()=>`Returning all options that we have found`),{best:(r.atAnyCost?s||o[0]||a[0]:s||o[0])||null,fallback:[...o,...a],log:n}):(i(()=>`Returning the best image that we found, and a fallback`),{best:s||o[0]||null,fallback:s?o:o.slice(1),log:n})}function vn(e,t,n){let r=e>t?e:t,i=n.length,a=[];for(let e=0;e<i;e++){let t=n[e];if(!t||t.scaleFactors.length===0)continue;let i=t.scaleFactors[0];if(!i)continue;let o=r/i,s=[i];for(;o>=t.width;)i*=2,s.push(i),o/=2;a.push({...t,scaleFactors:s})}return a}function yn(e,t){if(e.length!==t.length)return!1;if(e.length===0&&t.length===0)return!0;let n=e.length,r=!0;for(let i=0;i<n;i++){let n=e[i],a=t[i];if(n.width!==a.width||n.height!==a.height){r=!1;break}}if(r)return!0;let i=0;for(let r=0;r<n;r++)for(let a=0;a<n;a++)if(e[r].width===t[a].width&&e[r].height===t[a].height){i++;break}return i===n}function bn(e){return B(0,e)}new class{constructor(e={}){I(this,`config`,{verificationsRequired:1,approximateServices:!1,enableFetching:!0,disableThrottling:!1}),I(this,`fetchingCount`,0),I(this,`imageServices`,{}),I(this,`knownImageServers`,{}),this.config=Object.assign(this.config,e)}setConfig(e){Object.assign(this.config,e)}sample(e,t,n=!0){let r=U(R(e)),i=L(R(e)),a=this.knownImageServers[r];return this.imageServices[i]=Object.assign(e,{real:!0}),!a&&e.tiles&&!bn(e)?(this.knownImageServers[r]={verifications:0,malformed:!1,root:r,preLoaded:n,sampledId:R(e),verified:!1,server:null,result:{context:e[`@context`]||[],sampledProfile:e.profile,resourceServiceRatio:t&&e.height?t.height/e.height:1,sampledSizes:e.sizes||[],sizeRatios:$t(e.width,e.height,e.sizes||[]),sampledTiles:e.tiles||[]}},!0):this.verify(e)}preLoad(e,t=!0){this.knownImageServers[e.root]=e,t&&(this.knownImageServers[e.root].malformed=!1,this.knownImageServers[e.root].verifications=this.config.verificationsRequired)}predict(e,t=!1,n=!1){let r=e?.source,i=U(R(e)),a=this.knownImageServers[i],o=L(R(e));return this.imageServices[o]?this.imageServices[o]||null:!this.config.approximateServices||!a||!a.result||!(r?.height||e.height)||!(r?.width||e.width)||!n&&(a.malformed||a.verifications<this.config.verificationsRequired)||bn(e.source)?null:(this.imageServices[o]||(this.imageServices[o]={"@context":a.result.context,"@id":R(e),id:R(e),protocol:`http://iiif.io/api/image`,tiles:r?.tiles||vn(e.width,e.height,a.result.sampledTiles),sizes:r?.sizes||en(Math.round(e.width/a.result.resourceServiceRatio),Math.round(e.height/a.result.resourceServiceRatio),a.result.sizeRatios),profile:r?.profile||a.result.sampledProfile,height:r?.height||e.height,width:r?.width||e.width,real:!1}),this.imageServices[o]||null)}async getThumbnailFromResource(e,t,n=!0,r=[]){let i=e?await this.getImageCandidates(e,n):[];return _n(t,[()=>r,()=>i])}async getImageCandidates(e,t=!0){let n=e;if(t&&n&&n.height&&n.width){let e=un(n);for(let t of e){let e={id:R(t),width:t.width?t.width:n.width,height:t.height?t.height:n.height,source:t};await this.loadService(e)}}return dn(e,t,this)}async verify(e){let t=this.predict(e,!1,!0),n=await this.fetchService(R(e));if(!t)return!1;let r=t.height===n.height&&t.width===n.width&&t[`@context`]===n[`@context`]&&yn(t.sizes||[],n.sizes||[]);if(r){let t=U(R(e)),n=this.knownImageServers[t];n&&(n.verifications+=1,n.verifications>=this.config.verificationsRequired&&(n.verified=!0))}return r}canLoadSync(e){let t=typeof e==`string`?e:R(e),n=L(t);if(this.imageServices[n])return!0;let r=this.knownImageServers[U(t)];return!!(r&&!r.malformed&&r.verifications>=this.config.verificationsRequired)}async markAsMalformed(e){return this.knownImageServers[U(R(e))].malformed=!0,this.loadService(e,!0)}async fetchService(e,t=!1){let n=L(e),r=this.imageServices[n];if(r&&(!t||r.real))return r;if(!this.config.enableFetching)throw Error(`Fetching is not enabled`);let i=await this.fetch(n).then(e=>e.json());return!i.id&&i[`@id`]&&(i.id=i[`@id`]),i.id!==e&&(i.id=e,i[`@id`]&&(i[`@id`]=e)),this.imageServices[n]=Object.assign(i,{real:!0}),this.imageServices[n]}async fetch(e,t){return fetch(e,t)}async loadService(e,t=!1){if(!this.config.disableThrottling){let e=!0;for(;e;)if(this.fetchingCount>=this.config.verificationsRequired)await new Promise(e=>setTimeout(e,500));else{e=!1;break}}let n=this.knownImageServers[U(R(e))];if(n&&!n.malformed&&!t){await n.result;let t=this.loadServiceSync(e);if(t)return t}this.fetchingCount++;let r=await this.fetchService(R(e),t);return this.fetchingCount--,r.real&&this.sample(r,e),r}loadServiceSync(e){let t=L(R(e));return this.imageServices[t]?this.imageServices[t]:this.config.approximateServices?this.predict(e):null}};const W={canvasInteraction:!0,spatial:!0,async run(e,{vault:t,options:n}){if(e&&e.type===`Annotation`&&n.targetType===`Annotation`){let n=t.get(e),r=n.target;if(!(r&&r.source?.type===`Canvas`))return;let i=r.source,a=t.get(i);if(!a.items||a.behavior.includes(`multi-image`)||!t.get(a.items[0]))return;let o=Array.isArray(n.body)?n.body[0]:n.body;if(o.type===`SpecificResource`&&o.selector)return;let s=t.get(n.body)[0],c=(s.service||[]).find(e=>z(e));c&&c.width&&c.height&&(c.width!==s.width&&t.modifyEntityField({id:s.id,type:`ContentResource`},`width`,c.width),c.height!==s.height&&t.modifyEntityField({id:s.id,type:`ContentResource`},`height`,c.height))}}};async function xn(e,t){let n={...e.service};n[`@id`]&&(n.id=n[`@id`]),n[`@type`]&&(n.type=n[`@type`]);let r=k(n),i=A({identifier:r.identifier,server:r.server,scheme:r.scheme,type:`image`,size:{max:!e.size?.width&&!e.size?.height,confined:!1,upscaled:!1,...e.size||{}},format:`jpg`,region:{full:!0},rotation:{angle:0},quality:`default`,prefix:r.prefix,originalPath:r.originalPath});return t.embed({id:i,type:`Image`,format:e.format||`image/jpeg`,height:e.height||n.height,width:e.width||n.width,service:e.embedService===!1?void 0:[e.service]})}function G(e){return e.endsWith(`default.jpg`)?A({...j(e),type:`info`}):O(e)}function K(e){let[t,n]=C(``);return w(_,{children:T(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries()),i=r.url;if(i){let t=G(i);if(!t)throw Error(`Invalid image service request`);fetch(t).then(e=>e.json()).then(t=>{e.runCreate({url:r.url,service:t})})}},children:[w(`div`,{className:`flex gap-2 items-center`,children:T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link to image service`}),w(v,{id:`url`,name:`url`,defaultValue:``,onPaste:e=>{let t=e.clipboardData.getData(`text/plain`);n(t?G(t):``)},onBlur:e=>n(e.currentTarget.value?G(e.currentTarget.value):``)})]})}),w(`div`,{className:`relative flex z-0 my-5 h-96 min-h-0 min-w-0 overflow-hidden bg-gray-200 rounded items-center justify-center`,children:t.trim()?w(Oe,{fallbackRender:()=>w(`div`,{children:`Invalid service`}),children:w(fe,{src:t,fluid:!0,errorFallback:()=>w(`div`,{children:`Invalid service`}),background:`rgb(229,231,235)`,className:`h-full w-full`,containerProps:{className:`w-full h-full z-10`}})}):w(`div`,{className:`text-grey-600`,children:`Preview`})}),w(`div`,{children:w(o,{primary:!0,large:!0,type:`submit`,isDisabled:!t,children:`Create`})})]})})}async function Sn(e,n){let r={id:n.generateId(`annotation`),type:`Annotation`},i=n.options.targetType,a=await t(n,`Annotation`,`body`,`@manifest-editor/image-service-creator`)(e,{parent:{resource:r,property:`body`}});if(i===`Annotation`)return{...r,body:[a],motivation:e.motivation||`painting`,target:n.getTarget()};if(i===`Canvas`){let i=n.generateId(`canvas`),o=n.generateId(`annotation-page`,{id:i,type:`Canvas`}),s=n.embed({...r,motivation:`painting`,body:[a],target:{type:`SpecificResource`,source:{id:i,type:`Canvas`}}}),c=n.embed({id:o,type:`AnnotationPage`,items:[s]}),l;return e.service?.sizes&&(l=await t(n,`Canvas`,`thumbnail`,`@manifest-editor/thumbnail-image`)({service:e.service,width:e.thumbnailSize||400})),n.embed({id:i,type:`Canvas`,label:e.label||{en:[`Untitled canvas`]},height:a.resource.height||1e3,width:a.resource.width||1e3,thumbnail:l?[l]:void 0,items:[c]})}}function Cn(e){return w(K,{...e})}const wn=n({id:`@manifest-editor/image-service-annotation`,create:Sn,label:`IIIF Image`,dependencies:[`@manifest-editor/image-service-creator`],summary:`IIIF Image service`,tags:[`image`,`image-service`],icon:w(h,{style:{padding:10}}),render(e){return w(Cn,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},sideEffects:[W,F,P],staticFields:{type:`Annotation`}});async function Tn(e,t){if(!e.height||!e.width){let t=await we(e.url);t&&(e.height=t.height,e.width=t.width)}return t.embed({id:e.url,type:`Image`,format:e.format||await Ce(e.url),height:e.height,width:e.width,service:e.service?Array.isArray(e.service)?e.service:[e.service]:void 0})}function q(e){return w(_,{children:T(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());r.url&&e.runCreate({url:r.url})},children:[T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link to Image`}),w(v,{id:`url`,name:`url`,defaultValue:``})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}async function En(e,n){let r={id:n.generateId(`annotation`),type:`Annotation`},i=n.options.targetType,a=await t(n,`Annotation`,`body`,`@manifest-editor/image-url-creator`)(e,{parent:{resource:r,property:`body`}});if(i===`Annotation`)return n.embed({...r,body:[a],motivation:e.motivation||`painting`,target:n.getTarget()});if(i===`Canvas`){let t=n.generateId(`canvas`),i=n.generateId(`annotation-page`,{id:t,type:`Canvas`}),o=n.embed({...r,motivation:`painting`,body:[a],target:{type:`SpecificResource`,source:{id:t,type:`Canvas`}}}),s=n.embed({id:i,type:`AnnotationPage`,items:[o]});return n.embed({id:t,type:`Canvas`,label:e.label||{en:[`Untitled canvas`]},height:a.resource.height||1e3,width:a.resource.width||1e3,items:[s]})}throw Error(`Unsupported target type`)}function Dn(e){return w(q,{...e})}const On=n({id:`@manifest-editor/image-url-annotation`,create:En,label:`Image`,dependencies:[`@manifest-editor/image-url-creator`],summary:`Image from URL`,tags:[`image`],icon:w(s,{}),render(e){return w(Dn,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},sideEffects:[W,F,P],staticFields:{type:`Annotation`}});async function kn(e,n){let r=[],i=t(n,`Annotation`,`body`,`@manifest-editor/image-url-creator`);for(let t of e.images)r.push(await i(t,n.options));return r}function J(e){return w(_,{children:T(d.Form,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());r.urls&&e.runCreate({images:r.urls.split(`
|
|
97
|
-
`).map(e=>({url:e}))})},children:[T(d.InputContainer,{className:`mb-4`,children:[w(d.Label,{children:`Enter a list of URLs (one per line)`}),w(d.TextArea,{name:`urls`,rows:`10`})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}async function An(e,n){let r=[],i=t(n,`AnnotationPage`,`items`,`@manifest-editor/image-url-annotation`);for(let t of e.images)r.push(await i(t,n.options));return r}const jn=n({id:`@manifest-editor/image-url-list-annotation`,create:An,label:`List of Images`,dependencies:[`@manifest-editor/image-url-annotation`],summary:`List of Images from URLs`,tags:[`image`],icon:w(g,{}),render(e){return w(J,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},sideEffects:[W,F,P],staticFields:{type:`Annotation`}}),Mn=n({id:`@manifest-editor/no-body-annotation`,create:Nn,label:`Annotation without body`,summary:`Add an annotation that only has motivation and target`,icon:w(l,{}),resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`target`],supports:{initialData:!0,parentTypes:[`AnnotationPage`],parentFields:[`items`],disallowPainting:!0},actionButton:`Create empty annotation`,sideEffects:[],staticFields:{type:`Annotation`}});function Nn(e,t){return t.embed({id:t.generateId(`annotation`),type:`Annotation`,label:e?.label,motivation:e.motivation||t.options.initialData?.motivation||`highlighting`,target:t.getTarget()})}function Pn({media:e,onError:t,duration:n,onDuration:r,onDimensions:i}){let[{element:a,currentTime:o,progress:s},c,l]=be({duration:n});return T(pe,{element:a,state:c,actions:l,currentTime:o,progress:s,children:[w(`div`,{style:{maxHeight:400,aspectRatio:`${e.width}/${e.height}`,position:`relative`},children:w(de.VideoHTML,{element:a,media:e,playPause:l.playPause})}),w(Ze,{onError:t,onDuration:r,onDimensions:i})]})}async function Fn(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=t.embed({id:e.url,type:`Video`,format:`video/mp4`,width:e.width,height:e.height,duration:e.duration||0});if(r===`Annotation`)return t.embed({...n,label:a(e.label)&&e.label,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:i,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),a=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:i,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:a,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},duration:e.duration||0,width:e.width,height:e.height,items:[s]})}}function In(e){let[t,n]=C(``),[r,i]=C(0),[a,s]=C(0),[c,l]=C(0),[d,f]=C(``),[p,m]=C({en:[``]});return ce(()=>{if(f(``),i(0),t){let e=t.split(`/`).pop()?.split(`.`).shift();m({en:[e||``]})}},[t]),T(_,{children:[d?w(u,{children:d}):null,T(y,{$wide:!0,children:[w(b,{htmlFor:`video-url`,children:`URL`}),w(v,{type:`text`,id:`video-url`,value:t,onChange:e=>n(e.target.value)})]}),t&&!d?w(`div`,{children:w(x,{containerId:`label`,focusId:`label_`,label:`Label`,fields:p,onSave:e=>m(e.toInternationalString())},`${t}__${r}`)}):null,t&&!d?w(`div`,{className:`mb-4 bg-black`,children:w(Pn,{duration:r,onDuration:e=>i(e),onError:e=>f(e),media:{url:t,duration:r,height:c,width:a,type:`Video`},onDimensions:(e,t)=>{s(e||0),l(t||0)}})}):null,!d&&(r||a||c)?w(y,{$wide:!0,children:w(ie,{widthId:`width`,width:a||0,changeWidth:e=>s(e),heightId:`height`,height:c||0,changeHeight:e=>l(e),durationId:`duration`,duration:r||0,changeDuration:e=>i(e)})}):null,w(o,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({url:t,duration:r,label:p,width:a,height:c})},isDisabled:!t||!!d,children:`Add video`})]})}const Ln=n({id:`@manifest-editor/video-annotation`,create:Fn,label:`Video`,summary:`Video annotation`,icon:w(ne,{}),render(e){return w(In,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,initialData:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},staticFields:{type:`Annotation`}}),Rn=()=>w(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24px`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,transform:`scale(-1, 1)`,children:T(`g`,{children:[w(`rect`,{fill:`none`,height:`24`,width:`24`}),w(`path`,{d:`M16,20H2V4h14V20z M18,8h4V4h-4V8z M18,20h4v-4h-4V20z M18,14h4v-4h-4V14z`})]})}),zn=n({id:`@manifest-editor/empty-annotation-page`,create:(e,t)=>t.embed({id:t.generateId(`annotations`),label:e.label,type:`AnnotationPage`,items:[]}),label:`Empty annotation page`,summary:`AnnotationPage with nothing`,icon:w(Rn,{}),resourceType:`AnnotationPage`,resourceFields:[`id`,`type`,`items`],supports:{parentTypes:[`Manifest`,`Canvas`,`Range`],parentFieldMap:{Manifest:[`annotations`],Canvas:[`items`,`annotations`],Range:[`annotations`]}}}),Bn=n({id:`@manifest-editor/empty-canvas`,create:(e,t)=>{let n=t.generateId(`canvas`),r=t.embed({id:t.generateId(`annotation-page`,{id:n,type:`Canvas`}),type:`AnnotationPage`,items:[]});return{id:n,type:`Canvas`,label:e.label||{en:[``]},height:e.height||1e3,width:e.width||1e3,items:[r]}},label:`Empty canvas`,summary:`No content`,icon:w(l,{}),resourceType:`Canvas`,resourceFields:[`id`,`type`,`label`,`height`,`width`,`items`],supports:{parentTypes:[`Manifest`],parentFields:[`items`]}});var Vn=!0,Y=`Invariant failed`;function X(e,t){if(!e){if(Vn)throw Error(Y);var n=typeof t==`function`?t():t,r=n?`${Y}: ${n}`:Y;throw Error(r)}}const Hn=n({id:`@manifest-editor/internal-canvas`,create:Wn,label:`Internal canvas link`,summary:`Canvas from the same manifest`,icon:w(Rn,{}),resourceType:`Canvas`,resourceFields:[`id`,`type`,`label`],supports:{parentTypes:[`Manifest`],parentFields:[`start`]},render:e=>w(Un,{...e})});function Un(e){let t=ge(),n=xe(),r=S(()=>({canSelectCanvas:!1,canSelectCollection:!1,canSelectManifest:!0,canCropImage:!1,alwaysShowNavigationArrow:!1,multiSelect:!1}),[]),i=S(()=>[{type:`callback`,cb:t=>e.runCreate({id:t}),label:`Select canvas`,supportedTypes:[`Canvas`],format:{type:`url`}}],[e.runCreate]),a=S(()=>({saveToLocalStorage:!1,restoreFromLocalStorage:!1,initialHistory:[{url:t?.id,resource:t?.id,route:`/loading?id=${t?.id}`,metadata:{type:`Manifest`}}]}),[t?.id]);return X(t,`Manifest is not loaded`),w(me,{vault:n,children:w(ke,{vault:n,navigation:r,output:i,history:a})})}async function Wn(e,t){return t.embed({id:e.id,type:`Canvas`})}const Gn=e=>T(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,height:`1em`,width:`1em`,...e,children:[w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{d:`M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98 13.87 11h-3.74L12 5.98z`})]});async function Kn(e,t){return t.embed({id:t.generateId(`html/${e.language}`),language:e.language,type:`TextualBody`,format:`text/html`,value:e.body||``})}function qn(e){let{i18n:t}=Te(),[n,r]=C(`<p></p>`),[i,a]=C(t.defaultLanguage);return T(_,{children:[w(f,{className:`border-none`,value:n,onChange:e=>r(e)}),w(o,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({language:i,body:n})},children:`Create`})]})}const Jn=n({id:`@manifest-editor/html-body-creator`,create:Kn,label:`HTML Body`,summary:`Add HTML annotation body`,icon:w(Gn,{}),render(e){return w(qn,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`language`,`type`,`format`,`value`],supports:{parentTypes:[`Annotation`],parentFields:[`body`]},staticFields:{type:`TextualBody`,format:`text/html`}});function Yn(e,t,n){return`${e}/${Math.floor(t.x)},${Math.floor(t.y)},${Math.floor(t.width)},${Math.floor(t.height)}/${n}/0/default.jpg`}async function Xn(e,t){let n=t.options.targetType,i=e.output,a=[];for(let{resource:o,selector:s,parent:c}of i){let i=o.type,l=new r;if((n===`Canvas`||n===`Annotation`||n===`ContentResource`)&&i===`Canvas`){let r=o.id,i=c?.type===`Manifest`?c.id:void 0;X(i,`Could not find Manifest`);let u=l.get({id:i,type:`Manifest`})||await l.loadManifest(i);X(u,`Manifest not found`);let d=u.items.find(e=>e.id===r);X(d,`Canvas not found`);let f=l.get(d);if(n===`Canvas`&&s?.type!==`BoxSelector`){let e=l.toPresentation3(f);e.label||(e.label={en:[`Untitled canvas`]}),console.log(`loading full canvas`,e),t.vault.loadSync(e.id,e),a.push(t.embed({id:e.id,type:`Canvas`}));continue}let p=l.get(f.items[0]),m=l.get(p.items[0]);if(n===`Annotation`||n===`Canvas`||n===`ContentResource`){let r=l.toPresentation3(m);r.id=t.generateId(`Annotation`);let i=null,o={width:0,height:0};if(r?.body?.service){let t=r?.body.width,n=r?.body.height;i=Ee(r?.body)[0],i&&(!i.width||!i.height)&&(i.width=t,i.height=n),o.width=t,o.height=n,e.trackSize&&e.trackSize(o)}if(s?.type===`BoxSelector`){let o={type:`ImageApiSelector`,region:[~~s.spatial.x,~~s.spatial.y,~~s.spatial.width,~~s.spatial.height].join(`,`)},c={...r.body},l=``;if(i){let e=i.id||i[`@id`]||``;e&&(c.id=Yn(e,s.spatial,`max`),l=Yn(e,s.spatial,`512,`))}if(r.body={id:t.generateId(`SpecificResource`,m),type:`SpecificResource`,source:c,selector:o},e.trackSize&&e.trackSize({width:~~s.spatial.width,height:~~s.spatial.height}),n===`ContentResource`){a.push(r.body);continue}if(n===`Canvas`){let e=t.generateId(`Canvas`,m);r.target=e;let n=t.generateId(`Page`,m),i=t.embed({id:n,type:`AnnotationPage`,items:[r]});a.push(t.embed({id:e,type:`Canvas`,label:{en:[`Untitled canvas`]},width:~~s.spatial.width,height:~~s.spatial.height,thumbnail:l?[t.embed({id:l,type:`Image`,format:`image/jpeg`,width:512,height:Math.round(s.spatial.height/s.spatial.width*512)})]:void 0,items:[i]}));continue}a.push(t.embed({...r,target:t.getTarget()}));continue}a.push(t.embed({...l.toPresentation3(m),target:t.getTarget()}))}}}return a}const Zn=se(()=>import(`./iiif-browser-form.lazy-X1qeXSx5.js`)),Z=n({id:`@manifest-editor/iiif-browser-creator`,create:Xn,label:`IIIF Browser`,summary:`Browse IIIF Resources`,icon:w(m,{}),render(e){return w(Zn,{...e})},hiddenModal:!0,tags:[`image`,`image-service`],resourceType:`ContentResource`,resourceFields:[`id`,`language`,`type`,`format`,`value`],additionalTypes:[`Annotation`,`Canvas`],supports:{onlyPainting:!0,parentTypes:[`Annotation`,`Manifest`,`AnnotationPage`],parentFields:[`body`,`items`],parentFieldMap:{Annotation:[`body`],Manifest:[`items`],AnnotationPage:[`items`]}},sideEffects:[W,F,P],staticFields:{}}),Qn=n({id:`@manifest-editor/image-service-creator`,create:xn,label:`Image Service`,summary:`Add an image from Image Service`,icon:w(h,{style:{padding:10}}),render(e){return w(K,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`type`,`height`,`width`,`format`,`service`],supports:{parentFields:[`logo`,`body`,`thumbnail`]}}),$n=n({id:`@manifest-editor/image-url-creator`,create:Tn,label:`Image`,summary:`Image from a URL`,icon:w(s,{}),render(e){return w(q,{...e})},resourceType:`ContentResource`,resourceFields:[`format`],supports:{parentFields:[`logo`,`body`,`thumbnail`]},staticFields:{type:`Image`}}),er=n({id:`@manifest-editor/image-url-list`,label:`Image URL List`,summary:`Image from a list of URLs`,create:kn,icon:w(g,{}),render(e){return w(J,{...e})},resourceType:`ContentResource`,resourceFields:[`format`],supports:{parentFields:[`logo`,`body`,`thumbnail`]},staticFields:{type:`Image`}});async function tr(e,t){return t.embed({id:e.url,type:`Text`,label:e.label,format:`text/plain`})}function nr(e){let[t,n]=C({en:[`View as text`]});return w(_,{children:T(`form`,{onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i=Object.fromEntries(r.entries());i.url&&e.runCreate({url:i.url,label:t})},children:[w(x,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link to plaintext`}),w(v,{id:`url`,name:`url`,defaultValue:``})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}const rr=n({id:`@manifest-editor/plaintext-creator`,create:tr,label:`Plaintext`,summary:`Add link to an plaintext`,icon:w(Gn,{}),render(e){return w(nr,{...e})},resourceType:`ContentResource`,resourceFields:[`label`,`format`],supports:{parentFields:[`seeAlso`,`rendering`,`homepage`]},staticFields:{format:`text/plain`}});function ir(e,t){e[`@id`]&&(e.id=e[`@id`]),e[`@type`]&&(e.type=e[`@type`]);let n=k(e);return A({identifier:n.identifier,server:n.server,scheme:n.scheme,type:`image`,size:{max:!1,confined:!1,upscaled:!1,width:t.width,height:t.height},format:`jpg`,region:{full:!0},rotation:{angle:0},quality:`default`,prefix:n.prefix,originalPath:n.originalPath})}function Q(e){return e.endsWith(`default.jpg`)?A({...j(e),type:`info`}):O(e)}async function ar(e,t){let n={...e.service},r=n.sizes;if(n[`@id`]&&(n.id=n[`@id`]),n[`@type`]&&(n.type=n[`@type`]),e.thumbnailUrl)return t.embed({id:e.thumbnailUrl,type:`Image`,format:`image/jpeg`,width:e.width,height:e.height});if(r){let i=e.width||400,a=null;for(let e of r)(!a||Math.abs(e.width-i)<Math.abs(a.width-i))&&(a={width:e.width,height:e.height});if(a){let e=ir(n,a);return t.embed({id:e,type:`Image`,format:`image/jpeg`,width:a.width,height:a.height})}}return null}function or(e){let[t,n]=C(``),[r,i]=C(null),[a,s]=C({width:0,height:0}),c=S(()=>!r||!a.width||!a.height?null:ir(r,a),[a,r]);return r?T(_,{children:[T(`div`,{className:`mb-4`,children:[w(`div`,{className:`mb-2`,children:r[`@id`]||r.id}),w(`div`,{className:`flex gap-2 mb-4`,children:r.sizes?.map(e=>{let t=e.width===a.width;return T(o,{primary:t,isDisabled:t,large:!0,onPress:()=>s(e),children:[e.width,`x`,e.height]},e.width)})}),c?w(`img`,{src:c,alt:`preview of selected resource`}):null]}),w(o,{primary:!0,large:!0,isDisabled:!c,onPress:()=>{r&&e.runCreate({service:r,width:a.width,height:a.height})},children:`Add thumbnail`})]}):w(_,{children:T(`form`,{onSubmit:e=>{e.preventDefault();let t=new FormData(e.target),n=Object.fromEntries(t.entries()).url;if(n){let e=Q(n);if(!e)throw Error(`Invalid image service request`);fetch(e).then(e=>e.json()).then(e=>{i(e);let t=e.sizes?.[0];t&&s(t)})}},children:[w(`div`,{className:`flex gap-2 items-center`,children:T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link to image service`}),w(v,{id:`url`,name:`url`,defaultValue:``,onPaste:e=>{let t=e.clipboardData.getData(`text/plain`);n(t?Q(t):``)},onBlur:e=>n(e.currentTarget.value?Q(e.currentTarget.value):``)})]})}),w(`div`,{children:w(o,{primary:!0,large:!0,type:`submit`,isDisabled:!t,children:`Select size`})})]})})}const sr=n({id:`@manifest-editor/thumbnail-image`,create:ar,label:`Thumbnail from service`,summary:`Add thumbnail from an image service`,icon:w(te,{}),render(e){return w(or,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`type`,`format`],supports:{parentFields:[`thumbnail`]}});function cr(){return T(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24px`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,children:[w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{d:`M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z`})]})}async function lr(e,t){return t.embed({id:e.url,type:`Text`,label:e.label,format:`text/html`})}function ur(e){let[t,n]=C({en:[``]});return w(_,{children:T(`form`,{onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i=Object.fromEntries(r.entries());i.url&&e.runCreate({url:i.url,label:t})},children:[w(x,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link`}),w(v,{id:`url`,name:`url`,defaultValue:``})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create link`})]})})}const dr=n({id:`@manifest-editor/web-page-creator`,create:lr,label:`Web page`,summary:`Add link to an external web page`,icon:w(cr,{}),render(e){return w(ur,{...e})},resourceType:`ContentResource`,resourceFields:[`label`,`format`],supports:{parentFields:[`seeAlso`,`rendering`,`homepage`]}}),fr=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function $(e){let t=(e||``).match(fr);return t?t[1]:null}function pr(e){return!!$(e.youtubeUrl)}async function mr(e,t){let n=$(e.youtubeUrl),r=t.embed({id:`https://www.youtube.com/watch?v=${n}`,type:`Video`,service:[{profile:`http://digirati.com/objectifier`,params:{data:`https://www.youtube.com/embed/${n}`}},{id:`https://www.youtube.com/watch?v=${n}`,profile:`https://www.youtube.com`}]});if(t.options.targetType===`Canvas`){let n=t.generateId(`canvas`),i=t.generateId(`annotation-page`,{id:n,type:`Canvas`}),a=t.embed({id:t.generateId(`annotation`,{id:i,type:`AnnotationPage`}),type:`Annotation`,motivation:`painting`,body:[r],target:{type:`SpecificResource`,source:{id:n,type:`Canvas`}}}),o=t.embed({id:i,type:`AnnotationPage`,items:[a]});return t.embed({id:n,type:`Canvas`,label:e.label||{en:[`Untitled YouTube canvas`]},height:e.height||1e3,width:e.width||1e3,duration:e.duration||1,items:[o]})}return t.options.targetType===`Annotation`?t.embed({id:t.generateId(`annotation`),type:`Annotation`,motivation:`painting`,body:[r],target:t.getTarget()}):r}function hr(e){return w(_,{children:T(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());r.youtubeUrl&&e.runCreate({youtubeUrl:r.youtubeUrl})},children:[T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link to YouTube`}),w(v,{id:`youtubeUrl`,name:`youtubeUrl`,defaultValue:``})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}const gr=n({id:`@manifest-editor/youtube`,create:mr,label:`YouTube`,summary:`Embed YouTube`,icon:w(re,{}),resourceType:`ContentResource`,additionalTypes:[`Canvas`,`Annotation`],resourceFields:[`id`,`type`,`service`],render:e=>w(hr,{...e}),supports:{onlyPainting:!0,parentTypes:[`Annotation`,`Manifest`,`AnnotationPage`],parentFieldMap:{Annotation:[`body`],Manifest:[`items`],AnnotationPage:[`items`]}},staticFields:{type:`Video`}});async function _r(e,t){let n=e.output||[],r=[];for(let e of n){let{resource:n,parent:a,selector:o}=e,s=t.getPreviewVault(),c=i(s);if(n.type===`Manifest`){let e=n.id;X(e,`Could not find Manifest ID`);let i=await s.loadManifest(e),a=await c.getBestThumbnailAtSize(i,{width:256,height:256},!1);X(i,`Manifest not found`),r.push(t.embed({id:n.id,type:`Manifest`,label:i.label,summary:i.summary,thumbnail:a?.best?[{id:a.best.id,type:`Image`}]:void 0}));continue}if(n.type===`Collection`){let e=n.id;X(e,`Could not find Manifest ID`);let i=await s.loadManifest(e);X(i,`Collection not found`),r.push(t.embed({id:n.id,type:`Collection`,label:i.label}))}}return r}const vr=se(()=>import(`./manifest-browser-form.lazy-RbQ8NE8u.js`)),yr=n({id:`@manifest-editor/manifest-browser-creator`,create:_r,label:`IIIF Browser`,summary:`Browse IIIF Resources`,icon:w(m,{}),render(t){return w(e,{...t})},resourceType:`Manifest`,resourceFields:[`id`,`label`],additionalTypes:[`Collection`],supports:{parentTypes:[`Collection`],parentFieldMap:{Collection:[`items`]}},sideEffects:[],staticFields:{}});async function br(e,t,n){let r=t.generateId(`range`,n?{id:n,type:`Range`}:void 0);return t.embed({id:r,type:`Range`,label:e.label||{en:[`Untitled range`]},items:e.items||[]})}function xr(e){let[t,n]=C({en:[``]});return w(_,{children:T(`form`,{onSubmit:n=>{n.preventDefault(),t&&e.runCreate({type:`Range`,label:t})},children:[w(x,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),w(o,{primary:!0,type:`submit`,children:`Create range`})]})})}const Sr=n({id:`@manifest-editor/range-with-items`,create:br,label:`Range`,summary:`Add a new range`,icon:w(ee,{}),render(e){return w(xr,{...e})},resourceType:`Range`,resourceFields:[`id`,`label`,`type`],supports:{parentTypes:[`Range`],parentFields:[`items`]},staticFields:{type:`Range`}});async function Cr(e,t,n){let r=t.generateId(`range`,n?{id:n,type:`Range`}:void 0);return t.embed({id:r,type:`Range`,label:e.label||{en:[`Table of Contents`]},items:(e.items||[]).map(e=>t.ref(e))})}function wr(e){let[t,n]=C({en:[``]});return w(_,{children:T(`form`,{onSubmit:n=>{n.preventDefault(),t&&e.runCreate({type:`Range`,label:t})},children:[w(x,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),w(o,{primary:!0,type:`submit`,children:`Create range`})]})})}const Tr=n({id:`@manifest-editor/range-top-level`,create:Cr,label:`Top Level Range`,summary:`Add a new top level range`,icon:w(ee,{}),render(e){return w(wr,{...e})},resourceType:`Range`,resourceFields:[`id`,`label`,`type`],supports:{parentTypes:[`Manifest`],parentFields:[`structures`]},staticFields:{type:`Range`}}),Er=[Qn,wn,$n,On,Ln,et,Jn,ot,gr,Z,Bn,rr,dr,zn,Mn,Hn,rt,er,jn,sr,Tr,Sr,je];export{$e as CreateAudioAnnotationForm,nt as CreateCaptionedImageAnnotation,at as CreateHTMLAnnotation,qn as CreateHTMLBodyForm,K as CreateImageServerForm,Cn as CreateImageServiceAnnotationForm,Dn as CreateImageUrlAnnotationForm,q as CreateImageUrlForm,J as CreateImageUrlListForm,nr as CreatePlaintextForm,Ae as CreateProviderForm,or as CreateThumbnailForm,In as CreateVideoAnnotationForm,ur as CreateWebPageForm,Zn as IIIFBrowserCreatorForm,vr as ManifestBrowserCreatorForm,xr as RangeWithItemsCreatorForm,wr as TopLevelRangeCreatorForm,hr as YouTubeForm,Er as allCreators,et as audioAnnotation,rt as captionedImageAnnotation,Qe as createAudioAnnotation,tt as createCaptionedImageAnnotation,Xn as createFromIIIFBrowserOutput,_r as createFromManifestBrowserOutput,it as createHtmlAnnotation,Kn as createHtmlBody,xn as createImageServer,Sn as createImageServiceAnnotation,Tn as createImageUrl,En as createImageUrlAnnotation,kn as createImageUrlList,An as createImageUrlListAnnotation,Nn as createNoBodyAnnotation,tr as createPlaintext,N as createProvider,Cr as createRangeTopLevel,br as createRangeWithItems,ar as createThumbnail,Fn as createVideoAnnotation,lr as createWebPage,mr as createYoutubeBody,zn as emptyAnnotationPage,Bn as emptyCanvas,$ as getYouTubeId,ot as htmlAnnotation,Jn as htmlBodyCreator,Z as iiifBrowserCreator,wn as imageServiceAnnotation,Qn as imageServiceCreator,On as imageUrlAnnotation,$n as imageUrlCreator,jn as imageUrlListAnnotation,er as imageUrlListCreator,Hn as internalCanvas,yr as manifestBrowserCreator,Mn as noBodyAnnotation,rr as plaintextCreator,je as providerCreator,Tr as rangeTopLevel,Sr as rangeWithItems,pr as validateYouTube,Ln as videoAnnotation,dr as webPageCreator,gr as youTubeBodyCreator};
|
|
97
|
+
`).map(e=>({url:e}))})},children:[T(d.InputContainer,{className:`mb-4`,children:[w(d.Label,{children:`Enter a list of URLs (one per line)`}),w(d.TextArea,{name:`urls`,rows:`10`})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}async function An(e,n){let r=[],i=t(n,`AnnotationPage`,`items`,`@manifest-editor/image-url-annotation`);for(let t of e.images)r.push(await i(t,n.options));return r}const jn=n({id:`@manifest-editor/image-url-list-annotation`,create:An,label:`List of Images`,dependencies:[`@manifest-editor/image-url-annotation`],summary:`List of Images from URLs`,tags:[`image`],icon:w(g,{}),render(e){return w(J,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},sideEffects:[W,F,P],staticFields:{type:`Annotation`}}),Mn=n({id:`@manifest-editor/no-body-annotation`,create:Nn,label:`Annotation without body`,summary:`Add an annotation that only has motivation and target`,icon:w(l,{}),resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`target`],supports:{initialData:!0,parentTypes:[`AnnotationPage`],parentFields:[`items`],disallowPainting:!0},actionButton:`Create empty annotation`,sideEffects:[],staticFields:{type:`Annotation`}});function Nn(e,t){return t.embed({id:t.generateId(`annotation`),type:`Annotation`,label:e?.label,motivation:e.motivation||t.options.initialData?.motivation||`highlighting`,target:t.getTarget()})}function Pn({media:e,onError:t,duration:n,onDuration:r,onDimensions:i}){let[{element:a,currentTime:o,progress:s},c,l]=be({duration:n});return T(pe,{element:a,state:c,actions:l,currentTime:o,progress:s,children:[w(`div`,{style:{maxHeight:400,aspectRatio:`${e.width}/${e.height}`,position:`relative`},children:w(de.VideoHTML,{element:a,media:e,playPause:l.playPause})}),w(Ze,{onError:t,onDuration:r,onDimensions:i})]})}async function Fn(e,t){let n={id:t.generateId(`annotation`),type:`Annotation`},r=t.options.targetType,i=t.embed({id:e.url,type:`Video`,format:`video/mp4`,width:e.width,height:e.height,duration:e.duration||0});if(r===`Annotation`)return t.embed({...n,label:a(e.label)&&e.label,motivation:e.motivation||t.options.initialData?.motivation||`painting`,body:i,target:t.getTarget()});if(r===`Canvas`){let r=t.generateId(`canvas`),a=t.generateId(`annotation-page`,{id:r,type:`Canvas`}),o=t.embed({...n,motivation:`painting`,body:i,target:{type:`SpecificResource`,source:{id:r,type:`Canvas`}}}),s=t.embed({id:a,type:`AnnotationPage`,items:[o]});return t.embed({id:r,type:`Canvas`,label:e.label||{en:[`Untitled HTML canvas`]},duration:e.duration||0,width:e.width,height:e.height,items:[s]})}}function In(e){let[t,n]=C(``),[r,i]=C(0),[a,s]=C(0),[c,l]=C(0),[d,f]=C(``),[p,m]=C({en:[``]});return ce(()=>{if(f(``),i(0),t){let e=t.split(`/`).pop()?.split(`.`).shift();m({en:[e||``]})}},[t]),T(_,{children:[d?w(u,{children:d}):null,T(y,{$wide:!0,children:[w(b,{htmlFor:`video-url`,children:`URL`}),w(v,{type:`text`,id:`video-url`,value:t,onChange:e=>n(e.target.value)})]}),t&&!d?w(`div`,{children:w(x,{containerId:`label`,focusId:`label_`,label:`Label`,fields:p,onSave:e=>m(e.toInternationalString())},`${t}__${r}`)}):null,t&&!d?w(`div`,{className:`mb-4 bg-black`,children:w(Pn,{duration:r,onDuration:e=>i(e),onError:e=>f(e),media:{url:t,duration:r,height:c,width:a,type:`Video`},onDimensions:(e,t)=>{s(e||0),l(t||0)}})}):null,!d&&(r||a||c)?w(y,{$wide:!0,children:w(ie,{widthId:`width`,width:a||0,changeWidth:e=>s(e),heightId:`height`,height:c||0,changeHeight:e=>l(e),durationId:`duration`,duration:r||0,changeDuration:e=>i(e)})}):null,w(o,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({url:t,duration:r,label:p,width:a,height:c})},isDisabled:!t||!!d,children:`Add video`})]})}const Ln=n({id:`@manifest-editor/video-annotation`,create:Fn,label:`Video`,summary:`Video annotation`,icon:w(ne,{}),render(e){return w(In,{...e})},resourceType:`Annotation`,resourceFields:[`id`,`type`,`motivation`,`body`,`target`],additionalTypes:[`Canvas`],supports:{onlyPainting:!0,initialData:!0,parentTypes:[`AnnotationPage`,`Manifest`],parentFields:[`items`]},staticFields:{type:`Annotation`}}),Rn=()=>w(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24px`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,transform:`scale(-1, 1)`,children:T(`g`,{children:[w(`rect`,{fill:`none`,height:`24`,width:`24`}),w(`path`,{d:`M16,20H2V4h14V20z M18,8h4V4h-4V8z M18,20h4v-4h-4V20z M18,14h4v-4h-4V14z`})]})}),zn=n({id:`@manifest-editor/empty-annotation-page`,create:(e,t)=>t.embed({id:t.generateId(`annotations`),label:e.label,type:`AnnotationPage`,items:[]}),label:`Empty annotation page`,summary:`AnnotationPage with nothing`,icon:w(Rn,{}),resourceType:`AnnotationPage`,resourceFields:[`id`,`type`,`items`],supports:{parentTypes:[`Manifest`,`Canvas`,`Range`],parentFieldMap:{Manifest:[`annotations`],Canvas:[`items`,`annotations`],Range:[`annotations`]}}}),Bn=n({id:`@manifest-editor/empty-canvas`,create:(e,t)=>{let n=t.generateId(`canvas`),r=t.embed({id:t.generateId(`annotation-page`,{id:n,type:`Canvas`}),type:`AnnotationPage`,items:[]});return{id:n,type:`Canvas`,label:e.label||{en:[``]},height:e.height||1e3,width:e.width||1e3,items:[r]}},label:`Empty canvas`,summary:`No content`,icon:w(l,{}),resourceType:`Canvas`,resourceFields:[`id`,`type`,`label`,`height`,`width`,`items`],supports:{parentTypes:[`Manifest`],parentFields:[`items`]}});var Vn=!0,Y=`Invariant failed`;function X(e,t){if(!e){if(Vn)throw Error(Y);var n=typeof t==`function`?t():t,r=n?`${Y}: ${n}`:Y;throw Error(r)}}const Hn=n({id:`@manifest-editor/internal-canvas`,create:Wn,label:`Internal canvas link`,summary:`Canvas from the same manifest`,icon:w(Rn,{}),resourceType:`Canvas`,resourceFields:[`id`,`type`,`label`],supports:{parentTypes:[`Manifest`],parentFields:[`start`]},render:e=>w(Un,{...e})});function Un(e){let t=ge(),n=xe(),r=S(()=>({canSelectCanvas:!1,canSelectCollection:!1,canSelectManifest:!0,canCropImage:!1,alwaysShowNavigationArrow:!1,multiSelect:!1}),[]),i=S(()=>[{type:`callback`,cb:t=>e.runCreate({id:t}),label:`Select canvas`,supportedTypes:[`Canvas`],format:{type:`url`}}],[e.runCreate]),a=S(()=>({saveToLocalStorage:!1,restoreFromLocalStorage:!1,initialHistory:[{url:t?.id,resource:t?.id,route:`/loading?id=${t?.id}`,metadata:{type:`Manifest`}}]}),[t?.id]);return X(t,`Manifest is not loaded`),w(me,{vault:n,children:w(ke,{vault:n,navigation:r,output:i,history:a})})}async function Wn(e,t){return t.embed({id:e.id,type:`Canvas`})}const Gn=e=>T(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,height:`1em`,width:`1em`,...e,children:[w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{d:`M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98 13.87 11h-3.74L12 5.98z`})]});async function Kn(e,t){return t.embed({id:t.generateId(`html/${e.language}`),language:e.language,type:`TextualBody`,format:`text/html`,value:e.body||``})}function qn(e){let{i18n:t}=Te(),[n,r]=C(`<p></p>`),[i,a]=C(t.defaultLanguage);return T(_,{children:[w(f,{className:`border-none`,value:n,onChange:e=>r(e)}),w(o,{primary:!0,large:!0,type:`button`,onPress:()=>{e.runCreate({language:i,body:n})},children:`Create`})]})}const Jn=n({id:`@manifest-editor/html-body-creator`,create:Kn,label:`HTML Body`,summary:`Add HTML annotation body`,icon:w(Gn,{}),render(e){return w(qn,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`language`,`type`,`format`,`value`],supports:{parentTypes:[`Annotation`],parentFields:[`body`]},staticFields:{type:`TextualBody`,format:`text/html`}});function Yn(e,t,n){return`${e}/${Math.floor(t.x)},${Math.floor(t.y)},${Math.floor(t.width)},${Math.floor(t.height)}/${n}/0/default.jpg`}async function Xn(e,t){let n=t.options.targetType,i=e.output,a=[];for(let{resource:o,selector:s,parent:c}of i){let i=o.type,l=new r;if((n===`Canvas`||n===`Annotation`||n===`ContentResource`)&&i===`Canvas`){let r=o.id,i=c?.type===`Manifest`?c.id:void 0;X(i,`Could not find Manifest`);let u=l.get({id:i,type:`Manifest`})||await l.loadManifest(i);X(u,`Manifest not found`);let d=u.items.find(e=>e.id===r);X(d,`Canvas not found`);let f=l.get(d);if(n===`Canvas`&&s?.type!==`BoxSelector`){let e=l.toPresentation3(f);e.label||(e.label={en:[`Untitled canvas`]}),console.log(`loading full canvas`,e),t.vault.loadSync(e.id,e),a.push(t.embed({id:e.id,type:`Canvas`}));continue}let p=l.get(f.items[0]),m=l.get(p.items[0]);if(n===`Annotation`||n===`Canvas`||n===`ContentResource`){let r=l.toPresentation3(m);r.id=t.generateId(`Annotation`);let i=null,o={width:0,height:0};if(r?.body?.service){let t=r?.body.width,n=r?.body.height;i=Ee(r?.body)[0],i&&(!i.width||!i.height)&&(i.width=t,i.height=n),o.width=t,o.height=n,e.trackSize&&e.trackSize(o)}if(s?.type===`BoxSelector`){let o={type:`ImageApiSelector`,region:[~~s.spatial.x,~~s.spatial.y,~~s.spatial.width,~~s.spatial.height].join(`,`)},c={...r.body},l=``;if(i){let e=i.id||i[`@id`]||``;e&&(c.id=Yn(e,s.spatial,`max`),l=Yn(e,s.spatial,`512,`))}if(r.body={id:t.generateId(`SpecificResource`,m),type:`SpecificResource`,source:c,selector:o},e.trackSize&&e.trackSize({width:~~s.spatial.width,height:~~s.spatial.height}),n===`ContentResource`){a.push(r.body);continue}if(n===`Canvas`){let e=t.generateId(`Canvas`,m);r.target=e;let n=t.generateId(`Page`,m),i=t.embed({id:n,type:`AnnotationPage`,items:[r]});a.push(t.embed({id:e,type:`Canvas`,label:{en:[`Untitled canvas`]},width:~~s.spatial.width,height:~~s.spatial.height,thumbnail:l?[t.embed({id:l,type:`Image`,format:`image/jpeg`,width:512,height:Math.round(s.spatial.height/s.spatial.width*512)})]:void 0,items:[i]}));continue}a.push(t.embed({...r,target:t.getTarget()}));continue}a.push(t.embed({...l.toPresentation3(m),target:t.getTarget()}))}}}return a}const Zn=se(()=>import(`./iiif-browser-form.lazy-B1XgjrGQ.js`)),Z=n({id:`@manifest-editor/iiif-browser-creator`,create:Xn,label:`IIIF Browser`,summary:`Browse IIIF Resources`,icon:w(m,{}),render(e){return w(Zn,{...e})},hiddenModal:!0,tags:[`image`,`image-service`],resourceType:`ContentResource`,resourceFields:[`id`,`language`,`type`,`format`,`value`],additionalTypes:[`Annotation`,`Canvas`],supports:{onlyPainting:!0,parentTypes:[`Annotation`,`Manifest`,`AnnotationPage`],parentFields:[`body`,`items`],parentFieldMap:{Annotation:[`body`],Manifest:[`items`],AnnotationPage:[`items`]}},sideEffects:[W,F,P],staticFields:{}}),Qn=n({id:`@manifest-editor/image-service-creator`,create:xn,label:`Image Service`,summary:`Add an image from Image Service`,icon:w(h,{style:{padding:10}}),render(e){return w(K,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`type`,`height`,`width`,`format`,`service`],supports:{parentFields:[`logo`,`body`,`thumbnail`]}}),$n=n({id:`@manifest-editor/image-url-creator`,create:Tn,label:`Image`,summary:`Image from a URL`,icon:w(s,{}),render(e){return w(q,{...e})},resourceType:`ContentResource`,resourceFields:[`format`],supports:{parentFields:[`logo`,`body`,`thumbnail`]},staticFields:{type:`Image`}}),er=n({id:`@manifest-editor/image-url-list`,label:`Image URL List`,summary:`Image from a list of URLs`,create:kn,icon:w(g,{}),render(e){return w(J,{...e})},resourceType:`ContentResource`,resourceFields:[`format`],supports:{parentFields:[`logo`,`body`,`thumbnail`]},staticFields:{type:`Image`}});async function tr(e,t){return t.embed({id:e.url,type:`Text`,label:e.label,format:`text/plain`})}function nr(e){let[t,n]=C({en:[`View as text`]});return w(_,{children:T(`form`,{onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i=Object.fromEntries(r.entries());i.url&&e.runCreate({url:i.url,label:t})},children:[w(x,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link to plaintext`}),w(v,{id:`url`,name:`url`,defaultValue:``})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}const rr=n({id:`@manifest-editor/plaintext-creator`,create:tr,label:`Plaintext`,summary:`Add link to an plaintext`,icon:w(Gn,{}),render(e){return w(nr,{...e})},resourceType:`ContentResource`,resourceFields:[`label`,`format`],supports:{parentFields:[`seeAlso`,`rendering`,`homepage`]},staticFields:{format:`text/plain`}});function ir(e,t){e[`@id`]&&(e.id=e[`@id`]),e[`@type`]&&(e.type=e[`@type`]);let n=k(e);return A({identifier:n.identifier,server:n.server,scheme:n.scheme,type:`image`,size:{max:!1,confined:!1,upscaled:!1,width:t.width,height:t.height},format:`jpg`,region:{full:!0},rotation:{angle:0},quality:`default`,prefix:n.prefix,originalPath:n.originalPath})}function Q(e){return e.endsWith(`default.jpg`)?A({...j(e),type:`info`}):O(e)}async function ar(e,t){let n={...e.service},r=n.sizes;if(n[`@id`]&&(n.id=n[`@id`]),n[`@type`]&&(n.type=n[`@type`]),e.thumbnailUrl)return t.embed({id:e.thumbnailUrl,type:`Image`,format:`image/jpeg`,width:e.width,height:e.height});if(r){let i=e.width||400,a=null;for(let e of r)(!a||Math.abs(e.width-i)<Math.abs(a.width-i))&&(a={width:e.width,height:e.height});if(a){let e=ir(n,a);return t.embed({id:e,type:`Image`,format:`image/jpeg`,width:a.width,height:a.height})}}return null}function or(e){let[t,n]=C(``),[r,i]=C(null),[a,s]=C({width:0,height:0}),c=S(()=>!r||!a.width||!a.height?null:ir(r,a),[a,r]);return r?T(_,{children:[T(`div`,{className:`mb-4`,children:[w(`div`,{className:`mb-2`,children:r[`@id`]||r.id}),w(`div`,{className:`flex gap-2 mb-4`,children:r.sizes?.map(e=>{let t=e.width===a.width;return T(o,{primary:t,isDisabled:t,large:!0,onPress:()=>s(e),children:[e.width,`x`,e.height]},e.width)})}),c?w(`img`,{src:c,alt:`preview of selected resource`}):null]}),w(o,{primary:!0,large:!0,isDisabled:!c,onPress:()=>{r&&e.runCreate({service:r,width:a.width,height:a.height})},children:`Add thumbnail`})]}):w(_,{children:T(`form`,{onSubmit:e=>{e.preventDefault();let t=new FormData(e.target),n=Object.fromEntries(t.entries()).url;if(n){let e=Q(n);if(!e)throw Error(`Invalid image service request`);fetch(e).then(e=>e.json()).then(e=>{i(e);let t=e.sizes?.[0];t&&s(t)})}},children:[w(`div`,{className:`flex gap-2 items-center`,children:T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link to image service`}),w(v,{id:`url`,name:`url`,defaultValue:``,onPaste:e=>{let t=e.clipboardData.getData(`text/plain`);n(t?Q(t):``)},onBlur:e=>n(e.currentTarget.value?Q(e.currentTarget.value):``)})]})}),w(`div`,{children:w(o,{primary:!0,large:!0,type:`submit`,isDisabled:!t,children:`Select size`})})]})})}const sr=n({id:`@manifest-editor/thumbnail-image`,create:ar,label:`Thumbnail from service`,summary:`Add thumbnail from an image service`,icon:w(te,{}),render(e){return w(or,{...e})},resourceType:`ContentResource`,resourceFields:[`id`,`type`,`format`],supports:{parentFields:[`thumbnail`]}});function cr(){return T(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:`24px`,viewBox:`0 0 24 24`,width:`24px`,fill:`#000000`,children:[w(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),w(`path`,{d:`M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z`})]})}async function lr(e,t){return t.embed({id:e.url,type:`Text`,label:e.label,format:`text/html`})}function ur(e){let[t,n]=C({en:[``]});return w(_,{children:T(`form`,{onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i=Object.fromEntries(r.entries());i.url&&e.runCreate({url:i.url,label:t})},children:[w(x,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link`}),w(v,{id:`url`,name:`url`,defaultValue:``})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create link`})]})})}const dr=n({id:`@manifest-editor/web-page-creator`,create:lr,label:`Web page`,summary:`Add link to an external web page`,icon:w(cr,{}),render(e){return w(ur,{...e})},resourceType:`ContentResource`,resourceFields:[`label`,`format`],supports:{parentFields:[`seeAlso`,`rendering`,`homepage`]}}),fr=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/|shorts\/)|(?:(?:watch)?\?vi?=|&vi?=))([^#&?]*).*/;function $(e){let t=(e||``).match(fr);return t?t[1]:null}function pr(e){return!!$(e.youtubeUrl)}async function mr(e,t){let n=$(e.youtubeUrl),r=t.embed({id:`https://www.youtube.com/watch?v=${n}`,type:`Video`,service:[{profile:`http://digirati.com/objectifier`,params:{data:`https://www.youtube.com/embed/${n}`}},{id:`https://www.youtube.com/watch?v=${n}`,profile:`https://www.youtube.com`}]});if(t.options.targetType===`Canvas`){let n=t.generateId(`canvas`),i=t.generateId(`annotation-page`,{id:n,type:`Canvas`}),a=t.embed({id:t.generateId(`annotation`,{id:i,type:`AnnotationPage`}),type:`Annotation`,motivation:`painting`,body:[r],target:{type:`SpecificResource`,source:{id:n,type:`Canvas`}}}),o=t.embed({id:i,type:`AnnotationPage`,items:[a]});return t.embed({id:n,type:`Canvas`,label:e.label||{en:[`Untitled YouTube canvas`]},height:e.height||1e3,width:e.width||1e3,duration:e.duration||1,items:[o]})}return t.options.targetType===`Annotation`?t.embed({id:t.generateId(`annotation`),type:`Annotation`,motivation:`painting`,body:[r],target:t.getTarget()}):r}function hr(e){return w(_,{children:T(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.target),r=Object.fromEntries(n.entries());r.youtubeUrl&&e.runCreate({youtubeUrl:r.youtubeUrl})},children:[T(y,{$wide:!0,children:[w(b,{htmlFor:`id`,children:`Link to YouTube`}),w(v,{id:`youtubeUrl`,name:`youtubeUrl`,defaultValue:``})]}),w(o,{primary:!0,large:!0,type:`submit`,children:`Create`})]})})}const gr=n({id:`@manifest-editor/youtube`,create:mr,label:`YouTube`,summary:`Embed YouTube`,icon:w(re,{}),resourceType:`ContentResource`,additionalTypes:[`Canvas`,`Annotation`],resourceFields:[`id`,`type`,`service`],render:e=>w(hr,{...e}),supports:{onlyPainting:!0,parentTypes:[`Annotation`,`Manifest`,`AnnotationPage`],parentFieldMap:{Annotation:[`body`],Manifest:[`items`],AnnotationPage:[`items`]}},staticFields:{type:`Video`}});async function _r(e,t){let n=e.output||[],r=[];for(let e of n){let{resource:n,parent:a,selector:o}=e,s=t.getPreviewVault(),c=i(s);if(n.type===`Manifest`){let e=n.id;X(e,`Could not find Manifest ID`);let i=await s.loadManifest(e),a=await c.getBestThumbnailAtSize(i,{width:256,height:256},!1);X(i,`Manifest not found`),r.push(t.embed({id:n.id,type:`Manifest`,label:i.label,summary:i.summary,thumbnail:a?.best?[{id:a.best.id,type:`Image`}]:void 0}));continue}if(n.type===`Collection`){let e=n.id;X(e,`Could not find Manifest ID`);let i=await s.loadManifest(e);X(i,`Collection not found`),r.push(t.embed({id:n.id,type:`Collection`,label:i.label}))}}return r}const vr=se(()=>import(`./manifest-browser-form.lazy-DYKHUOu_.js`)),yr=n({id:`@manifest-editor/manifest-browser-creator`,create:_r,label:`IIIF Browser`,summary:`Browse IIIF Resources`,icon:w(m,{}),render(t){return w(e,{...t})},resourceType:`Manifest`,resourceFields:[`id`,`label`],additionalTypes:[`Collection`],supports:{parentTypes:[`Collection`],parentFieldMap:{Collection:[`items`]}},sideEffects:[],staticFields:{}});async function br(e,t,n){let r=t.generateId(`range`,n?{id:n,type:`Range`}:void 0);return t.embed({id:r,type:`Range`,label:e.label||{en:[`Untitled range`]},items:e.items||[]})}function xr(e){let[t,n]=C({en:[``]});return w(_,{children:T(`form`,{onSubmit:n=>{n.preventDefault(),t&&e.runCreate({type:`Range`,label:t})},children:[w(x,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),w(o,{primary:!0,type:`submit`,children:`Create range`})]})})}const Sr=n({id:`@manifest-editor/range-with-items`,create:br,label:`Range`,summary:`Add a new range`,icon:w(ee,{}),render(e){return w(xr,{...e})},resourceType:`Range`,resourceFields:[`id`,`label`,`type`],supports:{parentTypes:[`Range`],parentFields:[`items`]},staticFields:{type:`Range`}});async function Cr(e,t,n){let r=t.generateId(`range`,n?{id:n,type:`Range`}:void 0);return t.embed({id:r,type:`Range`,label:e.label||{en:[`Table of Contents`]},items:(e.items||[]).map(e=>t.ref(e))})}function wr(e){let[t,n]=C({en:[``]});return w(_,{children:T(`form`,{onSubmit:n=>{n.preventDefault(),t&&e.runCreate({type:`Range`,label:t})},children:[w(x,{focusId:`label`,label:`Label`,fields:t,onSave:e=>n(e.toInternationalString())}),w(o,{primary:!0,type:`submit`,children:`Create range`})]})})}const Tr=n({id:`@manifest-editor/range-top-level`,create:Cr,label:`Top Level Range`,summary:`Add a new top level range`,icon:w(ee,{}),render(e){return w(wr,{...e})},resourceType:`Range`,resourceFields:[`id`,`label`,`type`],supports:{parentTypes:[`Manifest`],parentFields:[`structures`]},staticFields:{type:`Range`}}),Er=[Qn,wn,$n,On,Ln,et,Jn,ot,gr,Z,Bn,rr,dr,zn,Mn,Hn,rt,er,jn,sr,Tr,Sr,je];export{$e as CreateAudioAnnotationForm,nt as CreateCaptionedImageAnnotation,at as CreateHTMLAnnotation,qn as CreateHTMLBodyForm,K as CreateImageServerForm,Cn as CreateImageServiceAnnotationForm,Dn as CreateImageUrlAnnotationForm,q as CreateImageUrlForm,J as CreateImageUrlListForm,nr as CreatePlaintextForm,Ae as CreateProviderForm,or as CreateThumbnailForm,In as CreateVideoAnnotationForm,ur as CreateWebPageForm,Zn as IIIFBrowserCreatorForm,vr as ManifestBrowserCreatorForm,xr as RangeWithItemsCreatorForm,wr as TopLevelRangeCreatorForm,hr as YouTubeForm,Er as allCreators,et as audioAnnotation,rt as captionedImageAnnotation,Qe as createAudioAnnotation,tt as createCaptionedImageAnnotation,Xn as createFromIIIFBrowserOutput,_r as createFromManifestBrowserOutput,it as createHtmlAnnotation,Kn as createHtmlBody,xn as createImageServer,Sn as createImageServiceAnnotation,Tn as createImageUrl,En as createImageUrlAnnotation,kn as createImageUrlList,An as createImageUrlListAnnotation,Nn as createNoBodyAnnotation,tr as createPlaintext,N as createProvider,Cr as createRangeTopLevel,br as createRangeWithItems,ar as createThumbnail,Fn as createVideoAnnotation,lr as createWebPage,mr as createYoutubeBody,zn as emptyAnnotationPage,Bn as emptyCanvas,$ as getYouTubeId,ot as htmlAnnotation,Jn as htmlBodyCreator,Z as iiifBrowserCreator,wn as imageServiceAnnotation,Qn as imageServiceCreator,On as imageUrlAnnotation,$n as imageUrlCreator,jn as imageUrlListAnnotation,er as imageUrlListCreator,Hn as internalCanvas,yr as manifestBrowserCreator,Mn as noBodyAnnotation,rr as plaintextCreator,je as providerCreator,Tr as rangeTopLevel,Sr as rangeWithItems,pr as validateYouTube,Ln as videoAnnotation,dr as webPageCreator,gr as youTubeBodyCreator};
|
|
98
98
|
//# sourceMappingURL=index.js.map
|
package/dist/{manifest-browser-form.lazy-DWabAT8J.cjs → manifest-browser-form.lazy-CIUTZSTb.cjs}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./index.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`),r=require(`@manifest-editor/shell`),i=require(`iiif-browser`);function a(e){let a=(0,r.usePreviewVault)(),o=(0,t.useMemo)(()=>e.options.initialData||{},[e.options.initialData]),s=(0,t.useMemo)(()=>[{type:`callback`,label:`Select`,supportedTypes:[`Manifest`,`Collection`,`ManifestList`,`CollectionList`,`CollectionItemList`],cb:t=>e.runCreate({output:t}),format:{type:`custom`,format:(e,t,n)=>{let r=Array.isArray(e)?e:[{...e,parent:t}],i=[];for(let e of r)i.push({resource:n.get(e),parent:e.parent,selector:e.selector});return i}}}],[e.runCreate]),c=(0,t.useMemo)(()=>({canCropImage:!1,canSelectCanvas:!1,canSelectManifest:!0,canSelectCollection:!0,multiSelect:!0,...o.iiifBrowserOptions?.navigation||{}}),[o.iiifBrowserOptions?.navigation]);return(0,n.jsx)(r.PreviewVaultBoundary,{children:(0,n.jsx)(i.IIIFBrowser,{ui:(0,t.useMemo)(()=>({buttonClassName:`bg-me-primary-500 text-white hover:bg-me-primary-600`,...o.iiifBrowserOptions?.ui||{}}),[o.iiifBrowserOptions?.ui]),vault:a,className:`iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full`,output:s,navigation:c,customPages:o.iiifBrowserOptions?.customPages||{},history:o.iiifBrowserOptions?.history||{}})})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
1
|
+
const e=require(`./index.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`),r=require(`@manifest-editor/shell`),i=require(`iiif-browser`);function a(e){let a=(0,r.usePreviewVault)(),o=(0,t.useMemo)(()=>e.options.initialData||{},[e.options.initialData]),s=(0,t.useMemo)(()=>[{type:`callback`,label:`Select`,supportedTypes:[`Manifest`,`Collection`,`ManifestList`,`CollectionList`,`CollectionItemList`],cb:t=>e.runCreate({output:t}),format:{type:`custom`,format:(e,t,n)=>{let r=Array.isArray(e)?e:[{...e,parent:t}],i=[];for(let e of r)i.push({resource:n.get(e),parent:e.parent,selector:e.selector});return i}}}],[e.runCreate]),c=(0,t.useMemo)(()=>({canCropImage:!1,canSelectCanvas:!1,canSelectManifest:!0,canSelectCollection:!0,multiSelect:!0,...o.iiifBrowserOptions?.navigation||{}}),[o.iiifBrowserOptions?.navigation]);return(0,n.jsx)(r.PreviewVaultBoundary,{children:(0,n.jsx)(i.IIIFBrowser,{ui:(0,t.useMemo)(()=>({buttonClassName:`bg-me-primary-500 text-white hover:bg-me-primary-600`,homeLink:`${window.location.origin}/collection.json`,...o.iiifBrowserOptions?.ui||{}}),[o.iiifBrowserOptions?.ui]),vault:a,className:`iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full`,output:s,navigation:c,customPages:o.iiifBrowserOptions?.customPages||{},history:o.iiifBrowserOptions?.history||{}})})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
package/dist/{manifest-browser-form.lazy-Bm07wmnB.js → manifest-browser-form.lazy-CvgqUwj3.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useMemo as e}from"react";import{jsx as t}from"react/jsx-runtime";import{PreviewVaultBoundary as n,usePreviewVault as r}from"@manifest-editor/shell";import{IIIFBrowser as i}from"iiif-browser";function a(a){let o=r(),s=e(()=>a.options.initialData||{},[a.options.initialData]),c=e(()=>[{type:`callback`,label:`Select`,supportedTypes:[`Manifest`,`Collection`,`ManifestList`,`CollectionList`,`CollectionItemList`],cb:e=>a.runCreate({output:e}),format:{type:`custom`,format:(e,t,n)=>{let r=Array.isArray(e)?e:[{...e,parent:t}],i=[];for(let e of r)i.push({resource:n.get(e),parent:e.parent,selector:e.selector});return i}}}],[a.runCreate]),l=e(()=>({canCropImage:!1,canSelectCanvas:!1,canSelectManifest:!0,canSelectCollection:!0,multiSelect:!0,...s.iiifBrowserOptions?.navigation||{}}),[s.iiifBrowserOptions?.navigation]);return t(n,{children:t(i,{ui:e(()=>({buttonClassName:`bg-me-primary-500 text-white hover:bg-me-primary-600`,...s.iiifBrowserOptions?.ui||{}}),[s.iiifBrowserOptions?.ui]),vault:o,className:`iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full`,output:c,navigation:l,customPages:s.iiifBrowserOptions?.customPages||{},history:s.iiifBrowserOptions?.history||{}})})}export{a as t};
|
|
2
|
-
//# sourceMappingURL=manifest-browser-form.lazy-
|
|
1
|
+
import{useMemo as e}from"react";import{jsx as t}from"react/jsx-runtime";import{PreviewVaultBoundary as n,usePreviewVault as r}from"@manifest-editor/shell";import{IIIFBrowser as i}from"iiif-browser";function a(a){let o=r(),s=e(()=>a.options.initialData||{},[a.options.initialData]),c=e(()=>[{type:`callback`,label:`Select`,supportedTypes:[`Manifest`,`Collection`,`ManifestList`,`CollectionList`,`CollectionItemList`],cb:e=>a.runCreate({output:e}),format:{type:`custom`,format:(e,t,n)=>{let r=Array.isArray(e)?e:[{...e,parent:t}],i=[];for(let e of r)i.push({resource:n.get(e),parent:e.parent,selector:e.selector});return i}}}],[a.runCreate]),l=e(()=>({canCropImage:!1,canSelectCanvas:!1,canSelectManifest:!0,canSelectCollection:!0,multiSelect:!0,...s.iiifBrowserOptions?.navigation||{}}),[s.iiifBrowserOptions?.navigation]);return t(n,{children:t(i,{ui:e(()=>({buttonClassName:`bg-me-primary-500 text-white hover:bg-me-primary-600`,homeLink:`${window.location.origin}/collection.json`,...s.iiifBrowserOptions?.ui||{}}),[s.iiifBrowserOptions?.ui]),vault:o,className:`iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full`,output:c,navigation:l,customPages:s.iiifBrowserOptions?.customPages||{},history:s.iiifBrowserOptions?.history||{}})})}export{a as t};
|
|
2
|
+
//# sourceMappingURL=manifest-browser-form.lazy-CvgqUwj3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-browser-form.lazy-
|
|
1
|
+
{"version":3,"file":"manifest-browser-form.lazy-CvgqUwj3.js","names":["initialData: ManifestBrowserCreatorInitialData","resource","vault"],"sources":["../src/Manifest/ManifestBrowserCreator/manifest-browser-form.lazy.tsx"],"sourcesContent":["import type { CreatorContext } from \"@manifest-editor/creator-api\";\nimport { PreviewVaultBoundary, usePreviewVault } from \"@manifest-editor/shell\";\nimport { IIIFBrowser, type IIIFBrowserProps } from \"iiif-browser\";\nimport { useMemo } from \"react\";\n\nexport interface ManifestBrowserCreatorInitialData {\n iiifBrowserOptions?: Partial<IIIFBrowserProps>;\n}\n\nexport default function ManifestBrowserCreatorForm(props: CreatorContext) {\n const vault = usePreviewVault();\n const initialData: ManifestBrowserCreatorInitialData = useMemo(() => {\n return props.options.initialData || {};\n }, [props.options.initialData]);\n\n const output = useMemo(() => {\n return [\n {\n type: \"callback\",\n label: \"Select\",\n supportedTypes: [\n \"Manifest\",\n \"Collection\",\n \"ManifestList\",\n \"CollectionList\",\n \"CollectionItemList\",\n ],\n cb: (resource) => props.runCreate({ output: resource }),\n format: {\n type: \"custom\",\n format: (resource, parent, vault) => {\n const resourcesAsArray = Array.isArray(resource)\n ? resource\n : [{ ...resource, parent }];\n const resources = [];\n for (const resource of resourcesAsArray) {\n resources.push({\n resource: vault.get(resource),\n parent: resource.parent,\n selector: resource.selector,\n });\n }\n return resources;\n },\n },\n },\n ] as IIIFBrowserProps[\"output\"];\n }, [props.runCreate]);\n\n const navigationOptions = useMemo(() => {\n return {\n canCropImage: false,\n canSelectCanvas: false,\n canSelectManifest: true,\n canSelectCollection: true,\n multiSelect: true,\n ...(initialData.iiifBrowserOptions?.navigation || {}),\n };\n }, [initialData.iiifBrowserOptions?.navigation]);\n\n const uiOptions = useMemo(() => {\n return {\n buttonClassName: \"bg-me-primary-500 text-white hover:bg-me-primary-600\",\n homeLink: `${window.location.origin}/collection.json`,\n ...(initialData.iiifBrowserOptions?.ui || {}),\n } as IIIFBrowserProps[\"ui\"];\n }, [initialData.iiifBrowserOptions?.ui]);\n\n return (\n <PreviewVaultBoundary>\n <IIIFBrowser\n ui={uiOptions}\n vault={vault}\n className=\"iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full\"\n output={output}\n navigation={navigationOptions}\n customPages={(initialData.iiifBrowserOptions?.customPages || {})}\n history={initialData.iiifBrowserOptions?.history || {}}\n />\n </PreviewVaultBoundary>\n );\n}\n"],"mappings":"sMASA,SAAwB,EAA2B,EAAuB,CACxE,IAAM,EAAQ,GAAiB,CACzBA,EAAiD,MAC9C,EAAM,QAAQ,aAAe,EAAE,CACrC,CAAC,EAAM,QAAQ,YAAY,CAAC,CAEzB,EAAS,MACN,CACL,CACE,KAAM,WACN,MAAO,SACP,eAAgB,CACd,WACA,aACA,eACA,iBACA,qBACD,CACD,GAAK,GAAa,EAAM,UAAU,CAAE,OAAQ,EAAU,CAAC,CACvD,OAAQ,CACN,KAAM,SACN,QAAS,EAAU,EAAQ,IAAU,CACnC,IAAM,EAAmB,MAAM,QAAQ,EAAS,CAC5C,EACA,CAAC,CAAE,GAAG,EAAU,SAAQ,CAAC,CACvB,EAAY,EAAE,CACpB,IAAK,IAAMC,KAAY,EACrB,EAAU,KAAK,CACb,SAAUC,EAAM,IAAID,EAAS,CAC7B,OAAQA,EAAS,OACjB,SAAUA,EAAS,SACpB,CAAC,CAEJ,OAAO,GAEV,CACF,CACF,CACA,CAAC,EAAM,UAAU,CAAC,CAEf,EAAoB,OACjB,CACL,aAAc,GACd,gBAAiB,GACjB,kBAAmB,GACnB,oBAAqB,GACrB,YAAa,GACb,GAAI,EAAY,oBAAoB,YAAc,EAAE,CACrD,EACA,CAAC,EAAY,oBAAoB,WAAW,CAAC,CAUhD,OACE,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CACC,GAXY,OACT,CACL,gBAAiB,uDACjB,SAAU,GAAG,OAAO,SAAS,OAAO,kBACpC,GAAI,EAAY,oBAAoB,IAAM,EAAE,CAC7C,EACA,CAAC,EAAY,oBAAoB,GAAG,CAAC,CAM3B,QACP,UAAU,6FACF,SACR,WAAY,EACZ,YAAc,EAAY,oBAAoB,aAAe,EAAE,CAC/D,QAAS,EAAY,oBAAoB,SAAW,EAAE,EACtD,CAAA,CACmB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./manifest-browser-form.lazy-CvgqUwj3.js";export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./manifest-browser-form.lazy-CIUTZSTb.cjs`);exports.default=e.t;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manifest-editor/creators",
|
|
3
|
-
"version": "2.0.3-next.0.
|
|
3
|
+
"version": "2.0.3-next.0.da9a339",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bugs": "https://github.com/digirati-co-uk/iiif-manifest-editor/issues",
|
|
6
6
|
"repository": {
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"@iiif/parser": "2.2.8",
|
|
42
42
|
"@iiif/presentation-3": "^2.2.3",
|
|
43
43
|
"@iiif/presentation-3-normalized": "^0.9.7",
|
|
44
|
-
"@manifest-editor/components": "2.0.3-next.0.
|
|
45
|
-
"@manifest-editor/creator-api": "2.0.3-next.0.
|
|
46
|
-
"@manifest-editor/editor-api": "2.0.3-next.0.
|
|
47
|
-
"@manifest-editor/editors": "2.0.3-next.0.
|
|
48
|
-
"@manifest-editor/shell": "2.0.3-next.0.
|
|
44
|
+
"@manifest-editor/components": "2.0.3-next.0.da9a339",
|
|
45
|
+
"@manifest-editor/creator-api": "2.0.3-next.0.da9a339",
|
|
46
|
+
"@manifest-editor/editor-api": "2.0.3-next.0.da9a339",
|
|
47
|
+
"@manifest-editor/editors": "2.0.3-next.0.da9a339",
|
|
48
|
+
"@manifest-editor/shell": "2.0.3-next.0.da9a339",
|
|
49
49
|
"iiif-browser": "2.0.5-next.95a29ac",
|
|
50
50
|
"react": "19.2.0",
|
|
51
51
|
"react-dom": "19.2.0",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"publishConfig": {
|
|
68
68
|
"access": "public"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "da9a339b93961c143a9aded5e8a736fec418d2a1"
|
|
71
71
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iiif-browser-form.lazy-X1qeXSx5.js","names":["initialData: IIIFBrowserCreatorInitialData","resource","vault"],"sources":["../src/ContentResource/IIIFBrowserCreator/iiif-browser-form.lazy.tsx"],"sourcesContent":["import type { CreatorContext } from \"@manifest-editor/creator-api\";\nimport { PreviewVaultBoundary, usePreviewVault } from \"@manifest-editor/shell\";\nimport { IIIFBrowser, type IIIFBrowserProps } from \"iiif-browser\";\nimport { useMemo } from \"react\";\n\nexport interface IIIFBrowserCreatorInitialData {\n iiifBrowserOptions?: Partial<IIIFBrowserProps>;\n}\n\nexport default function IIIFBrowserCreatorForm(props: CreatorContext) {\n const initialData: IIIFBrowserCreatorInitialData = useMemo(() => {\n return props.options.initialData || {};\n }, [props.options.initialData]);\n\n const vault = usePreviewVault();\n const output = useMemo(() => {\n return [\n {\n type: \"callback\",\n label: \"Select\",\n supportedTypes: [\n \"Canvas\",\n \"CanvasList\",\n \"CanvasRegion\",\n \"ImageService\",\n \"ImageServiceRegion\",\n ],\n cb: (resource) => props.runCreate({ output: resource }),\n format: {\n type: \"custom\",\n format: (resource, parent, vault) => {\n const resourcesAsArray = Array.isArray(resource)\n ? resource\n : [{ ...resource, parent }];\n const resources = [];\n for (const resource of resourcesAsArray) {\n resources.push({\n resource: vault.get(resource),\n parent: resource.parent,\n selector: resource.selector,\n });\n }\n return resources;\n },\n },\n },\n ] as IIIFBrowserProps[\"output\"];\n }, [props.runCreate]);\n\n const navigationOptions = useMemo(() => {\n return {\n canCropImage: true,\n canSelectCanvas: true,\n canSelectManifest: false,\n canSelectCollection: false,\n // @todo fix the output so this one works.\n multiSelect: true,\n ...(initialData.iiifBrowserOptions?.navigation || {})\n };\n }, [initialData]);\n\n const uiOptions = useMemo(() => {\n return {\n buttonClassName: \"bg-me-primary-500 text-white hover:bg-me-primary-600\",\n ...(initialData.iiifBrowserOptions?.ui || {})\n } as IIIFBrowserProps[\"ui\"];\n }, [initialData]);\n\n return (\n <PreviewVaultBoundary>\n <IIIFBrowser\n ui={uiOptions}\n vault={vault}\n className=\"iiif-browser border-none border-t rounded-none h-[70vh] min-h-[60vh] max-h-full max-w-full\"\n output={output}\n navigation={navigationOptions}\n customPages={(initialData.iiifBrowserOptions?.customPages || {})}\n history={initialData.iiifBrowserOptions?.history || {}}\n />\n </PreviewVaultBoundary>\n );\n}\n"],"mappings":"sMASA,SAAwB,EAAuB,EAAuB,CACpE,IAAMA,EAA6C,MAC1C,EAAM,QAAQ,aAAe,EAAE,CACrC,CAAC,EAAM,QAAQ,YAAY,CAAC,CAEzB,EAAQ,GAAiB,CACzB,EAAS,MACN,CACL,CACE,KAAM,WACN,MAAO,SACP,eAAgB,CACd,SACA,aACA,eACA,eACA,qBACD,CACD,GAAK,GAAa,EAAM,UAAU,CAAE,OAAQ,EAAU,CAAC,CACvD,OAAQ,CACN,KAAM,SACN,QAAS,EAAU,EAAQ,IAAU,CACnC,IAAM,EAAmB,MAAM,QAAQ,EAAS,CAC5C,EACA,CAAC,CAAE,GAAG,EAAU,SAAQ,CAAC,CACvB,EAAY,EAAE,CACpB,IAAK,IAAMC,KAAY,EACrB,EAAU,KAAK,CACb,SAAUC,EAAM,IAAID,EAAS,CAC7B,OAAQA,EAAS,OACjB,SAAUA,EAAS,SACpB,CAAC,CAEJ,OAAO,GAEV,CACF,CACF,CACA,CAAC,EAAM,UAAU,CAAC,CAEf,EAAoB,OACjB,CACL,aAAc,GACd,gBAAiB,GACjB,kBAAmB,GACnB,oBAAqB,GAErB,YAAa,GACb,GAAI,EAAY,oBAAoB,YAAc,EAAE,CACrD,EACA,CAAC,EAAY,CAAC,CASjB,OACE,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CACC,GAVY,OACT,CACL,gBAAiB,uDACjB,GAAI,EAAY,oBAAoB,IAAM,EAAE,CAC7C,EACA,CAAC,EAAY,CAAC,CAMJ,QACP,UAAU,6FACF,SACR,WAAY,EACZ,YAAc,EAAY,oBAAoB,aAAe,EAAE,CAC/D,QAAS,EAAY,oBAAoB,SAAW,EAAE,EACtD,CAAA,CACmB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./manifest-browser-form.lazy-DWabAT8J.cjs`);exports.default=e.t;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./manifest-browser-form.lazy-Bm07wmnB.js";export{e as default};
|