@dskripchenko/embed 1.4.1 → 1.5.1
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/CHANGELOG.md +12 -0
- package/README.md +3 -1
- package/dist/bundles/board.js +3 -3
- package/dist/bundles/bpmn.js +3 -3
- package/dist/bundles/calendar.js +24 -0
- package/dist/bundles/diagram.js +2 -2
- package/dist/bundles/drawio.js +2 -2
- package/dist/bundles/editor.js +21 -21
- package/dist/bundles/flow.js +3 -3
- package/dist/bundles/kanban.js +25 -0
- package/dist/bundles/markdown.js +3 -3
- package/dist/bundles/media.js +4 -4
- package/dist/bundles/openapi.js +4 -4
- package/dist/chunks/{attrs-0u_UEPVH.js → attrs-CixZXnV_.js} +1 -1
- package/dist/chunks/fullscreen-BS7BdaY4.js +1 -0
- package/dist/chunks/markup-D3F-rpOq.js +5 -0
- package/dist/chunks/styles-BjwKH-N8.js +1 -0
- package/dist/embed.bundle.js +138 -127
- package/dist/embed.js +3 -3
- package/dist/importmap.json +2 -2
- package/dist/plugins/board.js +1 -1
- package/dist/plugins/bpmn.js +1 -1
- package/dist/plugins/calendar.js +6 -0
- package/dist/plugins/diagram.js +1 -1
- package/dist/plugins/drawio.js +1 -1
- package/dist/plugins/flow.js +1 -1
- package/dist/plugins/kanban.js +3 -0
- package/dist/plugins/media.js +1 -1
- package/dist/plugins/openapi.js +1 -1
- package/package.json +2 -2
- package/dist/chunks/fullscreen-DTl8nxPT.js +0 -1
package/dist/embed.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(function(){function e(e){return typeof e==`string`&&e.trim().toLowerCase().startsWith(`ru`)?`ru`:`en`}function t(e){return e===`light`||e===`dark`||e===`system`}function n(e){let t=e.trim();return t.endsWith(`/`)?t:`${t}/`}function r(r={},i=document,a={}){let o=i.documentElement,s=typeof matchMedia==`function`?matchMedia(`(prefers-color-scheme: dark)`):null,c=new Set,l=null,u=null,d=`https://cdn.jsdelivr.net/npm/`,f={...a},p=!1,m=_();function h(){let e=o.getAttribute(`data-theme`);return e===`dark`||e===`light`?e:null}function g(){return l===`light`||l===`dark`?l:l===`system`?s?.matches?`dark`:`light`:h()??`light`}function _(){return Object.freeze({theme:l,resolvedTheme:g(),locale:u??e(o.getAttribute(`lang`)),cdnBase:d,versions:Object.freeze({...f})})}function v(){if(l===null)return;let e=g();o.getAttribute(`data-theme`)!==e&&(p=!0,o.setAttribute(`data-theme`,e),p=!1)}function y(){let e=_(),t=e.theme!==m.theme||e.resolvedTheme!==m.resolvedTheme||e.locale!==m.locale||e.cdnBase!==m.cdnBase||JSON.stringify(e.versions)!==JSON.stringify(m.versions);if(m=e,t)for(let e of[...c])try{e(m)}catch(e){console.error(`[dsk-embed] config listener failed`,e)}}function b(r){return`theme`in r&&(r.theme===null||r.theme===void 0?l=null:t(r.theme)?l=r.theme:console.warn(`[dsk-embed] unknown theme "${String(r.theme)}"; use light, dark or system`)),`locale`in r&&(u=r.locale?e(r.locale):null),typeof r.cdnBase==`string`&&r.cdnBase.trim()!==``&&(d=n(r.cdnBase)),r.versions&&typeof r.versions==`object`&&(f={...f,...r.versions}),v(),y(),m}let x=typeof MutationObserver==`function`?new MutationObserver(()=>{if(p)return;let e=h();l!==null&&e&&e!==g()&&(l=e),y()}):null;x?.observe(o,{attributes:!0,attributeFilter:[`data-theme`,`lang`]});let S=()=>{v(),y()};return s?.addEventListener?.(`change`,S),b(r),{get:()=>m,configure:b,subscribe(e){return c.add(e),()=>c.delete(e)},dispose(){x?.disconnect(),s?.removeEventListener?.(`change`,S),c.clear()}}}function i(e){return e.startsWith(`dsk:`)?e:`dsk:`+e}function a(e=document){let t=new Map;function n(n,a,o){let s=i(n),c=e=>{o&&r(n,a),a(e.detail,e)},l=t.get(a);return l||t.set(a,l=new Map),l.has(s)||(l.set(s,c),e.addEventListener(s,c)),()=>r(n,a)}function r(n,r){let a=i(n),o=t.get(r)?.get(a);o&&(e.removeEventListener(a,o),t.get(r)?.delete(a))}return{on:(e,t)=>n(e,t,!1),once:(e,t)=>n(e,t,!0),off:r,emit(t,n,r){let a=new CustomEvent(i(t),{detail:n,bubbles:!0,composed:!0,cancelable:!0});return(r??e).dispatchEvent(a)}}}function o(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function s(e){return e.attr??o(e.prop)}var c=new Set([`false`,`0`,`off`,`no`]);function l(e){if(e!==null)return!c.has(e.trim().toLowerCase())}function u(e){if(e===null||e.trim()===``)return;let t=Number(e);return Number.isFinite(t)?t:void 0}function d(e){if(e===null)return;let t=e.trim();if(t===``)return[];if(t.startsWith(`[`)){let e=JSON.parse(t);if(!Array.isArray(e))throw SyntaxError(`expected a JSON array`);return e.map(e=>String(e))}return t.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}function f(e){return d(e)?.map(Number).filter(e=>Number.isFinite(e))}function p(e){if(e!==null&&e.trim()!==``)return JSON.parse(e)}function m(e){if(e===null)return;let t=e.trim().toLowerCase();return t===`session`||t===`local`?t:l(t)}function h(e,t){switch(e.type){case`string`:return t??void 0;case`boolean`:return l(t);case`number`:return u(t);case`list`:return d(t);case`numbers`:return f(t);case`json`:return p(t);case`credentials`:return m(t);case`enum`:return t!==null&&e.values?.includes(t.trim())?t.trim():void 0}}function g(e,t){let n={},r=[];for(let i of t){let t=s(i);try{let r=h(i,e.getAttribute(t));r!==void 0&&(n[i.prop]=r)}catch(e){r.push({attr:t,message:e instanceof Error?e.message:String(e)})}}return{props:n,errors:r}}var _=[{prop:`locale`,type:`string`},{prop:`loading`,type:`enum`,values:[`lazy`,`eager`]}],v=[{prop:`src`,type:`string`},{prop:`loop`,type:`boolean`},{prop:`preload`,type:`enum`,values:[`none`,`metadata`,`auto`]},{prop:`crossorigin`,type:`enum`,values:[``,`anonymous`,`use-credentials`]},{prop:`exclusive`,type:`boolean`},{prop:`resumeKey`,type:`string`},{prop:`rates`,type:`numbers`},{prop:`hotkeys`,type:`boolean`},{prop:`hlsOptions`,type:`json`}],y={"dsk-video":[..._,...v,{prop:`sources`,type:`json`},{prop:`tracks`,type:`json`},{prop:`poster`,type:`string`},{prop:`thumbnails`,type:`string`},{prop:`autoplay`,type:`boolean`},{prop:`muted`,type:`boolean`},{prop:`controls`,type:`boolean`},{prop:`aspectRatio`,type:`string`},{prop:`label`,type:`string`},{prop:`autoHide`,type:`number`}],"dsk-audio":[..._,...v,{prop:`type`,type:`string`},{prop:`trackTitle`,type:`string`},{prop:`artist`,type:`string`},{prop:`tracks`,type:`json`},{prop:`variant`,type:`enum`,values:[`default`,`mini`]},{prop:`waveform`,type:`boolean`},{prop:`peaks`,type:`numbers`},{prop:`waveformMaxBytes`,type:`number`},{prop:`waveformMaxDuration`,type:`number`},{prop:`autoAdvance`,type:`boolean`},{prop:`showVolume`,type:`boolean`},{prop:`showRate`,type:`boolean`},{prop:`showPlaylist`,type:`boolean`},{prop:`index`,type:`number`}],"dsk-diagram":[..._,{prop:`src`,type:`string`},{prop:`label`,type:`string`},{prop:`syntax`,type:`enum`,values:[`mermaid`,`plantuml`,`dot`,`d2`,`dbml`,`structurizr`,`wardley`]}],"dsk-asyncapi":[..._,{prop:`src`,type:`string`},{prop:`height`,type:`string`}],"dsk-bpmn":[..._,{prop:`src`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`properties`,type:`boolean`},{prop:`diagram`,type:`string`},{prop:`highlight`,type:`list`},{prop:`height`,type:`string`},{prop:`name`,type:`string`}],"dsk-dmn":[..._,{prop:`src`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`decision`,type:`string`},{prop:`highlight`,type:`list`},{prop:`height`,type:`string`},{prop:`name`,type:`string`}],"dsk-drawio":[..._,{prop:`src`,type:`string`},{prop:`page`,type:`string`},{prop:`label`,type:`string`},{prop:`externalImages`,type:`boolean`}],"dsk-openapi":[..._,{prop:`mode`,type:`enum`,values:[`reference`,`operation`,`block`,`editor`]},{prop:`view`,type:`enum`,values:[`visual`,`source`,`preview`]},{prop:`src`,type:`string`},{prop:`specs`,type:`json`},{prop:`active`,type:`string`},{prop:`operation`,type:`string`},{prop:`referenceUrl`,type:`string`},{prop:`specId`,type:`string`},{prop:`tryIt`,type:`boolean`},{prop:`proxy`,type:`string`},{prop:`baseUrl`,type:`string`},{prop:`defaultSnippet`,type:`string`},{prop:`snippetTargets`,type:`list`},{prop:`persistCredentials`,type:`credentials`},{prop:`hashNavigation`,type:`boolean`},{prop:`heading`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`height`,type:`string`}],"dsk-flow":[..._,{prop:`src`,type:`string`},{prop:`pollUrl`,type:`string`},{prop:`pollInterval`,type:`number`},{prop:`state`,type:`json`},{prop:`editable`,type:`boolean`},{prop:`readonly`,type:`boolean`},{prop:`toggleUrl`,type:`string`},{prop:`subgraphUrl`,type:`string`},{prop:`direction`,type:`enum`,values:[`TB`,`LR`,`auto`]},{prop:`edgeStyle`,type:`enum`,values:[`orthogonal`,`smooth`]},{prop:`wheel`,type:`enum`,values:[`zoom`,`pan`]},{prop:`minimap`,type:`boolean`},{prop:`controls`,type:`boolean`},{prop:`details`,type:`boolean`},{prop:`statusBar`,type:`boolean`},{prop:`palette`,type:`list`},{prop:`height`,type:`string`},{prop:`name`,type:`string`},{prop:`openapiTarget`,type:`string`},{prop:`mediaTarget`,type:`string`}],"dsk-board":[..._,{prop:`src`,type:`string`},{prop:`boardUrl`,type:`string`},{prop:`pollInterval`,type:`number`},{prop:`editable`,type:`boolean`},{prop:`readonly`,type:`boolean`},{prop:`lockable`,type:`boolean`},{prop:`minimap`,type:`boolean`},{prop:`height`,type:`string`},{prop:`name`,type:`string`},{prop:`userId`,type:`string`},{prop:`userName`,type:`string`},{prop:`userColor`,type:`string`}],"dsk-markdown":[..._,{prop:`src`,type:`string`},{prop:`toc`,type:`boolean`},{prop:`tocDepth`,type:`number`},{prop:`linkBase`,type:`string`},{prop:`imageBase`,type:`string`}],"dsk-editor":[..._,{prop:`value`,type:`string`},{prop:`name`,type:`string`},{prop:`input`,type:`string`},{prop:`placeholder`,type:`string`},{prop:`readonly`,type:`boolean`},{prop:`toolbar`,type:`boolean`},{prop:`minHeight`,type:`string`},{prop:`maxHeight`,type:`string`},{prop:`resizable`,type:`boolean`}]},b=new Set([`SCRIPT`,`TEMPLATE`,`SOURCE`,`TRACK`,`INPUT`]);function x(e){let t=e.replace(/\r\n?/g,`
|
|
1
|
+
(function(){function e(e){return typeof e==`string`&&e.trim().toLowerCase().startsWith(`ru`)?`ru`:`en`}function t(e){return e===`light`||e===`dark`||e===`system`}function n(e){let t=e.trim();return t.endsWith(`/`)?t:`${t}/`}function r(r={},i=document,a={}){let o=i.documentElement,s=typeof matchMedia==`function`?matchMedia(`(prefers-color-scheme: dark)`):null,c=new Set,l=null,u=null,d=`https://cdn.jsdelivr.net/npm/`,f={...a},p=!1,m=_();function h(){let e=o.getAttribute(`data-theme`);return e===`dark`||e===`light`?e:null}function g(){return l===`light`||l===`dark`?l:l===`system`?s?.matches?`dark`:`light`:h()??`light`}function _(){return Object.freeze({theme:l,resolvedTheme:g(),locale:u??e(o.getAttribute(`lang`)),cdnBase:d,versions:Object.freeze({...f})})}function v(){if(l===null)return;let e=g();o.getAttribute(`data-theme`)!==e&&(p=!0,o.setAttribute(`data-theme`,e),p=!1)}function y(){let e=_(),t=e.theme!==m.theme||e.resolvedTheme!==m.resolvedTheme||e.locale!==m.locale||e.cdnBase!==m.cdnBase||JSON.stringify(e.versions)!==JSON.stringify(m.versions);if(m=e,t)for(let e of[...c])try{e(m)}catch(e){console.error(`[dsk-embed] config listener failed`,e)}}function b(r){return`theme`in r&&(r.theme===null||r.theme===void 0?l=null:t(r.theme)?l=r.theme:console.warn(`[dsk-embed] unknown theme "${String(r.theme)}"; use light, dark or system`)),`locale`in r&&(u=r.locale?e(r.locale):null),typeof r.cdnBase==`string`&&r.cdnBase.trim()!==``&&(d=n(r.cdnBase)),r.versions&&typeof r.versions==`object`&&(f={...f,...r.versions}),v(),y(),m}let x=typeof MutationObserver==`function`?new MutationObserver(()=>{if(p)return;let e=h();l!==null&&e&&e!==g()&&(l=e),y()}):null;x?.observe(o,{attributes:!0,attributeFilter:[`data-theme`,`lang`]});let S=()=>{v(),y()};return s?.addEventListener?.(`change`,S),b(r),{get:()=>m,configure:b,subscribe(e){return c.add(e),()=>c.delete(e)},dispose(){x?.disconnect(),s?.removeEventListener?.(`change`,S),c.clear()}}}function i(e){return e.startsWith(`dsk:`)?e:`dsk:`+e}function a(e=document){let t=new Map;function n(n,a,o){let s=i(n),c=e=>{o&&r(n,a),a(e.detail,e)},l=t.get(a);return l||t.set(a,l=new Map),l.has(s)||(l.set(s,c),e.addEventListener(s,c)),()=>r(n,a)}function r(n,r){let a=i(n),o=t.get(r)?.get(a);o&&(e.removeEventListener(a,o),t.get(r)?.delete(a))}return{on:(e,t)=>n(e,t,!1),once:(e,t)=>n(e,t,!0),off:r,emit(t,n,r){let a=new CustomEvent(i(t),{detail:n,bubbles:!0,composed:!0,cancelable:!0});return(r??e).dispatchEvent(a)}}}function o(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function s(e){return e.attr??o(e.prop)}var c=new Set([`false`,`0`,`off`,`no`]);function l(e){if(e!==null)return!c.has(e.trim().toLowerCase())}function u(e){if(e===null||e.trim()===``)return;let t=Number(e);return Number.isFinite(t)?t:void 0}function d(e){if(e===null)return;let t=e.trim();if(t===``)return[];if(t.startsWith(`[`)){let e=JSON.parse(t);if(!Array.isArray(e))throw SyntaxError(`expected a JSON array`);return e.map(e=>String(e))}return t.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}function f(e){return d(e)?.map(Number).filter(e=>Number.isFinite(e))}function p(e){if(e!==null&&e.trim()!==``)return JSON.parse(e)}function m(e){if(e===null)return;let t=e.trim().toLowerCase();return t===`session`||t===`local`?t:l(t)}function h(e,t){switch(e.type){case`string`:return t??void 0;case`boolean`:return l(t);case`number`:return u(t);case`list`:return d(t);case`numbers`:return f(t);case`json`:return p(t);case`credentials`:return m(t);case`enum`:return t!==null&&e.values?.includes(t.trim())?t.trim():void 0}}function g(e,t){let n={},r=[];for(let i of t){let t=s(i);try{let r=h(i,e.getAttribute(t));r!==void 0&&(n[i.prop]=r)}catch(e){r.push({attr:t,message:e instanceof Error?e.message:String(e)})}}return{props:n,errors:r}}var _=[{prop:`locale`,type:`string`},{prop:`loading`,type:`enum`,values:[`lazy`,`eager`]}],v=[{prop:`src`,type:`string`},{prop:`loop`,type:`boolean`},{prop:`preload`,type:`enum`,values:[`none`,`metadata`,`auto`]},{prop:`crossorigin`,type:`enum`,values:[``,`anonymous`,`use-credentials`]},{prop:`exclusive`,type:`boolean`},{prop:`resumeKey`,type:`string`},{prop:`rates`,type:`numbers`},{prop:`hotkeys`,type:`boolean`},{prop:`hlsOptions`,type:`json`}],y={"dsk-video":[..._,...v,{prop:`sources`,type:`json`},{prop:`tracks`,type:`json`},{prop:`poster`,type:`string`},{prop:`thumbnails`,type:`string`},{prop:`autoplay`,type:`boolean`},{prop:`muted`,type:`boolean`},{prop:`controls`,type:`boolean`},{prop:`aspectRatio`,type:`string`},{prop:`label`,type:`string`},{prop:`autoHide`,type:`number`}],"dsk-audio":[..._,...v,{prop:`type`,type:`string`},{prop:`trackTitle`,type:`string`},{prop:`artist`,type:`string`},{prop:`tracks`,type:`json`},{prop:`variant`,type:`enum`,values:[`default`,`mini`]},{prop:`waveform`,type:`boolean`},{prop:`peaks`,type:`numbers`},{prop:`waveformMaxBytes`,type:`number`},{prop:`waveformMaxDuration`,type:`number`},{prop:`autoAdvance`,type:`boolean`},{prop:`showVolume`,type:`boolean`},{prop:`showRate`,type:`boolean`},{prop:`showPlaylist`,type:`boolean`},{prop:`index`,type:`number`}],"dsk-diagram":[..._,{prop:`src`,type:`string`},{prop:`label`,type:`string`},{prop:`syntax`,type:`enum`,values:[`mermaid`,`plantuml`,`dot`,`d2`,`dbml`,`structurizr`,`wardley`]}],"dsk-asyncapi":[..._,{prop:`src`,type:`string`},{prop:`height`,type:`string`}],"dsk-bpmn":[..._,{prop:`src`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`properties`,type:`boolean`},{prop:`diagram`,type:`string`},{prop:`highlight`,type:`list`},{prop:`height`,type:`string`},{prop:`name`,type:`string`}],"dsk-dmn":[..._,{prop:`src`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`decision`,type:`string`},{prop:`highlight`,type:`list`},{prop:`height`,type:`string`},{prop:`name`,type:`string`}],"dsk-calendar":[..._,{prop:`src`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`locked`,type:`boolean`},{prop:`lockable`,type:`boolean`},{prop:`view`,type:`enum`,values:[`day`,`week`,`month`,`year`,`agenda`]},{prop:`date`,type:`string`},{prop:`views`,type:`list`},{prop:`name`,type:`string`}],"dsk-kanban":[..._,{prop:`src`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`locked`,type:`boolean`},{prop:`lockable`,type:`boolean`},{prop:`name`,type:`string`}],"dsk-drawio":[..._,{prop:`src`,type:`string`},{prop:`page`,type:`string`},{prop:`label`,type:`string`},{prop:`externalImages`,type:`boolean`}],"dsk-openapi":[..._,{prop:`mode`,type:`enum`,values:[`reference`,`operation`,`block`,`editor`]},{prop:`view`,type:`enum`,values:[`visual`,`source`,`preview`]},{prop:`src`,type:`string`},{prop:`specs`,type:`json`},{prop:`active`,type:`string`},{prop:`operation`,type:`string`},{prop:`referenceUrl`,type:`string`},{prop:`specId`,type:`string`},{prop:`tryIt`,type:`boolean`},{prop:`proxy`,type:`string`},{prop:`baseUrl`,type:`string`},{prop:`defaultSnippet`,type:`string`},{prop:`snippetTargets`,type:`list`},{prop:`persistCredentials`,type:`credentials`},{prop:`hashNavigation`,type:`boolean`},{prop:`heading`,type:`string`},{prop:`editable`,type:`boolean`},{prop:`height`,type:`string`}],"dsk-flow":[..._,{prop:`src`,type:`string`},{prop:`pollUrl`,type:`string`},{prop:`pollInterval`,type:`number`},{prop:`state`,type:`json`},{prop:`editable`,type:`boolean`},{prop:`readonly`,type:`boolean`},{prop:`toggleUrl`,type:`string`},{prop:`subgraphUrl`,type:`string`},{prop:`direction`,type:`enum`,values:[`TB`,`LR`,`auto`]},{prop:`edgeStyle`,type:`enum`,values:[`orthogonal`,`smooth`]},{prop:`wheel`,type:`enum`,values:[`zoom`,`pan`]},{prop:`minimap`,type:`boolean`},{prop:`controls`,type:`boolean`},{prop:`details`,type:`boolean`},{prop:`statusBar`,type:`boolean`},{prop:`palette`,type:`list`},{prop:`height`,type:`string`},{prop:`name`,type:`string`},{prop:`openapiTarget`,type:`string`},{prop:`mediaTarget`,type:`string`}],"dsk-board":[..._,{prop:`src`,type:`string`},{prop:`boardUrl`,type:`string`},{prop:`pollInterval`,type:`number`},{prop:`editable`,type:`boolean`},{prop:`readonly`,type:`boolean`},{prop:`lockable`,type:`boolean`},{prop:`minimap`,type:`boolean`},{prop:`height`,type:`string`},{prop:`name`,type:`string`},{prop:`userId`,type:`string`},{prop:`userName`,type:`string`},{prop:`userColor`,type:`string`}],"dsk-markdown":[..._,{prop:`src`,type:`string`},{prop:`toc`,type:`boolean`},{prop:`tocDepth`,type:`number`},{prop:`linkBase`,type:`string`},{prop:`imageBase`,type:`string`}],"dsk-editor":[..._,{prop:`value`,type:`string`},{prop:`name`,type:`string`},{prop:`input`,type:`string`},{prop:`placeholder`,type:`string`},{prop:`readonly`,type:`boolean`},{prop:`toolbar`,type:`boolean`},{prop:`minHeight`,type:`string`},{prop:`maxHeight`,type:`string`},{prop:`resizable`,type:`boolean`}]},b=new Set([`SCRIPT`,`TEMPLATE`,`SOURCE`,`TRACK`,`INPUT`]);function x(e){let t=e.replace(/\r\n?/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`);for(;t.length>0&&t[0].trim()===``;)t.shift();for(;t.length>0&&t[t.length-1].trim()===``;)t.pop();let n=1/0;for(let e of t)e.trim()!==``&&(n=Math.min(n,e.length-e.trimStart().length));return!Number.isFinite(n)||n===0?t.join(`
|
|
4
4
|
`):t.map(e=>e.slice(Math.min(n,e.length-e.trimStart().length))).join(`
|
|
5
|
-
`)}function S(e){let t=(e.getAttribute(`type`)??``).trim().toLowerCase();return t!==``&&t!==`module`&&!/javascript|ecmascript/.test(t)}function ee(e){for(let t of Array.from(e.children))if(t.tagName===`SCRIPT`&&S(t))return x(t.textContent??``);for(let t of Array.from(e.children))if(t.tagName===`TEMPLATE`)return x(t.innerHTML);let t=``;for(let n of Array.from(e.childNodes))(n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE&&!b.has(n.tagName)&&!n.hasAttribute(`data-dsk-root`))&&(t+=n.textContent??``);return x(t)}function C(e){let t={};for(let n of Array.from(e.attributes)){let e=n.name.startsWith(`data-`)?n.name.slice(5):n.name;(!(e in t)||n.name.startsWith(`data-`))&&(t[e]=n.value)}return t}function w(e){let t=[],n=[];for(let r of Array.from(e.children))r.tagName===`SOURCE`?t.push(C(r)):r.tagName===`TRACK`&&n.push(C(r));return{sources:t,tracks:n}}var T={"dsk-video":{plugin:`media`,methods:[`play`,`pause`,`toggle`,`seek`,`playChapter`],getters:[`state`,`media`,`chapters`],objects:[]},"dsk-audio":{plugin:`media`,methods:[`play`,`pause`,`toggle`,`seek`,`next`,`prev`],getters:[`state`,`media`],objects:[]},"dsk-diagram":{plugin:`diagram`,methods:[`enterFullscreen`,`exitFullscreen`],getters:[`svg`,`fullscreen`],objects:[]},"dsk-openapi":{plugin:`openapi`,methods:[`go`,`open`,`print`,`enterFullscreen`,`exitFullscreen`],getters:[`loaded`,`value`,`fullscreen`],objects:[`spec`,`send`,`labels`]},"dsk-flow":{plugin:`flow`,methods:[`fit`,`select`,`enter`,`back`,`refresh`,`undo`,`redo`,`enterFullscreen`,`exitFullscreen`],getters:[`stack`,`fullscreen`],objects:[`graph`,`loadSubgraph`,`persistToggle`,`labels`,`registry`]},"dsk-markdown":{plugin:`markdown`,methods:[],getters:[`value`],objects:[]},"dsk-board":{plugin:`board`,methods:[`fit`,`select`,`toPng`,`toSvg`,`undo`,`redo`,`enterFullscreen`,`exitFullscreen`],getters:[`value`,`fullscreen`],objects:[`board`,`provider`,`labels`]},"dsk-editor":{plugin:`editor`,methods:[`focus`],getters:[`controller`],objects:[]},"dsk-asyncapi":{plugin:`openapi`,methods:[`enterFullscreen`,`exitFullscreen`],getters:[`loaded`,`fullscreen`],objects:[`spec`,`labels`]},"dsk-bpmn":{plugin:`bpmn`,methods:[`fit`,`undo`,`redo`,`toSvg`,`enterFullscreen`,`exitFullscreen`],getters:[`value`,`fullscreen`],objects:[`labels`,`highlight`]},"dsk-dmn":{plugin:`bpmn`,methods:[`fit`,`undo`,`redo`,`toSvg`,`open`,`enterFullscreen`,`exitFullscreen`],getters:[`value`,`fullscreen`],objects:[`labels`,`highlight`]},"dsk-drawio":{plugin:`drawio`,methods:[`showPage`,`enterFullscreen`,`exitFullscreen`],getters:[`svg`,`pages`,`page`,`fullscreen`],objects:[]}},E=null,D={io:null};function O(e,t){typeof IntersectionObserver==`function`?(D.io??=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(D.io.unobserve(t.target),t.target._dskLazyStart?.())},{rootMargin:`200px`}),e._dskLazyStart=t,D.io.observe(e)):t()}function k(t,n,r){let i=r.map(s);class a extends HTMLElement{static get observedAttributes(){return i}_overrides={};_source=null;_children={sources:[],tracks:[]};_instance=null;_container=null;_starting=!1;_waitingForParse=!1;_updateQueued=!1;_resolveReady;_ready;constructor(){super(),this._ready=new Promise(e=>this._resolveReady=e)}get ready(){return this._ready}get source(){return this._source===null&&this._capture(),this._source??``}set source(e){this._source=String(e??``),this._queueUpdate()}connectedCallback(){this._instance||this._starting||(document.readyState===`loading`?this._waitingForParse||(this._waitingForParse=!0,document.addEventListener(`DOMContentLoaded`,()=>{this._waitingForParse=!1,this.isConnected&&this.connectedCallback()},{once:!0})):this.getAttribute(`loading`)===`lazy`?O(this,()=>this._start()):this._start())}disconnectedCallback(){D.io?.unobserve(this),queueMicrotask(()=>{this.isConnected||this._destroy()})}attributeChangedCallback(e,t,n){t!==n&&(e===`loading`&&n!==`lazy`&&!this._instance&&!this._starting&&this.isConnected&&this._start(),this._queueUpdate())}refresh(){this._capture(!0),this._queueUpdate()}_capture(e=!1){(this._source===null||e)&&(this._source=ee(this),this._children=w(this))}_props(){let{props:e,errors:n}=g(this,r);for(let e of n)console.warn(`[dsk-embed] <${t} ${e.attr}>: ${e.message}`);return{...e,...this._overrides}}_locale(){let t=this._overrides.locale??this.getAttribute(`locale`);return typeof t==`string`&&t!==``?e(t):E?.config().locale??`en`}_queueUpdate(){this._instance&&!this._updateQueued&&(this._updateQueued=!0,queueMicrotask(()=>{this._updateQueued=!1,this._instance?.update()}))}_start(){let e=E;if(!e||this._starting||this._instance)return;this._starting=!0,this._capture();for(let e of Array.from(this.childNodes))e.nodeType===Node.ELEMENT_NODE&&b.has(e.tagName)||e.nodeType===Node.ELEMENT_NODE&&e.hasAttribute(`data-dsk-root`)||e.remove();let r=document.createElement(`div`);r.setAttribute(`data-dsk-root`,``),r.className=`dsk-root`,this.appendChild(r),this._container=r,this.setAttribute(`data-dsk-state`,`loading`),e.load(n.plugin).then(i=>{if(!this.isConnected||this._container!==r)return;if(!i.mountElement)throw Error(`plugin ${n.plugin} has no elements`);let a={host:e,el:this,tag:t,container:r,props:()=>this._props(),source:()=>this.source,children:()=>this._children,emit:(t,n)=>e.emit(t,n,this),locale:()=>this._locale()};this._instance=i.mountElement(a),this.setAttribute(`data-dsk-state`,`ready`),this._resolveReady(),e.emit(`ready`,{tag:t},this)}).catch(n=>{let i=n instanceof Error?n.message:String(n);console.error(`[dsk-embed] <${t}> failed to load`,n),this.setAttribute(`data-dsk-state`,`error`),r.replaceChildren();let a=document.createElement(`div`);a.className=`dsk-error`,a.setAttribute(`role`,`alert`),a.textContent=i,r.appendChild(a),e.emit(`error`,{tag:t,message:i},this)}).finally(()=>{this._starting=!1})}_destroy(){if(this._instance)try{this._instance.destroy()}catch(e){console.error(`[dsk-embed] <${t}> destroy failed`,e)}this._instance=null,this._container?.remove(),this._container=null,this.removeAttribute(`data-dsk-state`),this._ready=new Promise(e=>this._resolveReady=e)}}let o=a.prototype;for(let e of r)e.prop in o||Object.defineProperty(o,e.prop,{configurable:!0,enumerable:!0,get(){let t=this._instance?.api;return t&&e.prop in t?t[e.prop]:e.prop in this._overrides?this._overrides[e.prop]:this._props()[e.prop]},set(t){t===void 0?delete this._overrides[e.prop]:this._overrides[e.prop]=t,this._queueUpdate()}});for(let e of n.objects)Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get(){let t=this._instance?.api;return t&&e in t?t[e]:this._overrides[e]},set(t){t===void 0?delete this._overrides[e]:this._overrides[e]=t,this._queueUpdate()}});for(let e of n.methods)o[e]=function(...n){let r=()=>{let r=this._instance?.api?.[e];if(typeof r!=`function`)throw Error(`<${t}>.${e}() is not available`);return r(...n)};return this._instance?r():this.ready.then(r)};for(let e of n.getters)Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get(){return this._instance?.api?.[e]}});return a}function A(e,t,n=customElements){E=e;for(let[e,r]of Object.entries(T))n.get(e)||t&&!t.has(r.plugin)||n.define(e,k(e,r,y[e]??[]))}var te=/^[a-z0-9][a-z0-9_+.-]*$/;function j(e){return String(e).trim().toLowerCase()}function ne(e){if(typeof e==`function`)return e;if(e&&typeof e==`object`&&(typeof e.mount==`function`||typeof e.html==`string`)){let t=e;return()=>t}throw TypeError("a block renderer is a function, or an object with `html` or `mount`")}function re(){let e=new Map,t=new Set,n=()=>{for(let e of[...t])e()},r={register(t,i){let a=j(t);if(!te.test(a))throw TypeError(`invalid block language "${t}"`);let o=ne(i);return e.set(a,o),n(),()=>{e.get(a)===o&&r.unregister(a)}},unregister(t){e.delete(j(t))&&n()},get:t=>e.get(j(t)),has:t=>e.has(j(t)),languages:()=>[...e.keys()],all:()=>Object.fromEntries(e),subscribe(e){return t.add(e),()=>t.delete(e)}};return r}var M=new WeakMap,N=`[data-dsk-root], [contenteditable], .uid-markdown, dsk-markdown, dsk-editor`;function P(e,t){for(let n of[t,e]){if(!n)continue;let e=n.getAttribute(`data-lang`)??n.getAttribute(`data-language`);if(e)return e.trim().toLowerCase();for(let e of Array.from(n.classList)){let t=/^(?:language|lang)-(.+)$/.exec(e);if(t)return t[1].toLowerCase()}}return null}function F(e,t,n={}){let r=n.languages?.map(e=>e.toLowerCase()),i=[],a=[];e instanceof HTMLElement&&e.tagName===`PRE`&&a.push(e),a.push(...Array.from(e.querySelectorAll(`pre`)));for(let e of a){if(e.hasAttribute(`data-dsk-failed`)||e.closest(N))continue;let n=e.querySelector(`:scope > code`),a=P(e,n);a&&t.has(a)&&(!r||r.includes(a))&&i.push({pre:e,code:(n??e).textContent??``,language:a})}return i}function I(e){return e instanceof Error?e.message:String(e)}function L(e,t,n){t.setAttribute(`data-dsk-failed`,``),t.title=n,e.isConnected&&e.replaceWith(t),M.delete(e)}async function R(e,t,n={}){let r=F(e,t,n),i=0,a=r.map(async({pre:e,code:n,language:r})=>{let a=t.get(r),o=document.createElement(`div`);o.className=`dsk-block dsk-block--${r}`,o.setAttribute(`data-dsk-block`,r),o.setAttribute(`data-dsk-state`,`loading`),e.replaceWith(o),M.set(o,{pre:e,handle:null});let s;try{s=await a(n,{language:r,index:i++})}catch(t){return L(o,e,I(t)),0}if(!o.isConnected)return 0;if(!s||s.error!==void 0||s.html===void 0&&!s.mount)return L(o,e,s?.error??`nothing to render`),0;if(s.mount)try{let t=s.mount(o,{code:n,language:r,editable:!1,setCode:()=>{}});M.set(o,{pre:e,handle:typeof t==`function`?{destroy:t}:t??null})}catch(t){return L(o,e,I(t)),0}else o.innerHTML=s.html;return o.setAttribute(`data-dsk-state`,`ready`),1});return(await Promise.all(a)).reduce((e,t)=>e+t,0)}function z(e){let t=0,n=[];e instanceof Element&&e.hasAttribute(`data-dsk-block`)&&n.push(e),n.push(...Array.from(e.querySelectorAll(`[data-dsk-block]`)));for(let e of n){let n=M.get(e);if(n){try{n.handle?.destroy?.()}catch(e){console.error(`[dsk-embed] block destroy failed`,e)}e.replaceWith(n.pre),M.delete(e),t++}}return t}var B=[`media`,`diagram`,`openapi`,`flow`,`markdown`,`editor`,`board`,`bpmn`,`drawio`],V={mermaid:`diagram`,plantuml:`diagram`,puml:`diagram`,dot:`diagram`,graphviz:`diagram`,d2:`diagram`,dbml:`diagram`,structurizr:`diagram`,wardley:`diagram`,openapi:`openapi`,asyncapi:`openapi`,bpmn:`bpmn`,dmn:`bpmn`,drawio:`drawio`,flow:`flow`,board:`board`,video:`media`,audio:`media`};function H(e){let t=r(e.config??{},document,e.versions),n=re(),i=a(document),o=new Map,s=new Set(e.plugins??B),c=new Map,l={version:e.version,config:()=>t.get(),onConfig:e=>t.subscribe(e),blocks:n,emit:(e,t,n)=>i.emit(e,t,n),load(n){let r=o.get(n);if(!r){let i=c.get(n);if(!i&&!s.has(n))return Promise.reject(Error(`the ${n} plugin is not on this page`));r=(i?i():e.loadPlugin(n,t.get())).then(e=>(e.setup?.(l),e)),r.catch(()=>o.delete(n)),o.set(n,r)}return r}},u=e=>{let t=new Set(e);for(let[e,r]of Object.entries(V))t.has(r)&&!n.has(e)&&n.register(e,async(t,n)=>{let i=(await l.load(r)).renderers?.[e];return i?i(t,n):{error:`no ${e} renderer in the ${r} plugin`}})};u(s),t.subscribe(e=>{i.emit(`config`,{theme:e.theme,resolvedTheme:e.resolvedTheme,locale:e.locale})});let d={version:e.version,mode:e.mode,versions:Object.freeze({...e.versions}),importMap:e.importMap??null,get config(){return t.get()},configure:e=>t.configure(e),blocks:{register:(e,t)=>n.register(e,t),unregister:e=>n.unregister(e),has:e=>n.has(e),list:()=>n.languages()},on:i.on,once:i.once,off:i.off,emit:i.emit,renderBlocks:(e=document.body,t)=>R(e,n,t),unrenderBlocks:(e=document.body)=>z(e),preload:async(...e)=>{await Promise.all(e.map(e=>l.load(e)))},plugins:()=>[...s],extend(e){let t=[];for(let[n,r]of Object.entries(e))r&&!s.has(n)&&(c.set(n,typeof r==`function`?r:()=>Promise.resolve(r)),s.add(n),t.push(n));return t.length>0&&(A(l,s),u(t)),t},host:l};return A(l,s),d}function U(e){let t={...globalThis.DskEmbedConfig??{}};if(e){let n=e.getAttribute(`data-theme`),r=e.getAttribute(`data-locale`),i=e.getAttribute(`data-cdn-base`);n&&(t.theme=n),r&&(t.locale=r),i&&(t.cdnBase=i)}return t}function W(e,t){if(!t||!t.hasAttribute(`data-render-blocks`))return;let n=t.getAttribute(`data-render-blocks`)||`body`,r=()=>{for(let t of Array.from(document.querySelectorAll(n)))e.renderBlocks(t)};document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,r,{once:!0}):r()}var G={vue:[`vue`,`dist/vue.runtime.esm-browser.prod.js`],"@dskripchenko/ui":[`@dskripchenko/ui`,`dist/index.mjs`],"@dskripchenko/ui/hls":[`@dskripchenko/ui`,`dist/hls/index.mjs`],"@dskripchenko/wysiwyg":[`@dskripchenko/wysiwyg`,`dist/index.mjs`],"@dskripchenko/diagrams":[`@dskripchenko/diagrams`,`dist/index.mjs`],"@dskripchenko/openapi":[`@dskripchenko/openapi`,`dist/index.mjs`],"@dskripchenko/openapi/vue":[`@dskripchenko/openapi`,`dist/vue.mjs`],"@dskripchenko/flow":[`@dskripchenko/flow`,`dist/index.mjs`],"@dskripchenko/flow/vue":[`@dskripchenko/flow`,`dist/vue.mjs`],"@dskripchenko/flow/mermaid":[`@dskripchenko/flow`,`dist/mermaid.mjs`],"@dskripchenko/board":[`@dskripchenko/board`,`dist/index.mjs`],"@dskripchenko/board/vue":[`@dskripchenko/board`,`dist/vue.mjs`],"@dskripchenko/bpmn":[`@dskripchenko/bpmn`,`dist/index.mjs`],"@dskripchenko/bpmn/vue":[`@dskripchenko/bpmn`,`dist/vue.mjs`],"@dskripchenko/drawio":[`@dskripchenko/drawio`,`dist/index.mjs`]},K={tokens:[`@dskripchenko/ui`,`dist/styles/tokens.css`],themes:[`@dskripchenko/ui`,`dist/styles/themes.css`],kit:[`@dskripchenko/ui`,`dist/styles/index.css`],openapi:[`@dskripchenko/openapi`,`dist/style.css`],flow:[`@dskripchenko/flow`,`dist/style.css`],board:[`@dskripchenko/board`,`dist/style.css`],bpmn:[`@dskripchenko/bpmn`,`dist/style.css`],editor:[`@dskripchenko/wysiwyg`,`dist/style.css`]};function q(e,t,n,r){return`${e}${t}@${n}/${r}`}function ie(e,t){let n={};for(let[r,[i,a]]of Object.entries(G)){let o=t[i];if(!o)throw Error(`no version pinned for ${i}`);n[r]=q(e,i,o,a)}return{imports:n}}function J(e,t,n){let[r,i]=K[n];return q(e,r,t[r],i)}function Y(e=document){let t={};for(let n of Array.from(e.querySelectorAll(`script[type="importmap"]`)))try{let e=JSON.parse(n.textContent??`{}`);for(let[n,r]of Object.entries(e.imports??{}))n in t||(t[n]=r)}catch{}return{imports:t}}function ae(e,t=document){let n=Y(t),r={},i=[],a={};for(let[t,o]of Object.entries(e.imports)){let e=n.imports[t];e===void 0?(r[t]=o,a[t]=o):(a[t]=e,e!==o&&i.push({specifier:t,page:e,embed:o}))}let o=Object.keys(r);if(o.length>0){let e=t.createElement(`script`);e.type=`importmap`,e.setAttribute(`data-dsk-embed`,``),e.textContent=JSON.stringify({imports:r},null,2);let n=t.querySelector(`script[type="module"]`),i=n&&n.parentNode?n:null;i?i.parentNode.insertBefore(e,i):(t.head??t.documentElement).appendChild(e)}return{map:{imports:a},added:o,conflicts:i}}var oe={diagram:[`tokens`,`themes`],media:[`tokens`,`themes`,`kit`],markdown:[`tokens`,`themes`,`kit`],openapi:[`tokens`,`themes`,`kit`,`openapi`],flow:[`tokens`,`themes`,`kit`,`flow`],editor:[`tokens`,`themes`,`kit`,`editor`],board:[`tokens`,`themes`,`kit`,`board`],bpmn:[`tokens`,`themes`,`kit`,`bpmn`],drawio:[`tokens`,`themes`]},X=new Map;function se(e){return e.head.querySelector(`link[rel="stylesheet"]:not([data-dsk-embed]), style:not([data-dsk-embed])`)}function ce(e){let t=e.head.querySelectorAll(`link[data-dsk-embed], style[data-dsk-embed]`);return t.length>0?t[t.length-1]:null}function Z(e,t){let n=ce(e);if(n)n.after(t);else{let n=se(e);n?n.before(t):e.head.appendChild(t)}}function le(e,t=document){let n=X.get(e);if(n)return n;if(Array.from(t.querySelectorAll(`link[rel="stylesheet"]`)).find(t=>t.href===e))return X.set(e,Promise.resolve()),X.get(e);let r=t.createElement(`link`);r.rel=`stylesheet`,r.href=e,r.setAttribute(`data-dsk-embed`,``);let i=new Promise(t=>{r.addEventListener(`load`,()=>t(),{once:!0}),r.addEventListener(`error`,()=>{console.error(`[dsk-embed] stylesheet failed to load: ${e}`),t()},{once:!0})});return Z(t,r),X.set(e,i),i}function ue(e,t,n=document){if(n.querySelector(`style[data-dsk-embed="${e}"]`))return;let r=n.createElement(`style`);r.setAttribute(`data-dsk-embed`,e),r.textContent=t,Z(n,r)}var Q=`:root:not([data-theme]) { --uid-surface-base: var(--uid-color-zinc-50); --uid-surface-raised: var(--uid-color-white); --uid-surface-overlay: var(--uid-color-white); --uid-text-primary: var(--uid-color-zinc-900); --uid-text-secondary: var(--uid-color-zinc-500); --uid-text-tertiary: var(--uid-color-zinc-400); --uid-text-on-accent: var(--uid-color-white); --uid-border-subtle: var(--uid-color-zinc-200); --uid-border-default: var(--uid-color-zinc-300); --uid-border-hover: var(--uid-color-zinc-400); --uid-accent: var(--uid-color-teal-500); --uid-accent-hover: var(--uid-color-teal-600); --uid-accent-subtle: var(--uid-color-teal-50); --uid-accent-text: var(--uid-color-teal-700); --uid-danger: var(--uid-color-rose-600); --uid-danger-hover: var(--uid-color-rose-700); --uid-danger-subtle: var(--uid-color-rose-50); --uid-success: var(--uid-color-emerald-600); --uid-success-subtle: var(--uid-color-emerald-50); --uid-warning: var(--uid-color-amber-600); --uid-warning-subtle: var(--uid-color-amber-50); --uid-info: var(--uid-color-blue-600); --uid-info-subtle: var(--uid-color-blue-50); --uid-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05); --uid-shadow-md: 0 4px 12px rgb(0 0 0 / 0.08); --uid-shadow-lg: 0 8px 24px rgb(0 0 0 / 0.12); --uid-shadow-xl: 0 20px 60px rgb(0 0 0 / 0.3); }
|
|
6
|
-
:where(
|
|
5
|
+
`)}function S(e){let t=(e.getAttribute(`type`)??``).trim().toLowerCase();return t!==``&&t!==`module`&&!/javascript|ecmascript/.test(t)}function ee(e){for(let t of Array.from(e.children))if(t.tagName===`SCRIPT`&&S(t))return x(t.textContent??``);for(let t of Array.from(e.children))if(t.tagName===`TEMPLATE`)return x(t.innerHTML);let t=``;for(let n of Array.from(e.childNodes))(n.nodeType===Node.TEXT_NODE||n.nodeType===Node.ELEMENT_NODE&&!b.has(n.tagName)&&!n.hasAttribute(`data-dsk-root`))&&(t+=n.textContent??``);return x(t)}function C(e){let t={};for(let n of Array.from(e.attributes)){let e=n.name.startsWith(`data-`)?n.name.slice(5):n.name;(!(e in t)||n.name.startsWith(`data-`))&&(t[e]=n.value)}return t}function w(e){let t=[],n=[];for(let r of Array.from(e.children))r.tagName===`SOURCE`?t.push(C(r)):r.tagName===`TRACK`&&n.push(C(r));return{sources:t,tracks:n}}var T={"dsk-video":{plugin:`media`,methods:[`play`,`pause`,`toggle`,`seek`,`playChapter`],getters:[`state`,`media`,`chapters`],objects:[]},"dsk-audio":{plugin:`media`,methods:[`play`,`pause`,`toggle`,`seek`,`next`,`prev`],getters:[`state`,`media`],objects:[]},"dsk-diagram":{plugin:`diagram`,methods:[`enterFullscreen`,`exitFullscreen`],getters:[`svg`,`fullscreen`],objects:[]},"dsk-openapi":{plugin:`openapi`,methods:[`go`,`open`,`print`,`enterFullscreen`,`exitFullscreen`],getters:[`loaded`,`value`,`fullscreen`],objects:[`spec`,`send`,`labels`]},"dsk-flow":{plugin:`flow`,methods:[`fit`,`select`,`enter`,`back`,`refresh`,`undo`,`redo`,`enterFullscreen`,`exitFullscreen`],getters:[`stack`,`fullscreen`],objects:[`graph`,`loadSubgraph`,`persistToggle`,`labels`,`registry`]},"dsk-markdown":{plugin:`markdown`,methods:[],getters:[`value`],objects:[]},"dsk-board":{plugin:`board`,methods:[`fit`,`select`,`toPng`,`toSvg`,`undo`,`redo`,`enterFullscreen`,`exitFullscreen`],getters:[`value`,`fullscreen`],objects:[`board`,`provider`,`labels`]},"dsk-editor":{plugin:`editor`,methods:[`focus`],getters:[`controller`],objects:[]},"dsk-asyncapi":{plugin:`openapi`,methods:[`enterFullscreen`,`exitFullscreen`],getters:[`loaded`,`fullscreen`],objects:[`spec`,`labels`]},"dsk-bpmn":{plugin:`bpmn`,methods:[`fit`,`undo`,`redo`,`toSvg`,`enterFullscreen`,`exitFullscreen`],getters:[`value`,`fullscreen`],objects:[`labels`,`highlight`]},"dsk-dmn":{plugin:`bpmn`,methods:[`fit`,`undo`,`redo`,`toSvg`,`open`,`enterFullscreen`,`exitFullscreen`],getters:[`value`,`fullscreen`],objects:[`labels`,`highlight`]},"dsk-calendar":{plugin:`calendar`,methods:[],getters:[`value`],objects:[]},"dsk-kanban":{plugin:`kanban`,methods:[],getters:[`value`,`board`],objects:[]},"dsk-drawio":{plugin:`drawio`,methods:[`showPage`,`enterFullscreen`,`exitFullscreen`],getters:[`svg`,`pages`,`page`,`fullscreen`],objects:[]}},E=null,D={io:null};function O(e,t){typeof IntersectionObserver==`function`?(D.io??=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(D.io.unobserve(t.target),t.target._dskLazyStart?.())},{rootMargin:`200px`}),e._dskLazyStart=t,D.io.observe(e)):t()}function k(t,n,r){let i=r.map(s);class a extends HTMLElement{static get observedAttributes(){return i}_overrides={};_source=null;_children={sources:[],tracks:[]};_instance=null;_container=null;_starting=!1;_waitingForParse=!1;_updateQueued=!1;_resolveReady;_ready;constructor(){super(),this._ready=new Promise(e=>this._resolveReady=e)}get ready(){return this._ready}get source(){return this._source===null&&this._capture(),this._source??``}set source(e){this._source=String(e??``),this._queueUpdate()}connectedCallback(){this.hasAttribute(`data-dsk`)||this.setAttribute(`data-dsk`,``),!(this._instance||this._starting)&&(document.readyState===`loading`?this._waitingForParse||(this._waitingForParse=!0,document.addEventListener(`DOMContentLoaded`,()=>{this._waitingForParse=!1,this.isConnected&&this.connectedCallback()},{once:!0})):this.getAttribute(`loading`)===`lazy`?O(this,()=>this._start()):this._start())}disconnectedCallback(){D.io?.unobserve(this),queueMicrotask(()=>{this.isConnected||this._destroy()})}attributeChangedCallback(e,t,n){t!==n&&(e===`loading`&&n!==`lazy`&&!this._instance&&!this._starting&&this.isConnected&&this._start(),this._queueUpdate())}refresh(){this._capture(!0),this._queueUpdate()}_capture(e=!1){(this._source===null||e)&&(this._source=ee(this),this._children=w(this))}_props(){let{props:e,errors:n}=g(this,r);for(let e of n)console.warn(`[dsk-embed] <${t} ${e.attr}>: ${e.message}`);return{...e,...this._overrides}}_locale(){let t=this._overrides.locale??this.getAttribute(`locale`);return typeof t==`string`&&t!==``?e(t):E?.config().locale??`en`}_queueUpdate(){this._instance&&!this._updateQueued&&(this._updateQueued=!0,queueMicrotask(()=>{this._updateQueued=!1,this._instance?.update()}))}_start(){let e=E;if(!e||this._starting||this._instance)return;this._starting=!0,this._capture();for(let e of Array.from(this.childNodes))e.nodeType===Node.ELEMENT_NODE&&b.has(e.tagName)||e.nodeType===Node.ELEMENT_NODE&&e.hasAttribute(`data-dsk-root`)||e.remove();let r=document.createElement(`div`);r.setAttribute(`data-dsk-root`,``),r.className=`dsk-root`,this.appendChild(r),this._container=r,this.setAttribute(`data-dsk-state`,`loading`),e.load(n.plugin).then(i=>{if(!this.isConnected||this._container!==r)return;if(!i.mountElement)throw Error(`plugin ${n.plugin} has no elements`);let a={host:e,el:this,tag:t,container:r,props:()=>this._props(),source:()=>this.source,children:()=>this._children,emit:(t,n)=>e.emit(t,n,this),locale:()=>this._locale()};this._instance=i.mountElement(a),this.setAttribute(`data-dsk-state`,`ready`),this._resolveReady(),e.emit(`ready`,{tag:t},this)}).catch(n=>{let i=n instanceof Error?n.message:String(n);console.error(`[dsk-embed] <${t}> failed to load`,n),this.setAttribute(`data-dsk-state`,`error`),r.replaceChildren();let a=document.createElement(`div`);a.className=`dsk-error`,a.setAttribute(`role`,`alert`),a.textContent=i,r.appendChild(a),e.emit(`error`,{tag:t,message:i},this)}).finally(()=>{this._starting=!1})}_destroy(){if(this._instance)try{this._instance.destroy()}catch(e){console.error(`[dsk-embed] <${t}> destroy failed`,e)}this._instance=null,this._container?.remove(),this._container=null,this.removeAttribute(`data-dsk-state`),this._ready=new Promise(e=>this._resolveReady=e)}}let o=a.prototype;for(let e of r)e.prop in o||Object.defineProperty(o,e.prop,{configurable:!0,enumerable:!0,get(){let t=this._instance?.api;return t&&e.prop in t?t[e.prop]:e.prop in this._overrides?this._overrides[e.prop]:this._props()[e.prop]},set(t){t===void 0?delete this._overrides[e.prop]:this._overrides[e.prop]=t,this._queueUpdate()}});for(let e of n.objects)Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get(){let t=this._instance?.api;return t&&e in t?t[e]:this._overrides[e]},set(t){t===void 0?delete this._overrides[e]:this._overrides[e]=t,this._queueUpdate()}});for(let e of n.methods)o[e]=function(...n){let r=()=>{let r=this._instance?.api?.[e];if(typeof r!=`function`)throw Error(`<${t}>.${e}() is not available`);return r(...n)};return this._instance?r():this.ready.then(r)};for(let e of n.getters)Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get(){return this._instance?.api?.[e]}});return a}function A(e,t,n=customElements){E=e;for(let[e,r]of Object.entries(T))n.get(e)||t&&!t.has(r.plugin)||n.define(e,k(e,r,y[e]??[]))}var te=/^[a-z0-9][a-z0-9_+.-]*$/;function j(e){return String(e).trim().toLowerCase()}function ne(e){if(typeof e==`function`)return e;if(e&&typeof e==`object`&&(typeof e.mount==`function`||typeof e.html==`string`)){let t=e;return()=>t}throw TypeError("a block renderer is a function, or an object with `html` or `mount`")}function re(){let e=new Map,t=new Set,n=()=>{for(let e of[...t])e()},r={register(t,i){let a=j(t);if(!te.test(a))throw TypeError(`invalid block language "${t}"`);let o=ne(i);return e.set(a,o),n(),()=>{e.get(a)===o&&r.unregister(a)}},unregister(t){e.delete(j(t))&&n()},get:t=>e.get(j(t)),has:t=>e.has(j(t)),languages:()=>[...e.keys()],all:()=>Object.fromEntries(e),subscribe(e){return t.add(e),()=>t.delete(e)}};return r}var M=new WeakMap,N=`[data-dsk-root], [contenteditable], .uid-markdown, dsk-markdown, dsk-editor`;function P(e,t){for(let n of[t,e]){if(!n)continue;let e=n.getAttribute(`data-lang`)??n.getAttribute(`data-language`);if(e)return e.trim().toLowerCase();for(let e of Array.from(n.classList)){let t=/^(?:language|lang)-(.+)$/.exec(e);if(t)return t[1].toLowerCase()}}return null}function F(e,t,n={}){let r=n.languages?.map(e=>e.toLowerCase()),i=[],a=[];e instanceof HTMLElement&&e.tagName===`PRE`&&a.push(e),a.push(...Array.from(e.querySelectorAll(`pre`)));for(let e of a){if(e.hasAttribute(`data-dsk-failed`)||e.closest(N))continue;let n=e.querySelector(`:scope > code`),a=P(e,n);a&&t.has(a)&&(!r||r.includes(a))&&i.push({pre:e,code:(n??e).textContent??``,language:a})}return i}function I(e){return e instanceof Error?e.message:String(e)}function L(e,t,n){t.setAttribute(`data-dsk-failed`,``),t.title=n,e.isConnected&&e.replaceWith(t),M.delete(e)}async function R(e,t,n={}){let r=F(e,t,n),i=0,a=r.map(async({pre:e,code:n,language:r})=>{let a=t.get(r),o=document.createElement(`div`);o.className=`dsk-block dsk-block--${r}`,o.setAttribute(`data-dsk-block`,r),o.setAttribute(`data-dsk-state`,`loading`),e.replaceWith(o),M.set(o,{pre:e,handle:null});let s;try{s=await a(n,{language:r,index:i++})}catch(t){return L(o,e,I(t)),0}if(!o.isConnected)return 0;if(!s||s.error!==void 0||s.html===void 0&&!s.mount)return L(o,e,s?.error??`nothing to render`),0;if(s.mount)try{let t=s.mount(o,{code:n,language:r,editable:!1,setCode:()=>{}});M.set(o,{pre:e,handle:typeof t==`function`?{destroy:t}:t??null})}catch(t){return L(o,e,I(t)),0}else o.innerHTML=s.html;return o.setAttribute(`data-dsk-state`,`ready`),1});return(await Promise.all(a)).reduce((e,t)=>e+t,0)}function z(e){let t=0,n=[];e instanceof Element&&e.hasAttribute(`data-dsk-block`)&&n.push(e),n.push(...Array.from(e.querySelectorAll(`[data-dsk-block]`)));for(let e of n){let n=M.get(e);if(n){try{n.handle?.destroy?.()}catch(e){console.error(`[dsk-embed] block destroy failed`,e)}e.replaceWith(n.pre),M.delete(e),t++}}return t}var B=[`media`,`diagram`,`openapi`,`flow`,`markdown`,`editor`,`board`,`bpmn`,`drawio`,`kanban`,`calendar`],V={mermaid:`diagram`,plantuml:`diagram`,puml:`diagram`,dot:`diagram`,graphviz:`diagram`,d2:`diagram`,dbml:`diagram`,structurizr:`diagram`,wardley:`diagram`,openapi:`openapi`,asyncapi:`openapi`,bpmn:`bpmn`,dmn:`bpmn`,drawio:`drawio`,kanban:`kanban`,calendar:`calendar`,flow:`flow`,board:`board`,video:`media`,audio:`media`};function H(e){let t=r(e.config??{},document,e.versions),n=re(),i=a(document),o=new Map,s=new Set(e.plugins??B),c=new Map,l={version:e.version,config:()=>t.get(),onConfig:e=>t.subscribe(e),blocks:n,emit:(e,t,n)=>i.emit(e,t,n),load(n){let r=o.get(n);if(!r){let i=c.get(n);if(!i&&!s.has(n))return Promise.reject(Error(`the ${n} plugin is not on this page`));r=(i?i():e.loadPlugin(n,t.get())).then(e=>(e.setup?.(l),e)),r.catch(()=>o.delete(n)),o.set(n,r)}return r}},u=e=>{let t=new Set(e);for(let[e,r]of Object.entries(V))t.has(r)&&!n.has(e)&&n.register(e,async(t,n)=>{let i=(await l.load(r)).renderers?.[e];return i?i(t,n):{error:`no ${e} renderer in the ${r} plugin`}})};u(s),t.subscribe(e=>{i.emit(`config`,{theme:e.theme,resolvedTheme:e.resolvedTheme,locale:e.locale})});let d={version:e.version,mode:e.mode,versions:Object.freeze({...e.versions}),importMap:e.importMap??null,get config(){return t.get()},configure:e=>t.configure(e),blocks:{register:(e,t)=>n.register(e,t),unregister:e=>n.unregister(e),has:e=>n.has(e),list:()=>n.languages()},on:i.on,once:i.once,off:i.off,emit:i.emit,renderBlocks:(e=document.body,t)=>R(e,n,t),unrenderBlocks:(e=document.body)=>z(e),preload:async(...e)=>{await Promise.all(e.map(e=>l.load(e)))},plugins:()=>[...s],extend(e){let t=[];for(let[n,r]of Object.entries(e))r&&!s.has(n)&&(c.set(n,typeof r==`function`?r:()=>Promise.resolve(r)),s.add(n),t.push(n));return t.length>0&&(A(l,s),u(t)),t},host:l};return A(l,s),d}function U(e){let t={...globalThis.DskEmbedConfig??{}};if(e){let n=e.getAttribute(`data-theme`),r=e.getAttribute(`data-locale`),i=e.getAttribute(`data-cdn-base`);n&&(t.theme=n),r&&(t.locale=r),i&&(t.cdnBase=i)}return t}function W(e,t){if(!t||!t.hasAttribute(`data-render-blocks`))return;let n=t.getAttribute(`data-render-blocks`)||`body`,r=()=>{for(let t of Array.from(document.querySelectorAll(n)))e.renderBlocks(t)};document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,r,{once:!0}):r()}var G={vue:[`vue`,`dist/vue.runtime.esm-browser.prod.js`],"@dskripchenko/ui":[`@dskripchenko/ui`,`dist/index.mjs`],"@dskripchenko/ui/hls":[`@dskripchenko/ui`,`dist/hls/index.mjs`],"@dskripchenko/wysiwyg":[`@dskripchenko/wysiwyg`,`dist/index.mjs`],"@dskripchenko/diagrams":[`@dskripchenko/diagrams`,`dist/index.mjs`],"@dskripchenko/openapi":[`@dskripchenko/openapi`,`dist/index.mjs`],"@dskripchenko/openapi/vue":[`@dskripchenko/openapi`,`dist/vue.mjs`],"@dskripchenko/flow":[`@dskripchenko/flow`,`dist/index.mjs`],"@dskripchenko/flow/vue":[`@dskripchenko/flow`,`dist/vue.mjs`],"@dskripchenko/flow/mermaid":[`@dskripchenko/flow`,`dist/mermaid.mjs`],"@dskripchenko/board":[`@dskripchenko/board`,`dist/index.mjs`],"@dskripchenko/board/vue":[`@dskripchenko/board`,`dist/vue.mjs`],"@dskripchenko/bpmn":[`@dskripchenko/bpmn`,`dist/index.mjs`],"@dskripchenko/bpmn/vue":[`@dskripchenko/bpmn`,`dist/vue.mjs`],"@dskripchenko/drawio":[`@dskripchenko/drawio`,`dist/index.mjs`]},K={tokens:[`@dskripchenko/ui`,`dist/styles/tokens.css`],themes:[`@dskripchenko/ui`,`dist/styles/themes.css`],kit:[`@dskripchenko/ui`,`dist/styles/index.css`],openapi:[`@dskripchenko/openapi`,`dist/style.css`],flow:[`@dskripchenko/flow`,`dist/style.css`],board:[`@dskripchenko/board`,`dist/style.css`],bpmn:[`@dskripchenko/bpmn`,`dist/style.css`],editor:[`@dskripchenko/wysiwyg`,`dist/style.css`]};function q(e,t,n,r){return`${e}${t}@${n}/${r}`}function ie(e,t){let n={};for(let[r,[i,a]]of Object.entries(G)){let o=t[i];if(!o)throw Error(`no version pinned for ${i}`);n[r]=q(e,i,o,a)}return{imports:n}}function J(e,t,n){let[r,i]=K[n];return q(e,r,t[r],i)}function Y(e=document){let t={};for(let n of Array.from(e.querySelectorAll(`script[type="importmap"]`)))try{let e=JSON.parse(n.textContent??`{}`);for(let[n,r]of Object.entries(e.imports??{}))n in t||(t[n]=r)}catch{}return{imports:t}}function ae(e,t=document){let n=Y(t),r={},i=[],a={};for(let[t,o]of Object.entries(e.imports)){let e=n.imports[t];e===void 0?(r[t]=o,a[t]=o):(a[t]=e,e!==o&&i.push({specifier:t,page:e,embed:o}))}let o=Object.keys(r);if(o.length>0){let e=t.createElement(`script`);e.type=`importmap`,e.setAttribute(`data-dsk-embed`,``),e.textContent=JSON.stringify({imports:r},null,2);let n=t.querySelector(`script[type="module"]`),i=n&&n.parentNode?n:null;i?i.parentNode.insertBefore(e,i):(t.head??t.documentElement).appendChild(e)}return{map:{imports:a},added:o,conflicts:i}}var oe={diagram:[`tokens`,`themes`],media:[`tokens`,`themes`,`kit`],markdown:[`tokens`,`themes`,`kit`],openapi:[`tokens`,`themes`,`kit`,`openapi`],flow:[`tokens`,`themes`,`kit`,`flow`],editor:[`tokens`,`themes`,`kit`,`editor`],board:[`tokens`,`themes`,`kit`,`board`],bpmn:[`tokens`,`themes`,`kit`,`bpmn`],drawio:[`tokens`,`themes`],kanban:[`tokens`,`themes`,`kit`],calendar:[`tokens`,`themes`,`kit`]},X=new Map;function se(e){return e.head.querySelector(`link[rel="stylesheet"]:not([data-dsk-embed]), style:not([data-dsk-embed])`)}function ce(e){let t=e.head.querySelectorAll(`link[data-dsk-embed], style[data-dsk-embed]`);return t.length>0?t[t.length-1]:null}function Z(e,t){let n=ce(e);if(n)n.after(t);else{let n=se(e);n?n.before(t):e.head.appendChild(t)}}function le(e,t=document){let n=X.get(e);if(n)return n;if(Array.from(t.querySelectorAll(`link[rel="stylesheet"]`)).find(t=>t.href===e))return X.set(e,Promise.resolve()),X.get(e);let r=t.createElement(`link`);r.rel=`stylesheet`,r.href=e,r.setAttribute(`data-dsk-embed`,``);let i=new Promise(t=>{r.addEventListener(`load`,()=>t(),{once:!0}),r.addEventListener(`error`,()=>{console.error(`[dsk-embed] stylesheet failed to load: ${e}`),t()},{once:!0})});return Z(t,r),X.set(e,i),i}function ue(e,t,n=document){if(n.querySelector(`style[data-dsk-embed="${e}"]`))return;let r=n.createElement(`style`);r.setAttribute(`data-dsk-embed`,e),r.textContent=t,Z(n,r)}var Q=`:root:not([data-theme]) { --uid-surface-base: var(--uid-color-zinc-50); --uid-surface-raised: var(--uid-color-white); --uid-surface-overlay: var(--uid-color-white); --uid-text-primary: var(--uid-color-zinc-900); --uid-text-secondary: var(--uid-color-zinc-500); --uid-text-tertiary: var(--uid-color-zinc-400); --uid-text-on-accent: var(--uid-color-white); --uid-border-subtle: var(--uid-color-zinc-200); --uid-border-default: var(--uid-color-zinc-300); --uid-border-hover: var(--uid-color-zinc-400); --uid-accent: var(--uid-color-teal-500); --uid-accent-hover: var(--uid-color-teal-600); --uid-accent-subtle: var(--uid-color-teal-50); --uid-accent-text: var(--uid-color-teal-700); --uid-danger: var(--uid-color-rose-600); --uid-danger-hover: var(--uid-color-rose-700); --uid-danger-subtle: var(--uid-color-rose-50); --uid-success: var(--uid-color-emerald-600); --uid-success-subtle: var(--uid-color-emerald-50); --uid-warning: var(--uid-color-amber-600); --uid-warning-subtle: var(--uid-color-amber-50); --uid-info: var(--uid-color-blue-600); --uid-info-subtle: var(--uid-color-blue-50); --uid-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05); --uid-shadow-md: 0 4px 12px rgb(0 0 0 / 0.08); --uid-shadow-lg: 0 8px 24px rgb(0 0 0 / 0.12); --uid-shadow-xl: 0 20px 60px rgb(0 0 0 / 0.3); }
|
|
6
|
+
:where([data-dsk]){min-width:0;display:block;position:relative}:where([data-dsk]):not([data-dsk-state]){visibility:hidden;min-height:2rem;overflow:hidden}:where(.dsk-root){min-width:0;display:block}:where([data-dsk-state=loading],.dsk-block[data-dsk-state=loading]){border-radius:var(--uid-radius-md,8px);background:var(--uid-color-bg-subtle,#7f7f7f14);animation:1.4s ease-in-out infinite dsk-pulse}:where(dsk-video[data-dsk-state=loading]){aspect-ratio:16/9}:where(dsk-audio[data-dsk-state=loading]){min-height:72px}:where(dsk-diagram[data-dsk-state=loading],dsk-markdown[data-dsk-state=loading]){min-height:120px}:where(dsk-openapi[data-dsk-state=loading],dsk-asyncapi[data-dsk-state=loading],dsk-editor[data-dsk-state=loading]){min-height:240px}:where(dsk-bpmn[data-dsk-state=loading],dsk-dmn[data-dsk-state=loading]){min-height:480px}:where(dsk-drawio[data-dsk-state=loading]){min-height:160px}:where(.dsk-block[data-dsk-state=loading]){min-height:96px}@keyframes dsk-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){:where([data-dsk-state=loading],.dsk-block[data-dsk-state=loading]){animation:none}}:where(.dsk-error){padding:var(--uid-space-sm,8px) var(--uid-space-md,12px);border:1px solid var(--uid-danger,#dc2626);border-radius:var(--uid-radius-md,8px);color:var(--uid-danger,#dc2626);background:var(--uid-danger-subtle,#dc262614);font:13px/1.45 var(--uid-font-family-mono,ui-monospace, monospace);white-space:pre-wrap;overflow-wrap:anywhere}:where([data-dsk],.dsk-block,[class^=uid-],[class*=\\ uid-]),:where([data-dsk],.dsk-block,[class^=uid-],[class*=\\ uid-]) *,:where([data-dsk],.dsk-block,[class^=uid-],[class*=\\ uid-]) :before,:where([data-dsk],.dsk-block,[class^=uid-],[class*=\\ uid-]) :after{box-sizing:border-box}:where([data-dsk]:not(dsk-diagram,dsk-board,dsk-markdown),.dsk-block,[class^=uid-],[class*=\\ uid-]) :where(button,input,textarea,select){font:inherit}:where([data-dsk],.dsk-block,body>[class^=uid-],body>[class*=\\ uid-]){font-family:var(--uid-font-family-sans);line-height:var(--uid-line-height-normal);color:var(--uid-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(body>[class^=uid-],body>[class*=\\ uid-]){font-size:var(--uid-font-size-md)}:where([class^=uid-],[class*=\\ uid-]):focus-visible{outline:2px solid var(--uid-color-focus-ring);outline-offset:2px}:root{--dg-font-family:var(--uid-font-family-sans);--dg-text:var(--uid-text-primary);--dg-text-muted:var(--uid-text-secondary);--dg-line:var(--uid-text-tertiary);--dg-node-fill:var(--uid-accent-subtle);--dg-node-stroke:var(--uid-accent);--dg-node-text:var(--uid-text-primary);--dg-cluster-fill:var(--uid-color-bg-subtle);--dg-cluster-stroke:var(--uid-border-default);--dg-cluster-text:var(--uid-text-secondary);--dg-edge-label-fill:var(--uid-surface-raised);--dg-note-fill:var(--uid-warning-subtle);--dg-note-stroke:var(--uid-warning);--dg-note-text:var(--uid-text-primary);--dg-actor-fill:var(--uid-accent-subtle);--dg-actor-stroke:var(--uid-accent);--dg-activation-fill:var(--uid-accent-subtle);--dg-lifeline:var(--uid-border-default);--dg-block-stroke:var(--uid-border-hover);--dg-block-label-fill:var(--uid-color-bg-subtle);--dg-grid:var(--uid-border-subtle);--dg-task-fill:var(--uid-accent);--dg-task-stroke:var(--uid-accent-hover);--dg-task-active-fill:var(--uid-accent-subtle);--dg-task-done-fill:var(--uid-border-default);--dg-task-done-stroke:var(--uid-border-hover);--dg-task-crit-fill:var(--uid-danger);--dg-task-crit-stroke:var(--uid-danger-hover);--dg-task-text:var(--uid-text-on-accent);--dg-task-text-dark:var(--uid-text-primary);--dg-today:var(--uid-danger);--dg-state-start:var(--uid-text-primary);--dg-pie-stroke:var(--uid-surface-raised);--dg-row-fill:var(--uid-surface-raised);--dg-row-alt-fill:var(--uid-color-bg-subtle);--dg-c4-boundary-stroke:var(--uid-text-secondary);--dg-c4-boundary-text:var(--uid-text-primary);--dg-c4-node-stroke:var(--uid-text-secondary);--dg-c4-node-text:var(--uid-text-primary)}:root[data-theme=dark]{--dg-c4-person-fill:#1f5c99;--dg-c4-person-stroke:#6aa5e0;--dg-c4-system-fill:#1f6fbf;--dg-c4-system-stroke:#7bb4ee;--dg-c4-container-fill:#3b7fc0;--dg-c4-container-stroke:#93c5fd;--dg-c4-component-stroke:#bfdbfe;--dg-c4-external-fill:#5f6670;--dg-c4-external-stroke:#9ca3af}:where(.dsk-diagram){overflow-x:auto}:where(.dsk-diagram) svg{max-width:100%;height:auto;margin-inline:auto;display:block}:where(.dsk-block){margin:var(--uid-space-md,12px) 0;min-width:0}:where(.dsk-block:has(>svg,>.dsk-dmn-block)){overflow-x:auto}:where(.dsk-block,.dsk-dmn-block)>svg{max-width:100%;height:auto;margin-inline:auto;display:block}:where(.dsk-flow-frame,.dsk-board-frame,.dsk-bpmn-frame){border:1px solid var(--uid-border-subtle);border-radius:var(--uid-radius-md);background:var(--uid-surface-raised);position:relative;overflow:hidden}:where(.dsk-media){min-width:0}`;function de(e,t){return e.replace(/(@dskripchenko\/embed)@[^/]+\//,`$1@${t}/`).replace(/[?#].*$/,``).replace(/[^/]*$/,``)}function fe(e){let t=/^(.*\/)@dskripchenko\/embed@[^/]+\//.exec(e);return t?t[1]:null}var $=`1.5.1`,pe={vue:`3.5.44`,"@dskripchenko/ui":`1.18.1`,"@dskripchenko/wysiwyg":`0.5.3`,"@dskripchenko/diagrams":`1.3.0`,"@dskripchenko/openapi":`1.2.0`,"@dskripchenko/flow":`1.2.0`,"@dskripchenko/board":`0.3.0`,"@dskripchenko/bpmn":`0.4.0`,"@dskripchenko/drawio":`0.1.0`};function me(){return document.currentScript instanceof HTMLScriptElement?document.currentScript:Array.from(document.querySelectorAll(`script[src]`)).reverse().find(e=>/\/embed(\.min)?\.js(\?|#|$)/.test(e.src))??null}function he(){if(window.DskEmbed){console.warn(`[dsk-embed] already loaded (${window.DskEmbed.mode} ${window.DskEmbed.version}); this copy is ignored`);return}let e=me();e||console.warn(`[dsk-embed] cannot find its own <script>; assuming the default CDN`),e?.type===`module`&&console.warn(`[dsk-embed] embed.js runs best as a classic <script>: from a module the import map may come too late in browsers without multiple import maps`);let t=e?.src??`https://cdn.jsdelivr.net/npm/@dskripchenko/embed@${$}/dist/embed.js`,r=U(e),i=de(t,$),a=n(r.cdnBase??fe(t)??`https://cdn.jsdelivr.net/npm/`),o={...pe,...r.versions??{}},{map:s,conflicts:c}=ae(ie(a,o));for(let e of c)console.warn(`[dsk-embed] the page maps "${e.specifier}" to ${e.page}; the embed was built against ${e.embed}. A second copy of Vue or the kit breaks the elements — map both to the same file.`);ue(`base`,Q);let l=H({mode:`loader`,version:$,versions:o,importMap:s,config:{...r,cdnBase:a,versions:o},async loadPlugin(e){let t=oe[e].map(e=>le(J(a,o,e))),n=import(`${i}plugins/${e}.js`),[r]=await Promise.all([n,...t]);return r}});window.DskEmbed=l,W(l,e),document.dispatchEvent(new CustomEvent(`dsk:embed-ready`,{detail:{version:$,mode:`loader`}}))}he()})();
|
package/dist/importmap.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"imports": {
|
|
3
3
|
"vue": "https://cdn.jsdelivr.net/npm/vue@3.5.44/dist/vue.runtime.esm-browser.prod.js",
|
|
4
|
-
"@dskripchenko/ui": "https://cdn.jsdelivr.net/npm/@dskripchenko/ui@1.
|
|
5
|
-
"@dskripchenko/ui/hls": "https://cdn.jsdelivr.net/npm/@dskripchenko/ui@1.
|
|
4
|
+
"@dskripchenko/ui": "https://cdn.jsdelivr.net/npm/@dskripchenko/ui@1.18.1/dist/index.mjs",
|
|
5
|
+
"@dskripchenko/ui/hls": "https://cdn.jsdelivr.net/npm/@dskripchenko/ui@1.18.1/dist/hls/index.mjs",
|
|
6
6
|
"@dskripchenko/wysiwyg": "https://cdn.jsdelivr.net/npm/@dskripchenko/wysiwyg@0.5.3/dist/index.mjs",
|
|
7
7
|
"@dskripchenko/diagrams": "https://cdn.jsdelivr.net/npm/@dskripchenko/diagrams@1.3.0/dist/index.mjs",
|
|
8
8
|
"@dskripchenko/openapi": "https://cdn.jsdelivr.net/npm/@dskripchenko/openapi@1.2.0/dist/index.mjs",
|
package/dist/plugins/board.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"../chunks/attrs-
|
|
1
|
+
import{n as e}from"../chunks/attrs-CixZXnV_.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,t as c}from"../chunks/runtime-C8zlTt5D.js";import{t as l}from"../chunks/fullscreen-BS7BdaY4.js";import{h as u,shallowRef as d}from"vue";import{httpProvider as f,parseBoard as p}from"@dskripchenko/board";import{BoardEditor as m}from"@dskripchenko/board/vue";function h(e){n(e)}function g(){return{version:1,objects:{}}}function _(n){let i=r(),o=d(null),h=d(null),_=null,v=``,y=null,b=``;function x(){let e=n.props().name;typeof e==`string`&&e!==``&&(y||(y=document.createElement(`input`),y.type=`hidden`,n.el.appendChild(y)),y.name=e,y.value=o.value?JSON.stringify(o.value):``)}function S(e,t){let n=typeof t==`number`&&t>0?Math.max(250,t):0,r=`${e}|${n}`;return _&&v===r||(_?.close?.(),_=f(n?{base:e,wait:0,interval:n}:{base:e}),v=r),_}async function C(){let e=n.props();if(typeof e.boardUrl==`string`&&e.boardUrl!==``){h.value=null;return}let t=e.board===void 0?typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${n.source()}`:`object`;if(t!==b||t===`object`){b=t;try{let t=e.board===void 0?typeof e.src==`string`&&e.src!==``?await a(e.src):n.source().trim()||g():e.board;o.value=p(t),h.value=null,x(),n.emit(`load`,{objects:Object.keys(o.value.objects).length})}catch(e){h.value=c(e),n.emit(`error`,{message:h.value})}}}let w=t(n,t=>{let r=t.props;if(h.value)return u(`div`,{class:`dsk-error`,role:`alert`},h.value);let a=typeof r.boardUrl==`string`&&r.boardUrl!==``,c=`var(--dsk-board-height, ${e(r.height,`560px`)})`;if(!a&&!o.value)return u(`div`,{class:`dsk-board-frame`,style:{height:c}});let l=typeof r.userName==`string`&&r.userName!==``?{id:typeof r.userId==`string`?r.userId:void 0,name:r.userName,color:typeof r.userColor==`string`?r.userColor:void 0}:null;return u(`div`,{class:`dsk-board-frame`,style:{height:c}},[s(m,{ref:i.set,locale:t.locale,readonly:a?r.readonly===!0:r.editable!==!0,minimap:r.minimap!==!1,...r.labels&&typeof r.labels==`object`?{labels:r.labels}:{},...a?{provider:r.provider&&typeof r.provider==`object`?r.provider:S(r.boardUrl,r.pollInterval),user:l}:{modelValue:o.value},style:{height:`100%`},"onUpdate:modelValue":e=>{o.value=e,x()},onChange:e=>n.emit(`change`,{board:e.board,ops:e.ops,origin:e.origin}),onSelection:e=>n.emit(`select`,{ids:e})})])});C();let T=e=>(...t)=>{let n=i.ref.value?.[e];if(typeof n!=`function`)throw Error(`${String(e)}() is not available here`);return n(...t)},E=l(n,()=>i.ref.value?.fit?.());return{update(){w.refresh(),C()},destroy(){E?.destroy(),w.unmount(),_?.close?.(),y?.remove()},api:{fit:T(`fit`),enterFullscreen:()=>E?.enter(),exitFullscreen:()=>E?.exit(),get fullscreen(){return E?.active??!1},select:T(`select`),toPng:T(`toPng`),toSvg:T(`toSvg`),undo:()=>i.ref.value?.doc?.undo(),redo:()=>i.ref.value?.doc?.redo(),get value(){return o.value}}}}var v={async board(e){let t;try{t=p(e.trim()||g())}catch(e){return{error:c(e)}}return{mount(e){e.classList.add(`dsk-board-frame`),e.style.height=`420px`;let n=d(t),r=o(e,()=>s(m,{modelValue:n.value,readonly:!0,minimap:!1,locale:i.locale,style:{height:`100%`}}));return{update(e){try{n.value=p(e)}catch{}},destroy:()=>r.unmount()}}}}};export{_ as mountElement,v as renderers,h as setup};
|
package/dist/plugins/bpmn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"../chunks/attrs-
|
|
1
|
+
import{n as e}from"../chunks/attrs-CixZXnV_.js";import{a as t,c as n,i as r,n as i,r as a,t as o}from"../chunks/runtime-C8zlTt5D.js";import{t as s}from"../chunks/fullscreen-BS7BdaY4.js";import{h as c,shallowRef as l}from"vue";import{BpmnError as u,parseDmn as d,render as f,renderDecision as p,renderDmn as m}from"@dskripchenko/bpmn";import{BpmnEditor as h,BpmnView as g,DmnEditor as _,DmnView as v}from"@dskripchenko/bpmn/vue";function y(e){n(e)}var b=0;function x(e){if(e instanceof u){let t=e.line>0?` (line ${e.line}${e.column>0?`, column ${e.column}`:``})`:``;return`${e.message}${t}${e.hint?`. ${e.hint}`:``}`}return o(e)}function S(n){let o=n.tag===`dsk-dmn`,u=r(),d=l(null),p=l(null),y=null,b=``;function S(){let e=n.props().name;typeof e==`string`&&e!==``&&(y||(y=document.createElement(`input`),y.type=`hidden`,n.el.appendChild(y)),y.name=e,y.value=d.value??``)}async function C(){let e=n.props(),t=typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${n.source()}`;if(t!==b){b=t;try{let t=typeof e.src==`string`&&e.src!==``?await i(e.src):n.source().trim();d.value=t===``?null:t,p.value=null,S(),n.emit(`load`,{})}catch(e){p.value=x(e),n.emit(`error`,{message:p.value})}}}let w=e=>n.emit(`error`,{message:x(e)}),T=t(n,t=>{let r=t.props;if(p.value)return c(`div`,{class:`dsk-error`,role:`alert`},p.value);let i=`var(--dsk-${o?`dmn`:`bpmn`}-height, ${e(r.height,r.editable?`600px`:`480px`)})`,s=Array.isArray(r.highlight)?r.highlight:[],l={ref:u.set,locale:t.locale,style:{height:`100%`},onError:w},f;return f=r.editable?a(o?_:h,{...l,modelValue:d.value,...o?{decision:typeof r.decision==`string`?r.decision:void 0}:{properties:r.properties===!0,diagram:typeof r.diagram==`string`?r.diagram:void 0},...r.labels&&typeof r.labels==`object`?{labels:r.labels}:{},"onUpdate:modelValue":e=>{d.value=e,S()},onChange:e=>n.emit(`change`,{xml:e}),onSelect:e=>n.emit(`select`,{ids:e}),onElementClick:e=>n.emit(`element`,{id:e}),...o?{onOpen:e=>n.emit(`open`,{decision:e})}:{}}):a(o?v:g,{...l,xml:d.value,highlight:s,...o?{decision:typeof r.decision==`string`?r.decision:void 0}:{diagram:typeof r.diagram==`string`?r.diagram:void 0},...r.labels&&typeof r.labels==`object`?{labels:r.labels}:{},onElementClick:e=>n.emit(`element`,{id:e}),...o?{onOpen:e=>n.emit(`open`,{decision:e})}:{}}),c(`div`,{class:`dsk-bpmn-frame`,style:{height:i}},[f])});C();let E=e=>(...t)=>{let n=u.ref.value?.[e];if(typeof n!=`function`)throw Error(`${String(e)}() is not available here`);return n(...t)},D=s(n,()=>u.ref.value?.fit?.());return{update(){T.refresh(),C()},destroy(){D?.destroy(),T.unmount(),y?.remove()},api:{fit:E(`fit`),undo:E(`undo`),redo:E(`redo`),toSvg:()=>d.value?o?m(d.value).svg:f(d.value).svg:``,open:e=>{let t=u.ref.value;t&&`opened`in t&&(t.opened=e)},enterFullscreen:()=>D?.enter(),exitFullscreen:()=>D?.exit(),get fullscreen(){return D?.active??!1},get value(){return d.value}}}}var C={bpmn(e){try{return{html:f(e,{idPrefix:`dsk-bp-${++b}`}).svg}}catch(e){return{error:x(e)}}},dmn(e){try{let t=d(e),n=`dsk-dm-${++b}`,r=[m(t,{idPrefix:n}).svg];for(let e of t.decisions)e.logic&&e.logic.kind!==`other`&&r.push(p(t,e.id,{idPrefix:n}).html);return{html:`<div class="dsk-dmn-block">${r.join(``)}</div>`}}catch(e){return{error:x(e)}}}};export{S as mountElement,C as renderers,y as setup};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{a as e,c as t,l as n,n as r,o as i,r as a,t as o}from"../chunks/runtime-C8zlTt5D.js";import{t as s}from"../chunks/styles-BjwKH-N8.js";import{a as c,c as l,s as u}from"../chunks/markup-D3F-rpOq.js";import{computed as d,defineComponent as f,h as p,reactive as m,ref as h,shallowRef as g,watch as _}from"vue";import{UidButton as v,UidCalendar as ee,UidDatePicker as y,UidDrawer as te,UidInput as b,UidMarkdown as ne,UidNumberInput as x,UidSelect as S,UidSwitch as C,UidTag as re,UidTagsInput as w,UidTextarea as T,UidTimePicker as E}from"@dskripchenko/ui";var D=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],O={mon:0,tue:1,wed:2,thu:3,fri:4,sat:5,sun:6,monday:0,tuesday:1,wednesday:2,thursday:3,friday:4,saturday:5,sunday:6,пн:0,вт:1,ср:2,чт:3,пт:4,сб:5,вс:6},k=[`MO`,`TU`,`WE`,`TH`,`FR`,`SA`,`SU`],A={first:1,"1st":1,second:2,"2nd":2,third:3,"3rd":3,fourth:4,"4th":4,last:-1},j={1:`1st`,2:`2nd`,3:`3rd`,4:`4th`,[-1]:`last`},M=/^\d{4}-\d{2}-\d{2}$/,N=/^([01]?\d|2[0-3]):[0-5]\d$/;function P(e){let t=[];for(let n of e.toLowerCase().split(`,`)){let e=O[n.trim()];if(e===void 0)return null;t.push(e)}return t}function F(e){return String(e).padStart(2,`0`)}function I(e){let[t,n]=e.split(`:`);return`${F(Number(t))}:${n}`}function L(e,t=1){return{freq:e,interval:t,byDay:[],byMonthDay:[],byMonth:[],from:null,until:null,count:null,except:[]}}function ie(e){let t=1,n=1;/^\d+$/.test(e[t]??``)&&(n=Math.max(1,Number(e[t++])));let r=(e[t]??``).toLowerCase(),i=P(r);if(i){let e=L(`weekly`,n);return e.byDay=i.map(e=>({day:e})),{rule:e,used:t+1}}if(/^days?$/.test(r))return{rule:L(`daily`,n),used:t+1};if(/^weeks?$/.test(r)){let r=L(`weekly`,n),i=P(e[t+1]??``);return i?(r.byDay=i.map(e=>({day:e})),{rule:r,used:t+2}):{rule:r,used:t+1}}if(/^months?$/.test(r)){let r=L(`monthly`,n),i=(e[t+1]??``).toLowerCase(),a=A[i],o=P(e[t+2]??``);return a!==void 0&&o&&o.length===1?(r.byDay=[{day:o[0],nth:a}],{rule:r,used:t+3}):i===`last`?(r.byMonthDay=[-1],{rule:r,used:t+2}):/^\d{1,2}(,\d{1,2})*$/.test(i)?(r.byMonthDay=i.split(`,`).map(Number).filter(e=>e>=1&&e<=31),{rule:r,used:t+2}):{rule:r,used:t+1}}if(/^years?$/.test(r)){let r=L(`yearly`,n),i=/^(\d{2})-(\d{2})$/.exec(e[t+1]??``);return i?(r.byMonth=[Number(i[1])],r.byMonthDay=[Number(i[2])],{rule:r,used:t+2}):{rule:r,used:t+1}}return null}function ae(e){let t=Object.fromEntries(e.replace(/^RRULE:/i,``).split(`;`).map(e=>e.split(`=`).map(e=>e.trim().toUpperCase()))),n={DAILY:`daily`,WEEKLY:`weekly`,MONTHLY:`monthly`,YEARLY:`yearly`}[t.FREQ??``];if(!n)return null;let r=L(n,Math.max(1,Number(t.INTERVAL??1)||1));if(t.BYDAY)for(let e of t.BYDAY.split(`,`)){let t=/^([+-]?\d)?(MO|TU|WE|TH|FR|SA|SU)$/.exec(e.trim());t&&r.byDay.push({day:k.indexOf(t[2]),...t[1]?{nth:Number(t[1])}:{}})}if(t.BYMONTHDAY&&(r.byMonthDay=t.BYMONTHDAY.split(`,`).map(e=>Number(e.trim())).filter(e=>e!==0&&Math.abs(e)<=31)),t.BYMONTH&&(r.byMonth=t.BYMONTH.split(`,`).map(e=>Number(e.trim())).filter(e=>e>=1&&e<=12)),t.COUNT&&(r.count=Math.max(1,Number(t.COUNT)||1)),t.UNTIL){let e=/^(\d{4})(\d{2})(\d{2})/.exec(t.UNTIL);e&&(r.until=`${e[1]}-${e[2]}-${e[3]}`)}return r}var oe=/(^|\s)#([\p{L}\p{N}_-]+)/gu;function R(e){let t=e.split(/\r?\n/),n={title:null,settings:/* @__PURE__ */ new Map,tagTones:{},items:[],problems:[]},r=!1,i=!1;for(let e=0;e<t.length;e++){let a=t[e].trim();if(r){a.includes(`-->`)&&(r=!1);continue}if(a.startsWith(`<!--`)){a.includes(`-->`)||(r=!0);continue}if(a===``)continue;let o=/^#\s+(.*)$/.exec(a);if(o&&!i&&n.title===null){n.title=o[1].trim();continue}let s=/^([A-Za-z][\w-]*)\s*:\s*(.*)$/.exec(a);if(s&&!i){n.settings.set(s[1],s[2].trim());continue}let c=se(a,e,`ev-${n.items.length}`);typeof c==`string`?n.problems.push({line:e+1,message:c}):(i=!0,n.items.push(c))}for(let e of(n.settings.get(`tags`)??``).split(`,`)){let[t,r]=e.split(`=`).map(e=>e.trim());t&&r&&(n.tagTones[t]=r)}return n}function se(e,t=0,n=`ev`){let r=e.split(/\s+/),i,a=null,o=null,s=null;if(r[0].toLowerCase()===`every`){let e=ie(r);if(!e)return`Not a repeat: every day | mon,wed | 2 weeks fri | month 15 | month last fri | year 12-31`;s=e.rule,i=e.used}else{let e=/^(\d{4}-\d{2}-\d{2})(?:\.\.(\d{4}-\d{2}-\d{2}))?$/.exec(r[0]);if(!e)return`An event starts with a date (2026-11-03), a range (2026-11-10..2026-11-14) or "every"`;if(a=e[1],e[2]){if(e[2]<e[1])return`The range ends before it starts`;o=e[2]}i=1}let l=null,u=null,d=/^(\d{1,2}:\d{2})(?:-(\d{1,2}:\d{2}))?$/.exec(r[i]??``);if(d){if(!N.test(d[1])||d[2]&&!N.test(d[2]))return`A time is HH:MM, 00:00…23:59`;l=I(d[1]),u=d[2]?I(d[2]):null,i++}let{text:f,props:p}=c(r.slice(i).join(` `)),m=[],h=f.replace(oe,(e,t,n)=>(m.push(n),t)).replace(/\s{2,}/g,` `).trim();if(h===``)return`An event needs a title`;if(p.has(`rrule`)){let e=ae(p.get(`rrule`)??``);if(!e)return`Not an RRULE: FREQ=DAILY|WEEKLY|MONTHLY|YEARLY;…`;s=e,a&&!p.has(`from`)&&(s.from=a)}if(s){let e=p.get(`from`)??null,t=p.get(`until`)??null;if(e&&!M.test(e))return`"from" is a date: 2026-11-02`;if(t&&!M.test(t))return`"until" is a date: 2026-12-28`;if(s.from=e??s.from,s.until=t??s.until,p.has(`count`)&&(s.count=Math.max(1,Number(p.get(`count`))||1)),s.except=(p.get(`except`)??``).split(`,`).map(e=>e.trim()).filter(e=>M.test(e)),s.count!==null&&!s.from)return`A repeat with "count" needs "from"`}return{id:n,line:t,title:h,tags:m,props:p,date:a,endDate:o,time:l,endTime:u,rule:s}}function z(e){let[t,n,r]=e.split(`-`).map(Number);return new Date(Date.UTC(t,n-1,r))}function ce(e){return`${e.getUTCFullYear()}-${F(e.getUTCMonth()+1)}-${F(e.getUTCDate())}`}function B(e,t){let n=z(e);return n.setUTCDate(n.getUTCDate()+t),ce(n)}function V(e){return(z(e).getUTCDay()+6)%7}function le(e,t){return new Date(Date.UTC(e,t,0)).getUTCDate()}function H(e,t){return Math.round((z(t).getTime()-z(e).getTime())/864e5)}function U(e,t,n,r){let i=le(t,n),a=/* @__PURE__ */ new Set;for(let t of e.byMonthDay){let e=t<0?i+1+t:t;e>=1&&e<=i&&a.add(e)}for(let r of e.byDay){let e=[];for(let a=1;a<=i;a++)V(`${t}-${F(n)}-${F(a)}`)===r.day&&e.push(a);if(r.nth===void 0)e.forEach(e=>a.add(e));else{let t=r.nth>0?e[r.nth-1]:e[e.length+r.nth];t!==void 0&&a.add(t)}}return e.byMonthDay.length===0&&e.byDay.length===0&&r<=i&&a.add(r),[...a].sort((e,t)=>e-t).map(e=>`${t}-${F(n)}-${F(e)}`)}var ue=`2000-01-03`;function de(e,t,n,r=2e3){let i=e.from??ue,a=e.until&&e.until<n?e.until:n,o=new Set(e.except),s=[],c=0,l=n=>n<i?!0:n>a||(c++,e.count!==null&&c>e.count)?!1:(n>=t&&!o.has(n)&&s.push(n),s.length<r),u=e.count===null,[d,f,p]=i.split(`-`).map(Number);if(e.freq===`daily`){let n=u?Math.max(0,Math.floor(H(i,t)/e.interval)):0;for(;l(B(i,n*e.interval));n++);}else if(e.freq===`weekly`){let n=e.byDay.length?[...new Set(e.byDay.map(e=>e.day))].sort():[V(i)],r=B(i,-V(i)),o=u?Math.max(0,Math.floor(H(r,t)/7/e.interval)):0;outer:for(;;o++){let t=B(r,o*7*e.interval);if(t>a)break;for(let e of n)if(!l(B(t,e)))break outer}}else if(e.freq===`monthly`){let[n,r]=t.split(`-`).map(Number),i=u?Math.max(0,Math.floor(((n-d)*12+(r-f))/e.interval)):0;outer:for(;;i++){let t=f-1+i*e.interval,n=d+Math.floor(t/12),r=t%12+1;if(`${n}-${F(r)}-01`>a)break;for(let t of U(e,n,r,p))if(!l(t))break outer}}else{let n=Number(t.slice(0,4)),r=u?Math.max(0,Math.floor((n-d)/e.interval)):0,i=e.byMonth.length?e.byMonth:[f];outer:for(;;r++){let t=d+r*e.interval;if(`${t}-01-01`>a)break;for(let n of i)for(let r of U({...e,byMonthDay:e.byMonthDay.length?e.byMonthDay:e.byDay.length?[]:[p]},t,n,p))if(!l(r))break outer}}return s}function fe(e,t,n){let r=[];for(let i of e.items){let e={...i.time?{time:i.time}:{},...i.endTime?{endTime:i.endTime}:{}};if(i.rule){for(let a of de(i.rule,t,n))r.push({id:`${i.id}@${a}`,item:i,date:a,...e});continue}let a=i.date;(i.endDate??a)<t||a>n||r.push({id:i.id,item:i,date:a,...i.endDate?{endDate:i.endDate}:{},...e})}return r}function W(e){let t=e.interval>1?`${e.interval} `:``,n=e=>e.map(e=>D[e.day]).join(`,`);switch(e.freq){case`daily`:return`every ${t}${e.interval>1?`days`:`day`}`;case`weekly`:return e.interval===1&&e.byDay.length?`every ${n(e.byDay)}`:`every ${t}${e.interval>1?`weeks`:`week`}${e.byDay.length?` ${n(e.byDay)}`:``}`;case`monthly`:{let n=`every ${t}${e.interval>1?`months`:`month`}`;return e.byDay.length===1&&e.byDay[0].nth!==void 0?`${n} ${j[e.byDay[0].nth]} ${D[e.byDay[0].day]}`:e.byMonthDay.length===1&&e.byMonthDay[0]===-1?`${n} last`:e.byMonthDay.length?`${n} ${e.byMonthDay.join(`,`)}`:n}case`yearly`:{let n=`every ${t}${e.interval>1?`years`:`year`}`;return e.byMonth.length===1&&e.byMonthDay.length===1?`${n} ${F(e.byMonth[0])}-${F(e.byMonthDay[0])}`:n}}}function G(e){let t=new Map(e.props??[]);for(let e of[`from`,`until`,`count`,`except`,`rrule`])t.delete(e);let n;e.rule?(n=W(e.rule),e.rule.from&&t.set(`from`,e.rule.from),e.rule.until&&t.set(`until`,e.rule.until),e.rule.count!==null&&t.set(`count`,String(e.rule.count)),e.rule.except.length&&t.set(`except`,e.rule.except.join(`, `))):n=e.date&&e.endDate&&e.endDate>e.date?`${e.date}..${e.endDate}`:e.date??``,e.time&&(n+=` ${e.time}${e.endTime?`-${e.endTime}`:``}`);let r=`${n} ${e.title.trim()}`;for(let t of e.tags??[])r+=` #${t}`;let i=l(t);return i?`${r} ${i}`:r}function K(e,t,n){let r=e.split(/\r?\n/);return n===null?r.splice(t,1):r[t]=n,r.join(`
|
|
2
|
+
`)}function q(e,t){let n=R(e).items.find(e=>e.id===t);if(!n)throw Error(`No event ${t}`);return n}function pe(e,t){let n=e.replace(/\s+$/,``);return`${n}${n?`
|
|
3
|
+
`:``}${G(t)}\n`}function J(e,t,n){return K(e,q(e,t).line,G(n))}function me(e,t){return K(e,q(e,t).line,null)}function Y(e,t,n,r){let i=q(e,t);if(!i.rule)throw Error(`${t} is not a repeat`);let a={...i.rule,except:[.../* @__PURE__ */ new Set([...i.rule.except,n])].sort()},o=e.split(/\r?\n/);return o[i.line]=G({...i,rule:a}),o.splice(i.line+1,0,G({...r,rule:null})),o.join(`
|
|
4
|
+
`)}var he=/* @__PURE__ */ new Set([`where`,`from`,`until`,`count`,`except`,`rrule`]);function X(e){let[t,n,r]=e.split(`-`).map(Number);return(new Date(Date.UTC(t,n-1,r)).getUTCDay()+6)%7}function ge(e){let[t,n]=e.split(`:`).map(Number);return`${String(Math.min(23,t+1)).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`}function _e(e,t){return{itemId:null,occurrence:null,scope:`all`,title:``,allDay:!t,date:e,endDate:null,time:t??`10:00`,endTime:t?ge(t):`11:00`,freq:`none`,interval:1,byDay:[X(e)],monthMode:`day`,monthDay:Number(e.slice(8,10)),nth:Math.min(4,Math.ceil(Number(e.slice(8,10))/7)),nthDay:X(e),ends:`never`,until:null,count:10,except:[],tags:[],where:``,extra:``}}function ve(e,t){let n=e.rule?e.rule.from??t??e.date??``:e.date??``,r=_e(n||t||``,e.time??void 0);r.itemId=e.id,r.occurrence=e.rule?t:null,r.title=e.title,r.allDay=!e.time,r.endTime=e.endTime??(e.time?ge(e.time):r.endTime),r.endDate=e.endDate,r.tags=[...e.tags],r.where=e.props.get(`where`)??``,r.extra=[...e.props].filter(([e])=>!he.has(e)).map(([e,t])=>t===``?e:`${e}: ${t}`).join(`
|
|
5
|
+
`);let i=e.rule;return i&&(r.freq=i.freq,r.interval=i.interval,i.byDay.length&&i.freq===`weekly`&&(r.byDay=i.byDay.map(e=>e.day)),i.freq===`monthly`&&(i.byDay.length===1&&i.byDay[0].nth!==void 0?(r.monthMode=`nth`,r.nth=i.byDay[0].nth,r.nthDay=i.byDay[0].day):i.byMonthDay[0]===-1?r.monthMode=`last`:i.byMonthDay.length&&(r.monthDay=i.byMonthDay[0])),i.freq===`yearly`&&i.byMonth.length&&i.byMonthDay.length&&(r.date=`${(n||`2000`).slice(0,4)}-${String(i.byMonth[0]).padStart(2,`0`)}-${String(i.byMonthDay[0]).padStart(2,`0`)}`),r.ends=i.until?`until`:i.count===null?`never`:`count`,r.until=i.until,r.count=i.count??10,r.except=[...i.except]),r}function ye(e){if(e.freq===`none`)return null;let t={freq:e.freq,interval:Math.max(1,e.interval||1),byDay:[],byMonthDay:[],byMonth:[],from:e.date||null,until:null,count:null,except:[...e.except]};return e.freq===`weekly`&&(t.byDay=[...new Set(e.byDay.length?e.byDay:[X(e.date)])].sort().map(e=>({day:e}))),e.freq===`monthly`&&(e.monthMode===`nth`?t.byDay=[{day:e.nthDay,nth:e.nth}]:t.byMonthDay=[e.monthMode===`last`?-1:e.monthDay]),e.freq===`yearly`&&e.date&&(t.byMonth=[Number(e.date.slice(5,7))],t.byMonthDay=[Number(e.date.slice(8,10))]),e.ends===`until`&&e.until&&(t.until=e.until),e.ends===`count`&&(t.count=Math.max(1,e.count||1)),t}function Z(e,t=!1){let n=/* @__PURE__ */ new Map;e.where.trim()&&n.set(`where`,e.where.trim());for(let t of e.extra.split(`
|
|
6
|
+
`))for(let[e,r]of u(t))n.set(e,r);let r=!e.allDay&&e.time;return{title:e.title,date:t&&e.occurrence?e.occurrence:e.date,endDate:!t&&e.freq===`none`&&e.endDate&&e.endDate>e.date?e.endDate:null,time:r?e.time:null,endTime:r&&e.endTime&&e.endTime>e.time?e.endTime:null,tags:e.tags.map(e=>e.replace(/^#/,``).trim()).filter(Boolean),props:n,rule:t?null:ye(e)}}function be(e,t,n){let r=(e,t,n=``)=>p(`label`,{class:[`dsk-cal__field`,n]},[p(`span`,{class:`dsk-cal__label`},e),t]),i=e.itemId!==null&&e.occurrence!==null,o=!i||e.scope===`all`,s=(e,t,n)=>a(S,{options:t,modelValue:e,"onUpdate:modelValue":n}),c=[];if(i&&c.push(r(t.scope,s(e.scope,[{value:`one`,label:`${t.scopeOne} (${e.occurrence})`},{value:`all`,label:t.scopeAll}],t=>e.scope=t))),c.push(r(t.title,a(b,{modelValue:e.title,required:!0,"onUpdate:modelValue":t=>e.title=t}))),c.push(p(`div`,{class:`dsk-cal__row`},[r(i&&e.scope===`one`||e.freq===`none`?t.date:t.start,a(y,{modelValue:i&&e.scope===`one`?e.occurrence:e.date,"onUpdate:modelValue":t=>{t&&(i&&e.scope===`one`?e.occurrence=t:e.date=t)}})),e.freq===`none`&&o?r(t.endDate,a(y,{modelValue:e.endDate,clearable:!0,"onUpdate:modelValue":t=>e.endDate=t})):null])),c.push(a(C,{label:t.allDay,modelValue:e.allDay,"onUpdate:modelValue":t=>e.allDay=t})),e.allDay||c.push(p(`div`,{class:`dsk-cal__row`},[r(t.start,a(E,{modelValue:e.time,step:15,"onUpdate:modelValue":t=>t&&(e.time=t)})),r(t.end,a(E,{modelValue:e.endTime,step:15,"onUpdate:modelValue":t=>t&&(e.endTime=t)}))])),o&&c.push(p(`fieldset`,{class:`dsk-cal__repeat`},[p(`legend`,{class:`dsk-cal__label`},t.repeat),p(`div`,{class:`dsk-cal__row`},[s(e.freq,[`none`,`daily`,`weekly`,`monthly`,`yearly`].map(e=>({value:e,label:t.freq[e]})),t=>e.freq=t),e.freq===`none`?null:p(`div`,{class:`dsk-cal__interval`},[p(`span`,null,t.every),a(x,{modelValue:e.interval,min:1,max:99,"onUpdate:modelValue":t=>e.interval=t??1}),p(`span`,null,t.units[e.freq])])]),e.freq===`weekly`?p(`div`,{class:`dsk-cal__days`,role:`group`,"aria-label":t.onDays},t.weekdays.map((t,n)=>p(`button`,{type:`button`,class:[`dsk-cal__day`,{"dsk-cal__day--on":e.byDay.includes(n)}],"aria-pressed":e.byDay.includes(n),onClick:()=>e.byDay=e.byDay.includes(n)?e.byDay.filter(e=>e!==n):[...e.byDay,n]},t))):null,e.freq===`monthly`?p(`div`,{class:`dsk-cal__row`},[s(e.monthMode,[`day`,`nth`,`last`].map(e=>({value:e,label:t.monthMode[e]})),t=>e.monthMode=t),e.monthMode===`day`?a(x,{modelValue:e.monthDay,min:1,max:31,"onUpdate:modelValue":t=>e.monthDay=t??1}):null,e.monthMode===`nth`?s(e.nth,[1,2,3,4,-1].map(e=>({value:e,label:t.ordinals[String(e)]})),t=>e.nth=t):null,e.monthMode===`nth`?s(e.nthDay,t.weekdays.map((e,t)=>({value:t,label:e})),t=>e.nthDay=t):null]):null,e.freq===`none`?null:p(`div`,{class:`dsk-cal__row`},[r(t.ends,s(e.ends,[`never`,`until`,`count`].map(e=>({value:e,label:t.endsMode[e]})),t=>e.ends=t)),e.ends===`until`?r(t.endDate,a(y,{modelValue:e.until,"onUpdate:modelValue":t=>e.until=t})):null,e.ends===`count`?r(t.times,a(x,{modelValue:e.count,min:1,max:999,"onUpdate:modelValue":t=>e.count=t??1})):null]),e.freq!==`none`&&e.except.length?p(`div`,{class:`dsk-cal__skipped`},[p(`span`,{class:`dsk-cal__label`},t.skipped),...e.except.map(n=>p(`button`,{type:`button`,class:`dsk-cal__chip`,title:t.delete,onClick:()=>e.except=e.except.filter(e=>e!==n)},`${n} ×`))]):null])),c.push(r(t.tags,a(w,{modelValue:e.tags,"onUpdate:modelValue":t=>e.tags=t}))),c.push(r(t.where,a(b,{modelValue:e.where,"onUpdate:modelValue":t=>e.where=t}))),c.push(r(t.extra,a(T,{modelValue:e.extra,rows:2,autoGrow:!0,placeholder:`key: value`,"onUpdate:modelValue":t=>e.extra=t}))),e.title.trim()){let n=i&&e.scope===`one`;c.push(p(`div`,{class:`dsk-cal__line`},[p(`span`,{class:`dsk-cal__label`},t.line),p(`code`,null,G(Z(e,n)))]))}return c.push(p(`div`,{class:`dsk-cal__buttons`},[a(v,{type:`submit`,variant:`primary`},()=>t.save),a(v,{variant:`ghost`,onClick:n.cancel},()=>t.cancel),i?a(v,{variant:`secondary`,onClick:n.skip},()=>t.skip):null,e.itemId===null?null:a(v,{variant:`danger`,class:`dsk-cal__delete`,onClick:n.remove},()=>t.delete)])),p(`form`,{class:`dsk-cal__form`,onSubmit:e=>{e.preventDefault(),n.save()}},c)}var xe={calendar:`Календарь`,source:`Исходник`,lock:`Запретить изменения`,unlock:`Разрешить изменения`,addEvent:`Событие`,newEvent:`Новое событие`,event:`Событие`,title:`Название`,allDay:`Весь день`,date:`Дата`,endDate:`По дату`,start:`Начало`,end:`Конец`,repeat:`Повтор`,freq:{none:`Не повторять`,daily:`Каждый день`,weekly:`Каждую неделю`,monthly:`Каждый месяц`,yearly:`Каждый год`},every:`Раз в`,units:{daily:`дн.`,weekly:`нед.`,monthly:`мес.`,yearly:`г.`},onDays:`По дням`,monthMode:{day:`Число месяца`,nth:`День недели`,last:`Последний день`},dayOfMonth:`Число`,ordinals:{1:`Первый`,2:`Второй`,3:`Третий`,4:`Четвёртый`,[-1]:`Последний`},ends:`Окончание`,endsMode:{never:`Без конца`,until:`До даты`,count:`Число повторов`},times:`Раз`,skipped:`Пропущенные даты`,scope:`Изменить`,scopeOne:`Только это событие`,scopeAll:`Всю серию`,tags:`Теги`,where:`Место`,extra:`Другие свойства`,line:`Строка`,save:`Сохранить`,cancel:`Отмена`,delete:`Удалить`,skip:`Пропустить эту дату`,weekdays:[`Пн`,`Вт`,`Ср`,`Чт`,`Пт`,`Сб`,`Вс`],repeats:`Повторяется`},Se={calendar:`Calendar`,source:`Source`,lock:`Lock changes`,unlock:`Allow changes`,addEvent:`Event`,newEvent:`New event`,event:`Event`,title:`Title`,allDay:`All day`,date:`Date`,endDate:`Until date`,start:`Start`,end:`End`,repeat:`Repeat`,freq:{none:`Does not repeat`,daily:`Daily`,weekly:`Weekly`,monthly:`Monthly`,yearly:`Yearly`},every:`Every`,units:{daily:`days`,weekly:`weeks`,monthly:`months`,yearly:`years`},onDays:`On`,monthMode:{day:`Day of month`,nth:`Weekday`,last:`Last day`},dayOfMonth:`Day`,ordinals:{1:`First`,2:`Second`,3:`Third`,4:`Fourth`,[-1]:`Last`},ends:`Ends`,endsMode:{never:`Never`,until:`On a date`,count:`After`},times:`Times`,skipped:`Skipped dates`,scope:`Change`,scopeOne:`This event only`,scopeAll:`The whole series`,tags:`Tags`,where:`Where`,extra:`Other properties`,line:`Line`,save:`Save`,cancel:`Cancel`,delete:`Delete`,skip:`Skip this date`,weekdays:[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],repeats:`Repeats`};function Ce(e){return e===`ru`?xe:Se}var we=[`day`,`week`,`month`,`year`,`agenda`],Q=[`info`,`success`,`warning`,`danger`],Te={info:`var(--uid-info, #2563eb)`,success:`var(--uid-success, #16a34a)`,warning:`var(--uid-warning, #d97706)`,danger:`var(--uid-danger, #dc2626)`};function Ee(e){let t=0;for(let n of e)t=t*31+n.charCodeAt(0)|0;return Math.abs(t)}var De=e=>p(`svg`,{viewBox:`0 0 24 24`,width:16,height:16,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},e.map(e=>p(`path`,{d:e}))),Oe=[`M7 11V7a5 5 0 0 1 10 0v4`,`M5 11h14v10H5z`],ke=[`M7 11V7a5 5 0 0 1 9.9-1`,`M5 11h14v10H5z`];function Ae(){let e=/* @__PURE__ */ new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}var je=f({name:`DskCalendar`,props:{source:{type:String,default:``},editable:{type:Boolean,default:!1},locked:{type:Boolean,default:!1},lockable:{type:Boolean,default:!1},locale:{type:String,default:`en`},view:{type:String,default:``},date:{type:String,default:``},views:{type:Array,default:()=>we}},emits:[`change`,`lock`,`open`,`range`],setup(e,{emit:t}){let n=h(e.source),r=e.source;_(()=>e.source,e=>{e!==r&&(n.value=e,r=e)});let i=d(()=>Ce(e.locale)),o=d(()=>R(n.value)),s=d(()=>e.editable&&!e.locked),c=()=>{let e=o.value.settings.get(`view`)??``;return we.includes(e)?e:null},l=()=>{let e=o.value.settings.get(`date`)??``;return/^\d{4}-\d{2}-\d{2}$/.test(e)?e:null},u=h(e.view||c()||`month`);_(()=>e.view,e=>e&&(u.value=e));let f=h(e.date||l()||Ae()),g=!1;_(()=>[c(),l()],([t,n])=>{g||(t&&!e.view&&(u.value=t),n&&!e.date&&(f.value=n))});let v=h(null),y=h(`calendar`),b=h(!1),x=h(null),S=h(null);function C(e){e!==n.value&&(n.value=e,r=e,t(`change`,e))}let w=e=>Te[o.value.tagTones[e]??``]??o.value.tagTones[e]??Te[Q[Ee(e)%Q.length]],T=d(()=>v.value?fe(o.value,v.value.start,v.value.end):[]),E=d(()=>new Map(T.value.map(e=>[e.id,e]))),D=d(()=>T.value.map(e=>({id:e.id,date:e.date,...e.endDate?{endDate:e.endDate}:{},...e.time?{time:e.time}:{},...e.endTime?{endTime:e.endTime}:{},title:e.item.title,...e.item.tags.length?{color:w(e.item.tags[0])}:{}})));function O(e){v.value={start:e.start,end:e.end},t(`range`,e)}function k(e){let n=E.value.get(e);n&&(S.value=n,t(`open`,{id:n.item.id,date:n.date,title:n.item.title}),x.value=s.value?m(ve(n.item,n.date)):null,x.value&&n.item.rule&&(x.value.scope=`one`),b.value=!0)}function A(e,t){S.value=null,x.value=m(_e(e,t)),b.value=!0}function j(e){if(!s.value)return;let t=E.value.get(e.event.id);if(!t)return;let r=t.item,i={title:r.title,tags:r.tags,props:r.props,date:e.date,endDate:e.endDate??null,time:e.time??r.time,endTime:e.endTime??r.endTime};if(r.rule){let e=new Map(r.props);for(let t of[`from`,`until`,`count`,`except`,`rrule`])e.delete(t);C(Y(n.value,r.id,t.date,{...i,props:e}))}else C(J(n.value,r.id,{...i,rule:null}))}function M(){let e=x.value;e&&e.title.trim()!==``&&(e.itemId===null?C(pe(n.value,Z(e))):e.occurrence!==null&&e.scope===`one`?C(Y(n.value,e.itemId,S.value?.date??e.occurrence,Z(e,!0))):C(J(n.value,e.itemId,Z(e))),b.value=!1)}function N(){let e=x.value;e&&e.itemId!==null&&(C(me(n.value,e.itemId)),b.value=!1)}function P(){let e=x.value,t=S.value;if(!e||e.itemId===null||!t?.item.rule)return;let r=R(n.value).items.find(t=>t.id===e.itemId),i={...r.rule,except:[.../* @__PURE__ */ new Set([...r.rule.except,t.date])].sort()};C(J(n.value,e.itemId,{title:r.title,date:r.date,time:r.time,endTime:r.endTime,tags:r.tags,props:r.props,rule:i})),b.value=!1}let F;function I(e){n.value=e,clearTimeout(F),F=setTimeout(()=>{r=n.value,t(`change`,n.value)},300)}function L(e){let t=e.item,n=`${e.date}${e.endDate?` – ${e.endDate}`:``}${e.time?`, ${e.time}${e.endTime?`–${e.endTime}`:``}`:`, ${i.value.allDay.toLowerCase()}`}`,r=[[i.value.date,n]];t.rule&&r.push([i.value.repeats,W(t.rule)+(t.rule.until?` → ${t.rule.until}`:``)+(t.rule.count===null?``:` × ${t.rule.count}`)]);for(let[e,n]of t.props)[`from`,`until`,`count`,`except`,`rrule`,`description`].includes(e)||r.push([e===`where`?i.value.where:e,n||`✓`]);let o=t.props.get(`description`);return p(`div`,{class:`dsk-cal__details`},[t.tags.length?p(`div`,{class:`dsk-cal__tags`},t.tags.map(e=>a(re,{size:`sm`},()=>e))):null,p(`dl`,{class:`dsk-cal__props`},r.flatMap(([e,t])=>[p(`dt`,null,e),p(`dd`,null,t)])),o?a(ne,{source:o}):null])}function ie(){let e=x.value,t=S.value,n=e?e.itemId===null?i.value.newEvent:i.value.event:t?.item.title??``,r=e?be(e,i.value,{save:M,remove:N,skip:P,cancel:()=>b.value=!1}):t?L(t):null;return a(te,{modelValue:b.value,"onUpdate:modelValue":e=>b.value=e,title:n,width:`480px`},()=>r)}function ae(){let n=[];return s.value&&(n.push(p(`button`,{type:`button`,class:`dsk-cal__btn`,onClick:()=>A(f.value)},`+ ${i.value.addEvent}`)),n.push(p(`div`,{class:`dsk-cal__tabs`,role:`group`},[`calendar`,`source`].map(e=>p(`button`,{type:`button`,class:[`dsk-cal__tab`,{"dsk-cal__tab--on":y.value===e}],"aria-pressed":y.value===e,onClick:()=>y.value=e},i.value[e]))))),e.lockable&&n.push(p(`button`,{type:`button`,class:[`dsk-cal__lock`,{"dsk-cal__lock--on":e.locked}],title:e.locked?i.value.unlock:i.value.lock,"aria-label":e.locked?i.value.unlock:i.value.lock,"aria-pressed":e.locked,onClick:()=>t(`lock`,!e.locked)},[De(e.locked?Oe:ke)])),!o.value.title&&n.length===0?null:p(`div`,{class:`dsk-cal__bar`},[o.value.title?p(`div`,{class:`dsk-cal__title`},o.value.title):null,p(`div`,{class:`dsk-cal__actions`},n)])}function oe(){return p(`div`,{class:`dsk-cal__source`},[p(`textarea`,{class:`dsk-cal__code`,value:n.value,spellcheck:!1,"aria-label":i.value.source,onInput:e=>I(e.target.value)}),o.value.problems.length?p(`ul`,{class:`dsk-cal__problems`,role:`status`},o.value.problems.map(e=>p(`li`,null,`${i.value.line} ${e.line}: ${e.message}`))):null])}return()=>p(`div`,{class:[`dsk-cal`,{"dsk-cal--editable":s.value,"dsk-cal--locked":e.locked}]},[ae(),y.value===`source`&&s.value?oe():a(ee,{events:D.value,views:e.views,view:u.value,"onUpdate:view":e=>{g=!0,u.value=e},anchor:f.value,"onUpdate:anchor":e=>{g=!0,f.value=e},editable:s.value,onRange:O,"onEvent-click":e=>k(e.id),"onEvent-move":j,"onSlot-click":e=>A(e.date,e.time),"onDate-click":e=>{s.value&&u.value===`month`&&A(e)}}),ie()])}}),$=`:where(.dsk-cal){gap:var(--uid-space-sm,8px);flex-direction:column;min-width:0;display:flex}:where(.dsk-cal__bar){align-items:center;gap:var(--uid-space-sm,8px);flex-wrap:wrap;display:flex}:where(.dsk-cal__title){font-size:var(--uid-font-size-lg,16px);color:var(--uid-text-primary,#111827);font-weight:600}:where(.dsk-cal__actions){align-items:center;gap:var(--uid-space-sm,8px);margin-left:auto;display:flex}:where(.dsk-cal__tabs){gap:4px;display:flex}:where(.dsk-cal__btn,.dsk-cal__tab){border:1px solid var(--uid-border-subtle,#e5e7eb);background:var(--uid-surface-raised,#fff);color:var(--uid-text-secondary,#4b5563);font:inherit;font-size:var(--uid-font-size-sm,13px);cursor:pointer;border-radius:999px;padding:2px 10px}:where(.dsk-cal__btn){border-color:var(--uid-accent,#2563eb);color:var(--uid-accent,#2563eb)}:where(.dsk-cal__tab--on){border-color:var(--uid-accent,#2563eb);background:var(--uid-accent-subtle,#eff6ff);color:var(--uid-accent,#2563eb)}:where(.dsk-cal__lock){border:1px solid var(--uid-border-subtle,#e5e7eb);border-radius:var(--uid-radius-md,8px);background:var(--uid-surface-raised,#fff);width:28px;height:28px;color:var(--uid-text-secondary,#4b5563);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}:where(.dsk-cal__lock--on){color:var(--uid-warning,#b45309);border-color:currentColor}:where(.dsk-cal__btn,.dsk-cal__tab,.dsk-cal__lock,.dsk-cal__day,.dsk-cal__chip):focus-visible{outline:2px solid var(--uid-color-focus-ring,#3b82f6);outline-offset:1px}:where(.dsk-cal__source){flex-direction:column;gap:6px;display:flex}:where(.dsk-cal__code){border:1px solid var(--uid-border-subtle,#e5e7eb);border-radius:var(--uid-radius-md,8px);background:var(--uid-surface-raised,#fff);width:100%;min-height:320px;color:var(--uid-text-primary,#111827);font:13px/1.5 var(--uid-font-family-mono,ui-monospace, monospace);resize:vertical;padding:10px 12px}:where(.dsk-cal__problems){color:var(--uid-danger,#dc2626);margin:0;padding-left:18px;font-size:13px}:where(.dsk-cal__form){flex-direction:column;gap:12px;display:flex}:where(.dsk-cal__field){flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}:where(.dsk-cal__label){color:var(--uid-text-secondary,#4b5563);font-size:12px;font-weight:600}:where(.dsk-cal__row){flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}:where(.dsk-cal__row)>*{flex:1;min-width:120px}:where(.dsk-cal__repeat){border:1px solid var(--uid-border-subtle,#e5e7eb);border-radius:var(--uid-radius-md,8px);flex-direction:column;gap:10px;margin:0;padding:10px 12px 12px;display:flex}:where(.dsk-cal__interval){color:var(--uid-text-secondary,#4b5563);align-items:center;gap:8px;font-size:13px;display:flex}:where(.dsk-cal__interval)>:nth-child(2){flex:none;width:90px}:where(.dsk-cal__days){flex-wrap:wrap;gap:4px;display:flex}:where(.dsk-cal__day){border:1px solid var(--uid-border-subtle,#e5e7eb);background:var(--uid-surface-raised,#fff);min-width:40px;color:var(--uid-text-secondary,#4b5563);font:inherit;cursor:pointer;border-radius:999px;padding:4px 8px;font-size:13px}:where(.dsk-cal__day--on){border-color:var(--uid-accent,#2563eb);background:var(--uid-accent,#2563eb);color:var(--uid-text-on-accent,#fff)}:where(.dsk-cal__skipped){flex-wrap:wrap;align-items:center;gap:4px;display:flex}:where(.dsk-cal__chip){border:1px solid var(--uid-border-subtle,#e5e7eb);background:var(--uid-color-bg-subtle,#7f7f7f14);color:var(--uid-text-secondary,#4b5563);font:inherit;cursor:pointer;border-radius:999px;padding:1px 8px;font-size:12px}:where(.dsk-cal__line){flex-direction:column;gap:4px;display:flex}:where(.dsk-cal__line) code{border-radius:var(--uid-radius-sm,6px);background:var(--uid-color-bg-subtle,#7f7f7f14);font:12px/1.45 var(--uid-font-family-mono,ui-monospace, monospace);overflow-wrap:anywhere;padding:6px 8px}:where(.dsk-cal__buttons){flex-wrap:wrap;gap:8px;display:flex}:where(.dsk-cal__delete){margin-left:auto}:where(.dsk-cal__details){flex-direction:column;gap:12px;display:flex}:where(.dsk-cal__tags){flex-wrap:wrap;gap:4px;display:flex}:where(.dsk-cal__props){grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:13px;display:grid}:where(.dsk-cal__props) dt{color:var(--uid-text-secondary,#4b5563)}:where(.dsk-cal__props) dd{margin:0}`;function Me(e){t(e)}var Ne=[`day`,`week`,`month`,`year`,`agenda`];function Pe(t){s(`calendar`,$,t.el.ownerDocument);let n=g(``),i=g(null),c=g(null),l=null,u=``;function d(){let e=t.props().name;typeof e==`string`&&e!==``&&(l||(l=document.createElement(`input`),l.type=`hidden`,t.el.appendChild(l)),l.name=e,l.value=n.value)}async function f(){let e=t.props(),a=typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${t.source()}`;if(a!==u){u=a;try{n.value=typeof e.src==`string`&&e.src!==``?await r(e.src):t.source(),i.value=null,d(),t.emit(`load`,{problems:R(n.value).problems})}catch(e){i.value=o(e),t.emit(`error`,{message:i.value})}}}let p=e(t,e=>{let r=e.props;if(i.value)return a(`div`,{class:`dsk-error`,role:`alert`},i.value);let o=Array.isArray(r.views)?r.views.filter(e=>Ne.includes(e)):[];return a(je,{source:n.value,editable:r.editable===!0,locked:c.value??r.locked===!0,lockable:r.lockable===!0,locale:e.locale,view:typeof r.view==`string`?r.view:``,date:typeof r.date==`string`?r.date:``,...o.length?{views:o}:{},onChange:e=>{n.value=e,d(),t.emit(`change`,{source:e})},onLock:e=>{c.value=e,t.emit(`lock`,{locked:e})},onOpen:e=>t.emit(`open`,{event:e}),onRange:e=>t.emit(`range`,e)})});return f(),{update(){c.value=null,p.refresh(),f()},destroy(){p.unmount(),l?.remove()},api:{get value(){return n.value}}}}var Fe={calendar(e){let t=R(e);return t.items.length===0&&t.problems.length>0?{error:`Line ${t.problems[0].line}: ${t.problems[0].message}`}:{mount(t){s(`calendar`,$,t.ownerDocument);let r=g(e),o=i(t,()=>a(je,{source:r.value,locale:n.locale}));return{update(e){r.value=e},destroy:()=>o.unmount()}}}}};export{Pe as mountElement,Fe as renderers,Me as setup};
|
package/dist/plugins/diagram.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"../chunks/fullscreen-
|
|
1
|
+
import{t as e}from"../chunks/fullscreen-BS7BdaY4.js";import{DiagramError as t,render as n}from"@dskripchenko/diagrams";var r=0,i=/* @__PURE__ */ new Map;function a(e){let t=i.get(e);return t||(t=fetch(e,{credentials:`same-origin`}).then(t=>{if(!t.ok)throw Error(`${e}: HTTP ${t.status}`);return t.text()}),t.catch(()=>i.delete(e)),i.set(e,t)),t}function o(e){if(e instanceof t){let t=e.line>0?` (line ${e.line}${e.column>0?`, column ${e.column}`:``})`:``;return`${e.message}${t}${e.hint?`. ${e.hint}`:``}`}return e instanceof Error?e.message:String(e)}function s(i){let s=document.createElement(`div`);s.className=`dsk-diagram`,i.container.appendChild(s);let c=0,l=``;async function u(){let e=++c,t=i.props(),o=typeof t.label==`string`?t.label:void 0,u;try{u=typeof t.src==`string`&&t.src!==``?await a(t.src):i.source()}catch(t){e===c&&d(t);return}if(e!==c)return;let f=`${o??``}\n${u}`;if(f!==l){l=f;try{let e=typeof t.syntax==`string`?t.syntax:void 0,a=n(u,{idPrefix:`dsk-dg-${++r}`,...e?{syntax:e}:{},...o?{title:o}:{}});s.innerHTML=a.svg,i.emit(`render`,{type:a.type,width:a.width,height:a.height})}catch(e){d(e)}}}function d(e){l=``;let n=document.createElement(`div`);n.className=`dsk-error`,n.setAttribute(`role`,`alert`),n.textContent=o(e),s.replaceChildren(n);let r={message:o(e)};e instanceof t&&Object.assign(r,{line:e.line,column:e.column,hint:e.hint}),i.emit(`error`,r)}u();let f=e(i);return{update:()=>void u(),destroy:()=>{f?.destroy(),s.remove()},api:{enterFullscreen:()=>f?.enter(),exitFullscreen:()=>f?.exit(),get fullscreen(){return f?.active??!1},get svg(){return s.querySelector(`svg`)}}}}var c={mermaid:`mermaid`,plantuml:`plantuml`,puml:`plantuml`,dot:`dot`,graphviz:`dot`,d2:`d2`,dbml:`dbml`,structurizr:`structurizr`,wardley:`wardley`};function l(e){return i=>{try{return{html:n(i,{syntax:e,idPrefix:`dsk-dg-${++r}`}).svg}}catch(e){if(e instanceof t)return{error:o(e)};throw e}}}var u=Object.fromEntries(Object.entries(c).map(([e,t])=>[e,l(t)]));export{c as LANGUAGES,s as mountElement,u as renderers};
|
package/dist/plugins/drawio.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{t as e}from"../chunks/fullscreen-BS7BdaY4.js";import{t}from"../chunks/styles-BjwKH-N8.js";import{DrawioError as n,parseDrawio as r,render as i}from"@dskripchenko/drawio";var a=`:where(.dsk-drawio__pages){margin-bottom:var(--uid-space-sm,8px);border-bottom:1px solid var(--uid-border-subtle,#e5e7eb);flex-wrap:wrap;gap:2px;display:flex}:where(.dsk-drawio__pages[hidden]){display:none}:where(.dsk-drawio__tab){border-radius:var(--uid-radius-md,8px) var(--uid-radius-md,8px) 0 0;color:var(--uid-text-secondary,#4b5563);font:500 var(--uid-font-size-sm,13px) / 1.4 var(--uid-font-family-sans,system-ui, sans-serif);cursor:pointer;background:0 0;border:1px solid #0000;margin-bottom:-1px;padding:6px 12px}:where(.dsk-drawio__tab):hover{color:var(--uid-text-primary,#111827)}:where(.dsk-drawio__tab[aria-selected=true]){border-color:var(--uid-border-subtle,#e5e7eb);border-bottom-color:var(--uid-surface,#fff);background:var(--uid-surface,#fff);color:var(--uid-text-primary,#111827)}:where(.dsk-drawio__tab):focus-visible{outline:2px solid var(--uid-color-focus-ring,#3b82f6);outline-offset:-2px}:where(.dsk-drawio__page){overflow-x:auto}:where(.dsk-drawio__page)>svg{max-width:100%;height:auto;margin-inline:auto;display:block}`,o=0,s=/* @__PURE__ */ new Map;function c(e){let t=s.get(e);return t||(t=fetch(e,{credentials:`same-origin`}).then(t=>{if(!t.ok)throw Error(`${e}: HTTP ${t.status}`);return t.text()}),t.catch(()=>s.delete(e)),s.set(e,t)),t}function l(e){if(e instanceof n){let t=e.line>0?` (line ${e.line}${e.column>0?`, column ${e.column}`:``})`:``;return`${e.message}${t}${e.hint?`. ${e.hint}`:``}`}return e instanceof Error?e.message:String(e)}function u(s){t(`drawio`,a,s.el.ownerDocument);let u=document.createElement(`div`);u.className=`dsk-drawio`;let d=document.createElement(`div`);d.className=`dsk-drawio__pages`,d.setAttribute(`role`,`tablist`);let f=document.createElement(`div`);f.className=`dsk-drawio__page`,u.append(d,f),s.container.appendChild(u);let p=null,m=0,h=0,g=``;function _(e){if(!p)return 0;if(typeof e==`number`)return Math.max(0,Math.min(p.pages.length-1,e));if(typeof e==`string`&&e!==``){let t=p.pages.findIndex(t=>t.name===e||t.id===e);if(t>=0)return t;let n=Number(e);if(Number.isInteger(n))return Math.max(0,Math.min(p.pages.length-1,n))}return 0}function v(e){if(!p)return;m=e;let t=s.props(),n=typeof t.label==`string`?t.label:void 0;try{let r=i(p,{page:e,idPrefix:`dsk-dw-${++o}`,allowExternalImages:t.externalImages===!0,...n?{title:n}:{}});f.innerHTML=r.svg;for(let[t,n]of Array.from(d.children).entries())n.setAttribute(`aria-selected`,String(t===e));s.emit(`render`,{page:r.page,pages:r.pages,width:r.width,height:r.height,warnings:r.warnings})}catch(e){x(e)}}function y(){d.replaceChildren(),!p||p.pages.length<2?d.hidden=!0:(d.hidden=!1,p.pages.forEach((e,t)=>{let n=document.createElement(`button`);n.type=`button`,n.className=`dsk-drawio__tab`,n.setAttribute(`role`,`tab`),n.textContent=e.name??`${t+1}`,n.addEventListener(`click`,()=>v(t)),d.appendChild(n)}))}async function b(){let e=++h,t=s.props(),n=typeof t.src==`string`&&t.src!==``?`src:${t.src}`:`source:${s.source()}`;if(n===g&&p){v(_(t.page));return}let i;try{i=typeof t.src==`string`&&t.src!==``?await c(t.src):s.source()}catch(t){e===h&&x(t);return}if(e===h)try{p=r(i),g=n,y(),v(_(t.page))}catch(e){x(e)}}function x(e){g=``,p=null,d.replaceChildren(),d.hidden=!0;let t=document.createElement(`div`);t.className=`dsk-error`,t.setAttribute(`role`,`alert`),t.textContent=l(e),f.replaceChildren(t);let r={message:l(e)};e instanceof n&&Object.assign(r,{line:e.line,column:e.column,hint:e.hint}),s.emit(`error`,r)}b();let S=e(s);return{update:()=>void b(),destroy:()=>{S?.destroy(),u.remove()},api:{showPage:e=>v(_(e)),enterFullscreen:()=>S?.enter(),exitFullscreen:()=>S?.exit(),get fullscreen(){return S?.active??!1},get svg(){return f.querySelector(`svg`)},get pages(){return p?p.pages.map((e,t)=>e.name??`${t+1}`):[]},get page(){return m}}}}var d={drawio(e){try{return{html:i(e,{idPrefix:`dsk-dw-${++o}`}).svg}}catch(e){if(e instanceof n)return{error:l(e)};throw e}}};export{u as mountElement,d as renderers};
|
package/dist/plugins/flow.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"../chunks/attrs-
|
|
1
|
+
import{n as e}from"../chunks/attrs-CixZXnV_.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,t as c}from"../chunks/runtime-C8zlTt5D.js";import{t as l}from"../chunks/fullscreen-BS7BdaY4.js";import{h as u,shallowReactive as d,shallowRef as f}from"vue";import{parseGraph as p}from"@dskripchenko/flow";import{FlowEditor as m,FlowView as h}from"@dskripchenko/flow/vue";function g(e){n(e)}var _=null;function v(){return _??=import(`@dskripchenko/flow/mermaid`),_.catch(()=>_=null),_}async function y(e){if(e&&typeof e==`object`)return p(e);let t=String(e??``).trim();if(t===``)return p({version:1,nodes:[],edges:[]});if(t.startsWith(`{`))return p(t);let{fromMermaid:n}=await v();return n(t)}function b(e,t){let n=new URL(e,document.baseURI);return t.path&&t.path.length>0&&n.searchParams.set(`path`,t.path.join(`,`)),t.ref&&n.searchParams.set(`ref`,t.ref),n.href}function x(e,t){if(e.includes(`{ref}`))return e.replace(`{ref}`,encodeURIComponent(t));let n=new URL(e,document.baseURI);return n.searchParams.set(`ref`,t),n.href}async function S(e,t){let n=await fetch(e,{signal:t,credentials:`same-origin`,headers:{Accept:`application/json`}});if(!n.ok)throw Error(`${e}: HTTP ${n.status}`);return n.json()}var C=[`direction`,`edgeStyle`,`wheel`,`minimap`,`controls`,`details`,`statusBar`,`labels`,`registry`];function w(e,t){let n=e.data??{},r=e=>typeof e==`string`&&e!==``?document.querySelector(e):null,i=r(t.openapiTarget);i&&typeof n.operation==`string`&&n.operation!==``&&Promise.resolve(i.go?.(n.operation)).catch(e=>console.warn(`[dsk-embed] openapi-target:`,c(e)));let a=r(t.mediaTarget);if(a&&(n.chapter!==void 0||n.time!==void 0)){let e=n.chapter===void 0?Promise.resolve(a.seek?.(Number(n.time))).then(()=>a.play?.()):a.playChapter?.(n.chapter);Promise.resolve(e).catch(e=>console.warn(`[dsk-embed] media-target:`,c(e)))}}function T(n){let i=r(),o=f(null),d=f(null),p=null,g=``;function _(){let e=n.props().name;typeof e==`string`&&e!==``&&(p||(p=document.createElement(`input`),p.type=`hidden`,n.el.appendChild(p)),p.name=e,p.value=o.value?JSON.stringify(o.value):``)}async function T(){let e=n.props(),t=e.graph===void 0?typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${n.source()}`:`object`;if(t!==g||t===`object`){g=t;try{let t=e.graph===void 0?typeof e.src==`string`&&e.src!==``?await y(await a(e.src)):await y(n.source()):await y(e.graph);o.value=t,d.value=null,_(),n.emit(`load`,{nodes:t.nodes.length,edges:t.edges.length})}catch(e){d.value=c(e),n.emit(`error`,{message:d.value})}}}let E=t(n,t=>{let r=t.props;if(d.value)return u(`div`,{class:`dsk-error`,role:`alert`},d.value);if(!o.value)return u(`div`,{class:`dsk-flow-frame`,style:{height:e(r.height,`480px`)}});let a={};for(let e of C)r[e]!==void 0&&(a[e]=r[e]);let l=`var(--dsk-flow-height, ${e(r.height,r.editable?`600px`:`480px`)})`;if(r.editable)return u(`div`,{class:`dsk-flow-frame`,style:{height:l}},[s(m,{...a,ref:i.set,modelValue:o.value,locale:t.locale,readonly:r.readonly===!0,...Array.isArray(r.palette)?{palette:r.palette}:{},mermaid:e=>{if(!D)throw Error(`Mermaid import is still loading; try again`);return D(e)},style:{height:`100%`},"onUpdate:modelValue":e=>{o.value=e,_()},onChange:e=>{o.value=e.graph,_(),n.emit(`change`,{graph:e.graph,description:e.description,source:e.source})},onSelect:e=>n.emit(`select`,{ids:e}),onValidate:e=>n.emit(`validate`,{issues:e})})]);let f=typeof r.pollUrl==`string`&&r.pollUrl!==``?r.pollUrl:null,p=typeof r.toggleUrl==`string`&&r.toggleUrl!==``?r.toggleUrl:null,g=typeof r.persistToggle==`function`?r.persistToggle:null,v=typeof r.subgraphUrl==`string`&&r.subgraphUrl!==``?r.subgraphUrl:null,T=typeof r.loadSubgraph==`function`?r.loadSubgraph:null;return u(`div`,{class:`dsk-flow-frame`,style:{height:l}},[s(h,{...a,ref:i.set,graph:o.value,locale:t.locale,style:{height:`100%`},...r.state===void 0?{}:{state:r.state},...f?{poll:{intervalMs:typeof r.pollInterval==`number`?r.pollInterval:5e3,fetch:(e,t)=>S(b(f,t),e)}}:{},...p||g?{toggleable:!0,persistToggle:async e=>{if(g)return g(e);let t=await fetch(p,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(`${t.status} ${t.statusText}`.trim());return t},onToggle:(e,t)=>n.emit(`toggle`,{...e,ok:t.ok,...t.ok?{}:{rolledBack:t.rolledBack}})}:{},...T?{loadSubgraph:T}:v?{loadSubgraph:e=>S(x(v,e)).then(e=>y(e))}:{},onSelect:e=>{n.emit(`select`,e?{kind:e.kind,id:e.id,path:e.path,element:e.element}:null),e?.kind===`node`&&(n.emit(`node`,{id:e.id,path:e.path,node:e.element,data:e.element.data??{}}),w(e.element,{openapiTarget:r.openapiTarget,mediaTarget:r.mediaTarget}))},onNavigate:e=>n.emit(`navigate`,{path:e.map(e=>e.nodeId).filter(Boolean)}),"onToggle-error":(e,t)=>n.emit(`toggle-error`,{change:e,message:c(t)}),"onPoll-error":e=>n.emit(`poll-error`,{message:c(e)})})])}),D=null;n.props().editable&&v().then(e=>D=e.fromMermaid,()=>void 0),T();let O=e=>(...t)=>{let n=i.ref.value?.[e];if(typeof n!=`function`)throw Error(`${String(e)}() is not available here`);return n(...t)},k=l(n,()=>i.ref.value?.fit?.());return{update(){E.refresh(),T(),n.props().editable&&!D&&v().then(e=>D=e.fromMermaid,()=>void 0)},destroy(){k?.destroy(),E.unmount(),p?.remove()},api:{fit:O(`fit`),enterFullscreen:()=>k?.enter(),exitFullscreen:()=>k?.exit(),get fullscreen(){return k?.active??!1},select:O(`select`),enter:O(`enter`),back:O(`back`),refresh:O(`refresh`),undo:O(`undo`),redo:O(`redo`),get stack(){return i.ref.value?.stack},get graph(){return o.value}}}}var E={async flow(e){let t;try{t=await y(e)}catch(e){return{error:c(e)}}return{mount(e){e.classList.add(`dsk-flow-frame`),e.style.height=`420px`;let n=d({graph:t}),r=o(e,()=>s(h,{graph:n.graph,locale:i.locale,minimap:!1,statusBar:!1,style:{height:`100%`},onSelect:t=>{t?.kind===`node`&&e.dispatchEvent(new CustomEvent(`dsk:node`,{bubbles:!0,composed:!0,detail:{id:t.id,path:t.path,node:t.element,data:t.element.data??{}}}))}}));return{update(e){y(e).then(e=>n.graph=e,()=>void 0)},destroy:()=>r.unmount()}}}}};export{w as followNode,T as mountElement,b as pollUrl,E as renderers,g as setup,x as subgraphUrl,y as toGraph};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as e,c as t,l as n,n as r,o as i,r as a,t as o}from"../chunks/runtime-C8zlTt5D.js";import{t as s}from"../chunks/styles-BjwKH-N8.js";import{i as c,n as l,o as u,r as d,s as f,t as p}from"../chunks/markup-D3F-rpOq.js";import{computed as m,defineComponent as h,h as g,ref as _,shallowRef as v,watch as y}from"vue";import{UidBoard as b,UidButton as x,UidDatePicker as S,UidDrawer as ee,UidInput as C,UidMarkdown as w,UidSelect as T,UidTag as E,UidTagsInput as D,UidTextarea as O}from"@dskripchenko/ui";var k={board:`Доска`,source:`Исходник`,lock:`Запретить изменения`,unlock:`Разрешить изменения`,addCard:`Добавить карточку`,newCard:`Новая карточка`,editCard:`Карточка`,cardTitle:`Заголовок`,column:`Колонка`,lane:`Дорожка`,tags:`Теги`,who:`Исполнитель`,due:`Срок`,description:`Описание`,extra:`Другие свойства`,priorityLabel:`Приоритет`,priority:{high:`Высокий`,low:`Низкий`,none:`Обычный`},save:`Сохранить`,cancel:`Отмена`,delete:`Удалить`,filterTag:`Фильтр по тегу`,everyone:`Все исполнители`,line:`Строка`},A={board:`Board`,source:`Source`,lock:`Lock changes`,unlock:`Allow changes`,addCard:`Add a card`,newCard:`New card`,editCard:`Card`,cardTitle:`Title`,column:`Column`,lane:`Lane`,tags:`Tags`,who:`Assignee`,due:`Due`,description:`Description`,extra:`Other properties`,priorityLabel:`Priority`,priority:{high:`High`,low:`Low`,none:`Normal`},save:`Save`,cancel:`Cancel`,delete:`Delete`,filterTag:`Filter by tag`,everyone:`Everyone`,line:`Line`};function j(e){return e===`ru`?k:A}var M=[`info`,`success`,`warning`,`danger`],N=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`);function P(e){return N(e).replace(/`([^`]+)`/g,`<code>$1</code>`).replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(e,t,n)=>`<a href="${/^(https?:|mailto:|\/|#)/i.test(n)?n:`#`}" target="_blank" rel="noopener noreferrer">${t}</a>`).replace(/\*\*([^*]+)\*\*/g,`<strong>$1</strong>`).replace(/(^|[^*])\*([^*]+)\*/g,`$1<em>$2</em>`)}function F(e){let t=0;for(let n of e)t=t*31+n.charCodeAt(0)|0;return Math.abs(t)}function I(e){return e.split(/\s+/).filter(Boolean).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)}var L=e=>g(`svg`,{viewBox:`0 0 24 24`,width:16,height:16,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},e.map(e=>g(`path`,{d:e}))),te=[`M7 11V7a5 5 0 0 1 10 0v4`,`M5 11h14v10H5z`],R=[`M7 11V7a5 5 0 0 1 9.9-1`,`M5 11h14v10H5z`],z=[`M12 5v14`,`M5 12h14`],B=/* @__PURE__ */ new Set([`lane`,`who`,`due`]),V=h({name:`DskKanban`,props:{source:{type:String,default:``},editable:{type:Boolean,default:!1},locked:{type:Boolean,default:!1},lockable:{type:Boolean,default:!1},locale:{type:String,default:`en`},today:{type:String,default:()=>(/* @__PURE__ */ new Date()).toISOString().slice(0,10)}},emits:[`change`,`lock`,`open`],setup(e,{emit:t}){let n=_(e.source),r=e.source;y(()=>e.source,e=>{e!==r&&(n.value=e,r=e)});let i=m(()=>j(e.locale)),o=m(()=>d(n.value)),s=m(()=>e.editable&&!e.locked),h=_(`board`),v=_(null),k=_(null),A=_(!1),N=_(null),V=_(null);function H(e){e!==n.value&&(n.value=e,r=e,t(`change`,e))}let U=m(()=>[...new Set(o.value.columns.flatMap(e=>e.cards.flatMap(e=>e.tags)))]),W=m(()=>[...new Set(o.value.columns.flatMap(e=>e.cards.map(e=>e.props.get(`who`)??``).filter(Boolean)))]),G=e=>o.value.tagTones[e]??M[F(e)%M.length],K=e=>(v.value===null||e.tags.includes(v.value))&&(k.value===null||e.props.get(`who`)===k.value),q=m(()=>{let e=/* @__PURE__ */ new Map;for(let t of o.value.columns)for(let n of t.cards)e.set(n.id,{card:n,column:t});return e}),J=m(()=>o.value.lanes.map(e=>({key:e,title:e}))),Y=m(()=>o.value.columns.map(e=>({key:e.id,title:e.title,wip:e.wip,cards:e.cards.filter(K).map(e=>({key:e.id,title:e.title,...J.value.length>0?{lane:e.props.get(`lane`)??o.value.lanes[0]}:{}}))})));function X(e){if(!s.value)return;let t=String(e.card.key),r=q.value.get(t)?.card.props.get(`lane`)??(J.value.length>0?o.value.lanes[0]:null),i=J.value.length>0&&e.lane!==null&&String(e.lane)!==r?String(e.lane):void 0;H(l(n.value,t,String(e.to),e.beforeKey===null?null:String(e.beforeKey),i))}function Z(e){let n=q.value.get(e);if(n){if(V.value=n,t(`open`,{id:e,title:n.card.title,column:n.column.title}),s.value){let{card:e,column:t}=n,r=[...e.props].filter(([e])=>!B.has(e)).map(([e,t])=>t===``?e:`${e}: ${t}`).join(`
|
|
2
|
+
`);N.value={id:e.id,columnId:t.id,title:e.title,tags:[...e.tags],priority:e.priority??``,who:e.props.get(`who`)??``,due:e.props.get(`due`)||null,lane:e.props.get(`lane`)??``,extra:r,description:e.description}}else N.value=null;A.value=!0}}function ne(e){V.value=null,N.value={id:null,columnId:e,title:``,tags:[],priority:``,who:``,due:null,lane:o.value.lanes[0]??``,extra:``,description:``},A.value=!0}function re(){let e=N.value;if(!e||e.title.trim()===``)return;let t=/* @__PURE__ */ new Map;e.lane&&J.value.length>0&&t.set(`lane`,e.lane),e.who.trim()&&t.set(`who`,e.who.trim()),e.due&&t.set(`due`,e.due);for(let n of e.extra.split(`
|
|
3
|
+
`))for(let[e,r]of f(n))t.set(e,r);let r={title:e.title,tags:e.tags.map(e=>e.replace(/^#/,``).trim()).filter(Boolean),priority:e.priority||null,props:t,description:e.description},i=e.id===null?p(n.value,e.columnId,r):u(n.value,e.id,r);e.id!==null&&q.value.get(e.id)?.column.id!==e.columnId&&(i=l(i,e.id,e.columnId,null)),H(i),A.value=!1}function ie(){let e=N.value;e&&e.id!==null&&(H(c(n.value,e.id)),A.value=!1)}let Q;function ae(e){n.value=e,clearTimeout(Q),Q=setTimeout(()=>{r=n.value,t(`change`,n.value)},300)}function oe(t,n){let r=q.value.get(t);if(!r)return null;let{card:s}=r,c=o.value.columns.find(e=>e.id===n),l=s.props.get(`due`),u=!!l&&l<e.today&&!c?.done,d=s.props.get(`who`),f=[];s.priority&&f.push(g(`span`,{class:[`dsk-kanban__priority`,`dsk-kanban__priority--${s.priority}`]},i.value.priority[s.priority]));for(let e of s.tags)f.push(a(E,{size:`sm`,variant:G(e)},()=>e));let p=[];return l&&p.push(g(`span`,{class:[`dsk-kanban__due`,{"dsk-kanban__due--overdue":u}],title:i.value.due},l)),d&&p.push(g(`span`,{class:`dsk-kanban__who`,title:d},[g(`span`,{class:`dsk-kanban__avatar`,style:{"--dsk-kanban-avatar":`hsl(${F(d)%360} 55% 45%)`}},I(d)),g(`span`,null,d)])),g(`div`,{class:[`dsk-kanban__card`,{"dsk-kanban__card--done":c?.done}]},[g(`div`,{class:`dsk-kanban__card-title`,innerHTML:P(s.title),onClick:e=>{e.target.closest(`a`)&&e.stopPropagation()}}),f.length?g(`div`,{class:`dsk-kanban__card-meta`},f):null,p.length?g(`div`,{class:`dsk-kanban__card-foot`},p):null,s.description?g(`span`,{class:`dsk-kanban__has-desc`,title:i.value.description},`≡`):null])}function $(e,t,n){let r=o.value.columns.find(t=>t.id===e.key);return g(`div`,{class:[`dsk-kanban__column-head`,{"dsk-kanban__column-head--over":n}]},[g(`span`,{class:`dsk-kanban__column-title`},e.title),g(`span`,{class:`dsk-kanban__count`},r?.wip?`${t}/${r.wip}`:String(t)),s.value?g(`button`,{type:`button`,class:`dsk-kanban__add`,title:i.value.addCard,"aria-label":`${i.value.addCard}: ${e.title}`,onClick:()=>ne(String(e.key))},[L(z)]):null])}function se(){let n=[];U.value.length>0&&n.push(g(`div`,{class:`dsk-kanban__tags`,role:`group`,"aria-label":i.value.filterTag},U.value.map(e=>g(`button`,{type:`button`,class:[`dsk-kanban__filter`,{"dsk-kanban__filter--on":v.value===e}],"aria-pressed":v.value===e,onClick:()=>v.value=v.value===e?null:e},`#${e}`)))),W.value.length>0&&n.push(g(`div`,{class:`dsk-kanban__people`},a(T,{size:`sm`,clearable:!0,placeholder:i.value.everyone,options:W.value.map(e=>({value:e,label:e})),modelValue:k.value,"onUpdate:modelValue":e=>k.value=e??null})));let r=[];return s.value&&r.push(g(`div`,{class:`dsk-kanban__tabs`,role:`group`},[`board`,`source`].map(e=>g(`button`,{type:`button`,class:[`dsk-kanban__tab`,{"dsk-kanban__tab--on":h.value===e}],"aria-pressed":h.value===e,onClick:()=>h.value=e},i.value[e])))),e.lockable&&r.push(g(`button`,{type:`button`,class:[`dsk-kanban__lock`,{"dsk-kanban__lock--on":e.locked}],title:e.locked?i.value.unlock:i.value.lock,"aria-label":e.locked?i.value.unlock:i.value.lock,"aria-pressed":e.locked,onClick:()=>t(`lock`,!e.locked)},[L(e.locked?te:R)])),g(`div`,{class:`dsk-kanban__bar`},[o.value.title?g(`div`,{class:`dsk-kanban__title`},o.value.title):null,g(`div`,{class:`dsk-kanban__filters`},n),g(`div`,{class:`dsk-kanban__actions`},r)])}function ce(){let e=N.value,t=V.value,n=e?e.id===null?i.value.newCard:i.value.editCard:t?.card.title.replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`)??``,r;if(e){let t=(e,t)=>g(`label`,{class:`dsk-kanban__field`},[g(`span`,{class:`dsk-kanban__label`},e),t]);r=g(`form`,{class:`dsk-kanban__form`,onSubmit:e=>{e.preventDefault(),re()}},[t(i.value.cardTitle,a(C,{modelValue:e.title,"onUpdate:modelValue":t=>e.title=t,required:!0})),t(i.value.column,a(T,{options:o.value.columns.map(e=>({value:e.id,label:e.title})),modelValue:e.columnId,"onUpdate:modelValue":t=>e.columnId=t})),J.value.length>0?t(i.value.lane,a(T,{options:o.value.lanes.map(e=>({value:e,label:e})),modelValue:e.lane,"onUpdate:modelValue":t=>e.lane=t})):null,t(i.value.tags,a(D,{modelValue:e.tags,"onUpdate:modelValue":t=>e.tags=t})),g(`div`,{class:`dsk-kanban__row`},[t(i.value.priorityLabel,a(T,{options:[{value:``,label:i.value.priority.none},{value:`high`,label:i.value.priority.high},{value:`low`,label:i.value.priority.low}],modelValue:e.priority,"onUpdate:modelValue":t=>e.priority=t})),t(i.value.due,a(S,{modelValue:e.due,"onUpdate:modelValue":t=>e.due=t}))]),t(i.value.who,a(C,{modelValue:e.who,"onUpdate:modelValue":t=>e.who=t})),t(i.value.description,a(O,{modelValue:e.description,rows:5,autoGrow:!0,"onUpdate:modelValue":t=>e.description=t})),t(i.value.extra,a(O,{modelValue:e.extra,rows:2,autoGrow:!0,placeholder:`key: value`,"onUpdate:modelValue":t=>e.extra=t})),g(`div`,{class:`dsk-kanban__buttons`},[a(x,{type:`submit`,variant:`primary`},()=>i.value.save),a(x,{variant:`ghost`,onClick:()=>A.value=!1},()=>i.value.cancel),e.id===null?null:a(x,{variant:`danger`,class:`dsk-kanban__delete`,onClick:ie},()=>i.value.delete)])])}else if(t){let{card:e,column:n}=t,o=[[i.value.column,n.title]];e.props.get(`lane`)&&o.push([i.value.lane,e.props.get(`lane`)]),e.priority&&o.push([i.value.priorityLabel,i.value.priority[e.priority]]),e.props.get(`who`)&&o.push([i.value.who,e.props.get(`who`)]),e.props.get(`due`)&&o.push([i.value.due,e.props.get(`due`)]);for(let[t,n]of e.props)B.has(t)||o.push([t,n||`✓`]);r=g(`div`,{class:`dsk-kanban__details`},[e.tags.length?g(`div`,{class:`dsk-kanban__card-meta`},e.tags.map(e=>a(E,{size:`sm`,variant:G(e)},()=>e))):null,g(`dl`,{class:`dsk-kanban__props`},o.flatMap(([e,t])=>[g(`dt`,null,e),g(`dd`,null,t)])),e.description?a(w,{source:e.description}):null])}return a(ee,{modelValue:A.value,"onUpdate:modelValue":e=>A.value=e,title:n,width:`440px`},()=>r)}function le(){return g(`div`,{class:`dsk-kanban__source`},[g(`textarea`,{class:`dsk-kanban__code`,value:n.value,spellcheck:!1,"aria-label":i.value.source,onInput:e=>ae(e.target.value)}),o.value.problems.length?g(`ul`,{class:`dsk-kanban__problems`,role:`status`},o.value.problems.map(e=>g(`li`,null,`${i.value.line} ${e.line}: ${e.message}`))):null])}return()=>g(`div`,{class:[`dsk-kanban`,{"dsk-kanban--editable":s.value,"dsk-kanban--locked":e.locked}]},[se(),h.value===`source`&&s.value?le():a(b,{columns:Y.value,lanes:J.value,readonly:!s.value,onMove:X,onOpen:e=>Z(String(e.key))},{card:({card:e,column:t})=>oe(String(e.key),String(t.key)),"column-header":({column:e,count:t,over:n})=>$(e,t,n)}),ce()])}}),H=`:where(.dsk-kanban){gap:var(--uid-space-sm,8px);flex-direction:column;min-width:0;display:flex}:where(.dsk-kanban__bar){align-items:center;gap:var(--uid-space-sm,8px);flex-wrap:wrap;display:flex}:where(.dsk-kanban__title){font-size:var(--uid-font-size-lg,16px);color:var(--uid-text-primary,#111827);margin-right:var(--uid-space-sm,8px);font-weight:600}:where(.dsk-kanban__filters){align-items:center;gap:var(--uid-space-sm,8px);flex-wrap:wrap;flex:1;min-width:0;display:flex}:where(.dsk-kanban__tags){flex-wrap:wrap;gap:4px;display:flex}:where(.dsk-kanban__filter,.dsk-kanban__tab){border:1px solid var(--uid-border-subtle,#e5e7eb);background:var(--uid-surface-raised,#fff);color:var(--uid-text-secondary,#4b5563);font:inherit;font-size:var(--uid-font-size-sm,13px);cursor:pointer;border-radius:999px;padding:2px 10px}:where(.dsk-kanban__filter--on,.dsk-kanban__tab--on){border-color:var(--uid-accent,#2563eb);background:var(--uid-accent-subtle,#eff6ff);color:var(--uid-accent,#2563eb)}:where(.dsk-kanban__people){min-width:180px}:where(.dsk-kanban__actions){align-items:center;gap:var(--uid-space-sm,8px);margin-left:auto;display:flex}:where(.dsk-kanban__tabs){gap:4px;display:flex}:where(.dsk-kanban__lock,.dsk-kanban__add){border:1px solid var(--uid-border-subtle,#e5e7eb);border-radius:var(--uid-radius-md,8px);background:var(--uid-surface-raised,#fff);width:28px;height:28px;color:var(--uid-text-secondary,#4b5563);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}:where(.dsk-kanban__lock--on){color:var(--uid-warning,#b45309);border-color:currentColor}:where(.dsk-kanban__add){background:0 0;border-color:#0000;width:22px;height:22px;margin-left:auto}:where(.dsk-kanban__add):hover{color:var(--uid-text-primary,#111827);background:var(--uid-color-bg-subtle,#7f7f7f1a)}:where(.dsk-kanban__filter,.dsk-kanban__tab,.dsk-kanban__lock,.dsk-kanban__add):focus-visible{outline:2px solid var(--uid-color-focus-ring,#3b82f6);outline-offset:1px}:where(.dsk-kanban__column-head){align-items:center;gap:6px;width:100%;min-width:0;display:flex}:where(.dsk-kanban__column-title){text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}:where(.dsk-kanban__count){background:var(--uid-color-bg-subtle,#7f7f7f1a);color:var(--uid-text-secondary,#4b5563);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 6px;font-size:12px}:where(.dsk-kanban__column-head--over) .dsk-kanban__count{background:var(--uid-danger-subtle,#fee2e2);color:var(--uid-danger,#dc2626)}:where(.dsk-kanban__card){flex-direction:column;gap:6px;display:flex;position:relative}:where(.dsk-kanban__card-title){font-size:var(--uid-font-size-sm,13px);color:var(--uid-text-primary,#111827);overflow-wrap:anywhere;padding-right:12px;line-height:1.4}:where(.dsk-kanban__card-title) a{color:var(--uid-accent,#2563eb)}:where(.dsk-kanban__card-title) code{font-size:.92em}:where(.dsk-kanban__card--done) .dsk-kanban__card-title{color:var(--uid-text-secondary,#4b5563);text-decoration:line-through}:where(.dsk-kanban__card-meta){flex-wrap:wrap;align-items:center;gap:4px;display:flex}:where(.dsk-kanban__card-foot){color:var(--uid-text-secondary,#4b5563);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}:where(.dsk-kanban__priority){border-radius:4px;padding:0 6px;font-size:11px;font-weight:600}:where(.dsk-kanban__priority--high){background:var(--uid-danger-subtle,#fee2e2);color:var(--uid-danger,#dc2626)}:where(.dsk-kanban__priority--low){background:var(--uid-color-bg-subtle,#7f7f7f1a);color:var(--uid-text-secondary,#4b5563)}:where(.dsk-kanban__due){font-variant-numeric:tabular-nums}:where(.dsk-kanban__due--overdue){color:var(--uid-danger,#dc2626);font-weight:600}:where(.dsk-kanban__who){align-items:center;gap:4px;margin-left:auto;display:inline-flex}:where(.dsk-kanban__avatar){background:var(--dsk-kanban-avatar,#64748b);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:600;display:inline-flex}:where(.dsk-kanban__has-desc){color:var(--uid-text-tertiary,#9ca3af);font-size:12px;position:absolute;top:0;right:0}:where(.dsk-kanban__source){flex-direction:column;gap:6px;display:flex}:where(.dsk-kanban__code){border:1px solid var(--uid-border-subtle,#e5e7eb);border-radius:var(--uid-radius-md,8px);background:var(--uid-surface-raised,#fff);width:100%;min-height:320px;color:var(--uid-text-primary,#111827);font:13px/1.5 var(--uid-font-family-mono,ui-monospace, monospace);resize:vertical;tab-size:2;padding:10px 12px}:where(.dsk-kanban__problems){color:var(--uid-danger,#dc2626);margin:0;padding-left:18px;font-size:13px}:where(.dsk-kanban__form){flex-direction:column;gap:12px;display:flex}:where(.dsk-kanban__field){flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}:where(.dsk-kanban__label){color:var(--uid-text-secondary,#4b5563);font-size:12px;font-weight:600}:where(.dsk-kanban__row){gap:12px;display:flex}:where(.dsk-kanban__buttons){gap:8px;display:flex}:where(.dsk-kanban__delete){margin-left:auto}:where(.dsk-kanban__details){flex-direction:column;gap:12px;display:flex}:where(.dsk-kanban__props){grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:13px;display:grid}:where(.dsk-kanban__props) dt{color:var(--uid-text-secondary,#4b5563)}:where(.dsk-kanban__props) dd{margin:0}`;function U(e){t(e)}function W(t){s(`kanban`,H,t.el.ownerDocument);let n=v(``),i=v(null),c=v(null),l=null,u=``;function f(){let e=t.props().name;typeof e==`string`&&e!==``&&(l||(l=document.createElement(`input`),l.type=`hidden`,t.el.appendChild(l)),l.name=e,l.value=n.value)}async function p(){let e=t.props(),a=typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${t.source()}`;if(a!==u){u=a;try{n.value=typeof e.src==`string`&&e.src!==``?await r(e.src):t.source(),i.value=null,f();let a=d(n.value).problems;t.emit(`load`,{problems:a})}catch(e){i.value=o(e),t.emit(`error`,{message:i.value})}}}let m=e(t,e=>{let r=e.props;return i.value?a(`div`,{class:`dsk-error`,role:`alert`},i.value):a(V,{source:n.value,editable:r.editable===!0,locked:c.value??r.locked===!0,lockable:r.lockable===!0,locale:e.locale,onChange:e=>{n.value=e,f(),t.emit(`change`,{source:e})},onLock:e=>{c.value=e,t.emit(`lock`,{locked:e})},onOpen:e=>t.emit(`open`,{card:e})})});return p(),{update(){c.value=null,m.refresh(),p()},destroy(){m.unmount(),l?.remove()},api:{get value(){return n.value},get board(){return d(n.value)}}}}var G={kanban(e){return d(e).columns.length===0?{error:`No columns: a column starts with "## "`}:{mount(t){s(`kanban`,H,t.ownerDocument);let r=v(e),o=i(t,()=>a(V,{source:r.value,locale:n.locale}));return{update(e){r.value=e},destroy:()=>o.unmount()}}}}};export{W as mountElement,G as renderers,U as setup};
|
package/dist/plugins/media.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/attrs-
|
|
1
|
+
import{n as e,t}from"../chunks/attrs-CixZXnV_.js";import{a as n,c as r,i,o as a,r as o,s}from"../chunks/runtime-C8zlTt5D.js";import{shallowReactive as c,watch as l}from"vue";import{UidAudio as u,UidVideo as d}from"@dskripchenko/ui";var f=`application/x-mpegURL`;function p(e){return/\.m3u8$/i.test(e.replace(/[?#].*$/,``))}function m(e){return typeof e==`string`&&e.trim()!==``?e:void 0}function h(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()!==``?Number(e):NaN;return Number.isFinite(t)?t:void 0}function g(e){return e==null||e===``?[]:Array.isArray(e)?e:[e]}function _(e){if(typeof e==`string`)return m(e);if(e&&typeof e==`object`){let t=e;return m(t.src)??m(t.url)}}function v(e,t){return(t&&typeof t==`object`?m(t.type):void 0)||(p(e)?f:void 0)}function y(e){let t=[];for(let n of g(e)){let e=_(n);if(!e)continue;let r=n&&typeof n==`object`?n:{},i=v(e,n),a=m(r.label);t.push({src:e,...i?{type:i}:{},...a?{label:a}:{}})}return t}function b(e){let t=[];for(let n of g(e)){if(!n||typeof n!=`object`)continue;let e=n,r=m(e.src);if(!r)continue;let i=e.kind===`captions`||e.kind===`chapters`?e.kind:`subtitles`,a=e.default===!0||e.default===``||e.default===`true`||e.default==="default";t.push({src:r,kind:i,...m(e.srclang)?{srclang:e.srclang}:{},...m(e.label)?{label:e.label}:{},...a?{default:!0}:{}})}return t}function x(e){let t=[];for(let n of g(e)){let e=_(n);if(!e)continue;let r=n&&typeof n==`object`?n:{},i=v(e,n),a=Array.isArray(r.peaks)?r.peaks.filter(e=>typeof e==`number`):typeof r.peaks==`string`?r.peaks.split(`,`).map(Number).filter(e=>Number.isFinite(e)):void 0,o=h(r.duration);t.push({src:e,...i?{type:i}:{},...m(r.title)?{title:r.title}:{},...m(r.artist)?{artist:r.artist}:{},...o===void 0?{}:{duration:o},...a&&a.length>0?{peaks:a}:{}})}return t}var S=[`poster`,`thumbnails`,`autoplay`,`muted`,`loop`,`preload`,`controls`,`crossorigin`,`exclusive`,`resumeKey`,`rates`,`hotkeys`,`autoHide`,`hlsOptions`];function C(e,n={sources:[],tracks:[]}){let r={};for(let t of S)e[t]!==void 0&&(r[t]=e[t]);let i=y(e.sources);i.length===0&&(i=y(n.sources)),i.length===0&&typeof e.src==`string`&&e.src!==``&&(i=y(e.src)),r.sources=i,r.tracks=b(e.tracks===void 0?n.tracks:e.tracks);let a=t(e.aspectRatio);return a&&(r.aspectRatio=a),typeof e.label==`string`&&(r.title=e.label),r}var w=[`loop`,`preload`,`crossorigin`,`exclusive`,`resumeKey`,`rates`,`hotkeys`,`hlsOptions`,`variant`,`waveform`,`waveformMaxBytes`,`waveformMaxDuration`,`autoAdvance`,`showVolume`,`showRate`,`showPlaylist`];function T(e,t={sources:[],tracks:[]}){let n={};for(let t of w)e[t]!==void 0&&(n[t]=e[t]);let r=x(e.tracks);if(r.length===0&&(r=x(t.sources)),r.length===0&&typeof e.src==`string`&&e.src!==``&&(r=x([{src:e.src,type:e.type}])),r.length>1)n.tracks=r;else if(r.length===1){let t=r[0];n.src=t.src,t.type&&(n.type=t.type);let i=m(e.trackTitle)??t.title,a=m(e.artist)??t.artist;i&&(n.title=i),a&&(n.artist=a),t.peaks&&(n.peaks=t.peaks)}return Array.isArray(e.peaks)&&e.peaks.length>0&&(n.peaks=e.peaks),typeof e.index==`number`&&(n.index=e.index),n}function E(e,t){if(typeof t==`number`||/^\d+$/.test(String(t).trim()))return e[Number(t)];let n=String(t).trim().toLowerCase();return e.find(e=>e.title.toLowerCase()===n)??e.find(e=>e.title.toLowerCase().includes(n))}var D=class extends Error{},O=/^([A-Za-z_][\w-]*)\s*:(?:\s+(.*))?$/;function k(e){let t=e.trim();if(t===``)return``;if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)){if(t.startsWith(`"`))try{return JSON.parse(t)}catch{return t.slice(1,-1)}return t.slice(1,-1).replace(/''/g,`'`)}if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e===``?[]:e.split(`,`).map(e=>k(e))}return t===`true`?!0:t===`false`?!1:t===`null`||t===`~`?null:/^-?\d+(\.\d+)?$/.test(t)?Number(t):t}function A(e){return e.length-e.trimStart().length}function j(e,t,n){let r=[];for(;t<e.length;){let i=e[t];if(A(i)<n||!i.trimStart().startsWith(`-`))break;if(A(i)>n)throw new D(`line ${t+1}: unexpected indentation`);let a=i.trimStart().slice(1).trim(),o=O.exec(a);if(!o){r.push(k(a)),t++;continue}let s={[o[1]]:k(o[2]??``)},c=A(i)+(i.trimStart().length-i.trimStart().slice(1).trimStart().length);for(t++;t<e.length&&A(e[t])>=c&&!e[t].trimStart().startsWith(`-`);){let n=O.exec(e[t].trim());if(!n)throw new D(`line ${t+1}: expected "key: value"`);s[n[1]]=k(n[2]??``),t++}r.push(s)}return[r,t]}function M(e){let t=e.split(/\r?\n/).map(e=>e.replace(/\s+#.*$/,``)).filter(e=>e.trim()!==``&&!e.trim().startsWith(`#`));if(t.length>0&&t[0].trimStart().startsWith(`-`)){let[e,n]=j(t,0,A(t[0]));if(n<t.length)throw new D(`line ${n+1}: unexpected content after the list`);return e}let n={},r=0;for(;r<t.length;){let e=t[r];if(A(e)!==0)throw new D(`line ${r+1}: unexpected indentation`);let i=O.exec(e.trim());if(!i)throw new D(`line ${r+1}: expected "key: value"`);if(r++,i[2]!==void 0&&i[2].trim()!==``)n[i[1]]=k(i[2]);else if(r<t.length&&A(t[r])>0&&t[r].trimStart().startsWith(`-`)){let[e,a]=j(t,r,A(t[r]));n[i[1]]=e,r=a}else n[i[1]]=null}return n}function N(e){let t=e.trim();if(t===``)throw new D(`the block is empty`);if(t.startsWith(`{`)||t.startsWith(`[`)){let e;try{e=JSON.parse(t)}catch(e){throw new D(e instanceof Error?e.message:String(e))}if(!e||typeof e!=`object`)throw new D(`expected an object or a list`);return e}let n=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``&&!e.startsWith(`#`));if(n.every(e=>!O.test(e)&&!e.startsWith(`-`)&&!/\s/.test(e)))return n.length===1?{src:n[0]}:n.map(e=>({src:e}));let r=M(t);if(!r||typeof r!=`object`)throw new D(`expected "key: value" pairs or a list`);return r}function P(e){return typeof e==`string`&&e!==``?e:void 0}function F(e){return typeof e==`boolean`?e:void 0}function I(e){let t=N(e),n=Array.isArray(t)?{}:t,r={sources:Array.isArray(t)?t:n.sources??(n.src||n.url?[n]:[]),tracks:n.tracks,poster:P(n.poster),thumbnails:P(n.thumbnails),label:P(n.title),aspectRatio:typeof n.aspectRatio==`number`?String(n.aspectRatio):P(n.aspectRatio),autoplay:F(n.autoplay),muted:F(n.muted)??F(n.autoplay),loop:F(n.loop),maxWidth:typeof n.maxWidth==`number`||typeof n.maxWidth==`string`?n.maxWidth:void 0};return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}function L(e){let t=N(e),n=Array.isArray(t)?{}:t,r={tracks:Array.isArray(t)?t:Array.isArray(n.tracks)?n.tracks:[n],trackTitle:P(n.title),artist:P(n.artist),waveform:F(n.waveform),loop:F(n.loop),variant:n.mini===!0||n.variant===`mini`?`mini`:void 0,peaks:Array.isArray(n.peaks)?n.peaks.filter(e=>typeof e==`number`):void 0,maxWidth:typeof n.maxWidth==`number`||typeof n.maxWidth==`string`?n.maxWidth:void 0};return Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}function R(e){r(e)}function z(e){return e.readyState>=1?Promise.resolve():new Promise(t=>e.addEventListener(`loadedmetadata`,()=>t(),{once:!0}))}function B(e){let t=e?.media;return{currentTime:t?.currentTime??0,duration:t?.duration??0,src:t?.currentSrc??``}}function V(e){let t=i(),n=null,r=()=>e(`timeupdate`,B(t.ref.value)),a=l(()=>t.ref.value?.media??null,e=>{n?.removeEventListener(`timeupdate`,r),n=e,n?.addEventListener(`timeupdate`,r)}),o={ref:t.set,onPlay:()=>e(`play`,B(t.ref.value)),onPause:()=>e(`pause`,B(t.ref.value)),onEnded:()=>e(`ended`,B(t.ref.value)),onError:t=>e(`error`,t),onQualitychange:t=>e(`qualitychange`,{label:t}),onAudiotrackchange:t=>e(`audiotrackchange`,{label:t}),onTrackchange:t=>e(`trackchange`,{index:t}),onChapterchange:(t,n)=>e(`chapterchange`,t?{index:n,title:t.title,start:t.start,end:t.end}:null)},s=()=>{let e=t.ref.value;if(!e)throw Error(`the player is not ready`);return e},c={play:()=>s().play(),pause:()=>s().pause(),toggle:()=>s().toggle(),async seek(e){let t=s().media;t&&await z(t),s().seek(Number(e))},next:()=>s().next?.(),prev:()=>s().prev?.(),get state(){return t.ref.value?.state},get media(){return t.ref.value?.media??null},get chapters(){return(t.ref.value?.chapters??[]).map((e,t)=>({index:t,title:e.title,start:e.start,end:e.end}))},async loadChapters(e=4e3){let t=Date.now();for(;c.chapters.length===0&&Date.now()-t<e;)await new Promise(e=>setTimeout(e,50));return c.chapters},async playChapter(t){let n=E(await c.loadChapters(),t);if(!n)throw Error(`no chapter "${String(t)}"`);let r=s();return r.seekToChapter?r.seekToChapter(n.index):await c.seek(n.start),await r.play(),e(`chapter`,n),n},dispose(){a(),n?.removeEventListener(`timeupdate`,r)}};return{handlers:o,api:c}}function H(e){return JSON.stringify(e.sources??e.tracks??e.src??``)}function U(e){let t=e.tag===`dsk-video`,{handlers:r,api:i}=V(e.emit),a=n(e,n=>{let i=t?C(n.props,n.children):T(n.props,n.children);return o(t?d:u,{...i,key:H(i),class:`dsk-media`,...r,...t?{}:{"onUpdate:index":t=>e.emit(`trackchange`,{index:t})}})});return{update:()=>a.refresh(),destroy(){i.dispose(),a.unmount()},api:i}}function W(t){return n=>{let r=t===`video`?I:L,i;try{i=r(n);let e=t===`video`?C(i):T(i);if(t===`video`&&e.sources.length===0)return{error:"no video source: give `src` or `sources`"};if(t===`audio`&&!e.src&&!e.tracks)return{error:"no audio source: give `src` or `tracks`"}}catch(e){if(e instanceof D||e instanceof SyntaxError)return{error:e.message};throw e}return{mount(n){n.classList.add(`dsk-media`,`dsk-media--${t}`);let l=c({props:i}),f=s(),{handlers:p,api:m}=V((e,t)=>f.emit(e,t,n));n.dskPlayer=m;let h=a(n,()=>{n.style.maxWidth=e(l.props.maxWidth)??``;let r=t===`video`?C(l.props):T(l.props);return o(t===`video`?d:u,{...r,key:H(r),...p})});return{update(e){try{l.props=r(e)}catch{}},destroy(){m.dispose(),h.unmount()}}}}}}var G={video:W(`video`),audio:W(`audio`)};export{U as mountElement,G as renderers,R as setup};
|
package/dist/plugins/openapi.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"../chunks/attrs-
|
|
1
|
+
import{n as e}from"../chunks/attrs-CixZXnV_.js";import{a as t,c as n,i as r,l as i,n as a,o,r as s,t as c}from"../chunks/runtime-C8zlTt5D.js";import{t as l}from"../chunks/fullscreen-BS7BdaY4.js";import{h as u,shallowReactive as d,shallowRef as f}from"vue";import{AsyncApiReference as p,OpenApiBlock as m,OpenApiEditor as h,OpenApiOperation as g,OpenApiReference as _,proxySend as v}from"@dskripchenko/openapi/vue";function y(e){n(e)}var b=/* @__PURE__ */ new Map;function x(e){let t=b.get(e);return t||(t=()=>a(e),b.set(e,t)),t}function S(e){if(!Array.isArray(e))return;let t=[];return e.forEach((e,n)=>{if(!e||typeof e!=`object`)return;let r=e,i=typeof r.id==`string`&&r.id!==``?r.id:`spec-${n+1}`,a=typeof r.src==`string`?x(r.src):r.content??r.spec;a!==void 0&&t.push({id:i,...typeof r.name==`string`?{name:r.name}:{},spec:a})}),t}function C(e){return/^(operation|schema|tag|webhook)\//.test(e)||e.startsWith(`#`)?e.replace(/^#/,``):`operation/${e}`}var w=[`tryIt`,`baseUrl`,`defaultSnippet`,`snippetTargets`,`persistCredentials`,`send`,`labels`],T=/* @__PURE__ */ new Map;function E(e){let t=T.get(e);return t||(t=v(e),T.set(e,t)),t}function D(e){let t={};for(let n of w)e[n]!==void 0&&(t[n]=e[n]);return t.send===void 0&&typeof e.proxy==`string`&&e.proxy!==``&&(t.send=E(e.proxy)),t}function O(e){return(e?.document)?.info?.title}function k(n){let r=f(null),i=f(null),o=``;async function d(){let e=n.props(),t=e.spec===void 0?typeof e.src==`string`&&e.src!==``?`src:${e.src}`:`source:${n.source()}`:`object`;if(t!==o||t===`object`){o=t;try{r.value=e.spec===void 0?typeof e.src==`string`&&e.src!==``?await a(e.src):n.source():e.spec,i.value=null,n.emit(`load`,{})}catch(e){i.value=c(e),n.emit(`error`,{message:i.value})}}}let m=t(n,t=>{let n=t.props;if(i.value)return u(`div`,{class:`dsk-error`,role:`alert`},i.value);if(r.value===null)return u(`div`,{class:`dsk-openapi dsk-openapi--asyncapi`});let a=e(n.height);return s(`div`,{class:`dsk-openapi dsk-openapi--asyncapi`,style:a?{height:`var(--dsk-openapi-height, ${a})`,overflow:`auto`}:void 0},[s(p,{spec:r.value,locale:t.locale,...n.labels&&typeof n.labels==`object`?{labels:n.labels}:{}})])});d();let h=l(n);return{update(){m.refresh(),d()},destroy(){h?.destroy(),m.unmount()},api:{enterFullscreen:()=>h?.enter(),exitFullscreen:()=>h?.exit(),get fullscreen(){return h?.active??!1},get loaded(){return r.value!==null&&i.value===null}}}}function A(n){if(n.tag===`dsk-asyncapi`)return k(n);let i=r(),a=null,o=t(n,t=>{let r=t.props,o=r.mode??(r.operation?`operation`:`reference`),l=t.locale,u=e(r.height),d=e=>s(`div`,{class:`dsk-openapi dsk-openapi--${String(o)}`,style:u?{height:`var(--dsk-openapi-height, ${u})`,overflow:`auto`,"--oa-viewport-h":`var(--dsk-openapi-height, ${u})`}:void 0},[e]);if(o===`block`){let e=a??t.source;return d(s(m,{...D(r),source:e,editable:r.editable===!0,locale:l,"onUpdate:source":e=>{a=e,n.emit(`change`,{source:e})}}))}if(o===`editor`)return d(s(h,{modelValue:a??t.source,...r.view?{view:r.view}:{},locale:l,...r.baseUrl?{baseUrl:r.baseUrl}:{},...r.labels?{labels:r.labels}:{},"onUpdate:modelValue":e=>{a=e,n.emit(`change`,{source:e})},onIssues:e=>n.emit(`issues`,{issues:e})}));let f=r.spec??(typeof r.src==`string`&&r.src!==``?x(r.src):t.source||void 0),p={ref:i.set,onLoaded:(e,t)=>n.emit(`loaded`,{id:t??`spec`,title:O(e)}),onError:(e,t)=>n.emit(`error`,{id:t??`spec`,message:c(e)})};if(o===`operation`)return d(s(g,{...D(r),...p,spec:f,operation:String(r.operation??``),locale:l,...r.referenceUrl?{referenceUrl:r.referenceUrl}:{},...r.specId?{specId:r.specId}:{}}));let v=S(r.specs);return d(s(_,{...D(r),...p,...v?{specs:v}:{spec:f},...r.active?{active:r.active}:{},...r.heading?{title:r.heading}:{},...r.hashNavigation===void 0?{}:{hashNavigation:r.hashNavigation},locale:l,"onUpdate:active":e=>n.emit(`active`,{id:e})}))}),u=()=>{let e=i.ref.value;if(!e)throw Error(`the reference is not ready`);return e},d=l(n);return{update(){n.source()!==o.view.source&&(a=null),o.refresh()},destroy:()=>{d?.destroy(),o.unmount()},api:{enterFullscreen:()=>d?.enter(),exitFullscreen:()=>d?.exit(),get fullscreen(){return d?.active??!1},go:(e,t)=>u().go(C(String(e)),t),open:e=>u().open(e),print:()=>u().print?.(),get loaded(){return i.ref.value?.spec??null},get value(){return a??n.source()}}}}var j={asyncapi(){return{mount(e,t){e.classList.add(`dsk-openapi-block`,`dsk-asyncapi-block`);let n=d({code:t.code}),r=o(e,()=>s(p,{spec:n.code,locale:i.locale}));return{update(e){e!==n.code&&(n.code=e)},destroy:()=>r.unmount()}}}},openapi(){return{mount(e,t){e.classList.add(`dsk-openapi-block`);let n=d({code:t.code}),r=o(e,()=>s(m,{source:n.code,editable:t.editable,locale:i.locale,"onUpdate:source":e=>{n.code=e,t.setCode(e)}}));return{update(e){e!==n.code&&(n.code=e)},destroy:()=>r.unmount()}}}}};export{C as anchorOf,A as mountElement,j as renderers,y as setup,x as specLoader,S as toSpecs};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dskripchenko/embed",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Drop-in custom elements for any web page from a CDN: video and audio players, Mermaid diagrams, OpenAPI references, process flows, live markdown and a WYSIWYG editor, sharing one Vue runtime and cooperating through a block registry and an event bus.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@dskripchenko/drawio": "0.1.0",
|
|
56
56
|
"@dskripchenko/flow": "1.2.0",
|
|
57
57
|
"@dskripchenko/openapi": "1.2.0",
|
|
58
|
-
"@dskripchenko/ui": "1.
|
|
58
|
+
"@dskripchenko/ui": "1.18.1",
|
|
59
59
|
"@dskripchenko/wysiwyg": "0.5.3",
|
|
60
60
|
"@eslint/js": "^10.0.1",
|
|
61
61
|
"@types/node": "^22.20.5",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e){return e.head.querySelector(`link[rel="stylesheet"]:not([data-dsk-embed]), style:not([data-dsk-embed])`)}function t(e){let t=e.head.querySelectorAll(`link[data-dsk-embed], style[data-dsk-embed]`);return t.length>0?t[t.length-1]:null}function n(n,r){let i=t(n);if(i)i.after(r);else{let t=e(n);t?t.before(r):n.head.appendChild(r)}}function r(e,t,r=document){if(r.querySelector(`style[data-dsk-embed="${e}"]`))return;let i=r.createElement(`style`);i.setAttribute(`data-dsk-embed`,e),i.textContent=t,n(r,i)}var i={en:{enter:`Full screen`,exit:`Exit full screen`},ru:{enter:`Во весь экран`,exit:`Выйти из полноэкранного режима`}},a=`<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3"/></svg>`,o=`<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3v3a2 2 0 0 1-2 2H3M21 8h-3a2 2 0 0 1-2-2V3M3 16h3a2 2 0 0 1 2 2v3M16 21v-3a2 2 0 0 1 2-2h3"/></svg>`;function s(e,t,n){r(`fullscreen`,`:where(dsk-diagram,dsk-flow,dsk-board,dsk-openapi,dsk-asyncapi,dsk-bpmn,dsk-dmn,dsk-drawio)[data-dsk-state=ready]{position:relative}.dsk-fs-button{z-index:20;border:1px solid var(--uid-border-subtle,#e5e7eb);border-radius:var(--uid-radius-md,8px);background:var(--uid-surface-raised,#fff);width:30px;height:30px;color:var(--uid-text-secondary,#4b5563);cursor:pointer;opacity:0;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:inline-flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #0f172a14}:where(dsk-diagram,dsk-flow,dsk-board,dsk-openapi,dsk-asyncapi,dsk-bpmn,dsk-dmn,dsk-drawio):hover>.dsk-fs-button,.dsk-fs-button:focus-visible,[data-dsk-fullscreen]>.dsk-fs-button{opacity:1}.dsk-fs-button:hover{color:var(--uid-text-primary,#111827)}@media (hover:none){.dsk-fs-button{opacity:1}}dsk-board>.dsk-fs-button,dsk-flow>.dsk-fs-button{left:8px;right:auto}dsk-openapi>.dsk-fs-button,dsk-asyncapi>.dsk-fs-button{top:auto;bottom:8px}dsk-bpmn>.dsk-fs-button,dsk-dmn>.dsk-fs-button{left:8px;right:auto}:where(dsk-diagram,dsk-flow,dsk-board,dsk-openapi,dsk-asyncapi,dsk-bpmn,dsk-dmn,dsk-drawio)[data-dsk-fullscreen]{--dsk-flow-height:100vh;--dsk-board-height:100vh;--dsk-openapi-height:calc(100vh - 32px);--dsk-bpmn-height:100vh;--dsk-dmn-height:100vh;box-sizing:border-box;background:var(--uid-surface,#fff);overflow:auto}:where(dsk-diagram,dsk-openapi,dsk-asyncapi,dsk-drawio)[data-dsk-fullscreen]{padding:16px}[data-dsk-fullscreen] .dsk-flow-frame,[data-dsk-fullscreen] .dsk-board-frame,[data-dsk-fullscreen] .dsk-bpmn-frame{border:0;border-radius:0}dsk-diagram[data-dsk-fullscreen] .dsk-diagram{justify-content:center;align-items:center;min-height:calc(100vh - 32px);display:flex}dsk-diagram[data-dsk-fullscreen] .dsk-diagram svg{width:100%!important;max-width:none!important;height:calc(100vh - 32px)!important}dsk-drawio[data-dsk-fullscreen] .dsk-drawio__page svg{width:100%!important;max-width:none!important;height:calc(100vh - 80px)!important}.dsk-fs-fallback{z-index:2147483000;inset:0;margin:0!important;position:fixed!important}.dsk-fs-locked,.dsk-fs-locked body{overflow:hidden!important}`,e.ownerDocument);let s=document.createElement(`button`);s.type=`button`,s.className=`dsk-fs-button`;let c=i[t===`ru`?`ru`:`en`],l=!1,u=!1,d=()=>{let e=l?c.exit:c.enter;s.innerHTML=l?o:a,s.setAttribute(`aria-label`,e),s.title=e,s.setAttribute(`aria-pressed`,String(l))},f=t=>{t!==l&&(l=t,t?document.addEventListener(`keydown`,p):document.removeEventListener(`keydown`,p),e.toggleAttribute(`data-dsk-fullscreen`,t),d(),n(t))},p=e=>{e.key===`Escape`&&l&&_()},m=()=>{u||f(document.fullscreenElement===e)};function h(){u=!0,e.classList.add(`dsk-fs-fallback`),document.documentElement.classList.add(`dsk-fs-locked`),f(!0)}function g(){if(l)return;let t=e.requestFullscreen;document.fullscreenEnabled&&typeof t==`function`?t.call(e).catch(h):h()}function _(){l&&(u?(u=!1,e.classList.remove(`dsk-fs-fallback`),document.documentElement.classList.remove(`dsk-fs-locked`),f(!1)):document.fullscreenElement===e?document.exitFullscreen().catch(()=>f(!1)):f(!1))}return s.addEventListener(`click`,e=>{e.stopPropagation(),l?_():g()}),s.addEventListener(`pointerdown`,e=>e.stopPropagation()),document.addEventListener(`fullscreenchange`,m),d(),e.appendChild(s),{get active(){return l},enter:g,exit:_,toggle:()=>l?_():g(),relabel(e){c=i[e===`ru`?`ru`:`en`],d()},destroy(){_(),document.removeEventListener(`fullscreenchange`,m),s.remove()}}}function c(e,t){return e.el.getAttribute(`fullscreen`)===`false`?null:s(e.el,e.locale(),n=>{if(e.emit(`fullscreen`,{active:n}),!t)return;let r=!1,i=()=>{r||(r=!0,a?.disconnect(),requestAnimationFrame(()=>{try{t()}catch{}}))},a=typeof ResizeObserver==`function`?new ResizeObserver(()=>setTimeout(i,50)):null;a?.observe(e.el),setTimeout(i,400)})}export{r as n,c as t};
|