raffel 1.1.76 → 1.1.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docs/generators/http-generator.d.ts.map +1 -1
- package/dist/docs/generators/http-generator.js +20 -17
- package/dist/docs/generators/http-generator.js.map +1 -1
- package/dist/docs/generators/schema-converter.d.ts.map +1 -1
- package/dist/docs/generators/schema-converter.js +27 -10
- package/dist/docs/generators/schema-converter.js.map +1 -1
- package/dist/docs/ui/assets/code-block-toolbar.js +5 -1
- package/dist/docs/ui/assets/prism.js +549 -0
- package/dist/docs/ui/assets/raffel-docs.css +81 -2
- package/dist/docs/ui/assets/raffel-docs.js +35 -15
- package/dist/docs/ui/client-script/index.d.ts.map +1 -1
- package/dist/docs/ui/client-script/index.js +2 -1
- package/dist/docs/ui/client-script/index.js.map +1 -1
- package/dist/docs/ui/prism-browser-bundle.d.ts +3 -0
- package/dist/docs/ui/prism-browser-bundle.d.ts.map +1 -0
- package/dist/docs/ui/prism-browser-bundle.js +36 -0
- package/dist/docs/ui/prism-browser-bundle.js.map +1 -0
- package/dist/docs/ui/runtime/code-block-toolbar.d.ts.map +1 -1
- package/dist/docs/ui/runtime/code-block-toolbar.js +5 -1
- package/dist/docs/ui/runtime/code-block-toolbar.js.map +1 -1
- package/dist/docs/ui/runtime/index.js +35 -15
- package/dist/docs/ui/runtime/index.js.map +1 -1
- package/dist/docs/ui/style-sections/schema-code.d.ts +1 -1
- package/dist/docs/ui/style-sections/schema-code.d.ts.map +1 -1
- package/dist/docs/ui/style-sections/schema-code.js +81 -2
- package/dist/docs/ui/style-sections/schema-code.js.map +1 -1
- package/dist/ui/docs/generators/http-generator.d.ts.map +1 -1
- package/dist/ui/docs/generators/schema-converter.d.ts.map +1 -1
- package/dist/ui/docs/ui/client-script/index.d.ts.map +1 -1
- package/dist/ui/docs/ui/prism-browser-bundle.d.ts +3 -0
- package/dist/ui/docs/ui/prism-browser-bundle.d.ts.map +1 -0
- package/dist/ui/docs/ui/runtime/code-block-toolbar.d.ts.map +1 -1
- package/dist/ui/docs/ui/style-sections/schema-code.d.ts +1 -1
- package/dist/ui/docs/ui/style-sections/schema-code.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1565,6 +1565,31 @@ function buildHttpSamples(request) {
|
|
|
1565
1565
|
samples.go = go;
|
|
1566
1566
|
return samples;
|
|
1567
1567
|
}
|
|
1568
|
+
function createSampleCopyButton(className, getText) {
|
|
1569
|
+
const button = doc.createElement('button');
|
|
1570
|
+
button.type = 'button';
|
|
1571
|
+
button.className = className;
|
|
1572
|
+
button.textContent = 'Copy';
|
|
1573
|
+
button.onclick = () => {
|
|
1574
|
+
const text = getText();
|
|
1575
|
+
const finish = () => {
|
|
1576
|
+
button.textContent = 'Copied';
|
|
1577
|
+
setTimeout(() => { if (button.textContent === 'Copied')
|
|
1578
|
+
button.textContent = 'Copy'; }, 1200);
|
|
1579
|
+
};
|
|
1580
|
+
try {
|
|
1581
|
+
const result = win.navigator?.clipboard?.writeText?.(text);
|
|
1582
|
+
if (result && typeof result.then === 'function')
|
|
1583
|
+
result.then(finish).catch(finish);
|
|
1584
|
+
else
|
|
1585
|
+
finish();
|
|
1586
|
+
}
|
|
1587
|
+
catch {
|
|
1588
|
+
finish();
|
|
1589
|
+
}
|
|
1590
|
+
};
|
|
1591
|
+
return button;
|
|
1592
|
+
}
|
|
1568
1593
|
function renderCodeExamples(endpoint, data) {
|
|
1569
1594
|
const samples = buildHttpSamples(buildStructuredHttpRequest(endpoint, data));
|
|
1570
1595
|
const langs = [
|
|
@@ -1589,6 +1614,7 @@ function renderCodeExamples(endpoint, data) {
|
|
|
1589
1614
|
content.className = `code-content${index === 0 ? ' active' : ''}`;
|
|
1590
1615
|
const pre = doc.createElement('pre');
|
|
1591
1616
|
pre.className = 'http-code-sample-pre';
|
|
1617
|
+
pre.setAttribute('data-code-toolbar', 'managed');
|
|
1592
1618
|
const code = doc.createElement('code');
|
|
1593
1619
|
code.className = `language-${language}`;
|
|
1594
1620
|
code.textContent = samples[key];
|
|
@@ -1603,21 +1629,10 @@ function renderCodeExamples(endpoint, data) {
|
|
|
1603
1629
|
tabs.appendChild(tab);
|
|
1604
1630
|
contents.appendChild(content);
|
|
1605
1631
|
});
|
|
1606
|
-
const copy =
|
|
1607
|
-
copy.type = 'button';
|
|
1608
|
-
copy.className = 'http-code-copy';
|
|
1609
|
-
copy.textContent = 'Copy';
|
|
1610
|
-
copy.onclick = () => {
|
|
1632
|
+
const copy = createSampleCopyButton('http-code-copy', () => {
|
|
1611
1633
|
const active = contents.querySelector('.code-content.active pre');
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
if (clip?.writeText) {
|
|
1615
|
-
clip.writeText(text).then(() => {
|
|
1616
|
-
copy.textContent = 'Copied';
|
|
1617
|
-
setTimeout(() => { copy.textContent = 'Copy'; }, 1200);
|
|
1618
|
-
});
|
|
1619
|
-
}
|
|
1620
|
-
};
|
|
1634
|
+
return active?.textContent ?? '';
|
|
1635
|
+
});
|
|
1621
1636
|
tabs.appendChild(copy);
|
|
1622
1637
|
wrap.appendChild(tabs);
|
|
1623
1638
|
wrap.appendChild(contents);
|
|
@@ -1748,13 +1763,18 @@ function renderResponseSamples(responses, endpoint) {
|
|
|
1748
1763
|
const label = doc.createElement('div');
|
|
1749
1764
|
label.className = 'response-example-name';
|
|
1750
1765
|
label.textContent = example.summary || example.name;
|
|
1751
|
-
mediaBlock.appendChild(label);
|
|
1752
1766
|
const pre = doc.createElement('pre');
|
|
1753
1767
|
pre.className = `sample-code${example.error ? ' sample-code-error' : ''}`;
|
|
1768
|
+
pre.setAttribute('data-code-toolbar', 'managed');
|
|
1754
1769
|
const code = doc.createElement('code');
|
|
1755
1770
|
code.className = `language-${example.language || 'text'}`;
|
|
1756
1771
|
code.textContent = example.value;
|
|
1757
1772
|
pre.appendChild(code);
|
|
1773
|
+
const toolbar = doc.createElement('div');
|
|
1774
|
+
toolbar.className = 'response-example-toolbar';
|
|
1775
|
+
toolbar.appendChild(label);
|
|
1776
|
+
toolbar.appendChild(createSampleCopyButton('sample-code-copy', () => code.textContent ?? ''));
|
|
1777
|
+
mediaBlock.appendChild(toolbar);
|
|
1758
1778
|
mediaBlock.appendChild(pre);
|
|
1759
1779
|
});
|
|
1760
1780
|
if (examples.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/docs/ui/client-script/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/docs/ui/client-script/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,eAAe,GAAE,MAAe,EAChC,kBAAkB,GAAE,MAA6C,EACjE,cAAc,GAAE,MAAqC,EACrD,cAAc,GAAE,MAA6G,EAC7H,uBAAuB,GAAE,MAAa,EACtC,YAAY,GAAE,MAA4C,GACzD,MAAM,CAwBR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAIpD;AAED,wBAAgB,sCAAsC,IAAI,MAAM,CAK/D;AAyKD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,eAAe,GAAE,MAAe,EAChC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,cAAc,GAAE,MAAqC,GACpD,MAAM,CAoBR"}
|
|
@@ -19,6 +19,7 @@ import { cardsAndCodeClientScript } from './cards-and-code.js';
|
|
|
19
19
|
import { schemaRenderingClientScript } from './schema-rendering.js';
|
|
20
20
|
import { endpointDetailsClientScript } from './endpoint-details.js';
|
|
21
21
|
import { initClientScript } from './init.js';
|
|
22
|
+
import { generatePrismBrowserBundle } from '../prism-browser-bundle.js';
|
|
22
23
|
const require = createRequire(import.meta.url);
|
|
23
24
|
let cachedSharedRuntimeScript = null;
|
|
24
25
|
/**
|
|
@@ -63,7 +64,7 @@ export function generateClientRuntimeScript() {
|
|
|
63
64
|
export function generateInlineRuntimeDependencyScripts() {
|
|
64
65
|
return [
|
|
65
66
|
inlineDependencyScript('marked', readOptionalDependency('marked/lib/marked.umd.js')),
|
|
66
|
-
inlineDependencyScript('prism',
|
|
67
|
+
inlineDependencyScript('prism', generatePrismBrowserBundle()),
|
|
67
68
|
].filter(Boolean).join('\n ');
|
|
68
69
|
}
|
|
69
70
|
function inlineDependencyScript(name, source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/docs/ui/client-script/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/docs/ui/client-script/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-browser-bundle.d.ts","sourceRoot":"","sources":["../../../src/docs/ui/prism-browser-bundle.ts"],"names":[],"mappings":"AAgBA,8EAA8E;AAC9E,wBAAgB,0BAA0B,IAAI,MAAM,CAKnD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const PRISM_BROWSER_SOURCES = [
|
|
6
|
+
'prismjs/prism.js',
|
|
7
|
+
'prismjs/components/prism-bash.js',
|
|
8
|
+
'prismjs/components/prism-typescript.js',
|
|
9
|
+
'prismjs/components/prism-rust.js',
|
|
10
|
+
'prismjs/components/prism-python.js',
|
|
11
|
+
'prismjs/components/prism-go.js',
|
|
12
|
+
'prismjs/components/prism-json.js',
|
|
13
|
+
];
|
|
14
|
+
/** Build the browser Prism asset used by both inline and external docs UI. */
|
|
15
|
+
export function generatePrismBrowserBundle() {
|
|
16
|
+
return PRISM_BROWSER_SOURCES
|
|
17
|
+
.map(readOptionalDependency)
|
|
18
|
+
.filter(source => source.trim().length > 0)
|
|
19
|
+
.join('\n');
|
|
20
|
+
}
|
|
21
|
+
function readOptionalDependency(specifier) {
|
|
22
|
+
try {
|
|
23
|
+
return readFileSync(require.resolve(specifier), 'utf8');
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
try {
|
|
27
|
+
const [packageName, ...parts] = specifier.split('/');
|
|
28
|
+
const packageRoot = dirname(require.resolve(`${packageName}/package.json`));
|
|
29
|
+
return readFileSync(join(packageRoot, ...parts), 'utf8');
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return '';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=prism-browser-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prism-browser-bundle.js","sourceRoot":"","sources":["../../../src/docs/ui/prism-browser-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE9C,MAAM,qBAAqB,GAAG;IAC5B,kBAAkB;IAClB,kCAAkC;IAClC,wCAAwC;IACxC,kCAAkC;IAClC,oCAAoC;IACpC,gCAAgC;IAChC,kCAAkC;CACnC,CAAA;AAED,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B;IACxC,OAAO,qBAAqB;SACzB,GAAG,CAAC,sBAAsB,CAAC;SAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SAC1C,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACpD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC,CAAA;YAC3E,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block-toolbar.d.ts","sourceRoot":"","sources":["../../../../src/docs/ui/runtime/code-block-toolbar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"code-block-toolbar.d.ts","sourceRoot":"","sources":["../../../../src/docs/ui/runtime/code-block-toolbar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,KAAK,MAAM,GAAG;IACZ,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAA;CACrC,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAA;CACnE,CAAA;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,GAAG,EACT,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,IAAI,CAuBN"}
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* Prism in the token tree's `textContent`) and shows "Copied" for ~1s.
|
|
11
11
|
*/
|
|
12
12
|
const ENHANCED_ATTR = 'data-code-toolbar-enhanced';
|
|
13
|
+
const TOOLBAR_MODE_ATTR = 'data-code-toolbar';
|
|
14
|
+
const MANAGED_TOOLBAR_MODE = 'managed';
|
|
13
15
|
const LANG_CLASS_PREFIX = 'language-';
|
|
14
16
|
const COPY_LABEL = 'Copy';
|
|
15
17
|
const COPIED_LABEL = 'Copied';
|
|
@@ -26,7 +28,9 @@ export function enhanceCodeBlockToolbars(root, options = {}) {
|
|
|
26
28
|
const codes = root.querySelectorAll(`pre > code[class*="${LANG_CLASS_PREFIX}"]`);
|
|
27
29
|
for (const code of Array.from(codes)) {
|
|
28
30
|
const pre = code.parentElement;
|
|
29
|
-
if (!pre
|
|
31
|
+
if (!pre
|
|
32
|
+
|| pre.getAttribute?.(ENHANCED_ATTR) === 'true'
|
|
33
|
+
|| pre.getAttribute?.(TOOLBAR_MODE_ATTR) === MANAGED_TOOLBAR_MODE)
|
|
30
34
|
continue;
|
|
31
35
|
pre.setAttribute(ENHANCED_ATTR, 'true');
|
|
32
36
|
if (pre.style && !pre.style.position)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block-toolbar.js","sourceRoot":"","sources":["../../../../src/docs/ui/runtime/code-block-toolbar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,aAAa,GAAG,4BAA4B,CAAA;AAClD,MAAM,iBAAiB,GAAG,WAAW,CAAA;AACrC,MAAM,UAAU,GAAG,MAAM,CAAA;AACzB,MAAM,YAAY,GAAG,QAAQ,CAAA;AAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAU/B,MAAM,UAAU,wBAAwB,CACtC,IAAS,EACT,UAAqD,EAAE;IAEvD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,UAAU;QAAE,OAAM;IAChE,MAAM,GAAG,GAAuB,OAAO,CAAC,QAAQ;WAC3C,CAAC,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAE,UAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACnF,MAAM,GAAG,GAAuB,OAAO,CAAC,SAAS;WAC5C,CAAC,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAE,UAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACpF,IAAI,CAAC,GAAG,EAAE,aAAa;QAAE,OAAM;IAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,iBAAiB,IAAI,CAAC,CAAA;IAChF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAU,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;QAC9B,
|
|
1
|
+
{"version":3,"file":"code-block-toolbar.js","sourceRoot":"","sources":["../../../../src/docs/ui/runtime/code-block-toolbar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1565,6 +1565,31 @@ function buildHttpSamples(request) {
|
|
|
1565
1565
|
samples.go = go;
|
|
1566
1566
|
return samples;
|
|
1567
1567
|
}
|
|
1568
|
+
function createSampleCopyButton(className, getText) {
|
|
1569
|
+
const button = doc.createElement('button');
|
|
1570
|
+
button.type = 'button';
|
|
1571
|
+
button.className = className;
|
|
1572
|
+
button.textContent = 'Copy';
|
|
1573
|
+
button.onclick = () => {
|
|
1574
|
+
const text = getText();
|
|
1575
|
+
const finish = () => {
|
|
1576
|
+
button.textContent = 'Copied';
|
|
1577
|
+
setTimeout(() => { if (button.textContent === 'Copied')
|
|
1578
|
+
button.textContent = 'Copy'; }, 1200);
|
|
1579
|
+
};
|
|
1580
|
+
try {
|
|
1581
|
+
const result = win.navigator?.clipboard?.writeText?.(text);
|
|
1582
|
+
if (result && typeof result.then === 'function')
|
|
1583
|
+
result.then(finish).catch(finish);
|
|
1584
|
+
else
|
|
1585
|
+
finish();
|
|
1586
|
+
}
|
|
1587
|
+
catch {
|
|
1588
|
+
finish();
|
|
1589
|
+
}
|
|
1590
|
+
};
|
|
1591
|
+
return button;
|
|
1592
|
+
}
|
|
1568
1593
|
function renderCodeExamples(endpoint, data) {
|
|
1569
1594
|
const samples = buildHttpSamples(buildStructuredHttpRequest(endpoint, data));
|
|
1570
1595
|
const langs = [
|
|
@@ -1589,6 +1614,7 @@ function renderCodeExamples(endpoint, data) {
|
|
|
1589
1614
|
content.className = `code-content${index === 0 ? ' active' : ''}`;
|
|
1590
1615
|
const pre = doc.createElement('pre');
|
|
1591
1616
|
pre.className = 'http-code-sample-pre';
|
|
1617
|
+
pre.setAttribute('data-code-toolbar', 'managed');
|
|
1592
1618
|
const code = doc.createElement('code');
|
|
1593
1619
|
code.className = `language-${language}`;
|
|
1594
1620
|
code.textContent = samples[key];
|
|
@@ -1603,21 +1629,10 @@ function renderCodeExamples(endpoint, data) {
|
|
|
1603
1629
|
tabs.appendChild(tab);
|
|
1604
1630
|
contents.appendChild(content);
|
|
1605
1631
|
});
|
|
1606
|
-
const copy =
|
|
1607
|
-
copy.type = 'button';
|
|
1608
|
-
copy.className = 'http-code-copy';
|
|
1609
|
-
copy.textContent = 'Copy';
|
|
1610
|
-
copy.onclick = () => {
|
|
1632
|
+
const copy = createSampleCopyButton('http-code-copy', () => {
|
|
1611
1633
|
const active = contents.querySelector('.code-content.active pre');
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
if (clip?.writeText) {
|
|
1615
|
-
clip.writeText(text).then(() => {
|
|
1616
|
-
copy.textContent = 'Copied';
|
|
1617
|
-
setTimeout(() => { copy.textContent = 'Copy'; }, 1200);
|
|
1618
|
-
});
|
|
1619
|
-
}
|
|
1620
|
-
};
|
|
1634
|
+
return active?.textContent ?? '';
|
|
1635
|
+
});
|
|
1621
1636
|
tabs.appendChild(copy);
|
|
1622
1637
|
wrap.appendChild(tabs);
|
|
1623
1638
|
wrap.appendChild(contents);
|
|
@@ -1748,13 +1763,18 @@ function renderResponseSamples(responses, endpoint) {
|
|
|
1748
1763
|
const label = doc.createElement('div');
|
|
1749
1764
|
label.className = 'response-example-name';
|
|
1750
1765
|
label.textContent = example.summary || example.name;
|
|
1751
|
-
mediaBlock.appendChild(label);
|
|
1752
1766
|
const pre = doc.createElement('pre');
|
|
1753
1767
|
pre.className = `sample-code${example.error ? ' sample-code-error' : ''}`;
|
|
1768
|
+
pre.setAttribute('data-code-toolbar', 'managed');
|
|
1754
1769
|
const code = doc.createElement('code');
|
|
1755
1770
|
code.className = `language-${example.language || 'text'}`;
|
|
1756
1771
|
code.textContent = example.value;
|
|
1757
1772
|
pre.appendChild(code);
|
|
1773
|
+
const toolbar = doc.createElement('div');
|
|
1774
|
+
toolbar.className = 'response-example-toolbar';
|
|
1775
|
+
toolbar.appendChild(label);
|
|
1776
|
+
toolbar.appendChild(createSampleCopyButton('sample-code-copy', () => code.textContent ?? ''));
|
|
1777
|
+
mediaBlock.appendChild(toolbar);
|
|
1758
1778
|
mediaBlock.appendChild(pre);
|
|
1759
1779
|
});
|
|
1760
1780
|
if (examples.length === 0) {
|