@cas-smartdesign/relation 3.0.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/LICENSE ADDED
@@ -0,0 +1,8 @@
1
+ Copyright 2019 CAS Software AG
2
+
3
+ This software is confidential and proprietary information of CAS Software AG. You shall not
4
+ disclose such Confidential Information and shall use it only in accordance with the terms of
5
+ the license agreement you entered into with CAS Software AG or SmartWe World AG.
6
+
7
+ To obtain a license (e.g. by joining the partner programs of CAS Software AG or SmartWe World AG)
8
+ please contact partnerinfo@cas.de or partnerinfo@smartwe.world.
@@ -0,0 +1 @@
1
+ .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;color:#1f2328;background-color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:" ";display:inline-block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>")}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:#0969da;text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:600}.markdown-body dfn{font-style:italic}.markdown-body h1{margin:.67em 0;font-weight:600;padding-bottom:.3em;font-size:2em;border-bottom:1px solid hsla(210,18%,87%,1)}.markdown-body mark{background-color:#fff8c5;color:#1f2328}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid hsla(210,18%,87%,1);height:.25em;padding:0;margin:24px 0;background-color:#d0d7de;border:0}.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::placeholder{color:#6e7781;opacity:1}.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>*:not(summary){display:none!important}.markdown-body a:focus,.markdown-body [role=button]:focus,.markdown-body input[type=radio]:focus,.markdown-body input[type=checkbox]:focus{outline:2px solid #0969da;outline-offset:-2px;box-shadow:none}.markdown-body a:focus:not(:focus-visible),.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible){outline:solid 1px transparent}.markdown-body a:focus-visible,.markdown-body [role=button]:focus-visible,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus-visible{outline:2px solid #0969da;outline-offset:-2px;box-shadow:none}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible{outline-offset:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:#1f2328;vertical-align:middle;background-color:#f6f8fa;border:solid 1px rgba(175,184,193,.2);border-bottom-color:#afb8c133;border-radius:6px;box-shadow:inset 0 -1px #afb8c133}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h2{font-weight:600;padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid hsla(210,18%,87%,1)}.markdown-body h3{font-weight:600;font-size:1.25em}.markdown-body h4{font-weight:600;font-size:1em}.markdown-body h5{font-weight:600;font-size:.875em}.markdown-body h6{font-weight:600;font-size:.85em;color:#656d76}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0;padding:0 1em;color:#656d76;border-left:.25em solid #d0d7de}.markdown-body ul,.markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body tt,.markdown-body code,.markdown-body samp{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;word-wrap:normal}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body input::-webkit-outer-spin-button,.markdown-body input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.markdown-body .mr-2{margin-right:8px!important}.markdown-body:before{display:table;content:""}.markdown-body:after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0!important}.markdown-body>*:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#d1242f}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:16px}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1f2328;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{padding:0 .2em;font-size:inherit}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{padding-bottom:0;border-bottom:0}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type="a s"]{list-style-type:lower-alpha}.markdown-body ol[type="A s"]{list-style-type:upper-alpha}.markdown-body ol[type="i s"]{list-style-type:lower-roman}.markdown-body ol[type="I s"]{list-style-type:upper-roman}.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table th{font-weight:600}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid #d0d7de}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:#fff;border-top:1px solid hsla(210,18%,87%,1)}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #d0d7de}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#1f2328}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:#afb8c133;border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;color:#1f2328;background-color:#f6f8fa;border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.markdown-body [data-footnote-ref]:before{content:"["}.markdown-body [data-footnote-ref]:after{content:"]"}.markdown-body .footnotes{font-size:12px;color:#656d76;border-top:1px solid #d0d7de}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;padding-left:16px;margin-top:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-24px;pointer-events:none;content:"";border:2px solid #0969da;border-radius:6px}.markdown-body .footnotes li:target{color:#1f2328}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:#57606a}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#0550ae}.markdown-body .pl-e,.markdown-body .pl-en{color:#6639ba}.markdown-body .pl-smi,.markdown-body .pl-s .pl-s1{color:#24292f}.markdown-body .pl-ent{color:#116329}.markdown-body .pl-k{color:#cf222e}.markdown-body .pl-s,.markdown-body .pl-pds,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-sr .pl-sra{color:#0a3069}.markdown-body .pl-v,.markdown-body .pl-smw{color:#953800}.markdown-body .pl-bu{color:#82071e}.markdown-body .pl-ii{color:#f6f8fa;background-color:#82071e}.markdown-body .pl-c2{color:#f6f8fa;background-color:#cf222e}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#116329}.markdown-body .pl-ml{color:#3b2300}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#0550ae}.markdown-body .pl-mi{font-style:italic;color:#24292f}.markdown-body .pl-mb{font-weight:700;color:#24292f}.markdown-body .pl-md{color:#82071e;background-color:#ffebe9}.markdown-body .pl-mi1{color:#116329;background-color:#dafbe1}.markdown-body .pl-mc{color:#953800;background-color:#ffd8b5}.markdown-body .pl-mi2{color:#eaeef2;background-color:#0550ae}.markdown-body .pl-mdr{font-weight:700;color:#8250df}.markdown-body .pl-ba{color:#57606a}.markdown-body .pl-sg{color:#8c959f}.markdown-body .pl-corl{text-decoration:underline;color:#0a3069}.markdown-body g-emoji{display:inline-block;min-width:1ch;font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:400;line-height:1;vertical-align:-.075em}.markdown-body g-emoji img{width:1em;height:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:400}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:hover .task-list-item-convert-container,.markdown-body .contains-task-list:focus-within .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.markdown-body .markdown-alert{padding:8px 16px;margin-bottom:16px;color:inherit;border-left:.25em solid #d0d7de}.markdown-body .markdown-alert>:first-child{margin-top:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}.markdown-body .markdown-alert .markdown-alert-title{display:flex;font-weight:500;align-items:center;line-height:1}.markdown-body .markdown-alert.markdown-alert-note{border-left-color:#0969da}.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title{color:#0969da}.markdown-body .markdown-alert.markdown-alert-important{border-left-color:#8250df}.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title{color:#8250df}.markdown-body .markdown-alert.markdown-alert-warning{border-left-color:#9a6700}.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title{color:#9a6700}.markdown-body .markdown-alert.markdown-alert-tip{border-left-color:#1f883d}.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title{color:#1a7f37}.markdown-body .markdown-alert.markdown-alert-caution{border-left-color:#cf222e}.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title{color:#d1242f}
@@ -0,0 +1,222 @@
1
+ (function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function t(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=t(i);fetch(i.href,o)}})();const Rr=`<!-- Load element with all dependencies directly -->
2
+ <script src="./relation-with-externals.js"><\/script>
3
+
4
+ <sd-relation direction="TARGET_TO_SOURCE">
5
+ <div slot="source">Source Type</div>
6
+ <div slot="target">Target Type</div>
7
+ <div slot="description">description</div>
8
+ <div slot="source-cardinality">m</div>
9
+ <div slot="target-cardinality">n</div>
10
+ </sd-relation>
11
+ `,Nr=`<h3 id="read-only">Read-only</h3>
12
+ `,Mr={mainContent:Rr,description:Nr},Tr=Object.freeze(Object.defineProperty({__proto__:null,default:Mr},Symbol.toStringTag,{value:"Module"})),Pr=`<!-- Load element with all dependencies directly -->
13
+ <script src="./relation-with-externals.js"><\/script>
14
+
15
+ <sd-relation>
16
+ <input slot="source" placeholder="Source Type" style="border-width: 0px 0px 1px 0px" />
17
+ <input slot="target" placeholder="Target Type" style="border-width: 0px 0px 1px 0px" />
18
+ <input slot="description" placeholder="description" style="border-width: 0px 0px 1px 0px; margin-bottom: 8px" />
19
+ <select slot="source-cardinality" value="m">
20
+ <option>m</option>
21
+ <option>n</option>
22
+ <option>1</option>
23
+ </select>
24
+ <select slot="target-cardinality" value="m">
25
+ <option>m</option>
26
+ <option>n</option>
27
+ <option>1</option>
28
+ </select>
29
+ </sd-relation>
30
+ `,Ir=`<h3 id="editable">Editable</h3>
31
+ `,jr={mainContent:Pr,description:Ir},Lr=Object.freeze(Object.defineProperty({__proto__:null,default:jr},Symbol.toStringTag,{value:"Module"})),yn=class $e extends HTMLElement{memoizedTemplate(){const e=this.is();if($e.TEMPLATE_CACHE[e])return $e.TEMPLATE_CACHE[e];const t=this.template();return window.ShadyCSS&&window.ShadyCSS.prepareTemplate(t,this.is()),$e.TEMPLATE_CACHE[e]=t,t}connectedCallback(){const e=this.memoizedTemplate();window.ShadyCSS&&window.ShadyCSS.styleElement(this),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(document.importNode(e.content,!0)),requestAnimationFrame(()=>this.dispatchEvent(new CustomEvent("ready"))))}whenReady(e){this.shadowRoot?e():this.addEventListener("ready",()=>e())}};yn.TEMPLATE_CACHE={};let $r=yn;const zr=`<style>
32
+ :host {
33
+ display: flex;
34
+ flex-direction: row;
35
+ padding: 24px 12px;
36
+ contain: layout style;
37
+ font-family: var(--sd-relation-font-family, "Segoe UI", "Lucida Sans", Arial, sans-serif);
38
+ font-style: normal;
39
+ font-size: 16px;
40
+ font-weight: normal;
41
+ white-space: nowrap;
42
+ text-overflow: ellipsis;
43
+ overflow-x: hidden;
44
+ }
45
+
46
+ :host([hidden]) {
47
+ display: none;
48
+ }
49
+
50
+ #source-wrapper,
51
+ #target-wrapper {
52
+ border: 1px solid var(--sd-relation-border-color, #000000);
53
+ padding: 16px;
54
+ min-width: var(--sd-relation-outer-min-width, 128px);
55
+ }
56
+
57
+ #source-wrapper,
58
+ #target-wrapper,
59
+ #description {
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ }
64
+
65
+ #relation {
66
+ position: relative;
67
+ min-width: var(--sd-relation-inner-min-width, 240px);
68
+ }
69
+
70
+ #description {
71
+ border-bottom: 1px solid var(--sd-relation-border-color, #000000);
72
+ position: absolute;
73
+ width: 100%;
74
+ bottom: 50%;
75
+ padding-left: 16px;
76
+ padding-right: 16px;
77
+ box-sizing: border-box;
78
+ }
79
+
80
+ #description ::slotted(*) {
81
+ padding-bottom: 4px;
82
+ }
83
+
84
+ .arrow {
85
+ border: solid var(--sd-relation-border-color, #000000);
86
+ border-width: 0 1px 1px 0;
87
+ padding: 3px !important;
88
+ position: absolute;
89
+ bottom: -4px;
90
+ display: none;
91
+ }
92
+
93
+ :host([direction="TARGET_TO_SOURCE"]) .arrow {
94
+ display: inline-block;
95
+ transform: rotate(135deg);
96
+ left: 1px;
97
+ }
98
+
99
+ :host([direction="SOURCE_TO_TARGET"]) .arrow {
100
+ display: inline-block;
101
+ transform: rotate(-45deg);
102
+ right: 1px;
103
+ }
104
+
105
+ #source-cardinality,
106
+ #target-cardinality {
107
+ display: inline;
108
+ max-width: 50%;
109
+ top: 50%;
110
+ position: absolute;
111
+ }
112
+
113
+ #source-cardinality {
114
+ left: 8px;
115
+ }
116
+
117
+ #target-cardinality {
118
+ right: 8px;
119
+ text-align: right;
120
+ }
121
+
122
+ #source-wrapper ::slotted(*),
123
+ #target-wrapper ::slotted(*),
124
+ #description ::slotted(*) {
125
+ text-align: center;
126
+ }
127
+ </style>
128
+
129
+ <div id="source-wrapper">
130
+ <slot name="source"></slot>
131
+ </div>
132
+ <div id="relation">
133
+ <div id="description">
134
+ <div class="arrow"></div>
135
+ <slot name="description"></slot>
136
+ </div>
137
+ <div id="source-cardinality">
138
+ <slot name="source-cardinality"></slot>
139
+ </div>
140
+ <div id="target-cardinality">
141
+ <slot name="target-cardinality"></slot>
142
+ </div>
143
+ </div>
144
+ <div id="target-wrapper">
145
+ <slot name="target"></slot>
146
+ </div>
147
+ `,Ze=class Ze extends $r{is(){return Ze.ID}template(){const e=document.createElement("template");return e.innerHTML=zr,e}get direction(){return this.getAttribute("direction")}set direction(e){this.setAttribute("direction",e)}};Ze.ID="sd-relation";let fe=Ze;customElements.get(fe.ID)||customElements.define(fe.ID,fe);function wn(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function Br(r){if(r.__esModule)return r;var e=r.default;if(typeof e=="function"){var t=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(r).forEach(function(n){var i=Object.getOwnPropertyDescriptor(r,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return r[n]}})}),t}var At={exports:{}},_=String,xn=function(){return{isColorSupported:!1,reset:_,bold:_,dim:_,italic:_,underline:_,inverse:_,hidden:_,strikethrough:_,black:_,red:_,green:_,yellow:_,blue:_,magenta:_,cyan:_,white:_,gray:_,bgBlack:_,bgRed:_,bgGreen:_,bgYellow:_,bgBlue:_,bgMagenta:_,bgCyan:_,bgWhite:_}};At.exports=xn();At.exports.createColors=xn;var Dr=At.exports;const Ur={},Fr=Object.freeze(Object.defineProperty({__proto__:null,default:Ur},Symbol.toStringTag,{value:"Module"})),$=Br(Fr);let Zt=Dr,Kt=$,ft=class vn extends Error{constructor(e,t,n,i,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),i&&(this.source=i),s&&(this.plugin=s),typeof t<"u"&&typeof n<"u"&&(typeof t=="number"?(this.line=t,this.column=n):(this.line=t.line,this.column=t.column,this.endLine=n.line,this.endColumn=n.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,vn)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=Zt.isColorSupported),Kt&&e&&(t=Kt(t));let n=t.split(/\r?\n/),i=Math.max(this.line-3,0),o=Math.min(this.line+2,n.length),s=String(o).length,l,a;if(e){let{bold:c,gray:h,red:y}=Zt.createColors(!0);l=m=>c(y(m)),a=m=>h(m)}else l=a=c=>c;return n.slice(i,o).map((c,h)=>{let y=i+1+h,m=" "+(" "+y).slice(-s)+" | ";if(y===this.line){let A=a(m.replace(/\d/g," "))+c.slice(0,this.column-1).replace(/[^\t]/g," ");return l(">")+a(m)+c+`
148
+ `+A+l("^")}return" "+a(m)+c}).join(`
149
+ `)}toString(){let e=this.showSourceCode();return e&&(e=`
150
+
151
+ `+e+`
152
+ `),this.name+": "+this.message+e}};var kt=ft;ft.default=ft;var xe={};xe.isClean=Symbol("isClean");xe.my=Symbol("my");const Jt={after:`
153
+ `,beforeClose:`
154
+ `,beforeComment:`
155
+ `,beforeDecl:`
156
+ `,beforeOpen:" ",beforeRule:`
157
+ `,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Hr(r){return r[0].toUpperCase()+r.slice(1)}let dt=class{constructor(e){this.builder=e}atrule(e,t){let n="@"+e.name,i=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName<"u"?n+=e.raws.afterName:i&&(n+=" "),e.nodes)this.block(e,n+i);else{let o=(e.raws.between||"")+(t?";":"");this.builder(n+i+o,e)}}beforeAfter(e,t){let n;e.type==="decl"?n=this.raw(e,null,"beforeDecl"):e.type==="comment"?n=this.raw(e,null,"beforeComment"):t==="before"?n=this.raw(e,null,"beforeRule"):n=this.raw(e,null,"beforeClose");let i=e.parent,o=0;for(;i&&i.type!=="root";)o+=1,i=i.parent;if(n.includes(`
158
+ `)){let s=this.raw(e,null,"indent");if(s.length)for(let l=0;l<o;l++)n+=s}return n}block(e,t){let n=this.raw(e,"between","beforeOpen");this.builder(t+n+"{",e,"start");let i;e.nodes&&e.nodes.length?(this.body(e),i=this.raw(e,"after")):i=this.raw(e,"after","emptyBody"),i&&this.builder(i),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let n=this.raw(e,"semicolon");for(let i=0;i<e.nodes.length;i++){let o=e.nodes[i],s=this.raw(o,"before");s&&this.builder(s),this.stringify(o,t!==i||n)}}comment(e){let t=this.raw(e,"left","commentLeft"),n=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+n+"*/",e)}decl(e,t){let n=this.raw(e,"between","colon"),i=e.prop+n+this.rawValue(e,"value");e.important&&(i+=e.raws.important||" !important"),t&&(i+=";"),this.builder(i,e)}document(e){this.body(e)}raw(e,t,n){let i;if(n||(n=t),t&&(i=e.raws[t],typeof i<"u"))return i;let o=e.parent;if(n==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return Jt[n];let s=e.root();if(s.rawCache||(s.rawCache={}),typeof s.rawCache[n]<"u")return s.rawCache[n];if(n==="before"||n==="after")return this.beforeAfter(e,n);{let l="raw"+Hr(n);this[l]?i=this[l](s,e):s.walk(a=>{if(i=a.raws[t],typeof i<"u")return!1})}return typeof i>"u"&&(i=Jt[n]),s.rawCache[n]=i,i}rawBeforeClose(e){let t;return e.walk(n=>{if(n.nodes&&n.nodes.length>0&&typeof n.raws.after<"u")return t=n.raws.after,t.includes(`
159
+ `)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let n;return e.walkComments(i=>{if(typeof i.raws.before<"u")return n=i.raws.before,n.includes(`
160
+ `)&&(n=n.replace(/[^\n]+$/,"")),!1}),typeof n>"u"?n=this.raw(t,null,"beforeDecl"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeDecl(e,t){let n;return e.walkDecls(i=>{if(typeof i.raws.before<"u")return n=i.raws.before,n.includes(`
161
+ `)&&(n=n.replace(/[^\n]+$/,"")),!1}),typeof n>"u"?n=this.raw(t,null,"beforeRule"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeOpen(e){let t;return e.walk(n=>{if(n.type!=="decl"&&(t=n.raws.between,typeof t<"u"))return!1}),t}rawBeforeRule(e){let t;return e.walk(n=>{if(n.nodes&&(n.parent!==e||e.first!==n)&&typeof n.raws.before<"u")return t=n.raws.before,t.includes(`
162
+ `)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(n=>{if(typeof n.raws.between<"u")return t=n.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(n=>{if(n.nodes&&n.nodes.length===0&&(t=n.raws.after,typeof t<"u"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(n=>{let i=n.parent;if(i&&i!==e&&i.parent&&i.parent===e&&typeof n.raws.before<"u"){let o=n.raws.before.split(`
163
+ `);return t=o[o.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(n=>{if(n.nodes&&n.nodes.length&&n.last.type==="decl"&&(t=n.raws.semicolon,typeof t<"u"))return!1}),t}rawValue(e,t){let n=e[t],i=e.raws[t];return i&&i.value===n?i.raw:n}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};var En=dt;dt.default=dt;let Wr=En;function pt(r,e){new Wr(e).stringify(r)}var Ke=pt;pt.default=pt;let{isClean:Ce,my:Gr}=xe,Zr=kt,Kr=En,Jr=Ke;function gt(r,e){let t=new r.constructor;for(let n in r){if(!Object.prototype.hasOwnProperty.call(r,n)||n==="proxyCache")continue;let i=r[n],o=typeof i;n==="parent"&&o==="object"?e&&(t[n]=e):n==="source"?t[n]=i:Array.isArray(i)?t[n]=i.map(s=>gt(s,t)):(o==="object"&&i!==null&&(i=gt(i)),t[n]=i)}return t}let mt=class{constructor(e={}){this.raws={},this[Ce]=!1,this[Gr]=!0;for(let t in e)if(t==="nodes"){this.nodes=[];for(let n of e[t])typeof n.clone=="function"?this.append(n.clone()):this.append(n)}else this[t]=e[t]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let t in e)this[t]=e[t];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let t=gt(this);for(let n in e)t[n]=e[n];return t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}error(e,t={}){if(this.source){let{end:n,start:i}=this.rangeBy(t);return this.source.input.error(e,{column:i.column,line:i.line},{column:n.column,line:n.line},t)}return new Zr(e)}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:t==="root"?()=>e.root().toProxy():e[t]},set(e,t,n){return e[t]===n||(e[t]=n,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markDirty(){if(this[Ce]){this[Ce]=!1;let e=this;for(;e=e.parent;)e[Ce]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e,t){let n=this.source.start;if(e.index)n=this.positionInside(e.index,t);else if(e.word){t=this.toString();let i=t.indexOf(e.word);i!==-1&&(n=this.positionInside(i,t))}return n}positionInside(e,t){let n=t||this.toString(),i=this.source.start.column,o=this.source.start.line;for(let s=0;s<e;s++)n[s]===`
164
+ `?(i=1,o+=1):i+=1;return{column:i,line:o}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e){let t={column:this.source.start.column,line:this.source.start.line},n=this.source.end?{column:this.source.end.column+1,line:this.source.end.line}:{column:t.column+1,line:t.line};if(e.word){let i=this.toString(),o=i.indexOf(e.word);o!==-1&&(t=this.positionInside(o,i),n=this.positionInside(o+e.word.length,i))}else e.start?t={column:e.start.column,line:e.start.line}:e.index&&(t=this.positionInside(e.index)),e.end?n={column:e.end.column,line:e.end.line}:e.endIndex?n=this.positionInside(e.endIndex):e.index&&(n=this.positionInside(e.index+1));return(n.line<t.line||n.line===t.line&&n.column<=t.column)&&(n={column:t.column+1,line:t.line}),{end:n,start:t}}raw(e,t){return new Kr().raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,n=!1;for(let i of e)i===this?n=!0:n?(this.parent.insertAfter(t,i),t=i):this.parent.insertBefore(t,i);n||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,t){let n={},i=t==null;t=t||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let l=this[s];if(Array.isArray(l))n[s]=l.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,t):a);else if(typeof l=="object"&&l.toJSON)n[s]=l.toJSON(null,t);else if(s==="source"){let a=t.get(l.input);a==null&&(a=o,t.set(l.input,o),o++),n[s]={end:l.end,inputId:a,start:l.start}}else n[s]=l}return i&&(n.inputs=[...t.keys()].map(s=>s.toJSON())),n}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Jr){e.stringify&&(e=e.stringify);let t="";return e(this,n=>{t+=n}),t}warn(e,t,n){let i={node:this};for(let o in n)i[o]=n[o];return e.warn(t,i)}get proxyOf(){return this}};var Je=mt;mt.default=mt;let Vr=Je,bt=class extends Vr{constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};var Ve=bt;bt.default=bt;let qr="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Xr=(r,e=21)=>(t=e)=>{let n="",i=t;for(;i--;)n+=r[Math.random()*r.length|0];return n},Qr=(r=21)=>{let e="",t=r;for(;t--;)e+=qr[Math.random()*64|0];return e};var Yr={nanoid:Qr,customAlphabet:Xr};let{SourceMapConsumer:Vt,SourceMapGenerator:qt}=$,{existsSync:ei,readFileSync:ti}=$,{dirname:lt,join:ni}=$;function ri(r){return Buffer?Buffer.from(r,"base64").toString():window.atob(r)}let yt=class{constructor(e,t){if(t.map===!1)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let n=t.map?t.map.prev:void 0,i=this.loadMap(t.from,n);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=lt(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new Vt(this.text)),this.consumerCache}decodeInline(e){let t=/^data:application\/json;charset=utf-?8;base64,/,n=/^data:application\/json;base64,/,i=/^data:application\/json;charset=utf-?8,/,o=/^data:application\/json,/;if(i.test(e)||o.test(e))return decodeURIComponent(e.substr(RegExp.lastMatch.length));if(t.test(e)||n.test(e))return ri(e.substr(RegExp.lastMatch.length));let s=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+s)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(!t)return;let n=e.lastIndexOf(t.pop()),i=e.indexOf("*/",n);n>-1&&i>-1&&(this.annotation=this.getAnnotationURL(e.substring(n,i)))}loadFile(e){if(this.root=lt(e),ei(e))return this.mapFile=e,ti(e,"utf-8").toString().trim()}loadMap(e,t){if(t===!1)return!1;if(t){if(typeof t=="string")return t;if(typeof t=="function"){let n=t(e);if(n){let i=this.loadFile(n);if(!i)throw new Error("Unable to load previous source map: "+n.toString());return i}}else{if(t instanceof Vt)return qt.fromSourceMap(t).toString();if(t instanceof qt)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let n=this.annotation;return e&&(n=ni(lt(e),n)),this.loadFile(n)}}}startWith(e,t){return e?e.substr(0,t.length)===t:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var Sn=yt;yt.default=yt;let{SourceMapConsumer:ii,SourceMapGenerator:si}=$,{fileURLToPath:Xt,pathToFileURL:Ae}=$,{isAbsolute:wt,resolve:xt}=$,{nanoid:oi}=Yr,at=$,Qt=kt,li=Sn,ct=Symbol("fromOffsetCache"),ai=!!(ii&&si),Yt=!!(xt&&wt),De=class{constructor(e,t={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!Yt||/^\w+:\/\//.test(t.from)||wt(t.from)?this.file=t.from:this.file=xt(t.from)),Yt&&ai){let n=new li(this.css,t);if(n.text){this.map=n;let i=n.consumer().file;!this.file&&i&&(this.file=this.mapResolve(i))}}this.file||(this.id="<input css "+oi(6)+">"),this.map&&(this.map.file=this.from)}error(e,t,n,i={}){let o,s,l;if(t&&typeof t=="object"){let c=t,h=n;if(typeof c.offset=="number"){let y=this.fromOffset(c.offset);t=y.line,n=y.col}else t=c.line,n=c.column;if(typeof h.offset=="number"){let y=this.fromOffset(h.offset);s=y.line,l=y.col}else s=h.line,l=h.column}else if(!n){let c=this.fromOffset(t);t=c.line,n=c.col}let a=this.origin(t,n,s,l);return a?o=new Qt(e,a.endLine===void 0?a.line:{column:a.column,line:a.line},a.endLine===void 0?a.column:{column:a.endColumn,line:a.endLine},a.source,a.file,i.plugin):o=new Qt(e,s===void 0?t:{column:n,line:t},s===void 0?n:{column:l,line:s},this.css,this.file,i.plugin),o.input={column:n,endColumn:l,endLine:s,line:t,source:this.css},this.file&&(Ae&&(o.input.url=Ae(this.file).toString()),o.input.file=this.file),o}fromOffset(e){let t,n;if(this[ct])n=this[ct];else{let o=this.css.split(`
165
+ `);n=new Array(o.length);let s=0;for(let l=0,a=o.length;l<a;l++)n[l]=s,s+=o[l].length+1;this[ct]=n}t=n[n.length-1];let i=0;if(e>=t)i=n.length-1;else{let o=n.length-2,s;for(;i<o;)if(s=i+(o-i>>1),e<n[s])o=s-1;else if(e>=n[s+1])i=s+1;else{i=s;break}}return{col:e-n[i]+1,line:i+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:xt(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,n,i){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:t,line:e});if(!s.source)return!1;let l;typeof n=="number"&&(l=o.originalPositionFor({column:i,line:n}));let a;wt(s.source)?a=Ae(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||Ae(this.map.mapFile));let c={column:s.column,endColumn:l&&l.column,endLine:l&&l.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(Xt)c.file=Xt(a);else throw new Error("file: protocol is not available in this PostCSS build");let h=o.sourceContentFor(s.source);return h&&(c.source=h),c}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}};var qe=De;De.default=De;at&&at.registerInput&&at.registerInput(De);let{SourceMapConsumer:On,SourceMapGenerator:ze}=$,{dirname:Be,relative:_n,resolve:Cn,sep:An}=$,{pathToFileURL:en}=$,ci=qe,ui=!!(On&&ze),hi=!!(Be&&Cn&&_n&&An),fi=class{constructor(e,t,n,i){this.stringify=e,this.mapOpts=n.map||{},this.root=t,this.opts=n,this.css=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let t=`
166
+ `;this.css.includes(`\r
167
+ `)&&(t=`\r
168
+ `),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file)),n=e.root||Be(e.file),i;this.mapOpts.sourcesContent===!1?(i=new On(e.text),i.sourcesContent&&(i.sourcesContent=i.sourcesContent.map(()=>null))):i=e.consumer(),this.map.applySourceMap(i,t,this.toUrl(this.path(n)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],e.type==="comment"&&e.text.indexOf("# sourceMappingURL=")===0&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),hi&&ui&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,t=>{e+=t}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=ze.fromSourceMap(e)}else this.map=new ze({file:this.outputFile()}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new ze({file:this.outputFile()});let e=1,t=1,n="<no source>",i={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(l,a,c)=>{if(this.css+=l,a&&c!=="end"&&(i.generated.line=e,i.generated.column=t-1,a.source&&a.source.start?(i.source=this.sourcePath(a),i.original.line=a.source.start.line,i.original.column=a.source.start.column-1,this.map.addMapping(i)):(i.source=n,i.original.line=1,i.original.column=0,this.map.addMapping(i))),o=l.match(/\n/g),o?(e+=o.length,s=l.lastIndexOf(`
169
+ `),t=l.length-s):t+=l.length,a&&c!=="start"){let h=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==h.last||h.raws.semicolon)&&(a.source&&a.source.end?(i.source=this.sourcePath(a),i.original.line=a.source.end.line,i.original.column=a.source.end.column-1,i.generated.line=e,i.generated.column=t-2,this.map.addMapping(i)):(i.source=n,i.original.line=1,i.original.column=0,i.generated.line=e,i.generated.column=t-1,this.map.addMapping(i)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(t=>t.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let n=this.opts.to?Be(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(n=Be(Cn(n,this.mapOpts.annotation)));let i=_n(n,e);return this.memoizedPaths.set(e,i),i}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new ci(this.css,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let n=t.source.input.from;if(n&&!e[n]){e[n]=!0;let i=this.usesFileUrls?this.toFileUrl(n):this.toUrl(this.path(n));this.map.setSourceContent(i,t.source.input.css)}}});else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(t,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(en){let n=en(e).toString();return this.memoizedFileURLs.set(e,n),n}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;An==="\\"&&(e=e.replace(/\\/g,"/"));let n=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,n),n}};var kn=fi;let di=Je,vt=class extends di{constructor(e){super(e),this.type="comment"}};var Xe=vt;vt.default=vt;let{isClean:Rn,my:Nn}=xe,Mn=Ve,Tn=Xe,pi=Je,Pn,Rt,Nt,In;function jn(r){return r.map(e=>(e.nodes&&(e.nodes=jn(e.nodes)),delete e.source,e))}function Ln(r){if(r[Rn]=!1,r.proxyOf.nodes)for(let e of r.proxyOf.nodes)Ln(e)}let Z=class $n extends pi{append(...e){for(let t of e){let n=this.normalize(t,this.last);for(let i of n)this.proxyOf.nodes.push(i)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),n,i;for(;this.indexes[t]<this.proxyOf.nodes.length&&(n=this.indexes[t],i=e(this.proxyOf.nodes[n],n),i!==!1);)this.indexes[t]+=1;return delete this.indexes[t],i}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:e[t]?t==="each"||typeof t=="string"&&t.startsWith("walk")?(...n)=>e[t](...n.map(i=>typeof i=="function"?(o,s)=>i(o.toProxy(),s):i)):t==="every"||t==="some"?n=>e[t]((i,...o)=>n(i.toProxy(),...o)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(n=>n.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]},set(e,t,n){return e[t]===n||(e[t]=n,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let n=this.index(e),i=this.normalize(t,this.proxyOf.nodes[n]).reverse();n=this.index(e);for(let s of i)this.proxyOf.nodes.splice(n+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],n<o&&(this.indexes[s]=o+i.length);return this.markDirty(),this}insertBefore(e,t){let n=this.index(e),i=n===0?"prepend":!1,o=this.normalize(t,this.proxyOf.nodes[n],i).reverse();n=this.index(e);for(let l of o)this.proxyOf.nodes.splice(n,0,l);let s;for(let l in this.indexes)s=this.indexes[l],n<=s&&(this.indexes[l]=s+o.length);return this.markDirty(),this}normalize(e,t){if(typeof e=="string")e=jn(Pn(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let i of e)i.parent&&i.parent.removeChild(i,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let i of e)i.parent&&i.parent.removeChild(i,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Mn(e)]}else if(e.selector)e=[new Rt(e)];else if(e.name)e=[new Nt(e)];else if(e.text)e=[new Tn(e)];else throw new Error("Unknown node type in node creation");return e.map(i=>(i[Nn]||$n.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[Rn]&&Ln(i),typeof i.raws.before>"u"&&t&&typeof t.raws.before<"u"&&(i.raws.before=t.raws.before.replace(/\S/g,"")),i.parent=this.proxyOf,i))}prepend(...e){e=e.reverse();for(let t of e){let n=this.normalize(t,this.first,"prepend").reverse();for(let i of n)this.proxyOf.nodes.unshift(i);for(let i in this.indexes)this.indexes[i]=this.indexes[i]+n.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let t;for(let n in this.indexes)t=this.indexes[n],t>=e&&(this.indexes[n]=t-1);return this.markDirty(),this}replaceValues(e,t,n){return n||(n=t,t={}),this.walkDecls(i=>{t.props&&!t.props.includes(i.prop)||t.fast&&!i.value.includes(t.fast)||(i.value=i.value.replace(e,n))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,n)=>{let i;try{i=e(t,n)}catch(o){throw t.addToError(o)}return i!==!1&&t.walk&&(i=t.walk(e)),i})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((n,i)=>{if(n.type==="atrule"&&e.test(n.name))return t(n,i)}):this.walk((n,i)=>{if(n.type==="atrule"&&n.name===e)return t(n,i)}):(t=e,this.walk((n,i)=>{if(n.type==="atrule")return t(n,i)}))}walkComments(e){return this.walk((t,n)=>{if(t.type==="comment")return e(t,n)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((n,i)=>{if(n.type==="decl"&&e.test(n.prop))return t(n,i)}):this.walk((n,i)=>{if(n.type==="decl"&&n.prop===e)return t(n,i)}):(t=e,this.walk((n,i)=>{if(n.type==="decl")return t(n,i)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((n,i)=>{if(n.type==="rule"&&e.test(n.selector))return t(n,i)}):this.walk((n,i)=>{if(n.type==="rule"&&n.selector===e)return t(n,i)}):(t=e,this.walk((n,i)=>{if(n.type==="rule")return t(n,i)}))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};Z.registerParse=r=>{Pn=r};Z.registerRule=r=>{Rt=r};Z.registerAtRule=r=>{Nt=r};Z.registerRoot=r=>{In=r};var ee=Z;Z.default=Z;Z.rebuild=r=>{r.type==="atrule"?Object.setPrototypeOf(r,Nt.prototype):r.type==="rule"?Object.setPrototypeOf(r,Rt.prototype):r.type==="decl"?Object.setPrototypeOf(r,Mn.prototype):r.type==="comment"?Object.setPrototypeOf(r,Tn.prototype):r.type==="root"&&Object.setPrototypeOf(r,In.prototype),r[Nn]=!0,r.nodes&&r.nodes.forEach(e=>{Z.rebuild(e)})};let gi=ee,zn,Bn,pe=class extends gi{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new zn(new Bn,this,e).stringify()}};pe.registerLazyResult=r=>{zn=r};pe.registerProcessor=r=>{Bn=r};var Mt=pe;pe.default=pe;let Et=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let n=t.node.rangeBy(t);this.line=n.start.line,this.column=n.start.column,this.endLine=n.end.line,this.endColumn=n.end.column}for(let n in t)this[n]=t[n]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var Dn=Et;Et.default=Et;let mi=Dn,St=class{constructor(e,t,n){this.processor=e,this.messages=[],this.root=t,this.opts=n,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let n=new mi(e,t);return this.messages.push(n),n}warnings(){return this.messages.filter(e=>e.type==="warning")}get content(){return this.css}};var Tt=St;St.default=St;const ut=39,tn=34,ke=92,nn=47,Re=10,ce=32,Ne=12,Me=9,Te=13,bi=91,yi=93,wi=40,xi=41,vi=123,Ei=125,Si=59,Oi=42,_i=58,Ci=64,Pe=/[\t\n\f\r "#'()/;[\\\]{}]/g,Ie=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Ai=/.[\r\n"'(/\\]/,rn=/[\da-f]/i;var ki=function(e,t={}){let n=e.css.valueOf(),i=t.ignoreErrors,o,s,l,a,c,h,y,m,A,R,j=n.length,g=0,F=[],H=[];function V(){return g}function L(z){throw e.error("Unclosed "+z,g)}function W(){return H.length===0&&g>=j}function ae(z){if(H.length)return H.pop();if(g>=j)return;let T=z?z.ignoreUnclosed:!1;switch(o=n.charCodeAt(g),o){case Re:case ce:case Me:case Te:case Ne:{s=g;do s+=1,o=n.charCodeAt(s);while(o===ce||o===Re||o===Me||o===Te||o===Ne);R=["space",n.slice(g,s)],g=s-1;break}case bi:case yi:case vi:case Ei:case _i:case Si:case xi:{let q=String.fromCharCode(o);R=[q,q,g];break}case wi:{if(m=F.length?F.pop()[1]:"",A=n.charCodeAt(g+1),m==="url"&&A!==ut&&A!==tn&&A!==ce&&A!==Re&&A!==Me&&A!==Ne&&A!==Te){s=g;do{if(h=!1,s=n.indexOf(")",s+1),s===-1)if(i||T){s=g;break}else L("bracket");for(y=s;n.charCodeAt(y-1)===ke;)y-=1,h=!h}while(h);R=["brackets",n.slice(g,s+1),g,s],g=s}else s=n.indexOf(")",g+1),a=n.slice(g,s+1),s===-1||Ai.test(a)?R=["(","(",g]:(R=["brackets",a,g,s],g=s);break}case ut:case tn:{l=o===ut?"'":'"',s=g;do{if(h=!1,s=n.indexOf(l,s+1),s===-1)if(i||T){s=g+1;break}else L("string");for(y=s;n.charCodeAt(y-1)===ke;)y-=1,h=!h}while(h);R=["string",n.slice(g,s+1),g,s],g=s;break}case Ci:{Pe.lastIndex=g+1,Pe.test(n),Pe.lastIndex===0?s=n.length-1:s=Pe.lastIndex-2,R=["at-word",n.slice(g,s+1),g,s],g=s;break}case ke:{for(s=g,c=!0;n.charCodeAt(s+1)===ke;)s+=1,c=!c;if(o=n.charCodeAt(s+1),c&&o!==nn&&o!==ce&&o!==Re&&o!==Me&&o!==Te&&o!==Ne&&(s+=1,rn.test(n.charAt(s)))){for(;rn.test(n.charAt(s+1));)s+=1;n.charCodeAt(s+1)===ce&&(s+=1)}R=["word",n.slice(g,s+1),g,s],g=s;break}default:{o===nn&&n.charCodeAt(g+1)===Oi?(s=n.indexOf("*/",g+2)+1,s===0&&(i||T?s=n.length:L("comment")),R=["comment",n.slice(g,s+1),g,s],g=s):(Ie.lastIndex=g+1,Ie.test(n),Ie.lastIndex===0?s=n.length-1:s=Ie.lastIndex-2,R=["word",n.slice(g,s+1),g,s],F.push(R),g=s);break}}return g++,R}function ne(z){H.push(z)}return{back:ne,endOfFile:W,nextToken:ae,position:V}};let Un=ee,Ue=class extends Un{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};var Pt=Ue;Ue.default=Ue;Un.registerAtRule(Ue);let Fn=ee,Hn,Wn,ie=class extends Fn{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,n){let i=super.normalize(e);if(t){if(n==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let o of i)o.raws.before=t.raws.before}return i}removeChild(e,t){let n=this.index(e);return!t&&n===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),super.removeChild(e)}toResult(e={}){return new Hn(new Wn,this,e).stringify()}};ie.registerLazyResult=r=>{Hn=r};ie.registerProcessor=r=>{Wn=r};var ve=ie;ie.default=ie;Fn.registerRoot(ie);let ge={comma(r){return ge.split(r,[","],!0)},space(r){let e=[" ",`
170
+ `," "];return ge.split(r,e)},split(r,e,t){let n=[],i="",o=!1,s=0,l=!1,a="",c=!1;for(let h of r)c?c=!1:h==="\\"?c=!0:l?h===a&&(l=!1):h==='"'||h==="'"?(l=!0,a=h):h==="("?s+=1:h===")"?s>0&&(s-=1):s===0&&e.includes(h)&&(o=!0),o?(i!==""&&n.push(i.trim()),i="",o=!1):i+=h;return(t||i!=="")&&n.push(i.trim()),n}};var Gn=ge;ge.default=ge;let Zn=ee,Ri=Gn,Fe=class extends Zn{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Ri.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,n=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(n)}};var It=Fe;Fe.default=Fe;Zn.registerRule(Fe);let Ni=Ve,Mi=ki,Ti=Xe,Pi=Pt,Ii=ve,sn=It;const on={empty:!0,space:!0};function ji(r){for(let e=r.length-1;e>=0;e--){let t=r[e],n=t[3]||t[2];if(n)return n}}let Li=class{constructor(e){this.input=e,this.root=new Ii,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new Pi;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let n,i,o,s=!1,l=!1,a=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),n=e[0],n==="("||n==="["?c.push(n==="("?")":"]"):n==="{"&&c.length>0?c.push("}"):n===c[c.length-1]&&c.pop(),c.length===0)if(n===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(n==="{"){l=!0;break}else if(n==="}"){if(a.length>0){for(o=a.length-1,i=a[o];i&&i[0]==="space";)i=a[--o];i&&(t.source.end=this.getPosition(i[3]||i[2]),t.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(t.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(t,"params",a),s&&(e=a[a.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),l&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let n=0,i;for(let o=t-1;o>=0&&(i=e[o],!(i[0]!=="space"&&(n+=1,n===2)));o--);throw this.input.error("Missed semicolon",i[0]==="word"?i[3]+1:i[2])}colon(e){let t=0,n,i,o;for(let[s,l]of e.entries()){if(n=l,i=n[0],i==="("&&(t+=1),i===")"&&(t-=1),t===0&&i===":")if(!o)this.doubleColon(n);else{if(o[0]==="word"&&o[1]==="progid")continue;return s}o=n}return!1}comment(e){let t=new Ti;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let n=e[1].slice(2,-2);if(/^\s*$/.test(n))t.text="",t.raws.left=n,t.raws.right="";else{let i=n.match(/^(\s*)([^]*\S)(\s*)$/);t.text=i[2],t.raws.left=i[1],t.raws.right=i[3]}}createTokenizer(){this.tokenizer=Mi(this.input)}decl(e,t){let n=new Ni;this.init(n,e[0][2]);let i=e[e.length-1];for(i[0]===";"&&(this.semicolon=!0,e.pop()),n.source.end=this.getPosition(i[3]||i[2]||ji(e)),n.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),n.raws.before+=e.shift()[1];for(n.source.start=this.getPosition(e[0][2]),n.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;n.prop+=e.shift()[1]}n.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){n.raws.between+=o[1];break}else o[0]==="word"&&/\w/.test(o[1])&&this.unknownWord([o]),n.raws.between+=o[1];(n.prop[0]==="_"||n.prop[0]==="*")&&(n.raws.before+=n.prop[0],n.prop=n.prop.slice(1));let s=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(o=e[c],o[1].toLowerCase()==="!important"){n.important=!0;let h=this.stringFrom(e,c);h=this.spacesFromEnd(e)+h,h!==" !important"&&(n.raws.important=h);break}else if(o[1].toLowerCase()==="important"){let h=e.slice(0),y="";for(let m=c;m>0;m--){let A=h[m][0];if(y.trim().indexOf("!")===0&&A!=="space")break;y=h.pop()[1]+y}y.trim().indexOf("!")===0&&(n.important=!0,n.raws.important=y,e=h)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(n.raws.between+=s.map(c=>c[1]).join(""),s=[]),this.raw(n,"value",s.concat(e),t),n.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new sn;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,n=null,i=!1,o=null,s=[],l=e[1].startsWith("--"),a=[],c=e;for(;c;){if(n=c[0],a.push(c),n==="("||n==="[")o||(o=c),s.push(n==="("?")":"]");else if(l&&i&&n==="{")o||(o=c),s.push("}");else if(s.length===0)if(n===";")if(i){this.decl(a,l);return}else break;else if(n==="{"){this.rule(a);return}else if(n==="}"){this.tokenizer.back(a.pop()),t=!0;break}else n===":"&&(i=!0);else n===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(o),t&&i){if(!l)for(;a.length&&(c=a[a.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,l)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,n,i){let o,s,l=n.length,a="",c=!0,h,y;for(let m=0;m<l;m+=1)o=n[m],s=o[0],s==="space"&&m===l-1&&!i?c=!1:s==="comment"?(y=n[m-1]?n[m-1][0]:"empty",h=n[m+1]?n[m+1][0]:"empty",!on[y]&&!on[h]?a.slice(-1)===","?c=!1:a+=o[1]:c=!1):a+=o[1];if(!c){let m=n.reduce((A,R)=>A+R[1],"");e.raws[t]={raw:m,value:a}}e[t]=a}rule(e){e.pop();let t=new sn;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,n="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)n=e.pop()[1]+n;return n}spacesAndCommentsFromStart(e){let t,n="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)n+=e.shift()[1];return n}spacesFromEnd(e){let t,n="";for(;e.length&&(t=e[e.length-1][0],t==="space");)n=e.pop()[1]+n;return n}stringFrom(e,t){let n="";for(let i=t;i<e.length;i++)n+=e[i][1];return e.splice(t,e.length-t),n}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word",{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};var $i=Li;let zi=ee,Bi=$i,Di=qe;function He(r,e){let t=new Di(r,e),n=new Bi(t);try{n.parse()}catch(i){throw i}return n.root}var jt=He;He.default=He;zi.registerParse(He);let{isClean:U,my:Ui}=xe,Fi=kn,Hi=Ke,Wi=ee,Gi=Mt,ln=Tt,Zi=jt,Ki=ve;const Ji={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Vi={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},qi={Once:!0,postcssPlugin:!0,prepare:!0},se=0;function ue(r){return typeof r=="object"&&typeof r.then=="function"}function Kn(r){let e=!1,t=Ji[r.type];return r.type==="decl"?e=r.prop.toLowerCase():r.type==="atrule"&&(e=r.name.toLowerCase()),e&&r.append?[t,t+"-"+e,se,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:r.append?[t,se,t+"Exit"]:[t,t+"Exit"]}function an(r){let e;return r.type==="document"?e=["Document",se,"DocumentExit"]:r.type==="root"?e=["Root",se,"RootExit"]:e=Kn(r),{eventIndex:0,events:e,iterator:0,node:r,visitorIndex:0,visitors:[]}}function Ot(r){return r[U]=!1,r.nodes&&r.nodes.forEach(e=>Ot(e)),r}let _t={},oe=class Jn{constructor(e,t,n){this.stringified=!1,this.processed=!1;let i;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))i=Ot(t);else if(t instanceof Jn||t instanceof ln)i=Ot(t.root),t.map&&(typeof n.map>"u"&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=t.map);else{let o=Zi;n.syntax&&(o=n.syntax.parse),n.parser&&(o=n.parser),o.parse&&(o=o.parse);try{i=o(t,n)}catch(s){this.processed=!0,this.error=s}i&&!i[Ui]&&Wi.rebuild(i)}this.result=new ln(e,i,n),this.helpers={..._t,postcss:_t,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let n=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=n.postcssPlugin,e.setMessage()):n.postcssVersion}catch(i){console&&console.error&&console.error(i)}return e}prepareVisitors(){this.listeners={};let e=(t,n,i)=>{this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push([t,i])};for(let t of this.plugins)if(typeof t=="object")for(let n in t){if(!Vi[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!qi[n])if(typeof t[n]=="object")for(let i in t[n])i==="*"?e(t,n,t[n][i]):e(t,n+"-"+i.toLowerCase(),t[n][i]);else typeof t[n]=="function"&&e(t,n,t[n])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let t=this.plugins[e],n=this.runOnRoot(t);if(ue(n))try{await n}catch(i){throw this.handleError(i)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[U];){e[U]=!0;let t=[an(e)];for(;t.length>0;){let n=this.visitTick(t);if(ue(n))try{await n}catch(i){let o=t[t.length-1].node;throw this.handleError(i,o)}}}if(this.listeners.OnceExit)for(let[t,n]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let i=e.nodes.map(o=>n(o,this.helpers));await Promise.all(i)}else await n(e,this.helpers)}catch(i){throw this.handleError(i)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(n=>e.Once(n,this.helpers));return ue(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=Hi;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let i=new Fi(t,this.result.root,this.result.opts).generate();return this.result.css=i[0],this.result.map=i[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(ue(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[U];)e[U]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[n,i]of e){this.result.lastPlugin=n;let o;try{o=i(t,this.helpers)}catch(s){throw this.handleError(s,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(ue(o))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:n,visitors:i}=t;if(n.type!=="root"&&n.type!=="document"&&!n.parent){e.pop();return}if(i.length>0&&t.visitorIndex<i.length){let[s,l]=i[t.visitorIndex];t.visitorIndex+=1,t.visitorIndex===i.length&&(t.visitors=[],t.visitorIndex=0),this.result.lastPlugin=s;try{return l(n.toProxy(),this.helpers)}catch(a){throw this.handleError(a,n)}}if(t.iterator!==0){let s=t.iterator,l;for(;l=n.nodes[n.indexes[s]];)if(n.indexes[s]+=1,!l[U]){l[U]=!0,e.push(an(l));return}t.iterator=0,delete n.indexes[s]}let o=t.events;for(;t.eventIndex<o.length;){let s=o[t.eventIndex];if(t.eventIndex+=1,s===se){n.nodes&&n.nodes.length&&(n[U]=!0,t.iterator=n.getIterator());return}else if(this.listeners[s]){t.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[U]=!0;let t=Kn(e);for(let n of t)if(n===se)e.nodes&&e.each(i=>{i[U]||this.walkSync(i)});else{let i=this.listeners[n];if(i&&this.visitSync(i,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};oe.registerPostcss=r=>{_t=r};var Vn=oe;oe.default=oe;Ki.registerLazyResult(oe);Gi.registerLazyResult(oe);let Xi=kn,Qi=Ke,Yi=jt;const es=Tt;let Ct=class{constructor(e,t,n){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=n,this._map=void 0;let i,o=Qi;this.result=new es(this._processor,i,this._opts),this.result.css=t;let s=this;Object.defineProperty(this.result,"root",{get(){return s.root}});let l=new Xi(o,i,this._opts,t);if(l.isMap()){let[a,c]=l.generate();a&&(this.result.css=a),c&&(this.result.map=c)}}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=Yi;try{e=t(this._css,this._opts)}catch(n){this.error=n}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}};var ts=Ct;Ct.default=Ct;let ns=ts,rs=Vn,is=Mt,ss=ve,me=class{constructor(e=[]){this.version="8.4.32",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let n of e)if(n.postcss===!0?n=n():n.postcss&&(n=n.postcss),typeof n=="object"&&Array.isArray(n.plugins))t=t.concat(n.plugins);else if(typeof n=="object"&&n.postcssPlugin)t.push(n);else if(typeof n=="function")t.push(n);else if(!(typeof n=="object"&&(n.parse||n.stringify)))throw new Error(n+" is not a PostCSS plugin");return t}process(e,t={}){return this.plugins.length===0&&typeof t.parser>"u"&&typeof t.stringifier>"u"&&typeof t.syntax>"u"?new ns(this,e,t):new rs(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};var os=me;me.default=me;ss.registerProcessor(me);is.registerProcessor(me);let ls=Ve,as=Sn,cs=Xe,us=Pt,hs=qe,fs=ve,ds=It;function be(r,e){if(Array.isArray(r))return r.map(i=>be(i));let{inputs:t,...n}=r;if(t){e=[];for(let i of t){let o={...i,__proto__:hs.prototype};o.map&&(o.map={...o.map,__proto__:as.prototype}),e.push(o)}}if(n.nodes&&(n.nodes=r.nodes.map(i=>be(i,e))),n.source){let{inputId:i,...o}=n.source;n.source=o,i!=null&&(n.source.input=e[i])}if(n.type==="root")return new fs(n);if(n.type==="decl")return new ls(n);if(n.type==="rule")return new ds(n);if(n.type==="comment")return new cs(n);if(n.type==="atrule")return new us(n);throw new Error("Unknown node type: "+r.type)}var ps=be;be.default=be;var cn={};let gs=kt,qn=Ve,ms=Vn,bs=ee,Lt=os,ys=Ke,ws=ps,Xn=Mt,xs=Dn,Qn=Xe,Yn=Pt,vs=Tt,Es=qe,Ss=jt,Os=Gn,er=It,tr=ve,_s=Je;function E(...r){return r.length===1&&Array.isArray(r[0])&&(r=r[0]),new Lt(r)}E.plugin=function(e,t){let n=!1;function i(...s){console&&console.warn&&!n&&(n=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:
171
+ https://evilmartians.com/chronicles/postcss-8-plugin-migration`),cn.LANG&&cn.LANG.startsWith("cn")&&console.warn(e+`: 里面 postcss.plugin 被弃用. 迁移指南:
172
+ https://www.w3ctech.com/topic/2226`));let l=t(...s);return l.postcssPlugin=e,l.postcssVersion=new Lt().version,l}let o;return Object.defineProperty(i,"postcss",{get(){return o||(o=i()),o}}),i.process=function(s,l,a){return E([i(a)]).process(s,l)},i};E.stringify=ys;E.parse=Ss;E.fromJSON=ws;E.list=Os;E.comment=r=>new Qn(r);E.atRule=r=>new Yn(r);E.decl=r=>new qn(r);E.rule=r=>new er(r);E.root=r=>new tr(r);E.document=r=>new Xn(r);E.CssSyntaxError=gs;E.Declaration=qn;E.Container=bs;E.Processor=Lt;E.Document=Xn;E.Comment=Qn;E.Warning=xs;E.AtRule=Yn;E.Result=vs;E.Input=Es;E.Rule=er;E.Root=tr;E.Node=_s;ms.registerPostcss(E);var Cs=E;E.default=E;const C=wn(Cs);C.stringify;C.fromJSON;C.plugin;C.parse;C.list;C.document;C.comment;C.atRule;C.rule;C.decl;C.root;C.CssSyntaxError;C.Declaration;C.Container;C.Processor;C.Document;C.Comment;C.Warning;C.AtRule;C.Result;C.Input;C.Rule;C.Root;C.Node;var As=function(e){const t=e.prefix,n=/\s+$/.test(t)?t:`${t} `,i=e.ignoreFiles?[].concat(e.ignoreFiles):[],o=e.includeFiles?[].concat(e.includeFiles):[];return function(s){i.length&&s.source.input.file&&un(s.source.input.file,i)||o.length&&s.source.input.file&&!un(s.source.input.file,o)||s.walkRules(l=>{const a=["keyframes","-webkit-keyframes","-moz-keyframes","-o-keyframes"];l.parent&&a.includes(l.parent.name)||(l.selectors=l.selectors.map(c=>e.exclude&&ks(c,e.exclude)?c:e.transform?e.transform(t,c,n+c,s.source.input.file,l):n+c))})}};function un(r,e){return e.some(t=>t instanceof RegExp?t.test(r):r.includes(t))}function ks(r,e){return e.some(t=>t instanceof RegExp?t.test(r):r===t)}const Rs=wn(As),Ns="code{white-space:pre}.example{display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;gap:16px}.example>*{flex:1 1 500px}.example .tab-control{overflow:hidden}.example div[role=tab]{cursor:pointer;padding:8px 16px;display:inline-block;font-size:16px;border-bottom:2px solid transparent;background-clip:padding-box;-webkit-user-select:none;user-select:none}.example div[role=tab]:hover{background-color:#1467ba14}.example div[role=tab][selected]{background-color:#1467ba21;border-bottom:2px solid #1467ba}.tab-content{margin:16px 0}.tab-content>pre{padding-top:0}.tab-content.code{max-height:500px;overflow:auto}.tab-content.code pre{margin:0}",Ms="pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}";function Ts(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function nr(r){return r instanceof Map?r.clear=r.delete=r.set=function(){throw new Error("map is read-only")}:r instanceof Set&&(r.add=r.clear=r.delete=function(){throw new Error("set is read-only")}),Object.freeze(r),Object.getOwnPropertyNames(r).forEach(e=>{const t=r[e],n=typeof t;(n==="object"||n==="function")&&!Object.isFrozen(t)&&nr(t)}),r}class hn{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function rr(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function J(r,...e){const t=Object.create(null);for(const n in r)t[n]=r[n];return e.forEach(function(n){for(const i in n)t[i]=n[i]}),t}const Ps="</span>",fn=r=>!!r.scope,Is=(r,{prefix:e})=>{if(r.startsWith("language:"))return r.replace("language:","language-");if(r.includes(".")){const t=r.split(".");return[`${e}${t.shift()}`,...t.map((n,i)=>`${n}${"_".repeat(i+1)}`)].join(" ")}return`${e}${r}`};class js{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=rr(e)}openNode(e){if(!fn(e))return;const t=Is(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){fn(e)&&(this.buffer+=Ps)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const dn=(r={})=>{const e={children:[]};return Object.assign(e,r),e};class $t{constructor(){this.rootNode=dn(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=dn({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(n=>this._walk(e,n)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{$t._collapse(t)}))}}class Ls extends $t{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new js(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function ye(r){return r?typeof r=="string"?r:r.source:null}function ir(r){return te("(?=",r,")")}function $s(r){return te("(?:",r,")*")}function zs(r){return te("(?:",r,")?")}function te(...r){return r.map(e=>ye(e)).join("")}function Bs(r){const e=r[r.length-1];return typeof e=="object"&&e.constructor===Object?(r.splice(r.length-1,1),e):{}}function zt(...r){return"("+(Bs(r).capture?"":"?:")+r.map(e=>ye(e)).join("|")+")"}function sr(r){return new RegExp(r.toString()+"|").exec("").length-1}function Ds(r,e){const t=r&&r.exec(e);return t&&t.index===0}const Us=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Bt(r,{joinWith:e}){let t=0;return r.map(n=>{t+=1;const i=t;let o=ye(n),s="";for(;o.length>0;){const l=Us.exec(o);if(!l){s+=o;break}s+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),l[0][0]==="\\"&&l[1]?s+="\\"+String(Number(l[1])+i):(s+=l[0],l[0]==="("&&t++)}return s}).map(n=>`(${n})`).join(e)}const Fs=/\b\B/,or="[a-zA-Z]\\w*",Dt="[a-zA-Z_]\\w*",lr="\\b\\d+(\\.\\d+)?",ar="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",cr="\\b(0b[01]+)",Hs="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Ws=(r={})=>{const e=/^#![ ]*\//;return r.binary&&(r.begin=te(e,/.*\b/,r.binary,/\b.*/)),J({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,n)=>{t.index!==0&&n.ignoreMatch()}},r)},we={begin:"\\\\[\\s\\S]",relevance:0},Gs={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[we]},Zs={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[we]},Ks={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Qe=function(r,e,t={}){const n=J({scope:"comment",begin:r,end:e,contains:[]},t);n.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=zt("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return n.contains.push({begin:te(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),n},Js=Qe("//","$"),Vs=Qe("/\\*","\\*/"),qs=Qe("#","$"),Xs={scope:"number",begin:lr,relevance:0},Qs={scope:"number",begin:ar,relevance:0},Ys={scope:"number",begin:cr,relevance:0},eo={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[we,{begin:/\[/,end:/\]/,relevance:0,contains:[we]}]},to={scope:"title",begin:or,relevance:0},no={scope:"title",begin:Dt,relevance:0},ro={begin:"\\.\\s*"+Dt,relevance:0},io=function(r){return Object.assign(r,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var je=Object.freeze({__proto__:null,APOS_STRING_MODE:Gs,BACKSLASH_ESCAPE:we,BINARY_NUMBER_MODE:Ys,BINARY_NUMBER_RE:cr,COMMENT:Qe,C_BLOCK_COMMENT_MODE:Vs,C_LINE_COMMENT_MODE:Js,C_NUMBER_MODE:Qs,C_NUMBER_RE:ar,END_SAME_AS_BEGIN:io,HASH_COMMENT_MODE:qs,IDENT_RE:or,MATCH_NOTHING_RE:Fs,METHOD_GUARD:ro,NUMBER_MODE:Xs,NUMBER_RE:lr,PHRASAL_WORDS_MODE:Ks,QUOTE_STRING_MODE:Zs,REGEXP_MODE:eo,RE_STARTERS_RE:Hs,SHEBANG:Ws,TITLE_MODE:to,UNDERSCORE_IDENT_RE:Dt,UNDERSCORE_TITLE_MODE:no});function so(r,e){r.input[r.index-1]==="."&&e.ignoreMatch()}function oo(r,e){r.className!==void 0&&(r.scope=r.className,delete r.className)}function lo(r,e){e&&r.beginKeywords&&(r.begin="\\b("+r.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",r.__beforeBegin=so,r.keywords=r.keywords||r.beginKeywords,delete r.beginKeywords,r.relevance===void 0&&(r.relevance=0))}function ao(r,e){Array.isArray(r.illegal)&&(r.illegal=zt(...r.illegal))}function co(r,e){if(r.match){if(r.begin||r.end)throw new Error("begin & end are not supported with match");r.begin=r.match,delete r.match}}function uo(r,e){r.relevance===void 0&&(r.relevance=1)}const ho=(r,e)=>{if(!r.beforeMatch)return;if(r.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},r);Object.keys(r).forEach(n=>{delete r[n]}),r.keywords=t.keywords,r.begin=te(t.beforeMatch,ir(t.begin)),r.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},r.relevance=0,delete t.beforeMatch},fo=["of","and","for","in","not","or","if","then","parent","list","value"],po="keyword";function ur(r,e,t=po){const n=Object.create(null);return typeof r=="string"?i(t,r.split(" ")):Array.isArray(r)?i(t,r):Object.keys(r).forEach(function(o){Object.assign(n,ur(r[o],e,o))}),n;function i(o,s){e&&(s=s.map(l=>l.toLowerCase())),s.forEach(function(l){const a=l.split("|");n[a[0]]=[o,go(a[0],a[1])]})}}function go(r,e){return e?Number(e):mo(r)?0:1}function mo(r){return fo.includes(r.toLowerCase())}const pn={},Y=r=>{console.error(r)},gn=(r,...e)=>{console.log(`WARN: ${r}`,...e)},re=(r,e)=>{pn[`${r}/${e}`]||(console.log(`Deprecated as of ${r}. ${e}`),pn[`${r}/${e}`]=!0)},We=new Error;function hr(r,e,{key:t}){let n=0;const i=r[t],o={},s={};for(let l=1;l<=e.length;l++)s[l+n]=i[l],o[l+n]=!0,n+=sr(e[l-1]);r[t]=s,r[t]._emit=o,r[t]._multi=!0}function bo(r){if(Array.isArray(r.begin)){if(r.skip||r.excludeBegin||r.returnBegin)throw Y("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),We;if(typeof r.beginScope!="object"||r.beginScope===null)throw Y("beginScope must be object"),We;hr(r,r.begin,{key:"beginScope"}),r.begin=Bt(r.begin,{joinWith:""})}}function yo(r){if(Array.isArray(r.end)){if(r.skip||r.excludeEnd||r.returnEnd)throw Y("skip, excludeEnd, returnEnd not compatible with endScope: {}"),We;if(typeof r.endScope!="object"||r.endScope===null)throw Y("endScope must be object"),We;hr(r,r.end,{key:"endScope"}),r.end=Bt(r.end,{joinWith:""})}}function wo(r){r.scope&&typeof r.scope=="object"&&r.scope!==null&&(r.beginScope=r.scope,delete r.scope)}function xo(r){wo(r),typeof r.beginScope=="string"&&(r.beginScope={_wrap:r.beginScope}),typeof r.endScope=="string"&&(r.endScope={_wrap:r.endScope}),bo(r),yo(r)}function vo(r){function e(s,l){return new RegExp(ye(s),"m"+(r.case_insensitive?"i":"")+(r.unicodeRegex?"u":"")+(l?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(l,a){a.position=this.position++,this.matchIndexes[this.matchAt]=a,this.regexes.push([a,l]),this.matchAt+=sr(l)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const l=this.regexes.map(a=>a[1]);this.matcherRe=e(Bt(l,{joinWith:"|"}),!0),this.lastIndex=0}exec(l){this.matcherRe.lastIndex=this.lastIndex;const a=this.matcherRe.exec(l);if(!a)return null;const c=a.findIndex((y,m)=>m>0&&y!==void 0),h=this.matchIndexes[c];return a.splice(0,c),Object.assign(a,h)}}class n{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(l){if(this.multiRegexes[l])return this.multiRegexes[l];const a=new t;return this.rules.slice(l).forEach(([c,h])=>a.addRule(c,h)),a.compile(),this.multiRegexes[l]=a,a}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(l,a){this.rules.push([l,a]),a.type==="begin"&&this.count++}exec(l){const a=this.getMatcher(this.regexIndex);a.lastIndex=this.lastIndex;let c=a.exec(l);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const h=this.getMatcher(0);h.lastIndex=this.lastIndex+1,c=h.exec(l)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(s){const l=new n;return s.contains.forEach(a=>l.addRule(a.begin,{rule:a,type:"begin"})),s.terminatorEnd&&l.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&l.addRule(s.illegal,{type:"illegal"}),l}function o(s,l){const a=s;if(s.isCompiled)return a;[oo,co,xo,ho].forEach(h=>h(s,l)),r.compilerExtensions.forEach(h=>h(s,l)),s.__beforeBegin=null,[lo,ao,uo].forEach(h=>h(s,l)),s.isCompiled=!0;let c=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),c=s.keywords.$pattern,delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=ur(s.keywords,r.case_insensitive)),a.keywordPatternRe=e(c,!0),l&&(s.begin||(s.begin=/\B|\b/),a.beginRe=e(a.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(a.endRe=e(a.end)),a.terminatorEnd=ye(a.end)||"",s.endsWithParent&&l.terminatorEnd&&(a.terminatorEnd+=(s.end?"|":"")+l.terminatorEnd)),s.illegal&&(a.illegalRe=e(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(h){return Eo(h==="self"?s:h)})),s.contains.forEach(function(h){o(h,a)}),s.starts&&o(s.starts,l),a.matcher=i(a),a}if(r.compilerExtensions||(r.compilerExtensions=[]),r.contains&&r.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return r.classNameAliases=J(r.classNameAliases||{}),o(r)}function fr(r){return r?r.endsWithParent||fr(r.starts):!1}function Eo(r){return r.variants&&!r.cachedVariants&&(r.cachedVariants=r.variants.map(function(e){return J(r,{variants:null},e)})),r.cachedVariants?r.cachedVariants:fr(r)?J(r,{starts:r.starts?J(r.starts):null}):Object.isFrozen(r)?J(r):r}var So="11.9.0";class Oo extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const ht=rr,mn=J,bn=Symbol("nomatch"),_o=7,dr=function(r){const e=Object.create(null),t=Object.create(null),n=[];let i=!0;const o="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let l={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Ls};function a(u){return l.noHighlightRe.test(u)}function c(u){let d=u.className+" ";d+=u.parentNode?u.parentNode.className:"";const w=l.languageDetectRe.exec(d);if(w){const v=T(w[1]);return v||(gn(o.replace("{}",w[1])),gn("Falling back to no-highlight mode for this block.",u)),v?w[1]:"no-highlight"}return d.split(/\s+/).find(v=>a(v)||T(v))}function h(u,d,w){let v="",k="";typeof d=="object"?(v=u,w=d.ignoreIllegals,k=d.language):(re("10.7.0","highlight(lang, code, ...args) has been deprecated."),re("10.7.0",`Please use highlight(code, options) instead.
173
+ https://github.com/highlightjs/highlight.js/issues/2277`),k=u,v=d),w===void 0&&(w=!0);const P={code:v,language:k};X("before:highlight",P);const K=P.result?P.result:y(P.language,P.code,w);return K.code=P.code,X("after:highlight",K),K}function y(u,d,w,v){const k=Object.create(null);function P(f,p){return f.keywords[p]}function K(){if(!b.keywords){N.addText(O);return}let f=0;b.keywordPatternRe.lastIndex=0;let p=b.keywordPatternRe.exec(O),x="";for(;p;){x+=O.substring(f,p.index);const S=D.case_insensitive?p[0].toLowerCase():p[0],M=P(b,S);if(M){const[G,Ar]=M;if(N.addText(x),x="",k[S]=(k[S]||0)+1,k[S]<=_o&&(_e+=Ar),G.startsWith("_"))x+=p[0];else{const kr=D.classNameAliases[G]||G;B(p[0],kr)}}else x+=p[0];f=b.keywordPatternRe.lastIndex,p=b.keywordPatternRe.exec(O)}x+=O.substring(f),N.addText(x)}function Se(){if(O==="")return;let f=null;if(typeof b.subLanguage=="string"){if(!e[b.subLanguage]){N.addText(O);return}f=y(b.subLanguage,O,!0,Gt[b.subLanguage]),Gt[b.subLanguage]=f._top}else f=A(O,b.subLanguage.length?b.subLanguage:null);b.relevance>0&&(_e+=f.relevance),N.__addSublanguage(f._emitter,f.language)}function I(){b.subLanguage!=null?Se():K(),O=""}function B(f,p){f!==""&&(N.startScope(p),N.addText(f),N.endScope())}function Ut(f,p){let x=1;const S=p.length-1;for(;x<=S;){if(!f._emit[x]){x++;continue}const M=D.classNameAliases[f[x]]||f[x],G=p[x];M?B(G,M):(O=G,K(),O=""),x++}}function Ft(f,p){return f.scope&&typeof f.scope=="string"&&N.openNode(D.classNameAliases[f.scope]||f.scope),f.beginScope&&(f.beginScope._wrap?(B(O,D.classNameAliases[f.beginScope._wrap]||f.beginScope._wrap),O=""):f.beginScope._multi&&(Ut(f.beginScope,p),O="")),b=Object.create(f,{parent:{value:b}}),b}function Ht(f,p,x){let S=Ds(f.endRe,x);if(S){if(f["on:end"]){const M=new hn(f);f["on:end"](p,M),M.isMatchIgnored&&(S=!1)}if(S){for(;f.endsParent&&f.parent;)f=f.parent;return f}}if(f.endsWithParent)return Ht(f.parent,p,x)}function Er(f){return b.matcher.regexIndex===0?(O+=f[0],1):(ot=!0,0)}function Sr(f){const p=f[0],x=f.rule,S=new hn(x),M=[x.__beforeBegin,x["on:begin"]];for(const G of M)if(G&&(G(f,S),S.isMatchIgnored))return Er(p);return x.skip?O+=p:(x.excludeBegin&&(O+=p),I(),!x.returnBegin&&!x.excludeBegin&&(O=p)),Ft(x,f),x.returnBegin?0:p.length}function Or(f){const p=f[0],x=d.substring(f.index),S=Ht(b,f,x);if(!S)return bn;const M=b;b.endScope&&b.endScope._wrap?(I(),B(p,b.endScope._wrap)):b.endScope&&b.endScope._multi?(I(),Ut(b.endScope,f)):M.skip?O+=p:(M.returnEnd||M.excludeEnd||(O+=p),I(),M.excludeEnd&&(O=p));do b.scope&&N.closeNode(),!b.skip&&!b.subLanguage&&(_e+=b.relevance),b=b.parent;while(b!==S.parent);return S.starts&&Ft(S.starts,f),M.returnEnd?0:p.length}function _r(){const f=[];for(let p=b;p!==D;p=p.parent)p.scope&&f.unshift(p.scope);f.forEach(p=>N.openNode(p))}let Oe={};function Wt(f,p){const x=p&&p[0];if(O+=f,x==null)return I(),0;if(Oe.type==="begin"&&p.type==="end"&&Oe.index===p.index&&x===""){if(O+=d.slice(p.index,p.index+1),!i){const S=new Error(`0 width match regex (${u})`);throw S.languageName=u,S.badRule=Oe.rule,S}return 1}if(Oe=p,p.type==="begin")return Sr(p);if(p.type==="illegal"&&!w){const S=new Error('Illegal lexeme "'+x+'" for mode "'+(b.scope||"<unnamed>")+'"');throw S.mode=b,S}else if(p.type==="end"){const S=Or(p);if(S!==bn)return S}if(p.type==="illegal"&&x==="")return 1;if(st>1e5&&st>p.index*3)throw new Error("potential infinite loop, way more iterations than matches");return O+=x,x.length}const D=T(u);if(!D)throw Y(o.replace("{}",u)),new Error('Unknown language: "'+u+'"');const Cr=vo(D);let it="",b=v||Cr;const Gt={},N=new l.__emitter(l);_r();let O="",_e=0,Q=0,st=0,ot=!1;try{if(D.__emitTokens)D.__emitTokens(d,N);else{for(b.matcher.considerAll();;){st++,ot?ot=!1:b.matcher.considerAll(),b.matcher.lastIndex=Q;const f=b.matcher.exec(d);if(!f)break;const p=d.substring(Q,f.index),x=Wt(p,f);Q=f.index+x}Wt(d.substring(Q))}return N.finalize(),it=N.toHTML(),{language:u,value:it,relevance:_e,illegal:!1,_emitter:N,_top:b}}catch(f){if(f.message&&f.message.includes("Illegal"))return{language:u,value:ht(d),illegal:!0,relevance:0,_illegalBy:{message:f.message,index:Q,context:d.slice(Q-100,Q+100),mode:f.mode,resultSoFar:it},_emitter:N};if(i)return{language:u,value:ht(d),illegal:!1,relevance:0,errorRaised:f,_emitter:N,_top:b};throw f}}function m(u){const d={value:ht(u),illegal:!1,relevance:0,_top:s,_emitter:new l.__emitter(l)};return d._emitter.addText(u),d}function A(u,d){d=d||l.languages||Object.keys(e);const w=m(u),v=d.filter(T).filter(Ee).map(I=>y(I,u,!1));v.unshift(w);const k=v.sort((I,B)=>{if(I.relevance!==B.relevance)return B.relevance-I.relevance;if(I.language&&B.language){if(T(I.language).supersetOf===B.language)return 1;if(T(B.language).supersetOf===I.language)return-1}return 0}),[P,K]=k,Se=P;return Se.secondBest=K,Se}function R(u,d,w){const v=d&&t[d]||w;u.classList.add("hljs"),u.classList.add(`language-${v}`)}function j(u){let d=null;const w=c(u);if(a(w))return;if(X("before:highlightElement",{el:u,language:w}),u.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",u);return}if(u.children.length>0&&(l.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(u)),l.throwUnescapedHTML))throw new Oo("One of your code blocks includes unescaped HTML.",u.innerHTML);d=u;const v=d.textContent,k=w?h(v,{language:w,ignoreIllegals:!0}):A(v);u.innerHTML=k.value,u.dataset.highlighted="yes",R(u,w,k.language),u.result={language:k.language,re:k.relevance,relevance:k.relevance},k.secondBest&&(u.secondBest={language:k.secondBest.language,relevance:k.secondBest.relevance}),X("after:highlightElement",{el:u,result:k,text:v})}function g(u){l=mn(l,u)}const F=()=>{L(),re("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function H(){L(),re("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let V=!1;function L(){if(document.readyState==="loading"){V=!0;return}document.querySelectorAll(l.cssSelector).forEach(j)}function W(){V&&L()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",W,!1);function ae(u,d){let w=null;try{w=d(r)}catch(v){if(Y("Language definition for '{}' could not be registered.".replace("{}",u)),i)Y(v);else throw v;w=s}w.name||(w.name=u),e[u]=w,w.rawDefinition=d.bind(null,r),w.aliases&&q(w.aliases,{languageName:u})}function ne(u){delete e[u];for(const d of Object.keys(t))t[d]===u&&delete t[d]}function z(){return Object.keys(e)}function T(u){return u=(u||"").toLowerCase(),e[u]||e[t[u]]}function q(u,{languageName:d}){typeof u=="string"&&(u=[u]),u.forEach(w=>{t[w.toLowerCase()]=d})}function Ee(u){const d=T(u);return d&&!d.disableAutodetect}function et(u){u["before:highlightBlock"]&&!u["before:highlightElement"]&&(u["before:highlightElement"]=d=>{u["before:highlightBlock"](Object.assign({block:d.el},d))}),u["after:highlightBlock"]&&!u["after:highlightElement"]&&(u["after:highlightElement"]=d=>{u["after:highlightBlock"](Object.assign({block:d.el},d))})}function tt(u){et(u),n.push(u)}function nt(u){const d=n.indexOf(u);d!==-1&&n.splice(d,1)}function X(u,d){const w=u;n.forEach(function(v){v[w]&&v[w](d)})}function rt(u){return re("10.7.0","highlightBlock will be removed entirely in v12.0"),re("10.7.0","Please use highlightElement now."),j(u)}Object.assign(r,{highlight:h,highlightAuto:A,highlightAll:L,highlightElement:j,highlightBlock:rt,configure:g,initHighlighting:F,initHighlightingOnLoad:H,registerLanguage:ae,unregisterLanguage:ne,listLanguages:z,getLanguage:T,registerAliases:q,autoDetection:Ee,inherit:mn,addPlugin:tt,removePlugin:nt}),r.debugMode=function(){i=!1},r.safeMode=function(){i=!0},r.versionString=So,r.regex={concat:te,lookahead:ir,either:zt,optional:zs,anyNumberOfTimes:$s};for(const u in je)typeof je[u]=="object"&&nr(je[u]);return Object.assign(r,je),r},le=dr({});le.newInstance=()=>dr({});var Co=le;le.HighlightJS=le;le.default=le;const Ye=Ts(Co),Ge="[A-Za-z$_][0-9A-Za-z$_]*",pr=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],gr=["true","false","null","undefined","NaN","Infinity"],mr=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],br=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],yr=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],wr=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],xr=[].concat(yr,mr,br);function Ao(r){const e=r.regex,t=(u,{after:d})=>{const w="</"+u[0].slice(1);return u.input.indexOf(w,d)!==-1},n=Ge,i={begin:"<>",end:"</>"},o=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(u,d)=>{const w=u[0].length+u.index,v=u.input[w];if(v==="<"||v===","){d.ignoreMatch();return}v===">"&&(t(u,{after:w})||d.ignoreMatch());let k;const P=u.input.substring(w);if(k=P.match(/^\s*=/)){d.ignoreMatch();return}if((k=P.match(/^\s+extends\s+/))&&k.index===0){d.ignoreMatch();return}}},l={$pattern:Ge,keyword:pr,literal:gr,built_in:xr,"variable.language":wr},a="[0-9](_?[0-9])*",c=`\\.(${a})`,h="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",y={className:"number",variants:[{begin:`(\\b(${h})((${c})|\\.)?|(${c}))[eE][+-]?(${a})\\b`},{begin:`\\b(${h})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},m={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},A={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,m],subLanguage:"xml"}},R={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,m],subLanguage:"css"}},j={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,m],subLanguage:"graphql"}},g={className:"string",begin:"`",end:"`",contains:[r.BACKSLASH_ESCAPE,m]},F={className:"comment",variants:[r.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),r.C_BLOCK_COMMENT_MODE,r.C_LINE_COMMENT_MODE]},H=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,A,R,j,g,{match:/\$\d+/},y];m.contains=H.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(H)});const V=[].concat(F,m.contains),L=V.concat([{begin:/\(/,end:/\)/,keywords:l,contains:["self"].concat(V)}]),W={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:L},ae={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,e.concat(n,"(",e.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},ne={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...mr,...br]}},z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},T={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[W],illegal:/%/},q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Ee(u){return e.concat("(?!",u.join("|"),")")}const et={match:e.concat(/\b/,Ee([...yr,"super","import"]),n,e.lookahead(/\(/)),className:"title.function",relevance:0},tt={begin:e.concat(/\./,e.lookahead(e.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},nt={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},W]},X="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+r.UNDERSCORE_IDENT_RE+")\\s*=>",rt={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(X)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[W]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:L,CLASS_REFERENCE:ne},illegal:/#(?![$_A-z])/,contains:[r.SHEBANG({label:"shebang",binary:"node",relevance:5}),z,r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,A,R,j,g,F,{match:/\$\d+/},y,ne,{className:"attr",begin:n+e.lookahead(":"),relevance:0},rt,{begin:"("+r.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,r.REGEXP_MODE,{className:"function",begin:X,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:r.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:L}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:o},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},T,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+r.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[W,r.inherit(r.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},tt,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[W]},et,q,ae,nt,{match:/\$[(.]/}]}}function ko(r){const e=Ao(r),t=Ge,n=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[e.exports.CLASS_REFERENCE]},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:n},contains:[e.exports.CLASS_REFERENCE]},s={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"],a={$pattern:Ge,keyword:pr.concat(l),literal:gr,built_in:xr.concat(n),"variable.language":wr},c={className:"meta",begin:"@"+t},h=(m,A,R)=>{const j=m.contains.findIndex(g=>g.label===A);if(j===-1)throw new Error("can not find mode to replace");m.contains.splice(j,1,R)};Object.assign(e.keywords,a),e.exports.PARAMS_CONTAINS.push(c),e.contains=e.contains.concat([c,i,o]),h(e,"shebang",r.SHEBANG()),h(e,"use_strict",s);const y=e.contains.find(m=>m.label==="func.def");return y.relevance=0,Object.assign(e,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),e}function Ro(r){const e=r.regex,t=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),n=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},o={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=r.inherit(o,{begin:/\(/,end:/\)/}),l=r.inherit(r.APOS_STRING_MODE,{className:"string"}),a=r.inherit(r.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:n,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[o,a,l,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[o,s,a,l]}]}]},r.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[a]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:e.concat(/</,e.lookahead(e.concat(t,e.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:c}]},{className:"tag",begin:e.concat(/<\//,e.lookahead(e.concat(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}const No=r=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:r.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:r.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Mo=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],To=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],Po=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],Io=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],jo=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function Lo(r){const e=r.regex,t=No(r),n={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",o=/@-?\w[\w]*(-\w+)*/,s="[a-zA-Z-][a-zA-Z0-9_-]*",l=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[t.BLOCK_COMMENT,n,t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+s,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Po.join("|")+")"},{begin:":(:)?("+Io.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+jo.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...l,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...l,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:o},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:To.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...l,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Mo.join("|")+")\\b"}]}}const vr=document.createElement("style");vr.innerText=[Ns,Ms].join(`
174
+ `);document.head.appendChild(vr);Ye.registerLanguage("typescript",ko);Ye.registerLanguage("html",Ro);Ye.registerLanguage("css",Lo);function $o(...r){const e=document.createElement("div"),t=document.createElement("div");t.classList.add("tab-control");const n=document.createElement("div");return r.forEach(i=>{e.appendChild(i),i.addEventListener("click",()=>{r.forEach(o=>o.removeAttribute("selected")),i.setAttribute("selected",""),n.innerHTML="",n.appendChild(i.content),n.className=i.className,n.classList.add("tab-content")})}),t.appendChild(e),t.appendChild(n),n.classList.add("tab-content"),r[0].setAttribute("selected",""),n.appendChild(r[0].content),t}function he(r,e){const t=document.createElement("div");return t.role="tab",t.tabIndex=0,t.innerText=r,t.content=e,e.tagName=="PRE"&&t.classList.add("code"),t}function de(r,e){const t=document.createElement(r);return typeof e=="string"?t.innerHTML=e:e.forEach(n=>{t.appendChild(n)}),t}async function zo(r,e,t){var n,i,o;const s=e.mainContent,l=de("div",s);l.id=`example-preview-${t}`;const a=typeof e.css=="string"||(n=e.css)==null?void 0:n.label,c=typeof e.css=="string"?e.css:(i=e.css)==null?void 0:i.content,h=$o(he("Preview",l),he("HTML",Le("html",s)),...c?[he(a??"CSS",Le("css",c))]:[],...e.initializer&&e.initializer.content?[he(e.initializer.label??"TS",Le("typescript",e.initializer.content))]:[],...(e.additionalSources||[]).map(m=>he(m.label,Le(m.language,m.content))));e.description&&r.appendChild(de("div",e.description));const y=de("div",[h]);y.classList.add("example"),r.appendChild(y),c&&Bo(`#${l.id}`,c),(o=e.initializer)!=null&&o.initialize&&await e.initializer.initialize(l)}function Le(r,e){let t=e.split(/\r?\n/).map(n=>{const i=n.indexOf("///");if(i>-1){const o=n.substring(i+3).trimStart();return o?n.replace(/^(\s*)([^\s].*)$/,`$1${o}`):void 0}return n}).filter(n=>typeof n<"u").join(`
175
+ `).trim();return r&&r!="raw"&&(t=Ye.highlight(t,{language:r}).value),de("pre",[de("code",t)])}function Bo(r,e){const t=document.createElement("style");t.innerHTML=C().use(Rs({prefix:r})).process(e).css,document.head.appendChild(t)}async function Do(r,e=document.body){const t=Fo(e);let n=0;Object.keys(r).forEach(async i=>{const o=document.createElement("div");o.className="example-container",t.appendChild(o);const s=r[i].default;zo(o,s,n++)})}function Uo(r){const e=document.createElement("div");e.id="examples-container";const t=r.querySelector("#examples");return t?t.after(e):r.appendChild(e),e}function Fo(r){return r.children?Uo(r):r}const Ho=`<h1 id="@cas-smartdesign/relation">@cas-smartdesign/relation</h1>
176
+ <p>A custom element that is able to visualize a relation between two objects, considering the cardinality and a description</p>
177
+ <h2 id="attributes">Attributes</h2>
178
+ <ul>
179
+ <li>direction<ul>
180
+ <li>BIDIRECTIONAL ----</li>
181
+ <li>SOURCE_TO_TARGET ---&gt;</li>
182
+ <li>TARGET_TO_SOURCE &lt;---</li>
183
+ </ul>
184
+ </li>
185
+ </ul>
186
+ <h2 id="custom-css-properties">Custom css properties</h2>
187
+ <ul>
188
+ <li>--sd-relation-border-color<ul>
189
+ <li>Specifies the color of the borders that are used in the relation element</li>
190
+ </ul>
191
+ </li>
192
+ <li>--sd-relation-font-family<ul>
193
+ <li>Specifies the font-family of the relation element</li>
194
+ </ul>
195
+ </li>
196
+ <li>--sd-relation-outer-min-width<ul>
197
+ <li>Specifies the min-width of the outer source and target wrapper</li>
198
+ </ul>
199
+ </li>
200
+ <li>--sd-relation-inner-min-width<ul>
201
+ <li>Specifies the min-width of the inner description wrapper</li>
202
+ </ul>
203
+ </li>
204
+ </ul>
205
+ <h2 id="layout">Layout</h2>
206
+ <ul>
207
+ <li><p>There are min-widhts defined for that element, that are necessary to guarantee the correct visualization</p>
208
+ <ul>
209
+ <li>Source and target wrapper - Default 128px</li>
210
+ <li>Relation wrapper - Default 240px</li>
211
+ </ul>
212
+ </li>
213
+ <li><p>Note that these values can be adjusted with the custom css properties above</p>
214
+ <pre><code> ---------- ----------
215
+ | |---------------| |
216
+ ---------- ----------
217
+ 128px 240px 128px
218
+ </code></pre>
219
+ </li>
220
+ </ul>
221
+ <h2 id="examples">Examples</h2>
222
+ `;document.querySelector("#markdown-container").innerHTML=Ho;Do(Object.assign({"./examples/1_read_only/index.ts":Tr,"./examples/2_editable/index.ts":Lr}));
@@ -0,0 +1,24 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <meta http-equiv="X-UA-Compatible" content="ie=edge" />
7
+ <title>Relation element demo</title>
8
+ <style>
9
+ .markdown-body {
10
+ box-sizing: border-box;
11
+ min-width: 200px;
12
+ max-width: 980px;
13
+ margin: 0 auto !important;
14
+ padding-bottom: 45px;
15
+ }
16
+ </style>
17
+ <script type="module" crossorigin src="./doc.mjs"></script>
18
+ <link rel="stylesheet" crossorigin href="./doc.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="markdown-body"><div id="markdown-container"></div></div>
23
+ </body>
24
+ </html>
@@ -0,0 +1,118 @@
1
+ var window;(window||={})["@cas-smartdesign/relation"]=(()=>{var n=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var x=(e,t)=>{for(var i in t)n(e,i,{get:t[i],enumerable:!0})},T=(e,t,i,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of w(t))!E.call(e,o)&&o!==i&&n(e,o,{get:()=>t[o],enumerable:!(d=h(t,o))||d.enumerable});return e};var y=e=>T(n({},"__esModule",{value:!0}),e);var u={};x(u,{Direction:()=>m,RelationElement:()=>a});var s=class r extends HTMLElement{memoizedTemplate(){let t=this.is();if(r.TEMPLATE_CACHE[t])return r.TEMPLATE_CACHE[t];let i=this.template();return window.ShadyCSS&&window.ShadyCSS.prepareTemplate(i,this.is()),r.TEMPLATE_CACHE[t]=i,i}connectedCallback(){let t=this.memoizedTemplate();window.ShadyCSS&&window.ShadyCSS.styleElement(this),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(document.importNode(t.content,!0)),requestAnimationFrame(()=>this.dispatchEvent(new CustomEvent("ready"))))}whenReady(t){this.shadowRoot?t():this.addEventListener("ready",()=>t())}};s.TEMPLATE_CACHE={};var l=s;var g=`<style>
2
+ :host {
3
+ display: flex;
4
+ flex-direction: row;
5
+ padding: 24px 12px;
6
+ contain: layout style;
7
+ font-family: var(--sd-relation-font-family, "Segoe UI", "Lucida Sans", Arial, sans-serif);
8
+ font-style: normal;
9
+ font-size: 16px;
10
+ font-weight: normal;
11
+ white-space: nowrap;
12
+ text-overflow: ellipsis;
13
+ overflow-x: hidden;
14
+ }
15
+
16
+ :host([hidden]) {
17
+ display: none;
18
+ }
19
+
20
+ #source-wrapper,
21
+ #target-wrapper {
22
+ border: 1px solid var(--sd-relation-border-color, #000000);
23
+ padding: 16px;
24
+ min-width: var(--sd-relation-outer-min-width, 128px);
25
+ }
26
+
27
+ #source-wrapper,
28
+ #target-wrapper,
29
+ #description {
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ }
34
+
35
+ #relation {
36
+ position: relative;
37
+ min-width: var(--sd-relation-inner-min-width, 240px);
38
+ }
39
+
40
+ #description {
41
+ border-bottom: 1px solid var(--sd-relation-border-color, #000000);
42
+ position: absolute;
43
+ width: 100%;
44
+ bottom: 50%;
45
+ padding-left: 16px;
46
+ padding-right: 16px;
47
+ box-sizing: border-box;
48
+ }
49
+
50
+ #description ::slotted(*) {
51
+ padding-bottom: 4px;
52
+ }
53
+
54
+ .arrow {
55
+ border: solid var(--sd-relation-border-color, #000000);
56
+ border-width: 0 1px 1px 0;
57
+ padding: 3px !important;
58
+ position: absolute;
59
+ bottom: -4px;
60
+ display: none;
61
+ }
62
+
63
+ :host([direction="TARGET_TO_SOURCE"]) .arrow {
64
+ display: inline-block;
65
+ transform: rotate(135deg);
66
+ left: 1px;
67
+ }
68
+
69
+ :host([direction="SOURCE_TO_TARGET"]) .arrow {
70
+ display: inline-block;
71
+ transform: rotate(-45deg);
72
+ right: 1px;
73
+ }
74
+
75
+ #source-cardinality,
76
+ #target-cardinality {
77
+ display: inline;
78
+ max-width: 50%;
79
+ top: 50%;
80
+ position: absolute;
81
+ }
82
+
83
+ #source-cardinality {
84
+ left: 8px;
85
+ }
86
+
87
+ #target-cardinality {
88
+ right: 8px;
89
+ text-align: right;
90
+ }
91
+
92
+ #source-wrapper ::slotted(*),
93
+ #target-wrapper ::slotted(*),
94
+ #description ::slotted(*) {
95
+ text-align: center;
96
+ }
97
+ </style>
98
+
99
+ <div id="source-wrapper">
100
+ <slot name="source"></slot>
101
+ </div>
102
+ <div id="relation">
103
+ <div id="description">
104
+ <div class="arrow"></div>
105
+ <slot name="description"></slot>
106
+ </div>
107
+ <div id="source-cardinality">
108
+ <slot name="source-cardinality"></slot>
109
+ </div>
110
+ <div id="target-cardinality">
111
+ <slot name="target-cardinality"></slot>
112
+ </div>
113
+ </div>
114
+ <div id="target-wrapper">
115
+ <slot name="target"></slot>
116
+ </div>
117
+ `,p=class c extends l{is(){return c.ID}template(){let t=document.createElement("template");return t.innerHTML=g,t}get direction(){return this.getAttribute("direction")}set direction(t){this.setAttribute("direction",t)}};p.ID="sd-relation";var a=p,m=(e=>(e.BIDIRECTIONAL="BIDIRECTIONAL",e.SOURCE_TO_TARGET="SOURCE_TO_TARGET",e.TARGET_TO_SOURCE="TARGET_TO_SOURCE",e))(m||{});customElements.get(a.ID)||customElements.define(a.ID,a);return y(u);})();
118
+ //# sourceMappingURL=relation-with-externals.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../element-base/element-base.ts", "../template.html?raw", "../relation.ts"],
4
+ "sourcesContent": ["export type IReadyEvent = void;\n\nexport interface CustomEventMap extends HTMLElementEventMap {\n ready: CustomEvent<IReadyEvent>;\n}\n\nexport interface ElementBase {\n addEventListener<K extends keyof CustomEventMap>(\n event: K,\n listener: ((this: this, ev: CustomEventMap[K]) => unknown) | null,\n options?: AddEventListenerOptions | boolean,\n ): void;\n addEventListener(\n type: string,\n callback: EventListenerOrEventListenerObject | null,\n options?: AddEventListenerOptions | boolean,\n ): void;\n removeEventListener<K extends keyof CustomEventMap>(\n type: K,\n listener: (this: this, ev: CustomEventMap[K]) => unknown,\n options?: boolean | EventListenerOptions,\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void;\n dispatchEvent<EventType extends CustomEventMap[keyof CustomEventMap]>(event: EventType): boolean;\n}\n\nexport abstract class ElementBase extends HTMLElement {\n public abstract is(): string;\n\n protected abstract template(): HTMLTemplateElement;\n private static readonly TEMPLATE_CACHE: {\n [name: string]: HTMLTemplateElement;\n } = {};\n private memoizedTemplate(): HTMLTemplateElement {\n const is = this.is();\n if (ElementBase.TEMPLATE_CACHE[is]) {\n return ElementBase.TEMPLATE_CACHE[is];\n }\n const template = this.template();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((window as any).ShadyCSS) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).ShadyCSS.prepareTemplate(template, this.is());\n }\n ElementBase.TEMPLATE_CACHE[is] = template;\n return template;\n }\n\n public connectedCallback() {\n const template = this.memoizedTemplate();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((window as any).ShadyCSS) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).ShadyCSS.styleElement(this);\n }\n if (!this.shadowRoot) {\n this.attachShadow({ mode: \"open\" });\n this.shadowRoot.appendChild(document.importNode(template.content, true));\n requestAnimationFrame(() => this.dispatchEvent(new CustomEvent<IReadyEvent>(\"ready\")));\n }\n }\n\n public whenReady(actor: () => void) {\n if (this.shadowRoot) {\n actor();\n } else {\n this.addEventListener(\"ready\", () => actor());\n }\n }\n}\n", "export default \"<style>\\n\\t:host {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tpadding: 24px 12px;\\n\\t\\tcontain: layout style;\\n\\t\\tfont-family: var(--sd-relation-font-family, \\\"Segoe UI\\\", \\\"Lucida Sans\\\", Arial, sans-serif);\\n\\t\\tfont-style: normal;\\n\\t\\tfont-size: 16px;\\n\\t\\tfont-weight: normal;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow-x: hidden;\\n\\t}\\n\\n\\t:host([hidden]) {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t#source-wrapper,\\n\\t#target-wrapper {\\n\\t\\tborder: 1px solid var(--sd-relation-border-color, #000000);\\n\\t\\tpadding: 16px;\\n\\t\\tmin-width: var(--sd-relation-outer-min-width, 128px);\\n\\t}\\n\\n\\t#source-wrapper,\\n\\t#target-wrapper,\\n\\t#description {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t}\\n\\n\\t#relation {\\n\\t\\tposition: relative;\\n\\t\\tmin-width: var(--sd-relation-inner-min-width, 240px);\\n\\t}\\n\\n\\t#description {\\n\\t\\tborder-bottom: 1px solid var(--sd-relation-border-color, #000000);\\n\\t\\tposition: absolute;\\n\\t\\twidth: 100%;\\n\\t\\tbottom: 50%;\\n\\t\\tpadding-left: 16px;\\n\\t\\tpadding-right: 16px;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\n\\t#description ::slotted(*) {\\n\\t\\tpadding-bottom: 4px;\\n\\t}\\n\\n\\t.arrow {\\n\\t\\tborder: solid var(--sd-relation-border-color, #000000);\\n\\t\\tborder-width: 0 1px 1px 0;\\n\\t\\tpadding: 3px !important;\\n\\t\\tposition: absolute;\\n\\t\\tbottom: -4px;\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t:host([direction=\\\"TARGET_TO_SOURCE\\\"]) .arrow {\\n\\t\\tdisplay: inline-block;\\n\\t\\ttransform: rotate(135deg);\\n\\t\\tleft: 1px;\\n\\t}\\n\\n\\t:host([direction=\\\"SOURCE_TO_TARGET\\\"]) .arrow {\\n\\t\\tdisplay: inline-block;\\n\\t\\ttransform: rotate(-45deg);\\n\\t\\tright: 1px;\\n\\t}\\n\\n\\t#source-cardinality,\\n\\t#target-cardinality {\\n\\t\\tdisplay: inline;\\n\\t\\tmax-width: 50%;\\n\\t\\ttop: 50%;\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t#source-cardinality {\\n\\t\\tleft: 8px;\\n\\t}\\n\\n\\t#target-cardinality {\\n\\t\\tright: 8px;\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t#source-wrapper ::slotted(*),\\n\\t#target-wrapper ::slotted(*),\\n\\t#description ::slotted(*) {\\n\\t\\ttext-align: center;\\n\\t}\\n</style>\\n\\n<div id=\\\"source-wrapper\\\">\\n\\t<slot name=\\\"source\\\"></slot>\\n</div>\\n<div id=\\\"relation\\\">\\n\\t<div id=\\\"description\\\">\\n\\t\\t<div class=\\\"arrow\\\"></div>\\n\\t\\t<slot name=\\\"description\\\"></slot>\\n\\t</div>\\n\\t<div id=\\\"source-cardinality\\\">\\n\\t\\t<slot name=\\\"source-cardinality\\\"></slot>\\n\\t</div>\\n\\t<div id=\\\"target-cardinality\\\">\\n\\t\\t<slot name=\\\"target-cardinality\\\"></slot>\\n\\t</div>\\n</div>\\n<div id=\\\"target-wrapper\\\">\\n\\t<slot name=\\\"target\\\"></slot>\\n</div>\\n\"", "import { ElementBase } from \"@cas-smartdesign/element-base\";\nimport { default as htmlTemplate } from \"./template.html?raw\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [RelationElement.ID]: RelationElement;\n }\n}\n\nexport class RelationElement extends ElementBase {\n public static readonly ID = \"sd-relation\";\n\n is(): string {\n return RelationElement.ID;\n }\n\n protected template(): HTMLTemplateElement {\n const template = document.createElement(\"template\");\n template.innerHTML = htmlTemplate;\n return template;\n }\n\n public get direction(): Direction {\n return this.getAttribute(\"direction\") as Direction;\n }\n\n public set direction(direction: Direction) {\n this.setAttribute(\"direction\", direction);\n }\n}\n\nexport enum Direction {\n BIDIRECTIONAL = \"BIDIRECTIONAL\",\n SOURCE_TO_TARGET = \"SOURCE_TO_TARGET\",\n TARGET_TO_SOURCE = \"TARGET_TO_SOURCE\",\n}\n\nif (!customElements.get(RelationElement.ID)) {\n customElements.define(RelationElement.ID, RelationElement);\n}\n"],
5
+ "mappings": "8gBA8BO,IAAeA,EAAf,MAAeA,UAAoB,WAAY,CAO1C,kBAAwC,CACtC,IAAAC,EAAK,KAAK,GAAA,EACZ,GAAAD,EAAY,eAAeC,CAAE,EACtB,OAAAD,EAAY,eAAeC,CAAE,EAElC,IAAAC,EAAW,KAAK,SAAA,EAEtB,OAAK,OAAe,UAEf,OAAe,SAAS,gBAAgBA,EAAU,KAAK,GAAA,CAAI,EAEpDF,EAAA,eAAeC,CAAE,EAAIC,EAC1BA,CACX,CAEO,mBAAoB,CACjB,IAAAA,EAAW,KAAK,iBAAA,EAEjB,OAAe,UAEf,OAAe,SAAS,aAAa,IAAI,EAEzC,KAAK,aACN,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EAClC,KAAK,WAAW,YAAY,SAAS,WAAWA,EAAS,QAAS,EAAI,CAAC,EACvE,sBAAsB,IAAM,KAAK,cAAc,IAAI,YAAyB,OAAO,CAAC,CAAC,EAE7F,CAEO,UAAUC,EAAmB,CAC5B,KAAK,WACCA,EAAAA,EAEN,KAAK,iBAAiB,QAAS,IAAMA,EAAO,CAAA,CAEpD,CACJ,EAvCIH,EAAwB,eAEpB,CAAA,EAND,IAAeI,EAAfJ,EC9BP,IAAeK,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECSFC,EAAN,MAAMA,UAAwBC,CAAY,CAG7C,IAAa,CACT,OAAOD,EAAgB,EAC3B,CAEU,UAAgC,CAChC,IAAAE,EAAW,SAAS,cAAc,UAAU,EAClD,OAAAA,EAAS,UAAYH,EACdG,CACX,CAEA,IAAW,WAAuB,CACvB,OAAA,KAAK,aAAa,WAAW,CACxC,CAEA,IAAW,UAAUC,EAAsB,CAClC,KAAA,aAAa,YAAaA,CAAS,CAC5C,CACJ,EAnBIH,EAAuB,GAAK,cADzB,IAAMI,EAANJ,EAsBKK,GAAAA,IACRA,EAAA,cAAgB,gBAChBA,EAAA,iBAAmB,mBACnBA,EAAA,iBAAmB,mBAHXA,IAAAA,GAAA,CAAA,CAAA,EAMP,eAAe,IAAID,EAAgB,EAAE,GACvB,eAAA,OAAOA,EAAgB,GAAIA,CAAe",
6
+ "names": ["_ElementBase", "is", "template", "actor", "ElementBase", "htmlTemplate", "_RelationElement", "ElementBase", "template", "direction", "RelationElement", "Direction"]
7
+ }
@@ -0,0 +1,18 @@
1
+ import { ElementBase } from "@cas-smartdesign/element-base";
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ [RelationElement.ID]: RelationElement;
5
+ }
6
+ }
7
+ export declare class RelationElement extends ElementBase {
8
+ static readonly ID = "sd-relation";
9
+ is(): string;
10
+ protected template(): HTMLTemplateElement;
11
+ get direction(): Direction;
12
+ set direction(direction: Direction);
13
+ }
14
+ export declare enum Direction {
15
+ BIDIRECTIONAL = "BIDIRECTIONAL",
16
+ SOURCE_TO_TARGET = "SOURCE_TO_TARGET",
17
+ TARGET_TO_SOURCE = "TARGET_TO_SOURCE"
18
+ }
@@ -0,0 +1,141 @@
1
+ import { ElementBase as r } from "@cas-smartdesign/element-base";
2
+ const o = `<style>
3
+ :host {
4
+ display: flex;
5
+ flex-direction: row;
6
+ padding: 24px 12px;
7
+ contain: layout style;
8
+ font-family: var(--sd-relation-font-family, "Segoe UI", "Lucida Sans", Arial, sans-serif);
9
+ font-style: normal;
10
+ font-size: 16px;
11
+ font-weight: normal;
12
+ white-space: nowrap;
13
+ text-overflow: ellipsis;
14
+ overflow-x: hidden;
15
+ }
16
+
17
+ :host([hidden]) {
18
+ display: none;
19
+ }
20
+
21
+ #source-wrapper,
22
+ #target-wrapper {
23
+ border: 1px solid var(--sd-relation-border-color, #000000);
24
+ padding: 16px;
25
+ min-width: var(--sd-relation-outer-min-width, 128px);
26
+ }
27
+
28
+ #source-wrapper,
29
+ #target-wrapper,
30
+ #description {
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ }
35
+
36
+ #relation {
37
+ position: relative;
38
+ min-width: var(--sd-relation-inner-min-width, 240px);
39
+ }
40
+
41
+ #description {
42
+ border-bottom: 1px solid var(--sd-relation-border-color, #000000);
43
+ position: absolute;
44
+ width: 100%;
45
+ bottom: 50%;
46
+ padding-left: 16px;
47
+ padding-right: 16px;
48
+ box-sizing: border-box;
49
+ }
50
+
51
+ #description ::slotted(*) {
52
+ padding-bottom: 4px;
53
+ }
54
+
55
+ .arrow {
56
+ border: solid var(--sd-relation-border-color, #000000);
57
+ border-width: 0 1px 1px 0;
58
+ padding: 3px !important;
59
+ position: absolute;
60
+ bottom: -4px;
61
+ display: none;
62
+ }
63
+
64
+ :host([direction="TARGET_TO_SOURCE"]) .arrow {
65
+ display: inline-block;
66
+ transform: rotate(135deg);
67
+ left: 1px;
68
+ }
69
+
70
+ :host([direction="SOURCE_TO_TARGET"]) .arrow {
71
+ display: inline-block;
72
+ transform: rotate(-45deg);
73
+ right: 1px;
74
+ }
75
+
76
+ #source-cardinality,
77
+ #target-cardinality {
78
+ display: inline;
79
+ max-width: 50%;
80
+ top: 50%;
81
+ position: absolute;
82
+ }
83
+
84
+ #source-cardinality {
85
+ left: 8px;
86
+ }
87
+
88
+ #target-cardinality {
89
+ right: 8px;
90
+ text-align: right;
91
+ }
92
+
93
+ #source-wrapper ::slotted(*),
94
+ #target-wrapper ::slotted(*),
95
+ #description ::slotted(*) {
96
+ text-align: center;
97
+ }
98
+ </style>
99
+
100
+ <div id="source-wrapper">
101
+ <slot name="source"></slot>
102
+ </div>
103
+ <div id="relation">
104
+ <div id="description">
105
+ <div class="arrow"></div>
106
+ <slot name="description"></slot>
107
+ </div>
108
+ <div id="source-cardinality">
109
+ <slot name="source-cardinality"></slot>
110
+ </div>
111
+ <div id="target-cardinality">
112
+ <slot name="target-cardinality"></slot>
113
+ </div>
114
+ </div>
115
+ <div id="target-wrapper">
116
+ <slot name="target"></slot>
117
+ </div>
118
+ `, e = class e extends r {
119
+ is() {
120
+ return e.ID;
121
+ }
122
+ template() {
123
+ const i = document.createElement("template");
124
+ return i.innerHTML = o, i;
125
+ }
126
+ get direction() {
127
+ return this.getAttribute("direction");
128
+ }
129
+ set direction(i) {
130
+ this.setAttribute("direction", i);
131
+ }
132
+ };
133
+ e.ID = "sd-relation";
134
+ let t = e;
135
+ var a = /* @__PURE__ */ ((n) => (n.BIDIRECTIONAL = "BIDIRECTIONAL", n.SOURCE_TO_TARGET = "SOURCE_TO_TARGET", n.TARGET_TO_SOURCE = "TARGET_TO_SOURCE", n))(a || {});
136
+ customElements.get(t.ID) || customElements.define(t.ID, t);
137
+ export {
138
+ a as Direction,
139
+ t as RelationElement
140
+ };
141
+ //# sourceMappingURL=relation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.mjs","sources":["../template.html?raw","../relation.ts"],"sourcesContent":["export default \"<style>\\n\\t:host {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tpadding: 24px 12px;\\n\\t\\tcontain: layout style;\\n\\t\\tfont-family: var(--sd-relation-font-family, \\\"Segoe UI\\\", \\\"Lucida Sans\\\", Arial, sans-serif);\\n\\t\\tfont-style: normal;\\n\\t\\tfont-size: 16px;\\n\\t\\tfont-weight: normal;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow-x: hidden;\\n\\t}\\n\\n\\t:host([hidden]) {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t#source-wrapper,\\n\\t#target-wrapper {\\n\\t\\tborder: 1px solid var(--sd-relation-border-color, #000000);\\n\\t\\tpadding: 16px;\\n\\t\\tmin-width: var(--sd-relation-outer-min-width, 128px);\\n\\t}\\n\\n\\t#source-wrapper,\\n\\t#target-wrapper,\\n\\t#description {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t}\\n\\n\\t#relation {\\n\\t\\tposition: relative;\\n\\t\\tmin-width: var(--sd-relation-inner-min-width, 240px);\\n\\t}\\n\\n\\t#description {\\n\\t\\tborder-bottom: 1px solid var(--sd-relation-border-color, #000000);\\n\\t\\tposition: absolute;\\n\\t\\twidth: 100%;\\n\\t\\tbottom: 50%;\\n\\t\\tpadding-left: 16px;\\n\\t\\tpadding-right: 16px;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\n\\t#description ::slotted(*) {\\n\\t\\tpadding-bottom: 4px;\\n\\t}\\n\\n\\t.arrow {\\n\\t\\tborder: solid var(--sd-relation-border-color, #000000);\\n\\t\\tborder-width: 0 1px 1px 0;\\n\\t\\tpadding: 3px !important;\\n\\t\\tposition: absolute;\\n\\t\\tbottom: -4px;\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t:host([direction=\\\"TARGET_TO_SOURCE\\\"]) .arrow {\\n\\t\\tdisplay: inline-block;\\n\\t\\ttransform: rotate(135deg);\\n\\t\\tleft: 1px;\\n\\t}\\n\\n\\t:host([direction=\\\"SOURCE_TO_TARGET\\\"]) .arrow {\\n\\t\\tdisplay: inline-block;\\n\\t\\ttransform: rotate(-45deg);\\n\\t\\tright: 1px;\\n\\t}\\n\\n\\t#source-cardinality,\\n\\t#target-cardinality {\\n\\t\\tdisplay: inline;\\n\\t\\tmax-width: 50%;\\n\\t\\ttop: 50%;\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t#source-cardinality {\\n\\t\\tleft: 8px;\\n\\t}\\n\\n\\t#target-cardinality {\\n\\t\\tright: 8px;\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t#source-wrapper ::slotted(*),\\n\\t#target-wrapper ::slotted(*),\\n\\t#description ::slotted(*) {\\n\\t\\ttext-align: center;\\n\\t}\\n</style>\\n\\n<div id=\\\"source-wrapper\\\">\\n\\t<slot name=\\\"source\\\"></slot>\\n</div>\\n<div id=\\\"relation\\\">\\n\\t<div id=\\\"description\\\">\\n\\t\\t<div class=\\\"arrow\\\"></div>\\n\\t\\t<slot name=\\\"description\\\"></slot>\\n\\t</div>\\n\\t<div id=\\\"source-cardinality\\\">\\n\\t\\t<slot name=\\\"source-cardinality\\\"></slot>\\n\\t</div>\\n\\t<div id=\\\"target-cardinality\\\">\\n\\t\\t<slot name=\\\"target-cardinality\\\"></slot>\\n\\t</div>\\n</div>\\n<div id=\\\"target-wrapper\\\">\\n\\t<slot name=\\\"target\\\"></slot>\\n</div>\\n\"","import { ElementBase } from \"@cas-smartdesign/element-base\";\nimport { default as htmlTemplate } from \"./template.html?raw\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [RelationElement.ID]: RelationElement;\n }\n}\n\nexport class RelationElement extends ElementBase {\n public static readonly ID = \"sd-relation\";\n\n is(): string {\n return RelationElement.ID;\n }\n\n protected template(): HTMLTemplateElement {\n const template = document.createElement(\"template\");\n template.innerHTML = htmlTemplate;\n return template;\n }\n\n public get direction(): Direction {\n return this.getAttribute(\"direction\") as Direction;\n }\n\n public set direction(direction: Direction) {\n this.setAttribute(\"direction\", direction);\n }\n}\n\nexport enum Direction {\n BIDIRECTIONAL = \"BIDIRECTIONAL\",\n SOURCE_TO_TARGET = \"SOURCE_TO_TARGET\",\n TARGET_TO_SOURCE = \"TARGET_TO_SOURCE\",\n}\n\nif (!customElements.get(RelationElement.ID)) {\n customElements.define(RelationElement.ID, RelationElement);\n}\n"],"names":["htmlTemplate","_RelationElement","ElementBase","template","direction","RelationElement","Direction"],"mappings":";AAAA,MAAeA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCSFC,IAAN,MAAMA,UAAwBC,EAAY;AAAA,EAG7C,KAAa;AACT,WAAOD,EAAgB;AAAA,EAC3B;AAAA,EAEU,WAAgC;AAChC,UAAAE,IAAW,SAAS,cAAc,UAAU;AAClD,WAAAA,EAAS,YAAYH,GACdG;AAAA,EACX;AAAA,EAEA,IAAW,YAAuB;AACvB,WAAA,KAAK,aAAa,WAAW;AAAA,EACxC;AAAA,EAEA,IAAW,UAAUC,GAAsB;AAClC,SAAA,aAAa,aAAaA,CAAS;AAAA,EAC5C;AACJ;AAnBIH,EAAuB,KAAK;AADzB,IAAMI,IAANJ;AAsBK,IAAAK,sBAAAA,OACRA,EAAA,gBAAgB,iBAChBA,EAAA,mBAAmB,oBACnBA,EAAA,mBAAmB,oBAHXA,IAAAA,KAAA,CAAA,CAAA;AAMP,eAAe,IAAID,EAAgB,EAAE,KACvB,eAAA,OAAOA,EAAgB,IAAIA,CAAe;"}
@@ -0,0 +1,187 @@
1
+ {
2
+ "@cypress/vite-dev-server@5.0.7": {
3
+ "licenses": "MIT",
4
+ "repository": "https://github.com/cypress-io/cypress",
5
+ "licenseUrl": "https://github.com/cypress-io/cypress/tree/develop/npm/vite-dev-server#readme"
6
+ },
7
+ "@rollup/plugin-node-resolve@15.2.3": {
8
+ "licenses": "MIT",
9
+ "repository": "https://github.com/rollup/plugins",
10
+ "licenseUrl": "https://github.com/rollup/plugins/raw/HEAD/LICENSE"
11
+ },
12
+ "@types/node@20.10.6": {
13
+ "licenses": "MIT",
14
+ "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
15
+ "licenseUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/raw/HEAD/LICENSE"
16
+ },
17
+ "@types/postcss-prefix-selector@1.16.3": {
18
+ "licenses": "MIT",
19
+ "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
20
+ "licenseUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/raw/HEAD/LICENSE"
21
+ },
22
+ "@typescript-eslint/eslint-plugin@6.17.0": {
23
+ "licenses": "MIT",
24
+ "repository": "https://github.com/typescript-eslint/typescript-eslint",
25
+ "licenseUrl": "https://github.com/typescript-eslint/typescript-eslint/raw/HEAD/LICENSE"
26
+ },
27
+ "@typescript-eslint/parser@6.17.0": {
28
+ "licenses": "BSD-2-Clause",
29
+ "repository": "https://github.com/typescript-eslint/typescript-eslint",
30
+ "licenseUrl": "https://github.com/typescript-eslint/typescript-eslint/raw/HEAD/LICENSE"
31
+ },
32
+ "@vitest/coverage-v8@1.1.1": {
33
+ "licenses": "MIT",
34
+ "repository": "https://github.com/vitest-dev/vitest",
35
+ "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE"
36
+ },
37
+ "@vitest/ui@1.1.1": {
38
+ "licenses": "MIT",
39
+ "repository": "https://github.com/vitest-dev/vitest",
40
+ "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE"
41
+ },
42
+ "axe-core@4.8.3": {
43
+ "licenses": "MPL-2.0",
44
+ "repository": "https://github.com/dequelabs/axe-core",
45
+ "licenseUrl": "https://github.com/dequelabs/axe-core/raw/HEAD/LICENSE"
46
+ },
47
+ "cypress-axe@1.5.0": {
48
+ "licenses": "MIT",
49
+ "repository": "https://github.com/component-driven/cypress-axe",
50
+ "licenseUrl": "https://github.com/component-driven/cypress-axe/raw/HEAD/License.md"
51
+ },
52
+ "cypress-real-events@1.13.0": {
53
+ "licenses": "MIT",
54
+ "repository": "https://github.com/dmtrKovalenko/cypress-real-events",
55
+ "licenseUrl": "https://github.com/dmtrKovalenko/cypress-real-events"
56
+ },
57
+ "cypress@13.6.2": {
58
+ "licenses": "MIT",
59
+ "repository": "https://github.com/cypress-io/cypress",
60
+ "licenseUrl": "https://cypress.io"
61
+ },
62
+ "esbuild@0.19.11": {
63
+ "licenses": "MIT",
64
+ "repository": "https://github.com/evanw/esbuild",
65
+ "licenseUrl": "https://github.com/evanw/esbuild/raw/HEAD/LICENSE.md"
66
+ },
67
+ "eslint-config-google@0.14.0": {
68
+ "licenses": "Apache-2.0",
69
+ "repository": "https://github.com/google/eslint-config-google",
70
+ "licenseUrl": "https://github.com/google/eslint-config-google/raw/HEAD/LICENSE"
71
+ },
72
+ "eslint-config-prettier@9.1.0": {
73
+ "licenses": "MIT",
74
+ "repository": "https://github.com/prettier/eslint-config-prettier",
75
+ "licenseUrl": "https://github.com/prettier/eslint-config-prettier/raw/HEAD/LICENSE"
76
+ },
77
+ "eslint@8.56.0": {
78
+ "licenses": "MIT",
79
+ "repository": "https://github.com/eslint/eslint",
80
+ "licenseUrl": "https://github.com/eslint/eslint/raw/HEAD/LICENSE"
81
+ },
82
+ "github-markdown-css@5.5.0": {
83
+ "licenses": "MIT",
84
+ "repository": "https://github.com/sindresorhus/github-markdown-css",
85
+ "licenseUrl": "https://github.com/sindresorhus/github-markdown-css/raw/HEAD/license"
86
+ },
87
+ "highlight.js@11.9.0": {
88
+ "licenses": "BSD-3-Clause",
89
+ "repository": "https://github.com/highlightjs/highlight.js",
90
+ "licenseUrl": "https://github.com/highlightjs/highlight.js/raw/HEAD/LICENSE"
91
+ },
92
+ "junit-report-builder@3.1.0": {
93
+ "licenses": "MIT",
94
+ "repository": "https://github.com/davidparsson/junit-report-builder",
95
+ "licenseUrl": "https://github.com/davidparsson/junit-report-builder/raw/HEAD/LICENSE"
96
+ },
97
+ "lint-staged@15.2.0": {
98
+ "licenses": "MIT",
99
+ "repository": "https://github.com/okonet/lint-staged",
100
+ "licenseUrl": "https://github.com/okonet/lint-staged/raw/HEAD/LICENSE"
101
+ },
102
+ "marked@11.1.1": {
103
+ "licenses": "MIT",
104
+ "repository": "https://github.com/markedjs/marked",
105
+ "licenseUrl": "https://github.com/markedjs/marked/raw/HEAD/LICENSE.md"
106
+ },
107
+ "postcss-prefix-selector@1.16.0": {
108
+ "licenses": "MIT",
109
+ "repository": "https://github.com/RadValentin/postcss-prefix-selector",
110
+ "licenseUrl": "https://github.com/RadValentin/postcss-prefix-selector/raw/HEAD/LICENSE"
111
+ },
112
+ "postcss@8.4.32": {
113
+ "licenses": "MIT",
114
+ "repository": "https://github.com/postcss/postcss",
115
+ "licenseUrl": "https://github.com/postcss/postcss/raw/HEAD/LICENSE"
116
+ },
117
+ "prettier@3.1.1": {
118
+ "licenses": "MIT",
119
+ "repository": "https://github.com/prettier/prettier",
120
+ "licenseUrl": "https://github.com/prettier/prettier/raw/HEAD/LICENSE"
121
+ },
122
+ "resolve-pkg@2.0.0": {
123
+ "licenses": "MIT",
124
+ "repository": "https://github.com/sindresorhus/resolve-pkg",
125
+ "licenseUrl": "https://github.com/sindresorhus/resolve-pkg/raw/HEAD/license"
126
+ },
127
+ "sass@1.69.6": {
128
+ "licenses": "MIT",
129
+ "repository": "https://github.com/sass/dart-sass",
130
+ "licenseUrl": "https://github.com/sass/dart-sass/raw/HEAD/LICENSE"
131
+ },
132
+ "stylelint-config-recommended-scss@14.0.0": {
133
+ "licenses": "MIT",
134
+ "repository": "https://github.com/stylelint-scss/stylelint-config-recommended-scss",
135
+ "licenseUrl": "https://github.com/stylelint-scss/stylelint-config-recommended-scss/raw/HEAD/LICENSE"
136
+ },
137
+ "stylelint-config-standard@36.0.0": {
138
+ "licenses": "MIT",
139
+ "repository": "https://github.com/stylelint/stylelint-config-standard",
140
+ "licenseUrl": "https://github.com/stylelint/stylelint-config-standard/raw/HEAD/LICENSE"
141
+ },
142
+ "stylelint-scss@6.0.0": {
143
+ "licenses": "MIT",
144
+ "repository": "https://github.com/stylelint-scss/stylelint-scss",
145
+ "licenseUrl": "https://github.com/stylelint-scss/stylelint-scss/raw/HEAD/LICENSE"
146
+ },
147
+ "stylelint@16.1.0": {
148
+ "licenses": "MIT",
149
+ "repository": "https://github.com/stylelint/stylelint",
150
+ "licenseUrl": "https://github.com/stylelint/stylelint/raw/HEAD/LICENSE"
151
+ },
152
+ "tsup@8.0.1": {
153
+ "licenses": "MIT",
154
+ "repository": "https://github.com/egoist/tsup",
155
+ "licenseUrl": "https://github.com/egoist/tsup/raw/HEAD/LICENSE"
156
+ },
157
+ "turbo@1.11.2": {
158
+ "licenses": "MPL-2.0",
159
+ "repository": "https://github.com/vercel/turbo",
160
+ "licenseUrl": "https://github.com/vercel/turbo/raw/HEAD/LICENSE"
161
+ },
162
+ "typescript@5.3.3": {
163
+ "licenses": "Apache-2.0",
164
+ "repository": "https://github.com/Microsoft/TypeScript",
165
+ "licenseUrl": "https://github.com/Microsoft/TypeScript/raw/HEAD/LICENSE.txt"
166
+ },
167
+ "vite-tsconfig-paths@4.2.3": {
168
+ "licenses": "MIT",
169
+ "repository": "https://github.com/aleclarson/vite-tsconfig-paths",
170
+ "licenseUrl": "https://github.com/aleclarson/vite-tsconfig-paths/raw/HEAD/LICENSE"
171
+ },
172
+ "vite@5.0.10": {
173
+ "licenses": "MIT",
174
+ "repository": "https://github.com/vitejs/vite",
175
+ "licenseUrl": "https://github.com/vitejs/vite/raw/HEAD/LICENSE.md"
176
+ },
177
+ "vitest@1.1.1": {
178
+ "licenses": "MIT",
179
+ "repository": "https://github.com/vitest-dev/vitest",
180
+ "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE.md"
181
+ },
182
+ "yargs@17.7.2": {
183
+ "licenses": "MIT",
184
+ "repository": "https://github.com/yargs/yargs",
185
+ "licenseUrl": "https://github.com/yargs/yargs/raw/HEAD/LICENSE"
186
+ }
187
+ }
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@cas-smartdesign/relation",
3
+ "version": "3.0.1",
4
+ "description": "A element that is able to visualize a relation between two objects, considering the cardinality and a description",
5
+ "main": "dist/relation-with-externals.js",
6
+ "module": "dist/relation.mjs",
7
+ "types": "dist/relation.d.ts",
8
+ "license": "SEE LICENSE IN LICENSE",
9
+ "dependencies": {
10
+ "@cas-smartdesign/element-base": "^5.0.1"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "npm-third-party-licenses.json"
15
+ ],
16
+ "publishConfig": {
17
+ "registry": "https://registry.npmjs.org/",
18
+ "access": "public"
19
+ },
20
+ "devDependencies": {
21
+ "@cas-smartdesign/license-generator": "^1.6.1",
22
+ "@cas-smartdesign/element-preview": "^0.2.1"
23
+ },
24
+ "scripts": {
25
+ "version": "pnpm version",
26
+ "generate-declaration": "tsc -p tsconfig.types.json",
27
+ "build:no-license": "vite build && pnpm generate-declaration && vite build --mode documentation",
28
+ "build": "pnpm generate-license && pnpm build:no-license",
29
+ "watch": "vite build --watch",
30
+ "dev": "vite",
31
+ "generate-license": "sd-license-generator --r ../../"
32
+ }
33
+ }
package/readme.md ADDED
@@ -0,0 +1,35 @@
1
+ # @cas-smartdesign/relation
2
+
3
+ A custom element that is able to visualize a relation between two objects, considering the cardinality and a description
4
+
5
+ ## Attributes
6
+
7
+ - direction
8
+ - BIDIRECTIONAL ----
9
+ - SOURCE_TO_TARGET --->
10
+ - TARGET_TO_SOURCE <---
11
+
12
+ ## Custom css properties
13
+
14
+ - --sd-relation-border-color
15
+ - Specifies the color of the borders that are used in the relation element
16
+ - --sd-relation-font-family
17
+ - Specifies the font-family of the relation element
18
+ - --sd-relation-outer-min-width
19
+ - Specifies the min-width of the outer source and target wrapper
20
+ - --sd-relation-inner-min-width
21
+ - Specifies the min-width of the inner description wrapper
22
+
23
+ ## Layout
24
+
25
+ - There are min-widhts defined for that element, that are necessary to guarantee the correct visualization
26
+ - Source and target wrapper - Default 128px
27
+ - Relation wrapper - Default 240px
28
+ - Note that these values can be adjusted with the custom css properties above
29
+
30
+ ---------- ----------
31
+ | |---------------| |
32
+ ---------- ----------
33
+ 128px 240px 128px
34
+
35
+ ## Examples