@kanonak-protocol/sdk 5.27.0 → 5.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +1 -1
- package/dist/{chunk-NOPFCGB7.js → chunk-BA4HAURJ.js} +1 -1
- package/dist/{chunk-4VLLX3MZ.js → chunk-GJAYU443.js} +1 -1
- package/dist/{chunk-RVR25FWW.js → chunk-KDMBMX3J.js} +1 -1
- package/dist/chunk-N3XODYH5.js +1 -0
- package/dist/{chunk-KOV3AFBN.js → chunk-RJK6Y4HS.js} +1 -1
- package/dist/{chunk-RWN5JZPU.js → chunk-S2VGNHHF.js} +1 -1
- package/dist/{chunk-4C7ZMXQT.js → chunk-SR6I5ZSI.js} +17 -17
- package/dist/{chunk-M7LXZN47.js → chunk-SUXSCSHO.js} +1 -1
- package/dist/{chunk-ZZINR6NT.js → chunk-TW7NJDMW.js} +26 -26
- package/dist/index.js +1 -1
- package/dist/look/displayValue.d.ts +3 -5
- package/dist/parsing/index.js +1 -1
- package/dist/reasoning/index.js +1 -1
- package/dist/resolution/index.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/transformations/index.js +1 -1
- package/dist/uri-helpers/UriHelpers.d.ts +9 -0
- package/dist/uri-helpers/index.d.ts +1 -1
- package/dist/uri-helpers/index.js +1 -1
- package/dist/validation/index.js +1 -1
- package/dist/validation/rules/repository/TxExpressionCompilesRule.d.ts +18 -0
- package/package.json +2 -2
- package/dist/chunk-CZY6OOTM.js +0 -1
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import{a as Tn}from"./chunk-6VIUXP4N.js";import{a as V,c as Ve,h as u,m as zn}from"./chunk-M7LXZN47.js";import{a as Vn}from"./chunk-KOWDHKBN.js";import{a as Gn}from"./chunk-PEJALHXK.js";import{ga as Dn,ha as Bn,ia as Hn}from"./chunk-NOPFCGB7.js";import{A as Nn,b as je,c as W,d as j,g as Y,h as ie,i as ae,j as T,k as H,l as I,m as kn,n as fe,o as An,q as S,s as Ne,t as he,w as hn,x as qe,z as Mn}from"./chunk-CZY6OOTM.js";import{a as Pn}from"./chunk-FUUTGGJS.js";import{c as en,e as nn,g as xn}from"./chunk-QILEJIFU.js";var z=class extends Error{constructor(n,t){super(`${n} (at ${t})`);this.path=t}path};function zs(r,e){let n=r.name,t=Gt(e),a={catalog:e,depth:0};if(S(r,u.InstanceTransformation))return xt(r,n,a,t);if(S(r,u.SetTransformation))return Tt(r,n,a,t);throw new z("Subject is not a recognized v3 transformation type \u2014 expected InstanceTransformation or SetTransformation",n)}function xt(r,e,n,t){return{kind:"instance",name:r.name,inputPattern:Qn(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:et(r,`${e}.outputs`),overrides:nt(r,`${e}.formatOverrides`,n),fragments:t}}function Tt(r,e,n,t){let a=Ue(r,u.partitionBy);return{kind:"set",name:r.name,inputPattern:Qn(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:et(r,`${e}.outputs`),overrides:nt(r,`${e}.formatOverrides`,n),partitionBy:a,fragments:t}}function Qn(r,e){let n=We(r,u.inputPattern);if(!n)throw new z("inputPattern is required",e);return Vt(n,`${e}.inputPattern`)}function Vt(r,e){let n=Ue(r,u.matchesClass);if(!n)throw new z("matchesClass is required",e);let t=[];for(let o of ve(r,u.requires))if(o instanceof T)t.push($n(o.object.subject));else if(o instanceof I)for(let i of o.object)i instanceof j&&t.push($n(i.subject));let a=[],s=0;for(let o of ve(r,u.sortBy))if(o instanceof I)for(let i of o.object)i instanceof V&&a.push(qn(i,`${e}.sortBy[${s++}]`));else o instanceof H&&a.push(qn(o.object,`${e}.sortBy[${s++}]`));return{matchesClass:n,requires:t,sortBy:a}}function qn(r,e){let n=Ue(r,u.byProperty);if(!n)throw new z("SortKey.byProperty is required",e);let t=Ue(r,u.order);if(!t)throw new z("SortKey.order is required",e);if(fe(t,u.ascending))return{byProperty:n,order:"ascending"};if(fe(t,u.descending))return{byProperty:n,order:"descending"};throw new z(`SortKey.order must reference tx.ascending or tx.descending; got ${t.publisher}/${t.package_}/${t.name}`,e)}function tn(r,e,n,t){let a=We(r,e);if(!a)throw new z("expression is required",n);return Oe(a,n,t)}function Oe(r,e,n){if(S(r,u.StringLiteral))return{kind:"string-literal",value:be(r,u.stringLiteral,e)};if(S(r,u.IntegerLiteral))return{kind:"integer-literal",value:Zn(r,u.integerLiteral,e)};if(S(r,u.DecimalLiteral))return{kind:"decimal-literal",value:Zn(r,u.decimalLiteral,e)};if(S(r,u.BooleanLiteral))return{kind:"boolean-literal",value:Yt(r,u.booleanLiteral,e)};if(S(r,u.VarRef))return{kind:"var-ref",varName:be(r,u.varName,e)};if(S(r,u.PropertyRead))return{kind:"property-read",source:y(r,u.readSource,`${e}.readSource`,n),readProp:Ie(r,u.readProp,e,"readProp")};if(S(r,u.Traverse))return{kind:"traverse",source:y(r,u.traverseSource,`${e}.traverseSource`,n),through:Ie(r,u.through,e,"through"),step:y(r,u.step,`${e}.step`,n)};if(S(r,u.BuildAstNode))return{kind:"build-ast-node",astClass:Ie(r,u.astClass,e,"astClass"),set:At(r,`${e}.set`,n)};if(S(r,u.When))return{kind:"when",condition:y(r,u.condition,`${e}.condition`,n),thenBuild:y(r,u.thenBuild,`${e}.thenBuild`,n),elseBuild:Pt(r,u.elseBuild,`${e}.elseBuild`,n)};if(S(r,u.Concat))return{kind:"concat",parts:bn(r,u.parts,`${e}.parts`,n)};if(S(r,u.Fallback))return{kind:"fallback",primary:y(r,u.primary,`${e}.primary`,n),alternate:y(r,u.alternate,`${e}.alternate`,n)};if(S(r,u.UriName))return{kind:"uri-name",source:y(r,u.uriNameOf,`${e}.uriNameOf`,n)};if(S(r,u.UriPublisher))return{kind:"uri-publisher",source:y(r,u.uriPublisherOf,`${e}.uriPublisherOf`,n)};if(S(r,u.UriPackage))return{kind:"uri-package",source:y(r,u.uriPackageOf,`${e}.uriPackageOf`,n)};if(S(r,u.UriVersion))return{kind:"uri-version",source:y(r,u.uriVersionOf,`${e}.uriVersionOf`,n)};if(S(r,u.SubjectUri))return{kind:"subject-uri",source:y(r,u.subjectOf,`${e}.subjectOf`,n)};if(S(r,u.UriLiteral))return{kind:"uri-literal",refTo:Ie(r,u.refTo,e,"refTo")};if(S(r,u.DisplayLabel))return{kind:"display-label",labelTarget:Ie(r,u.labelTarget,e,"labelTarget"),labelSource:Ie(r,u.labelSource,e,"labelSource")};if(S(r,u.ResolveRef))return{kind:"resolve-ref",source:y(r,u.resolveSource,`${e}.resolveSource`,n)};if(S(r,u.Normalize))return{kind:"normalize",source:y(r,u.normSource,`${e}.normSource`,n),normKind:Mt(r,e)};if(S(r,u.UnescapedString))return{kind:"unescaped-string",source:y(r,u.unescapedSource,`${e}.unescapedSource`,n)};if(S(r,u.RenderMarkdown))return{kind:"render-markdown",source:y(r,u.renderSource,`${e}.renderSource`,n),readProp:Ie(r,u.renderProp,e,"renderProp"),format:Nt(r,e)};if(S(r,u.IsSet))return{kind:"is-set",check:y(r,u.checkExpr,`${e}.checkExpr`,n)};if(S(r,u.CallFragment))return Ht(r,e,n);if(S(r,u.Join))return{kind:"join",source:y(r,u.source,`${e}.source`,n),separator:be(r,u.separator,e)};if(S(r,u.Count))return{kind:"count",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Sum))return{kind:"sum",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Min))return{kind:"min",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Max))return{kind:"max",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Average))return{kind:"average",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.ForEach))return{kind:"for-each",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),emit:y(r,u.emit,`${e}.emit`,n)};if(S(r,u.ListMap))return{kind:"list-map",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),mapBody:y(r,u.mapBody,`${e}.mapBody`,n)};if(S(r,u.Filter))return{kind:"filter",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),predicate:y(r,u.predicate,`${e}.predicate`,n)};if(S(r,u.PartitionBy))return{kind:"partition-by",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),partitionKey:y(r,u.partitionKey,`${e}.partitionKey`,n)};if(S(r,u.DistinctBy))return{kind:"distinct-by",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),distinctKey:y(r,u.distinctKey,`${e}.distinctKey`,n)};if(S(r,u.AllStatements))return{kind:"all-statements",source:y(r,u.statementsOf,`${e}.statementsOf`,n)};if(S(r,u.StatementPredicate))return{kind:"statement-predicate",source:y(r,u.predicateOf,`${e}.predicateOf`,n)};if(S(r,u.StatementValue))return{kind:"statement-value",source:y(r,u.valueOf,`${e}.valueOf`,n)};if(S(r,u.DateFormat))return{kind:"date-format",source:y(r,u.dateSource,`${e}.dateSource`,n),format:Bt(r,e)};if(S(r,u.NumberFormat)){let t=vn(r,u.fractionDigits);if(t!==void 0&&(!Number.isInteger(t)||t<0||t>20))throw new z(`fractionDigits must be an integer between 0 and 20; got ${t}`,e);let a=Fe(r,u.currencyCode);return{kind:"number-format",source:y(r,u.numberSource,`${e}.numberSource`,n),style:Dt(r,e),...t!==void 0?{fractionDigits:t}:{},...a!==void 0?{currencyCode:a}:{}}}if(S(r,u.Add))return{kind:"add",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Subtract))return{kind:"subtract",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Multiply))return{kind:"multiply",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Divide))return{kind:"divide",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Reverse))return{kind:"reverse",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.WindowedMap)){let t=vn(r,u.windowSize);if(t===void 0||!Number.isInteger(t)||t<1)throw new z("windowSize must be a positive integer",`${e}.windowSize`);return{kind:"windowed-map",source:y(r,u.source,`${e}.source`,n),windowSize:t,windowVar:be(r,u.windowVar,e),windowBody:y(r,u.windowBody,`${e}.windowBody`,n)}}if(S(r,u.PairwiseMap))return{kind:"pairwise-map",source:y(r,u.source,`${e}.source`,n),firstVar:be(r,u.firstVar,e),secondVar:be(r,u.secondVar,e),pairBody:y(r,u.pairBody,`${e}.pairBody`,n)};if(S(r,u.Scan))return{kind:"scan",source:y(r,u.source,`${e}.source`,n),initialState:y(r,u.initialState,`${e}.initialState`,n),stateVar:be(r,u.stateVar,e),elementVar:be(r,u.elementVar,e),accumulate:y(r,u.accumulate,`${e}.accumulate`,n)};if(S(r,u.ListItemAt))return{kind:"list-item-at",source:y(r,u.source,`${e}.source`,n),itemIndex:y(r,u.itemIndex,`${e}.itemIndex`,n)};if(S(r,u.Equals))return{kind:"equals",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.GreaterThan))return{kind:"greater-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.LessThan))return{kind:"less-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.GreaterThanOrEqual))return{kind:"greater-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.LessThanOrEqual))return{kind:"less-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.Not))return{kind:"not",operand:y(r,u.operand,`${e}.operand`,n)};if(S(r,u.And))return{kind:"and",operands:bn(r,u.operands,`${e}.operands`,n)};if(S(r,u.Or))return{kind:"or",operands:bn(r,u.operands,`${e}.operands`,n)};if(S(r,u.Contains))return{kind:"contains",haystack:y(r,u.haystack,`${e}.haystack`,n),needle:y(r,u.needle,`${e}.needle`,n)};if(S(r,u.Abs))return{kind:"abs",value:y(r,u.value,`${e}.value`,n)};if(S(r,u.Negate))return{kind:"negate",value:y(r,u.value,`${e}.value`,n)};if(S(r,u.IsReference))return{kind:"is-reference",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsEmbedded))return{kind:"is-embedded",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsList))return{kind:"is-list",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsString))return{kind:"is-string",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsNumber))return{kind:"is-number",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsBoolean))return{kind:"is-boolean",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.StatementObject))return{kind:"statement-object",source:y(r,u.statementSource,`${e}.statementSource`,n)};if(S(r,u.Let))return{kind:"let",bindName:be(r,u.letName,e),bindValue:y(r,u.letValue,`${e}.letValue`,n),body:y(r,u.letBody,`${e}.letBody`,n)};if(S(r,u.GetStatementByName))return{kind:"get-statement-by-name",inSubject:y(r,u.inSubject,`${e}.inSubject`,n),byName:y(r,u.byName,`${e}.byName`,n)};throw new z("Expression is not of a recognized v3 type \u2014 embedded has no matching subclass of tx.Expression",e)}function y(r,e,n,t){let a=We(r,e);if(!a)throw new z("child expression is required",n);return Oe(a,n,t)}function Pt(r,e,n,t){let a=We(r,e);if(a)return Oe(a,n,t)}function bn(r,e,n,t){let a=[],s=0;for(let o of ve(r,e))if(o instanceof I)for(let i of o.object)i instanceof V&&a.push(Oe(i,`${n}[${s++}]`,t));else o instanceof H&&a.push(Oe(o.object,`${n}[${s++}]`,t));return a}function At(r,e,n){let t=[],a=0;for(let s of ve(r,u.set))if(s instanceof I)for(let o of s.object)o instanceof V&&t.push(Wn(o,`${e}[${a++}]`,n));else s instanceof H&&t.push(Wn(s.object,`${e}[${a++}]`,n));return t}function Wn(r,e,n){return{field:Ie(r,u.field,e,"field"),value:y(r,u.bindValue,`${e}.bindValue`,n)}}function Mt(r,e){let n=Ue(r,u.normKind);if(!n)throw new z("normKind is required",e);if(fe(n,u.NORM_TRIM_END))return"trim-end";if(fe(n,u.NORM_TO_UPPER))return"to-upper";if(fe(n,u.NORM_TO_LOWER))return"to-lower";if(fe(n,u.NORM_FIRST_CHAR))return"first-char";throw new z(`Unknown NormalizeKind: ${n.publisher}/${n.package_}/${n.name}`,e)}function Nt(r,e){let n=Ue(r,u.renderFormat);if(!n)throw new z("renderFormat is required",e);if(fe(n,u.RENDER_HTML))return"html";if(fe(n,u.RENDER_MARKDOWN))return"markdown";throw new z(`Unknown RenderFormat: ${n.publisher}/${n.package_}/${n.name}`,e)}var Yn=new Set(["decimal","percent","basis-points","currency","compact"]);function Dt(r,e){let n=Fe(r,u.numberStyle);if(n===void 0)throw new z("numberStyle is required",e);if(!Yn.has(n))throw new z(`Unknown numberStyle "${n}"; supported: ${[...Yn].join(", ")}`,e);return n}var Xn=new Set(["iso-date","iso-datetime","short-date","long-date","year","month-year"]);function Bt(r,e){let n=Fe(r,u.dateFormat);if(!n)throw new z("dateFormat is required",e);if(!Xn.has(n))throw new z(`Unknown dateFormat "${n}"; supported: ${[...Xn].join(", ")}`,e);return n}function Ht(r,e,n){let t=Ue(r,u.fragmentRef);if(!t)throw new z("fragmentRef is required",e);if(!qt(n.catalog,t))throw new z(`ExpressionFragment not found: ${t.publisher}/${t.package_}/${t.name}`,e);return{kind:"call-fragment",fragmentKey:zt(t)}}function zt(r){return`${r.publisher}/${r.package_}/${r.name}`}function Gt(r){let e=new Map,n=[];for(let t of r){if(!(t instanceof W)||!S(t,u.ExpressionFragment))continue;let a=We(t,u.body);if(!a)continue;let s=(t.namespace||"").split("@")[0]||"",o=s.indexOf("/");if(o<0)continue;let i=s.substring(0,o),c=s.substring(o+1),l=`${i}/${c}/${t.name}`;n.push({key:l,subject:t,bodyEmb:a,pubPkgName:`${s}/${t.name}`})}for(let t of n){let a=Oe(t.bodyEmb,`fragment(${t.pubPkgName})`,{catalog:r,depth:0});e.set(t.key,a)}return e}function qt(r,e){for(let n of r)if(!(!(n instanceof W)||n.name!==e.name||!(n.namespace||"").startsWith(`${e.publisher}/${e.package_}@`))&&S(n,u.ExpressionFragment))return n}function et(r,e){let n=new Set;for(let t of ve(r,u.outputs))if(t instanceof T)n.add(t.object.subject.name);else if(t instanceof I)for(let a of t.object)a instanceof j&&n.add(a.subject.name);if(n.size===0)throw new z("outputs is required (at least one OutputFormat)",e);return n}function nt(r,e,n){let t=new Map,a=0;for(let s of ve(r,u.formatOverrides))if(s instanceof I){for(let o of s.object)if(o instanceof V){let[i,c]=Jn(o,`${e}[${a++}]`);t.set(i,c)}}else if(s instanceof H){let[o,i]=Jn(s.object,`${e}[${a++}]`);t.set(o,i)}return t}function Jn(r,e){let n=Ue(r,u.formatTarget);if(!n)throw new z("formatTarget is required",e);let t=[];for(let i of ve(r,u.metadataKeys))if(i instanceof Y)t.push(i.object);else if(i instanceof I)for(let c of i.object){let l=c.value;typeof l=="string"&&t.push(l)}let a=new Map;for(let i of ve(r,u.metadataRenames))if(i instanceof I){for(let c of i.object)if(c instanceof V){let l=Fe(c,u.fromKey),d=Fe(c,u.toKey);l&&d&&a.set(l,d)}}else if(i instanceof H){let c=i.object,l=Fe(c,u.fromKey),d=Fe(c,u.toKey);l&&d&&a.set(l,d)}let s=yn(r,u.trailingNewline),o=yn(r,u.omitWrapper);return[n.name,{metadataKeys:t.length>0?t:void 0,metadataRenames:a,trailingNewline:s,omitWrapper:o}]}function Wt(r){return r.predicate?.subject}function ve(r,e){let n=[];for(let t of r.statement){let a=Wt(t);a&&fe(a,e)&&n.push(t)}return n}function We(r,e){for(let n of ve(r,e))if(n instanceof H)return n.object}function Ue(r,e){for(let n of ve(r,e))if(n instanceof T)return $n(n.object.subject)}function Fe(r,e){for(let n of ve(r,e))if(n instanceof Y)return n.object}function vn(r,e){for(let n of ve(r,e))if(n instanceof ie)return n.object}function yn(r,e){for(let n of ve(r,e))if(n instanceof ae)return n.object}function be(r,e,n){let t=Fe(r,e);if(t===void 0)throw new z(`${e.name} (string) is required`,n);return t}function Zn(r,e,n){let t=vn(r,e);if(t===void 0)throw new z(`${e.name} (number) is required`,n);return t}function Yt(r,e,n){let t=yn(r,e);if(t===void 0)throw new z(`${e.name} (boolean) is required`,n);return t}function Ie(r,e,n,t){let a=Ue(r,e);if(!a)throw new z(`${t} (URI reference) is required`,n);return a}function $n(r){return{publisher:r.publisher,package_:r.package_,name:r.name}}var Pe="kanonak.org",st="look",Ye="core-rdf",Xt={publisher:Pe,package_:st,name:"displayLabel"},Jt={publisher:Pe,package_:st,name:"displaySummary"},Zt={publisher:Pe,package_:Ye,name:"type"},Qt={publisher:Pe,package_:Ye,name:"subClassOf"},ea={publisher:Pe,package_:Ye,name:"label"},na={publisher:Pe,package_:Ye,name:"comment"},tt=new Pn(Pe,Ye,"Resource");function N(r,e){let n=at(r,e,Xt)??ea,t=at(r,e,Jt)??na,a=hn(e,n)??e.name,s=hn(e,t);return{label:a,summary:s}}function at(r,e,n){let t=qe(e,n);if(t)return t;let a=new Set,s=rt(e,Zt);for(;s.length>0;){let o=s.shift(),i=kn(o);if(a.has(i))continue;a.add(i);let c=Ne(r,o);if(!c)continue;let l=qe(c,n);if(l)return l;s.push(...rt(c,Qt))}if(!a.has(kn(tt))){let o=Ne(r,tt);if(o){let i=qe(o,n);if(i)return i}}}function rt(r,e){let n=qe(r,e);if(n)return[n];let t=[];for(let a of Mn(r,e))a instanceof j&&t.push(a.subject);return t}function Xe(r,e={}){let n=r.replace(/\r\n/g,`
|
|
1
|
+
import{a as Tn}from"./chunk-6VIUXP4N.js";import{a as V,c as Ve,h as u,m as Hn}from"./chunk-SUXSCSHO.js";import{a as Vn}from"./chunk-KOWDHKBN.js";import{a as zn}from"./chunk-PEJALHXK.js";import{ga as Nn,ha as Dn,ia as Bn}from"./chunk-BA4HAURJ.js";import{B as Mn,b as je,c as Y,d as j,g as H,h as re,i as te,j as I,k as z,l as C,m as en,n as ce,o as An,q as kn,r as S,t as hn,u as le,y as nn}from"./chunk-N3XODYH5.js";import{a as Pn}from"./chunk-FUUTGGJS.js";import{c as Ze,e as Qe,g as xn}from"./chunk-QILEJIFU.js";var G=class extends Error{constructor(n,t){super(`${n} (at ${t})`);this.path=t}path};function qs(r,e){let n=r.name,t=qt(e),a={catalog:e,depth:0};if(S(r,u.InstanceTransformation))return Tt(r,n,a,t);if(S(r,u.SetTransformation))return Vt(r,n,a,t);throw new G("Subject is not a recognized v3 transformation type \u2014 expected InstanceTransformation or SetTransformation",n)}function Tt(r,e,n,t){return{kind:"instance",name:r.name,inputPattern:Zn(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:Qn(r,`${e}.outputs`),overrides:et(r,`${e}.formatOverrides`,n),fragments:t}}function Vt(r,e,n,t){let a=Ue(r,u.partitionBy);return{kind:"set",name:r.name,inputPattern:Zn(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:Qn(r,`${e}.outputs`),overrides:et(r,`${e}.formatOverrides`,n),partitionBy:a,fragments:t}}function Zn(r,e){let n=Ge(r,u.inputPattern);if(!n)throw new G("inputPattern is required",e);return Pt(n,`${e}.inputPattern`)}function Pt(r,e){let n=Ue(r,u.matchesClass);if(!n)throw new G("matchesClass is required",e);let t=[];for(let o of ve(r,u.requires))if(o instanceof I)t.push($n(o.object.subject));else if(o instanceof C)for(let i of o.object)i instanceof j&&t.push($n(i.subject));let a=[],s=0;for(let o of ve(r,u.sortBy))if(o instanceof C)for(let i of o.object)i instanceof V&&a.push(Gn(i,`${e}.sortBy[${s++}]`));else o instanceof z&&a.push(Gn(o.object,`${e}.sortBy[${s++}]`));return{matchesClass:n,requires:t,sortBy:a}}function Gn(r,e){let n=Ue(r,u.byProperty);if(!n)throw new G("SortKey.byProperty is required",e);let t=Ue(r,u.order);if(!t)throw new G("SortKey.order is required",e);if(ce(t,u.ascending))return{byProperty:n,order:"ascending"};if(ce(t,u.descending))return{byProperty:n,order:"descending"};throw new G(`SortKey.order must reference tx.ascending or tx.descending; got ${t.publisher}/${t.package_}/${t.name}`,e)}function tn(r,e,n,t){let a=Ge(r,e);if(!a)throw new G("expression is required",n);return Oe(a,n,t)}function Oe(r,e,n){if(S(r,u.StringLiteral))return{kind:"string-literal",value:be(r,u.stringLiteral,e)};if(S(r,u.IntegerLiteral))return{kind:"integer-literal",value:Jn(r,u.integerLiteral,e)};if(S(r,u.DecimalLiteral))return{kind:"decimal-literal",value:Jn(r,u.decimalLiteral,e)};if(S(r,u.BooleanLiteral))return{kind:"boolean-literal",value:Xt(r,u.booleanLiteral,e)};if(S(r,u.VarRef))return{kind:"var-ref",varName:be(r,u.varName,e)};if(S(r,u.PropertyRead))return{kind:"property-read",source:y(r,u.readSource,`${e}.readSource`,n),readProp:Ie(r,u.readProp,e,"readProp")};if(S(r,u.Traverse))return{kind:"traverse",source:y(r,u.traverseSource,`${e}.traverseSource`,n),through:Ie(r,u.through,e,"through"),step:y(r,u.step,`${e}.step`,n)};if(S(r,u.BuildAstNode))return{kind:"build-ast-node",astClass:Ie(r,u.astClass,e,"astClass"),set:Mt(r,`${e}.set`,n)};if(S(r,u.When))return{kind:"when",condition:y(r,u.condition,`${e}.condition`,n),thenBuild:y(r,u.thenBuild,`${e}.thenBuild`,n),elseBuild:At(r,u.elseBuild,`${e}.elseBuild`,n)};if(S(r,u.Concat))return{kind:"concat",parts:bn(r,u.parts,`${e}.parts`,n)};if(S(r,u.Fallback))return{kind:"fallback",primary:y(r,u.primary,`${e}.primary`,n),alternate:y(r,u.alternate,`${e}.alternate`,n)};if(S(r,u.UriName))return{kind:"uri-name",source:y(r,u.uriNameOf,`${e}.uriNameOf`,n)};if(S(r,u.UriPublisher))return{kind:"uri-publisher",source:y(r,u.uriPublisherOf,`${e}.uriPublisherOf`,n)};if(S(r,u.UriPackage))return{kind:"uri-package",source:y(r,u.uriPackageOf,`${e}.uriPackageOf`,n)};if(S(r,u.UriVersion))return{kind:"uri-version",source:y(r,u.uriVersionOf,`${e}.uriVersionOf`,n)};if(S(r,u.SubjectUri))return{kind:"subject-uri",source:y(r,u.subjectOf,`${e}.subjectOf`,n)};if(S(r,u.UriLiteral))return{kind:"uri-literal",refTo:Ie(r,u.refTo,e,"refTo")};if(S(r,u.DisplayLabel))return{kind:"display-label",labelTarget:Ie(r,u.labelTarget,e,"labelTarget"),labelSource:Ie(r,u.labelSource,e,"labelSource")};if(S(r,u.ResolveRef))return{kind:"resolve-ref",source:y(r,u.resolveSource,`${e}.resolveSource`,n)};if(S(r,u.Normalize))return{kind:"normalize",source:y(r,u.normSource,`${e}.normSource`,n),normKind:Nt(r,e)};if(S(r,u.UnescapedString))return{kind:"unescaped-string",source:y(r,u.unescapedSource,`${e}.unescapedSource`,n)};if(S(r,u.RenderMarkdown))return{kind:"render-markdown",source:y(r,u.renderSource,`${e}.renderSource`,n),readProp:Ie(r,u.renderProp,e,"renderProp"),format:Dt(r,e)};if(S(r,u.IsSet))return{kind:"is-set",check:y(r,u.checkExpr,`${e}.checkExpr`,n)};if(S(r,u.CallFragment))return zt(r,e,n);if(S(r,u.Join))return{kind:"join",source:y(r,u.source,`${e}.source`,n),separator:be(r,u.separator,e)};if(S(r,u.Count))return{kind:"count",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Sum))return{kind:"sum",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Min))return{kind:"min",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Max))return{kind:"max",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Average))return{kind:"average",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.ForEach))return{kind:"for-each",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),emit:y(r,u.emit,`${e}.emit`,n)};if(S(r,u.ListMap))return{kind:"list-map",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),mapBody:y(r,u.mapBody,`${e}.mapBody`,n)};if(S(r,u.Filter))return{kind:"filter",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),predicate:y(r,u.predicate,`${e}.predicate`,n)};if(S(r,u.PartitionBy))return{kind:"partition-by",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),partitionKey:y(r,u.partitionKey,`${e}.partitionKey`,n)};if(S(r,u.DistinctBy))return{kind:"distinct-by",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),distinctKey:y(r,u.distinctKey,`${e}.distinctKey`,n)};if(S(r,u.AllStatements))return{kind:"all-statements",source:y(r,u.statementsOf,`${e}.statementsOf`,n)};if(S(r,u.StatementPredicate))return{kind:"statement-predicate",source:y(r,u.predicateOf,`${e}.predicateOf`,n)};if(S(r,u.StatementValue))return{kind:"statement-value",source:y(r,u.valueOf,`${e}.valueOf`,n)};if(S(r,u.DateFormat))return{kind:"date-format",source:y(r,u.dateSource,`${e}.dateSource`,n),format:Ht(r,e)};if(S(r,u.NumberFormat)){let t=vn(r,u.fractionDigits);if(t!==void 0&&(!Number.isInteger(t)||t<0||t>20))throw new G(`fractionDigits must be an integer between 0 and 20; got ${t}`,e);let a=Fe(r,u.currencyCode);return{kind:"number-format",source:y(r,u.numberSource,`${e}.numberSource`,n),style:Bt(r,e),...t!==void 0?{fractionDigits:t}:{},...a!==void 0?{currencyCode:a}:{}}}if(S(r,u.Add))return{kind:"add",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Subtract))return{kind:"subtract",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Multiply))return{kind:"multiply",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Divide))return{kind:"divide",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Reverse))return{kind:"reverse",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.WindowedMap)){let t=vn(r,u.windowSize);if(t===void 0||!Number.isInteger(t)||t<1)throw new G("windowSize must be a positive integer",`${e}.windowSize`);return{kind:"windowed-map",source:y(r,u.source,`${e}.source`,n),windowSize:t,windowVar:be(r,u.windowVar,e),windowBody:y(r,u.windowBody,`${e}.windowBody`,n)}}if(S(r,u.PairwiseMap))return{kind:"pairwise-map",source:y(r,u.source,`${e}.source`,n),firstVar:be(r,u.firstVar,e),secondVar:be(r,u.secondVar,e),pairBody:y(r,u.pairBody,`${e}.pairBody`,n)};if(S(r,u.Scan))return{kind:"scan",source:y(r,u.source,`${e}.source`,n),initialState:y(r,u.initialState,`${e}.initialState`,n),stateVar:be(r,u.stateVar,e),elementVar:be(r,u.elementVar,e),accumulate:y(r,u.accumulate,`${e}.accumulate`,n)};if(S(r,u.ListItemAt))return{kind:"list-item-at",source:y(r,u.source,`${e}.source`,n),itemIndex:y(r,u.itemIndex,`${e}.itemIndex`,n)};if(S(r,u.Equals))return{kind:"equals",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.GreaterThan))return{kind:"greater-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.LessThan))return{kind:"less-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.GreaterThanOrEqual))return{kind:"greater-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.LessThanOrEqual))return{kind:"less-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.Not))return{kind:"not",operand:y(r,u.operand,`${e}.operand`,n)};if(S(r,u.And))return{kind:"and",operands:bn(r,u.operands,`${e}.operands`,n)};if(S(r,u.Or))return{kind:"or",operands:bn(r,u.operands,`${e}.operands`,n)};if(S(r,u.Contains))return{kind:"contains",haystack:y(r,u.haystack,`${e}.haystack`,n),needle:y(r,u.needle,`${e}.needle`,n)};if(S(r,u.Abs))return{kind:"abs",value:y(r,u.value,`${e}.value`,n)};if(S(r,u.Negate))return{kind:"negate",value:y(r,u.value,`${e}.value`,n)};if(S(r,u.IsReference))return{kind:"is-reference",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsEmbedded))return{kind:"is-embedded",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsList))return{kind:"is-list",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsString))return{kind:"is-string",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsNumber))return{kind:"is-number",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsBoolean))return{kind:"is-boolean",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.StatementObject))return{kind:"statement-object",source:y(r,u.statementSource,`${e}.statementSource`,n)};if(S(r,u.Let))return{kind:"let",bindName:be(r,u.letName,e),bindValue:y(r,u.letValue,`${e}.letValue`,n),body:y(r,u.letBody,`${e}.letBody`,n)};if(S(r,u.GetStatementByName))return{kind:"get-statement-by-name",inSubject:y(r,u.inSubject,`${e}.inSubject`,n),byName:y(r,u.byName,`${e}.byName`,n)};throw new G("Expression is not of a recognized v3 type \u2014 embedded has no matching subclass of tx.Expression",e)}function y(r,e,n,t){let a=Ge(r,e);if(!a)throw new G("child expression is required",n);return Oe(a,n,t)}function At(r,e,n,t){let a=Ge(r,e);if(a)return Oe(a,n,t)}function bn(r,e,n,t){let a=[],s=0;for(let o of ve(r,e))if(o instanceof C)for(let i of o.object)i instanceof V&&a.push(Oe(i,`${n}[${s++}]`,t));else o instanceof z&&a.push(Oe(o.object,`${n}[${s++}]`,t));return a}function Mt(r,e,n){let t=[],a=0;for(let s of ve(r,u.set))if(s instanceof C)for(let o of s.object)o instanceof V&&t.push(qn(o,`${e}[${a++}]`,n));else s instanceof z&&t.push(qn(s.object,`${e}[${a++}]`,n));return t}function qn(r,e,n){return{field:Ie(r,u.field,e,"field"),value:y(r,u.bindValue,`${e}.bindValue`,n)}}function Nt(r,e){let n=Ue(r,u.normKind);if(!n)throw new G("normKind is required",e);if(ce(n,u.NORM_TRIM_END))return"trim-end";if(ce(n,u.NORM_TO_UPPER))return"to-upper";if(ce(n,u.NORM_TO_LOWER))return"to-lower";if(ce(n,u.NORM_FIRST_CHAR))return"first-char";throw new G(`Unknown NormalizeKind: ${n.publisher}/${n.package_}/${n.name}`,e)}function Dt(r,e){let n=Ue(r,u.renderFormat);if(!n)throw new G("renderFormat is required",e);if(ce(n,u.RENDER_HTML))return"html";if(ce(n,u.RENDER_MARKDOWN))return"markdown";throw new G(`Unknown RenderFormat: ${n.publisher}/${n.package_}/${n.name}`,e)}var Wn=new Set(["decimal","percent","basis-points","currency","compact"]);function Bt(r,e){let n=Fe(r,u.numberStyle);if(n===void 0)throw new G("numberStyle is required",e);if(!Wn.has(n))throw new G(`Unknown numberStyle "${n}"; supported: ${[...Wn].join(", ")}`,e);return n}var Yn=new Set(["iso-date","iso-datetime","short-date","long-date","year","month-year"]);function Ht(r,e){let n=Fe(r,u.dateFormat);if(!n)throw new G("dateFormat is required",e);if(!Yn.has(n))throw new G(`Unknown dateFormat "${n}"; supported: ${[...Yn].join(", ")}`,e);return n}function zt(r,e,n){let t=Ue(r,u.fragmentRef);if(!t)throw new G("fragmentRef is required",e);if(!Wt(n.catalog,t))throw new G(`ExpressionFragment not found: ${t.publisher}/${t.package_}/${t.name}`,e);return{kind:"call-fragment",fragmentKey:Gt(t)}}function Gt(r){return`${r.publisher}/${r.package_}/${r.name}`}function qt(r){let e=new Map,n=[];for(let t of r){if(!(t instanceof Y)||!S(t,u.ExpressionFragment))continue;let a=Ge(t,u.body);if(!a)continue;let s=(t.namespace||"").split("@")[0]||"",o=s.indexOf("/");if(o<0)continue;let i=s.substring(0,o),c=s.substring(o+1),l=`${i}/${c}/${t.name}`;n.push({key:l,subject:t,bodyEmb:a,pubPkgName:`${s}/${t.name}`})}for(let t of n){let a=Oe(t.bodyEmb,`fragment(${t.pubPkgName})`,{catalog:r,depth:0});e.set(t.key,a)}return e}function Wt(r,e){for(let n of r)if(!(!(n instanceof Y)||n.name!==e.name||!(n.namespace||"").startsWith(`${e.publisher}/${e.package_}@`))&&S(n,u.ExpressionFragment))return n}function Qn(r,e){let n=new Set;for(let t of ve(r,u.outputs))if(t instanceof I)n.add(t.object.subject.name);else if(t instanceof C)for(let a of t.object)a instanceof j&&n.add(a.subject.name);if(n.size===0)throw new G("outputs is required (at least one OutputFormat)",e);return n}function et(r,e,n){let t=new Map,a=0;for(let s of ve(r,u.formatOverrides))if(s instanceof C){for(let o of s.object)if(o instanceof V){let[i,c]=Xn(o,`${e}[${a++}]`);t.set(i,c)}}else if(s instanceof z){let[o,i]=Xn(s.object,`${e}[${a++}]`);t.set(o,i)}return t}function Xn(r,e){let n=Ue(r,u.formatTarget);if(!n)throw new G("formatTarget is required",e);let t=[];for(let i of ve(r,u.metadataKeys))if(i instanceof H)t.push(i.object);else if(i instanceof C)for(let c of i.object){let l=c.value;typeof l=="string"&&t.push(l)}let a=new Map;for(let i of ve(r,u.metadataRenames))if(i instanceof C){for(let c of i.object)if(c instanceof V){let l=Fe(c,u.fromKey),d=Fe(c,u.toKey);l&&d&&a.set(l,d)}}else if(i instanceof z){let c=i.object,l=Fe(c,u.fromKey),d=Fe(c,u.toKey);l&&d&&a.set(l,d)}let s=yn(r,u.trailingNewline),o=yn(r,u.omitWrapper);return[n.name,{metadataKeys:t.length>0?t:void 0,metadataRenames:a,trailingNewline:s,omitWrapper:o}]}function Yt(r){return r.predicate?.subject}function ve(r,e){let n=[];for(let t of r.statement){let a=Yt(t);a&&ce(a,e)&&n.push(t)}return n}function Ge(r,e){for(let n of ve(r,e))if(n instanceof z)return n.object}function Ue(r,e){for(let n of ve(r,e))if(n instanceof I)return $n(n.object.subject)}function Fe(r,e){for(let n of ve(r,e))if(n instanceof H)return n.object}function vn(r,e){for(let n of ve(r,e))if(n instanceof re)return n.object}function yn(r,e){for(let n of ve(r,e))if(n instanceof te)return n.object}function be(r,e,n){let t=Fe(r,e);if(t===void 0)throw new G(`${e.name} (string) is required`,n);return t}function Jn(r,e,n){let t=vn(r,e);if(t===void 0)throw new G(`${e.name} (number) is required`,n);return t}function Xt(r,e,n){let t=yn(r,e);if(t===void 0)throw new G(`${e.name} (boolean) is required`,n);return t}function Ie(r,e,n,t){let a=Ue(r,e);if(!a)throw new G(`${t} (URI reference) is required`,n);return a}function $n(r){return{publisher:r.publisher,package_:r.package_,name:r.name}}var Pe="kanonak.org",st="look",qe="core-rdf",Jt={publisher:Pe,package_:st,name:"displayLabel"},Zt={publisher:Pe,package_:st,name:"displaySummary"},Qt={publisher:Pe,package_:qe,name:"subClassOf"},ea={publisher:Pe,package_:qe,name:"label"},na={publisher:Pe,package_:qe,name:"comment"},nt=new Pn(Pe,qe,"Resource"),ta=8;function N(r,e){return ot(r,e,new Set)}function ot(r,e,n){let t=rt(r,e,Jt)??ea,a=rt(r,e,Zt)??na,s=tt(r,e,t,n)??e.name,o=tt(r,e,a,n);return{label:s,summary:o}}function tt(r,e,n,t){for(let a of e.statement){let s=a.predicate;if(!(!s?.subject||!ce(s.subject,n))){if(a instanceof H)return a.object;if(a instanceof re||a instanceof te)return String(a.object);if(a instanceof I)return at(r,a.object.subject,t);if(a instanceof C){let o=[];for(let i of a.object??[])if(i instanceof j){let c=at(r,i.subject,t);c&&o.push(c)}if(o.length>0)return o.join(", ")}return}}}function at(r,e,n){let t=en(e);if(n.has(t)||n.size>=ta)return e.name;let[a]=le(r,e);if(!a)return e.name;let s=new Set(n);return s.add(t),ot(r,a,s).label}function rt(r,e,n){let t=nn(e,n);if(t)return t;let a=new Set,s=kn(e,aa);for(;s.length>0;){let o=s.shift(),i=en(o);if(a.has(i))continue;a.add(i);let c=le(r,o);for(let l of c){let d=nn(l,n);if(d)return d}for(let l of c)s.push(...kn(l,Qt))}if(!a.has(en(nt)))for(let o of le(r,nt)){let i=nn(o,n);if(i)return i}}var aa={publisher:Pe,package_:qe,name:"type"};function We(r,e={}){let n=r.replace(/\r\n/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),t=[],a=0;for(;a<n.length;){let s=n[a];if(s.trim()===""){a++;continue}let o=/^(\s*)```(\S*)\s*$/.exec(s);if(o){let l=o[2],d=[];for(a++;a<n.length&&!/^(\s*)```\s*$/.test(n[a]);)d.push(n[a]),a++;a++;let f=d.join(`
|
|
4
|
-
`),p=l&&e.highlight?e.highlight(l,f):
|
|
4
|
+
`),p=l&&e.highlight?e.highlight(l,f):De(f),k=l?` class="language-${ct(l)}"`:"";t.push(`<pre class="kan-code"><code${k}>${p}</code></pre>`);continue}let i=/^(#{1,6})\s+(.*)$/.exec(s);if(i){let l=i[1].length,d=Ne(i[2].trim());t.push(`<h${l}>${d}</h${l}>`),a++;continue}if(s.includes("|")&&a+1<n.length&&it(n[a+1])){let l=Sn(s),d=ra(n[a+1]);a+=2;let f=[];for(;a<n.length&&n[a].trim()!==""&&n[a].includes("|");)f.push(Sn(n[a])),a++;t.push(sa(l,d,f));continue}if(/^\s*[-*]\s+/.test(s)){let l=[];for(;a<n.length&&/^\s*[-*]\s+/.test(n[a]);){let d=[n[a].replace(/^\s*[-*]\s+/,"")];for(a++;a<n.length&&n[a].trim()!==""&&!/^\s*[-*]\s+/.test(n[a])&&!/^\s*\d+\.\s+/.test(n[a]);)d.push(n[a]),a++;a<n.length&&n[a].trim()===""&&a++,l.push(`<li>${Ne(d.join(" ").trim())}</li>`)}t.push(`<ul>
|
|
5
5
|
${l.join(`
|
|
6
6
|
`)}
|
|
7
|
-
</ul>`);continue}if(/^\s*\d+\.\s+/.test(s)){let l=[];for(;a<n.length&&/^\s*\d+\.\s+/.test(n[a]);){let d=[n[a].replace(/^\s*\d+\.\s+/,"")];for(a++;a<n.length&&n[a].trim()!==""&&!/^\s*\d+\.\s+/.test(n[a])&&!/^\s*[-*]\s+/.test(n[a]);)d.push(n[a]),a++;a<n.length&&n[a].trim()===""&&a++,l.push(`<li>${
|
|
7
|
+
</ul>`);continue}if(/^\s*\d+\.\s+/.test(s)){let l=[];for(;a<n.length&&/^\s*\d+\.\s+/.test(n[a]);){let d=[n[a].replace(/^\s*\d+\.\s+/,"")];for(a++;a<n.length&&n[a].trim()!==""&&!/^\s*\d+\.\s+/.test(n[a])&&!/^\s*[-*]\s+/.test(n[a]);)d.push(n[a]),a++;a<n.length&&n[a].trim()===""&&a++,l.push(`<li>${Ne(d.join(" ").trim())}</li>`)}t.push(`<ol>
|
|
8
8
|
${l.join(`
|
|
9
9
|
`)}
|
|
10
|
-
</ol>`);continue}let c=[s];for(a++;a<n.length&&n[a].trim()!==""&&!/^(#{1,6})\s+/.test(n[a])&&!/^(\s*)```/.test(n[a])&&!/^\s*[-*]\s+/.test(n[a])&&!/^\s*\d+\.\s+/.test(n[a])&&!(n[a].includes("|")&&a+1<n.length&&
|
|
11
|
-
`)}function
|
|
10
|
+
</ol>`);continue}let c=[s];for(a++;a<n.length&&n[a].trim()!==""&&!/^(#{1,6})\s+/.test(n[a])&&!/^(\s*)```/.test(n[a])&&!/^\s*[-*]\s+/.test(n[a])&&!/^\s*\d+\.\s+/.test(n[a])&&!(n[a].includes("|")&&a+1<n.length&&it(n[a+1]));)c.push(n[a]),a++;t.push(`<p>${Ne(c.join(" "))}</p>`)}return t.join(`
|
|
11
|
+
`)}function it(r){return r.includes("-")?/^[\s|:-]+$/.test(r):!1}function Sn(r){let e=r.trim();return e.startsWith("|")&&(e=e.slice(1)),e.endsWith("|")&&(e=e.slice(0,-1)),e.split("|").map(n=>n.trim())}function ra(r){return Sn(r).map(e=>{let n=e.startsWith(":"),t=e.endsWith(":");return n&&t?"center":t?"right":n?"left":null})}function sa(r,e,n){let t=o=>{let i=e[o];return i?` style="text-align:${i}"`:""},a=r.map((o,i)=>`<th${t(i)}>${Ne(o)}</th>`).join(""),s=n.map(o=>`<tr>${o.map((c,l)=>`<td${t(l)}>${Ne(c)}</td>`).join("")}</tr>`).join(`
|
|
12
12
|
`);return`<table>
|
|
13
13
|
<thead><tr>${a}</tr></thead>
|
|
14
14
|
<tbody>
|
|
15
15
|
${s}
|
|
16
16
|
</tbody>
|
|
17
|
-
</table>`}function De(r){let e=Be(r);return e=e.replace(/`([^`\n]+)`/g,(n,t)=>`<code>${t}</code>`),e=e.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,t,a)=>`<a href="${it(a)}">${t}</a>`),e=e.replace(/\*\*([^*\n]+)\*\*/g,(n,t)=>`<strong>${t}</strong>`),e=e.replace(/(^|[^*])\*([^*\n]+)\*(?!\*)/g,(n,t,a)=>`${t}<em>${a}</em>`),e=e.replace(/(^|[\s(])_([^_\n]+)_(?=[\s).,;:!?]|$)/g,(n,t,a)=>`${t}<em>${a}</em>`),e}function Be(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function it(r){return r.replace(/"/g,""").replace(/&/g,"&")}var ra={publisher:"kanonak.org",package_:"core-rdf",name:"label"};function Ae(r){return typeof r=="object"&&r!==null&&r.kind==="raw-string"}var Re=class extends Error{},Je=class{constructor(e,n,t=new Map){this.resolver=e;this.catalog=n;this.fragments=t}resolver;catalog;fragments;async evaluate(e,n){switch(e.kind){case"string-literal":return e.value;case"integer-literal":return e.value;case"decimal-literal":return e.value;case"boolean-literal":return e.value;case"uri-literal":return{...e.refTo};case"var-ref":{if(!n.has(e.varName))throw new Re(`Unbound variable "${e.varName}"`);return n.get(e.varName)}case"concat":{let t=[];for(let a of e.parts){let s=await this.evaluate(a,n);if(s!=null)if(Array.isArray(s))for(let o of s)t.push(o);else t.push(s)}return t}case"fallback":{let t=await this.evaluate(e.primary,n);return ct(t)?t:this.evaluate(e.alternate,n)}case"when":return await this.evaluate(e.condition,n)===!0?this.evaluate(e.thenBuild,n):e.elseBuild?this.evaluate(e.elseBuild,n):void 0;case"is-set":{let t=await this.evaluate(e.check,n);return ct(t)}case"property-read":{let t=await this.evaluate(e.source,n);return an(t,e.readProp)}case"traverse":{let t=await this.evaluate(e.source,n);if(!(t instanceof je))return;let a=oa(t,e.through),s=[];for(let o of a){let i=he(this.catalog,o),c=i.length>0?i:[await this.resolver.resolveSubject(o,this.catalog)];for(let l of c){if(!l)continue;let d=new Map(n);d.set("input",l);let f=await this.evaluate(e.step,d);if(f!=null&&xe(f)!==""){s.push(xe(f));break}}}return s.join("")}case"uri-name":{let t=await this.evaluate(e.source,n);return He(t)?t.name:t instanceof j?t.subject.name:t instanceof W?t.name:t instanceof V?t.name??"":void 0}case"uri-publisher":{let t=await this.evaluate(e.source,n);return wn(t)?.publisher}case"uri-package":{let t=await this.evaluate(e.source,n);return wn(t)?.package_}case"uri-version":{let t=await this.evaluate(e.source,n);return wn(t)?.version}case"subject-uri":{let t=await this.evaluate(e.source,n);if(t instanceof W){let a=t.namespace??"",s=t.name??"";return!a||!s?void 0:`${a}/${s}`}if(t instanceof j){let a=t.subject,s=a.version;return s&&typeof s.major=="number"?`${a.publisher}/${a.package_}@${s.major}.${s.minor}.${s.patch}/${a.name}`:`${a.publisher}/${a.package_}/${a.name}`}return}case"display-label":{let t=await this.resolver.resolveSubject({...e.labelTarget},this.catalog);return t?an(t,e.labelSource):void 0}case"resolve-ref":{let t=await this.evaluate(e.source,n);return t instanceof W?t:t instanceof j?await this.resolver.resolveSubject(t.subject,this.catalog):He(t)?await this.resolver.resolveSubject(t,this.catalog):void 0}case"normalize":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return e.normKind==="trim-end"?a.replace(/[\s\r\n]+$/u,""):e.normKind==="to-upper"?a.toUpperCase():e.normKind==="to-lower"?a.toLowerCase():e.normKind==="first-char"?a.length===0?"":a.charAt(0):a}case"unescaped-string":{let t=await this.evaluate(e.source,n);return{kind:"raw-string",value:t==null?"":xe(t)}}case"render-markdown":{let t=await this.evaluate(e.source,n);if(!(t instanceof je))return;let a;for(let o of t.statement){let i=jn(o);if(i&&fe(i,e.readProp)){a=o;break}}if(!(a instanceof Ve)){let o=an(t,e.readProp);return o==null?void 0:xe(o)}let s=await this.renderMarkdownLinks(a);return e.format==="html"?Xe(s):s}case"build-ast-node":{let t={kind:e.astClass.name};for(let a of e.set){let s=await this.evaluate(a.value,n);if(s==null||Array.isArray(s)&&s.length===0)continue;let o=a.field.name;ca.has(o)&&(Array.isArray(s)&&s.every(i=>lt(i))?s=s.map(i=>ut(i)).join(""):lt(s)&&(s=ut(s))),t[o]=s}return t}case"call-fragment":{let t=this.fragments.get(e.fragmentKey);if(!t)throw new Re(`ExpressionFragment ${e.fragmentKey} not found in registry`);return this.evaluate(t,n)}case"join":return(await this.evaluateList(e.source,n)).map(a=>a==null?"":xe(a)).join(e.separator);case"count":return(await this.evaluateList(e.source,n)).length;case"sum":{let t=await this.evaluateList(e.source,n),a=0;for(let s of t)a+=pe(s,"Sum");return a}case"min":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Re("Min on an empty list is undefined; guard with IsSet");let a=pe(t[0],"Min");for(let s=1;s<t.length;s++){let o=pe(t[s],"Min");o<a&&(a=o)}return a}case"max":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Re("Max on an empty list is undefined; guard with IsSet");let a=pe(t[0],"Max");for(let s=1;s<t.length;s++){let o=pe(t[s],"Max");o>a&&(a=o)}return a}case"average":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Re("Average on an empty list is undefined; guard with IsSet");let a=0;for(let s of t)a+=pe(s,"Average");return a/t.length}case"for-each":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"list-map":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s)),a.push(await this.evaluate(e.mapBody,o))}return a}case"filter":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s)),await this.evaluate(e.predicate,o)===!0&&a.push(s)}return a}case"partition-by":{let t=await this.evaluateList(e.source,n),a=new Map,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,ye(o));let c=await this.evaluate(e.partitionKey,i),l=pt(c),d=a.get(l);d||(d={kind:"Partition",key:c,members:[]},a.set(l,d),s.push(l)),d.members.push(o)}return s.map(o=>a.get(o))}case"distinct-by":{let t=await this.evaluateList(e.source,n),a=new Set,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,ye(o));let c=await this.evaluate(e.distinctKey,i),l=pt(c);a.has(l)||(a.add(l),s.push(o))}return s}case"all-statements":{let t=await this.evaluate(e.source,n);return t instanceof je?t.statement:[]}case"statement-predicate":{let t=await this.evaluate(e.source,n);if(_n(t)){let a=t.predicate;if(a instanceof j)return a}return}case"statement-value":{let t=await this.evaluate(e.source,n);return _n(t)?ka(t):void 0}case"date-format":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return a?ua(a,e.format):""}case"number-format":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return a.trim()?ma(a,e.style,e.fractionDigits,e.currencyCode):""}case"add":{let t=pe(await this.evaluate(e.left,n),"Add"),a=pe(await this.evaluate(e.right,n),"Add");return t+a}case"subtract":{let t=pe(await this.evaluate(e.left,n),"Subtract"),a=pe(await this.evaluate(e.right,n),"Subtract");return t-a}case"multiply":{let t=pe(await this.evaluate(e.left,n),"Multiply"),a=pe(await this.evaluate(e.right,n),"Multiply");return t*a}case"divide":{let t=pe(await this.evaluate(e.left,n),"Divide"),a=pe(await this.evaluate(e.right,n),"Divide");if(a===0)throw new Re("Divide by zero; guard with When");return t/a}case"reverse":{if(e.source.kind==="reverse")return this.evaluate(e.source.source,n);let t=await this.evaluateReverseIterator(e.source,n);return t!==void 0?t:[...await this.evaluateList(e.source,n)].reverse()}case"windowed-map":{let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=0;s+e.windowSize<=t.length;s++){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}case"pairwise-map":{let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=0;s+1<t.length;s++){let o=new Map(n);o.set(e.firstVar,ye(t[s])),o.set(e.secondVar,ye(t[s+1]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"scan":{let t=await this.evaluateList(e.source,n);if(t.length===0)return[];let a=await this.evaluate(e.initialState,n),s=[];for(let o of t){let i=new Map(n);i.set(e.stateVar,a),i.set(e.elementVar,ye(o));let c=await this.evaluate(e.accumulate,i);s.push(c),a=c}return s}case"list-item-at":{let t=await this.evaluateList(e.source,n),a=await this.evaluate(e.itemIndex,n);return typeof a!="number"||!Number.isInteger(a)||a<0||a>=t.length?void 0:t[a]}case"equals":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return dt(t,a)}case"greater-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>a}case"less-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<a}case"greater-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>=a}case"less-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<=a}case"not":{let t=await this.evaluate(e.operand,n);return t===!0?!1:t===!1?!0:void 0}case"and":{for(let t of e.operands)if(await this.evaluate(t,n)!==!0)return!1;return!0}case"or":{for(let t of e.operands)if(await this.evaluate(t,n)===!0)return!0;return!1}case"contains":{let t=await this.evaluateList(e.haystack,n),a=await this.evaluate(e.needle,n);for(let s of t)if(dt(s,a))return!0;return!1}case"abs":{let t=pe(await this.evaluate(e.value,n),"Abs");return Math.abs(t)}case"negate":return-pe(await this.evaluate(e.value,n),"Negate");case"is-reference":{let t=await this.evaluate(e.check,n);return t instanceof j||t instanceof W}case"is-embedded":return await this.evaluate(e.check,n)instanceof V;case"is-list":{let t=await this.evaluate(e.check,n);return Array.isArray(t)}case"is-string":return typeof await this.evaluate(e.check,n)=="string";case"is-number":return typeof await this.evaluate(e.check,n)=="number";case"is-boolean":return typeof await this.evaluate(e.check,n)=="boolean";case"statement-object":{let t=await this.evaluate(e.source,n);if(!_n(t))return;let a=t;return a instanceof Y||a instanceof ie||a instanceof ae||a instanceof T||a instanceof H||a instanceof I?a.object:void 0}case"let":{let t=await this.evaluate(e.bindValue,n),a=new Map(n);return a.set(e.bindName,t),this.evaluate(e.body,a)}case"get-statement-by-name":{let t=await this.evaluate(e.inSubject,n),a=await this.evaluate(e.byName,n);if(!(t instanceof je)||typeof a!="string")return;for(let s of t.statement)if(s.predicate?.subject?.name===a)return s;return}default:{let t=e;throw new Re("Unknown expression kind")}}}async renderMarkdownLinks(e){let n=e.object,t="",a=0;for(let s of e.links){if(t+=n.slice(a,s.startOffset),s.target){let o=s.target.subject,i=s.displayText??await this.resolveLabel(o)??o.name;t+=`[${i}](${An(o)})`}else t+=s.displayText??s.reference;a=s.endOffset}return t+=n.slice(a),t}async resolveLabel(e){let n=await this.resolver.resolveSubject(e,this.catalog);if(!n)return;let t=an(n,ra);return typeof t=="string"?t:void 0}async evaluateList(e,n){let t=await this.evaluate(e,n);return t==null?[]:Array.isArray(t)?t:[t]}async evaluateReverseIterator(e,n){if(e.kind==="pairwise-map"){let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=t.length-1;s>=1;s--){let o=new Map(n);o.set(e.firstVar,ye(t[s-1])),o.set(e.secondVar,ye(t[s]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="for-each"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,ye(t[s]));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="list-map"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,ye(t[s])),a.push(await this.evaluate(e.mapBody,o))}return a}if(e.kind==="windowed-map"){let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=t.length-e.windowSize;s>=0;s--){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}}};function an(r,e){if(r instanceof je)return sa(r,e);if(ia(r))return fe(e,u.key)?r.key:fe(e,u.members)?r.members:void 0}function sa(r,e){for(let n of r.statement){let t=jn(n);if(!(!t||!fe(t,e))&&(n instanceof Y||n instanceof ie||n instanceof ae||n instanceof T||n instanceof H||n instanceof I))return n.object}}function oa(r,e){let n=[];for(let t of r.statement){let a=jn(t);if(!(!a||!fe(a,e))){if(t instanceof T)n.push(t.object.subject);else if(t instanceof I)for(let s of t.object)s instanceof j&&n.push(s.subject)}}return n}function jn(r){return r.predicate?.subject}function xe(r){if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Ae(r))return r.value;if(r instanceof je)return r.name??"";if(r instanceof j)return r.subject.name;if(He(r))return r.name;let e=r.value;return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function ye(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof je)&&!(r instanceof j)&&!(r instanceof V)&&"value"in r?r.value:r}function ct(r){return r==null?!1:typeof r=="string"||Array.isArray(r)?r.length>0:typeof r=="boolean"?r===!0:!0}function He(r){return typeof r=="object"&&r!==null&&typeof r.publisher=="string"&&typeof r.package_=="string"&&typeof r.name=="string"}function ia(r){return typeof r=="object"&&r!==null&&r.kind==="Partition"&&Array.isArray(r.members)}function pe(r,e){if(typeof r=="number"&&Number.isFinite(r))return r;throw new Re(`${e} requires numeric elements; got ${la(r)}`)}function wn(r){if(r instanceof W){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);return n<0||t<0?void 0:{publisher:e.substring(0,n),package_:e.substring(n+1,t),version:e.substring(t+1),name:r.name??""}}if(r instanceof j){let e=r.subject,n=e.version;return{publisher:e.publisher,package_:e.package_,version:n&&typeof n.major=="number"?`${n.major}.${n.minor}.${n.patch}`:"",name:e.name}}if(He(r))return{publisher:r.publisher,package_:r.package_,version:"",name:r.name}}var ca=new Set(["stringValue","text","rawContent","key","propertyKey","linkLabel"]);function lt(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||Ae(r)}function ut(r){return Ae(r)?r.value:String(r)}function la(r){return r===void 0?"undefined":r===null?"null":Array.isArray(r)?`array(${r.length})`:typeof r}function ua(r,e){let n=new Date(r);if(isNaN(n.getTime()))return"";let t=n.getUTCFullYear(),a=["January","February","March","April","May","June","July","August","September","October","November","December"][n.getUTCMonth()],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][n.getUTCMonth()],o=n.getUTCDate(),i=(c,l=2)=>String(c).padStart(l,"0");switch(e){case"iso-date":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}`;case"iso-datetime":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}T${i(n.getUTCHours())}:${i(n.getUTCMinutes())}:${i(n.getUTCSeconds())}Z`;case"short-date":return`${s} ${o}`;case"long-date":return`${a} ${o}, ${t}`;case"year":return String(t);case"month-year":return`${a} ${t}`}}var da={USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5"},fa={decimal:0,currency:0,compact:0,percent:2,"basis-points":4};function pa(r,e){if(e===0)return r;let n=r.startsWith("-"),t=n?r.slice(1):r,a=t.indexOf("."),s=a===-1?t:t.slice(0,a),o=a===-1?"":t.slice(a+1),i=s+o,c=s.length+e,l;return c<=0?l=`0.${"0".repeat(-c)}${i}`:c>=i.length?l=i+"0".repeat(c-i.length):l=`${i.slice(0,c)}.${i.slice(c)}`,l=l.replace(/^0+(?=\d)/,""),n&&/[1-9]/.test(l)?`-${l}`:l}function ga(r){let e=r.startsWith("-"),n=e?r.slice(1):r,t=n.indexOf("."),a=t===-1?n:n.slice(0,t),s=t===-1?"":n.slice(t);return`${e?"-":""}${a.replace(/\B(?=(\d{3})+(?!\d))/g,",")}${s}`}function ma(r,e,n,t){let a=Number(r.trim());if(!Number.isFinite(a))return"";let s=/e/i.test(r.trim())?a.toFixed(20).replace(/0+$/,""):r.trim();if(e==="compact"){let i=Math.abs(a),c=[[1e12,"T"],[1e9,"B"],[1e6,"M"],[1e3,"K"]];for(let[l,d]of c)if(i>=l){let f=a/l;return`${n===void 0?String(Number(f.toFixed(1))):f.toFixed(n)}${d}`}return n===void 0?String(a):a.toFixed(n)}let o=pa(s,fa[e]??0);switch(n!==void 0&&(o=Number(o).toFixed(n)),e){case"percent":return`${o}%`;case"basis-points":return`${o} bp`;case"currency":{let i=(t??"USD").toUpperCase(),c=da[i]??`${i} `,l=o.startsWith("-");return`${l?"-":""}${c}${ga(l?o.slice(1):o)}`}default:return o}}function dt(r,e){if(r==null||e===void 0||e===null)return!1;if(r===e)return!0;let n=typeof r=="object"&&"value"in r?r.value:void 0,t=typeof e=="object"&&"value"in e?e.value:void 0,a=n??r,s=t??e,o=ft(r),i=ft(e);return o&&i?o.publisher===i.publisher&&o.package_===i.package_&&o.name===i.name:typeof a=="string"&&typeof s=="string"||typeof a=="number"&&typeof s=="number"||typeof a=="boolean"&&typeof s=="boolean"?a===s:!1}function ft(r){if(r instanceof j){let e=r.subject;return{publisher:e.publisher,package_:e.package_,name:e.name}}if(r instanceof W){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);if(n<0)return;let a=e.substring(0,n),s=t>=0?e.substring(n+1,t):e.substring(n+1);return{publisher:a,package_:s,name:r.name??""}}if(He(r))return{publisher:r.publisher,package_:r.package_,name:r.name}}function _n(r){return r instanceof Y||r instanceof ie||r instanceof ae||r instanceof T||r instanceof H||r instanceof I}function ka(r){return r instanceof Y||r instanceof ie||r instanceof ae?String(r.object??""):r instanceof T?r.object?.subject?.name??"":r instanceof H?"[embedded]":r instanceof I?(r.object??[]).map(n=>{if(n instanceof j)return n.subject.name;let t=n.name;if(t&&t.length>0)return t;let a=n.value;return typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a):"[embedded]"}).join(", "):""}function pt(r){if(r===void 0)return"\0undef";if(r===null)return"\0null";if(typeof r=="string")return`s:${r}`;if(typeof r=="number")return`n:${r}`;if(typeof r=="boolean")return`b:${r}`;if(r instanceof j){let e=r.subject;return`r:${e.publisher}/${e.package_}/${e.name}`}if(r instanceof je){let e=r.name??"";return`k:${r.namespace??""}/${e}`}return He(r)?`u:${r.publisher}/${r.package_}/${r.name}`:`o:${JSON.stringify(r)}`}var rn=class{constructor(e,n,t){this.repository=e;this.parser=n;this.objectParser=t}repository;parser;objectParser;cache=new Map;async resolveSubject(e,n){let t=Ne(n,e);if(t)return t;let a=e.version,s=a&&typeof a.major=="number"?`@${a.major}.${a.minor}.${a.patch}`:"",o=`${e.publisher}/${e.package_}${s}`,i=this.cache.get(o);if(!i){let l=await this.repository.getDocumentsByNamespaceAsync(e.publisher,e.package_);if(l.length===0)return;let d=a&&typeof a.major=="number"?l.find(p=>{let k=p.metadata?.namespace_?.version;return k&&k.major===a.major&&k.minor===a.minor&&k.patch===a.patch})??l[0]:l[0],f=new Nn(d,this.repository);i=await this.objectParser.parseKanonaks(f),this.cache.set(o,i)}let c=Ne(i,e);if(c)return c;for(let l of i)if(l instanceof W&&l.name===e.name)return l}};var sn=class{byLang=new Map;constructor(e){for(let n of e){if(!n.language)continue;let t=[];for(let a of n.rules){if(!a.tokenClass||!a.pattern)continue;let s;try{s=new RegExp(a.pattern,"y")}catch{continue}t.push({tokenClass:a.tokenClass,re:s})}this.byLang.set(n.language,t)}}has(e){return this.byLang.has(e)}highlight(e,n){let t=this.byLang.get(e);return!t||t.length===0?Be(n):n.split(`
|
|
17
|
+
</table>`}function Ne(r){let e=De(r);return e=e.replace(/`([^`\n]+)`/g,(n,t)=>`<code>${t}</code>`),e=e.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,t,a)=>`<a href="${ct(a)}">${t}</a>`),e=e.replace(/\*\*([^*\n]+)\*\*/g,(n,t)=>`<strong>${t}</strong>`),e=e.replace(/(^|[^*])\*([^*\n]+)\*(?!\*)/g,(n,t,a)=>`${t}<em>${a}</em>`),e=e.replace(/(^|[\s(])_([^_\n]+)_(?=[\s).,;:!?]|$)/g,(n,t,a)=>`${t}<em>${a}</em>`),e}function De(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ct(r){return r.replace(/"/g,""").replace(/&/g,"&")}var oa={publisher:"kanonak.org",package_:"core-rdf",name:"label"};function Ae(r){return typeof r=="object"&&r!==null&&r.kind==="raw-string"}var Ke=class extends Error{},Ye=class{constructor(e,n,t=new Map){this.resolver=e;this.catalog=n;this.fragments=t}resolver;catalog;fragments;async evaluate(e,n){switch(e.kind){case"string-literal":return e.value;case"integer-literal":return e.value;case"decimal-literal":return e.value;case"boolean-literal":return e.value;case"uri-literal":return{...e.refTo};case"var-ref":{if(!n.has(e.varName))throw new Ke(`Unbound variable "${e.varName}"`);return n.get(e.varName)}case"concat":{let t=[];for(let a of e.parts){let s=await this.evaluate(a,n);if(s!=null)if(Array.isArray(s))for(let o of s)t.push(o);else t.push(s)}return t}case"fallback":{let t=await this.evaluate(e.primary,n);return lt(t)?t:this.evaluate(e.alternate,n)}case"when":return await this.evaluate(e.condition,n)===!0?this.evaluate(e.thenBuild,n):e.elseBuild?this.evaluate(e.elseBuild,n):void 0;case"is-set":{let t=await this.evaluate(e.check,n);return lt(t)}case"property-read":{let t=await this.evaluate(e.source,n);return an(t,e.readProp)}case"traverse":{let t=await this.evaluate(e.source,n);if(!(t instanceof je))return;let a=ca(t,e.through),s=[];for(let o of a){let i=le(this.catalog,o),c=i.length>0?i:[await this.resolver.resolveSubject(o,this.catalog)];for(let l of c){if(!l)continue;let d=new Map(n);d.set("input",l);let f=await this.evaluate(e.step,d);if(f!=null&&xe(f)!==""){s.push(xe(f));break}}}return s.join("")}case"uri-name":{let t=await this.evaluate(e.source,n);return Be(t)?t.name:t instanceof j?t.subject.name:t instanceof Y?t.name:t instanceof V?t.name??"":void 0}case"uri-publisher":{let t=await this.evaluate(e.source,n);return wn(t)?.publisher}case"uri-package":{let t=await this.evaluate(e.source,n);return wn(t)?.package_}case"uri-version":{let t=await this.evaluate(e.source,n);return wn(t)?.version}case"subject-uri":{let t=await this.evaluate(e.source,n);if(t instanceof Y){let a=t.namespace??"",s=t.name??"";return!a||!s?void 0:`${a}/${s}`}if(t instanceof j){let a=t.subject,s=a.version;return s&&typeof s.major=="number"?`${a.publisher}/${a.package_}@${s.major}.${s.minor}.${s.patch}/${a.name}`:`${a.publisher}/${a.package_}/${a.name}`}return}case"display-label":{let t=await this.resolver.resolveSubject({...e.labelTarget},this.catalog);return t?an(t,e.labelSource):void 0}case"resolve-ref":{let t=await this.evaluate(e.source,n);return t instanceof Y?t:t instanceof j?await this.resolver.resolveSubject(t.subject,this.catalog):Be(t)?await this.resolver.resolveSubject(t,this.catalog):void 0}case"normalize":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return e.normKind==="trim-end"?a.replace(/[\s\r\n]+$/u,""):e.normKind==="to-upper"?a.toUpperCase():e.normKind==="to-lower"?a.toLowerCase():e.normKind==="first-char"?a.length===0?"":a.charAt(0):a}case"unescaped-string":{let t=await this.evaluate(e.source,n);return{kind:"raw-string",value:t==null?"":xe(t)}}case"render-markdown":{let t=await this.evaluate(e.source,n);if(!(t instanceof je))return;let a;for(let o of t.statement){let i=jn(o);if(i&&ce(i,e.readProp)){a=o;break}}if(!(a instanceof Ve)){let o=an(t,e.readProp);return o==null?void 0:xe(o)}let s=await this.renderMarkdownLinks(a);return e.format==="html"?We(s):s}case"build-ast-node":{let t={kind:e.astClass.name};for(let a of e.set){let s=await this.evaluate(a.value,n);if(s==null||Array.isArray(s)&&s.length===0)continue;let o=a.field.name;ua.has(o)&&(Array.isArray(s)&&s.every(i=>ut(i))?s=s.map(i=>dt(i)).join(""):ut(s)&&(s=dt(s))),t[o]=s}return t}case"call-fragment":{let t=this.fragments.get(e.fragmentKey);if(!t)throw new Ke(`ExpressionFragment ${e.fragmentKey} not found in registry`);return this.evaluate(t,n)}case"join":return(await this.evaluateList(e.source,n)).map(a=>a==null?"":xe(a)).join(e.separator);case"count":return(await this.evaluateList(e.source,n)).length;case"sum":{let t=await this.evaluateList(e.source,n),a=0;for(let s of t)a+=ge(s,"Sum");return a}case"min":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ke("Min on an empty list is undefined; guard with IsSet");let a=ge(t[0],"Min");for(let s=1;s<t.length;s++){let o=ge(t[s],"Min");o<a&&(a=o)}return a}case"max":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ke("Max on an empty list is undefined; guard with IsSet");let a=ge(t[0],"Max");for(let s=1;s<t.length;s++){let o=ge(t[s],"Max");o>a&&(a=o)}return a}case"average":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ke("Average on an empty list is undefined; guard with IsSet");let a=0;for(let s of t)a+=ge(s,"Average");return a/t.length}case"for-each":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"list-map":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s)),a.push(await this.evaluate(e.mapBody,o))}return a}case"filter":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s)),await this.evaluate(e.predicate,o)===!0&&a.push(s)}return a}case"partition-by":{let t=await this.evaluateList(e.source,n),a=new Map,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,ye(o));let c=await this.evaluate(e.partitionKey,i),l=gt(c),d=a.get(l);d||(d={kind:"Partition",key:c,members:[]},a.set(l,d),s.push(l)),d.members.push(o)}return s.map(o=>a.get(o))}case"distinct-by":{let t=await this.evaluateList(e.source,n),a=new Set,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,ye(o));let c=await this.evaluate(e.distinctKey,i),l=gt(c);a.has(l)||(a.add(l),s.push(o))}return s}case"all-statements":{let t=await this.evaluate(e.source,n);return t instanceof je?t.statement:[]}case"statement-predicate":{let t=await this.evaluate(e.source,n);if(_n(t)){let a=t.predicate;if(a instanceof j)return a}return}case"statement-value":{let t=await this.evaluate(e.source,n);return _n(t)?ba(t):void 0}case"date-format":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return a?fa(a,e.format):""}case"number-format":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return a.trim()?ha(a,e.style,e.fractionDigits,e.currencyCode):""}case"add":{let t=ge(await this.evaluate(e.left,n),"Add"),a=ge(await this.evaluate(e.right,n),"Add");return t+a}case"subtract":{let t=ge(await this.evaluate(e.left,n),"Subtract"),a=ge(await this.evaluate(e.right,n),"Subtract");return t-a}case"multiply":{let t=ge(await this.evaluate(e.left,n),"Multiply"),a=ge(await this.evaluate(e.right,n),"Multiply");return t*a}case"divide":{let t=ge(await this.evaluate(e.left,n),"Divide"),a=ge(await this.evaluate(e.right,n),"Divide");if(a===0)throw new Ke("Divide by zero; guard with When");return t/a}case"reverse":{if(e.source.kind==="reverse")return this.evaluate(e.source.source,n);let t=await this.evaluateReverseIterator(e.source,n);return t!==void 0?t:[...await this.evaluateList(e.source,n)].reverse()}case"windowed-map":{let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=0;s+e.windowSize<=t.length;s++){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}case"pairwise-map":{let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=0;s+1<t.length;s++){let o=new Map(n);o.set(e.firstVar,ye(t[s])),o.set(e.secondVar,ye(t[s+1]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"scan":{let t=await this.evaluateList(e.source,n);if(t.length===0)return[];let a=await this.evaluate(e.initialState,n),s=[];for(let o of t){let i=new Map(n);i.set(e.stateVar,a),i.set(e.elementVar,ye(o));let c=await this.evaluate(e.accumulate,i);s.push(c),a=c}return s}case"list-item-at":{let t=await this.evaluateList(e.source,n),a=await this.evaluate(e.itemIndex,n);return typeof a!="number"||!Number.isInteger(a)||a<0||a>=t.length?void 0:t[a]}case"equals":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return ft(t,a)}case"greater-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>a}case"less-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<a}case"greater-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>=a}case"less-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<=a}case"not":{let t=await this.evaluate(e.operand,n);return t===!0?!1:t===!1?!0:void 0}case"and":{for(let t of e.operands)if(await this.evaluate(t,n)!==!0)return!1;return!0}case"or":{for(let t of e.operands)if(await this.evaluate(t,n)===!0)return!0;return!1}case"contains":{let t=await this.evaluateList(e.haystack,n),a=await this.evaluate(e.needle,n);for(let s of t)if(ft(s,a))return!0;return!1}case"abs":{let t=ge(await this.evaluate(e.value,n),"Abs");return Math.abs(t)}case"negate":return-ge(await this.evaluate(e.value,n),"Negate");case"is-reference":{let t=await this.evaluate(e.check,n);return t instanceof j||t instanceof Y}case"is-embedded":return await this.evaluate(e.check,n)instanceof V;case"is-list":{let t=await this.evaluate(e.check,n);return Array.isArray(t)}case"is-string":return typeof await this.evaluate(e.check,n)=="string";case"is-number":return typeof await this.evaluate(e.check,n)=="number";case"is-boolean":return typeof await this.evaluate(e.check,n)=="boolean";case"statement-object":{let t=await this.evaluate(e.source,n);if(!_n(t))return;let a=t;return a instanceof H||a instanceof re||a instanceof te||a instanceof I||a instanceof z||a instanceof C?a.object:void 0}case"let":{let t=await this.evaluate(e.bindValue,n),a=new Map(n);return a.set(e.bindName,t),this.evaluate(e.body,a)}case"get-statement-by-name":{let t=await this.evaluate(e.inSubject,n),a=await this.evaluate(e.byName,n);if(!(t instanceof je)||typeof a!="string")return;for(let s of t.statement)if(s.predicate?.subject?.name===a)return s;return}default:{let t=e;throw new Ke("Unknown expression kind")}}}async renderMarkdownLinks(e){let n=e.object,t="",a=0;for(let s of e.links){if(t+=n.slice(a,s.startOffset),s.target){let o=s.target.subject,i=s.displayText??await this.resolveLabel(o)??o.name;t+=`[${i}](${An(o)})`}else t+=s.displayText??s.reference;a=s.endOffset}return t+=n.slice(a),t}async resolveLabel(e){let n=await this.resolver.resolveSubject(e,this.catalog);if(!n)return;let t=an(n,oa);return typeof t=="string"?t:void 0}async evaluateList(e,n){let t=await this.evaluate(e,n);return t==null?[]:Array.isArray(t)?t:[t]}async evaluateReverseIterator(e,n){if(e.kind==="pairwise-map"){let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=t.length-1;s>=1;s--){let o=new Map(n);o.set(e.firstVar,ye(t[s-1])),o.set(e.secondVar,ye(t[s]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="for-each"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,ye(t[s]));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="list-map"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,ye(t[s])),a.push(await this.evaluate(e.mapBody,o))}return a}if(e.kind==="windowed-map"){let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=t.length-e.windowSize;s>=0;s--){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}}};function an(r,e){if(r instanceof je)return ia(r,e);if(la(r))return ce(e,u.key)?r.key:ce(e,u.members)?r.members:void 0}function ia(r,e){for(let n of r.statement){let t=jn(n);if(!(!t||!ce(t,e))&&(n instanceof H||n instanceof re||n instanceof te||n instanceof I||n instanceof z||n instanceof C))return n.object}}function ca(r,e){let n=[];for(let t of r.statement){let a=jn(t);if(!(!a||!ce(a,e))){if(t instanceof I)n.push(t.object.subject);else if(t instanceof C)for(let s of t.object)s instanceof j&&n.push(s.subject)}}return n}function jn(r){return r.predicate?.subject}function xe(r){if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Ae(r))return r.value;if(r instanceof je)return r.name??"";if(r instanceof j)return r.subject.name;if(Be(r))return r.name;let e=r.value;return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function ye(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof je)&&!(r instanceof j)&&!(r instanceof V)&&"value"in r?r.value:r}function lt(r){return r==null?!1:typeof r=="string"||Array.isArray(r)?r.length>0:typeof r=="boolean"?r===!0:!0}function Be(r){return typeof r=="object"&&r!==null&&typeof r.publisher=="string"&&typeof r.package_=="string"&&typeof r.name=="string"}function la(r){return typeof r=="object"&&r!==null&&r.kind==="Partition"&&Array.isArray(r.members)}function ge(r,e){if(typeof r=="number"&&Number.isFinite(r))return r;throw new Ke(`${e} requires numeric elements; got ${da(r)}`)}function wn(r){if(r instanceof Y){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);return n<0||t<0?void 0:{publisher:e.substring(0,n),package_:e.substring(n+1,t),version:e.substring(t+1),name:r.name??""}}if(r instanceof j){let e=r.subject,n=e.version;return{publisher:e.publisher,package_:e.package_,version:n&&typeof n.major=="number"?`${n.major}.${n.minor}.${n.patch}`:"",name:e.name}}if(Be(r))return{publisher:r.publisher,package_:r.package_,version:"",name:r.name}}var ua=new Set(["stringValue","text","rawContent","key","propertyKey","linkLabel"]);function ut(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||Ae(r)}function dt(r){return Ae(r)?r.value:String(r)}function da(r){return r===void 0?"undefined":r===null?"null":Array.isArray(r)?`array(${r.length})`:typeof r}function fa(r,e){let n=new Date(r);if(isNaN(n.getTime()))return"";let t=n.getUTCFullYear(),a=["January","February","March","April","May","June","July","August","September","October","November","December"][n.getUTCMonth()],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][n.getUTCMonth()],o=n.getUTCDate(),i=(c,l=2)=>String(c).padStart(l,"0");switch(e){case"iso-date":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}`;case"iso-datetime":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}T${i(n.getUTCHours())}:${i(n.getUTCMinutes())}:${i(n.getUTCSeconds())}Z`;case"short-date":return`${s} ${o}`;case"long-date":return`${a} ${o}, ${t}`;case"year":return String(t);case"month-year":return`${a} ${t}`}}var pa={USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5"},ga={decimal:0,currency:0,compact:0,percent:2,"basis-points":4};function ma(r,e){if(e===0)return r;let n=r.startsWith("-"),t=n?r.slice(1):r,a=t.indexOf("."),s=a===-1?t:t.slice(0,a),o=a===-1?"":t.slice(a+1),i=s+o,c=s.length+e,l;return c<=0?l=`0.${"0".repeat(-c)}${i}`:c>=i.length?l=i+"0".repeat(c-i.length):l=`${i.slice(0,c)}.${i.slice(c)}`,l=l.replace(/^0+(?=\d)/,""),n&&/[1-9]/.test(l)?`-${l}`:l}function ka(r){let e=r.startsWith("-"),n=e?r.slice(1):r,t=n.indexOf("."),a=t===-1?n:n.slice(0,t),s=t===-1?"":n.slice(t);return`${e?"-":""}${a.replace(/\B(?=(\d{3})+(?!\d))/g,",")}${s}`}function ha(r,e,n,t){let a=Number(r.trim());if(!Number.isFinite(a))return"";let s=/e/i.test(r.trim())?a.toFixed(20).replace(/0+$/,""):r.trim();if(e==="compact"){let i=Math.abs(a),c=[[1e12,"T"],[1e9,"B"],[1e6,"M"],[1e3,"K"]];for(let[l,d]of c)if(i>=l){let f=a/l;return`${n===void 0?String(Number(f.toFixed(1))):f.toFixed(n)}${d}`}return n===void 0?String(a):a.toFixed(n)}let o=ma(s,ga[e]??0);switch(n!==void 0&&(o=Number(o).toFixed(n)),e){case"percent":return`${o}%`;case"basis-points":return`${o} bp`;case"currency":{let i=(t??"USD").toUpperCase(),c=pa[i]??`${i} `,l=o.startsWith("-");return`${l?"-":""}${c}${ka(l?o.slice(1):o)}`}default:return o}}function ft(r,e){if(r==null||e===void 0||e===null)return!1;if(r===e)return!0;let n=typeof r=="object"&&"value"in r?r.value:void 0,t=typeof e=="object"&&"value"in e?e.value:void 0,a=n??r,s=t??e,o=pt(r),i=pt(e);return o&&i?o.publisher===i.publisher&&o.package_===i.package_&&o.name===i.name:typeof a=="string"&&typeof s=="string"||typeof a=="number"&&typeof s=="number"||typeof a=="boolean"&&typeof s=="boolean"?a===s:!1}function pt(r){if(r instanceof j){let e=r.subject;return{publisher:e.publisher,package_:e.package_,name:e.name}}if(r instanceof Y){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);if(n<0)return;let a=e.substring(0,n),s=t>=0?e.substring(n+1,t):e.substring(n+1);return{publisher:a,package_:s,name:r.name??""}}if(Be(r))return{publisher:r.publisher,package_:r.package_,name:r.name}}function _n(r){return r instanceof H||r instanceof re||r instanceof te||r instanceof I||r instanceof z||r instanceof C}function ba(r){return r instanceof H||r instanceof re||r instanceof te?String(r.object??""):r instanceof I?r.object?.subject?.name??"":r instanceof z?"[embedded]":r instanceof C?(r.object??[]).map(n=>{if(n instanceof j)return n.subject.name;let t=n.name;if(t&&t.length>0)return t;let a=n.value;return typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a):"[embedded]"}).join(", "):""}function gt(r){if(r===void 0)return"\0undef";if(r===null)return"\0null";if(typeof r=="string")return`s:${r}`;if(typeof r=="number")return`n:${r}`;if(typeof r=="boolean")return`b:${r}`;if(r instanceof j){let e=r.subject;return`r:${e.publisher}/${e.package_}/${e.name}`}if(r instanceof je){let e=r.name??"";return`k:${r.namespace??""}/${e}`}return Be(r)?`u:${r.publisher}/${r.package_}/${r.name}`:`o:${JSON.stringify(r)}`}var rn=class{constructor(e,n,t){this.repository=e;this.parser=n;this.objectParser=t}repository;parser;objectParser;cache=new Map;async resolveSubject(e,n){let t=hn(n,e);if(t)return t;let a=e.version,s=a&&typeof a.major=="number"?`@${a.major}.${a.minor}.${a.patch}`:"",o=`${e.publisher}/${e.package_}${s}`,i=this.cache.get(o);if(!i){let l=await this.repository.getDocumentsByNamespaceAsync(e.publisher,e.package_);if(l.length===0)return;let d=a&&typeof a.major=="number"?l.find(p=>{let k=p.metadata?.namespace_?.version;return k&&k.major===a.major&&k.minor===a.minor&&k.patch===a.patch})??l[0]:l[0],f=new Mn(d,this.repository);i=await this.objectParser.parseKanonaks(f),this.cache.set(o,i)}let c=hn(i,e);if(c)return c;for(let l of i)if(l instanceof Y&&l.name===e.name)return l}};var sn=class{byLang=new Map;constructor(e){for(let n of e){if(!n.language)continue;let t=[];for(let a of n.rules){if(!a.tokenClass||!a.pattern)continue;let s;try{s=new RegExp(a.pattern,"y")}catch{continue}t.push({tokenClass:a.tokenClass,re:s})}this.byLang.set(n.language,t)}}has(e){return this.byLang.has(e)}highlight(e,n){let t=this.byLang.get(e);return!t||t.length===0?De(n):n.split(`
|
|
18
18
|
`).map(a=>this.highlightLine(a,t)).join(`
|
|
19
|
-
`)}highlightLine(e,n){let t="",a=0;for(;a<e.length;){let s=!1;for(let o of n){o.re.lastIndex=a;let i=o.re.exec(e);if(i&&i[0].length>0){t+=`<span class="kan-tok-${o.tokenClass}">${
|
|
19
|
+
`)}highlightLine(e,n){let t="",a=0;for(;a<e.length;){let s=!1;for(let o of n){o.re.lastIndex=a;let i=o.re.exec(e);if(i&&i[0].length>0){t+=`<span class="kan-tok-${o.tokenClass}">${De(i[0])}</span>`,a+=i[0].length,s=!0;break}}s||(t+=De(e[a]),a++)}return t}};var fn={publisher:"kanonak.org",package_:"derivation",name:"look"},pn={publisher:"kanonak.org",package_:"derivation",name:"tokens"},we={publisher:"kanonak.org",package_:"core-rdf",name:"Resource"},Kn={publisher:"kanonak.org",package_:"core-rdf",name:"label"},mt={publisher:"kanonak.org",package_:"core-rdf",name:"comment"},va={publisher:"kanonak.org",package_:"core-rdf",name:"range"},ya={publisher:"kanonak.org",package_:"core-rdf",name:"Class"},$a={publisher:"kanonak.org",package_:"core-owl",name:"Class"},Sa={publisher:"kanonak.org",package_:"look",name:"Hero"},wa={publisher:"kanonak.org",package_:"look",name:"PropertyList"},_a={publisher:"kanonak.org",package_:"look",name:"PropertyTable"},ja={publisher:"kanonak.org",package_:"look",name:"BadgeRow"},Ka={publisher:"kanonak.org",package_:"look",name:"ChipRow"},Ra={publisher:"kanonak.org",package_:"look",name:"ReferenceList"},Ea={publisher:"kanonak.org",package_:"look",name:"ReferencedBy"},La={publisher:"kanonak.org",package_:"look",name:"Instances"},kt={publisher:"kanonak.org",package_:"look",name:"Markdown"},Oa={publisher:"kanonak.org",package_:"look",name:"NavGroup"},Ua={publisher:"kanonak.org",package_:"look",name:"nav"},Rn={publisher:"kanonak.org",package_:"look",name:"NavLink"},Ca={publisher:"kanonak.org",package_:"look",name:"footer"},Ia={publisher:"kanonak.org",package_:"look",name:"text"},Fa={publisher:"kanonak.org",package_:"look",name:"links"},ht={publisher:"kanonak.org",package_:"look",name:"target"},xa={publisher:"kanonak.org",package_:"look",name:"ResourceGrid"},Ta={publisher:"kanonak.org",package_:"look",name:"Timeline"},Va={publisher:"kanonak.org",package_:"look",name:"VersionDiff"},Pa={publisher:"kanonak.org",package_:"look",name:"Figure"},Aa={publisher:"kanonak.org",package_:"look",name:"Diagram"},Ma={publisher:"kanonak.org",package_:"look",name:"facets"},Na={publisher:"kanonak.org",package_:"look",name:"relation"},Da={publisher:"kanonak.org",package_:"look",name:"encode"},Ba={publisher:"kanonak.org",package_:"look",name:"cluster"},Ha={publisher:"kanonak.org",package_:"look",name:"connector"},za={publisher:"kanonak.org",package_:"look",name:"channels"},Ga={publisher:"kanonak.org",package_:"look",name:"mapPath"},qa={publisher:"kanonak.org",package_:"look",name:"to"},Wa={publisher:"kanonak.org",package_:"look",name:"mark"},Ya={publisher:"kanonak.org",package_:"look",name:"expand"},Xa={publisher:"kanonak.org",package_:"look",name:"edges"},Ja={publisher:"kanonak.org",package_:"look",name:"nodeTier"},Za={publisher:"kanonak.org",package_:"look",name:"diagramTier"},Qa={publisher:"kanonak.org",package_:"look",name:"nodeNote"},er={publisher:"kanonak.org",package_:"look",name:"edgeLabel"},nr={publisher:"kanonak.org",package_:"look",name:"labelEdges"},tr={publisher:"kanonak.org",package_:"look",name:"edgeValue"},ar={publisher:"kanonak.org",package_:"look",name:"figureTitle"},rr={publisher:"kanonak.org",package_:"look",name:"titlePosition"},sr=`(function(){
|
|
20
20
|
if(window.__kanDiagramZoom)return;window.__kanDiagramZoom=1;
|
|
21
21
|
var TIERS=['chip','icon','card','full'];
|
|
22
22
|
var css='.kan-dgm-tier[hidden]{display:none}.kan-dgm-tiers{position:relative}'
|
|
@@ -62,7 +62,7 @@ var b=document.createElement('button');b.type='button';b.className='kan-dgm-btn'
|
|
|
62
62
|
b.style.cssText='position:absolute;top:6px;right:6px;z-index:3;border:1px solid var(--kan-border,#333);background:var(--kan-bg-card,#111);color:var(--kan-text,#ccc);border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:15px;line-height:1;padding:0';
|
|
63
63
|
b.addEventListener('click',function(ev){ev.preventDefault();ev.stopPropagation();open(c);});c.appendChild(b);})(cs[i]);}}
|
|
64
64
|
if(document.readyState!=='loading')enhance();else document.addEventListener('DOMContentLoaded',enhance);
|
|
65
|
-
})();`,
|
|
65
|
+
})();`,Xe={chip:56,icon:120,card:240,full:420},or=["chip","icon","card","full"],ir={56:"chip",120:"icon",240:"card",420:"full"},_e=11,cr={publisher:"kanonak.org",package_:"look",name:"placement"},lr={publisher:"kanonak.org",package_:"look",name:"width"},ur=4,dr={publisher:"kanonak.org",package_:"look",name:"StatRow"},fr={publisher:"kanonak.org",package_:"look",name:"Horizon"},pr={publisher:"kanonak.org",package_:"look",name:"PackageContents"},En={publisher:"kanonak.org",package_:"core-kanonak",name:"Package"},gr={publisher:"kanonak.org",package_:"core-kanonak",name:"Publisher"},mr={publisher:"kanonak.org",package_:"look",name:"FeaturedResource"},kr={publisher:"kanonak.org",package_:"look",name:"PublisherPackages"},hr={publisher:"kanonak.org",package_:"look",name:"packages"},br={publisher:"kanonak.org",package_:"code-grammars",name:"CodeGrammar"},vr={publisher:"kanonak.org",package_:"code-grammars",name:"language"},yr={publisher:"kanonak.org",package_:"code-grammars",name:"rule"},$r={publisher:"kanonak.org",package_:"code-grammars",name:"tokenClass"},Sr={publisher:"kanonak.org",package_:"code-grammars",name:"pattern"},wr={publisher:"kanonak.org",package_:"look",name:"Links"},_r={publisher:"kanonak.org",package_:"link",name:"url"},jr={publisher:"kanonak.org",package_:"link",name:"links"};var Kr={publisher:"kanonak.org",package_:"look",name:"Distribution"},Rr={publisher:"kanonak.org",package_:"look",name:"alphaPath"},Er={publisher:"kanonak.org",package_:"look",name:"betaPath"},Ln={publisher:"kanonak.org",package_:"look",name:"SectionHeading"},Lr={publisher:"kanonak.org",package_:"look",name:"SectionNav"},bt={publisher:"kanonak.org",package_:"look",name:"heading"},Or={publisher:"kanonak.org",package_:"look",name:"note"},Ur={publisher:"kanonak.org",package_:"look",name:"VersionDelta"},Cr={publisher:"kanonak.org",package_:"look",name:"TimePlot"},Ir={publisher:"kanonak.org",package_:"look",name:"Details"},Fr={publisher:"kanonak.org",package_:"look",name:"EmbeddedViews"},xr={publisher:"kanonak.org",package_:"look",name:"ResourceCount"},Tr={publisher:"kanonak.org",package_:"look",name:"counts"},Vr={publisher:"kanonak.org",package_:"look",name:"skip"},Pr={publisher:"kanonak.org",package_:"derivation",name:"derivations"},Ar={publisher:"kanonak.org",package_:"look",name:"laneBy"},Mr={publisher:"kanonak.org",package_:"look",name:"stats"},Nr={publisher:"kanonak.org",package_:"look",name:"statPath"},Dr={publisher:"kanonak.org",package_:"look",name:"statLabel"},vt={publisher:"kanonak.org",package_:"look",name:"labelPath"},Br={publisher:"kanonak.org",package_:"look",name:"badgePath"},yt={publisher:"kanonak.org",package_:"look",name:"BarMeter"},Hr={publisher:"kanonak.org",package_:"look",name:"cellAs"},zr={publisher:"kanonak.org",package_:"look",name:"variants"},Gr={publisher:"kanonak.org",package_:"look",name:"when"},qr={publisher:"kanonak.org",package_:"look",name:"property"},$t={publisher:"kanonak.org",package_:"look",name:"equals"},Wr={publisher:"kanonak.org",package_:"look",name:"ResourceQuery"},Yr={publisher:"kanonak.org",package_:"look",name:"ofClass"},Xr={publisher:"kanonak.org",package_:"look",name:"direction"},Jr={publisher:"kanonak.org",package_:"look",name:"limit"},on={publisher:"kanonak.org",package_:"look",name:"orderBy"},St={publisher:"kanonak.org",package_:"look",name:"track"},Je={publisher:"kanonak.org",package_:"look",name:"metricPath"},On={publisher:"kanonak.org",package_:"look",name:"hueBy"},wt={publisher:"kanonak.org",package_:"look",name:"lowerPath"},_t={publisher:"kanonak.org",package_:"look",name:"upperPath"},Zr={publisher:"kanonak.org",package_:"look",name:"axisMin"},Qr={publisher:"kanonak.org",package_:"look",name:"axisMax"},es={publisher:"kanonak.org",package_:"look",name:"valueLabel"};var jt={publisher:"kanonak.org",package_:"look",name:"semanticSvg"},ns={publisher:"kanonak.org",package_:"look",name:"tierChip"},ts={publisher:"kanonak.org",package_:"look",name:"tierIcon"},as={publisher:"kanonak.org",package_:"look",name:"tierCard"},rs={publisher:"kanonak.org",package_:"look",name:"tierFull"},Ce={publisher:"kanonak.org",package_:"core-rdf",name:"type"},Kt={publisher:"kanonak.org",package_:"core-rdf",name:"subClassOf"},Rt=6,Un={publisher:"kanonak.org",package_:"look",name:"bands"},ss={publisher:"kanonak.org",package_:"look",name:"title"},os={publisher:"kanonak.org",package_:"look",name:"eyebrow"},is={publisher:"kanonak.org",package_:"look",name:"subtitle"},Et={publisher:"kanonak.org",package_:"look",name:"badges"},oe={publisher:"kanonak.org",package_:"look",name:"source"},cs={publisher:"kanonak.org",package_:"look",name:"via"},ls={publisher:"kanonak.org",package_:"look",name:"size"},us={publisher:"kanonak.org",package_:"look",name:"icon"},ds={publisher:"kanonak.org",package_:"look",name:"avatar"},fs={publisher:"kanonak.org",package_:"look",name:"contents"},ps={publisher:"kanonak.org",package_:"look",name:"transitive"},gs={publisher:"kanonak.org",package_:"look",name:"chips"},Lt={publisher:"kanonak.org",package_:"look",name:"entries"},ms={publisher:"kanonak.org",package_:"look",name:"urlForm"},mn=class r{constructor(e){this.catalog=e}catalog;linkMode="single-publisher";setLinkMode(e){return this.linkMode=e,this}expressionFailureList=[];expressionFailureSeen=new Set;expressionFailures(){return this.expressionFailureList}noteExpressionFailure(e,n){let t=n instanceof Error?n.message:String(n),a=`${e}\0${t}`;this.expressionFailureSeen.has(a)||(this.expressionFailureSeen.add(a),this.expressionFailureList.push({carrier:e,reason:t}));let s=o=>o.replace(/-{2,}/g,"\u2013").replace(/-$/,"");return`<!-- LookRenderer: expression carrier "${s(e)}" did not compile: ${s(t)} Nothing is rendered for it. See /.well-known/kanonak-render (Expression carriers). -->`}get publisherFirst(){return this.linkMode==="open-world"}linkBase(e){return this.publisherFirst?`/${e}`:""}resourceHref(e,n,t="="){return zn.formatResourceUrl(e,t,{contextPublisher:n,...this.publisherFirst?{publisherFirst:!0}:{}})}packageHref(e,n,t){return`${this.linkBase(e)}/${n}${t?`/${t}`:""}`}publisherHref(e){return`${this.linkBase(e)}/`}_codeHighlighter;findCascadedLook(e){let n=bs(e)?void 0:cn(e);return n?{declaration:n,sourceClass:{publisher:ne(e),package_:this.uriOf(e).package_,name:e.name}}:this.lookFromTypeRefs(he(e))}lookFromTypeRefs(e){let n=new Set,t=[...e];for(;t.length>0;){let s=t.shift().subject,o=X(s);if(n.has(o))continue;n.add(o);let i=le(this.catalog,s);for(let c of i){let l=cn(c);if(l)return{declaration:l,sourceClass:{publisher:s.publisher,package_:s.package_,name:s.name}}}for(let c of i)for(let l of un(c))t.push(l)}if(!n.has(X(we)))for(let a of le(this.catalog,we)){let s=cn(a);if(s)return{declaration:s,sourceClass:{...we}}}}matchingVariants(e){let n=this.findCascadedLook(e);if(!n)return[];let t=this.gatherValueItems(q(n.declaration,zr)).filter(i=>i instanceof V);if(t.length===0)return[];let a=Z(this.catalog,n.sourceClass),s={namespace:a?.namespace??"",name:a?.name??n.sourceClass.name},o=[];for(let i of t){let c=this.readEmbeddedCarrier(i,Gr);if(!c)continue;let l=x(c,qr);if(!l)continue;let d=x(c,$t);if(d){let p=q(e,l);this.gatherValueItems(p).filter(h=>h instanceof j).some(h=>X(h.subject)===X(d))&&o.push({variant:i,declaredBy:s});continue}let f=ee(c,$t);f!==void 0&&this.readPropertyValueText(e,l)===f&&o.push({variant:i,declaredBy:s})}return o}findCascadedTokens(e){let n=this.explainCascadedTokens(e),t=new Map;for(let[a,s]of n)t.set(a,s.value);return t}explainCascadedTokens(e){let n=new Map,t=(i,c,l)=>{for(let[d,f]of ks(i))n.has(d)||n.set(d,{value:f,sourceNamespace:l?.namespace??i.namespace??"",sourceName:l?.name??i.name,level:c})};t(e,"instance");for(let{variant:i,declaredBy:c}of this.matchingVariants(e))t(i,"variant",c);let a=new Set,s=he(e);for(;s.length>0;){let i=s.shift(),c=X(i.subject);if(a.has(c))continue;a.add(c);let l=c===X(we)?"resource-floor":"class",d=le(this.catalog,i.subject);if(d.length!==0)for(let f of d){t(f,l);for(let p of un(f))s.push(p)}}let o=ne(e);if(o){let i=this.publisherSubject(o);i!==e&&t(i,"publisher")}if(!a.has(X(we))){let i=le(this.catalog,we);for(let c of i)t(c,"resource-floor")}return n}async renderSvg(e){let n=N(this.catalog,e).label,t=(n.trim().charAt(0)||"?").toUpperCase(),a=`${e.namespace??""}/${e.name}`,s=this.collectCascadedSvgTiers(e),o=new Map([["input",e],["label",n],["firstLetter",t],["uri",a],["resourceKey",e.name]]),i=await this.evaluateTier(s.tierChip,o),c=await this.evaluateTier(s.tierIcon,o),l=await this.evaluateTier(s.tierCard,o),d=await this.evaluateTier(s.tierFull,o),p=[...this.findCascadedTokens(e)].map(([k,h])=>`--kan-${k}: ${h};`).join(" ");return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" style="${Re(p)}">
|
|
66
66
|
<style>
|
|
67
67
|
.tier-chip,.tier-icon,.tier-card{display:none}
|
|
68
68
|
.tier-full{display:block}
|
|
@@ -74,13 +74,13 @@ if(document.readyState!=='loading')enhance();else document.addEventListener('DOM
|
|
|
74
74
|
<g class="tier-icon">${c}</g>
|
|
75
75
|
<g class="tier-card">${l}</g>
|
|
76
76
|
<g class="tier-full">${d}</g>
|
|
77
|
-
</svg>`}resolverInstance;expressionResolver(){if(!this.resolverInstance){let e=new Vn,n=new Tn(e);this.resolverInstance=new rn(n,e,new
|
|
77
|
+
</svg>`}resolverInstance;expressionResolver(){if(!this.resolverInstance){let e=new Vn,n=new Tn(e);this.resolverInstance=new rn(n,e,new Hn(e))}return this.resolverInstance}async evaluateTier(e,n){if(!e)return"";let t;try{t=Oe(e,"semanticSvg-tier",{catalog:this.catalog,depth:0})}catch(o){return this.noteExpressionFailure("look.semanticSvg tier",o)}let a=new Ye(this.expressionResolver(),this.catalog);if(t.kind==="concat"){let o=[];for(let i of t.parts){let c=await a.evaluate(i,n);o.push(Ut(i.kind,c))}return o.join("")}let s=await a.evaluate(t,n);return Ut(t.kind,s)}async evaluateCarrier(e,n){if(!e)return;let t;try{t=Oe(e,"look-carrier",{catalog:this.catalog,depth:0})}catch(c){this.noteExpressionFailure("look band path carrier",c);return}let a=new Ye(this.expressionResolver(),this.catalog),s=new Map([["input",n]]),o=await a.evaluate(t,s),i=xt(o);return i===""?void 0:i}async evaluateCarrierNum(e,n){let t=await this.evaluateCarrier(e,n);return t===void 0?NaN:parseFloat(t)}readEmbeddedCarrier(e,n){let t=q(e,n);return t instanceof z&&t.object instanceof V?t.object:void 0}referenceLabel(e){let n=e.subject,t=le(this.catalog,n);if(t.length===0){let a=Z(this.catalog,n);a&&t.push(a)}for(let a of t){let s=N(this.catalog,a);if(s.label!==a.name)return s.label}return n.name}collectCascadedSvgTiers(e){let n={},t=c=>{let l=q(c,jt);if(!(l instanceof z))return;let d=l.object,f=ln(d,ns),p=ln(d,ts),k=ln(d,as),h=ln(d,rs);n.tierChip===void 0&&f!==void 0&&(n.tierChip=f),n.tierIcon===void 0&&p!==void 0&&(n.tierIcon=p),n.tierCard===void 0&&k!==void 0&&(n.tierCard=k),n.tierFull===void 0&&h!==void 0&&(n.tierFull=h)};t(e);let a=e.namespace||"",s=a.indexOf("/");if(s>=0){let c=a.indexOf("@"),l={publisher:a.slice(0,s),package_:a.slice(s+1,c>=0?c:a.length),name:e.name};for(let d of le(this.catalog,l))t(d)}let o=new Set,i=he(e);for(;i.length>0;){let c=i.shift(),l=X(c.subject);if(o.has(l))continue;o.add(l);let d=le(this.catalog,c.subject);for(let f of d){t(f);for(let p of un(f))i.push(p)}}if(!o.has(X(we)))for(let c of le(this.catalog,we))t(c);return n}renderStylesheet(e){let n=this.explainStylesheet(e),t=[];for(let[o,i]of n.tokens)t.push(` --kan-${o}: ${i.value};`);let a=t.length>0?`:root {
|
|
78
78
|
${t.join(`
|
|
79
79
|
`)}
|
|
80
|
-
}`:":root { /* no tokens resolved */ }",s=n.baseStylesheet.css??"";return`${
|
|
80
|
+
}`:":root { /* no tokens resolved */ }",s=n.baseStylesheet.css??"";return`${vs(n)}
|
|
81
81
|
${a}
|
|
82
|
-
${s}`}explainStylesheet(e){let n=this.explainCascadedTokens(e),t=this.explainBaseStylesheet(ne(e)),a=this.findCascadedLook(e),s=[];return t.css||(t.problem==="content-property-unresolved"?s.push(`Base stylesheet asset ${t.sourceNamespace}/base-stylesheet is in the catalog but its site.content property did not resolve \u2014 the package was likely cached without its imports block. Pages will render UNSTYLED (CSS stops at :root). Fix: re-install it from its published source: kanonak install kanonak.org/look-styles`):s.push("No look-styles package in the render catalog \u2014 pages will render UNSTYLED (CSS stops at :root). The look stack is ambient (not imported): it must be in the workspace, the global cache, or fetchable from kanonak.org by the user running the render. Fix: kanonak install kanonak.org/look-styles")),n.size===0&&s.push("No design tokens resolved \u2014 the :root block is empty. The universal token floor lives on rdfs.Resource in kanonak.org/look-tokens; that package is missing from the render catalog. Fix: kanonak install kanonak.org/look-tokens"),a||s.push(`No look (band declaration) resolved for ${e.namespace}/${e.name} \u2014 the HTML body will be an empty comment. The universal look floor lives on rdfs.Resource in kanonak.org/universal-look. Fix: kanonak install kanonak.org/universal-look`),{resource:{namespace:e.namespace||"",name:e.name},tokens:n,baseStylesheet:t,...a?{look:{sourceClass:a.sourceClass}}:{},warnings:s}}findBaseStylesheet(e){return this.explainBaseStylesheet(e).css}explainBaseStylesheet(e){let n="kanonak.org/site/content",t=f=>this.uriOf(f).version??null,a=[],s,o,i,c;for(let f of this.catalog){if(!(f instanceof
|
|
83
|
-
`)}applyBandPlacement(e,n){let t=ee(e,
|
|
82
|
+
${s}`}explainStylesheet(e){let n=this.explainCascadedTokens(e),t=this.explainBaseStylesheet(ne(e)),a=this.findCascadedLook(e),s=[];return t.css||(t.problem==="content-property-unresolved"?s.push(`Base stylesheet asset ${t.sourceNamespace}/base-stylesheet is in the catalog but its site.content property did not resolve \u2014 the package was likely cached without its imports block. Pages will render UNSTYLED (CSS stops at :root). Fix: re-install it from its published source: kanonak install kanonak.org/look-styles`):s.push("No look-styles package in the render catalog \u2014 pages will render UNSTYLED (CSS stops at :root). The look stack is ambient (not imported): it must be in the workspace, the global cache, or fetchable from kanonak.org by the user running the render. Fix: kanonak install kanonak.org/look-styles")),n.size===0&&s.push("No design tokens resolved \u2014 the :root block is empty. The universal token floor lives on rdfs.Resource in kanonak.org/look-tokens; that package is missing from the render catalog. Fix: kanonak install kanonak.org/look-tokens"),a||s.push(`No look (band declaration) resolved for ${e.namespace}/${e.name} \u2014 the HTML body will be an empty comment. The universal look floor lives on rdfs.Resource in kanonak.org/universal-look. Fix: kanonak install kanonak.org/universal-look`),{resource:{namespace:e.namespace||"",name:e.name},tokens:n,baseStylesheet:t,...a?{look:{sourceClass:a.sourceClass}}:{},warnings:s}}findBaseStylesheet(e){return this.explainBaseStylesheet(e).css}explainBaseStylesheet(e){let n="kanonak.org/site/content",t=f=>this.uriOf(f).version??null,a=[],s,o,i,c;for(let f of this.catalog){if(!(f instanceof Y)||f.name!=="base-stylesheet")continue;let p=f.namespace||"";if(p.startsWith(`${e}/look-styles@`)){a.push(p);let k=t(f);k&&(!o||Ze(k,o)>0)&&(s=f,o=k)}else if(p.startsWith("kanonak.org/look-styles@")){a.push(p);let k=t(f);k&&(!c||Ze(k,c)>0)&&(i=f,c=k)}}let l=s??i;if(!l)return{problem:"no-look-styles-in-catalog",candidates:a};let d=l===s?"publisher-override":"universal-default";for(let f of l.statement){let p=f.predicate?.subject;if(!p)continue;if(`${p.publisher}/${p.package_}/${p.name}`===n&&f instanceof H)return{css:f.object,sourceNamespace:l.namespace||"",scope:d,candidates:a}}return{problem:"content-property-unresolved",sourceNamespace:l.namespace||"",scope:d,candidates:a}}async renderHtml(e){let n=this.findCascadedLook(e);if(!n)return`<!-- LookRenderer: no derivation.look found for ${e.namespace}/${e.name} -->`;let t=Cn(n.declaration);if(t.length===0){let i=n.declaration.unresolvedPredicates;return i.length>0?`<!-- LookRenderer: look declaration has no bands \u2014 unresolved predicates dropped from the parse: ${i.map(l=>`${l.key} (authored by ${l.sourceDoc})`).join(", ")}. An import in the authoring document did not resolve; see the render-stack warnings (/.well-known/kanonak-render). -->`:"<!-- LookRenderer: look declaration has no bands -->"}let a=ne(e),s=this.collectSectionHeadings(t);this.diagramScriptEmitted=!1,this.diagramArrowSeq=0;let o=[];for(let i of t){let c=He(i);c&&M(c,Ln)&&o.push('<div style="clear:both"></div>'),o.push(this.applyBandPlacement(i,await this.renderBand(i,e,a,s)))}return o.push('<div style="clear:both"></div>'),o.join(`
|
|
83
|
+
`)}applyBandPlacement(e,n){let t=ee(e,cr);if(t!=="floatLeft"&&t!=="floatRight")return n;let a=t==="floatLeft"?"left":"right",s=ee(e,lr),o=s&&/^\d+(\.\d+)?(%|px|rem|em)$/.test(s)?s:"42%";return`<div class="kan-band-float kan-band-${a}" style="float:${a};width:${o};margin:${a==="left"?"0 1.25rem 0.75rem 0":"0 0 0.75rem 1.25rem"}">${n}</div>`}collectSectionHeadings(e){let n=[];for(let t of e){let a=He(t);if(!a||!M(a,Ln))continue;let s=ee(t,bt);s&&n.push({slug:Ct(s),label:s})}return n}publisherSubject(e){for(let t of this.catalog){if(!(t instanceof Y)||ne(t)!==e||!he(t).some(s=>M(s.subject,gr)))continue;return le(this.catalog,{publisher:e,package_:this.uriOf(t).package_,name:t.name})[0]??t}let n=new Y;return n.namespace=e,n.name=e,n.statement=[I.parse("kanonak.org/core-rdf/type","kanonak.org/core-kanonak/Publisher"),H.parse("kanonak.org/core-rdf/label",e)],n}hasDeclaredView(e){let n=this.findCascadedLook(e);return n?!(a=>a.publisher===we.publisher&&a.package_===we.package_&&a.name===we.name||a.publisher===En.publisher&&a.package_===En.package_&&a.name===En.name)(n.sourceClass):!1}renderPackageVersionList(e,n,t){let a=ne(t),s=this.renderNavGroup(t,a),o=this.renderBreadcrumb(t,a,{bareOverview:!0}),i=n.map(l=>`<a class="kan-resource-card" href="${g(this.packageHref(a,e,l))}/"><h3 class="kan-resource-card-title">${g(l)}</h3></a>`).join(`
|
|
84
84
|
`),c=`<header class="kan-hero">
|
|
85
85
|
<span class="kan-hero-eyebrow">PACKAGE</span>
|
|
86
86
|
<h1 class="kan-hero-title">${g(e)}</h1>
|
|
@@ -121,32 +121,32 @@ ${o}${t}
|
|
|
121
121
|
${l}
|
|
122
122
|
</body>
|
|
123
123
|
</html>
|
|
124
|
-
`}hasSvgDerivation(e){let n=new Set,t=ke(e);for(;t.length>0;){let a=t.shift(),s=X(a.subject);if(n.has(s))continue;n.add(s);let o=Z(this.catalog,a.subject);if(o){for(let i of o.statement)if(i instanceof I&&$e(i,"kanonak.org","derivation","derivations")){for(let c of i.object??[])if(c instanceof V)for(let l of c.statement){if(!(l instanceof T)||!$e(l,"kanonak.org","derivation","format")||!(l.object instanceof j))continue;let d=l.object.subject;if(d.publisher==="kanonak.org"&&d.package_==="formats"&&d.name==="svg")return!0}}for(let i of un(o))t.push(i)}}return!1}static BAND_DISPATCH=[[Kr,(e,n)=>e.renderSectionNav(n.sections)],[ya,(e,n)=>e.renderHero(n.band,n.instance,n.contextPublisher)],[$a,(e,n)=>e.renderPropertyList(n.band,n.instance,n.contextPublisher)],[Sa,(e,n)=>e.renderPropertyTable(n.band,n.instance,n.contextPublisher,n.pathPrefix)],[wa,(e,n)=>e.renderBadgeRow(n.band,n.instance,n.contextPublisher)],[_a,(e,n)=>e.renderChipRow(n.band,n.instance,n.contextPublisher)],[ja,(e,n)=>e.renderReferenceList(n.band,n.instance,n.contextPublisher)],[Ra,(e,n)=>e.renderReferencedBy(n.band,n.instance,n.contextPublisher)],[Ka,(e,n)=>e.renderInstances(n.band,n.instance,n.contextPublisher)],[mt,(e,n)=>e.renderMarkdown(n.band,n.instance,n.contextPublisher)],[$r,(e,n)=>e.renderLinks(n.band,n.instance)],[Ea,(e,n)=>e.renderNavGroup(n.instance,n.contextPublisher)],[Ia,(e,n)=>e.renderResourceGrid(n.band,n.contextPublisher,n.instance)],[Fa,(e,n)=>e.renderTimeline(n.band,n.contextPublisher)],[xa,(e,n)=>e.renderVersionDiff(n.band,n.contextPublisher)],[Ta,(e,n)=>e.renderFigure(n.band,n.instance,n.contextPublisher)],[Va,(e,n)=>e.renderDiagram(n.band,n.instance,n.contextPublisher)],[lr,(e,n)=>e.renderStatRow(n.band,n.instance)],[ur,(e,n)=>e.renderHorizon(n.band,n.instance,n.contextPublisher)],[dr,(e,n)=>e.renderPackageContents(n.instance,n.contextPublisher)],[pr,(e,n)=>e.renderFeaturedResource(n.band,n.contextPublisher)],[gr,(e,n)=>e.renderPublisherPackages(n.band,n.contextPublisher)],[_r,(e,n)=>e.renderDistribution(n.band,n.instance)],[Ln,(e,n)=>e.renderSectionHeading(n.band)],[Lr,(e,n)=>e.renderVersionDelta(n.band,n.instance)],[Or,(e,n)=>e.renderTimePlot(n.band,n.instance,n.contextPublisher)],[Ur,(e,n)=>e.renderDetails(n.band,n.instance,n.contextPublisher)],[Cr,(e,n)=>e.renderEmbeddedViews(n.band,n.instance,n.contextPublisher,n.pathPrefix)],[Ir,(e,n)=>e.renderResourceCount(n.band,n.contextPublisher)],[vt,(e,n)=>e.renderBarMeter(n.band,n.instance)]];static bandDispatchUris(){return r.BAND_DISPATCH.map(([e])=>e)}uriOf(e){let n=Dn(e);return n?{publisher:n.publisher,package_:n.package_,name:n.name,...n.version?{version:n.version}:{}}:{publisher:ne(e),package_:"",name:e.name}}async renderBand(e,n,t,a=[],s=""){let o=ze(e);if(!o)return"<!-- LookRenderer: band has no rdf:type -->";let i={band:e,instance:n,contextPublisher:t,sections:a,pathPrefix:s};for(let[c,l]of r.BAND_DISPATCH)if(M(o,c))return l(this,i);return`<!-- LookRenderer: unsupported band ${o.publisher}/${o.package_}/${o.name} -->`}async collectTrackedSeries(e,n,t,a){let{hueBy:s,lowerPath:o,upperPath:i}=a??{},c=new Map,l=e.length;for(let d=0;d<e.length;d++){let f=e[d],p=this.readPropertyValueReferences(f,n);for(let k of p){let h=Z(this.catalog,{publisher:k.subject.publisher,package_:k.subject.package_,name:k.subject.name,...k.subject.version?{version:k.subject.version}:{}});if(!h)continue;let b=k.subject.name,m=c.get(b);m||(m={key:b,label:N(this.catalog,h).label,points:new Array(l).fill(null),...o?{lower:new Array(l).fill(null)}:{},...i?{upper:new Array(l).fill(null)}:{}},c.set(b,m));let $=await this.evaluateCarrierNum(t,h);if(Number.isFinite($)&&(m.points[d]=$),o&&m.lower){let v=await this.evaluateCarrierNum(o,h);Number.isFinite(v)&&(m.lower[d]=v)}if(i&&m.upper){let v=await this.evaluateCarrierNum(i,h);Number.isFinite(v)&&(m.upper[d]=v)}if(s){let v=await this.evaluateCarrierNum(s,h);Number.isFinite(v)&&(m.hue=v)}m.lastSubject=h}}return[...c.values()]}hrefForSubject(e,n,t="="){let a=this.uriOf(e),s=a.package_,o=a.version;return this.resourceHref({publisher:ne(e),package_:s,name:e.name,...o?{version:o}:{}},n,t)}async renderVersionDiff(e,n){let t=F(e,se);if(!t)return"<!-- LookRenderer.VersionDiff: no look.source -->";let a=this.readEmbeddedCarrier(e,Qe),s=F(e,$t);if(!s||!a)return"<!-- LookRenderer.VersionDiff: needs look.track + look.metricPath -->";let o=F(e,on),i=this.readEmbeddedCarrier(e,On),c=this.findInstancesOfClass(t,this.readTransitive(e));if(c.length===0)return"<!-- LookRenderer.VersionDiff: no instances -->";let l=k=>o?this.readPropertyValueText(k,o)??"":"",d=c.slice().sort((k,h)=>l(k).localeCompare(l(h))),f=await this.collectTrackedSeries(d,s,a,{hueBy:i});return f.length===0?"<!-- LookRenderer.VersionDiff: no tracked series -->":`<section class="kan-vdiff">${f.map((k,h)=>{let b=k.hue!==void 0?k.hue:Math.round(h*360/f.length),m=k.points.filter(U=>U!==null);if(m.length===0)return"";let $=m[0],v=m[m.length-1],_=v-$,R;if(Math.abs(_)>=.005){let U=_>0?"up":"down",D=_>0?"\u25B2":"\u25BC";R=`<span class="kan-vdiff-delta ${U}">${_>0?"+":""}${_.toFixed(2)} ${D}</span>`}else R='<span class="kan-vdiff-delta flat">\u2014</span>';let O=k.lastSubject&&this.isLinkable(ne(k.lastSubject),n)?`<a href="${g(this.hrefForSubject(k.lastSubject,n))}">${g(k.label)}</a>`:g(k.label);return`<div class="kan-vdiff-row" style="--kan-vdiff-hue:${b}"><span class="kan-vdiff-label">${O}</span><span class="kan-vdiff-start">${$.toFixed(2)}</span>`+this.sparkline(k.points,b)+`<span class="kan-vdiff-end">${v.toFixed(2)}</span>`+R+"</div>"}).join("")}</section>`}sparkline(e,n){let o=`hsl(${n},65%,60%)`,i=e.filter(m=>m!==null);if(i.length===0)return'<svg class="kan-vdiff-spark" viewBox="0 0 132 30" xmlns="http://www.w3.org/2000/svg"></svg>';let c=Math.min(...i),d=Math.max(...i)-c,f=e.length,p=m=>f<=1?132/2:4+m/(f-1)*124,k=m=>d<1e-9?30/2:26-(m-c)/d*22,h=[],b=[];return e.forEach((m,$)=>{if(m===null)return;let v=p($),_=k(m);h.push(`${v.toFixed(1)},${_.toFixed(1)}`),b.push(`<circle cx="${v.toFixed(1)}" cy="${_.toFixed(1)}" r="2" fill="${o}"/>`)}),`<svg class="kan-vdiff-spark" viewBox="0 0 132 30" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" role="img"><polyline points="${h.join(" ")}" fill="none" stroke="${o}" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/>`+b.join("")+"</svg>"}svgUrlForSubject(e,n,t="="){return`${this.hrefForSubject(e,n,t)}.svg`}renderFigure(e,n,t){let a=n,s=F(e,se);if(s){let d=Z(this.catalog,s);d&&(a=d)}let o=this.svgUrlForSubject(a,t),i=N(this.catalog,a).label,c=ee(e,is);return`<figure class="kan-figure${c==="small"||c==="medium"||c==="large"?` kan-figure-${c}`:""}"><img class="kan-figure-img" src="${g(o)}" alt="${g(i)}" loading="lazy"/></figure>`}diagramArrowSeq=0;diagramScriptEmitted=!1;async renderDiagram(e,n,t,a=0,s=new Set){let o=this.gatherValueItems(G(e,Pa)).filter(h=>h instanceof V);if(o.length===0)return"<!-- LookRenderer.Diagram: no look.facets -->";let i=[];for(let h of o){let b=F(h,Aa);if(!b){i.push("<!-- LookRenderer.Diagram: facet has no resolvable look.relation -->");continue}let m=F(h,Ma),$=this.resolveFacetNodes(n,b);if($.length===0){i.push(`<!-- LookRenderer.Diagram: relation ${b.publisher}/${b.package_}/${b.name} resolved to 0 instances -->`);continue}let v=await this.resolveFacetChannels(h,$),_=G(h,Ga),R=_ instanceof H&&_.object instanceof V?_.object:void 0,O=ee(h,Ya),U=O&&Ze[O]!==void 0?Ze[O]:void 0,D=U??this.classTierSize($),L=sr[D??Ze.icon]??"icon",le=this.readEmbeddedCarrier(h,Ja),C=F(h,qa),B=C?Z(this.catalog,C):void 0;if(B){i.push(await this.renderDiagramExpand($,B,t,a,s,le,U));continue}if(m&&M(m,Da)){let J=F(h,Wa),ce=this.facetEdgeLabel(h,J??b),ue=this.readEmbeddedCarrier(h,er);i.push(await this.embedTiers(L,E=>J?this.renderDiagramDag($,J,v,t,E,ce,ue):this.renderDiagramConnector(n,$,v,t,E,ce,ue)));continue}if(m&&!M(m,Na)){i.push(`<!-- LookRenderer.Diagram: unknown encode role ${m.publisher}/${m.package_}/${m.name} -->`);continue}i.push(R?`<div class="kan-dgm-tiers" data-geo="1"><div class="kan-dgm-tier" data-tier="card">${await this.renderDiagramCluster($,v,R,t,D)}</div></div>`:await this.embedTiers(L,J=>this.renderDiagramCluster($,v,void 0,t,J)))}let c=ee(e,nr),l=ee(e,tr),d=h=>`<div class="kan-diagram-title" style="font-weight:600;font-size:0.95rem;color:var(--kan-text);${h}">${g(c)}</div>`,f=c&&l!=="bottom"?d("margin:0 0 .5rem"):"",p=c&&l==="bottom"?d("margin:.5rem 0 0"):"",k="";return a===0&&!this.diagramScriptEmitted&&(this.diagramScriptEmitted=!0,k=`<script>${ar}</script>`),`<section class="kan-diagram">${f}${i.join("")}${p}${k}</section>`}async embedTiers(e,n){let t=[];for(let a of rr){let s=await n(Ze[a]);t.push(`<div class="kan-dgm-tier" data-tier="${a}"${a===e?"":" hidden"}>${s}</div>`)}return`<div class="kan-dgm-tiers">${t.join("")}</div>`}async renderDiagramExpand(e,n,t,a,s,o,i){let c=[];for(let l of e){let d=`${l.namespace??""}/${l.name}`,f=await this.diagramNodeRow(l,t,i??56,o),k=a<cr&&!s.has(d)?await this.renderDiagram(n,l,t,a+1,new Set([...s,d])):"",h=k?`<div style="margin-left:30px;border-left:2px solid var(--kan-border);padding-left:14px;margin-top:6px">${k}</div>`:"";c.push(`<div class="kan-diagram-node" style="margin:6px 0">${f}${h}</div>`)}return`<figure class="kan-diagram-figure"><div class="kan-diagram-tree">${c.join("")}</div></figure>`}async diagramNodeRow(e,n,t=56,a){let s=this.hrefForSubject(e,n),o=this.svgUrlForSubject(e,n),i=N(this.catalog,e).label,c=a?await this.evaluateCarrier(a,e):void 0,l=c!==void 0?`<span class="kan-diagram-node-note" style="display:block;font-size:0.8em;color:var(--kan-text-dim)">${g(c)}</span>`:"";return`<a href="${g(s)}" style="display:inline-flex;align-items:center;gap:10px;text-decoration:none"><img src="${g(o)}" width="${t}" height="${t}" alt="" loading="lazy"/><span><span class="kan-diagram-node-label">${g(i)}</span>${l}</span></a>`}classTierSize(e){let n;for(let t of e)for(let a of ke(t)){let s=Z(this.catalog,a.subject);if(!s)continue;let o=ee(s,Xa),i=o?Ze[o]:void 0;i!==void 0&&(n=n===void 0?i:Math.max(n,i))}return n}resolveFacetNodes(e,n){let t=[];for(let a of this.readPropertyValueReferences(e,n)){let s=a.subject,o=Z(this.catalog,{publisher:s.publisher,package_:s.package_,name:s.name,...s.version?{version:s.version}:{}});o&&t.push(o)}return t}async resolveFacetChannels(e,n){let t=this.gatherValueItems(G(e,Ba)).filter(s=>s instanceof V),a=[];for(let s of t){let o=this.readEmbeddedCarrier(s,Ha),i=ee(s,za);if(!o||!i)continue;let c=[];for(let h of n){let b=await this.evaluateCarrierNum(o,h);c.push(Number.isFinite(b)?b:NaN)}let l=c.filter(h=>Number.isFinite(h)),d=l.length?Math.min(...l):0,p=(l.length?Math.max(...l):0)-d,k=c.map(h=>Number.isFinite(h)&&p>0?(h-d)/p:.5);a.push({to:i,norm:k})}return a}facetEdgeLabel(e,n){let t=ee(e,Za);if(t)return t;if(ms(e,Qa)&&n){let s=Z(this.catalog,n);if(s)return N(this.catalog,s).label}}async edgeText(e,n,t){let a=t&&n?await this.evaluateCarrier(t,n):void 0,s=[e,a].filter(o=>!!o);return s.length?s.join(" "):void 0}edgeLabelEl(e,n,t){return`<text x="${e.toFixed(1)}" y="${n.toFixed(1)}" text-anchor="middle" class="kan-diagram-edge-label" style="font-size:11px;paint-order:stroke;stroke:var(--kan-bg);stroke-width:3px;fill:var(--kan-text-dim)">${g(t)}</text>`}async renderDiagramCluster(e,n,t,a,s){let o=s??132,i=18,c=18,l=n.find(b=>b.to==="opacity");if(t){let b=[];for(let m=0;m<e.length;m++){let $=e[m],v=await this.renderBand(t,$,a),_=this.hrefForSubject($,a),R=N(this.catalog,$).label,O=l?`opacity:${(.4+l.norm[m]*.6).toFixed(2)};`:"";b.push(`<a class="kan-diagram-mark" href="${g(_)}" style="display:block;text-decoration:none;${O}">${v}<span class="kan-diagram-mark-label">${g(R)}</span></a>`)}return`<figure class="kan-diagram-figure"><div class="kan-diagram-marks" style="display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start">${b.join("")}</div></figure>`}let d=Math.min(e.length,4),f=Math.ceil(e.length/d),p=c*2+d*o+(d-1)*i,k=c*2+f*o+(f-1)*i,h=e.map((b,m)=>{let $=m%d,v=Math.floor(m/d),_=c+$*(o+i),R=c+v*(o+i),O=l?.4+l.norm[m]*.6:1;return this.diagramTile(b,_,R,o,a,O)}).join("");return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${p} ${k}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${h}</svg></figure>`}async renderDiagramConnector(e,n,t,a,s,o,i){let c=s??120,l=24,d=130,f=18,p=t.find(C=>C.to==="thickness"),k=t.find(C=>C.to==="opacity"),h=n.length,b=h*c+(h-1)*l,m=f*2+b,$=f*2+c+d+c,v=f,_=f+(b-c)/2,R=f+c+d,O=`kan-arrow-${this.diagramArrowSeq++}`,U=[],D=[],L=[];for(let C=0;C<n.length;C++){let B=n[C],J=f+C*(c+l),ce=v+c,ue=_+c/2,E=R-_e,Q=J+c/2,x=(ce+R)/2,w=p?1.5+p.norm[C]*5.5:2,A=k?.4+k.norm[C]*.6:1,q=k?` stroke-opacity="${A.toFixed(2)}"`:"";U.push(`<path d="M${ce.toFixed(1)},${ue.toFixed(1)} C${x.toFixed(1)},${ue.toFixed(1)} ${x.toFixed(1)},${Q.toFixed(1)} ${E.toFixed(1)},${Q.toFixed(1)}" class="kan-diagram-edge" fill="none" stroke="var(--kan-border)" stroke-width="${w.toFixed(1)}"${q} marker-end="url(#${O})"/>`);let K=await this.edgeText(o,B,i);K&&D.push(this.edgeLabelEl((ce+R)/2,(ue+Q)/2-5,K)),L.push(this.diagramTile(B,R,J,c,a,k?A:1))}let le=this.diagramTile(e,v,_,c,a);return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${$.toFixed(0)} ${m.toFixed(0)}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${this.arrowMarkerDef(O,"var(--kan-border)")}${U.join("")}${D.join("")}${le}${L.join("")}</svg></figure>`}arrowMarkerDef(e,n){return`<defs><marker id="${e}" viewBox="0 0 ${_e} ${_e}" refX="0" refY="${(_e/2).toFixed(1)}" markerWidth="${_e}" markerHeight="${_e}" markerUnits="userSpaceOnUse" orient="auto"><path d="M0,1 L${_e},${(_e/2).toFixed(1)} L0,${_e-1}" fill="${n}"/></marker></defs>`}async renderDiagramDag(e,n,t,a,s,o,i){let c=s??110,l=110,d=22,f=18,p=new Map(e.map((w,A)=>[w.name,A])),k=new Set(e.map(w=>w.name)),h=new Map(e.map(w=>[w.name,[]])),b=new Map(e.map(w=>[w.name,[]]));for(let w of e)for(let A of this.readPropertyValueReferences(w,n)){let q=A.subject.name;q!==w.name&&k.has(q)&&(h.get(w.name).push(q),b.get(q).push(w.name))}let m=new Map,$=new Set,v=w=>{let A=m.get(w);if(A!==void 0)return A;if($.has(w))return 0;$.add(w);let q=0;for(let K of b.get(w)??[])q=Math.max(q,v(K)+1);return $.delete(w),m.set(w,q),q};for(let w of e)v(w.name);let _=Math.min(...m.values());if(_>0)for(let w of[...m.keys()])m.set(w,m.get(w)-_);let R=Math.max(0,...m.values()),O=Array.from({length:R+1},()=>[]);for(let w of e)O[m.get(w.name)].push(w);let U=Math.max(1,...O.map(w=>w.length)),D=!1;for(let[w,A]of h)for(let q of A)m.get(q)<=m.get(w)&&(D=!0);let L=D?84:0,le=U*c+(U-1)*d,C=f*2+(R+1)*c+R*l,B=f*2+L+le,J=new Map;O.forEach((w,A)=>{let q=w.length*c+(w.length-1)*d,K=f+L+(le-q)/2;w.forEach((P,ge)=>J.set(P.name,{x:f+A*(c+l),y:K+ge*(c+d)}))});let ce=t.find(w=>w.to==="thickness"),ue=`kan-arrow-${this.diagramArrowSeq++}`,E=[],Q=[];for(let[w,A]of h){let q=J.get(w);for(let K of A){let P=J.get(K),ge=P.x>=q.x,de=ce?1.5+ce.norm[p.get(w)]*4.5:2,me,re,te;if(ge){let oe=q.x+c,Te=q.y+c/2,Le=P.x-_e,Ge=P.y+c/2,Me=(oe+Le)/2;me=`M${oe.toFixed(1)},${Te.toFixed(1)} C${Me.toFixed(1)},${Te.toFixed(1)} ${Me.toFixed(1)},${Ge.toFixed(1)} ${Le.toFixed(1)},${Ge.toFixed(1)}`,re=(oe+Le)/2,te=(Te+Ge)/2-5}else{let oe=q.x+c/2,Te=q.y,Le=P.x+c/2,Ge=P.y-_e,Me=f+L*.2;me=`M${oe.toFixed(1)},${Te.toFixed(1)} C${oe.toFixed(1)},${Me.toFixed(1)} ${Le.toFixed(1)},${Me.toFixed(1)} ${Le.toFixed(1)},${Ge.toFixed(1)}`,re=(oe+Le)/2,te=Me+4}let Ee=ge?"":' stroke-dasharray="6 4"';E.push(`<path d="${me}" class="kan-diagram-edge" fill="none" stroke="var(--kan-accent)" stroke-width="${de.toFixed(1)}" stroke-opacity="0.75"${Ee} marker-end="url(#${ue})"/>`);let Se=await this.edgeText(o,e[p.get(w)],i);Se&&Q.push(this.edgeLabelEl(re,te,Se))}}let x=e.map(w=>{let A=J.get(w.name);return this.diagramTile(w,A.x,A.y,c,a)}).join("");return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${C.toFixed(0)} ${B.toFixed(0)}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${this.arrowMarkerDef(ue,"var(--kan-accent)")}${E.join("")}${Q.join("")}${x}</svg></figure>`}diagramTile(e,n,t,a,s,o=1){let i=this.hrefForSubject(e,s),c=this.svgUrlForSubject(e,s),l=N(this.catalog,e).label,d=o<1?` opacity="${o.toFixed(2)}"`:"";return`<a href="${g(i)}"><image href="${g(c)}" x="${n}" y="${t}" width="${a}" height="${a}"${d}><title>${g(l)}</title></image></a>`}async renderStatRow(e,n){let t=G(e,Pr),a=this.gatherValueItems(t).filter(o=>o instanceof V);if(a.length===0)return"<!-- LookRenderer.StatRow: no look.stats -->";let s=[];for(let o of a){let i=this.readEmbeddedCarrier(o,Ar);if(!i)continue;let c=await this.evaluateCarrier(i,n);if(c===void 0)continue;let l=ee(o,Mr)??"";s.push('<div class="kan-stat">'+(l?`<span class="kan-stat-label">${g(l)}</span>`:"")+`<span class="kan-stat-val">${g(c)}</span></div>`)}return s.length===0?"":`<div class="kan-stat-row">${s.join("")}</div>`}barMarkup(e){let n=Number(e);if(!Number.isFinite(n))return g(e);let t=Math.max(0,Math.min(1,n))*100;return`<span class="kan-bar-meter" role="img" aria-label="${g(e)}"><span class="kan-bar-fill" style="width:${t.toFixed(1)}%"></span></span><span class="kan-bar-value">${g(e)}</span>`}async renderBarMeter(e,n){let t=this.readEmbeddedCarrier(e,Qe);if(!t)return"<!-- LookRenderer.BarMeter: no look.metricPath -->";let a=await this.evaluateCarrier(t,n);return a===void 0?"":`<div class="kan-bar-row">${this.barMarkup(a)}</div>`}renderResourceCount(e,n){let t=G(e,Fr),a=this.gatherValueItems(t).filter(i=>i instanceof V);if(a.length===0)return"<!-- LookRenderer.ResourceCount: no look.counts -->";let s=this.readTransitive(e),o=[];for(let i of a){let c=F(i,se);if(!c)continue;let l=Z(this.catalog,c);if(!l)continue;let d=N(this.catalog,l).label,f=this.findInstancesOfClass(c,s).length,p=this.hrefForSubject(l,n);o.push(`<a class="kan-count" href="${g(p)}"><span class="kan-count-val">${f}</span><span class="kan-count-label">${g(d)}</span></a>`)}return o.length===0?"":`<div class="kan-count-row">${o.join("")}</div>`}renderHorizon(e,n,t){let a=F(e,se);if(!a)return"<!-- LookRenderer.Horizon: no look.source -->";let s=this.gatherValueItems(G(n,a)).filter(i=>i instanceof V);return s.length===0?"":`<section class="kan-horizon">${s.map(i=>this.renderConditionNode(i,t,0)).join("")}</section>`}renderConditionNode(e,n,t){let a=ze(e),s=a?this.readLabelForUri({publisher:a.publisher,package_:a.package_,name:a.name})??a.name:"Condition",o=[],i=[];for(let p of e.statement){let k=p.predicate?.subject;if(!k||M(k,Ce))continue;let h=this.readLabelForUri({publisher:k.publisher,package_:k.package_,name:k.name})??k.name;if(p instanceof Y||p instanceof ie||p instanceof ae)o.push(`<div class="kan-cond-field"><span class="kan-cond-key">${g(h)}</span><span class="kan-cond-v">${g(String(p.object))}</span></div>`);else if(p instanceof T&&p.object instanceof j){let b=p.object.subject,m=this.readLabelForUri({publisher:b.publisher,package_:b.package_,name:b.name})??b.name;o.push(`<div class="kan-cond-field"><span class="kan-cond-key">${g(h)}</span><span class="kan-cond-v">${g(m)}</span></div>`)}else if(p instanceof H)i.push(this.renderConditionNode(p.object,n,t+1));else if(p instanceof I)for(let b of p.object??[])b instanceof V&&i.push(this.renderConditionNode(b,n,t+1))}let c=o.length?`<div class="kan-cond-fields">${o.join("")}</div>`:"",l=i.length?`<div class="kan-cond-children">${i.join("")}</div>`:"",d=i.length>0,f=d?`<span class="kan-cond-op">${g(s)}</span>`:`<div class="kan-cond-type">${g(s)}</div>`;return`<div class="kan-cond ${d?"kan-cond-branch":"kan-cond-leaf"}">${f}${c}${l}</div>`}renderSectionHeading(e){let n=e,t=ee(n,ht);if(!t)return"<!-- LookRenderer.SectionHeading: no look.heading -->";let a=ee(n,Er);return`<div class="kan-section" id="${Ut(t)}"><h2 class="kan-section-title">${g(t)}</h2>`+(a?`<p class="kan-section-note">${g(a)}</p>`:"")+"</div>"}renderSectionNav(e){return e.length===0?"<!-- LookRenderer.SectionNav: no section headings in this view -->":`<nav class="kan-section-nav" aria-label="On this page">${e.map(t=>`<a class="kan-section-nav-link" href="#${g(t.slug)}">${g(t.label)}</a>`).join("")}</nav>`}async renderVersionDelta(e,n){let t=this.readEmbeddedCarrier(e,Qe);if(!t)return"<!-- LookRenderer.VersionDelta: no look.metricPath -->";let a=async C=>{let B=await this.evaluateCarrierNum(t,C);return Number.isFinite(B)?B:void 0},s=await a(n);if(s===void 0)return"";let o=C=>this.uriOf(C).version??{major:0,minor:0,patch:0},i=(C,B)=>C.major-B.major||C.minor-B.minor||C.patch-B.patch,c={publisher:ne(n),package_:this.uriOf(n).package_,name:n.name},l=o(n),d,f;for(let C of he(this.catalog,c)){let B=o(C);i(B,l)<0&&(!f||i(B,f)>0)&&(d=C,f=B)}if(!d||!f)return'<div class="kan-delta kan-delta-first">First tracked in this version</div>';let p=await a(d);if(p===void 0)return"";let k=s-p,h=Math.abs(k)<.005?"flat":k>0?"up":"down",b=h==="up"?"\u25B2":h==="down"?"\u25BC":"\u2014",m=h==="up"?"#34d399":h==="down"?"#f87171":"var(--kan-text-faint)",$=`${f.major}.${f.minor}.${f.patch}`,v=320,_=46,R=14,O=30,U=C=>R+Math.min(1,Math.max(0,C))*(v-2*R),D=U(p),L=U(s),le=`<svg class="kan-delta-track" viewBox="0 0 ${v} ${_}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img"><line x1="${R}" y1="${O}" x2="${v-R}" y2="${O}" class="kan-delta-base"/><line x1="${D.toFixed(1)}" y1="${O}" x2="${L.toFixed(1)}" y2="${O}" stroke="${m}" stroke-width="3"/><circle cx="${D.toFixed(1)}" cy="${O}" r="4" class="kan-delta-prev"/><circle cx="${L.toFixed(1)}" cy="${O}" r="5.5" fill="${m}"/><text x="${D.toFixed(1)}" y="${O-9}" text-anchor="middle" class="kan-delta-tick kan-delta-tick-prev">${p.toFixed(2)}</text><text x="${L.toFixed(1)}" y="${O+17}" text-anchor="middle" class="kan-delta-tick">${s.toFixed(2)}</text></svg>`;return`<div class="kan-delta"><div class="kan-delta-head"><span class="kan-delta-vs">vs ${g($)}</span><span class="kan-delta-badge ${h}">${k>0?"+":""}${k.toFixed(2)} ${b}</span></div>`+le+"</div>"}async renderTimePlot(e,n,t){let a=F(e,se),s=F(e,on);if(!a||!s)return"<!-- LookRenderer.TimePlot: needs look.source + look.orderBy -->";let o=this.readEmbeddedCarrier(e,Vr),i=this.readEmbeddedCarrier(e,bt),c=[];for(let E of this.readPropertyValueReferences(n,a)){let Q=Z(this.catalog,{publisher:E.subject.publisher,package_:E.subject.package_,name:E.subject.name,...E.subject.version?{version:E.subject.version}:{}});if(!Q)continue;let x=this.readPropertyValueText(Q,s)??"",w=Date.parse(x);if(!Number.isFinite(w))continue;let A=o?await this.evaluateCarrier(o,Q)??"":"",q=(i?await this.evaluateCarrier(i,Q):void 0)??N(this.catalog,Q).label;c.push({t:w,dateStr:x,lane:A,label:q,href:this.hrefForSubject(Q,t),linkable:this.isLinkable(ne(Q),t)})}if(c.length===0)return"<!-- LookRenderer.TimePlot: no dated points -->";let l=[];for(let E of c)l.includes(E.lane)||l.push(E.lane);let d=Math.min(...c.map(E=>E.t)),f=Math.max(...c.map(E=>E.t));f===d&&(f=d+1);let p=l.some(E=>E),k=720,h=p?96:16,b=18,m=12,$=24,v=36,_=m+l.length*v+$,R=h,O=k-b,U=O-R,D=E=>R+(E-d)/(f-d)*U,L=E=>m+E*v+v/2,le=E=>Math.round(E*360/Math.max(1,l.length)),C=[];l.forEach((E,Q)=>{let x=L(Q);C.push(`<line x1="${R}" y1="${x.toFixed(1)}" x2="${O}" y2="${x.toFixed(1)}" class="kan-plot-guide"/>`),E&&C.push(`<text x="${(h-8).toFixed(1)}" y="${(x+4).toFixed(1)}" text-anchor="end" class="kan-plot-lane">${Ke(E)}</text>`)});let B={},J=[];for(let E of c){let Q=l.indexOf(E.lane),w=((B[E.lane]=(B[E.lane]??0)+1)%3-1)*7,A=D(E.t),q=L(Q)+w,K=`${dn(E.dateStr)} \xB7 ${E.label}`,P=`<circle cx="${A.toFixed(1)}" cy="${q.toFixed(1)}" r="5" fill="hsl(${le(Q)},65%,60%)" class="kan-plot-pt"><title>${Ke(K)}</title></circle>`;J.push(E.linkable?`<a href="${g(E.href)}" class="kan-plot-link">${P}</a>`:P)}let ce=`<text x="${R}" y="${(_-6).toFixed(1)}" text-anchor="start" class="kan-plot-axis">${Ke(dn(new Date(d).toISOString()))}</text><text x="${O}" y="${(_-6).toFixed(1)}" text-anchor="end" class="kan-plot-axis">${Ke(dn(new Date(f).toISOString()))}</text>`;return`<section class="kan-plot">${`<svg class="kan-plot-svg" viewBox="0 0 ${k} ${_}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">`+C.join("")+J.join("")+ce+"</svg>"}</section>`}renderDetails(e,n,t){let a=In(e,xr),s=this.detailRows(n,t,a);return s?`<dl class="kan-details">${s}</dl>`:"<!-- LookRenderer.Details: no properties -->"}detailRows(e,n,t){let a=[];for(let s of e.statement){let o=s.predicate?.subject;if(!o||this.isMetaPredicate(o)||t.some(l=>M(l,o)))continue;let i=this.readLabelForUri({publisher:o.publisher,package_:o.package_,name:o.name})??o.name,c=this.detailValue(s,n,t);c&&a.push(`<dt class="kan-details-key">${g(i)}</dt><dd class="kan-details-val">${c}</dd>`)}return a.join("")}detailValue(e,n,t){if(e instanceof Y)return It(e.object);if(e instanceof ie||e instanceof ae)return g(String(e.object));if(e instanceof T&&e.object instanceof j)return this.detailReferenceLink(e.object,n);if(e instanceof H)return this.detailEmbedded(e.object,n,t);if(e instanceof I){let a=e.object??[];return a.length>0&&a.every(s=>s instanceof V)?a.map(s=>this.detailEmbedded(s,n,t)).join(""):a.map(s=>s instanceof j?this.detailReferenceLink(s,n):s instanceof V?this.detailEmbedded(s,n,t):g(String(s))).filter(s=>s).join(", ")}return""}detailReferenceLink(e,n){let t=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name;if(!this.isLinkable(e.subject.publisher,n))return`<span class="kan-link-plain">${g(t)}</span>`;let a=this.urlForReference(e,void 0,n);return`<img class="kan-md-chip" src="${g(`${a}.svg`)}" alt="" loading="lazy"><a class="kan-link" href="${g(a)}">${g(t)}</a>`}detailEmbedded(e,n,t){let a=ze(e),s=a?this.readLabelForUri({publisher:a.publisher,package_:a.package_,name:a.name})??a.name:"",o=this.detailRows(e,n,t);return'<div class="kan-details-embed">'+(s?`<span class="kan-details-type">${g(s)}</span>`:"")+(o?`<dl class="kan-details">${o}</dl>`:"")+"</div>"}rangeTypeRefs(e){let n=Z(this.catalog,e);if(!n)return[];let t=G(n,ha);return t instanceof T&&t.object instanceof j?[t.object]:[]}async renderEmbeddedViews(e,n,t,a=""){let s=F(e,se);if(!s)return"<!-- LookRenderer: EmbeddedViews missing look.source -->";let o=this.gatherValueItems(G(n,s)).filter(k=>k instanceof V);if(o.length===0)return"";let i=a?`${a}.${s.name}`:s.name,c=G(e,us),l=c instanceof ae?c.object===!0:c instanceof Y&&c.object==="true",d=[],f=[];for(let k of o){let h=k,b=k.name?`${i}.${k.name}`:"";if(l&&b){let U=N(this.catalog,h).label||k.name||b;d.push(`<a class="kan-section-nav-link" href="#${g(b)}">${g(U)}</a>`)}let m=ke(h),$=m.length>0?m:this.rangeTypeRefs(s),v=cn(h)?this.findCascadedLook(h):this.lookFromTypeRefs($),_="";if(v){let U=[];for(let D of Cn(v.declaration))U.push(await this.renderBand(D,h,t,[],b));_=U.join(`
|
|
125
|
-
`)}else{let U=this.detailRows(k,t,[]);_=U?`<dl class="kan-details">${U}</dl>`:""}let
|
|
124
|
+
`}hasSvgDerivation(e){let n=new Set,t=he(e);for(;t.length>0;){let a=t.shift(),s=X(a.subject);if(n.has(s))continue;n.add(s);let o=Z(this.catalog,a.subject);if(o){for(let i of o.statement)if(i instanceof C&&$e(i,"kanonak.org","derivation","derivations")){for(let c of i.object??[])if(c instanceof V)for(let l of c.statement){if(!(l instanceof I)||!$e(l,"kanonak.org","derivation","format")||!(l.object instanceof j))continue;let d=l.object.subject;if(d.publisher==="kanonak.org"&&d.package_==="formats"&&d.name==="svg")return!0}}for(let i of un(o))t.push(i)}}return!1}static BAND_DISPATCH=[[Lr,(e,n)=>e.renderSectionNav(n.sections)],[Sa,(e,n)=>e.renderHero(n.band,n.instance,n.contextPublisher)],[wa,(e,n)=>e.renderPropertyList(n.band,n.instance,n.contextPublisher)],[_a,(e,n)=>e.renderPropertyTable(n.band,n.instance,n.contextPublisher,n.pathPrefix)],[ja,(e,n)=>e.renderBadgeRow(n.band,n.instance,n.contextPublisher)],[Ka,(e,n)=>e.renderChipRow(n.band,n.instance,n.contextPublisher)],[Ra,(e,n)=>e.renderReferenceList(n.band,n.instance,n.contextPublisher)],[Ea,(e,n)=>e.renderReferencedBy(n.band,n.instance,n.contextPublisher)],[La,(e,n)=>e.renderInstances(n.band,n.instance,n.contextPublisher)],[kt,(e,n)=>e.renderMarkdown(n.band,n.instance,n.contextPublisher)],[wr,(e,n)=>e.renderLinks(n.band,n.instance)],[Oa,(e,n)=>e.renderNavGroup(n.instance,n.contextPublisher)],[xa,(e,n)=>e.renderResourceGrid(n.band,n.contextPublisher,n.instance)],[Ta,(e,n)=>e.renderTimeline(n.band,n.contextPublisher)],[Va,(e,n)=>e.renderVersionDiff(n.band,n.contextPublisher)],[Pa,(e,n)=>e.renderFigure(n.band,n.instance,n.contextPublisher)],[Aa,(e,n)=>e.renderDiagram(n.band,n.instance,n.contextPublisher)],[dr,(e,n)=>e.renderStatRow(n.band,n.instance)],[fr,(e,n)=>e.renderHorizon(n.band,n.instance,n.contextPublisher)],[pr,(e,n)=>e.renderPackageContents(n.instance,n.contextPublisher)],[mr,(e,n)=>e.renderFeaturedResource(n.band,n.contextPublisher)],[kr,(e,n)=>e.renderPublisherPackages(n.band,n.contextPublisher)],[Kr,(e,n)=>e.renderDistribution(n.band,n.instance)],[Ln,(e,n)=>e.renderSectionHeading(n.band)],[Ur,(e,n)=>e.renderVersionDelta(n.band,n.instance)],[Cr,(e,n)=>e.renderTimePlot(n.band,n.instance,n.contextPublisher)],[Ir,(e,n)=>e.renderDetails(n.band,n.instance,n.contextPublisher)],[Fr,(e,n)=>e.renderEmbeddedViews(n.band,n.instance,n.contextPublisher,n.pathPrefix)],[xr,(e,n)=>e.renderResourceCount(n.band,n.contextPublisher)],[yt,(e,n)=>e.renderBarMeter(n.band,n.instance)]];static bandDispatchUris(){return r.BAND_DISPATCH.map(([e])=>e)}uriOf(e){let n=Nn(e);return n?{publisher:n.publisher,package_:n.package_,name:n.name,...n.version?{version:n.version}:{}}:{publisher:ne(e),package_:"",name:e.name}}async renderBand(e,n,t,a=[],s=""){let o=He(e);if(!o)return"<!-- LookRenderer: band has no rdf:type -->";let i={band:e,instance:n,contextPublisher:t,sections:a,pathPrefix:s};for(let[c,l]of r.BAND_DISPATCH)if(M(o,c))return l(this,i);return`<!-- LookRenderer: unsupported band ${o.publisher}/${o.package_}/${o.name} -->`}async collectTrackedSeries(e,n,t,a){let{hueBy:s,lowerPath:o,upperPath:i}=a??{},c=new Map,l=e.length;for(let d=0;d<e.length;d++){let f=e[d],p=this.readPropertyValueReferences(f,n);for(let k of p){let h=Z(this.catalog,{publisher:k.subject.publisher,package_:k.subject.package_,name:k.subject.name,...k.subject.version?{version:k.subject.version}:{}});if(!h)continue;let b=k.subject.name,m=c.get(b);m||(m={key:b,label:N(this.catalog,h).label,points:new Array(l).fill(null),...o?{lower:new Array(l).fill(null)}:{},...i?{upper:new Array(l).fill(null)}:{}},c.set(b,m));let $=await this.evaluateCarrierNum(t,h);if(Number.isFinite($)&&(m.points[d]=$),o&&m.lower){let v=await this.evaluateCarrierNum(o,h);Number.isFinite(v)&&(m.lower[d]=v)}if(i&&m.upper){let v=await this.evaluateCarrierNum(i,h);Number.isFinite(v)&&(m.upper[d]=v)}if(s){let v=await this.evaluateCarrierNum(s,h);Number.isFinite(v)&&(m.hue=v)}m.lastSubject=h}}return[...c.values()]}hrefForSubject(e,n,t="="){let a=this.uriOf(e),s=a.package_,o=a.version;return this.resourceHref({publisher:ne(e),package_:s,name:e.name,...o?{version:o}:{}},n,t)}async renderVersionDiff(e,n){let t=x(e,oe);if(!t)return"<!-- LookRenderer.VersionDiff: no look.source -->";let a=this.readEmbeddedCarrier(e,Je),s=x(e,St);if(!s||!a)return"<!-- LookRenderer.VersionDiff: needs look.track + look.metricPath -->";let o=x(e,on),i=this.readEmbeddedCarrier(e,On),c=this.findInstancesOfClass(t,this.readTransitive(e));if(c.length===0)return"<!-- LookRenderer.VersionDiff: no instances -->";let l=k=>o?this.readPropertyValueText(k,o)??"":"",d=c.slice().sort((k,h)=>l(k).localeCompare(l(h))),f=await this.collectTrackedSeries(d,s,a,{hueBy:i});return f.length===0?"<!-- LookRenderer.VersionDiff: no tracked series -->":`<section class="kan-vdiff">${f.map((k,h)=>{let b=k.hue!==void 0?k.hue:Math.round(h*360/f.length),m=k.points.filter(U=>U!==null);if(m.length===0)return"";let $=m[0],v=m[m.length-1],_=v-$,K;if(Math.abs(_)>=.005){let U=_>0?"up":"down",D=_>0?"\u25B2":"\u25BC";K=`<span class="kan-vdiff-delta ${U}">${_>0?"+":""}${_.toFixed(2)} ${D}</span>`}else K='<span class="kan-vdiff-delta flat">\u2014</span>';let O=k.lastSubject&&this.isLinkable(ne(k.lastSubject),n)?`<a href="${g(this.hrefForSubject(k.lastSubject,n))}">${g(k.label)}</a>`:g(k.label);return`<div class="kan-vdiff-row" style="--kan-vdiff-hue:${b}"><span class="kan-vdiff-label">${O}</span><span class="kan-vdiff-start">${$.toFixed(2)}</span>`+this.sparkline(k.points,b)+`<span class="kan-vdiff-end">${v.toFixed(2)}</span>`+K+"</div>"}).join("")}</section>`}sparkline(e,n){let o=`hsl(${n},65%,60%)`,i=e.filter(m=>m!==null);if(i.length===0)return'<svg class="kan-vdiff-spark" viewBox="0 0 132 30" xmlns="http://www.w3.org/2000/svg"></svg>';let c=Math.min(...i),d=Math.max(...i)-c,f=e.length,p=m=>f<=1?132/2:4+m/(f-1)*124,k=m=>d<1e-9?30/2:26-(m-c)/d*22,h=[],b=[];return e.forEach((m,$)=>{if(m===null)return;let v=p($),_=k(m);h.push(`${v.toFixed(1)},${_.toFixed(1)}`),b.push(`<circle cx="${v.toFixed(1)}" cy="${_.toFixed(1)}" r="2" fill="${o}"/>`)}),`<svg class="kan-vdiff-spark" viewBox="0 0 132 30" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" role="img"><polyline points="${h.join(" ")}" fill="none" stroke="${o}" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/>`+b.join("")+"</svg>"}svgUrlForSubject(e,n,t="="){return`${this.hrefForSubject(e,n,t)}.svg`}renderFigure(e,n,t){let a=n,s=x(e,oe);if(s){let d=Z(this.catalog,s);d&&(a=d)}let o=this.svgUrlForSubject(a,t),i=N(this.catalog,a).label,c=ee(e,ls);return`<figure class="kan-figure${c==="small"||c==="medium"||c==="large"?` kan-figure-${c}`:""}"><img class="kan-figure-img" src="${g(o)}" alt="${g(i)}" loading="lazy"/></figure>`}diagramArrowSeq=0;diagramScriptEmitted=!1;async renderDiagram(e,n,t,a=0,s=new Set){let o=this.gatherValueItems(q(e,Ma)).filter(h=>h instanceof V);if(o.length===0)return"<!-- LookRenderer.Diagram: no look.facets -->";let i=[];for(let h of o){let b=x(h,Na);if(!b){i.push("<!-- LookRenderer.Diagram: facet has no resolvable look.relation -->");continue}let m=x(h,Da),$=this.resolveFacetNodes(n,b);if($.length===0){i.push(`<!-- LookRenderer.Diagram: relation ${b.publisher}/${b.package_}/${b.name} resolved to 0 instances -->`);continue}let v=await this.resolveFacetChannels(h,$),_=q(h,Wa),K=_ instanceof z&&_.object instanceof V?_.object:void 0,O=ee(h,Ja),U=O&&Xe[O]!==void 0?Xe[O]:void 0,D=U??this.classTierSize($),L=ir[D??Xe.icon]??"icon",de=this.readEmbeddedCarrier(h,Qa),F=x(h,Ya),B=F?Z(this.catalog,F):void 0;if(B){i.push(await this.renderDiagramExpand($,B,t,a,s,de,U));continue}if(m&&M(m,Ha)){let J=x(h,Xa),ue=this.facetEdgeLabel(h,J??b),fe=this.readEmbeddedCarrier(h,tr);i.push(await this.embedTiers(L,E=>J?this.renderDiagramDag($,J,v,t,E,ue,fe):this.renderDiagramConnector(n,$,v,t,E,ue,fe)));continue}if(m&&!M(m,Ba)){i.push(`<!-- LookRenderer.Diagram: unknown encode role ${m.publisher}/${m.package_}/${m.name} -->`);continue}i.push(K?`<div class="kan-dgm-tiers" data-geo="1"><div class="kan-dgm-tier" data-tier="card">${await this.renderDiagramCluster($,v,K,t,D)}</div></div>`:await this.embedTiers(L,J=>this.renderDiagramCluster($,v,void 0,t,J)))}let c=ee(e,ar),l=ee(e,rr),d=h=>`<div class="kan-diagram-title" style="font-weight:600;font-size:0.95rem;color:var(--kan-text);${h}">${g(c)}</div>`,f=c&&l!=="bottom"?d("margin:0 0 .5rem"):"",p=c&&l==="bottom"?d("margin:.5rem 0 0"):"",k="";return a===0&&!this.diagramScriptEmitted&&(this.diagramScriptEmitted=!0,k=`<script>${sr}</script>`),`<section class="kan-diagram">${f}${i.join("")}${p}${k}</section>`}async embedTiers(e,n){let t=[];for(let a of or){let s=await n(Xe[a]);t.push(`<div class="kan-dgm-tier" data-tier="${a}"${a===e?"":" hidden"}>${s}</div>`)}return`<div class="kan-dgm-tiers">${t.join("")}</div>`}async renderDiagramExpand(e,n,t,a,s,o,i){let c=[];for(let l of e){let d=`${l.namespace??""}/${l.name}`,f=await this.diagramNodeRow(l,t,i??56,o),k=a<ur&&!s.has(d)?await this.renderDiagram(n,l,t,a+1,new Set([...s,d])):"",h=k?`<div style="margin-left:30px;border-left:2px solid var(--kan-border);padding-left:14px;margin-top:6px">${k}</div>`:"";c.push(`<div class="kan-diagram-node" style="margin:6px 0">${f}${h}</div>`)}return`<figure class="kan-diagram-figure"><div class="kan-diagram-tree">${c.join("")}</div></figure>`}async diagramNodeRow(e,n,t=56,a){let s=this.hrefForSubject(e,n),o=this.svgUrlForSubject(e,n),i=N(this.catalog,e).label,c=a?await this.evaluateCarrier(a,e):void 0,l=c!==void 0?`<span class="kan-diagram-node-note" style="display:block;font-size:0.8em;color:var(--kan-text-dim)">${g(c)}</span>`:"";return`<a href="${g(s)}" style="display:inline-flex;align-items:center;gap:10px;text-decoration:none"><img src="${g(o)}" width="${t}" height="${t}" alt="" loading="lazy"/><span><span class="kan-diagram-node-label">${g(i)}</span>${l}</span></a>`}classTierSize(e){let n;for(let t of e)for(let a of he(t)){let s=Z(this.catalog,a.subject);if(!s)continue;let o=ee(s,Za),i=o?Xe[o]:void 0;i!==void 0&&(n=n===void 0?i:Math.max(n,i))}return n}resolveFacetNodes(e,n){let t=[];for(let a of this.readPropertyValueReferences(e,n)){let s=a.subject,o=Z(this.catalog,{publisher:s.publisher,package_:s.package_,name:s.name,...s.version?{version:s.version}:{}});o&&t.push(o)}return t}async resolveFacetChannels(e,n){let t=this.gatherValueItems(q(e,za)).filter(s=>s instanceof V),a=[];for(let s of t){let o=this.readEmbeddedCarrier(s,Ga),i=ee(s,qa);if(!o||!i)continue;let c=[];for(let h of n){let b=await this.evaluateCarrierNum(o,h);c.push(Number.isFinite(b)?b:NaN)}let l=c.filter(h=>Number.isFinite(h)),d=l.length?Math.min(...l):0,p=(l.length?Math.max(...l):0)-d,k=c.map(h=>Number.isFinite(h)&&p>0?(h-d)/p:.5);a.push({to:i,norm:k})}return a}facetEdgeLabel(e,n){let t=ee(e,er);if(t)return t;if(hs(e,nr)&&n){let s=Z(this.catalog,n);if(s)return N(this.catalog,s).label}}async edgeText(e,n,t){let a=t&&n?await this.evaluateCarrier(t,n):void 0,s=[e,a].filter(o=>!!o);return s.length?s.join(" "):void 0}edgeLabelEl(e,n,t){return`<text x="${e.toFixed(1)}" y="${n.toFixed(1)}" text-anchor="middle" class="kan-diagram-edge-label" style="font-size:11px;paint-order:stroke;stroke:var(--kan-bg);stroke-width:3px;fill:var(--kan-text-dim)">${g(t)}</text>`}async renderDiagramCluster(e,n,t,a,s){let o=s??132,i=18,c=18,l=n.find(b=>b.to==="opacity");if(t){let b=[];for(let m=0;m<e.length;m++){let $=e[m],v=await this.renderBand(t,$,a),_=this.hrefForSubject($,a),K=N(this.catalog,$).label,O=l?`opacity:${(.4+l.norm[m]*.6).toFixed(2)};`:"";b.push(`<a class="kan-diagram-mark" href="${g(_)}" style="display:block;text-decoration:none;${O}">${v}<span class="kan-diagram-mark-label">${g(K)}</span></a>`)}return`<figure class="kan-diagram-figure"><div class="kan-diagram-marks" style="display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start">${b.join("")}</div></figure>`}let d=Math.min(e.length,4),f=Math.ceil(e.length/d),p=c*2+d*o+(d-1)*i,k=c*2+f*o+(f-1)*i,h=e.map((b,m)=>{let $=m%d,v=Math.floor(m/d),_=c+$*(o+i),K=c+v*(o+i),O=l?.4+l.norm[m]*.6:1;return this.diagramTile(b,_,K,o,a,O)}).join("");return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${p} ${k}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${h}</svg></figure>`}async renderDiagramConnector(e,n,t,a,s,o,i){let c=s??120,l=24,d=130,f=18,p=t.find(F=>F.to==="thickness"),k=t.find(F=>F.to==="opacity"),h=n.length,b=h*c+(h-1)*l,m=f*2+b,$=f*2+c+d+c,v=f,_=f+(b-c)/2,K=f+c+d,O=`kan-arrow-${this.diagramArrowSeq++}`,U=[],D=[],L=[];for(let F=0;F<n.length;F++){let B=n[F],J=f+F*(c+l),ue=v+c,fe=_+c/2,E=K-_e,Q=J+c/2,T=(ue+K)/2,w=p?1.5+p.norm[F]*5.5:2,A=k?.4+k.norm[F]*.6:1,W=k?` stroke-opacity="${A.toFixed(2)}"`:"";U.push(`<path d="M${ue.toFixed(1)},${fe.toFixed(1)} C${T.toFixed(1)},${fe.toFixed(1)} ${T.toFixed(1)},${Q.toFixed(1)} ${E.toFixed(1)},${Q.toFixed(1)}" class="kan-diagram-edge" fill="none" stroke="var(--kan-border)" stroke-width="${w.toFixed(1)}"${W} marker-end="url(#${O})"/>`);let R=await this.edgeText(o,B,i);R&&D.push(this.edgeLabelEl((ue+K)/2,(fe+Q)/2-5,R)),L.push(this.diagramTile(B,K,J,c,a,k?A:1))}let de=this.diagramTile(e,v,_,c,a);return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${$.toFixed(0)} ${m.toFixed(0)}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${this.arrowMarkerDef(O,"var(--kan-border)")}${U.join("")}${D.join("")}${de}${L.join("")}</svg></figure>`}arrowMarkerDef(e,n){return`<defs><marker id="${e}" viewBox="0 0 ${_e} ${_e}" refX="0" refY="${(_e/2).toFixed(1)}" markerWidth="${_e}" markerHeight="${_e}" markerUnits="userSpaceOnUse" orient="auto"><path d="M0,1 L${_e},${(_e/2).toFixed(1)} L0,${_e-1}" fill="${n}"/></marker></defs>`}async renderDiagramDag(e,n,t,a,s,o,i){let c=s??110,l=110,d=22,f=18,p=new Map(e.map((w,A)=>[w.name,A])),k=new Set(e.map(w=>w.name)),h=new Map(e.map(w=>[w.name,[]])),b=new Map(e.map(w=>[w.name,[]]));for(let w of e)for(let A of this.readPropertyValueReferences(w,n)){let W=A.subject.name;W!==w.name&&k.has(W)&&(h.get(w.name).push(W),b.get(W).push(w.name))}let m=new Map,$=new Set,v=w=>{let A=m.get(w);if(A!==void 0)return A;if($.has(w))return 0;$.add(w);let W=0;for(let R of b.get(w)??[])W=Math.max(W,v(R)+1);return $.delete(w),m.set(w,W),W};for(let w of e)v(w.name);let _=Math.min(...m.values());if(_>0)for(let w of[...m.keys()])m.set(w,m.get(w)-_);let K=Math.max(0,...m.values()),O=Array.from({length:K+1},()=>[]);for(let w of e)O[m.get(w.name)].push(w);let U=Math.max(1,...O.map(w=>w.length)),D=!1;for(let[w,A]of h)for(let W of A)m.get(W)<=m.get(w)&&(D=!0);let L=D?84:0,de=U*c+(U-1)*d,F=f*2+(K+1)*c+K*l,B=f*2+L+de,J=new Map;O.forEach((w,A)=>{let W=w.length*c+(w.length-1)*d,R=f+L+(de-W)/2;w.forEach((P,me)=>J.set(P.name,{x:f+A*(c+l),y:R+me*(c+d)}))});let ue=t.find(w=>w.to==="thickness"),fe=`kan-arrow-${this.diagramArrowSeq++}`,E=[],Q=[];for(let[w,A]of h){let W=J.get(w);for(let R of A){let P=J.get(R),me=P.x>=W.x,pe=ue?1.5+ue.norm[p.get(w)]*4.5:2,ke,se,ae;if(me){let ie=W.x+c,Te=W.y+c/2,Le=P.x-_e,ze=P.y+c/2,Me=(ie+Le)/2;ke=`M${ie.toFixed(1)},${Te.toFixed(1)} C${Me.toFixed(1)},${Te.toFixed(1)} ${Me.toFixed(1)},${ze.toFixed(1)} ${Le.toFixed(1)},${ze.toFixed(1)}`,se=(ie+Le)/2,ae=(Te+ze)/2-5}else{let ie=W.x+c/2,Te=W.y,Le=P.x+c/2,ze=P.y-_e,Me=f+L*.2;ke=`M${ie.toFixed(1)},${Te.toFixed(1)} C${ie.toFixed(1)},${Me.toFixed(1)} ${Le.toFixed(1)},${Me.toFixed(1)} ${Le.toFixed(1)},${ze.toFixed(1)}`,se=(ie+Le)/2,ae=Me+4}let Ee=me?"":' stroke-dasharray="6 4"';E.push(`<path d="${ke}" class="kan-diagram-edge" fill="none" stroke="var(--kan-accent)" stroke-width="${pe.toFixed(1)}" stroke-opacity="0.75"${Ee} marker-end="url(#${fe})"/>`);let Se=await this.edgeText(o,e[p.get(w)],i);Se&&Q.push(this.edgeLabelEl(se,ae,Se))}}let T=e.map(w=>{let A=J.get(w.name);return this.diagramTile(w,A.x,A.y,c,a)}).join("");return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${F.toFixed(0)} ${B.toFixed(0)}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${this.arrowMarkerDef(fe,"var(--kan-accent)")}${E.join("")}${Q.join("")}${T}</svg></figure>`}diagramTile(e,n,t,a,s,o=1){let i=this.hrefForSubject(e,s),c=this.svgUrlForSubject(e,s),l=N(this.catalog,e).label,d=o<1?` opacity="${o.toFixed(2)}"`:"";return`<a href="${g(i)}"><image href="${g(c)}" x="${n}" y="${t}" width="${a}" height="${a}"${d}><title>${g(l)}</title></image></a>`}async renderStatRow(e,n){let t=q(e,Mr),a=this.gatherValueItems(t).filter(o=>o instanceof V);if(a.length===0)return"<!-- LookRenderer.StatRow: no look.stats -->";let s=[];for(let o of a){let i=this.readEmbeddedCarrier(o,Nr);if(!i)continue;let c=await this.evaluateCarrier(i,n);if(c===void 0)continue;let l=ee(o,Dr)??"";s.push('<div class="kan-stat">'+(l?`<span class="kan-stat-label">${g(l)}</span>`:"")+`<span class="kan-stat-val">${g(c)}</span></div>`)}return s.length===0?"":`<div class="kan-stat-row">${s.join("")}</div>`}barMarkup(e){let n=Number(e);if(!Number.isFinite(n))return g(e);let t=Math.max(0,Math.min(1,n))*100;return`<span class="kan-bar-meter" role="img" aria-label="${g(e)}"><span class="kan-bar-fill" style="width:${t.toFixed(1)}%"></span></span><span class="kan-bar-value">${g(e)}</span>`}async renderBarMeter(e,n){let t=this.readEmbeddedCarrier(e,Je);if(!t)return"<!-- LookRenderer.BarMeter: no look.metricPath -->";let a=await this.evaluateCarrier(t,n);return a===void 0?"":`<div class="kan-bar-row">${this.barMarkup(a)}</div>`}renderResourceCount(e,n){let t=q(e,Tr),a=this.gatherValueItems(t).filter(i=>i instanceof V);if(a.length===0)return"<!-- LookRenderer.ResourceCount: no look.counts -->";let s=this.readTransitive(e),o=[];for(let i of a){let c=x(i,oe);if(!c)continue;let l=Z(this.catalog,c);if(!l)continue;let d=N(this.catalog,l).label,f=this.findInstancesOfClass(c,s).length,p=this.hrefForSubject(l,n);o.push(`<a class="kan-count" href="${g(p)}"><span class="kan-count-val">${f}</span><span class="kan-count-label">${g(d)}</span></a>`)}return o.length===0?"":`<div class="kan-count-row">${o.join("")}</div>`}renderHorizon(e,n,t){let a=x(e,oe);if(!a)return"<!-- LookRenderer.Horizon: no look.source -->";let s=this.gatherValueItems(q(n,a)).filter(i=>i instanceof V);return s.length===0?"":`<section class="kan-horizon">${s.map(i=>this.renderConditionNode(i,t,0)).join("")}</section>`}renderConditionNode(e,n,t){let a=He(e),s=a?this.readLabelForUri({publisher:a.publisher,package_:a.package_,name:a.name})??a.name:"Condition",o=[],i=[];for(let p of e.statement){let k=p.predicate?.subject;if(!k||M(k,Ce))continue;let h=this.readLabelForUri({publisher:k.publisher,package_:k.package_,name:k.name})??k.name;if(p instanceof H||p instanceof re||p instanceof te)o.push(`<div class="kan-cond-field"><span class="kan-cond-key">${g(h)}</span><span class="kan-cond-v">${g(String(p.object))}</span></div>`);else if(p instanceof I&&p.object instanceof j){let b=p.object.subject,m=this.readLabelForUri({publisher:b.publisher,package_:b.package_,name:b.name})??b.name;o.push(`<div class="kan-cond-field"><span class="kan-cond-key">${g(h)}</span><span class="kan-cond-v">${g(m)}</span></div>`)}else if(p instanceof z)i.push(this.renderConditionNode(p.object,n,t+1));else if(p instanceof C)for(let b of p.object??[])b instanceof V&&i.push(this.renderConditionNode(b,n,t+1))}let c=o.length?`<div class="kan-cond-fields">${o.join("")}</div>`:"",l=i.length?`<div class="kan-cond-children">${i.join("")}</div>`:"",d=i.length>0,f=d?`<span class="kan-cond-op">${g(s)}</span>`:`<div class="kan-cond-type">${g(s)}</div>`;return`<div class="kan-cond ${d?"kan-cond-branch":"kan-cond-leaf"}">${f}${c}${l}</div>`}renderSectionHeading(e){let n=e,t=ee(n,bt);if(!t)return"<!-- LookRenderer.SectionHeading: no look.heading -->";let a=ee(n,Or);return`<div class="kan-section" id="${Ct(t)}"><h2 class="kan-section-title">${g(t)}</h2>`+(a?`<p class="kan-section-note">${g(a)}</p>`:"")+"</div>"}renderSectionNav(e){return e.length===0?"<!-- LookRenderer.SectionNav: no section headings in this view -->":`<nav class="kan-section-nav" aria-label="On this page">${e.map(t=>`<a class="kan-section-nav-link" href="#${g(t.slug)}">${g(t.label)}</a>`).join("")}</nav>`}async renderVersionDelta(e,n){let t=this.readEmbeddedCarrier(e,Je);if(!t)return"<!-- LookRenderer.VersionDelta: no look.metricPath -->";let a=async F=>{let B=await this.evaluateCarrierNum(t,F);return Number.isFinite(B)?B:void 0},s=await a(n);if(s===void 0)return"";let o=F=>this.uriOf(F).version??{major:0,minor:0,patch:0},i=(F,B)=>F.major-B.major||F.minor-B.minor||F.patch-B.patch,c={publisher:ne(n),package_:this.uriOf(n).package_,name:n.name},l=o(n),d,f;for(let F of le(this.catalog,c)){let B=o(F);i(B,l)<0&&(!f||i(B,f)>0)&&(d=F,f=B)}if(!d||!f)return'<div class="kan-delta kan-delta-first">First tracked in this version</div>';let p=await a(d);if(p===void 0)return"";let k=s-p,h=Math.abs(k)<.005?"flat":k>0?"up":"down",b=h==="up"?"\u25B2":h==="down"?"\u25BC":"\u2014",m=h==="up"?"#34d399":h==="down"?"#f87171":"var(--kan-text-faint)",$=`${f.major}.${f.minor}.${f.patch}`,v=320,_=46,K=14,O=30,U=F=>K+Math.min(1,Math.max(0,F))*(v-2*K),D=U(p),L=U(s),de=`<svg class="kan-delta-track" viewBox="0 0 ${v} ${_}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img"><line x1="${K}" y1="${O}" x2="${v-K}" y2="${O}" class="kan-delta-base"/><line x1="${D.toFixed(1)}" y1="${O}" x2="${L.toFixed(1)}" y2="${O}" stroke="${m}" stroke-width="3"/><circle cx="${D.toFixed(1)}" cy="${O}" r="4" class="kan-delta-prev"/><circle cx="${L.toFixed(1)}" cy="${O}" r="5.5" fill="${m}"/><text x="${D.toFixed(1)}" y="${O-9}" text-anchor="middle" class="kan-delta-tick kan-delta-tick-prev">${p.toFixed(2)}</text><text x="${L.toFixed(1)}" y="${O+17}" text-anchor="middle" class="kan-delta-tick">${s.toFixed(2)}</text></svg>`;return`<div class="kan-delta"><div class="kan-delta-head"><span class="kan-delta-vs">vs ${g($)}</span><span class="kan-delta-badge ${h}">${k>0?"+":""}${k.toFixed(2)} ${b}</span></div>`+de+"</div>"}async renderTimePlot(e,n,t){let a=x(e,oe),s=x(e,on);if(!a||!s)return"<!-- LookRenderer.TimePlot: needs look.source + look.orderBy -->";let o=this.readEmbeddedCarrier(e,Ar),i=this.readEmbeddedCarrier(e,vt),c=[];for(let E of this.readPropertyValueReferences(n,a)){let Q=Z(this.catalog,{publisher:E.subject.publisher,package_:E.subject.package_,name:E.subject.name,...E.subject.version?{version:E.subject.version}:{}});if(!Q)continue;let T=this.readPropertyValueText(Q,s)??"",w=Date.parse(T);if(!Number.isFinite(w))continue;let A=o?await this.evaluateCarrier(o,Q)??"":"",W=(i?await this.evaluateCarrier(i,Q):void 0)??N(this.catalog,Q).label;c.push({t:w,dateStr:T,lane:A,label:W,href:this.hrefForSubject(Q,t),linkable:this.isLinkable(ne(Q),t)})}if(c.length===0)return"<!-- LookRenderer.TimePlot: no dated points -->";let l=[];for(let E of c)l.includes(E.lane)||l.push(E.lane);let d=Math.min(...c.map(E=>E.t)),f=Math.max(...c.map(E=>E.t));f===d&&(f=d+1);let p=l.some(E=>E),k=720,h=p?96:16,b=18,m=12,$=24,v=36,_=m+l.length*v+$,K=h,O=k-b,U=O-K,D=E=>K+(E-d)/(f-d)*U,L=E=>m+E*v+v/2,de=E=>Math.round(E*360/Math.max(1,l.length)),F=[];l.forEach((E,Q)=>{let T=L(Q);F.push(`<line x1="${K}" y1="${T.toFixed(1)}" x2="${O}" y2="${T.toFixed(1)}" class="kan-plot-guide"/>`),E&&F.push(`<text x="${(h-8).toFixed(1)}" y="${(T+4).toFixed(1)}" text-anchor="end" class="kan-plot-lane">${Re(E)}</text>`)});let B={},J=[];for(let E of c){let Q=l.indexOf(E.lane),w=((B[E.lane]=(B[E.lane]??0)+1)%3-1)*7,A=D(E.t),W=L(Q)+w,R=`${dn(E.dateStr)} \xB7 ${E.label}`,P=`<circle cx="${A.toFixed(1)}" cy="${W.toFixed(1)}" r="5" fill="hsl(${de(Q)},65%,60%)" class="kan-plot-pt"><title>${Re(R)}</title></circle>`;J.push(E.linkable?`<a href="${g(E.href)}" class="kan-plot-link">${P}</a>`:P)}let ue=`<text x="${K}" y="${(_-6).toFixed(1)}" text-anchor="start" class="kan-plot-axis">${Re(dn(new Date(d).toISOString()))}</text><text x="${O}" y="${(_-6).toFixed(1)}" text-anchor="end" class="kan-plot-axis">${Re(dn(new Date(f).toISOString()))}</text>`;return`<section class="kan-plot">${`<svg class="kan-plot-svg" viewBox="0 0 ${k} ${_}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">`+F.join("")+J.join("")+ue+"</svg>"}</section>`}renderDetails(e,n,t){let a=In(e,Vr),s=this.detailRows(n,t,a);return s?`<dl class="kan-details">${s}</dl>`:"<!-- LookRenderer.Details: no properties -->"}detailRows(e,n,t){let a=[];for(let s of e.statement){let o=s.predicate?.subject;if(!o||this.isMetaPredicate(o)||t.some(l=>M(l,o)))continue;let i=this.readLabelForUri({publisher:o.publisher,package_:o.package_,name:o.name})??o.name,c=this.detailValue(s,n,t);c&&a.push(`<dt class="kan-details-key">${g(i)}</dt><dd class="kan-details-val">${c}</dd>`)}return a.join("")}detailValue(e,n,t){if(e instanceof H)return Ft(e.object);if(e instanceof re||e instanceof te)return g(String(e.object));if(e instanceof I&&e.object instanceof j)return this.detailReferenceLink(e.object,n);if(e instanceof z)return this.detailEmbedded(e.object,n,t);if(e instanceof C){let a=e.object??[];return a.length>0&&a.every(s=>s instanceof V)?a.map(s=>this.detailEmbedded(s,n,t)).join(""):a.map(s=>s instanceof j?this.detailReferenceLink(s,n):s instanceof V?this.detailEmbedded(s,n,t):g(String(s))).filter(s=>s).join(", ")}return""}detailReferenceLink(e,n){let t=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name;if(!this.isLinkable(e.subject.publisher,n))return`<span class="kan-link-plain">${g(t)}</span>`;let a=this.urlForReference(e,void 0,n);return`<img class="kan-md-chip" src="${g(`${a}.svg`)}" alt="" loading="lazy"><a class="kan-link" href="${g(a)}">${g(t)}</a>`}detailEmbedded(e,n,t){let a=He(e),s=a?this.readLabelForUri({publisher:a.publisher,package_:a.package_,name:a.name})??a.name:"",o=this.detailRows(e,n,t);return'<div class="kan-details-embed">'+(s?`<span class="kan-details-type">${g(s)}</span>`:"")+(o?`<dl class="kan-details">${o}</dl>`:"")+"</div>"}rangeTypeRefs(e){let n=Z(this.catalog,e);if(!n)return[];let t=q(n,va);return t instanceof I&&t.object instanceof j?[t.object]:[]}async renderEmbeddedViews(e,n,t,a=""){let s=x(e,oe);if(!s)return"<!-- LookRenderer: EmbeddedViews missing look.source -->";let o=this.gatherValueItems(q(n,s)).filter(k=>k instanceof V);if(o.length===0)return"";let i=a?`${a}.${s.name}`:s.name,c=q(e,fs),l=c instanceof te?c.object===!0:c instanceof H&&c.object==="true",d=[],f=[];for(let k of o){let h=k,b=k.name?`${i}.${k.name}`:"";if(l&&b){let U=N(this.catalog,h).label||k.name||b;d.push(`<a class="kan-section-nav-link" href="#${g(b)}">${g(U)}</a>`)}let m=he(h),$=m.length>0?m:this.rangeTypeRefs(s),v=cn(h)?this.findCascadedLook(h):this.lookFromTypeRefs($),_="";if(v){let U=[];for(let D of Cn(v.declaration))U.push(await this.renderBand(D,h,t,[],b));_=U.join(`
|
|
125
|
+
`)}else{let U=this.detailRows(k,t,[]);_=U?`<dl class="kan-details">${U}</dl>`:""}let K=b?` id="${g(b)}"`:"",O=b?this.anchorLink(b):"";f.push(`<section class="kan-embedded-view"${K}>${O}${_}</section>`)}return`<div class="kan-embedded-views">${d.length>0?`<nav class="kan-section-nav" aria-label="On this page">${d.join("")}</nav>
|
|
126
126
|
`:""}${f.join(`
|
|
127
|
-
`)}</div>`}anchorLink(e){return`<a class="kan-anchor" href="#${g(e)}" title="${g(e)}" aria-label="Link to this resource">#</a>`}isMetaPredicate(e){return M(e,Ce)||M(e,
|
|
128
|
-
${i.map(f=>{let p=this.uriOf(f),k=p.package_,h=p.version,b=this.resourceHref({publisher:ne(f),package_:k,name:f.name,...h?{version:h}:{}},n),m=o(f),$=m?`<span class="kan-timeline-date">${g(m)}</span>`:"",v=h?
|
|
127
|
+
`)}</div>`}anchorLink(e){return`<a class="kan-anchor" href="#${g(e)}" title="${g(e)}" aria-label="Link to this resource">#</a>`}isMetaPredicate(e){return M(e,Ce)||M(e,Kn)||M(e,mt)||M(e,fn)||M(e,pn)||M(e,Pr)||M(e,jt)||M(e,jr)}renderPackageContents(e,n){let t=e.namespace||"";if(!t)return"";let a=this.catalog.filter(o=>o instanceof Y&&o.namespace===t&&o.name!==e.name);return a.length===0?`<!-- LookRenderer.PackageContents: no members in ${t} -->`:(a.sort((o,i)=>{let c=N(this.catalog,o).label,l=N(this.catalog,i).label;return c.localeCompare(l)}),`<section class="kan-pkg-grid">${a.map(o=>{let i=N(this.catalog,o),c=i.label,l=i.summary,d=l?Fn(l,160):"",f=this.hrefForSubject(o,n),p=this.svgUrlForSubject(o,n);return`<a class="kan-pkg-card" href="${g(f)}"><img class="kan-pkg-card-svg" src="${g(p)}" alt="" loading="lazy"/><span class="kan-pkg-card-body"><span class="kan-pkg-card-title">${g(c)}</span>`+(d?`<span class="kan-pkg-card-comment">${g(d)}</span>`:"")+"</span></a>"}).join("")}</section>`)}renderReferencedBy(e,n,t){let a=x(e,cs),s={publisher:ne(n),package_:this.uriOf(n).package_,name:n.name},o=X(s),i=p=>this.uriOf(p).version??{major:0,minor:0,patch:0},c=(p,k)=>p.major-k.major||p.minor-k.minor||p.patch-k.patch,l=new Map;for(let p of this.catalog){if(!(p instanceof Y))continue;let k=X({publisher:ne(p),package_:this.uriOf(p).package_,name:p.name});if(k!==o)for(let h of p.statement){let b=h.predicate?.subject;if(!b||M(b,Ce)||a&&X(b)!==X(a))continue;let m=[];if(h instanceof I&&h.object instanceof j)m.push(h.object);else if(h instanceof C)for(let K of h.object??[])K instanceof j&&m.push(K);if(!m.some(K=>X(K.subject)===o))continue;let $=X(b),v=l.get($);v||(v={label:this.readLabelForUri(b)??b.name,best:new Map},l.set($,v));let _=v.best.get(k);(!_||c(i(p),i(_))>0)&&v.best.set(k,p)}}return l.size===0?"<!-- LookRenderer.ReferencedBy: no incoming references -->":`<div class="kan-section"><h2 class="kan-section-title">Referenced by</h2></div>${[...l.values()].sort((p,k)=>p.label.localeCompare(k.label)).map(p=>{let h=[...p.best.values()].sort((b,m)=>N(this.catalog,b).label.localeCompare(N(this.catalog,m).label)).map(b=>this.resourceCard(b,t,n.namespace??void 0)).join("");return`<div class="kan-rel-group"><h3 class="kan-rel-prop"><span class="kan-rel-dir" title="incoming \u2014 references this resource">\u2190</span> ${g(p.label)}</h3><section class="kan-pkg-grid">${h}</section></div>`}).join("")}`}resourceCard(e,n,t){let a=N(this.catalog,e),s=a.summary?Fn(a.summary,160):"",o=he(e).map($=>this.readLabelForUri({publisher:$.subject.publisher,package_:$.subject.package_,name:$.subject.name})??$.subject.name),c='<span class="kan-pkg-card-body">'+(o.length>0?`<span class="kan-card-types">${o.map($=>`<span class="kan-card-type">${g($)}</span>`).join("")}</span>`:"")+`<span class="kan-pkg-card-title">${g(a.label)}</span>`+(s?`<span class="kan-pkg-card-comment">${g(s)}</span>`:"")+"</span>",l=this.isLinkable(ne(e),n),d=l?`<a class="kan-pkg-card-link" href="${g(this.hrefForSubject(e,n))}"><img class="kan-pkg-card-svg" src="${g(this.svgUrlForSubject(e,n))}" alt="" loading="lazy"/>`+c+"</a>":`<span class="kan-pkg-card-link">${c}</span>`,f=e.namespace||"",p=this.uriOf(e),k=p.publisher,h=p.package_,b=p.version?Qe(p.version):"",m="";if(h&&f!==t){let $=b?`<span class="kan-card-at">@</span><span class="kan-card-ver">${g(b)}</span>`:"";if(l){let v=`<span class="kan-card-pkg">${g(h)}</span>${$}`;m=`<a class="kan-pkg-card-foot" href="${g(this.packageHref(k,h,b||void 0))}" title="${g(b?`${h}@${b}`:h)}">${v}</a>`}else{let v=`<span class="kan-card-pub">${g(k)}/</span><span class="kan-card-pkg">${g(h)}</span>${$}`;m=`<span class="kan-pkg-card-foot" title="${g(b?`${k}/${h}@${b}`:`${k}/${h}`)}">${v}</span>`}}return`<div class="kan-pkg-card kan-pkg-card--foot">${d}${m}</div>`}renderInstances(e,n,t){let a={publisher:ne(n),package_:this.uriOf(n).package_,name:n.name},s=this.readTransitive(e),o=s?this.descendantTypeKeys(a):new Set([X(a)]),i=m=>this.uriOf(m).version??{major:0,minor:0,patch:0},c=(m,$)=>m.major-$.major||m.minor-$.minor||m.patch-$.patch,l=new Map;for(let m of this.catalog){if(!(m instanceof Y)||!he(m).some(K=>o.has(X(K.subject))))continue;let v=X({publisher:ne(m),package_:this.uriOf(m).package_,name:m.name}),_=l.get(v);(!_||c(i(m),i(_))>0)&&l.set(v,m)}let d=[...l.values()];if(d.length===0)return"<!-- LookRenderer.Instances: none -->";d.sort((m,$)=>N(this.catalog,m).label.localeCompare(N(this.catalog,$).label));let f=48,p=d.slice(0,f),k=p.map(m=>this.resourceCard(m,t,n.namespace??void 0)),h=d.length>f?` <span class="kan-count">${p.length} of ${d.length}</span>`:` <span class="kan-count">${d.length}</span>`;return`<div class="kan-section"><h2 class="kan-section-title">${s?"Instances (including subtypes)":"Instances"}${h}</h2></div><section class="kan-pkg-grid">${k.join("")}</section>`}descendantTypeKeys(e){let n=X(e),t=new Set([n]),a=new Set;for(let s of this.catalog)if(s instanceof Y)for(let o of he(s)){let i=o.subject,c=X(i);a.has(c)||(a.add(c),Dn(this.catalog,i).some(l=>X(l)===n)&&t.add(c))}return t}referencesTarget(e,n,t){for(let a of e.statement){let s=a.predicate?.subject;if(s&&M(s,Ce)||t&&!(s&&X(s)===X(t)))continue;let o=[];if(a instanceof I&&a.object instanceof j)o.push(a.object);else if(a instanceof C)for(let i of a.object??[])i instanceof j&&o.push(i);for(let i of o)if(X(i.subject)===n)return!0}return!1}async renderFeaturedResource(e,n){let t=x(e,oe);if(!t)return"<!-- LookRenderer.FeaturedResource: no look.source -->";let a=le(this.catalog,t),s=l=>this.uriOf(l).version??{major:0,minor:0,patch:0},o=a.length>0?a.slice().sort((l,d)=>{let f=s(l),p=s(d);return p.major-f.major||p.minor-f.minor||p.patch-f.patch})[0]:Z(this.catalog,t);if(!o)return`<!-- LookRenderer.FeaturedResource: ${t.publisher}/${t.package_}/${t.name} not found -->`;let i=await this.renderHtml(o),c=this.hrefForSubject(o,n);return`<section class="kan-featured"><a class="kan-featured-permalink" href="${g(c)}">View full resource \u2192</a>`+i+"</section>"}async renderDistribution(e,n){let t=async T=>{let w=this.readEmbeddedCarrier(e,T);if(!w)return;let A=await this.evaluateCarrierNum(w,n);return Number.isFinite(A)?A:void 0},a=await t(Rr),s=await t(Er);if(a===void 0||s===void 0||a<=0||s<=0)return"<!-- LookRenderer.Distribution: needs resolvable alphaPath + betaPath (> 0) -->";let o=await t(Je)??a/(a+s),i=await t(wt),c=await t(_t),l=await t(On),d=l!==void 0?`hsl(${l},65%,60%)`:"var(--kan-accent)",f=T=>Number.isInteger(T)?String(T):T.toFixed(1),p=280,k=168,h={top:14,right:14,bottom:24,left:14},b=p-h.left-h.right,m=k-h.top-h.bottom,$=120,v=1e-4,_=[],K=[],O=0;for(let T=0;T<=$;T++){let w=T/$;w<v?w=v:w>1-v&&(w=1-v);let A=Math.exp((a-1)*Math.log(w)+(s-1)*Math.log(1-w));_.push(w),K.push(A),A>O&&(O=A)}let U=T=>h.left+Math.min(1,Math.max(0,T))*b,D=T=>h.top+(1-(O>0?T/O:0))*m,L=h.top+m,de=_.map((T,w)=>`${U(T).toFixed(1)},${D(K[w]).toFixed(1)}`),F=`M${U(0).toFixed(1)},${L.toFixed(1)} L${de.join(" L")} L${U(1).toFixed(1)},${L.toFixed(1)} Z`,B="";if(i!==void 0&&c!==void 0&&c>i){let T=[`${U(i).toFixed(1)},${L.toFixed(1)}`];for(let w=0;w<=$;w++)_[w]>=i&&_[w]<=c&&T.push(`${U(_[w]).toFixed(1)},${D(K[w]).toFixed(1)}`);T.push(`${U(c).toFixed(1)},${L.toFixed(1)}`),B=`<path d="M${T.join(" L")} Z" fill="${d}" fill-opacity="0.3"/>`}let J=U(o),ue=`<line x1="${J.toFixed(1)}" y1="${h.top.toFixed(1)}" x2="${J.toFixed(1)}" y2="${L.toFixed(1)}" stroke="${d}" stroke-width="1.5" stroke-dasharray="3 3"/><text x="${J.toFixed(1)}" y="${(h.top-3).toFixed(1)}" text-anchor="middle" class="kan-dist-mean">\u03BC ${o.toFixed(2)}</text>`,fe=`<text x="${U(0).toFixed(1)}" y="${(L+15).toFixed(1)}" text-anchor="start" class="kan-dist-axis">0</text><text x="${U(1).toFixed(1)}" y="${(L+15).toFixed(1)}" text-anchor="end" class="kan-dist-axis">1</text>`,E=`<svg class="kan-dist-svg" viewBox="0 0 ${p} ${k}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img"><line x1="${h.left}" y1="${L.toFixed(1)}" x2="${(p-h.right).toFixed(1)}" y2="${L.toFixed(1)}" class="kan-dist-base"/><path d="${F}" fill="${d}" fill-opacity="0.12"/>`+B+`<polyline points="${de.join(" ")}" fill="none" stroke="${d}" stroke-width="2"/>`+ue+fe+"</svg>",Q=i!==void 0&&c!==void 0?` \xB7 95% CI [${i.toFixed(2)}\u2013${c.toFixed(2)}]`:"";return`<figure class="kan-dist">${E}<figcaption class="kan-dist-caption">Beta(${f(a)}, ${f(s)})${Q}</figcaption></figure>`}renderPublisherPackages(e,n){let t=new Map;for(let c of this.catalog){if(!(c instanceof Y)||ne(c)!==n)continue;let l=this.uriOf(c).package_;if(!l||c.name!==l)continue;let d=t.get(l),f=this.uriOf(c).version,p=d?this.uriOf(d).version:void 0;(!d||f&&(!p||Ze(f,p)>0))&&t.set(l,c)}let a,s=q(e,hr),o=s instanceof C?s.object??[]:s instanceof I&&s.object instanceof j?[s.object]:[];if(o.length>0){a=[];for(let c of o){if(!(c instanceof j))continue;let l=c.subject.package_,d=t.get(l);d&&a.push([l,d])}}else a=[...t.entries()].sort((c,l)=>c[0].localeCompare(l[0]));return a.length===0?"":`<section class="kan-pkg-grid">${a.map(([c,l])=>{let d=N(this.catalog,l),f=d.label,p=d.summary,k=p?Fn(p,160):"",h=this.svgUrlForSubject(l,n);return`<a class="kan-pkg-card" href="${g(this.packageHref(n,c))}"><img class="kan-pkg-card-svg" src="${g(h)}" alt="" loading="lazy"/><span class="kan-pkg-card-body"><span class="kan-pkg-card-title">${g(f)}</span>`+(k?`<span class="kan-pkg-card-comment">${g(k)}</span>`:"")+"</span></a>"}).join("")}</section>`}async renderTimeline(e,n){let t=x(e,oe);if(!t)return"<!-- LookRenderer.Timeline: no look.source -->";let a=x(e,on),s=this.findInstancesOfClass(t,this.readTransitive(e));if(s.length===0)return"<!-- LookRenderer.Timeline: no instances -->";let o=f=>a?this.readPropertyValueText(f,a)??"":"",i=s.slice().sort((f,p)=>o(f).localeCompare(o(p))),c=x(e,St),l=this.readEmbeddedCarrier(e,Je);return c&&l?this.renderTrajectoryChart(i,c,l,e,n,o):`<section class="kan-timeline"><ol>
|
|
128
|
+
${i.map(f=>{let p=this.uriOf(f),k=p.package_,h=p.version,b=this.resourceHref({publisher:ne(f),package_:k,name:f.name,...h?{version:h}:{}},n),m=o(f),$=m?`<span class="kan-timeline-date">${g(m)}</span>`:"",v=h?Qe(h):f.name;return`<li class="kan-timeline-node"><a href="${g(b)}"><span class="kan-timeline-key">${g(v)}</span>${$}</a></li>`}).join(`
|
|
129
129
|
`)}
|
|
130
|
-
</ol></section>`}async renderTrajectoryChart(e,n,t,a,s,o){let i=a,c=this.readEmbeddedCarrier(a,On),l=this.readEmbeddedCarrier(a,
|
|
130
|
+
</ol></section>`}async renderTrajectoryChart(e,n,t,a,s,o){let i=a,c=this.readEmbeddedCarrier(a,On),l=this.readEmbeddedCarrier(a,wt),d=this.readEmbeddedCarrier(a,_t),f=ee(i,es),p=Ot(i,Zr),k=Ot(i,Qr),h=e.length,b=await this.collectTrackedSeries(e,n,t,{hueBy:c,lowerPath:l,upperPath:d});if(b.length===0)return"<!-- LookRenderer.Timeline: no tracked series -->";let m=[];for(let R of b){for(let P of R.points)P!==null&&m.push(P);for(let P of R.lower??[])P!==null&&m.push(P);for(let P of R.upper??[])P!==null&&m.push(P)}if(m.length===0)return"<!-- LookRenderer.Timeline: no metric values -->";let $=Math.min(...m),v=Math.max(...m);v-$<1e-9&&($-=.5,v+=.5);let _=(v-$)*.08,K=p!==void 0?p:$-_,O=k!==void 0?k:v+_;O-K<1e-9&&(O=K+1);let U=1e3,D=440,L={top:28,right:24,bottom:56,left:52},de=U-L.left-L.right,F=D-L.top-L.bottom,B=R=>h<=1?L.left+de/2:L.left+R/(h-1)*de,J=R=>L.top+(1-(R-K)/(O-K))*F,ue=(R,P)=>R.hue!==void 0?R.hue:Math.round(P*360/b.length),fe=[];for(let R=0;R<5;R++){let P=K+R*(O-K)/4,me=J(P);fe.push(`<line x1="${L.left}" y1="${me.toFixed(1)}" x2="${(U-L.right).toFixed(1)}" y2="${me.toFixed(1)}" class="kan-fan-grid"/>`),fe.push(`<text x="${(L.left-8).toFixed(1)}" y="${(me+4).toFixed(1)}" class="kan-fan-axis" text-anchor="end">${P.toFixed(2)}</text>`)}let E=[];e.forEach((R,P)=>{let me=this.hrefForSubject(R,s),pe=this.uriOf(R).version,ke=pe?Qe(pe):"",se=B(P),ae=dn(o(R));E.push(`<a href="${g(me)}" class="kan-fan-xtick"><line x1="${se.toFixed(1)}" y1="${L.top}" x2="${se.toFixed(1)}" y2="${(D-L.bottom).toFixed(1)}" class="kan-fan-vline"/><text x="${se.toFixed(1)}" y="${(D-L.bottom+20).toFixed(1)}" class="kan-fan-xlabel" text-anchor="middle">${Re(ke||R.name)}</text>`+(ae?`<text x="${se.toFixed(1)}" y="${(D-L.bottom+36).toFixed(1)}" class="kan-fan-xdate" text-anchor="middle">${Re(ae)}</text>`:"")+"</a>")});let Q=[];b.forEach((R,P)=>{if(!R.lower||!R.upper)return;let me=ue(R,P),pe=[],ke=[];for(let ae=0;ae<h;ae++){let Ee=R.upper[ae],Se=R.lower[ae];Ee==null||Se===null||Se===void 0||(pe.push(`${B(ae).toFixed(1)},${J(Ee).toFixed(1)}`),ke.unshift(`${B(ae).toFixed(1)},${J(Se).toFixed(1)}`))}let se=pe.concat(ke);se.length<3||Q.push(`<polygon class="kan-fan-band" points="${se.join(" ")}" fill="hsl(${me},65%,60%)"/>`)});let T=[];b.forEach((R,P)=>{let pe=`hsl(${ue(R,P)},65%,60%)`,ke=[],se=[];R.points.forEach((ae,Ee)=>{if(ae===null)return;let Se=B(Ee),ie=J(ae);ke.push(`${Se.toFixed(1)},${ie.toFixed(1)}`),se.push(`<circle cx="${Se.toFixed(1)}" cy="${ie.toFixed(1)}" r="3.5" fill="${pe}"/>`)}),ke.length!==0&&T.push(`<g class="kan-fan-series" data-series="${g(R.key)}"><polyline points="${ke.join(" ")}" fill="none" stroke="${pe}" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/>`+se.join("")+"</g>")});let w=`<svg class="kan-fan-svg" viewBox="0 0 ${U} ${D}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">`+fe.join("")+E.join("")+Q.join("")+T.join("")+"</svg>",A=f?`${g(f)}=`:"",W=b.map((R,P)=>{let me=ue(R,P),pe=R.points.filter(ie=>ie!==null),ke=pe.length?pe[0]:void 0,se=pe.length?pe[pe.length-1]:void 0,ae="";if(se!==void 0&&ke!==void 0){let ie=se-ke;if(Math.abs(ie)>=.005){let Te=ie>0?"up":"down",Le=ie>0?"\u25B2":"\u25BC";ae=` <span class="kan-fan-delta ${Te}">${ie>0?"+":""}${ie.toFixed(2)} ${Le}</span>`}else ae=' <span class="kan-fan-delta flat">\u2014</span>'}let Ee=se!==void 0?`${A}${se.toFixed(2)}`:"\u2014",Se=R.lastSubject&&this.isLinkable(ne(R.lastSubject),s)?`<a href="${g(this.hrefForSubject(R.lastSubject,s))}">${g(R.label)}</a>`:g(R.label);return`<div class="kan-fan-legend-item" style="--kan-fan-hue:${me}"><span class="kan-fan-swatch"></span><span class="kan-fan-legend-label">${Se}</span><span class="kan-fan-legend-cur">${Ee}${ae}</span></div>`});return`<section class="kan-fan"><div class="kan-fan-chart">${w}</div><div class="kan-fan-legend">${W.join("")}</div></section>`}resolveResourceQuery(e){let n=i=>{let c=x(i,Yr);if(!c)return;let l=x(i,on),d=ee(i,Xr),f=this.readPropertyValueText(i,Jr),p=f!==void 0?Number(f):NaN;return{ofClass:c,...l?{orderBy:l}:{},descending:d==="descending",...Number.isInteger(p)&&p>0?{limit:p}:{}}},t=this.readEmbeddedCarrier(e,oe);if(t)return n(t);let a=x(e,oe);if(!a)return;let s=Z(this.catalog,a);return(s?he(s).some(i=>M(i.subject,Wr)):!1)&&s?n(s):{ofClass:a,descending:!1}}applyQueryShape(e,n){let t=e;if(n.orderBy){let a=s=>this.readPropertyValueText(s,n.orderBy)??"";t=t.slice().sort((s,o)=>a(s).localeCompare(a(o))),n.descending&&t.reverse()}return n.limit!==void 0&&(t=t.slice(0,n.limit)),t}renderResourceGrid(e,n,t){let a=this.resolveResourceQuery(e),s=x(e,oe)??a?.ofClass;if(!s)return"<!-- LookRenderer.ResourceGrid: no look.source -->";let o=Z(this.catalog,s),i=o?Bn(this.catalog,o)!==void 0:!1,c=[];if(i&&t){let d=this.readPropertyValueReferences(t,s);for(let f of d){let p=Z(this.catalog,{publisher:f.subject.publisher,package_:f.subject.package_,name:f.subject.name,...f.subject.version?{version:f.subject.version}:{}});p&&c.push(p)}}else a?c=this.applyQueryShape(this.findInstancesOfClass(a.ofClass,this.readTransitive(e)),a):c=this.findInstancesOfClass(s,this.readTransitive(e));if(c.length===0)return`<!-- LookRenderer.ResourceGrid: no resources for ${s.publisher}/${s.package_}/${s.name} -->`;let l=[];for(let d of c){let f=N(this.catalog,d),p=f.label,k=f.summary,h=this.uriOf(d),b=h.package_,m=h.version,$=this.resourceHref({publisher:ne(d),package_:b,name:d.name,...m?{version:m}:{}},n),v=k?`<p class="kan-resource-card-subtitle">${g(k)}</p>`:"",_=`<h3 class="kan-resource-card-title">${g(p)}</h3>${v}`;l.push(this.isLinkable(ne(d),n)?`<a class="kan-resource-card" href="${g($)}">${_}</a>`:`<span class="kan-resource-card">${_}</span>`)}return`<section class="kan-resource-grid">
|
|
131
131
|
${l.join(`
|
|
132
132
|
`)}
|
|
133
|
-
</section>`}readTransitive(e){let n=
|
|
133
|
+
</section>`}readTransitive(e){let n=q(e,ps);return n instanceof te?n.object===!0:n instanceof H&&n.object==="true"}findInstancesOfClass(e,n=!1){let t=n?this.descendantTypeKeys(e):new Set([X(e)]),a=[];for(let s of this.catalog)s instanceof Y&&he(s).some(o=>t.has(X(o.subject)))&&a.push(s);return a}renderBreadcrumb(e,n,t){let s=(e.namespace||"").split("/");if(s.length<2)return"";let o=s[0],i=s[1]??"",c=i.split("@")[0]??"",l=i.split("@")[1]??"";if(!o||!c)return"";if(t?.bareOverview)return`<nav class="kan-breadcrumb"><ol>
|
|
134
134
|
<li><a href="${g(this.publisherHref(o))}">${g(o)}</a></li>
|
|
135
135
|
<li aria-current="page">${g(c)}</li>
|
|
136
136
|
</ol></nav>`;let d=e.name,p=!!Z(this.catalog,{publisher:o,package_:c,name:c}),k=l?`${c}@${l}`:c,h=this.resourceHref({publisher:o,package_:c,name:c,...l?{version:xn(l)}:{}},o),b=e.name===c,m=[];return m.push(`<li><a href="${g(this.publisherHref(o))}">${g(o)}</a></li>`),b?m.push(`<li aria-current="page">${g(k)}</li>`):(m.push(p?`<li><a href="${g(h)}">${g(k)}</a></li>`:`<li>${g(k)}</li>`),m.push(`<li aria-current="page">${g(d)}</li>`)),`<nav class="kan-breadcrumb"><ol>
|
|
137
137
|
${m.join(`
|
|
138
138
|
`)}
|
|
139
|
-
</ol></nav>`}renderNavGroup(e,n){let t=
|
|
139
|
+
</ol></nav>`}renderNavGroup(e,n){let t=q(this.publisherSubject(n),Ua),a=t instanceof C?t.object??[]:t instanceof I&&t.object instanceof j?[t.object]:[];if(a.length===0)return"";let s=[];for(let o of a){if(!(o instanceof j))continue;let i=Z(this.catalog,{publisher:o.subject.publisher,package_:o.subject.package_,name:o.subject.name}),{href:c,label:l}=this.resolveNavEntry(o,i,n),d=this.hrefForSubject(e,n),f=c===d?' aria-current="page"':"";s.push(`<li><a class="kan-nav-link" href="${g(c)}"${f}>${g(l)}</a></li>`)}return`<nav class="kan-site-nav"><ul>
|
|
140
140
|
${s.join(`
|
|
141
141
|
`)}
|
|
142
|
-
</ul></nav>`}renderSiteFooter(e){let n=
|
|
143
|
-
`)}</footer>`}resolveNavEntry(e,n,t){if(n&&
|
|
142
|
+
</ul></nav>`}renderSiteFooter(e){let n=q(this.publisherSubject(e),Ca),t;if(n instanceof z?t=n.object:n instanceof I&&n.object instanceof j&&(t=Z(this.catalog,{publisher:n.object.subject.publisher,package_:n.object.subject.package_,name:n.object.subject.name})),!t)return"";let a=ee(t,Ia),s=q(t,Fa),o=s instanceof C?s.object??[]:s instanceof I&&s.object instanceof j?[s.object]:[],i=[];for(let l of o){if(!(l instanceof j))continue;let d=Z(this.catalog,{publisher:l.subject.publisher,package_:l.subject.package_,name:l.subject.name}),{href:f,label:p}=this.resolveNavEntry(l,d,e);i.push(`<a class="kan-footer-link" href="${g(f)}">${g(p)}</a>`)}if(!a&&i.length===0)return"";let c=[];return i.length>0&&c.push(`<div class="kan-footer-links">${i.join("")}</div>`),a&&c.push(`<p class="kan-footer-text">${g(a)}</p>`),`<footer class="kan-site-footer">${c.join(`
|
|
143
|
+
`)}</footer>`}resolveNavEntry(e,n,t){if(n&&he(n).map(c=>c.subject).some(c=>c.publisher===Rn.publisher&&c.package_===Rn.package_&&c.name===Rn.name)){let c=ee(n,Kn),l=q(n,ht);if(l instanceof I&&l.object instanceof j){let d=l.object,f=this.readLabelForUri({publisher:d.subject.publisher,package_:d.subject.package_,name:d.subject.name});return{href:this.urlForReference(d,ht,t),label:c??f??d.subject.name}}}let a=this.resourceHref({publisher:e.subject.publisher,package_:e.subject.package_,...e.subject.version?{version:e.subject.version}:{},name:e.subject.name},t,"*"),s=n?N(this.catalog,n).label:e.subject.name;return{href:a,label:s}}codeHighlighter(){return this._codeHighlighter||(this._codeHighlighter=new sn(this.collectGrammars())),this._codeHighlighter}collectGrammars(){let e=[];for(let n of this.catalog){if(!(n instanceof Y)||!he(n).some(i=>M(i.subject,br)))continue;let t=ee(n,vr);if(!t)continue;let a=q(n,yr),s=a instanceof C?a.object??[]:[],o=[];for(let i of s){if(!(i instanceof V))continue;let c=x(i,$r),l=ee(i,Sr);!c||!l||o.push({tokenClass:c.name,pattern:l})}e.push({language:t,rules:o})}return e}renderLinks(e,n){let t=x(e,oe);if(!t)return"";let a=q(n,t),s=[];a instanceof C?s=a.object??[]:a instanceof z?s=[a.object]:a instanceof I&&a.object instanceof j&&(s=[a.object]);let o=[];for(let i of s){let c;if(i instanceof V?c=i:i instanceof j&&(c=Z(this.catalog,{publisher:i.subject.publisher,package_:i.subject.package_,name:i.subject.name})),!c)continue;let l=ee(c,_r);if(!l)continue;let d=ee(c,Kn)??l,f=ee(c,mt),p=f?` title="${g(f)}"`:"";o.push(`<a class="kan-extlink" href="${g(l)}"${p} target="_blank" rel="noopener noreferrer">${g(d)}</a>`)}return o.length===0?"":`<section class="kan-extlink-row">${o.join("")}</section>`}renderMarkdown(e,n,t){let a=x(e,oe);if(!a)return"<!-- LookRenderer.Markdown: no look.source -->";let s=q(n,a),o=new Map,i;if(s instanceof Ve?i=this.resolveMarkdownLinks(s,t,o):s instanceof H?i=s.object:i=this.readPropertyValueText(n,a),!i)return"";let c=this.codeHighlighter(),l=We(i,{highlight:(d,f)=>c.highlight(d,f)});for(let[d,f]of o){let p=new RegExp('(<a href="'+It(d)+'">)([^<]*)(</a>)',"g");l=l.replace(p,`$1<img class="kan-md-chip" src="${g(f)}" alt="" loading="lazy">$2$3`)}return`<section class="kan-markdown">
|
|
144
144
|
${l}
|
|
145
|
-
</section>`}resolveMarkdownLinks(e,n,t){let a=e.object,s=[...e.links].sort((o,i)=>i.startOffset-o.startOffset);for(let o of s){let i;if(o.target&&this.isLinkable(o.target.subject.publisher,n)){let c=o.target.subject,l=(o.displayText??this.readLabelForUri({publisher:c.publisher,package_:c.package_,name:c.name})??o.reference).replace(/[[\]]/g,""),d=this.resourceHref({publisher:c.publisher,package_:c.package_,name:c.name,...c.version?{version:c.version}:{}},n);t&&t.set(d,`${d}.svg`),i=`[${l}](${d})`}else if(o.target){let c=o.target.subject;i=(o.displayText??this.readLabelForUri({publisher:c.publisher,package_:c.package_,name:c.name})??o.reference).replace(/[[\]]/g,"")}else i=o.displayText??o.reference;a=a.slice(0,o.startOffset)+i+a.slice(o.endOffset)}return a}renderRawMarkdown(e){let n=this.findCascadedLook(e);if(!n)return;let t=Cn(n.declaration),a=[];for(let s of t){let o=
|
|
145
|
+
</section>`}resolveMarkdownLinks(e,n,t){let a=e.object,s=[...e.links].sort((o,i)=>i.startOffset-o.startOffset);for(let o of s){let i;if(o.target&&this.isLinkable(o.target.subject.publisher,n)){let c=o.target.subject,l=(o.displayText??this.readLabelForUri({publisher:c.publisher,package_:c.package_,name:c.name})??o.reference).replace(/[[\]]/g,""),d=this.resourceHref({publisher:c.publisher,package_:c.package_,name:c.name,...c.version?{version:c.version}:{}},n);t&&t.set(d,`${d}.svg`),i=`[${l}](${d})`}else if(o.target){let c=o.target.subject;i=(o.displayText??this.readLabelForUri({publisher:c.publisher,package_:c.package_,name:c.name})??o.reference).replace(/[[\]]/g,"")}else i=o.displayText??o.reference;a=a.slice(0,o.startOffset)+i+a.slice(o.endOffset)}return a}renderRawMarkdown(e){let n=this.findCascadedLook(e);if(!n)return;let t=Cn(n.declaration),a=[];for(let s of t){let o=He(s);if(!o||!M(o,kt))continue;let i=x(s,oe);if(!i)continue;let c=this.readPropertyValueText(e,i);c&&a.push(c)}return a.length>0?a.join(`
|
|
146
146
|
|
|
147
|
-
`):void 0}renderHero(e,n,t){let a=b=>{let m=
|
|
148
|
-
`)}renderPropertyList(e,n,t){let a=
|
|
149
|
-
`)}renderPropertyTable(e,n,t,a=""){let s=F(e,se);if(!s)return"<!-- LookRenderer: PropertyTable missing look.source -->";let o=this.gatherValueItems(G(n,s)).filter(d=>d instanceof V);if(o.length===0)return"";let i=this.readLabelForUri(s)??s.name,c=a?`${a}.${s.name}`:s.name,l=F(e,Dr);return this.renderEmbeddedTable(o,t,i,c,l)}renderEmbeddedTable(e,n,t,a,s){let o=[],i=new Set;for(let m of e)for(let $ of m.statement){let v=$.predicate?.subject;if(!v||this.isMetaPredicate(v))continue;let _=`${v.publisher}/${v.package_}/${v.name}`;i.has(_)||(i.add(_),o.push({uri:{publisher:v.publisher,package_:v.package_,name:v.name},label:this.readLabelForUri(v)??v.name}))}if(o.length===0)return"";let c=e.map(m=>N(this.catalog,m).label),l=e.some((m,$)=>c[$]!==""&&c[$]!==m.name),d=!!a,f=(d?'<th class="kan-anchor-col"></th>':"")+(l?"<th></th>":"")+o.map(m=>`<th>${g(m.label)}</th>`).join(""),p=e.map((m,$)=>{let v=d&&m.name?`${a}.${m.name}`:"",_=v?` id="${g(v)}"`:"",R=d?`<td class="kan-anchor-col">${v?this.anchorLink(v):""}</td>`:"",O=l?`<th scope="row">${g(c[$]??"")}</th>`:"",U=o.map(D=>{let L=G(m,D.uri);return L?`<td>${this.tableCellValue(L,n,s)}</td>`:"<td></td>"}).join("");return`<tr${_}>${R}${O}${U}</tr>`}).join(""),k=d&&a?` id="${g(a)}"`:"",h=d&&a?this.anchorLink(a):"",b=t?`<caption>${g(t)}${h}</caption>`:"";return`<table class="kan-property-table"${k}>${b}<thead><tr>${f}</tr></thead><tbody>${p}</tbody></table>`}tableCellValue(e,n,t){if(t&&M(t,vt)){if(e instanceof ie)return this.barMarkup(String(e.object));if(e instanceof Y&&Number.isFinite(Number(e.object)))return this.barMarkup(e.object)}if(e instanceof Ve)return this.statementToMarkdownHtml(e,n);if(e instanceof Y)return It(e.object);if(e instanceof ie||e instanceof ae)return g(String(e.object));if(e instanceof T&&e.object instanceof j)return this.detailReferenceLink(e.object,n);if(e instanceof H)return this.renderEmbeddedTable([e.object],n);if(e instanceof I){let a=e.object??[],s=a.filter(o=>o instanceof V);return s.length>0&&s.length===a.length?this.renderEmbeddedTable(s,n):a.map(o=>o instanceof j?this.detailReferenceLink(o,n):o instanceof V?this.renderEmbeddedTable([o],n):g(String(o))).filter(o=>o).join(", ")}return""}statementToMarkdownHtml(e,n){let t=new Map,a;if(e instanceof Ve?a=this.resolveMarkdownLinks(e,n,t):e instanceof Y&&(a=e.object),!a)return"";let s=this.codeHighlighter(),o=Xe(a,{highlight:(i,c)=>s.highlight(i,c)});for(let[i,c]of t){let l=new RegExp('(<a href="'+Ct(i)+'">)([^<]*)(</a>)',"g");o=o.replace(l,`$1<img class="kan-md-chip" src="${g(c)}" alt="" loading="lazy">$2$3`)}return o}renderBadgeRow(e,n,t){let a=F(e,se);if(!a)return"<!-- LookRenderer: BadgeRow missing look.source -->";let s=this.readPropertyValueReferences(n,a);return s.length===0?"":`<div class="kan-badge-row">${s.map(i=>this.renderBadge(i,se,t)).join("")}</div>`}renderChipRow(e,n,t){let a=In(e,fs);if(a.length===0)return"<!-- LookRenderer: ChipRow has no look.chips -->";let s=[];for(let o of a){let i=G(n,o);if(!i)continue;let c=this.readLabelForUri(o)??o.name,l=this.renderStatementInlineValue(i,o,t);l&&s.push(`<span class="kan-chip"><span class="kan-chip-key">${g(c)}</span> <span class="kan-chip-val">${l}</span></span>`)}return s.length===0?"":`<div class="kan-chip-row">${s.join("")}</div>`}async renderReferenceList(e,n,t){let a=In(e,Et);if(a.length===0)return"<!-- LookRenderer: ReferenceList has no look.entries -->";let s=this.readEmbeddedCarrier(e,bt),o=this.readEmbeddedCarrier(e,Nr),i=[];for(let c of a){let l=this.readPropertyValueReferences(n,c);if(l.length===0)continue;let d=this.readLabelForUri(c)??c.name;if(s){let f=[];for(let k of l)f.push(await this.renderDetailRow(k,s,o,t));let p=f.filter(k=>k).join("");p&&i.push(`<dt>${g(d)}</dt><dd><ul class="kan-ref-rows">${p}</ul></dd>`)}else{let f=l.map(p=>this.renderReferenceLink(p,Et,t)).join(", ");i.push(`<dt>${g(d)}</dt><dd>${f}</dd>`)}}return i.length===0?"":`<dl class="kan-reference-list">${i.join("")}</dl>`}async renderDetailRow(e,n,t,a){let s=Z(this.catalog,{publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name,...e.subject.version?{version:e.subject.version}:{}});if(!s)return"";let o=await this.evaluateCarrier(n,s)??N(this.catalog,s).label,i="";if(t){let f=await this.evaluateCarrier(t,s);f&&(i=`<span class="kan-ref-badge">${g(f)}</span>`)}let c=`<span class="kan-ref-text">${g(o)}</span>${i}`;if(!this.isLinkable(ne(s),a))return`<li class="kan-ref-row"><span class="kan-ref-rowlink">${c}</span></li>`;let l=this.hrefForSubject(s,a),d=this.svgUrlForSubject(s,a);return`<li class="kan-ref-row"><a class="kan-ref-rowlink" href="${g(l)}"><img class="kan-ref-icon" src="${g(d)}" alt="" loading="lazy"/>`+c+"</a></li>"}readPropertyValueText(e,n){let t=G(e,n);if(t){if(t instanceof Y)return t.object;if(t instanceof ie||t instanceof ae)return String(t.object);if(t instanceof T){let a=t.object;return this.readLabelForUri({publisher:a.subject.publisher,package_:a.subject.package_,name:a.subject.name})??a.subject.name}if(t instanceof H)return this.readEmbeddedText(t.object,0)||void 0;if(t instanceof I)return(t.object??[]).map(s=>s instanceof j?this.readLabelForUri({publisher:s.subject.publisher,package_:s.subject.package_,name:s.subject.name})??s.subject.name:s instanceof V?this.readEmbeddedText(s,0):String(s)).filter(s=>s).join(", ")}}readEmbeddedText(e,n){if(n>=Rt)return"\u2026";let t=[];for(let a of e.statement){let s=a.predicate?.subject;if(!(s&&M(s,Ce)))if(a instanceof Y)t.push(a.object);else if(a instanceof ie||a instanceof ae)t.push(String(a.object));else if(a instanceof T){let o=a.object;t.push(this.readLabelForUri({publisher:o.subject.publisher,package_:o.subject.package_,name:o.subject.name})??o.subject.name)}else a instanceof H&&t.push(this.readEmbeddedText(a.object,n+1))}return t.filter(a=>a).join(", ")}readPropertyValueReferences(e,n){let t=G(e,n);if(!t)return[];if(t instanceof T)return[t.object];if(t instanceof I){let a=[];for(let s of t.object??[])s instanceof j&&a.push(s);return a}return[]}gatherValueItems(e){return e?e instanceof I?e.object??[]:e instanceof T?[e.object]:e instanceof H?[e.object]:e instanceof Y?[e.object]:e instanceof ie||e instanceof ae?[e.object]:[]:[]}renderInlineValue(e,n,t,a=0){return e instanceof j?this.renderReferenceLink(e,n,t):e instanceof V?this.renderEmbeddedInline(e,t,a):typeof e=="string"?g(e):typeof e=="number"||typeof e=="boolean"?g(String(e)):""}renderStatementInlineValue(e,n,t,a=0){return e instanceof Y?g(e.object):e instanceof ie||e instanceof ae?g(String(e.object)):e instanceof T?this.renderReferenceLink(e.object,n,t):e instanceof H?this.renderEmbeddedInline(e.object,t,a):e instanceof I?(e.object??[]).map(o=>this.renderInlineValue(o,n,t,a)).filter(o=>o).join(", "):""}renderEmbeddedInline(e,n,t=0){if(t>=Rt)return"\u2026";let a=[];for(let s of e.statement){let o=s.predicate?.subject;if(!o||M(o,Ce))continue;let i=this.readLabelForUri({publisher:o.publisher,package_:o.package_,name:o.name})??o.name,c=this.renderStatementInlineValue(s,o,n,t+1);c&&a.push(`<dt>${g(i)}</dt><dd>${c}</dd>`)}return a.length?`<dl class="kan-embedded">${a.join("")}</dl>`:""}renderReferenceLink(e,n,t){let a=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name;if(!this.isLinkable(e.subject.publisher,t))return`<span class="kan-link-plain">${g(a)}</span>`;let s=this.urlForReference(e,n,t);return`<a class="kan-link" href="${g(s)}">${g(a)}</a>`}isLinkable(e,n){return this.publisherFirst||e===n}renderBadge(e,n,t){let a=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name,s=this.readCommentForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name}),o=s?` title="${g(s)}"`:"";if(!this.isLinkable(e.subject.publisher,t))return`<span class="kan-badge"${o}>${g(a)}</span>`;let i=this.urlForReference(e,n,t);return`<a class="kan-badge" href="${g(i)}"${o}>${g(a)}</a>`}urlForReference(e,n,t){let a=n?this.getUrlFormForProperty(n):"=";return this.resourceHref({publisher:e.subject.publisher,package_:e.subject.package_,...e.subject.version?{version:e.subject.version}:{},name:e.subject.name},t,a)}getUrlFormForProperty(e){let n=Z(this.catalog,e);if(!n)return"=";let t=ee(n,ps);return t==="*"||t==="^"||t==="~"||t==="="?t:"="}readLabelForUri(e){let n=Z(this.catalog,e);if(n)return N(this.catalog,n).label}readCommentForUri(e){let n=Z(this.catalog,e);if(n)return N(this.catalog,n).summary}};function gs(r){let e=new Map;for(let n of r.statement){if(!(n instanceof H)||!$e(n,pn.publisher,pn.package_,pn.name))continue;let t=n.object;for(let a of t.statement){if(!(a instanceof Y))continue;let s=a.predicate?.subject?.name;if(!s)continue;let o=a.object;e.has(s)||e.set(s,o)}}return e}function cn(r){for(let e of r.statement)if(e instanceof H&&$e(e,fn.publisher,fn.package_,fn.name))return e.object}function Cn(r){for(let e of r.statement){if(!(e instanceof I)||!$e(e,Un.publisher,Un.package_,Un.name))continue;let n=[];for(let t of e.object??[])t instanceof V&&n.push(t);return n}return[]}function ze(r){for(let e of r.statement)if(e instanceof T&&!(!e.predicate?.subject||!M(e.predicate.subject,Ce))&&e.object instanceof j){let n=e.object.subject;return{publisher:n.publisher,package_:n.package_,name:n.name}}}function F(r,e){for(let n of r.statement)if(n instanceof T&&$e(n,e.publisher,e.package_,e.name)&&n.object instanceof j){let t=n.object.subject;return{publisher:t.publisher,package_:t.package_,name:t.name}}}function In(r,e){for(let n of r.statement){if(!(n instanceof I)||!$e(n,e.publisher,e.package_,e.name))continue;let t=[];for(let a of n.object??[])a instanceof j&&t.push({publisher:a.subject.publisher,package_:a.subject.package_,name:a.subject.name});return t}return[]}function G(r,e){for(let n of r.statement)if($e(n,e.publisher,e.package_,e.name))return n}function ee(r,e){for(let n of r.statement)if(n instanceof Y&&$e(n,e.publisher,e.package_,e.name))return n.object}function ln(r,e){for(let n of r.statement)if(n instanceof H&&$e(n,e.publisher,e.package_,e.name))return n.object}function Lt(r,e){for(let n of r.statement)if(n instanceof ie&&$e(n,e.publisher,e.package_,e.name))return n.object}function ms(r,e){for(let n of r.statement)if(n instanceof ae&&$e(n,e.publisher,e.package_,e.name))return n.object===!0;return!1}function ks(r){for(let e of ke(r))if(M(e.subject,ba)||M(e.subject,va))return!0;return!1}function ke(r){let e=[];for(let n of r.statement)if(n instanceof T){if(!n.predicate?.subject||!M(n.predicate.subject,Ce))continue;n.object instanceof j&&e.push(n.object)}else if(n instanceof I){if(!n.predicate?.subject||!M(n.predicate.subject,Ce))continue;for(let t of n.object??[])t instanceof j&&e.push(t)}return e}function un(r){let e=[];for(let n of r.statement)if(n instanceof T){if(!n.predicate?.subject||!M(n.predicate.subject,jt))continue;n.object instanceof j&&e.push(n.object)}else if(n instanceof I){if(!n.predicate?.subject||!M(n.predicate.subject,jt))continue;for(let t of n.object??[])t instanceof j&&e.push(t)}return e}function Z(r,e){let n="version"in e?e.version:void 0;if(n){let t=`${e.publisher}/${e.package_}@${n.major}.${n.minor}.${n.patch}`;for(let a of r)if(a instanceof W&&a.name===e.name&&a.namespace===t)return a}for(let t of r){if(!(t instanceof W)||t.name!==e.name)continue;if((t.namespace||"").startsWith(`${e.publisher}/${e.package_}@`))return t}}function $e(r,e,n,t){let a=r.predicate?.subject;return a?a.publisher===e&&a.package_===n&&a.name===t:!1}function M(r,e){return r.publisher===e.publisher&&r.package_===e.package_&&r.name===e.name}function X(r){return`${r.publisher}/${r.package_}/${r.name}`}function hs(r){let e=s=>s.replace(/\*\//g,"* /"),n=[];n.push(` * kanonak stylesheet \u2014 ${e(r.resource.namespace)}/${e(r.resource.name)}`),n.push(" *");let t=new Map;for(let s of r.tokens.values()){let o=`${s.sourceNamespace} ${s.sourceName}`,i=t.get(o)??{count:0,level:s.level};i.count+=1,t.set(o,i)}if(t.size===0)n.push(" * :root tokens: NONE resolved");else{n.push(` * :root tokens (${r.tokens.size}):`);for(let[s,{count:o,level:i}]of t)n.push(` * ${o} from ${e(s)} (${i})`)}let a=r.baseStylesheet;if(a.css!==void 0)n.push(` * base CSS: ${e(a.sourceNamespace??"")}/base-stylesheet (${a.css.length} bytes, ${a.scope})`);else{n.push(" *"),n.push(" * !! WARNING: NO BASE STYLESHEET \u2014 this file contains only :root tokens."),n.push(" * !! Pages will appear UNSTYLED.");for(let s of r.warnings)n.push(` * !! ${e(s)}`);n.push(" * !! Full diagnostics: /.well-known/kanonak-render")}if(r.look){let s=r.look.sourceClass;n.push(` * look: ${e(s.publisher)}/${e(s.package_)}/${e(s.name)}`)}return`/*
|
|
147
|
+
`):void 0}renderHero(e,n,t){let a=b=>{let m=q(e,b);return m instanceof te?m.object===!0:m instanceof H&&m.object==="true"},s=a(ds),o=!s&&a(us),i=s||o,l=[`<header class="${s?"kan-hero kan-hero-has-avatar":o?"kan-hero kan-hero-has-icon":"kan-hero"}">`];if(i){let b=this.svgUrlForSubject(n,t),m=s?"kan-hero-avatar":"kan-hero-icon";l.push(`<img class="${m}" src="${g(b)}" alt="" loading="lazy"/>`),l.push('<div class="kan-hero-text">')}let d=x(e,os);if(d){let b=this.readPropertyValueText(n,d);b&&l.push(`<span class="kan-hero-eyebrow">${g(gn(b)??b)}</span>`)}let f=x(e,ss),p="";f&&(p=this.readPropertyValueText(n,f)??""),p||(p=N(this.catalog,n).label),l.push(`<h1 class="kan-hero-title">${g(gn(p)??p)}</h1>`);let k=x(e,is);if(k){let b=this.readPropertyValueText(n,k);b&&l.push(`<p class="kan-hero-subtitle">${g(gn(b)??b)}</p>`)}let h=x(e,Et);if(h){let b=this.readPropertyValueReferences(n,h);if(b.length>0){let m=b.map($=>this.renderBadge($,Et,t)).join("");l.push(`<div class="kan-hero-badges">${m}</div>`)}}return i&&l.push("</div>"),l.push("</header>"),l.join(`
|
|
148
|
+
`)}renderPropertyList(e,n,t){let a=x(e,oe);if(!a)return"<!-- LookRenderer: PropertyList missing look.source -->";let s=this.readLabelForUri(a)??a.name,o=q(n,a),i=this.gatherValueItems(o),c=i.length>0?i.map(l=>`<li>${this.renderInlineValue(l,oe,t)}</li>`).join(""):'<li class="kan-empty">(no values)</li>';return['<section class="kan-property-list">',`<h3 class="kan-property-list-title">${g(s)}</h3>`,`<ul class="kan-property-list-items">${c}</ul>`,"</section>"].join(`
|
|
149
|
+
`)}renderPropertyTable(e,n,t,a=""){let s=x(e,oe);if(!s)return"<!-- LookRenderer: PropertyTable missing look.source -->";let o=this.gatherValueItems(q(n,s)).filter(d=>d instanceof V);if(o.length===0)return"";let i=this.readLabelForUri(s)??s.name,c=a?`${a}.${s.name}`:s.name,l=x(e,Hr);return this.renderEmbeddedTable(o,t,i,c,l)}renderEmbeddedTable(e,n,t,a,s){let o=[],i=new Set;for(let m of e)for(let $ of m.statement){let v=$.predicate?.subject;if(!v||this.isMetaPredicate(v))continue;let _=`${v.publisher}/${v.package_}/${v.name}`;i.has(_)||(i.add(_),o.push({uri:{publisher:v.publisher,package_:v.package_,name:v.name},label:this.readLabelForUri(v)??v.name}))}if(o.length===0)return"";let c=e.map(m=>N(this.catalog,m).label),l=e.some((m,$)=>c[$]!==""&&c[$]!==m.name),d=!!a,f=(d?'<th class="kan-anchor-col"></th>':"")+(l?"<th></th>":"")+o.map(m=>`<th>${g(m.label)}</th>`).join(""),p=e.map((m,$)=>{let v=d&&m.name?`${a}.${m.name}`:"",_=v?` id="${g(v)}"`:"",K=d?`<td class="kan-anchor-col">${v?this.anchorLink(v):""}</td>`:"",O=l?`<th scope="row">${g(c[$]??"")}</th>`:"",U=o.map(D=>{let L=q(m,D.uri);return L?`<td>${this.tableCellValue(L,n,s)}</td>`:"<td></td>"}).join("");return`<tr${_}>${K}${O}${U}</tr>`}).join(""),k=d&&a?` id="${g(a)}"`:"",h=d&&a?this.anchorLink(a):"",b=t?`<caption>${g(t)}${h}</caption>`:"";return`<table class="kan-property-table"${k}>${b}<thead><tr>${f}</tr></thead><tbody>${p}</tbody></table>`}tableCellValue(e,n,t){if(t&&M(t,yt)){if(e instanceof re)return this.barMarkup(String(e.object));if(e instanceof H&&Number.isFinite(Number(e.object)))return this.barMarkup(e.object)}if(e instanceof Ve)return this.statementToMarkdownHtml(e,n);if(e instanceof H)return Ft(e.object);if(e instanceof re||e instanceof te)return g(String(e.object));if(e instanceof I&&e.object instanceof j)return this.detailReferenceLink(e.object,n);if(e instanceof z)return this.renderEmbeddedTable([e.object],n);if(e instanceof C){let a=e.object??[],s=a.filter(o=>o instanceof V);return s.length>0&&s.length===a.length?this.renderEmbeddedTable(s,n):a.map(o=>o instanceof j?this.detailReferenceLink(o,n):o instanceof V?this.renderEmbeddedTable([o],n):g(String(o))).filter(o=>o).join(", ")}return""}statementToMarkdownHtml(e,n){let t=new Map,a;if(e instanceof Ve?a=this.resolveMarkdownLinks(e,n,t):e instanceof H&&(a=e.object),!a)return"";let s=this.codeHighlighter(),o=We(a,{highlight:(i,c)=>s.highlight(i,c)});for(let[i,c]of t){let l=new RegExp('(<a href="'+It(i)+'">)([^<]*)(</a>)',"g");o=o.replace(l,`$1<img class="kan-md-chip" src="${g(c)}" alt="" loading="lazy">$2$3`)}return o}renderBadgeRow(e,n,t){let a=x(e,oe);if(!a)return"<!-- LookRenderer: BadgeRow missing look.source -->";let s=this.readPropertyValueReferences(n,a);return s.length===0?"":`<div class="kan-badge-row">${s.map(i=>this.renderBadge(i,oe,t)).join("")}</div>`}renderChipRow(e,n,t){let a=In(e,gs);if(a.length===0)return"<!-- LookRenderer: ChipRow has no look.chips -->";let s=[];for(let o of a){let i=q(n,o);if(!i)continue;let c=this.readLabelForUri(o)??o.name,l=this.renderStatementInlineValue(i,o,t);l&&s.push(`<span class="kan-chip"><span class="kan-chip-key">${g(c)}</span> <span class="kan-chip-val">${l}</span></span>`)}return s.length===0?"":`<div class="kan-chip-row">${s.join("")}</div>`}async renderReferenceList(e,n,t){let a=In(e,Lt);if(a.length===0)return"<!-- LookRenderer: ReferenceList has no look.entries -->";let s=this.readEmbeddedCarrier(e,vt),o=this.readEmbeddedCarrier(e,Br),i=[];for(let c of a){let l=this.readPropertyValueReferences(n,c);if(l.length===0)continue;let d=this.readLabelForUri(c)??c.name;if(s){let f=[];for(let k of l)f.push(await this.renderDetailRow(k,s,o,t));let p=f.filter(k=>k).join("");p&&i.push(`<dt>${g(d)}</dt><dd><ul class="kan-ref-rows">${p}</ul></dd>`)}else{let f=l.map(p=>this.renderReferenceLink(p,Lt,t)).join(", ");i.push(`<dt>${g(d)}</dt><dd>${f}</dd>`)}}return i.length===0?"":`<dl class="kan-reference-list">${i.join("")}</dl>`}async renderDetailRow(e,n,t,a){let s=Z(this.catalog,{publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name,...e.subject.version?{version:e.subject.version}:{}});if(!s)return"";let o=await this.evaluateCarrier(n,s)??N(this.catalog,s).label,i="";if(t){let f=await this.evaluateCarrier(t,s);f&&(i=`<span class="kan-ref-badge">${g(f)}</span>`)}let c=`<span class="kan-ref-text">${g(o)}</span>${i}`;if(!this.isLinkable(ne(s),a))return`<li class="kan-ref-row"><span class="kan-ref-rowlink">${c}</span></li>`;let l=this.hrefForSubject(s,a),d=this.svgUrlForSubject(s,a);return`<li class="kan-ref-row"><a class="kan-ref-rowlink" href="${g(l)}"><img class="kan-ref-icon" src="${g(d)}" alt="" loading="lazy"/>`+c+"</a></li>"}readPropertyValueText(e,n){let t=q(e,n);if(t){if(t instanceof H)return t.object;if(t instanceof re||t instanceof te)return String(t.object);if(t instanceof I){let a=t.object;return this.readLabelForUri({publisher:a.subject.publisher,package_:a.subject.package_,name:a.subject.name})??a.subject.name}if(t instanceof z)return this.readEmbeddedText(t.object,0)||void 0;if(t instanceof C)return(t.object??[]).map(s=>s instanceof j?this.readLabelForUri({publisher:s.subject.publisher,package_:s.subject.package_,name:s.subject.name})??s.subject.name:s instanceof V?this.readEmbeddedText(s,0):String(s)).filter(s=>s).join(", ")}}readEmbeddedText(e,n){if(n>=Rt)return"\u2026";let t=[];for(let a of e.statement){let s=a.predicate?.subject;if(!(s&&M(s,Ce)))if(a instanceof H)t.push(a.object);else if(a instanceof re||a instanceof te)t.push(String(a.object));else if(a instanceof I){let o=a.object;t.push(this.readLabelForUri({publisher:o.subject.publisher,package_:o.subject.package_,name:o.subject.name})??o.subject.name)}else a instanceof z&&t.push(this.readEmbeddedText(a.object,n+1))}return t.filter(a=>a).join(", ")}readPropertyValueReferences(e,n){let t=q(e,n);if(!t)return[];if(t instanceof I)return[t.object];if(t instanceof C){let a=[];for(let s of t.object??[])s instanceof j&&a.push(s);return a}return[]}gatherValueItems(e){return e?e instanceof C?e.object??[]:e instanceof I?[e.object]:e instanceof z?[e.object]:e instanceof H?[e.object]:e instanceof re||e instanceof te?[e.object]:[]:[]}renderInlineValue(e,n,t,a=0){return e instanceof j?this.renderReferenceLink(e,n,t):e instanceof V?this.renderEmbeddedInline(e,t,a):typeof e=="string"?g(e):typeof e=="number"||typeof e=="boolean"?g(String(e)):""}renderStatementInlineValue(e,n,t,a=0){return e instanceof H?g(e.object):e instanceof re||e instanceof te?g(String(e.object)):e instanceof I?this.renderReferenceLink(e.object,n,t):e instanceof z?this.renderEmbeddedInline(e.object,t,a):e instanceof C?(e.object??[]).map(o=>this.renderInlineValue(o,n,t,a)).filter(o=>o).join(", "):""}renderEmbeddedInline(e,n,t=0){if(t>=Rt)return"\u2026";let a=[];for(let s of e.statement){let o=s.predicate?.subject;if(!o||M(o,Ce))continue;let i=this.readLabelForUri({publisher:o.publisher,package_:o.package_,name:o.name})??o.name,c=this.renderStatementInlineValue(s,o,n,t+1);c&&a.push(`<dt>${g(i)}</dt><dd>${c}</dd>`)}return a.length?`<dl class="kan-embedded">${a.join("")}</dl>`:""}renderReferenceLink(e,n,t){let a=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name;if(!this.isLinkable(e.subject.publisher,t))return`<span class="kan-link-plain">${g(a)}</span>`;let s=this.urlForReference(e,n,t);return`<a class="kan-link" href="${g(s)}">${g(a)}</a>`}isLinkable(e,n){return this.publisherFirst||e===n}renderBadge(e,n,t){let a=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name,s=this.readCommentForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name}),o=s?` title="${g(s)}"`:"";if(!this.isLinkable(e.subject.publisher,t))return`<span class="kan-badge"${o}>${g(a)}</span>`;let i=this.urlForReference(e,n,t);return`<a class="kan-badge" href="${g(i)}"${o}>${g(a)}</a>`}urlForReference(e,n,t){let a=n?this.getUrlFormForProperty(n):"=";return this.resourceHref({publisher:e.subject.publisher,package_:e.subject.package_,...e.subject.version?{version:e.subject.version}:{},name:e.subject.name},t,a)}getUrlFormForProperty(e){let n=Z(this.catalog,e);if(!n)return"=";let t=ee(n,ms);return t==="*"||t==="^"||t==="~"||t==="="?t:"="}readLabelForUri(e){let n=Z(this.catalog,e);if(n)return N(this.catalog,n).label}readCommentForUri(e){let n=Z(this.catalog,e);if(n)return N(this.catalog,n).summary}};function ks(r){let e=new Map;for(let n of r.statement){if(!(n instanceof z)||!$e(n,pn.publisher,pn.package_,pn.name))continue;let t=n.object;for(let a of t.statement){if(!(a instanceof H))continue;let s=a.predicate?.subject?.name;if(!s)continue;let o=a.object;e.has(s)||e.set(s,o)}}return e}function cn(r){for(let e of r.statement)if(e instanceof z&&$e(e,fn.publisher,fn.package_,fn.name))return e.object}function Cn(r){for(let e of r.statement){if(!(e instanceof C)||!$e(e,Un.publisher,Un.package_,Un.name))continue;let n=[];for(let t of e.object??[])t instanceof V&&n.push(t);return n}return[]}function He(r){for(let e of r.statement)if(e instanceof I&&!(!e.predicate?.subject||!M(e.predicate.subject,Ce))&&e.object instanceof j){let n=e.object.subject;return{publisher:n.publisher,package_:n.package_,name:n.name}}}function x(r,e){for(let n of r.statement)if(n instanceof I&&$e(n,e.publisher,e.package_,e.name)&&n.object instanceof j){let t=n.object.subject;return{publisher:t.publisher,package_:t.package_,name:t.name}}}function In(r,e){for(let n of r.statement){if(!(n instanceof C)||!$e(n,e.publisher,e.package_,e.name))continue;let t=[];for(let a of n.object??[])a instanceof j&&t.push({publisher:a.subject.publisher,package_:a.subject.package_,name:a.subject.name});return t}return[]}function q(r,e){for(let n of r.statement)if($e(n,e.publisher,e.package_,e.name))return n}function ee(r,e){for(let n of r.statement)if(n instanceof H&&$e(n,e.publisher,e.package_,e.name))return n.object}function ln(r,e){for(let n of r.statement)if(n instanceof z&&$e(n,e.publisher,e.package_,e.name))return n.object}function Ot(r,e){for(let n of r.statement)if(n instanceof re&&$e(n,e.publisher,e.package_,e.name))return n.object}function hs(r,e){for(let n of r.statement)if(n instanceof te&&$e(n,e.publisher,e.package_,e.name))return n.object===!0;return!1}function bs(r){for(let e of he(r))if(M(e.subject,ya)||M(e.subject,$a))return!0;return!1}function he(r){let e=[];for(let n of r.statement)if(n instanceof I){if(!n.predicate?.subject||!M(n.predicate.subject,Ce))continue;n.object instanceof j&&e.push(n.object)}else if(n instanceof C){if(!n.predicate?.subject||!M(n.predicate.subject,Ce))continue;for(let t of n.object??[])t instanceof j&&e.push(t)}return e}function un(r){let e=[];for(let n of r.statement)if(n instanceof I){if(!n.predicate?.subject||!M(n.predicate.subject,Kt))continue;n.object instanceof j&&e.push(n.object)}else if(n instanceof C){if(!n.predicate?.subject||!M(n.predicate.subject,Kt))continue;for(let t of n.object??[])t instanceof j&&e.push(t)}return e}function Z(r,e){let n="version"in e?e.version:void 0;if(n){let t=`${e.publisher}/${e.package_}@${n.major}.${n.minor}.${n.patch}`;for(let a of r)if(a instanceof Y&&a.name===e.name&&a.namespace===t)return a}for(let t of r){if(!(t instanceof Y)||t.name!==e.name)continue;if((t.namespace||"").startsWith(`${e.publisher}/${e.package_}@`))return t}}function $e(r,e,n,t){let a=r.predicate?.subject;return a?a.publisher===e&&a.package_===n&&a.name===t:!1}function M(r,e){return r.publisher===e.publisher&&r.package_===e.package_&&r.name===e.name}function X(r){return`${r.publisher}/${r.package_}/${r.name}`}function vs(r){let e=s=>s.replace(/\*\//g,"* /"),n=[];n.push(` * kanonak stylesheet \u2014 ${e(r.resource.namespace)}/${e(r.resource.name)}`),n.push(" *");let t=new Map;for(let s of r.tokens.values()){let o=`${s.sourceNamespace} ${s.sourceName}`,i=t.get(o)??{count:0,level:s.level};i.count+=1,t.set(o,i)}if(t.size===0)n.push(" * :root tokens: NONE resolved");else{n.push(` * :root tokens (${r.tokens.size}):`);for(let[s,{count:o,level:i}]of t)n.push(` * ${o} from ${e(s)} (${i})`)}let a=r.baseStylesheet;if(a.css!==void 0)n.push(` * base CSS: ${e(a.sourceNamespace??"")}/base-stylesheet (${a.css.length} bytes, ${a.scope})`);else{n.push(" *"),n.push(" * !! WARNING: NO BASE STYLESHEET \u2014 this file contains only :root tokens."),n.push(" * !! Pages will appear UNSTYLED.");for(let s of r.warnings)n.push(` * !! ${e(s)}`);n.push(" * !! Full diagnostics: /.well-known/kanonak-render")}if(r.look){let s=r.look.sourceClass;n.push(` * look: ${e(s.publisher)}/${e(s.package_)}/${e(s.name)}`)}return`/*
|
|
150
150
|
${n.join(`
|
|
151
151
|
`)}
|
|
152
|
-
*/`}function ne(r){let e=r.namespace||"",n=e.indexOf("/");return n>=0?e.substring(0,n):e}function g(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function
|
|
152
|
+
*/`}function ne(r){let e=r.namespace||"",n=e.indexOf("/");return n>=0?e.substring(0,n):e}function g(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Re(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Ut(r,e){return e==null?"":Ae(e)?e.value:r==="string-literal"?typeof e=="string"?e:String(e):Array.isArray(e)?e.map(n=>Ae(n)?n.value:Re(typeof n=="string"?n:String(n))).join(""):Re(typeof e=="string"?e:String(e))}function xt(r){if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Ae(r))return r.value;if(Array.isArray(r))return r.map(xt).filter(n=>n!=="").join(", ");if(r instanceof j)return r.subject.name;if(r instanceof Y||r instanceof V)return r.name??"";let e=r.value;return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Fn(r,e){return r.length<=e?r:r.slice(0,e).replace(/\s+\S*$/,"")+"\u2026"}function Ct(r){return r.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function It(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ft(r){let e=gn(r);return g(e||r)}function gn(r){let e=/^(\d{4})-(\d{2})-(\d{2})([T ]\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?$/.exec(r.trim());if(!e)return;let n=Date.parse(r);if(!Number.isFinite(n))return;let t=new Date(n),s=`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getUTCMonth()]} ${t.getUTCDate()}, ${t.getUTCFullYear()}`;if(!e[4])return s;let o=t.getUTCHours(),i=(o+11)%12+1,c=o>=12?"PM":"AM";return`${s} \xB7 ${i}:${String(t.getUTCMinutes()).padStart(2,"0")} ${c} UTC`}function dn(r){if(!r)return"";let e=/^(\d{4})-(\d{2})-(\d{2})/.exec(r);return e?`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][parseInt(e[2],10)-1]??e[2]} ${parseInt(e[3],10)}`:r}function ys(){return new Set(mn.bandDispatchUris().map(r=>`${r.publisher}/${r.package_}/${r.name}`))}export{G as a,qs as b,Oe as c,N as d,We as e,Ae as f,Ke as g,Ye as h,rn as i,mn as j,ys as k};
|