markdown-design-doc-viewer-embed 1.5.4 → 1.5.5
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/README.ja.md +53 -1
- package/README.md +53 -1
- package/export.js +1 -1
- package/index.js +545 -30
- package/package.json +1 -1
- package/react.js +78 -10
- package/types/embed/designDocList.d.ts +39 -0
- package/types/embed/react.d.ts +13 -2
- package/types/embed/viewer.d.ts +43 -1
- package/types/src/shared/l10n.d.ts +10 -0
- package/viewer.css +9 -0
package/README.ja.md
CHANGED
|
@@ -81,6 +81,58 @@ viewer.destroy();
|
|
|
81
81
|
| `messageWrapWidth` | `40` | シーケンス図の矢印のラベルをこの文字数(全角は 2 文字と数える)で改行します。`0` にすると改行しません。 |
|
|
82
82
|
| `onOpenLink` | `openLinkInNewTab` | `(href) => void`: 設計書のリンク(ビューアがスクロールする `#見出し` 以外)を開きます。既定では http(s) と mailto のリンクを新しいタブで開き、ほかは何もしません。 |
|
|
83
83
|
| `onRevealLine` | | `(line) => void`: ビューアでダブルクリックした Markdown の行(0 始まり)で呼ばれます(エディタでその行を表示するなど)。ないときはダブルクリックしても何もしません。 |
|
|
84
|
+
| `compareWith` | | 設計書の別の版(古い版など)の Markdown。指定すると、`markdown` をその版からの差分付きで表示します([版との差分を表示する](#版との差分を表示する))。ないときは設計書だけを表示します。 |
|
|
85
|
+
| `compareLabel` | | 比べる版の説明(`バージョン 3(2026-11-01)と比較` など)。差分バーに表示します。 |
|
|
86
|
+
| `onCloseDiff` | | `() => void`: 差分バーを閉じたとき(× ボタン)に呼ばれます(`compareWith` を外すなど)。ないときは、`compareWith` が変わるまでビューアが設計書だけを表示します。 |
|
|
87
|
+
|
|
88
|
+
## 版との差分を表示する
|
|
89
|
+
|
|
90
|
+
```tsx
|
|
91
|
+
<DesignDocViewer
|
|
92
|
+
markdown={latest}
|
|
93
|
+
compareWith={compared?.markdown}
|
|
94
|
+
compareLabel={compared ? `バージョン ${compared.version} と比較` : undefined}
|
|
95
|
+
onCloseDiff={() => setCompared(undefined)}
|
|
96
|
+
style={{ height: 600 }}
|
|
97
|
+
/>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`compareWith` に設計書の別の版の Markdown を渡すと、拡張の Git の版との比較と同じく、`markdown` をその版からの差分付きで表示します。追加・変更・削除したブロックに印を付け、変更したブロックでは変わった語を示し、変更した図の下には変更前の図を(折りたたんで)表示します。下部の差分バーには、比べている版(`compareLabel`)、変更したブロックの数と、変更の間を移動するボタンを表示します。古い版から新しい版への変更を見るときは、新しい版を `markdown` に、古い版を `compareWith` に渡します。
|
|
101
|
+
|
|
102
|
+
- `compareWith` を外す(`undefined` にする)と、設計書だけの表示に戻ります。
|
|
103
|
+
- 差分バーの × ボタンは `onCloseDiff` を呼びます。利用側はそこで `compareWith` を外します。`onCloseDiff` がないときは、`compareWith` が変わるまでビューアが自分で設計書だけを表示します。
|
|
104
|
+
- ワイヤーフレームのファイルは設計書のものを使い、比べません。
|
|
105
|
+
- `exportHtml` も `compareWith` と `compareLabel` を受け取ります。書き出したファイルは差分を表示し、差分バーで差分を隠したり表示したりできます。
|
|
106
|
+
|
|
107
|
+
## 設計書一覧
|
|
108
|
+
|
|
109
|
+
```tsx
|
|
110
|
+
import { DesignDocList } from 'markdown-design-doc-viewer-embed/react';
|
|
111
|
+
|
|
112
|
+
<DesignDocList
|
|
113
|
+
documents={[
|
|
114
|
+
{ markdown: loginMarkdown, href: '/docs/login', file: 'login.md' },
|
|
115
|
+
{ markdown: frontMatterOnly, href: '/docs/screens/top', folder: 'screens', file: 'top.md' },
|
|
116
|
+
]}
|
|
117
|
+
onOpenLink={(href) => router.push(href)}
|
|
118
|
+
/>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`DesignDocList`(React を使わないときは `createDesignDocList(container, options)`)は、拡張・デスクトップアプリの設計書一覧と同じ一覧を表示します。フォルダごとの表に、文書のタイトルとファイル名、front matter の版数・プロダクト・ステータス・更新日(どれかの文書が持つ列)を並べ、絞り込みの入力欄と並べ替えられる列見出しが付きます。ビューアと違って高さは要らず、一覧の高さで表示します。`createDesignDocList` は `ready`、`update(options)`(絞り込みと並び順は保ちます)、`destroy()` を返します。
|
|
122
|
+
|
|
123
|
+
- 文書の `markdown` は Markdown 全体か、front matter だけでもかまいません。タイトルとメタ情報はビューアと同じように読み取ります。
|
|
124
|
+
- `documents` が変わると表示し直すので、変わらない間は描画のたびに同じ配列を渡してください(`useMemo`)。
|
|
125
|
+
|
|
126
|
+
| オプション | 既定値 | |
|
|
127
|
+
| --- | --- | --- |
|
|
128
|
+
| `documents` | (必須) | `{ markdown, href, folder?, file?, title? }[]`: 文書。`href` はタイトルのリンク。`folder`(フォルダの間は `/`、最上位は `''`)ごとに表と見出しを分けます。`file` はタイトルの横に出します。`title` は Markdown のタイトル(front matter の `title`、最初の `#` の見出し、`file`、または `href`)の代わりに使います。 |
|
|
129
|
+
| `title` | `設計書一覧`(`Design Docs`) | 一覧の見出し。 |
|
|
130
|
+
| `fileLabel` | `ファイル`(`File`) | `file` の列の見出し(ページの番号など)。 |
|
|
131
|
+
| `filterPlaceholder` | | 絞り込みの入力欄のプレースホルダ。既定ではタイトル・ファイル名・メタ情報を挙げます。 |
|
|
132
|
+
| `empty` | | 文書がないときの文言。既定は拡張と同じです。 |
|
|
133
|
+
| `keepOrder` | `false` | フォルダと文書を、名前順ではなく `documents` の順(フォルダは最初の文書の位置)に並べます。 |
|
|
134
|
+
| `lang`, `theme`, `limitContentWidth` | ビューアと同じ | ビューアと同じオプション([オプション](#オプション))。 |
|
|
135
|
+
| `onOpenLink` | `openLinkInPage` | `(href) => void`: タイトルのリンクを開きます。既定ではページをそのリンクへ移します(`javascript:`・`data:`・`vbscript:` のリンクを除く)。`#` で始まるリンクは、代わりに一覧の中のその位置へスクロールします。 |
|
|
84
136
|
|
|
85
137
|
## HTML ファイルに書き出す
|
|
86
138
|
|
|
@@ -114,6 +166,7 @@ setTimeout(() => URL.revokeObjectURL(link.href), 1000);
|
|
|
114
166
|
| `resolveImage` | `baseUrl` から解決 | `(path) => string \| Promise<string>`: 設計書の画像(URL ではなくパス)を、ファイルの中で何にするか。埋め込むなら data URI、リンクにするなら URL を返します。画像の `src` からクエリとフラグメントを除いたもの(`icons.svg#save` なら `icons.svg`)を受け取り、返した URL にはそれを付け直します。失敗したときは `src` のままにします。 |
|
|
115
167
|
| `baseUrl`, `readFile` | | ビューアと同じです。ワイヤーフレームのファイルと、`resolveImage` がないときの画像に使います。 |
|
|
116
168
|
| `lang` | ブラウザの言語 | `'en'` または `'ja'`: ファイルの文言の言語。 |
|
|
169
|
+
| `compareWith`, `compareLabel` | | ビューアと同じです。書き出したファイルは `compareWith` からの差分を表示し、差分バーで隠したり表示したりできます。 |
|
|
117
170
|
| `diagramLook`, `splitMinWidth`, `toc`, `limitContentWidth`, `stickyTableHeader`, `tableTreeHighlight`, `frontMatter`, `headingNumbers`, `messageWrapWidth` | ビューアと同じ | 書き出すファイルについての、ビューアと同じオプション([オプション](#オプション))。 |
|
|
118
171
|
|
|
119
172
|
## スタイル
|
|
@@ -130,7 +183,6 @@ setTimeout(() => URL.revokeObjectURL(link.href), 1000);
|
|
|
130
183
|
- ワイヤーフレームの `@font-face` は、Shadow DOM の中ではフォントを読み込まないので、ページに追加します(`document.adoptedStyleSheets`)。
|
|
131
184
|
- 拡大した図と脚注のポップアップは、ページ全体の上に表示します(`position: fixed`)。
|
|
132
185
|
- 画像は同期で解決します(`resolveResource`)。URL から読むようにしてください。
|
|
133
|
-
- リビジョンとの差分(拡張の Git の比較)は表示できません。
|
|
134
186
|
|
|
135
187
|
## 書き方
|
|
136
188
|
|
package/README.md
CHANGED
|
@@ -81,6 +81,58 @@ viewer.destroy();
|
|
|
81
81
|
| `messageWrapWidth` | `40` | Breaks the labels of the arrows of the sequence diagrams into lines at this many characters (a full-width one counts as 2). `0` does not break them. |
|
|
82
82
|
| `onOpenLink` | `openLinkInNewTab` | `(href) => void`: opens a link of the document (other than `#heading`, which the viewer scrolls to). By default, http(s) and mailto links open in a new tab, and the others do nothing. |
|
|
83
83
|
| `onRevealLine` | | `(line) => void`: called with the line (0-based) of the Markdown double-clicked in the viewer, e.g. to show it in an editor. Without it, a double-click does nothing. |
|
|
84
|
+
| `compareWith` | | The Markdown of another version of the document (an older one, for instance): the viewer shows `markdown` with its differences from it ([Showing the differences from a version](#showing-the-differences-from-a-version)). Without it, the document alone. |
|
|
85
|
+
| `compareLabel` | | What the document is compared with (e.g. `Compared with version 3 (2026-11-01)`), shown on the bar of the differences. |
|
|
86
|
+
| `onCloseDiff` | | `() => void`: called when the bar of the differences is closed (its × button), e.g. to remove `compareWith`. Without it, the viewer shows the document alone until `compareWith` changes. |
|
|
87
|
+
|
|
88
|
+
## Showing the differences from a version
|
|
89
|
+
|
|
90
|
+
```tsx
|
|
91
|
+
<DesignDocViewer
|
|
92
|
+
markdown={latest}
|
|
93
|
+
compareWith={compared?.markdown}
|
|
94
|
+
compareLabel={compared ? `Compared with version ${compared.version}` : undefined}
|
|
95
|
+
onCloseDiff={() => setCompared(undefined)}
|
|
96
|
+
style={{ height: 600 }}
|
|
97
|
+
/>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
With `compareWith`, the Markdown of another version of the document, the viewer shows `markdown` with its differences from that version, the same as the comparison with a Git revision of the extension: the blocks added, changed and deleted are marked, with the words changed in a changed block, the diagram before the change under a changed diagram (folded), and a bar at the bottom with what it is compared with (`compareLabel`), the number of blocks changed, and buttons to go from one change to the next. To see the changes of a newer version from an older one, give the newer one as `markdown` and the older one as `compareWith`.
|
|
101
|
+
|
|
102
|
+
- Without `compareWith` (or with `undefined`), the document is shown alone again.
|
|
103
|
+
- The × button of the bar calls `onCloseDiff`, with which the app removes `compareWith`. Without `onCloseDiff`, the viewer shows the document alone by itself, until `compareWith` changes.
|
|
104
|
+
- The files of the wireframes are those of the document: they are not compared.
|
|
105
|
+
- `exportHtml` takes `compareWith` and `compareLabel` too: the exported file shows the differences, with a bar that hides and shows them.
|
|
106
|
+
|
|
107
|
+
## Listing design documents
|
|
108
|
+
|
|
109
|
+
```tsx
|
|
110
|
+
import { DesignDocList } from 'markdown-design-doc-viewer-embed/react';
|
|
111
|
+
|
|
112
|
+
<DesignDocList
|
|
113
|
+
documents={[
|
|
114
|
+
{ markdown: loginMarkdown, href: '/docs/login', file: 'login.md' },
|
|
115
|
+
{ markdown: frontMatterOnly, href: '/docs/screens/top', folder: 'screens', file: 'top.md' },
|
|
116
|
+
]}
|
|
117
|
+
onOpenLink={(href) => router.push(href)}
|
|
118
|
+
/>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`DesignDocList` (`createDesignDocList(container, options)` without React) shows a list of design documents, the same as the list of the design docs of the extension and the desktop app: a table for each folder, with the title and file name of each document and the version, product, status and updated date of its front matter (the columns that a document has), a search box and sortable columns. Unlike the viewer, it does not need a height: it is as high as the list. `createDesignDocList` returns `ready`, `update(options)` (which keeps the search and the order) and `destroy()`.
|
|
122
|
+
|
|
123
|
+
- `markdown` of a document is its Markdown, or only its front matter: its title and entries are read from it as the viewer does.
|
|
124
|
+
- `documents` shows the list again when it changes: keep it the same across renders while it does not change (`useMemo`).
|
|
125
|
+
|
|
126
|
+
| Option | Default | |
|
|
127
|
+
| --- | --- | --- |
|
|
128
|
+
| `documents` | (required) | `{ markdown, href, folder?, file?, title? }[]`: the documents. `href` is the link of the title. `folder` (with `/` between folders, `''` at the top) gives a table and a heading to each folder. `file` is shown next to the title. `title` replaces that of the Markdown (the `title` of its front matter, its first `#` heading, `file`, or `href`). |
|
|
129
|
+
| `title` | `Design Docs` | The heading of the list. |
|
|
130
|
+
| `fileLabel` | `File` | The header of the column of `file` (e.g. the number of a page). |
|
|
131
|
+
| `filterPlaceholder` | | The placeholder of the search box. By default, it names the title, the file name and the metadata. |
|
|
132
|
+
| `empty` | | The text without documents. By default, the one of the extension. |
|
|
133
|
+
| `keepOrder` | `false` | Lists the folders and the documents in the order of `documents` (a folder where its first document is), instead of by name. |
|
|
134
|
+
| `lang`, `theme`, `limitContentWidth` | as the viewer | The same as the options of the viewer ([Options](#options)). |
|
|
135
|
+
| `onOpenLink` | `openLinkInPage` | `(href) => void`: opens the link of a title. By default, goes to it in the page (except `javascript:`, `data:` and `vbscript:` links). A link that starts with `#` scrolls the list to that fragment instead. |
|
|
84
136
|
|
|
85
137
|
## Exporting to an HTML file
|
|
86
138
|
|
|
@@ -114,6 +166,7 @@ setTimeout(() => URL.revokeObjectURL(link.href), 1000);
|
|
|
114
166
|
| `resolveImage` | resolved from `baseUrl` | `(path) => string \| Promise<string>`: what an image of the document (a path, not a URL) becomes in the file: a data URI that embeds it, or a URL that links it. It is given the `src` of the image without its query and fragment (`icons.svg` of `icons.svg#save`), which are added back to a URL. When it fails, the `src` is kept. |
|
|
115
167
|
| `baseUrl`, `readFile` | | As for the viewer: the files of the wireframes, and the images without `resolveImage`. |
|
|
116
168
|
| `lang` | that of the browser | `'en'` or `'ja'`: the language of the texts of the file. |
|
|
169
|
+
| `compareWith`, `compareLabel` | | As for the viewer: the exported file shows the differences from `compareWith`, with a bar that hides and shows them. |
|
|
117
170
|
| `diagramLook`, `splitMinWidth`, `toc`, `limitContentWidth`, `stickyTableHeader`, `tableTreeHighlight`, `frontMatter`, `headingNumbers`, `messageWrapWidth` | as for the viewer | As for the viewer (see [Options](#options)), for the exported file. |
|
|
118
171
|
|
|
119
172
|
## Styles
|
|
@@ -130,7 +183,6 @@ The modules can be imported on a server (Next.js, for instance): they use the do
|
|
|
130
183
|
- The `@font-face` rules of wireframes are added to the page (`document.adoptedStyleSheets`), since fonts are not loaded in a shadow root otherwise.
|
|
131
184
|
- The zoomed diagrams and the popups of the footnotes are over the whole page (`position: fixed`).
|
|
132
185
|
- Images are resolved synchronously (`resolveResource`): read them from URLs.
|
|
133
|
-
- The differences from a revision (the extension's Git comparison) are not shown.
|
|
134
186
|
|
|
135
187
|
## Writing linked documents
|
|
136
188
|
|
package/export.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// embed/exportAssets.ts
|
|
2
2
|
var webviewCss = '.seqnotes-viewer{--seqnotes-accent: var(--vscode-textLink-activeForeground, #3794ff);--seqnotes-accent-bg: color-mix(in srgb, var(--seqnotes-accent) 12%, transparent);--seqnotes-current: var(--vscode-editorLineNumber-activeForeground, #c6c6c6);--seqnotes-border: var(--vscode-panel-border, rgba(128, 128, 128, .35));--seqnotes-muted: var(--vscode-descriptionForeground, rgba(128, 128, 128, .9));--seqnotes-th-bg: var(--vscode-textCodeBlock-background, rgba(128, 128, 128, .1))}.seqnotes-viewer[data-seqnotes-theme=light]:not(.vscode-light,.vscode-high-contrast-light){color-scheme:light;--vscode-editor-background: #ffffff;--vscode-editor-foreground: #3b3b3b;--vscode-foreground: #3b3b3b;--vscode-descriptionForeground: #717171;--vscode-icon-foreground: #3b3b3b;--vscode-errorForeground: #f85149;--vscode-focusBorder: #005fb8;--vscode-textLink-foreground: #005fb8;--vscode-textLink-activeForeground: #005fb8;--vscode-textCodeBlock-background: #f3f3f3;--vscode-textBlockQuote-border: #e5e5e5;--vscode-textBlockQuote-foreground: #616161;--vscode-panel-border: #e5e5e5;--vscode-editorLineNumber-activeForeground: #171184;--vscode-editorWidget-background: #f8f8f8;--vscode-editorWidget-border: #c8c8c8;--vscode-widget-shadow: rgba(0, 0, 0, .16);--vscode-list-hoverBackground: #f2f2f2;--vscode-toolbar-hoverBackground: rgba(184, 184, 184, .31);--vscode-sash-hoverBorder: #005fb8;--vscode-inputValidation-warningBackground: #f6f5d2;--vscode-inputValidation-warningBorder: #b89500;--vscode-input-background: #ffffff;--vscode-input-foreground: #3b3b3b;--vscode-input-border: #cecece;--vscode-input-placeholderForeground: #767676;--vscode-charts-blue: #1a85ff;--vscode-charts-green: #388a34;--vscode-charts-purple: #652d90;--vscode-charts-red: #e51400;--vscode-charts-yellow: #bf8803;--vscode-editorGutter-addedBackground: #2ea043;--vscode-editorGutter-modifiedBackground: #005fb8;--vscode-editorGutter-deletedBackground: #f85149;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .25);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .2);--vscode-textPreformat-foreground: #3b3b3b;--vscode-textBlockQuote-background: #f8f8f8;--vscode-keybindingLabel-background: rgba(221, 221, 221, .4);--vscode-keybindingLabel-foreground: #3b3b3b;--vscode-keybindingLabel-border: rgba(204, 204, 204, .4);--vscode-keybindingLabel-bottomBorder: rgba(187, 187, 187, .4);--vscode-scrollbarSlider-background: rgba(100, 100, 100, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(0, 0, 0, .6)}.seqnotes-viewer[data-seqnotes-theme=dark]:is(.vscode-light,.vscode-high-contrast-light){color-scheme:dark;--vscode-editor-background: #1f1f1f;--vscode-editor-foreground: #cccccc;--vscode-foreground: #cccccc;--vscode-descriptionForeground: #9d9d9d;--vscode-icon-foreground: #cccccc;--vscode-errorForeground: #f85149;--vscode-focusBorder: #0078d4;--vscode-textLink-foreground: #4daafc;--vscode-textLink-activeForeground: #4daafc;--vscode-textCodeBlock-background: #2b2b2b;--vscode-textBlockQuote-border: #616161;--vscode-textBlockQuote-foreground: #cccccc;--vscode-panel-border: #2b2b2b;--vscode-editorLineNumber-activeForeground: #cccccc;--vscode-editorWidget-background: #202020;--vscode-editorWidget-border: #313131;--vscode-widget-shadow: rgba(0, 0, 0, .36);--vscode-list-hoverBackground: #2a2d2e;--vscode-toolbar-hoverBackground: rgba(90, 93, 94, .31);--vscode-sash-hoverBorder: #0078d4;--vscode-inputValidation-warningBackground: #352a05;--vscode-inputValidation-warningBorder: #b89500;--vscode-input-background: #313131;--vscode-input-foreground: #cccccc;--vscode-input-border: #3c3c3c;--vscode-input-placeholderForeground: #989898;--vscode-charts-blue: #3794ff;--vscode-charts-green: #89d185;--vscode-charts-purple: #b180d7;--vscode-charts-red: #f14c4c;--vscode-charts-yellow: #cca700;--vscode-editorGutter-addedBackground: #2ea043;--vscode-editorGutter-modifiedBackground: #0078d4;--vscode-editorGutter-deletedBackground: #f85149;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .2);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .2);--vscode-textPreformat-foreground: #d0d0d0;--vscode-textBlockQuote-background: #2b2b2b;--vscode-keybindingLabel-background: rgba(128, 128, 128, .17);--vscode-keybindingLabel-foreground: #cccccc;--vscode-keybindingLabel-border: rgba(51, 51, 51, .6);--vscode-keybindingLabel-bottomBorder: rgba(68, 68, 68, .6);--vscode-scrollbarSlider-background: rgba(121, 121, 121, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(191, 191, 191, .4)}html:has(>body[data-seqnotes-theme=light]:not(.vscode-light,.vscode-high-contrast-light)){color-scheme:light;background:#fff;scrollbar-color:rgba(100,100,100,.4) #ffffff}html:has(>body[data-seqnotes-theme=dark]:is(.vscode-light,.vscode-high-contrast-light)){color-scheme:dark;background:#1f1f1f;scrollbar-color:rgba(121,121,121,.4) #1f1f1f}.seqnotes-viewer{padding:2px 26px 40vh;font-family:var(--vscode-markdown-font-family, var(--vscode-font-family));font-size:var(--vscode-markdown-font-size, 14px);line-height:var(--vscode-markdown-line-height, 1.6);color:var(--vscode-editor-foreground);background:var(--vscode-editor-background);word-wrap:break-word}:where(.seqnotes-viewer) :is(h1,h2,h3,h4,h5,h6){font-weight:600;line-height:1.25;margin:1.4em 0 .6em}:where(.seqnotes-viewer) h1{font-size:2em;padding-bottom:.3em;border-bottom:1px solid var(--seqnotes-border)}:where(.seqnotes-viewer) h2{font-size:1.5em;padding-bottom:.3em;border-bottom:1px solid var(--seqnotes-border)}:where(.seqnotes-viewer) h3{font-size:1.25em}:where(.seqnotes-viewer) a{color:var(--vscode-textLink-foreground);text-decoration:none}:where(.seqnotes-viewer) a:hover{color:var(--vscode-textLink-activeForeground);text-decoration:underline}:where(.seqnotes-viewer) code{font-family:var(--vscode-editor-font-family, monospace);font-size:.9em;background:var(--vscode-textCodeBlock-background, rgba(128, 128, 128, .15));padding:.1em .35em;border-radius:3px}:where(.seqnotes-viewer) pre{background:var(--vscode-textCodeBlock-background, rgba(128, 128, 128, .15));padding:12px 16px;border-radius:4px;overflow:auto}:where(.seqnotes-viewer) pre code{background:none;padding:0}:where(.seqnotes-viewer) blockquote{margin:0 0 1em;padding:0 1em;border-left:4px solid var(--vscode-textBlockQuote-border, var(--seqnotes-border));color:var(--vscode-textBlockQuote-foreground, inherit)}:where(.seqnotes-viewer) table{border-collapse:collapse;margin-bottom:1em}:where(.seqnotes-viewer) :is(th,td){border:1px solid var(--seqnotes-border);padding:4px 10px}:where(.seqnotes-viewer) th{background:var(--seqnotes-th-bg)}.seqnotes-viewer.seqnotes-sticky-table-header thead th{position:sticky;top:0;z-index:1;background:linear-gradient(var(--seqnotes-th-bg),var(--seqnotes-th-bg)),var(--vscode-editor-background)}.seqnotes-cell-hidden{display:none}.seqnotes-cell-sub{display:block;font-size:.9em;font-weight:400;color:var(--seqnotes-muted)}.seqnotes-cell-sub code{font-size:1em}.seqnotes-tree-table{--seqnotes-tree-indent: 1.25em;--seqnotes-tree-line: color-mix(in srgb, var(--seqnotes-muted) 55%, transparent);--seqnotes-tree-y: calc(5px + .8em) }@supports (top: 1lh){.seqnotes-tree-table{--seqnotes-tree-y: calc(5px + .5lh) }}.seqnotes-tree-head{text-align:left}.seqnotes-tree-head,.seqnotes-tree-cell{padding-left:calc(10px + (var(--seqnotes-depth, 0) + 1) * var(--seqnotes-tree-indent))}.seqnotes-tree-cell{position:relative;white-space:nowrap}.seqnotes-tree-guides{position:absolute;top:-1px;bottom:-1px;left:10px;display:flex;pointer-events:none}.seqnotes-tree-guides>span{position:relative;flex:none;width:var(--seqnotes-tree-indent)}.seqnotes-tree-guides>span:before,.seqnotes-tree-guides>span:after{content:"";position:absolute;left:50%}.seqnotes-tree-pipe:before,.seqnotes-tree-tee:before{top:0;bottom:0;border-left:1px solid var(--seqnotes-tree-line)}.seqnotes-tree-elbow:before{top:0;height:var(--seqnotes-tree-y);border-left:1px solid var(--seqnotes-tree-line)}.seqnotes-tree-tee:after,.seqnotes-tree-elbow:after{top:var(--seqnotes-tree-y);width:calc(1.5 * var(--seqnotes-tree-indent) - 4px);border-top:1px solid var(--seqnotes-tree-line)}.seqnotes-tree-parent :is(.seqnotes-tree-tee,.seqnotes-tree-elbow):after{width:calc(var(--seqnotes-tree-indent) - .45em)}.seqnotes-tree-stem:before{top:calc(var(--seqnotes-tree-y) + .45em);bottom:0;border-left:1px solid var(--seqnotes-tree-line)}.seqnotes-tree-folded .seqnotes-tree-stem{display:none}.seqnotes-tree-toggle{position:absolute;top:calc(var(--seqnotes-tree-y) - .6em);left:calc(10px + var(--seqnotes-depth) * var(--seqnotes-tree-indent));display:grid;place-items:center;width:var(--seqnotes-tree-indent);height:1.2em;padding:0;border:none;border-radius:3px;background:none;color:var(--seqnotes-muted);font:inherit;cursor:pointer}.seqnotes-tree-toggle:hover{color:inherit;background:var(--seqnotes-accent-bg)}.seqnotes-tree-toggle:focus-visible{outline:1px solid var(--vscode-focusBorder, var(--seqnotes-accent))}.seqnotes-tree-toggle:before{content:"";width:.4em;height:.4em;margin-top:-.2em;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}.seqnotes-tree-folded .seqnotes-tree-toggle:before{margin:0 0 0 -.2em;transform:rotate(-45deg)}:where(.seqnotes-tree-table:not(.seqnotes-table-plain)) .seqnotes-tree-parent>td{background:color-mix(in srgb,var(--seqnotes-th-bg) 50%,transparent)}:where(.seqnotes-tree-table:not(.seqnotes-table-plain)) .seqnotes-tree-parent>.seqnotes-tree-cell{font-weight:600}.seqnotes-tree-hidden{display:none}.seqnotes-table-tree-highlight .seqnotes-tree-table:not(.seqnotes-table-plain)>tbody>.seqnotes-tree-related>td{background:color-mix(in srgb,var(--seqnotes-accent) 6%,transparent)}.seqnotes-table-tree-highlight .seqnotes-tree-table:not(.seqnotes-table-plain)>tbody>.seqnotes-tree-current>td{background:var(--seqnotes-accent-bg)}.seqnotes-table-plain-cell{position:relative;padding-right:34px}.seqnotes-table-plain-cell>.seqnotes-table-plain-toggle{top:50%;right:4px;transform:translateY(-50%)}.seqnotes-item-table:hover .seqnotes-table-plain-toggle{opacity:1}.seqnotes-table-plain-toggle[aria-pressed=true]{background:var(--seqnotes-accent-bg)}.seqnotes-table-plain :is(th,td).seqnotes-cell-hidden{display:table-cell}.seqnotes-table-plain :is(.seqnotes-cell-sub,.seqnotes-tree-guides,.seqnotes-tree-toggle){display:none}.seqnotes-table-plain :is(.seqnotes-tree-head,.seqnotes-tree-cell){padding-left:10px;white-space:normal}.seqnotes-table-plain .seqnotes-tree-head{text-align:revert}.seqnotes-table-plain .seqnotes-tree-hidden{display:table-row}@media print{.seqnotes-tree-hidden{display:table-row}.seqnotes-tree-toggle{visibility:hidden}.seqnotes-table-plain-toggle{display:none}.seqnotes-table-plain-cell{padding-right:10px}.seqnotes-tree-folded .seqnotes-tree-stem{display:block}.seqnotes-tree-parent :is(.seqnotes-tree-tee,.seqnotes-tree-elbow):after{width:calc(1.5 * var(--seqnotes-tree-indent) - 4px)}}.seqnotes-front-matter{font-size:.9em}.seqnotes-front-matter th,.seqnotes-front-matter td{padding:2px 8px}.seqnotes-front-matter th{text-align:left;font-weight:400;color:var(--seqnotes-muted);background:none}.seqnotes-front-matter td{white-space:pre-wrap}.seqnotes-doc-header{font-size:.9em;margin-bottom:1.5em}.seqnotes-doc-headline{display:flex;flex-wrap:wrap;overflow:hidden;border:1px solid var(--seqnotes-border);border-radius:4px}.seqnotes-doc-title,.seqnotes-doc-meta>div{min-width:0;margin:0 0 -1px -1px;padding:.5em 8px;border-left:1px solid var(--seqnotes-border);border-bottom:1px solid var(--seqnotes-border);overflow-wrap:anywhere}.seqnotes-doc-title{flex:1 1 auto;display:flex;align-items:center;font-weight:600;white-space:pre-wrap}.seqnotes-doc-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;margin:0 0 0 auto}.seqnotes-doc-meta:first-child{margin-left:0;justify-content:flex-start}.seqnotes-doc-meta>div{flex:1 1 auto;display:flex;align-items:center;gap:.5em}.seqnotes-doc-meta dt{color:var(--seqnotes-muted);white-space:nowrap}.seqnotes-doc-meta dd{min-width:0;margin:0;white-space:pre-wrap}.seqnotes-doc-status dd{padding:0 .6em;border:1px solid var(--seqnotes-border);border-radius:1em}.seqnotes-doc-header .seqnotes-front-matter{margin:.4em 0 0;font-size:1em}.seqnotes-doc-header details.seqnotes-doc-more{margin:0;padding:0;border:none;border-radius:0}.seqnotes-doc-headline+details.seqnotes-doc-more{margin-top:.6em}.seqnotes-doc-header .seqnotes-doc-more>summary{display:inline-flex;margin:0;padding:0;background:none;border:none;font-weight:400;color:var(--seqnotes-muted)}.seqnotes-doc-header .seqnotes-doc-more>summary:hover{color:var(--vscode-foreground, inherit)}.seqnotes-index table{width:100%}.seqnotes-index th{text-align:left}.seqnotes-index-file{color:var(--seqnotes-muted);font-family:var(--vscode-editor-font-family);font-size:.9em}.seqnotes-index-status span{padding:0 .6em;border:1px solid var(--seqnotes-border);border-radius:1em;white-space:nowrap}.seqnotes-index-changes .seqnotes-diff-counts{flex-wrap:wrap}.seqnotes-index-unchanged{color:var(--seqnotes-muted)}.seqnotes-index-new{padding:0 .6em;border:1px solid var(--vscode-editorGutter-addedBackground, #2ea043);border-radius:1em;white-space:nowrap}.seqnotes-index-filter{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0 0 1em}.seqnotes-index-filter input{flex:0 1 28em;min-width:0;padding:4px 8px;font:inherit;color:var(--vscode-input-foreground, inherit);background:var(--vscode-input-background, transparent);border:1px solid var(--vscode-input-border, var(--seqnotes-border));border-radius:2px}.seqnotes-index-filter input::placeholder{color:var(--vscode-input-placeholderForeground, var(--seqnotes-muted))}.seqnotes-index-filter input:focus{outline:1px solid var(--vscode-focusBorder, #0078d4);outline-offset:-1px}.seqnotes-index-count,.seqnotes-index-empty{color:var(--seqnotes-muted)}.seqnotes-index th:has(>.seqnotes-index-sort){padding:0}.seqnotes-index-sort{display:flex;align-items:center;gap:.3em;width:100%;padding:4px 10px;font:inherit;font-weight:inherit;text-align:left;color:inherit;background:none;border:none;cursor:pointer}.seqnotes-index-sort:focus-visible{outline:1px solid var(--vscode-focusBorder, #0078d4);outline-offset:-1px}.seqnotes-index-sort:after{content:"\\2195";color:var(--seqnotes-muted);opacity:0}.seqnotes-index-sort:hover:after{opacity:1}.seqnotes-index th[aria-sort=ascending] .seqnotes-index-sort:after{content:"\\2191";opacity:1}.seqnotes-index th[aria-sort=descending] .seqnotes-index-sort:after{content:"\\2193";opacity:1}@media print{.seqnotes-index-filter{display:none}.seqnotes-index-sort:after{display:none}}:where(.seqnotes-viewer) img{max-width:100%}:where(.seqnotes-viewer) hr{border:0;border-top:1px solid var(--seqnotes-border)}.markdown-alert{--seqnotes-alert: var(--vscode-charts-blue, #3794ff);margin:0 0 1em;padding:0 1em;border-left:4px solid var(--seqnotes-alert)}.markdown-alert-tip{--seqnotes-alert: var(--vscode-charts-green, #388a34)}.markdown-alert-important{--seqnotes-alert: var(--vscode-charts-purple, #b180d7)}.markdown-alert-warning{--seqnotes-alert: var(--vscode-charts-yellow, #cca700)}.markdown-alert-caution{--seqnotes-alert: var(--vscode-charts-red, #f14c4c)}.markdown-alert-title{display:flex;align-items:center;color:var(--seqnotes-alert);font-weight:600}.markdown-alert-title .octicon{flex:none;margin-right:.5em;fill:currentColor}.task-list-item{list-style-type:none}.task-list-item-checkbox{margin:0 .3em .2em -1.4em;vertical-align:middle}.footnote-ref{font-size:.75em;line-height:0}.footnote-ref a{margin:0 .1em}.footnotes-sep{margin-top:2em}.footnotes{font-size:.9em;color:var(--seqnotes-muted)}.footnotes-list{padding-left:2em}.footnote-item p{margin:.3em 0}.footnote-backref{text-decoration:none}.seqnotes-footnote-popup{position:fixed;z-index:15;box-sizing:border-box;max-width:min(480px,calc(100vw - 16px));max-height:50vh;overflow:auto;padding:8px 12px;font-size:.9em;background:var(--vscode-editorWidget-background, var(--vscode-editor-background));border:1px solid var(--vscode-editorWidget-border, var(--seqnotes-border));border-radius:4px;box-shadow:0 2px 8px var(--vscode-widget-shadow, rgba(0, 0, 0, .16))}.seqnotes-footnote-popup[hidden]{display:none}.seqnotes-footnote-popup>:first-child{margin-top:0}.seqnotes-footnote-popup>:last-child{margin-bottom:0}@media print{.seqnotes-footnote-popup{display:none}}.footnote-ref a,.footnote-item{scroll-margin-top:1em}:where(.seqnotes-viewer) details{margin:0 0 1em;padding:0 12px;border:1px solid var(--seqnotes-border);border-radius:4px}:where(.seqnotes-viewer) details[open]{padding-bottom:.8em}:where(.seqnotes-viewer) summary{display:flex;align-items:center;gap:.6em;margin:0 -12px;padding:6px 12px;border-radius:3px;background:var(--vscode-textCodeBlock-background, rgba(128, 128, 128, .1));font-weight:600;list-style:none;cursor:pointer;user-select:none;transition:background-color .15s}:where(.seqnotes-viewer) summary::-webkit-details-marker{display:none}:where(.seqnotes-viewer) summary:before{content:"";flex:none;width:.4em;height:.4em;margin:0 .1em;border-right:2px solid var(--seqnotes-muted);border-bottom:2px solid var(--seqnotes-muted);transform:rotate(-45deg);transition:transform .15s,border-color .15s}:where(.seqnotes-viewer) details[open]>summary{margin-bottom:.8em;border-bottom:1px solid var(--seqnotes-border);border-bottom-left-radius:0;border-bottom-right-radius:0}:where(.seqnotes-viewer) details[open]>summary:before{transform:rotate(45deg)}:where(.seqnotes-viewer) summary:hover{background:var(--vscode-list-hoverBackground, rgba(128, 128, 128, .2))}:where(.seqnotes-viewer) summary:hover:before{border-color:var(--seqnotes-accent)}:where(.seqnotes-viewer) summary:focus-visible{outline:1px solid var(--vscode-focusBorder);outline-offset:-1px}:where(.seqnotes-viewer) details>:last-child:not(summary){margin-bottom:0}.seqnotes-viewer{--seqnotes-hl-keyword: #569cd6;--seqnotes-hl-type: #4ec9b0;--seqnotes-hl-number: #b5cea8;--seqnotes-hl-string: #ce9178;--seqnotes-hl-function: #dcdcaa;--seqnotes-hl-comment: #6a9955;--seqnotes-hl-meta: #9b9b9b;--seqnotes-hl-variable: #9cdcfe;--seqnotes-hl-selector: #d7ba7d}.seqnotes-viewer:is(.vscode-light,.vscode-high-contrast-light):not([data-seqnotes-theme=dark]),.seqnotes-viewer[data-seqnotes-theme=light]{--seqnotes-hl-keyword: #0000ff;--seqnotes-hl-type: #267f99;--seqnotes-hl-number: #098658;--seqnotes-hl-string: #a31515;--seqnotes-hl-function: #795e26;--seqnotes-hl-comment: #008000;--seqnotes-hl-meta: #808080;--seqnotes-hl-variable: #001080;--seqnotes-hl-selector: #800000}.hljs-keyword,.hljs-literal,.hljs-symbol,.hljs-name,.hljs-link{color:var(--seqnotes-hl-keyword)}.hljs-built_in,.hljs-type{color:var(--seqnotes-hl-type)}.hljs-number,.hljs-class,.hljs-addition{color:var(--seqnotes-hl-number)}.hljs-string,.hljs-regexp,.hljs-deletion{color:var(--seqnotes-hl-string)}.hljs-title,.hljs-title.function_{color:var(--seqnotes-hl-function)}.hljs-comment,.hljs-quote{color:var(--seqnotes-hl-comment);font-style:italic}.hljs-meta,.hljs-tag{color:var(--seqnotes-hl-meta)}.hljs-variable,.hljs-template-variable,.hljs-attr,.hljs-attribute,.hljs-property{color:var(--seqnotes-hl-variable)}.hljs-section,.hljs-bullet,.hljs-selector-tag,.hljs-selector-id,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo{color:var(--seqnotes-hl-selector)}.hljs-section,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic}.seqnotes-mermaid{margin:1em 0}.seqnotes-mermaid-scratch{position:fixed;top:0;left:0;width:100vw;height:0;overflow:hidden;visibility:hidden;pointer-events:none}.seqnotes-diagram{position:relative}.seqnotes-diagram svg{display:block;max-width:100%;height:auto;margin:0 auto}.seqnotes-zoom-button,.seqnotes-zoom-toolbar button,.seqnotes-table-plain-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:4px;background:none;color:var(--vscode-icon-foreground, currentColor);font:inherit;font-size:16px;line-height:1;cursor:pointer}.seqnotes-zoom-button:hover,.seqnotes-zoom-toolbar button:hover,.seqnotes-table-plain-toggle:hover{background:var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, .2))}.seqnotes-zoom-button:focus-visible,.seqnotes-zoom-toolbar button:focus-visible,.seqnotes-table-plain-toggle:focus-visible{outline:1px solid var(--vscode-focusBorder)}.seqnotes-zoom-button,.seqnotes-table-plain-toggle{position:absolute;top:0;right:0;z-index:1;opacity:0;border:1px solid var(--vscode-editorWidget-border, var(--seqnotes-border));background:var(--vscode-editorWidget-background, var(--vscode-editor-background));transition:opacity .15s}.seqnotes-diagram:hover>.seqnotes-zoom-button,.seqnotes-zoom-button:focus-visible,.seqnotes-table-plain-toggle:focus-visible{opacity:1}.seqnotes-zoomable{cursor:zoom-in}.seqnotes-zoomable:focus-visible{outline:1px solid var(--vscode-focusBorder);outline-offset:2px}.seqnotes-zoom{position:fixed;inset:0;z-index:20;overflow:hidden;background:var(--vscode-editor-background);outline:none;cursor:grab;touch-action:none;user-select:none}.seqnotes-zoom[hidden]{display:none}.seqnotes-zoom-stage{position:absolute;top:0;left:0;transform-origin:0 0}.seqnotes-zoom-stage svg{display:block}.seqnotes-zoom-stage img{display:block;max-width:none}.seqnotes-zoom.seqnotes-zoom-dragging{cursor:grabbing}.seqnotes-zoom .seqnotes-wireframe-screen{cursor:auto;user-select:text}.seqnotes-zoom.seqnotes-zoom-space .seqnotes-wireframe-screen{cursor:grab;user-select:none}.seqnotes-zoom-toolbar{position:absolute;top:8px;right:8px;display:flex;gap:2px;padding:2px;border:1px solid var(--vscode-editorWidget-border, var(--seqnotes-border));border-radius:6px;background:var(--vscode-editorWidget-background, var(--vscode-editor-background));box-shadow:0 2px 8px var(--vscode-widget-shadow, rgba(0, 0, 0, .36))}.seqnotes-mermaid-src{white-space:pre}.seqnotes-error-message{color:var(--vscode-errorForeground, #f14c4c);margin-bottom:4px;white-space:pre-wrap}.seqnotes-warnings{position:relative;margin:12px 0;padding:6px 2em 6px 12px;border:1px solid var(--vscode-inputValidation-warningBorder, #b89500);background:var(--vscode-inputValidation-warningBackground, rgba(184, 149, 0, .15));border-radius:4px}.seqnotes-warnings p{margin:4px 0}.seqnotes-warnings-close{position:absolute;top:4px;right:4px;width:1.6em;height:1.6em;padding:0;border:none;border-radius:4px;background:none;color:var(--vscode-icon-foreground, currentColor);font:inherit;line-height:1;cursor:pointer}.seqnotes-warnings-close:hover{background:var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, .2))}.seqnotes-warnings-close:focus-visible{outline:1px solid var(--vscode-focusBorder)}.seqnotes-viewer.seqnotes-limit-width .seqnotes-viewer-root>*{margin-inline:max(0px,(100% - 1280px) / 2)}.seqnotes-viewer.seqnotes-limit-width.seqnotes-wide .seqnotes-viewer-root>.seqnotes-pair:not(.seqnotes-pair-stacked){margin-inline:0}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked){display:grid;grid-template-columns:minmax(0,var(--seqnotes-split, 55%)) 24px minmax(0,1fr);align-items:stretch}.seqnotes-splitter{display:none}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter{display:block;cursor:col-resize;position:relative;touch-action:none}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:after{content:"";position:absolute;top:0;bottom:0;left:11px;width:2px;background:transparent;transition:background-color .15s}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:hover:after,.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:active:after{background:var(--vscode-sash-hoverBorder, var(--seqnotes-accent))}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:focus{outline:none}.seqnotes-viewer.seqnotes-wide .seqnotes-splitter:focus-visible:after{background:var(--vscode-focusBorder, var(--seqnotes-accent))}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-seq-col{align-self:start;position:sticky;top:0;max-height:var(--seqnotes-viewport-height, 100vh);overflow:auto;box-sizing:border-box;padding:8px 0}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-seq-col .seqnotes-mermaid{margin:0}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-overview-col>:first-child,.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-overview-col>:first-child>:first-child{margin-top:8px}.seqnotes-linked{cursor:pointer}.seqnotes-hit{stroke:transparent!important;stroke-width:14px!important;fill:none!important;pointer-events:stroke}.messageText.seqnotes-active{fill:var(--seqnotes-accent)!important;font-weight:700}.seqnotes-msg.seqnotes-active:not(.seqnotes-hit,.messageText){stroke:var(--seqnotes-accent)!important;stroke-width:3px!important}.seqnotes-note.seqnotes-anchor>rect{fill:var(--seqnotes-accent)!important;stroke:var(--seqnotes-accent)!important}.seqnotes-note.seqnotes-anchor :is(text,tspan){fill:var(--vscode-editor-background, #fff)!important;font-weight:700}text.seqnotes-anchor,text.seqnotes-anchor tspan{fill:var(--seqnotes-accent)!important;font-weight:700}.seqnotes-anchor,.seqnotes-goto{cursor:pointer}.seqnotes-goto>rect{stroke:var(--seqnotes-accent)!important;stroke-dasharray:5 3}.seqnotes-goto.seqnotes-jump-hover>rect,.seqnotes-note.seqnotes-anchor.seqnotes-jump-hover>rect{stroke-width:3px!important}.seqnotes-goto.seqnotes-jump-hover :is(text,tspan){fill:var(--seqnotes-accent)!important}text.seqnotes-anchor.seqnotes-jump-hover{text-decoration:underline}.seqnotes-goto:focus-visible,.seqnotes-anchor:focus-visible{outline:2px solid var(--vscode-focusBorder, var(--seqnotes-accent));outline-offset:2px}.seqnotes-branch{fill:var(--seqnotes-accent);fill-opacity:0;pointer-events:none;transition:fill-opacity .15s}.seqnotes-branch.seqnotes-jump-hover{fill-opacity:.08}.seqnotes-branch.seqnotes-flash{animation:seqnotes-branch-flash 1.2s ease-out}@keyframes seqnotes-branch-flash{0%,30%{fill-opacity:.25}to{fill-opacity:0}}g.seqnotes-flash>rect{animation:seqnotes-note-flash 1.2s ease-out}@keyframes seqnotes-note-flash{0%,30%{stroke:var(--seqnotes-accent);stroke-width:6px}}text.seqnotes-flash{animation:seqnotes-text-flash 1.2s ease-out}@keyframes seqnotes-text-flash{0%,30%{opacity:.3}}.seqnotes-jump-back{position:absolute;z-index:1;transform:translateY(-50%);max-width:60%;overflow:hidden;padding:1px 8px;border:1px solid var(--seqnotes-accent);border-radius:10px;background:var(--vscode-editorWidget-background, var(--vscode-editor-background, #fff));color:var(--seqnotes-accent);font:12px/1.6 var(--vscode-font-family, sans-serif);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;box-shadow:0 1px 4px #0003}.seqnotes-jump-back:hover{background:var(--seqnotes-accent);color:var(--vscode-editor-background, #fff)}.seqnotes-jump-back:focus-visible{outline:1px solid var(--vscode-focusBorder);outline-offset:1px}.seqnotes-node.seqnotes-linked .nodeLabel:not([class*=attribute-] *){text-decoration:underline dotted}.seqnotes-node.seqnotes-active :is(rect,polygon,circle,ellipse,path,polyline):not(.label *,.divider *,[class^=row-rect] *){stroke:var(--seqnotes-accent)!important;stroke-width:3px!important}.seqnotes-node.seqnotes-active .nodeLabel:not([class*=attribute-] *){color:var(--seqnotes-accent)!important;font-weight:700}.seqnotes-node.seqnotes-active text{fill:var(--seqnotes-accent)!important;font-weight:700}.seqnotes-wireframe{margin:1em 0;padding:10px}.seqnotes-wireframe-src{display:none}.seqnotes-wireframe-frame{position:relative;max-width:100%;margin:0 auto;border:1px solid var(--seqnotes-border);background:#fff}.seqnotes-wireframe-screen{transform-origin:0 0;contain:layout paint}.seqnotes-wireframe-frame:hover>.seqnotes-zoom-button{opacity:1}.seqnotes-wireframe-note{margin:6px 0 0;color:var(--vscode-editorWarning-foreground, #b89500);font-size:.9em}.seqnotes-wireframe-missing>p{margin:0;padding:2em 1em;border:1px dashed var(--seqnotes-border);color:var(--seqnotes-muted);text-align:center}.seqnotes-part{position:absolute;box-sizing:border-box;pointer-events:none;border:2px solid transparent;border-radius:3px;transition:background-color .15s,border-color .15s}.seqnotes-part.seqnotes-active{border-color:var(--seqnotes-accent);background:var(--seqnotes-accent-bg)}.seqnotes-part-number{position:absolute;left:0;top:0;min-width:18px;height:18px;padding:0 4px;border-radius:9px;box-sizing:border-box;background:#d93025;color:#fff;font:bold 11px/18px var(--vscode-font-family, sans-serif);text-align:center;transform:translate(-50%,-50%);pointer-events:none}.seqnotes-part.seqnotes-active .seqnotes-part-number{background:var(--seqnotes-accent)}.seqnotes-part.seqnotes-unlinked:not(.seqnotes-active) .seqnotes-part-number{opacity:.45}tr.seqnotes-row{cursor:pointer}tr.seqnotes-row.seqnotes-active>td{background:var(--seqnotes-accent-bg)}tr.seqnotes-row.seqnotes-active>td:first-child{box-shadow:inset 3px 0 0 var(--seqnotes-accent)}.seqnotes-section{display:flow-root;margin:.8em 0;border-left:3px solid transparent;padding:0 8px 0 12px;border-radius:2px;transition:background-color .15s,border-color .15s}.seqnotes-section.seqnotes-active{border-left-color:var(--seqnotes-accent);background:var(--seqnotes-accent-bg)}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-overview-col>.seqnotes-section~.seqnotes-section{position:relative;margin-top:1.6em}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-overview-col>.seqnotes-section~.seqnotes-section:before{content:"";position:absolute;top:-.8em;left:-3px;right:0;border-top:1px solid var(--seqnotes-border)}.seqnotes-section>:is(h1,h2,h3,h4,h5,h6){cursor:pointer;margin-top:.5em}.seqnotes-section>:is(h1,h2,h3,h4,h5,h6):hover{color:var(--seqnotes-accent)}.seqnotes-step{display:inline-block;min-width:1.6em;margin-right:.5em;padding:0 .45em;border-radius:.8em;background:var(--vscode-foreground, #333);color:var(--vscode-editor-background, #fff);font-size:.65em;line-height:1.6em;text-align:center;vertical-align:middle;box-sizing:border-box}.messageText.seqnotes-unlinked:not(.seqnotes-current){opacity:.55}.seqnotes-node.seqnotes-unlinked:not(.seqnotes-current) .label{opacity:.55}.seqnotes-unlinked:is(h1,h2,h3,h4,h5,h6):after,.seqnotes-unlinked>td[data-seqnotes-mark]:after{content:attr(data-seqnotes-mark);margin-left:.6em;padding:0 .5em;border:1px dashed var(--seqnotes-border);border-radius:1em;color:var(--seqnotes-muted);font-size:.6em;font-weight:400;vertical-align:middle}[data-line].seqnotes-current:not(.seqnotes-mermaid){box-shadow:-10px 0 0 -7px var(--seqnotes-current)}.messageText.seqnotes-current{font-weight:700;text-decoration:underline}.seqnotes-msg.seqnotes-current:not(.seqnotes-hit,.messageText){stroke-width:3px!important}.seqnotes-node.seqnotes-current :is(rect,polygon,circle,ellipse,path,polyline):not(.label *,.divider *,[class^=row-rect] *){stroke-width:3px!important}.seqnotes-node.seqnotes-current .nodeLabel:not([class*=attribute-] *){font-weight:700;text-decoration:underline}.seqnotes-node.statediagram-cluster:is(.seqnotes-active,.seqnotes-current) .nodeLabel{font-weight:400}.seqnotes-toc{position:fixed;top:50%;right:4px;z-index:10;transform:translateY(-50%);display:flex;flex-direction:column;box-sizing:border-box;width:20px;max-height:70vh;padding:6px 0;border:1px solid transparent;border-radius:6px;font-size:13px;line-height:1.4}.seqnotes-toc[hidden],.seqnotes-toc-title{display:none}.seqnotes-toc ol{position:relative;min-height:0;margin:0;padding:0;list-style:none;overflow:hidden}.seqnotes-toc button{display:block;position:relative;box-sizing:border-box;width:100%;height:8px;padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.seqnotes-toc button:before{content:"";position:absolute;top:3px;right:2px;width:calc(14px - var(--seqnotes-toc-depth, 0) * 4px);height:2px;border-radius:1px;background:var(--seqnotes-border)}.seqnotes-toc .seqnotes-toc-current button:before{background:var(--seqnotes-accent)}.seqnotes-toc-text{display:none}.seqnotes-toc:is(:hover,:has(:focus-visible)){width:max-content;min-width:160px;max-width:min(320px,60vw);padding:6px;border-color:var(--vscode-editorWidget-border, var(--seqnotes-border));background:var(--vscode-editorWidget-background, var(--vscode-editor-background));box-shadow:0 2px 8px var(--vscode-widget-shadow, rgba(0, 0, 0, .36))}.seqnotes-toc:is(:hover,:has(:focus-visible)) .seqnotes-toc-title{display:block;padding:0 8px 4px;color:var(--seqnotes-muted);font-size:11px;font-weight:600}.seqnotes-toc:is(:hover,:has(:focus-visible)) ol{overflow-y:auto}.seqnotes-toc:is(:hover,:has(:focus-visible)) button{height:auto;padding:2px 8px 2px calc(8px + var(--seqnotes-toc-depth, 0) * 12px);border-left:2px solid transparent;border-radius:3px}.seqnotes-toc:is(:hover,:has(:focus-visible)) button:before{display:none}.seqnotes-toc:is(:hover,:has(:focus-visible)) .seqnotes-toc-text{display:inline}.seqnotes-toc:is(:hover,:has(:focus-visible)) button:hover{background:var(--vscode-list-hoverBackground, rgba(128, 128, 128, .2))}.seqnotes-toc:is(:hover,:has(:focus-visible)) .seqnotes-toc-current button{border-left-color:var(--seqnotes-accent);color:var(--seqnotes-accent)}.seqnotes-toc button:focus-visible{outline:1px solid var(--vscode-focusBorder);outline-offset:-1px}[data-seqnotes-diff]{--seqnotes-diff-color: var(--vscode-editorGutter-addedBackground, #2ea043)}[data-seqnotes-diff=changed]{--seqnotes-diff-color: var(--vscode-editorGutter-modifiedBackground, #005fb8)}[data-seqnotes-diff=deleted]{--seqnotes-diff-color: var(--vscode-editorGutter-deletedBackground, #f85149)}[data-seqnotes-diff]:not(tr,:where(.seqnotes-diff-off *)){border-radius:2px;background:color-mix(in srgb,var(--seqnotes-diff-color) 8%,transparent);box-shadow:-4px 0 0 0 var(--vscode-editor-background, transparent),-8px 0 0 0 var(--seqnotes-diff-color)}tr[data-seqnotes-diff]:not(:where(.seqnotes-diff-off *))>:is(td,th){background:color-mix(in srgb,var(--seqnotes-diff-color) 10%,transparent)}tr[data-seqnotes-diff]:not(:where(.seqnotes-diff-off *))>:first-child{box-shadow:inset 4px 0 0 0 var(--seqnotes-diff-color)}[data-seqnotes-diff=deleted]{opacity:.75}:is(h1,h2,h3,h4,h5,h6)[data-seqnotes-diff]:not(:where(.seqnotes-diff-off *)){padding-left:4px}ins.seqnotes-diff-ins{text-decoration:none}ins.seqnotes-diff-ins:not(:where(.seqnotes-diff-off *)){border-radius:2px;background:var(--vscode-diffEditor-insertedTextBackground, rgba(156, 204, 44, .25));box-shadow:0 1.5px 0 0 var(--vscode-editorGutter-addedBackground, #2ea043)}del.seqnotes-diff-del{border-radius:2px;background:var(--vscode-diffEditor-removedTextBackground, rgba(255, 0, 0, .2));text-decoration:line-through;text-decoration-color:var(--vscode-editorGutter-deletedBackground, #f85149)}.seqnotes-diff-old-diagram{margin:.5em 0 1em}.seqnotes-diff-old-diagram>summary{color:var(--seqnotes-muted);font-size:.9em}.seqnotes-diff-old-diagram>.seqnotes-mermaid{opacity:.75;background:color-mix(in srgb,var(--vscode-editorGutter-deletedBackground, #f85149) 8%,transparent)}.seqnotes-diff-focus{outline:2px solid var(--vscode-focusBorder, #005fb8);outline-offset:2px}[data-seqnotes-diff]{scroll-margin:25vh 0}.seqnotes-diff-bar{position:fixed;bottom:16px;left:50%;z-index:12;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);box-sizing:border-box;padding:3px 3px 3px 12px;border:1px solid var(--vscode-editorWidget-border, var(--seqnotes-border));border-radius:6px;background:var(--vscode-editorWidget-background, var(--vscode-editor-background));box-shadow:0 2px 8px var(--vscode-widget-shadow, rgba(0, 0, 0, .36));font-size:12px;transform:translate(-50%)}.seqnotes-diff-bar[hidden]{display:none}.seqnotes-diff-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seqnotes-diff-counts{display:flex;gap:8px;color:var(--seqnotes-muted);white-space:nowrap}.seqnotes-diff-count:before{content:"";display:inline-block;width:8px;height:8px;margin-right:4px;border-radius:2px;background:var(--seqnotes-diff-color)}.seqnotes-diff-count[data-kind=added]{--seqnotes-diff-color: var(--vscode-editorGutter-addedBackground, #2ea043)}.seqnotes-diff-count[data-kind=changed]{--seqnotes-diff-color: var(--vscode-editorGutter-modifiedBackground, #005fb8)}.seqnotes-diff-count[data-kind=deleted]{--seqnotes-diff-color: var(--vscode-editorGutter-deletedBackground, #f85149)}.seqnotes-diff-buttons{display:flex;gap:2px}.seqnotes-diff-buttons button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--vscode-icon-foreground, currentColor);cursor:pointer}.seqnotes-diff-buttons button:hover{background:var(--vscode-toolbar-hoverBackground, rgba(128, 128, 128, .2))}.seqnotes-diff-buttons button:focus-visible{outline:1px solid var(--vscode-focusBorder)}.seqnotes-diff-buttons button:disabled{opacity:.4;cursor:default;background:transparent}@media print{.seqnotes-diff-bar{display:none}}\n';
|
|
3
3
|
var exportCss = ':root{--vscode-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "Noto Sans JP", sans-serif;--vscode-markdown-font-family: var(--vscode-font-family);--vscode-markdown-font-size: 14px;--vscode-markdown-line-height: 1.6;--vscode-editor-font-family: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}.seqnotes-viewer.seqnotes-export{max-width:1600px;margin:0 auto;padding:16px 26px 40px}.seqnotes-viewer.seqnotes-diff-off :is([data-seqnotes-diff=deleted],del.seqnotes-diff-del,.seqnotes-diff-old-diagram){display:none}@media print{.seqnotes-viewer.seqnotes-export{max-width:none;padding:0}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked){display:block}.seqnotes-viewer.seqnotes-wide .seqnotes-pair:not(.seqnotes-pair-stacked)>.seqnotes-seq-col{position:static;max-height:none;overflow:visible}.seqnotes-splitter,.seqnotes-toc{display:none!important}.seqnotes-viewer.seqnotes-sticky-table-header thead th{position:static}.seqnotes-section.seqnotes-active{background:none;border-left-color:transparent}.seqnotes-part.seqnotes-active{background:none;border-color:transparent}.seqnotes-part.seqnotes-active .seqnotes-part-number{background:#d93025}.seqnotes-part-number{-webkit-print-color-adjust:exact;print-color-adjust:exact}tr.seqnotes-row.seqnotes-active>td{background:none;box-shadow:none}.seqnotes-diagram,.seqnotes-wireframe,pre,table,.markdown-alert,details{break-inside:avoid}h1,h2,h3,h4,h5,h6{break-after:avoid}}\n';
|
|
4
|
-
var exportScript = '"use strict";(()=>{var Fe=(e,o)=>(e??"{0}").replace("{0}",String(o)),Ge=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M3.5 10l4.5-4.5 4.5 4.5" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>\',ze=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M3.5 6l4.5 4.5 4.5-4.5" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>\',ce=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M1.5 8s2.5-4.5 6.5-4.5S14.5 8 14.5 8 12 12.5 8 12.5 1.5 8 1.5 8z" fill="none" stroke="currentColor" stroke-width="1.3"/><circle cx="8" cy="8" r="2" fill="none" stroke="currentColor" stroke-width="1.3"/></svg>\',Ve=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M1.5 8s2.5-4.5 6.5-4.5S14.5 8 14.5 8 12 12.5 8 12.5 1.5 8 1.5 8z" fill="none" stroke="currentColor" stroke-width="1.3"/><circle cx="8" cy="8" r="2" fill="none" stroke="currentColor" stroke-width="1.3"/><path d="M2.5 13.5l11-11" stroke="currentColor" stroke-width="1.3"/></svg>\';function de(e,o,{container:r,titles:n,scroll:t}){let a=document.createElement("div");a.className="seqnotes-diff-bar",a.setAttribute("role","toolbar"),a.hidden=!0;let i=document.createElement("span");i.className="seqnotes-diff-label";let l=document.createElement("span");l.className="seqnotes-diff-counts";let d=document.createElement("span");d.className="seqnotes-diff-buttons";let f=(b,s,c)=>{let m=document.createElement("button");return m.type="button",m.innerHTML=b,m.title=s??"",m.setAttribute("aria-label",m.title),m.addEventListener("click",c),m},p=f(Ge,n.seqnotesDiffPreviousTitle,()=>y(-1)),A=f(ze,n.seqnotesDiffNextTitle,()=>y(1));d.append(p,A);let L,q,w,x=0,g=!0,h=()=>{p.disabled=A.disabled=x===0||!g};if("onClose"in o)d.append(f("×",n.seqnotesDiffCloseTitle,o.onClose));else{let b=f(ce,n.seqnotesDiffHideTitle,()=>{g=!g,L?.classList.remove("seqnotes-diff-focus"),b.innerHTML=g?ce:Ve,b.title=(g?n.seqnotesDiffHideTitle:n.seqnotesDiffShowTitle)??"",b.setAttribute("aria-label",b.title),h(),o.onToggle(g)});d.append(b)}a.append(i,l,d),r.append(a);let S=()=>Array.from(e.querySelectorAll("[data-seqnotes-diff]")).filter(b=>b.getClientRects().length>0);function y(b){let s=S();if(s.length===0)return;let c=t.viewport(),m=c.top+c.height*.25,v=L?s.indexOf(L):-1,u;v>=0&&q!==void 0&&Math.abs(t.top()-q)<2?u=s[(v+b+s.length)%s.length]:b>0?u=s.find(E=>E.getBoundingClientRect().top>m+1)??s[0]:u=[...s].reverse().find(E=>E.getBoundingClientRect().top<m-1)??s[s.length-1],L?.classList.remove("seqnotes-diff-focus"),L=u,u.classList.add("seqnotes-diff-focus"),t.reveal(u,"start"),q=t.top(),clearTimeout(w),w=setTimeout(()=>u.classList.remove("seqnotes-diff-focus"),1500)}return{show(b){if(a.hidden=!b,L=void 0,q=void 0,!b)return;i.textContent=b.label,i.title=b.label;let{added:s,changed:c,deleted:m}=b.stats,v=[["added",s,n.seqnotesDiffAdded],["changed",c,n.seqnotesDiffChanged],["deleted",m,n.seqnotesDiffDeleted]];l.replaceChildren(...v.filter(([,u])=>u>0).map(([u,E,T])=>{let M=document.createElement("span");return M.className="seqnotes-diff-count",M.dataset.kind=u,M.textContent=Fe(T,E),M})),x=s+c+m,x===0&&(l.textContent=n.seqnotesDiffNoChanges??""),h()},dispose(){clearTimeout(w),a.remove()}}}function ue(e){return e.trim().toLowerCase().replace(/[^\\p{L}\\p{N}\\s_-]/gu,"").replace(/\\s+/g,"-")||"section"}var U="seqnotes-active",Ue=4,_,me=0,pe=e=>{_={x:e.clientX,y:e.clientY}};function ge(){me++===0&&document.addEventListener("pointerdown",pe,!0);let e=!1;return()=>{e||(e=!0,--me===0&&(document.removeEventListener("pointerdown",pe,!0),_=void 0))}}var B=e=>_!==void 0&&Math.hypot(e.clientX-_.x,e.clientY-_.y)>Ue,j=e=>e.closest(".seqnotes-viewer.seqnotes-wide")!==null&&!e.closest(".seqnotes-pair-stacked");function H(e,o){if(e.querySelectorAll(`.${U}`).forEach(n=>n.classList.remove(U)),!o)return;let r=CSS.escape(o.target);o.pair.querySelectorAll(`[data-seqnotes-target="${r}"], [data-seqnotes-section="${r}"]`).forEach(n=>n.classList.add(U))}function J(e){let o=e?.closest(".seqnotes-pair");if(!e||!o)return;let r=e.closest("[data-seqnotes-target]");if(r)return{pair:o,target:r.getAttribute("data-seqnotes-target"),kind:"message"};let n=e.closest("tr[data-seqnotes-section]");if(n)return{pair:o,target:n.getAttribute("data-seqnotes-section"),kind:"heading"};let t=e.closest(":is(h1, h2, h3, h4, h5, h6)[id]");if(t&&t.parentElement?.getAttribute("data-seqnotes-section")===t.id)return{pair:o,target:t.id,kind:"heading"}}function P(e,o,r){let n=e.closest(".seqnotes-seq-col"),t=o?"smooth":"auto";if(n&&j(n)){let a=e.getBoundingClientRect(),i=n.getBoundingClientRect();n.scrollBy({top:a.top-i.top-i.height/2,behavior:t});let l=n.parentElement.getBoundingClientRect(),d=r.viewport();(l.top>d.top||l.bottom<d.top+d.height/2)&&r.reveal(n.parentElement,"start",t)}else r.reveal(e,"center",t)}function Y(e,o){let r=CSS.escape(e.target);if(e.kind==="message"){let n=e.pair.querySelector(`[data-seqnotes-section="${r}"]`);n&&o.reveal(n,"nearest","smooth")}else{let n=e.pair.querySelector(`.seqnotes-item[data-seqnotes-target="${r}"]`);n&&P(n,!0,o)}}function X(e,o){return e.querySelector(`[id="${CSS.escape(o)}"]`)}function K(e,o,r){let n=o.slice(1);try{n=decodeURIComponent(n)}catch{}let t=l=>X(e,l),a=t(n),i=(a?.closest(".footnote-item, .footnote-ref")?a:null)??t("sn-"+n)??t("sn-"+ue(n))??a;i&&r.reveal(i,"start")}var je=150,Z=200,F=6,I=8,W=\'.footnote-ref a[href^="#"]\';function he(e,o,{container:r,id:n}){let t=document.createElement("div");t.className="seqnotes-footnote-popup",t.id=n,t.setAttribute("role","tooltip"),t.hidden=!0,r.append(t);let a=new AbortController,{signal:i}=a,l,d,f=(g,h)=>{window.clearTimeout(d),d=window.setTimeout(g,h)};function p(){window.clearTimeout(d),l?.removeAttribute("aria-describedby"),l=void 0,t.hidden=!0,t.replaceChildren()}function A(g){if(window.clearTimeout(d),g===l)return;let h=g.getAttribute("href").slice(1);try{h=decodeURIComponent(h)}catch{}let S=X(e,h);if(!S||!S.matches(".footnote-item")){p();return}p();let y=S.cloneNode(!0);y.querySelectorAll(".footnote-backref, .seqnotes-zoom-button").forEach(b=>b.remove()),y.querySelectorAll(".seqnotes-zoomable").forEach(b=>{b.classList.remove("seqnotes-zoomable");for(let s of["tabindex","role","aria-label"])b.removeAttribute(s)}),y.querySelectorAll("[id]").forEach(b=>{b.closest("svg")||b.removeAttribute("id")}),t.replaceChildren(...Array.from(y.childNodes)),t.hidden=!1,l=g,g.setAttribute("aria-describedby",t.id),L(g)}function L(g){t.style.left="0",t.style.top="0";let h=g.getBoundingClientRect(),{width:S,height:y}=t.getBoundingClientRect(),b=window.innerHeight-h.bottom-F-I,s=h.top-F-I,c=y>b&&s>b?Math.max(I,h.top-F-y):h.bottom+F,m=Math.max(I,Math.min(h.left-16,window.innerWidth-I-S));t.style.left=`${m}px`,t.style.top=`${c}px`}e.addEventListener("mouseover",g=>{let h=g.target.closest(W);h&&f(()=>A(h),h===l?0:je)},{signal:i}),e.addEventListener("mouseout",g=>{let h=g.target.closest(W);h&&!h.contains(g.relatedTarget)&&f(p,Z)},{signal:i}),t.addEventListener("mouseenter",()=>window.clearTimeout(d),{signal:i}),t.addEventListener("mouseleave",()=>f(p,Z),{signal:i}),e.addEventListener("focusin",g=>{let h=g.target.closest(W);h?.matches(":focus-visible")&&A(h)},{signal:i}),e.addEventListener("focusout",g=>{g.target.closest(W)&&!t.contains(g.relatedTarget)&&f(p,Z)},{signal:i}),e.addEventListener("click",g=>{g.target.closest(W)&&p()},{signal:i}),t.addEventListener("click",g=>{let h=g.target.closest("a[href]");h&&o(h.getAttribute("href"))&&(g.preventDefault(),p())},{signal:i});let q=g=>{g.key==="Escape"&&l&&(g.stopImmediatePropagation(),p())};document.addEventListener("keydown",q,{capture:!0,signal:i});let w=g=>{l&&!t.contains(g.target)&&p()};document.addEventListener("scroll",w,{capture:!0,passive:!0,signal:i}),window.addEventListener("resize",p,{signal:i});let x=new ResizeObserver(()=>{l&&L(l)});return x.observe(t),{hide:p,dispose(){p(),a.abort(),x.disconnect(),t.remove()}}}var Je=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function Ye(e){return e.toLocaleLowerCase().split(/\\s+/).filter(Boolean)}function be(e,o={query:""},r){let n=Array.from(e.querySelectorAll(":scope > table"));if(n.length===0)return;let t=w=>e.getAttribute(`data-seqnotes-${w}`)??"",a={...o},i=new Map(n.map(w=>[w,Array.from(w.tBodies[0]?.rows??[])])),l=[...i.values()].reduce((w,x)=>w+x.length,0),d=document.createElement("div");d.className="seqnotes-index-filter";let f=document.createElement("input");f.type="search",f.value=a.query,f.placeholder=t("filter-placeholder"),f.setAttribute("aria-label",t("filter-label"));let p=document.createElement("span");p.className="seqnotes-index-count",p.setAttribute("aria-live","polite"),d.append(f,p);let A=document.createElement("p");A.className="seqnotes-index-empty",A.textContent=t("no-match"),e.querySelector(":scope > h1")?.after(d),n[n.length-1].after(A);let L=n.map(w=>Array.from(w.tHead?.rows[0]?.cells??[],x=>{let g=x.dataset.seqnotesColumn??"",h=document.createElement("button");return h.type="button",h.className="seqnotes-index-sort",h.title=t("sort-title"),h.append(...Array.from(x.childNodes)),h.addEventListener("click",()=>{let S=a.sort;a={...a,sort:S?.column!==g?{column:g,descending:!1}:S.descending?void 0:{column:g,descending:!0}},q(),r?.(a)}),x.replaceChildren(h),h}));f.addEventListener("input",()=>{a={...a,query:f.value},q(),r?.(a)});function q(){let w=Ye(a.query),x=a.sort,g=0;n.forEach((h,S)=>{let y=[...i.get(h)],b=x?L[S].findIndex(m=>m.parentElement.dataset.seqnotesColumn===x.column):-1;if(x&&b>=0){let m=v=>{let u=v.cells[b];return u?.dataset.seqnotesSort??u?.textContent?.trim()??""};y.sort((v,u)=>{let[E,T]=[m(v),m(u)];return E===""||T===""?+(E==="")-+(T===""):Je.compare(E,T)*(x.descending?-1:1)})}let s=0;for(let m of y){let v=(m.textContent??"").toLocaleLowerCase();m.hidden=!w.every(u=>v.includes(u)),s+=m.hidden?0:1}h.tBodies[0]?.append(...y),h.hidden=s===0;let c=h.previousElementSibling;c?.tagName==="H2"&&(c.hidden=s===0),L[S].forEach(m=>{let v=m.parentElement;x&&x.column===v.dataset.seqnotesColumn?v.setAttribute("aria-sort",x.descending?"descending":"ascending"):v.removeAttribute("aria-sort")}),g+=s}),p.textContent=t("count").replace("{0}",String(g)).replace("{1}",String(l)),A.hidden=g>0}return q(),f}var Xe=["<<-->>","<<->>","-->>","->>","-->","->","--x","-x","--)","-)","--|\\\\","--|/","--\\\\\\\\","--//","/|--","\\\\|--","//--","\\\\\\\\--","-|\\\\","-|/","-\\\\\\\\","-//","/|-","\\\\|-","//-","\\\\\\\\-"],Ke=e=>e.replace(/[.*+?^${}()|[\\]\\\\/]/g,"\\\\$&"),Mt=new RegExp("^\\\\s*([^:]+?)\\\\s*(?:\\\\(\\\\))?("+Xe.map(Ke).join("|")+")(?:\\\\(\\\\))?\\\\s*[+-]?\\\\s*([^:]+?)\\\\s*:(.*)$");var G="\\u24B6-\\u24E9",Rt=new RegExp(`^[${G}]$`),Ct=new RegExp(`^([${G}])(?![${G}])`),Ht=new RegExp(`[${G}]`,"g");var ve="(\\\\d+(?:\\\\.\\\\d{1,2})?|\\\\.\\\\d{1,2})",Nt=new RegExp(`^\\\\s*autonumber(?:\\\\s+(off)|\\\\s+${ve}(?:\\\\s+${ve})?)?\\\\s*(?:(?:%%|#).*)?$`,"i");function Ee(e){return e.replace(/<br\\s*\\/?>/gi," ").replace(/#(\\d+);/g,(o,r)=>String.fromCharCode(Number(r))).replace(/\\s+/g," ").trim()}var Q=e=>e.replace(/[\uFF10-\uFF19]/g,o=>String.fromCharCode(o.charCodeAt(0)-65248));var ye="seqnotes-jump-hover",ee="seqnotes-flash",te="svg [data-seqnotes-goto], svg [data-seqnotes-anchor]",Ze=1200;function Se(e,{scroll:o,pin:r,signal:n}){let t,a=new WeakMap,i=new WeakMap,l=[],d=s=>s.closest("svg"),f=(s,c,m)=>Array.from(s.querySelectorAll(`[${c}="${CSS.escape(m)}"]`)),p=s=>{let c=s.getAttribute("data-seqnotes-goto-diagram");return c===null?d(s):e.querySelector(`svg[data-seqnotes-diagram="${CSS.escape(c)}"]`)},A=(s,c)=>{let m=s.getAttribute("data-seqnotes-diagram");return f(e,"data-seqnotes-goto",c).filter(v=>{let u=v.getAttribute("data-seqnotes-goto-diagram");return u===null?d(v)===s:u===m})};function L(){l.forEach(s=>s.classList.remove(ye)),l=[]}function q(s){clearTimeout(i.get(s)),s.classList.remove(ee),s.getBoundingClientRect(),s.classList.add(ee),i.set(s,setTimeout(()=>s.classList.remove(ee),Ze))}function w(){t?.observer.disconnect(),t?.button.remove(),t=void 0}function x(s,c,m){let v=c.getBoundingClientRect(),u=m.getBoundingClientRect(),E=v.right-u.left+8,T=E+s.offsetWidth>u.width?Math.max(0,v.left-u.left-8-s.offsetWidth):E;s.style.left=`${T}px`,s.style.top=`${v.top-u.top+v.height/2}px`}function g(s,c){w();let m=s.closest(".seqnotes-diagram"),v=d(s);if(!m||!v)return;let u=document.createElement("button");u.type="button",u.className="seqnotes-jump-back";let E=Ee(Array.from(c.querySelectorAll("text"),M=>M.textContent??"").join(" "));u.textContent=`\\u21A9 ${E.length>24?`${E.slice(0,23)}\\u2026`:E}`,u.title=v.getAttribute("data-seqnotes-back-title")??"",u.addEventListener("click",M=>{M.stopPropagation();let $=u.matches(":focus-visible");w(),h(c,$)}),m.append(u);let T=new ResizeObserver(()=>x(u,s,m));T.observe(m),t={button:u,observer:T},x(u,s,m)}function h(s,c){P(s,!0,o),q(s),c&&s.focus({preventScroll:!0})}function S(s,c){let m=p(s),v=s.getAttribute("data-seqnotes-goto"),u=m&&v!==null?f(m,"data-seqnotes-anchor",v)[0]:void 0;if(!m||v===null||!u)return;let E=u.getAttribute("data-seqnotes-first-target"),T=u.closest(".seqnotes-pair"),M=T!==null&&j(T);M&&m!==d(s)&&o.reveal(T,"start","auto"),P(u,!0,o);let $=f(m,"data-seqnotes-branch",v)[0];q($??u),$&&q(u),E!==null&&T&&r({pair:T,target:E,kind:"message"},M),g(u,s),c&&t?.button.focus({preventScroll:!0})}function y(s,c){let m=d(s),v=s.getAttribute("data-seqnotes-anchor");if(!m||v===null)return;let u=A(m,v);if(u.length===0)return;let E=a.get(m);E||(E=new Map,a.set(m,E));let T=(E.get(v)??0)%u.length;E.set(v,T+1),w(),h(u[T],c)}function b(s,c){s.hasAttribute("data-seqnotes-goto")?S(s,c):y(s,c)}return e.addEventListener("mouseover",s=>{L();let c=s.target.closest?.(te),m=c&&d(c);if(!c||!m)return;let v=c.getAttribute("data-seqnotes-goto"),u=v??c.getAttribute("data-seqnotes-anchor"),E=v!==null?p(c):m,T=E?[...f(E,"data-seqnotes-anchor",u),...f(E,"data-seqnotes-branch",u)]:[];l=[c,...T,...v!==null?[]:A(m,u)],l.forEach(M=>M.classList.add(ye))},{signal:n}),e.addEventListener("mouseleave",L,{signal:n}),n?.addEventListener("abort",w),e.addEventListener("click",s=>{let c=s.target.closest?.(te);!c||B(s)||s.detail>1||b(c,!1)},{signal:n}),e.addEventListener("keydown",s=>{let c=s.target.matches?.(te)?s.target:null;c&&(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),b(c,!0))},{signal:n}),{clear(){w(),L()}}}function xe(e,o){if(o===void 0||!Number.isFinite(o)){e.style.removeProperty("--seqnotes-split");return}return o=Math.min(80,Math.max(20,o)),e.style.setProperty("--seqnotes-split",`${o}%`),o}var we=5;function Te(e,o,r,n){let t=document.createElement("div");t.className="seqnotes-splitter",t.title=o,t.tabIndex=0,t.setAttribute("role","separator"),t.setAttribute("aria-orientation","vertical"),t.setAttribute("aria-valuemin",String(20)),t.setAttribute("aria-valuemax",String(80));let a=e.querySelector(".seqnotes-seq-col");a?.after(t);let i=()=>{let f=e.getBoundingClientRect().width;return f>0&&a?a.getBoundingClientRect().width/f*100:0},l=()=>t.setAttribute("aria-valuenow",String(Math.round(i()))),d=f=>{r(f),l()};t.addEventListener("pointerdown",f=>{f.preventDefault(),t.setPointerCapture(f.pointerId);let p=L=>{let q=e.getBoundingClientRect();d((L.clientX-q.left)/q.width*100)},A=()=>{t.removeEventListener("pointermove",p),t.removeEventListener("lostpointercapture",A)};t.addEventListener("pointermove",p,{signal:n}),t.addEventListener("lostpointercapture",A,{signal:n})},{signal:n}),t.addEventListener("dblclick",f=>{f.stopPropagation(),d(void 0)},{signal:n}),t.addEventListener("focus",l,{signal:n}),t.addEventListener("keydown",f=>{let p;switch(f.key){case"ArrowLeft":p=i()-we;break;case"ArrowRight":p=i()+we;break;case"Home":p=20;break;case"End":p=80;break;case"Enter":p=void 0;break;default:return}f.preventDefault(),d(p)},{signal:n})}var Le=".seqnotes-tree-toggle",re="seqnotes-tree-folded",Qe="seqnotes-tree-hidden",qe=".seqnotes-table-plain-toggle",Ae="seqnotes-table-plain",ne="seqnotes-tree-current",oe="seqnotes-tree-related",D=e=>Number(e.getAttribute("data-seqnotes-depth")),ke=e=>Array.from(e.querySelectorAll(":scope > tbody > tr[data-seqnotes-depth]"));function et(e){let o=1/0;for(let r of ke(e)){let n=D(r);n<=o&&(o=1/0);let t=n>o;r.classList.toggle(Qe,t),!t&&r.classList.contains(re)&&(o=n)}}function tt(e,o){e.classList.toggle(re,o),e.querySelector(Le)?.setAttribute("aria-expanded",String(!o))}function nt(e){let o=e.closest("table");if(!o)return[];let r=ke(o),n=r.indexOf(e),t=D(e),a=[];for(let l=n+1;l<r.length&&D(r[l])>t;l++)a.push(r[l]);let i=t;for(let l=n-1;l>=0&&i>0;l--)D(r[l])<i&&(i=D(r[l]),a.push(r[l]));return a}function ot(e,o){e.classList.toggle(Ae,o),e.querySelector(qe)?.setAttribute("aria-pressed",String(o))}function Me(e,o){let r=a=>{let i=a.target,d=i.closest(qe)?.closest("table");if(d){a.stopPropagation(),a.type==="click"&&ot(d,!d.classList.contains(Ae));return}let f=i.closest(Le)?.closest("tr");f&&(a.stopPropagation(),a.type==="click"&&(tt(f,!f.classList.contains(re)),et(f.closest("table"))))};e.addEventListener("click",r,{capture:!0,signal:o}),e.addEventListener("dblclick",r,{capture:!0,signal:o});let n,t=()=>{e.querySelectorAll(`.${ne}, .${oe}`).forEach(a=>a.classList.remove(ne,oe)),n=void 0};e.addEventListener("mouseover",a=>{let i=a.target.closest(".seqnotes-tree-table > tbody > tr[data-seqnotes-depth]");i!==n&&(t(),i&&(n=i,i.classList.add(ne),nt(i).forEach(l=>l.classList.add(oe))))},{signal:o}),e.addEventListener("mouseleave",t,{signal:o})}var rt="seqnotes-toc-current";function st(e){let o=e.cloneNode(!0);return o.querySelectorAll(".seqnotes-step, .footnote-ref, .seqnotes-diff-del").forEach(r=>r.remove()),(o.textContent??"").trim()}function it(e,o){for(let r=e.closest("details");r;r=r.parentElement?.closest("details")??null)r.open=!0;o.reveal(e,"start")}function Re(e,{container:o,title:r,scroll:n}){let t=document.createElement("nav");t.className="seqnotes-toc",t.hidden=!0;let a=document.createElement("div");a.className="seqnotes-toc-title",a.textContent=r,t.setAttribute("aria-label",a.textContent);let i=document.createElement("ol");t.append(a,i),o.append(t);let l=[],d=-1;function f(S){let y=S?Array.from(e.querySelectorAll("h1, h2, h3")).filter(c=>!c.closest(\'[data-seqnotes-diff="deleted"]\')).map(c=>({heading:c,level:Number(c.tagName[1]),text:st(c)})).filter(c=>c.text):[],b=Math.min(...y.map(c=>c.level)),s=i.scrollTop;i.replaceChildren(...y.map(({heading:c,level:m,text:v})=>{let u=document.createElement("li");u.style.setProperty("--seqnotes-toc-depth",String(m-b));let E=document.createElement("button");E.type="button",E.title=v;let T=document.createElement("span");return T.className="seqnotes-toc-text",T.textContent=v,E.append(T),E.addEventListener("mousedown",M=>M.preventDefault()),E.addEventListener("click",()=>it(c,n)),u.append(E),u})),i.scrollTop=s,l=y.map(c=>c.heading),d=-1,t.hidden=y.length===0,p()}function p(){let S=n.viewport(),y=n.top(),b=y>0&&y+S.height>=n.scrollHeight()-1,s=S.top+(b?S.height:S.height*.2),c=-1;for(let[m,v]of l.entries()){let u=v.getBoundingClientRect();if(u.height!==0){if(u.top>s)break;c=m}}c!==d&&(A(d,!1),A(c,!0),d=c,t.matches(":hover")||L())}function A(S,y){let b=i.children[S];if(!b)return;b.classList.toggle(rt,y);let s=b.querySelector("button");y?s.setAttribute("aria-current","location"):s.removeAttribute("aria-current")}function L(){let S=i.children[d];if(!(S instanceof HTMLElement))return;let y=S.offsetTop,b=y+S.offsetHeight;y<i.scrollTop?i.scrollTop=y:b>i.scrollTop+i.clientHeight&&(i.scrollTop=b-i.clientHeight)}t.addEventListener("pointerenter",L),t.addEventListener("pointerleave",L),t.addEventListener("focusin",S=>{t.contains(S.relatedTarget)||L()});let q=0;function w(){q||(q=requestAnimationFrame(()=>{q=0,p()}))}let x=n.onScroll(w),g=n.onResize(w),h=new ResizeObserver(w);return h.observe(e),{build:f,dispose(){x(),g(),h.disconnect(),cancelAnimationFrame(q),t.remove()}}}function Ce(){return{top:()=>window.scrollY,scrollTo:e=>window.scrollTo(0,e),scrollBy:e=>window.scrollBy(0,e),viewport:()=>({top:0,bottom:window.innerHeight,left:0,width:window.innerWidth,height:window.innerHeight}),scrollHeight:()=>document.documentElement.scrollHeight,onScroll(e){return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},onResize(e){return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},reveal:(e,o,r)=>e.scrollIntoView({block:o,behavior:r})}}var He="script|style|textarea|title";function se(e){let o=Q(e.trim());return/^\\d+$/.test(o)?Number(o):void 0}var rn=new RegExp(`<!--[\\\\s\\\\S]*?(?:-->|$)|<(${He})(?=[\\\\s/>])((?:[^>"\']|"[^"]*"|\'[^\']*\')*)>([\\\\s\\\\S]*?)(?:</\\\\1\\\\s*>|$)|<([a-zA-Z][\\\\w:-]*)((?:[^>"\']|"[^"]*"|\'[^\']*\')*)>`,"gi");var lt=":host { all: initial; display: block; } html { display: block; background: #fff; color: #000; color-scheme: light; } head { display: none; }",_e=/:root(?![\\w-])/g,ct=typeof CSSStyleSheet=="function"&&"adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype,O,Ne=new Set,dt=e=>e instanceof CSSFontFaceRule||typeof CSSPropertyRule=="function"&&e instanceof CSSPropertyRule;function ut(e){O||(O=new CSSStyleSheet,document.adoptedStyleSheets=[...document.adoptedStyleSheets,O]),Ne.has(e.cssText)||(Ne.add(e.cssText),O.insertRule(e.cssText,O.cssRules.length))}function ft(e){let o=new CSSStyleSheet(e.media?{media:e.media}:{});o.replaceSync(e.textContent??"");let r=n=>{for(let t=n.cssRules.length-1;t>=0;t--){let a=n.cssRules[t];if(dt(a)){ut(a),n.deleteRule(t);continue}if(a instanceof CSSStyleRule){let i=a.selectorText.replace(_e,":is(:root, html)");i!==a.selectorText&&(a.selectorText=i)}(a instanceof CSSGroupingRule||a instanceof CSSStyleRule)&&r(a)}};return r(o),o}var mt=/@import\\b(?:[^;"\']|"[^"]*"|\'[^\']*\')*;/gi;function pt(e,o){if(!ct)return;let r=Array.from(o.querySelectorAll("style")),n=r.flatMap(t=>(t.textContent??"").match(mt)??[]);if(n.length>0){let t=document.createElement("style");t.textContent=n.join(`\n`),e.append(t)}e.adoptedStyleSheets=r.map(ft),r.forEach(t=>t.remove())}function gt(e,o,r){let n=[],t=(i,l,d)=>(i??"").replace(/\\{([01])\\}/g,(f,p)=>p==="0"?String(l):d),a=new Set;for(let[i,l]of o){let d;try{d=Array.from(e.querySelectorAll(l.replace(_e,"html"))).filter(f=>!a.has(f))}catch{n.push(t(r.dataset.seqnotesItemInvalid,i,l));continue}d.length===0&&n.push(t(r.dataset.seqnotesItemUnmatched,i,l));for(let f of d)f.setAttribute("data-item",String(i)),a.add(f)}return n}function ht(e){try{return JSON.parse(e.dataset.seqnotesItems??"[]")}catch{return[]}}function bt(e,o,r){let n=o.attachShadow({mode:"open"});for(let i of["click","auxclick"])n.addEventListener(i,l=>{l.target.closest("a[href], area[href]")&&l.preventDefault()});n.addEventListener("submit",i=>i.preventDefault()),n.addEventListener("mouseover",i=>{let l=i;l.relatedTarget instanceof Node&&n.contains(l.relatedTarget)&&l.target?.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,composed:!0,clientX:l.clientX,clientY:l.clientY}))});let t=document.createElement("style");t.textContent=lt;let a=new DOMParser().parseFromString(r,"text/html").documentElement;return n.append(t),pt(n,a),n.append(document.importNode(a,!0)),{shadow:n,notes:gt(n,ht(e),e)}}var z,vt=e=>{let o=new Set;for(let{target:r}of e){let n=r instanceof HTMLElement&&r.matches(".seqnotes-wireframe")?r:Ie.get(r);n?.isConnected?o.add(n):z?.unobserve(r)}o.forEach(We)},Ie=new WeakMap;function Et(e,o){let r=o.querySelector("html");z??=new ResizeObserver(vt),z.observe(e),r&&(Ie.set(r,e),z.observe(r))}function We(e){let o=e.querySelector(":scope > .seqnotes-wireframe-frame"),r=o?.querySelector(":scope > .seqnotes-wireframe-screen"),n=r?.shadowRoot;if(!o||!r||!n||e.clientWidth===0)return;let t=Number(e.dataset.seqnotesWidth)||void 0;if(t){let d=getComputedStyle(e),f=e.clientWidth-parseFloat(d.paddingLeft)-parseFloat(d.paddingRight),p=Math.min(1,f/t);r.style.width=`${t}px`,r.style.transform=p<1?`scale(${p})`:"",o.style.width=`${t*p}px`,o.style.height=`${r.offsetHeight*p}px`}let a=new Map;for(let d of Array.from(n.querySelectorAll("[data-item]"))){let f=se(d.getAttribute("data-item"));f!==void 0&&a.set(f,[...a.get(f)??[],d])}let i=o.getBoundingClientRect(),l=o.offsetWidth>0?i.width/o.offsetWidth:1;for(let d of Array.from(o.querySelectorAll(".seqnotes-part"))){let p=a.get(Number(d.dataset.seqnotesPart))?.[Number(d.dataset.seqnotesPartIndex)]?.getBoundingClientRect();d.hidden=!p||p.width===0&&p.height===0,p&&!d.hidden&&(d.style.left=`${(p.left-i.left)/l-o.clientLeft}px`,d.style.top=`${(p.top-i.top)/l-o.clientTop}px`,d.style.width=`${p.width/l}px`,d.style.height=`${p.height/l}px`)}}function ie(e){e.querySelectorAll(".seqnotes-wireframe").forEach(We)}function De(e){for(let o of Array.from(e.querySelectorAll(".seqnotes-wireframe"))){let r=o.querySelector(":scope > .seqnotes-wireframe-src")?.textContent,n=o.querySelector(":scope > .seqnotes-wireframe-frame > .seqnotes-wireframe-screen");typeof r=="string"&&n&&!n.shadowRoot&&Et(o,bt(o,n,r).shadow)}ie(e)}function ae(e){let o=e.composedPath(),r=o.find(i=>i instanceof HTMLElement&&i.matches(".seqnotes-wireframe-screen")),n=o[0];if(!r||!(n instanceof Element)||n===r)return e.target;let t=se(n.closest("[data-item]")?.getAttribute("data-item")??"");return(t===void 0?null:r.parentElement?.querySelector(`:scope > .seqnotes-wireframe-parts > .seqnotes-part[data-seqnotes-part="${t}"]`))??r}var k=document.getElementById("seqnotes-root"),N=document.body.dataset,R=Ce(),Oe=Number(N.seqnotesSplitMinWidth),yt=Number.isFinite(Oe)?Oe:1e3,C,le=!1;ge();k.querySelectorAll(".seqnotes-pair:not(.seqnotes-pair-stacked)").forEach(e=>{Te(e,N.seqnotesSplitterTitle??"",o=>{xe(document.body,o)})});function V(){document.body.classList.toggle("seqnotes-wide",!le&&window.innerWidth>=yt)}V();window.addEventListener("resize",V);window.addEventListener("beforeprint",()=>{le=!0,V(),ie(k)});window.addEventListener("afterprint",()=>{le=!1,V()});De(k);he(k,e=>e.startsWith("#")?(K(k,e,R),!0):!1,{container:document.body,id:"seqnotes-footnote-popup"});Me(k);N.seqnotesToc!==void 0&&Re(k,{container:document.body,title:N.seqnotesTocTitle??"",scroll:R}).build(!0);var{seqnotesDiffLabel:$e,seqnotesDiffStats:Be}=N;if($e!==void 0&&Be!==void 0){let[e=0,o=0,r=0]=Be.split(",").map(Number);de(k,{onToggle:t=>{document.body.classList.toggle("seqnotes-diff-off",!t)}},{container:document.body,titles:N,scroll:R}).show({label:$e,stats:{added:e,changed:o,deleted:r}})}var Pe=k.querySelector(".seqnotes-index");Pe&&be(Pe);k.addEventListener("mouseover",e=>H(k,J(ae(e))??C));k.addEventListener("mouseleave",()=>H(k,C));k.addEventListener("click",e=>{let r=e.target.closest(\'a[href^="#"]\');if(r){e.preventDefault(),K(k,r.getAttribute("href"),R);return}let n=B(e)?void 0:J(ae(e));n&&(C={pair:n.pair,target:n.target},H(k,C),Y(n,R))});var St=Se(k,{scroll:R,pin(e,o){C={pair:e.pair,target:e.target},H(k,C),o&&Y(e,R)}});document.addEventListener("keydown",e=>{e.key==="Escape"&&(C=void 0,H(k,void 0),St.clear())});})();\n';
|
|
4
|
+
var exportScript = '"use strict";(()=>{var Fe=(e,o)=>(e??"{0}").replace("{0}",String(o)),Ge=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M3.5 10l4.5-4.5 4.5 4.5" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>\',ze=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M3.5 6l4.5 4.5 4.5-4.5" fill="none" stroke="currentColor" stroke-width="1.5"/></svg>\',ce=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M1.5 8s2.5-4.5 6.5-4.5S14.5 8 14.5 8 12 12.5 8 12.5 1.5 8 1.5 8z" fill="none" stroke="currentColor" stroke-width="1.3"/><circle cx="8" cy="8" r="2" fill="none" stroke="currentColor" stroke-width="1.3"/></svg>\',Ve=\'<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M1.5 8s2.5-4.5 6.5-4.5S14.5 8 14.5 8 12 12.5 8 12.5 1.5 8 1.5 8z" fill="none" stroke="currentColor" stroke-width="1.3"/><circle cx="8" cy="8" r="2" fill="none" stroke="currentColor" stroke-width="1.3"/><path d="M2.5 13.5l11-11" stroke="currentColor" stroke-width="1.3"/></svg>\';function de(e,o,{container:r,titles:n,scroll:t}){let a=document.createElement("div");a.className="seqnotes-diff-bar",a.setAttribute("role","toolbar"),a.hidden=!0;let i=document.createElement("span");i.className="seqnotes-diff-label";let c=document.createElement("span");c.className="seqnotes-diff-counts";let d=document.createElement("span");d.className="seqnotes-diff-buttons";let u=(s,l,g)=>{let f=document.createElement("button");return f.type="button",f.innerHTML=s,f.title=l??"",f.setAttribute("aria-label",f.title),f.addEventListener("click",g),f},p=u(Ge,n.seqnotesDiffPreviousTitle,()=>E(-1)),A=u(ze,n.seqnotesDiffNextTitle,()=>E(1));d.append(p,A);let L,q,x,T=0,h=!0,b=()=>{p.disabled=A.disabled=T===0||!h};if("onClose"in o)d.append(u("×",n.seqnotesDiffCloseTitle,o.onClose));else{let s=u(ce,n.seqnotesDiffHideTitle,()=>{h=!h,L?.classList.remove("seqnotes-diff-focus"),s.innerHTML=h?ce:Ve,s.title=(h?n.seqnotesDiffHideTitle:n.seqnotesDiffShowTitle)??"",s.setAttribute("aria-label",s.title),b(),o.onToggle(h)});d.append(s)}a.append(i,c,d),r.append(a);let y=()=>Array.from(e.querySelectorAll("[data-seqnotes-diff]")).filter(s=>s.getClientRects().length>0);function E(s){let l=y();if(l.length===0)return;let g=t.viewport(),f=g.top+g.height*.25,m=L?l.indexOf(L):-1,v;m>=0&&q!==void 0&&Math.abs(t.top()-q)<2?v=l[(m+s+l.length)%l.length]:s>0?v=l.find(w=>w.getBoundingClientRect().top>f+1)??l[0]:v=[...l].reverse().find(w=>w.getBoundingClientRect().top<f-1)??l[l.length-1],L?.classList.remove("seqnotes-diff-focus"),L=v,v.classList.add("seqnotes-diff-focus"),t.reveal(v,"start"),q=t.top(),clearTimeout(x),x=setTimeout(()=>v.classList.remove("seqnotes-diff-focus"),1500)}function S(s){i.textContent=s,i.title=s}return{setLabel:S,show(s){if(a.hidden=!s,L=void 0,q=void 0,!s)return;S(s.label);let{added:l,changed:g,deleted:f}=s.stats,m=[["added",l,n.seqnotesDiffAdded],["changed",g,n.seqnotesDiffChanged],["deleted",f,n.seqnotesDiffDeleted]];c.replaceChildren(...m.filter(([,v])=>v>0).map(([v,w,M])=>{let R=document.createElement("span");return R.className="seqnotes-diff-count",R.dataset.kind=v,R.textContent=Fe(M,w),R})),T=l+g+f,T===0&&(c.textContent=n.seqnotesDiffNoChanges??""),b()},dispose(){clearTimeout(x),a.remove()}}}function ue(e){return e.trim().toLowerCase().replace(/[^\\p{L}\\p{N}\\s_-]/gu,"").replace(/\\s+/g,"-")||"section"}var U="seqnotes-active",Ue=4,I,me=0,pe=e=>{I={x:e.clientX,y:e.clientY}};function ge(){me++===0&&document.addEventListener("pointerdown",pe,!0);let e=!1;return()=>{e||(e=!0,--me===0&&(document.removeEventListener("pointerdown",pe,!0),I=void 0))}}var B=e=>I!==void 0&&Math.hypot(e.clientX-I.x,e.clientY-I.y)>Ue,j=e=>e.closest(".seqnotes-viewer.seqnotes-wide")!==null&&!e.closest(".seqnotes-pair-stacked");function N(e,o){if(e.querySelectorAll(`.${U}`).forEach(n=>n.classList.remove(U)),!o)return;let r=CSS.escape(o.target);o.pair.querySelectorAll(`[data-seqnotes-target="${r}"], [data-seqnotes-section="${r}"]`).forEach(n=>n.classList.add(U))}function J(e){let o=e?.closest(".seqnotes-pair");if(!e||!o)return;let r=e.closest("[data-seqnotes-target]");if(r)return{pair:o,target:r.getAttribute("data-seqnotes-target"),kind:"message"};let n=e.closest("tr[data-seqnotes-section]");if(n)return{pair:o,target:n.getAttribute("data-seqnotes-section"),kind:"heading"};let t=e.closest(":is(h1, h2, h3, h4, h5, h6)[id]");if(t&&t.parentElement?.getAttribute("data-seqnotes-section")===t.id)return{pair:o,target:t.id,kind:"heading"}}function P(e,o,r){let n=e.closest(".seqnotes-seq-col"),t=o?"smooth":"auto";if(n&&j(n)){let a=e.getBoundingClientRect(),i=n.getBoundingClientRect();n.scrollBy({top:a.top-i.top-i.height/2,behavior:t});let c=n.parentElement.getBoundingClientRect(),d=r.viewport();(c.top>d.top||c.bottom<d.top+d.height/2)&&r.reveal(n.parentElement,"start",t)}else r.reveal(e,"center",t)}function Y(e,o){let r=CSS.escape(e.target);if(e.kind==="message"){let n=e.pair.querySelector(`[data-seqnotes-section="${r}"]`);n&&o.reveal(n,"nearest","smooth")}else{let n=e.pair.querySelector(`.seqnotes-item[data-seqnotes-target="${r}"]`);n&&P(n,!0,o)}}function X(e,o){return e.querySelector(`[id="${CSS.escape(o)}"]`)}function K(e,o,r){let n=o.slice(1);try{n=decodeURIComponent(n)}catch{}let t=c=>X(e,c),a=t(n),i=(a?.closest(".footnote-item, .footnote-ref")?a:null)??t("sn-"+n)??t("sn-"+ue(n))??a;i&&r.reveal(i,"start")}var je=150,Z=200,F=6,W=8,D=\'.footnote-ref a[href^="#"]\';function he(e,o,{container:r,id:n}){let t=document.createElement("div");t.className="seqnotes-footnote-popup",t.id=n,t.setAttribute("role","tooltip"),t.hidden=!0,r.append(t);let a=new AbortController,{signal:i}=a,c,d,u=(h,b)=>{window.clearTimeout(d),d=window.setTimeout(h,b)};function p(){window.clearTimeout(d),c?.removeAttribute("aria-describedby"),c=void 0,t.hidden=!0,t.replaceChildren()}function A(h){if(window.clearTimeout(d),h===c)return;let b=h.getAttribute("href").slice(1);try{b=decodeURIComponent(b)}catch{}let y=X(e,b);if(!y||!y.matches(".footnote-item")){p();return}p();let E=y.cloneNode(!0);E.querySelectorAll(".footnote-backref, .seqnotes-zoom-button").forEach(S=>S.remove()),E.querySelectorAll(".seqnotes-zoomable").forEach(S=>{S.classList.remove("seqnotes-zoomable");for(let s of["tabindex","role","aria-label"])S.removeAttribute(s)}),E.querySelectorAll("[id]").forEach(S=>{S.closest("svg")||S.removeAttribute("id")}),t.replaceChildren(...Array.from(E.childNodes)),t.hidden=!1,c=h,h.setAttribute("aria-describedby",t.id),L(h)}function L(h){t.style.left="0",t.style.top="0";let b=h.getBoundingClientRect(),{width:y,height:E}=t.getBoundingClientRect(),S=window.innerHeight-b.bottom-F-W,s=b.top-F-W,l=E>S&&s>S?Math.max(W,b.top-F-E):b.bottom+F,g=Math.max(W,Math.min(b.left-16,window.innerWidth-W-y));t.style.left=`${g}px`,t.style.top=`${l}px`}e.addEventListener("mouseover",h=>{let b=h.target.closest(D);b&&u(()=>A(b),b===c?0:je)},{signal:i}),e.addEventListener("mouseout",h=>{let b=h.target.closest(D);b&&!b.contains(h.relatedTarget)&&u(p,Z)},{signal:i}),t.addEventListener("mouseenter",()=>window.clearTimeout(d),{signal:i}),t.addEventListener("mouseleave",()=>u(p,Z),{signal:i}),e.addEventListener("focusin",h=>{let b=h.target.closest(D);b?.matches(":focus-visible")&&A(b)},{signal:i}),e.addEventListener("focusout",h=>{h.target.closest(D)&&!t.contains(h.relatedTarget)&&u(p,Z)},{signal:i}),e.addEventListener("click",h=>{h.target.closest(D)&&p()},{signal:i}),t.addEventListener("click",h=>{let b=h.target.closest("a[href]");b&&o(b.getAttribute("href"))&&(h.preventDefault(),p())},{signal:i});let q=h=>{h.key==="Escape"&&c&&(h.stopImmediatePropagation(),p())};document.addEventListener("keydown",q,{capture:!0,signal:i});let x=h=>{c&&!t.contains(h.target)&&p()};document.addEventListener("scroll",x,{capture:!0,passive:!0,signal:i}),window.addEventListener("resize",p,{signal:i});let T=new ResizeObserver(()=>{c&&L(c)});return T.observe(t),{hide:p,dispose(){p(),a.abort(),T.disconnect(),t.remove()}}}var Je=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function Ye(e){return e.toLocaleLowerCase().split(/\\s+/).filter(Boolean)}function be(e,o={query:""},r){let n=Array.from(e.querySelectorAll(":scope > table"));if(n.length===0)return;let t=x=>e.getAttribute(`data-seqnotes-${x}`)??"",a={...o},i=new Map(n.map(x=>[x,Array.from(x.tBodies[0]?.rows??[])])),c=[...i.values()].reduce((x,T)=>x+T.length,0),d=document.createElement("div");d.className="seqnotes-index-filter";let u=document.createElement("input");u.type="search",u.value=a.query,u.placeholder=t("filter-placeholder"),u.setAttribute("aria-label",t("filter-label"));let p=document.createElement("span");p.className="seqnotes-index-count",p.setAttribute("aria-live","polite"),d.append(u,p);let A=document.createElement("p");A.className="seqnotes-index-empty",A.textContent=t("no-match"),e.querySelector(":scope > h1")?.after(d),n[n.length-1].after(A);let L=n.map(x=>Array.from(x.tHead?.rows[0]?.cells??[],T=>{let h=T.dataset.seqnotesColumn??"",b=document.createElement("button");return b.type="button",b.className="seqnotes-index-sort",b.title=t("sort-title"),b.append(...Array.from(T.childNodes)),b.addEventListener("click",()=>{let y=a.sort;a={...a,sort:y?.column!==h?{column:h,descending:!1}:y.descending?void 0:{column:h,descending:!0}},q(),r?.(a)}),T.replaceChildren(b),b}));u.addEventListener("input",()=>{a={...a,query:u.value},q(),r?.(a)});function q(){let x=Ye(a.query),T=a.sort,h=0;n.forEach((b,y)=>{let E=[...i.get(b)],S=T?L[y].findIndex(g=>g.parentElement.dataset.seqnotesColumn===T.column):-1;if(T&&S>=0){let g=f=>{let m=f.cells[S];return m?.dataset.seqnotesSort??m?.textContent?.trim()??""};E.sort((f,m)=>{let[v,w]=[g(f),g(m)];return v===""||w===""?+(v==="")-+(w===""):Je.compare(v,w)*(T.descending?-1:1)})}let s=0;for(let g of E){let f=(g.textContent??"").toLocaleLowerCase();g.hidden=!x.every(m=>f.includes(m)),s+=g.hidden?0:1}b.tBodies[0]?.append(...E),b.hidden=s===0;let l=b.previousElementSibling;l?.tagName==="H2"&&(l.hidden=s===0),L[y].forEach(g=>{let f=g.parentElement;T&&T.column===f.dataset.seqnotesColumn?f.setAttribute("aria-sort",T.descending?"descending":"ascending"):f.removeAttribute("aria-sort")}),h+=s}),p.textContent=t("count").replace("{0}",String(h)).replace("{1}",String(c)),A.hidden=h>0}return q(),u}var Xe=["<<-->>","<<->>","-->>","->>","-->","->","--x","-x","--)","-)","--|\\\\","--|/","--\\\\\\\\","--//","/|--","\\\\|--","//--","\\\\\\\\--","-|\\\\","-|/","-\\\\\\\\","-//","/|-","\\\\|-","//-","\\\\\\\\-"],Ke=e=>e.replace(/[.*+?^${}()|[\\]\\\\/]/g,"\\\\$&"),Mt=new RegExp("^\\\\s*([^:]+?)\\\\s*(?:\\\\(\\\\))?("+Xe.map(Ke).join("|")+")(?:\\\\(\\\\))?\\\\s*[+-]?\\\\s*([^:]+?)\\\\s*:(.*)$");var G="\\u24B6-\\u24E9",Rt=new RegExp(`^[${G}]$`),Ct=new RegExp(`^([${G}])(?![${G}])`),Ht=new RegExp(`[${G}]`,"g");var ve="(\\\\d+(?:\\\\.\\\\d{1,2})?|\\\\.\\\\d{1,2})",Nt=new RegExp(`^\\\\s*autonumber(?:\\\\s+(off)|\\\\s+${ve}(?:\\\\s+${ve})?)?\\\\s*(?:(?:%%|#).*)?$`,"i");function Ee(e){return e.replace(/<br\\s*\\/?>/gi," ").replace(/#(\\d+);/g,(o,r)=>String.fromCharCode(Number(r))).replace(/\\s+/g," ").trim()}var Q=e=>e.replace(/[\uFF10-\uFF19]/g,o=>String.fromCharCode(o.charCodeAt(0)-65248));var ye="seqnotes-jump-hover",ee="seqnotes-flash",te="svg [data-seqnotes-goto], svg [data-seqnotes-anchor]",Ze=1200;function Se(e,{scroll:o,pin:r,signal:n}){let t,a=new WeakMap,i=new WeakMap,c=[],d=s=>s.closest("svg"),u=(s,l,g)=>Array.from(s.querySelectorAll(`[${l}="${CSS.escape(g)}"]`)),p=s=>{let l=s.getAttribute("data-seqnotes-goto-diagram");return l===null?d(s):e.querySelector(`svg[data-seqnotes-diagram="${CSS.escape(l)}"]`)},A=(s,l)=>{let g=s.getAttribute("data-seqnotes-diagram");return u(e,"data-seqnotes-goto",l).filter(f=>{let m=f.getAttribute("data-seqnotes-goto-diagram");return m===null?d(f)===s:m===g})};function L(){c.forEach(s=>s.classList.remove(ye)),c=[]}function q(s){clearTimeout(i.get(s)),s.classList.remove(ee),s.getBoundingClientRect(),s.classList.add(ee),i.set(s,setTimeout(()=>s.classList.remove(ee),Ze))}function x(){t?.observer.disconnect(),t?.button.remove(),t=void 0}function T(s,l,g){let f=l.getBoundingClientRect(),m=g.getBoundingClientRect(),v=f.right-m.left+8,w=v+s.offsetWidth>m.width?Math.max(0,f.left-m.left-8-s.offsetWidth):v;s.style.left=`${w}px`,s.style.top=`${f.top-m.top+f.height/2}px`}function h(s,l){x();let g=s.closest(".seqnotes-diagram"),f=d(s);if(!g||!f)return;let m=document.createElement("button");m.type="button",m.className="seqnotes-jump-back";let v=Ee(Array.from(l.querySelectorAll("text"),M=>M.textContent??"").join(" "));m.textContent=`\\u21A9 ${v.length>24?`${v.slice(0,23)}\\u2026`:v}`,m.title=f.getAttribute("data-seqnotes-back-title")??"",m.addEventListener("click",M=>{M.stopPropagation();let R=m.matches(":focus-visible");x(),b(l,R)}),g.append(m);let w=new ResizeObserver(()=>T(m,s,g));w.observe(g),t={button:m,observer:w},T(m,s,g)}function b(s,l){P(s,!0,o),q(s),l&&s.focus({preventScroll:!0})}function y(s,l){let g=p(s),f=s.getAttribute("data-seqnotes-goto"),m=g&&f!==null?u(g,"data-seqnotes-anchor",f)[0]:void 0;if(!g||f===null||!m)return;let v=m.getAttribute("data-seqnotes-first-target"),w=m.closest(".seqnotes-pair"),M=w!==null&&j(w);M&&g!==d(s)&&o.reveal(w,"start","auto"),P(m,!0,o);let R=u(g,"data-seqnotes-branch",f)[0];q(R??m),R&&q(m),v!==null&&w&&r({pair:w,target:v,kind:"message"},M),h(m,s),l&&t?.button.focus({preventScroll:!0})}function E(s,l){let g=d(s),f=s.getAttribute("data-seqnotes-anchor");if(!g||f===null)return;let m=A(g,f);if(m.length===0)return;let v=a.get(g);v||(v=new Map,a.set(g,v));let w=(v.get(f)??0)%m.length;v.set(f,w+1),x(),b(m[w],l)}function S(s,l){s.hasAttribute("data-seqnotes-goto")?y(s,l):E(s,l)}return e.addEventListener("mouseover",s=>{L();let l=s.target.closest?.(te),g=l&&d(l);if(!l||!g)return;let f=l.getAttribute("data-seqnotes-goto"),m=f??l.getAttribute("data-seqnotes-anchor"),v=f!==null?p(l):g,w=v?[...u(v,"data-seqnotes-anchor",m),...u(v,"data-seqnotes-branch",m)]:[];c=[l,...w,...f!==null?[]:A(g,m)],c.forEach(M=>M.classList.add(ye))},{signal:n}),e.addEventListener("mouseleave",L,{signal:n}),n?.addEventListener("abort",x),e.addEventListener("click",s=>{let l=s.target.closest?.(te);!l||B(s)||s.detail>1||S(l,!1)},{signal:n}),e.addEventListener("keydown",s=>{let l=s.target.matches?.(te)?s.target:null;l&&(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),S(l,!0))},{signal:n}),{clear(){x(),L()}}}function xe(e,o){if(o===void 0||!Number.isFinite(o)){e.style.removeProperty("--seqnotes-split");return}return o=Math.min(80,Math.max(20,o)),e.style.setProperty("--seqnotes-split",`${o}%`),o}var we=5;function Te(e,o,r,n){let t=document.createElement("div");t.className="seqnotes-splitter",t.title=o,t.tabIndex=0,t.setAttribute("role","separator"),t.setAttribute("aria-orientation","vertical"),t.setAttribute("aria-valuemin",String(20)),t.setAttribute("aria-valuemax",String(80));let a=e.querySelector(".seqnotes-seq-col");a?.after(t);let i=()=>{let u=e.getBoundingClientRect().width;return u>0&&a?a.getBoundingClientRect().width/u*100:0},c=()=>t.setAttribute("aria-valuenow",String(Math.round(i()))),d=u=>{r(u),c()};t.addEventListener("pointerdown",u=>{u.preventDefault(),t.setPointerCapture(u.pointerId);let p=L=>{let q=e.getBoundingClientRect();d((L.clientX-q.left)/q.width*100)},A=()=>{t.removeEventListener("pointermove",p),t.removeEventListener("lostpointercapture",A)};t.addEventListener("pointermove",p,{signal:n}),t.addEventListener("lostpointercapture",A,{signal:n})},{signal:n}),t.addEventListener("dblclick",u=>{u.stopPropagation(),d(void 0)},{signal:n}),t.addEventListener("focus",c,{signal:n}),t.addEventListener("keydown",u=>{let p;switch(u.key){case"ArrowLeft":p=i()-we;break;case"ArrowRight":p=i()+we;break;case"Home":p=20;break;case"End":p=80;break;case"Enter":p=void 0;break;default:return}u.preventDefault(),d(p)},{signal:n})}var Le=".seqnotes-tree-toggle",re="seqnotes-tree-folded",Qe="seqnotes-tree-hidden",qe=".seqnotes-table-plain-toggle",Ae="seqnotes-table-plain",ne="seqnotes-tree-current",oe="seqnotes-tree-related",O=e=>Number(e.getAttribute("data-seqnotes-depth")),ke=e=>Array.from(e.querySelectorAll(":scope > tbody > tr[data-seqnotes-depth]"));function et(e){let o=1/0;for(let r of ke(e)){let n=O(r);n<=o&&(o=1/0);let t=n>o;r.classList.toggle(Qe,t),!t&&r.classList.contains(re)&&(o=n)}}function tt(e,o){e.classList.toggle(re,o),e.querySelector(Le)?.setAttribute("aria-expanded",String(!o))}function nt(e){let o=e.closest("table");if(!o)return[];let r=ke(o),n=r.indexOf(e),t=O(e),a=[];for(let c=n+1;c<r.length&&O(r[c])>t;c++)a.push(r[c]);let i=t;for(let c=n-1;c>=0&&i>0;c--)O(r[c])<i&&(i=O(r[c]),a.push(r[c]));return a}function ot(e,o){e.classList.toggle(Ae,o),e.querySelector(qe)?.setAttribute("aria-pressed",String(o))}function Me(e,o){let r=a=>{let i=a.target,d=i.closest(qe)?.closest("table");if(d){a.stopPropagation(),a.type==="click"&&ot(d,!d.classList.contains(Ae));return}let u=i.closest(Le)?.closest("tr");u&&(a.stopPropagation(),a.type==="click"&&(tt(u,!u.classList.contains(re)),et(u.closest("table"))))};e.addEventListener("click",r,{capture:!0,signal:o}),e.addEventListener("dblclick",r,{capture:!0,signal:o});let n,t=()=>{e.querySelectorAll(`.${ne}, .${oe}`).forEach(a=>a.classList.remove(ne,oe)),n=void 0};e.addEventListener("mouseover",a=>{let i=a.target.closest(".seqnotes-tree-table > tbody > tr[data-seqnotes-depth]");i!==n&&(t(),i&&(n=i,i.classList.add(ne),nt(i).forEach(c=>c.classList.add(oe))))},{signal:o}),e.addEventListener("mouseleave",t,{signal:o})}var rt="seqnotes-toc-current";function st(e){let o=e.cloneNode(!0);return o.querySelectorAll(".seqnotes-step, .footnote-ref, .seqnotes-diff-del").forEach(r=>r.remove()),(o.textContent??"").trim()}function it(e,o){for(let r=e.closest("details");r;r=r.parentElement?.closest("details")??null)r.open=!0;o.reveal(e,"start")}function Re(e,{container:o,title:r,scroll:n}){let t=document.createElement("nav");t.className="seqnotes-toc",t.hidden=!0;let a=document.createElement("div");a.className="seqnotes-toc-title",a.textContent=r,t.setAttribute("aria-label",a.textContent);let i=document.createElement("ol");t.append(a,i),o.append(t);let c=[],d=-1;function u(y){let E=y?Array.from(e.querySelectorAll("h1, h2, h3")).filter(l=>!l.closest(\'[data-seqnotes-diff="deleted"]\')).map(l=>({heading:l,level:Number(l.tagName[1]),text:st(l)})).filter(l=>l.text):[],S=Math.min(...E.map(l=>l.level)),s=i.scrollTop;i.replaceChildren(...E.map(({heading:l,level:g,text:f})=>{let m=document.createElement("li");m.style.setProperty("--seqnotes-toc-depth",String(g-S));let v=document.createElement("button");v.type="button",v.title=f;let w=document.createElement("span");return w.className="seqnotes-toc-text",w.textContent=f,v.append(w),v.addEventListener("mousedown",M=>M.preventDefault()),v.addEventListener("click",()=>it(l,n)),m.append(v),m})),i.scrollTop=s,c=E.map(l=>l.heading),d=-1,t.hidden=E.length===0,p()}function p(){let y=n.viewport(),E=n.top(),S=E>0&&E+y.height>=n.scrollHeight()-1,s=y.top+(S?y.height:y.height*.2),l=-1;for(let[g,f]of c.entries()){let m=f.getBoundingClientRect();if(m.height!==0){if(m.top>s)break;l=g}}l!==d&&(A(d,!1),A(l,!0),d=l,t.matches(":hover")||L())}function A(y,E){let S=i.children[y];if(!S)return;S.classList.toggle(rt,E);let s=S.querySelector("button");E?s.setAttribute("aria-current","location"):s.removeAttribute("aria-current")}function L(){let y=i.children[d];if(!(y instanceof HTMLElement))return;let E=y.offsetTop,S=E+y.offsetHeight;E<i.scrollTop?i.scrollTop=E:S>i.scrollTop+i.clientHeight&&(i.scrollTop=S-i.clientHeight)}t.addEventListener("pointerenter",L),t.addEventListener("pointerleave",L),t.addEventListener("focusin",y=>{t.contains(y.relatedTarget)||L()});let q=0;function x(){q||(q=requestAnimationFrame(()=>{q=0,p()}))}let T=n.onScroll(x),h=n.onResize(x),b=new ResizeObserver(x);return b.observe(e),{build:u,dispose(){T(),h(),b.disconnect(),cancelAnimationFrame(q),t.remove()}}}function Ce(){return{top:()=>window.scrollY,scrollTo:e=>window.scrollTo(0,e),scrollBy:e=>window.scrollBy(0,e),viewport:()=>({top:0,bottom:window.innerHeight,left:0,width:window.innerWidth,height:window.innerHeight}),scrollHeight:()=>document.documentElement.scrollHeight,onScroll(e){return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},onResize(e){return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},reveal:(e,o,r)=>e.scrollIntoView({block:o,behavior:r})}}var He="script|style|textarea|title";function se(e){let o=Q(e.trim());return/^\\d+$/.test(o)?Number(o):void 0}var rn=new RegExp(`<!--[\\\\s\\\\S]*?(?:-->|$)|<(${He})(?=[\\\\s/>])((?:[^>"\']|"[^"]*"|\'[^\']*\')*)>([\\\\s\\\\S]*?)(?:</\\\\1\\\\s*>|$)|<([a-zA-Z][\\\\w:-]*)((?:[^>"\']|"[^"]*"|\'[^\']*\')*)>`,"gi");var lt=":host { all: initial; display: block; } html { display: block; background: #fff; color: #000; color-scheme: light; } head { display: none; }",_e=/:root(?![\\w-])/g,ct=typeof CSSStyleSheet=="function"&&"adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype,$,Ne=new Set,dt=e=>e instanceof CSSFontFaceRule||typeof CSSPropertyRule=="function"&&e instanceof CSSPropertyRule;function ut(e){$||($=new CSSStyleSheet,document.adoptedStyleSheets=[...document.adoptedStyleSheets,$]),Ne.has(e.cssText)||(Ne.add(e.cssText),$.insertRule(e.cssText,$.cssRules.length))}function ft(e){let o=new CSSStyleSheet(e.media?{media:e.media}:{});o.replaceSync(e.textContent??"");let r=n=>{for(let t=n.cssRules.length-1;t>=0;t--){let a=n.cssRules[t];if(dt(a)){ut(a),n.deleteRule(t);continue}if(a instanceof CSSStyleRule){let i=a.selectorText.replace(_e,":is(:root, html)");i!==a.selectorText&&(a.selectorText=i)}(a instanceof CSSGroupingRule||a instanceof CSSStyleRule)&&r(a)}};return r(o),o}var mt=/@import\\b(?:[^;"\']|"[^"]*"|\'[^\']*\')*;/gi;function pt(e,o){if(!ct)return;let r=Array.from(o.querySelectorAll("style")),n=r.flatMap(t=>(t.textContent??"").match(mt)??[]);if(n.length>0){let t=document.createElement("style");t.textContent=n.join(`\n`),e.append(t)}e.adoptedStyleSheets=r.map(ft),r.forEach(t=>t.remove())}function gt(e,o,r){let n=[],t=(i,c,d)=>(i??"").replace(/\\{([01])\\}/g,(u,p)=>p==="0"?String(c):d),a=new Set;for(let[i,c]of o){let d;try{d=Array.from(e.querySelectorAll(c.replace(_e,"html"))).filter(u=>!a.has(u))}catch{n.push(t(r.dataset.seqnotesItemInvalid,i,c));continue}d.length===0&&n.push(t(r.dataset.seqnotesItemUnmatched,i,c));for(let u of d)u.setAttribute("data-item",String(i)),a.add(u)}return n}function ht(e){try{return JSON.parse(e.dataset.seqnotesItems??"[]")}catch{return[]}}function bt(e,o,r){let n=o.attachShadow({mode:"open"});for(let i of["click","auxclick"])n.addEventListener(i,c=>{c.target.closest("a[href], area[href]")&&c.preventDefault()});n.addEventListener("submit",i=>i.preventDefault()),n.addEventListener("mouseover",i=>{let c=i;c.relatedTarget instanceof Node&&n.contains(c.relatedTarget)&&c.target?.dispatchEvent(new MouseEvent("mouseover",{bubbles:!0,composed:!0,clientX:c.clientX,clientY:c.clientY}))});let t=document.createElement("style");t.textContent=lt;let a=new DOMParser().parseFromString(r,"text/html").documentElement;return n.append(t),pt(n,a),n.append(document.importNode(a,!0)),{shadow:n,notes:gt(n,ht(e),e)}}var z,vt=e=>{let o=new Set;for(let{target:r}of e){let n=r instanceof HTMLElement&&r.matches(".seqnotes-wireframe")?r:Ie.get(r);n?.isConnected?o.add(n):z?.unobserve(r)}o.forEach(We)},Ie=new WeakMap;function Et(e,o){let r=o.querySelector("html");z??=new ResizeObserver(vt),z.observe(e),r&&(Ie.set(r,e),z.observe(r))}function We(e){let o=e.querySelector(":scope > .seqnotes-wireframe-frame"),r=o?.querySelector(":scope > .seqnotes-wireframe-screen"),n=r?.shadowRoot;if(!o||!r||!n||e.clientWidth===0)return;let t=Number(e.dataset.seqnotesWidth)||void 0;if(t){let d=getComputedStyle(e),u=e.clientWidth-parseFloat(d.paddingLeft)-parseFloat(d.paddingRight),p=Math.min(1,u/t);r.style.width=`${t}px`,r.style.transform=p<1?`scale(${p})`:"",o.style.width=`${t*p}px`,o.style.height=`${r.offsetHeight*p}px`}let a=new Map;for(let d of Array.from(n.querySelectorAll("[data-item]"))){let u=se(d.getAttribute("data-item"));u!==void 0&&a.set(u,[...a.get(u)??[],d])}let i=o.getBoundingClientRect(),c=o.offsetWidth>0?i.width/o.offsetWidth:1;for(let d of Array.from(o.querySelectorAll(".seqnotes-part"))){let p=a.get(Number(d.dataset.seqnotesPart))?.[Number(d.dataset.seqnotesPartIndex)]?.getBoundingClientRect();d.hidden=!p||p.width===0&&p.height===0,p&&!d.hidden&&(d.style.left=`${(p.left-i.left)/c-o.clientLeft}px`,d.style.top=`${(p.top-i.top)/c-o.clientTop}px`,d.style.width=`${p.width/c}px`,d.style.height=`${p.height/c}px`)}}function ie(e){e.querySelectorAll(".seqnotes-wireframe").forEach(We)}function De(e){for(let o of Array.from(e.querySelectorAll(".seqnotes-wireframe"))){let r=o.querySelector(":scope > .seqnotes-wireframe-src")?.textContent,n=o.querySelector(":scope > .seqnotes-wireframe-frame > .seqnotes-wireframe-screen");typeof r=="string"&&n&&!n.shadowRoot&&Et(o,bt(o,n,r).shadow)}ie(e)}function ae(e){let o=e.composedPath(),r=o.find(i=>i instanceof HTMLElement&&i.matches(".seqnotes-wireframe-screen")),n=o[0];if(!r||!(n instanceof Element)||n===r)return e.target;let t=se(n.closest("[data-item]")?.getAttribute("data-item")??"");return(t===void 0?null:r.parentElement?.querySelector(`:scope > .seqnotes-wireframe-parts > .seqnotes-part[data-seqnotes-part="${t}"]`))??r}var k=document.getElementById("seqnotes-root"),_=document.body.dataset,C=Ce(),Oe=Number(_.seqnotesSplitMinWidth),yt=Number.isFinite(Oe)?Oe:1e3,H,le=!1;ge();k.querySelectorAll(".seqnotes-pair:not(.seqnotes-pair-stacked)").forEach(e=>{Te(e,_.seqnotesSplitterTitle??"",o=>{xe(document.body,o)})});function V(){document.body.classList.toggle("seqnotes-wide",!le&&window.innerWidth>=yt)}V();window.addEventListener("resize",V);window.addEventListener("beforeprint",()=>{le=!0,V(),ie(k)});window.addEventListener("afterprint",()=>{le=!1,V()});De(k);he(k,e=>e.startsWith("#")?(K(k,e,C),!0):!1,{container:document.body,id:"seqnotes-footnote-popup"});Me(k);_.seqnotesToc!==void 0&&Re(k,{container:document.body,title:_.seqnotesTocTitle??"",scroll:C}).build(!0);var{seqnotesDiffLabel:$e,seqnotesDiffStats:Be}=_;if($e!==void 0&&Be!==void 0){let[e=0,o=0,r=0]=Be.split(",").map(Number);de(k,{onToggle:t=>{document.body.classList.toggle("seqnotes-diff-off",!t)}},{container:document.body,titles:_,scroll:C}).show({label:$e,stats:{added:e,changed:o,deleted:r}})}var Pe=k.querySelector(".seqnotes-index");Pe&&be(Pe);k.addEventListener("mouseover",e=>N(k,J(ae(e))??H));k.addEventListener("mouseleave",()=>N(k,H));k.addEventListener("click",e=>{let r=e.target.closest(\'a[href^="#"]\');if(r){e.preventDefault(),K(k,r.getAttribute("href"),C);return}let n=B(e)?void 0:J(ae(e));n&&(H={pair:n.pair,target:n.target},N(k,H),Y(n,C))});var St=Se(k,{scroll:C,pin(e,o){H={pair:e.pair,target:e.target},N(k,H),o&&Y(e,C)}});document.addEventListener("keydown",e=>{e.key==="Escape"&&(H=void 0,N(k,void 0),St.clear())});})();\n';
|
|
5
5
|
|
|
6
6
|
// embed/export.ts
|
|
7
7
|
import { exportDocument } from "./index.js";
|