@diplodoc/transform 4.28.3 → 4.29.0-beta2

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/js/yfm.js CHANGED
@@ -6,6 +6,7 @@
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
10
  var __commonJS = (cb, mod) => function __require() {
10
11
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
12
  };
@@ -25,6 +26,10 @@
25
26
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
27
  mod
27
28
  ));
29
+ var __publicField = (obj, key, value) => {
30
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
31
+ return value;
32
+ };
28
33
 
29
34
  // node_modules/get-root-node-polyfill/index.js
30
35
  var require_get_root_node_polyfill = __commonJS({
@@ -56,6 +61,55 @@
56
61
  }
57
62
  });
58
63
 
64
+ // node_modules/@diplodoc/cut-extension/runtime/index.js
65
+ (() => {
66
+ var c = "yfm_cut", i = { CUT: ".yfm .yfm-cut", TITLE: ".yfm .yfm-cut-title", CONTENT: ".yfm .yfm-cut-content" }, C = { OPEN: "open" };
67
+ var o = (g) => {
68
+ let t = g.composedPath();
69
+ return Array.isArray(t) && t.length > 0 ? t[0] : g.target;
70
+ }, n = (g) => {
71
+ let t = o(g);
72
+ return !t || !t.matches;
73
+ };
74
+ var I = class {
75
+ constructor(t) {
76
+ __publicField(this, "__doc");
77
+ __publicField(this, "_onDocClick", (t) => {
78
+ if (n(t))
79
+ return;
80
+ let e = this._findTitleInPath(t);
81
+ e && this._toggleCut(e);
82
+ });
83
+ __publicField(this, "_matchTitle", (t) => {
84
+ var _a;
85
+ return t instanceof HTMLElement ? (_a = t == null ? void 0 : t.matches) == null ? void 0 : _a.call(t, i.TITLE) : false;
86
+ });
87
+ this.__doc = t, this.__doc.addEventListener("click", this._onDocClick), this.__doc.addEventListener("DOMContentLoaded", this._focusActiveCut);
88
+ }
89
+ destroy() {
90
+ this.__doc.removeEventListener("click", this._onDocClick);
91
+ }
92
+ _focusActiveCut() {
93
+ let t = window.location.hash.slice(1), e = document.getElementById(t);
94
+ e instanceof HTMLElement && e.matches(i.CUT) && (e.classList.toggle(C.OPEN), e.setAttribute("open", "true"), setTimeout(() => {
95
+ e.classList.add("cut-highlight"), e.scrollIntoView();
96
+ }, 70), setTimeout(() => {
97
+ e.classList.remove("cut-highlight");
98
+ }, 1e3));
99
+ }
100
+ _findTitleInPath(t) {
101
+ var _a, _b;
102
+ let e = o(t);
103
+ return this._matchTitle(e) ? e : (_b = (_a = t.composedPath) == null ? void 0 : _a.call(t)) == null ? void 0 : _b.find(this._matchTitle);
104
+ }
105
+ _toggleCut(t) {
106
+ var _a;
107
+ (_a = t.parentElement) == null ? void 0 : _a.classList.toggle(C.OPEN);
108
+ }
109
+ };
110
+ typeof window < "u" && typeof document < "u" && !window[c] && (window[c] = new I(document));
111
+ })();
112
+
59
113
  // node_modules/@diplodoc/tabs-extension/runtime/index.js
60
114
  (() => {
61
115
  var X = "yfm-tabs", V = "yfm-tabs-vertical", Q = "yfm-tab-list", R = "yfm-tab", f = "yfm-tab-panel", G = "active";
@@ -298,58 +352,13 @@
298
352
  });
299
353
  }
300
354
 
301
- // src/js/cut.ts
302
- var Selector = {
303
- CUT: ".yfm .yfm-cut",
304
- TITLE: ".yfm .yfm-cut-title",
305
- CONTENT: ".yfm .yfm-cut-content"
306
- };
307
- var ClassName = {
308
- OPEN: "open"
309
- };
310
- function toggleCut(element) {
311
- const cutNode = element.parentNode;
312
- if (!(cutNode instanceof HTMLElement)) {
313
- return;
314
- }
315
- cutNode.classList.toggle(ClassName.OPEN);
316
- }
317
- function matchTitle(target) {
318
- var _a;
319
- if (!(target instanceof HTMLElement)) {
320
- return false;
321
- }
322
- return (_a = target == null ? void 0 : target.matches) == null ? void 0 : _a.call(target, Selector.TITLE);
323
- }
324
- function findTitleInPath(event) {
325
- var _a;
326
- const target = getEventTarget(event);
327
- if (matchTitle(target)) {
328
- return target;
329
- }
330
- const path = (_a = event.composedPath) == null ? void 0 : _a.call(event);
331
- return path == null ? void 0 : path.find(matchTitle);
332
- }
333
- if (typeof document !== "undefined") {
334
- document.addEventListener("click", (event) => {
335
- if (isCustom(event)) {
336
- return;
337
- }
338
- const title = findTitleInPath(event);
339
- if (!title) {
340
- return;
341
- }
342
- toggleCut(title);
343
- });
344
- }
345
-
346
355
  // src/js/term/utils.ts
347
- var Selector2 = {
356
+ var Selector = {
348
357
  TITLE: ".yfm .yfm-term_title",
349
358
  CONTENT: ".yfm .yfm-term_dfn"
350
359
  };
351
360
  var openClass = "open";
352
- var openDefinitionClass = Selector2.CONTENT.replace(/\./g, "") + " " + openClass;
361
+ var openDefinitionClass = Selector.CONTENT.replace(/\./g, "") + " " + openClass;
353
362
  var isListenerNeeded = true;
354
363
  function createDefinitionElement(termElement) {
355
364
  var _a;
@@ -366,10 +375,9 @@
366
375
  const termId = termElement.getAttribute("id") || Math.random().toString(36).substr(2, 8);
367
376
  definitionElement == null ? void 0 : definitionElement.setAttribute("term-id", termId);
368
377
  }
369
- function setDefinitonAriaAttributes(definitionElement, termElement) {
378
+ function setDefinitonAriaLive(definitionElement, termElement) {
370
379
  const ariaLive = termElement.getAttribute("aria-live") || "polite";
371
380
  definitionElement == null ? void 0 : definitionElement.setAttribute("aria-live", ariaLive);
372
- definitionElement == null ? void 0 : definitionElement.setAttribute("aria-modal", "true");
373
381
  }
374
382
  function setDefinitionPosition(definitionElement, termElement) {
375
383
  const {
@@ -454,16 +462,16 @@
454
462
  return;
455
463
  }
456
464
  const isTargetDefinitionContent = target.closest(
457
- [Selector2.CONTENT.replace(" ", ""), openClass].join(".")
465
+ [Selector.CONTENT.replace(" ", ""), openClass].join(".")
458
466
  );
459
467
  if (openedDefinition && !isTargetDefinitionContent) {
460
468
  closeDefinition(openedDefinition);
461
469
  }
462
- if (!target.matches(Selector2.TITLE) || !definitionElement) {
470
+ if (!target.matches(Selector.TITLE) || !definitionElement) {
463
471
  return;
464
472
  }
465
473
  setDefinitionId(definitionElement, target);
466
- setDefinitonAriaAttributes(definitionElement, target);
474
+ setDefinitonAriaLive(definitionElement, target);
467
475
  setDefinitionPosition(definitionElement, target);
468
476
  definitionElement.classList.toggle(openClass);
469
477
  trapFocus(definitionElement);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/get-root-node-polyfill/index.js", "../../node_modules/@diplodoc/tabs-extension/src/common.ts", "../../node_modules/@diplodoc/tabs-extension/src/runtime/utils.ts", "../../node_modules/@diplodoc/tabs-extension/src/runtime/TabsController.ts", "../../node_modules/@diplodoc/tabs-extension/src/runtime/index.ts", "../../src/js/polyfill.js", "../../src/js/utils.ts", "../../src/js/code.ts", "../../src/js/cut.ts", "../../src/js/term/utils.ts", "../../src/js/term/index.ts", "../../src/js/wide-mode/constants.ts", "../../src/js/wide-mode/icons/expand.ts", "../../src/js/wide-mode/icons/close.ts", "../../src/js/wide-mode/modal.ts", "../../src/js/wide-mode/apply.ts", "../../src/js/wide-mode/index.ts", "../../src/js/patch.ts"],
4
- "sourcesContent": ["'use strict';\n\n// Node getRootNode(optional GetRootNodeOptions options);\n\n/**\n * Returns the context object\u2019s shadow-including root if options\u2019s composed is true.\n * Returns the context object\u2019s root otherwise.\n *\n * The root of an object is itself, if its parent is null, or else it is the root of its parent.\n *\n * The shadow-including root of an object is its root\u2019s host\u2019s shadow-including root,\n * if the object\u2019s root is a shadow root, and its root otherwise.\n *\n * https://dom.spec.whatwg.org/#dom-node-getrootnode\n *\n * @memberof Node.prototype\n * @param {!Object} [opt = {}] - Options.\n * @param {!boolean} [opt.composed] - See above description.\n * @returns {!Node} The root node.\n */\nfunction getRootNode(opt) {\n var composed = typeof opt === 'object' && Boolean(opt.composed);\n\n return composed ? getShadowIncludingRoot(this) : getRoot(this);\n}\n\nfunction getShadowIncludingRoot(node) {\n var root = getRoot(node);\n\n if (isShadowRoot(root)) {\n return getShadowIncludingRoot(root.host);\n }\n\n return root;\n}\n\nfunction getRoot(node) {\n if (node.parentNode != null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\nfunction isShadowRoot(node) {\n return node.nodeName === '#document-fragment' && node.constructor.name === 'ShadowRoot';\n}\n\nif (typeof module === 'object' && module.exports) {\n module.exports = getRootNode;\n}\n", "import type {TabsOrientation} from './plugin/transform';\nimport type {TabsController} from './runtime/TabsController';\n\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TABS_VERTICAL_CLASSNAME = 'yfm-tabs-vertical';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\nexport const VERTICAL_TAB_FORCED_OPEN = 'data-diplodoc-radio-forced';\n\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\nexport const ACTIVE_TAB_TEXT = '{selected}';\n\nexport interface Tab {\n group?: string;\n key: string;\n align: TabsOrientation;\n}\n\nexport interface SelectedTabEvent {\n tab: Tab;\n currentTabId?: string;\n}\n\nexport const GLOBAL_SYMBOL: unique symbol = Symbol.for('diplodocTabs');\n\ndeclare global {\n interface Window {\n [GLOBAL_SYMBOL]: TabsController;\n }\n}\n", "export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n\nexport const getClosestScrollableParent = (element: HTMLElement): HTMLElement | undefined => {\n if (Math.abs(element.scrollHeight - element.clientHeight) > 1) {\n return element;\n }\n\n return element.parentElement ? getClosestScrollableParent(element.parentElement) : undefined;\n};\n\nexport interface ElementOffset {\n top: number;\n left: number;\n scrollTop: number;\n scrollLeft: number;\n}\n\nexport const getOffsetByScrollableParent = (\n element: HTMLElement,\n scrollableParent: HTMLElement,\n): ElementOffset => {\n const elementBounds = element.getBoundingClientRect();\n const scrollableParentBounds = scrollableParent.getBoundingClientRect();\n return {\n top: elementBounds.top - scrollableParentBounds.top,\n left: elementBounds.left - scrollableParentBounds.left,\n scrollTop: scrollableParent.scrollTop,\n scrollLeft: scrollableParent.scrollLeft,\n };\n};\n", "import {\n ACTIVE_CLASSNAME,\n DEFAULT_TABS_GROUP_PREFIX,\n GROUP_DATA_KEY,\n SelectedTabEvent,\n TABS_CLASSNAME,\n TABS_LIST_CLASSNAME,\n TABS_VERTICAL_CLASSNAME,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_PANEL_CLASSNAME,\n Tab,\n VERTICAL_TAB_FORCED_OPEN,\n} from '../common';\nimport type {TabsOrientation} from '../plugin/transform';\nimport {\n ElementOffset,\n getClosestScrollableParent,\n getEventTarget,\n getOffsetByScrollableParent,\n isCustom,\n} from './utils';\n\nconst Selector = {\n TABS: `.${TABS_CLASSNAME}`,\n TAB_LIST: `.${TABS_LIST_CLASSNAME}`,\n TAB: `.${TAB_CLASSNAME}`,\n TAB_PANEL: `.${TAB_PANEL_CLASSNAME}`,\n VERTICAL_TABS: `.${TABS_VERTICAL_CLASSNAME}`,\n};\n\nexport interface ISelectTabByIdOptions {\n scrollToElement: boolean;\n}\n\ntype Handler = (data: SelectedTabEvent) => void;\n\ntype TabSwitchDirection = 'left' | 'right';\n\nexport class TabsController {\n private _document: Document;\n\n private _onSelectTabHandlers: Set<Handler> = new Set();\n\n constructor(document: Document) {\n this._document = document;\n this._document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n const areVertical = this.areTabsVertical(target);\n\n if (isCustom(event)) {\n return;\n }\n\n if (!(this.isValidTabElement(target) || areVertical)) {\n return;\n }\n\n const tab = this.getTabDataFromHTMLElement(target);\n\n if (tab) {\n this._selectTab(tab, target);\n }\n });\n this._document.addEventListener('keydown', (event) => {\n let direction: TabSwitchDirection | null = null;\n switch (event.key) {\n case 'ArrowLeft': {\n direction = 'left';\n break;\n }\n case 'ArrowRight': {\n direction = 'right';\n break;\n }\n case 'ArrowUp': {\n direction = 'left';\n break;\n }\n case 'ArrowDown': {\n direction = 'right';\n break;\n }\n }\n if (!direction) {\n return;\n }\n\n const target = getEventTarget(event) as HTMLElement;\n\n if (isCustom(event) || !this.isValidTabElement(target)) {\n return;\n }\n\n const {tabs, nodes} = this.getTabs(target);\n const currentTab = this.getTabDataFromHTMLElement(target);\n const currentTabIndex = tabs.findIndex(\n ({key}) => currentTab?.key && key === currentTab.key,\n );\n if (!currentTab || tabs.length <= 1 || currentTabIndex === -1) {\n return;\n }\n\n const newIndex =\n (currentTabIndex + (direction === 'left' ? -1 : 1) + tabs.length) % tabs.length;\n\n this.selectTab(tabs[newIndex]);\n nodes[newIndex].focus();\n });\n }\n\n onSelectTab(handler: Handler) {\n this._onSelectTabHandlers.add(handler);\n\n return () => {\n this._onSelectTabHandlers.delete(handler);\n };\n }\n\n selectTabById(id: string, options?: ISelectTabByIdOptions) {\n const target = this._document.querySelector(\n `${Selector.TAB}[${TAB_DATA_ID}=\"${id}\"]`,\n ) as HTMLElement;\n\n if (!target || !this.isValidTabElement(target)) {\n return;\n }\n\n const tab = this.getTabDataFromHTMLElement(target);\n\n if (tab) {\n this._selectTab(tab, target);\n }\n\n if (options?.scrollToElement) {\n target.scrollIntoView();\n }\n }\n\n selectTab(tab: Tab) {\n this._selectTab(tab);\n }\n\n private _selectTab(tab: Tab, targetTab?: HTMLElement) {\n const {group, key, align} = tab;\n\n if (!group) {\n return;\n }\n\n const scrollableParent = targetTab && getClosestScrollableParent(targetTab);\n const previousTargetOffset =\n scrollableParent && getOffsetByScrollableParent(targetTab, scrollableParent);\n\n const updatedTabs = this.updateHTML({group, key, align}, targetTab, align);\n\n if (updatedTabs > 0) {\n this.fireSelectTabEvent({group, key, align}, targetTab?.dataset.diplodocId);\n\n if (previousTargetOffset) {\n this.resetScroll(targetTab, scrollableParent, previousTargetOffset);\n }\n }\n }\n\n private updateHTML(\n tab: Required<Tab>,\n target: HTMLElement | undefined,\n align: TabsOrientation,\n ) {\n switch (align) {\n case 'radio': {\n return this.updateHTMLVertical(tab, target);\n }\n case 'horizontal': {\n return this.updateHTMLHorizontal(tab);\n }\n }\n\n return 0;\n }\n\n private updateHTMLVertical(tab: Required<Tab>, target: HTMLElement | undefined) {\n const {group, key} = tab;\n\n const {isForced, root} = this.didTabOpenForce(target);\n\n const singleTabSelector = isForced\n ? `.yfm-vertical-tab[${VERTICAL_TAB_FORCED_OPEN}=\"true\"]`\n : '';\n\n const tabs = this._document.querySelectorAll(\n `${Selector.TABS}[${GROUP_DATA_KEY}=\"${group}\"] ${Selector.TAB}[${TAB_DATA_KEY}=\"${key}\"]${singleTabSelector}`,\n );\n\n if (isForced) {\n root?.removeAttribute(VERTICAL_TAB_FORCED_OPEN);\n }\n\n let updated = 0;\n\n tabs.forEach((tab) => {\n const root = tab.parentNode!;\n const elements = root.children;\n\n for (let i = 0; i < elements.length; i += 2) {\n const [title, content] = [elements.item(i), elements.item(i + 1)] as HTMLElement[];\n\n const input = title.children.item(0) as HTMLInputElement;\n\n if (title === tab) {\n const checked = input.checked;\n\n if (checked) {\n title.classList.remove('active');\n content?.classList.remove('active');\n\n input.removeAttribute('checked');\n } else {\n title.classList.add('active');\n content?.classList.add('active');\n\n input.setAttribute('checked', 'true');\n }\n\n continue;\n }\n\n if (input.hasAttribute('checked')) {\n title.classList.remove('active');\n content?.classList.remove('active');\n\n input.removeAttribute('checked');\n }\n\n updated++;\n }\n });\n\n return updated;\n }\n\n private updateHTMLHorizontal(tab: Required<Tab>) {\n const {group, key} = tab;\n\n const tabs = this._document.querySelectorAll(\n `${Selector.TABS}[${GROUP_DATA_KEY}=\"${group}\"] ${Selector.TAB}[${TAB_DATA_KEY}=\"${key}\"]`,\n );\n\n let updated = 0;\n\n tabs.forEach((element) => {\n const htmlElem = element as HTMLElement;\n if (!this.isValidTabElement(htmlElem) || htmlElem.dataset.diplodocIsActive === 'true') {\n return;\n }\n\n updated++;\n\n const tab = element;\n const tabList = tab.parentNode;\n const tabsContainer = tabList?.parentNode;\n const allTabs = Array.from(tabList?.querySelectorAll(Selector.TAB) || []);\n const allPanels = Array.from(tabsContainer?.children || []).filter((node) =>\n node.classList.contains(TAB_PANEL_CLASSNAME),\n );\n const targetIndex = allTabs.indexOf(tab);\n\n allTabs.forEach((tab, i) => {\n const panel = allPanels[i];\n const isTargetTab = i === targetIndex;\n const htmlElem = tab as HTMLElement;\n\n htmlElem.dataset.diplodocIsActive = isTargetTab ? 'true' : 'false';\n\n tab.classList.toggle(ACTIVE_CLASSNAME, isTargetTab);\n tab.setAttribute('aria-selected', isTargetTab.toString());\n tab.setAttribute('tabindex', isTargetTab ? '0' : '-1');\n panel.classList.toggle(ACTIVE_CLASSNAME, isTargetTab);\n });\n });\n\n return updated;\n }\n\n private resetScroll(\n target: HTMLElement,\n scrollableParent: HTMLElement,\n previousTargetOffset: ElementOffset,\n ) {\n const targetOffset = getOffsetByScrollableParent(target, scrollableParent);\n const topDelta = targetOffset.top - previousTargetOffset.top;\n const leftDelta = targetOffset.left - previousTargetOffset.left;\n const scrollTopDelta = targetOffset.scrollTop - previousTargetOffset.scrollTop;\n const scrollLeftDelta = targetOffset.scrollLeft - previousTargetOffset.scrollLeft;\n scrollableParent.scrollTo(\n scrollableParent.scrollLeft + leftDelta - scrollLeftDelta,\n scrollableParent.scrollTop + topDelta - scrollTopDelta,\n );\n }\n\n private didTabOpenForce(target?: HTMLElement) {\n if (!target) {\n return {};\n }\n\n const root = target.dataset.diplodocVerticalTab ? target : target.parentElement;\n\n const isForced = typeof root?.dataset.diplodocRadioForced !== 'undefined';\n\n return {root, isForced};\n }\n\n private fireSelectTabEvent(tab: Required<Tab>, diplodocId?: string) {\n const {group, key, align} = tab;\n\n const eventTab: Tab = group.startsWith(DEFAULT_TABS_GROUP_PREFIX) ? {key, align} : tab;\n\n this._onSelectTabHandlers.forEach((handler) => {\n handler({tab: eventTab, currentTabId: diplodocId});\n });\n }\n\n private isValidTabElement(element: HTMLElement) {\n const tabList =\n element.matches(Selector.TAB) && element.dataset.diplodocId\n ? element.closest(Selector.TAB_LIST)\n : null;\n\n return tabList?.closest(Selector.TABS);\n }\n\n private areTabsVertical(target: HTMLElement) {\n const parent = target.parentElement;\n\n return target.dataset.diplodocVerticalTab || Boolean(parent?.dataset.diplodocVerticalTab);\n }\n\n private getTabDataFromHTMLElement(target: HTMLElement): Tab | null {\n if (this.areTabsVertical(target)) {\n const tab = target.dataset.diplodocVerticalTab ? target : target.parentElement!;\n\n const key = tab.dataset.diplodocKey;\n const group = (tab.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, align: 'radio'} : null;\n }\n\n const key = target.dataset.diplodocKey;\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, align: 'horizontal'} : null;\n }\n\n private getTabs(target: HTMLElement): {tabs: Tab[]; nodes: NodeListOf<HTMLElement>} {\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n const nodes = (\n target.closest(Selector.TAB_LIST) as HTMLElement\n )?.querySelectorAll<HTMLElement>(Selector.TAB);\n\n const tabs: Tab[] = [];\n nodes.forEach((tabEl) => {\n const key = tabEl?.dataset.diplodocKey;\n if (!key) {\n return;\n }\n\n /** horizontal-only supported feature (used in left/right button click) */\n tabs.push({\n group,\n key,\n align: 'horizontal',\n });\n });\n\n return {tabs, nodes};\n }\n}\n", "import {GLOBAL_SYMBOL} from '../common';\nimport {TabsController} from './TabsController';\nimport './scss/tabs.scss';\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && !window[GLOBAL_SYMBOL]) {\n window[GLOBAL_SYMBOL] = new TabsController(document);\n}\n", "import getRootNode from 'get-root-node-polyfill';\n\nif (typeof document !== 'undefined') {\n // matches polyfill for old edge\n (function (e) {\n const matches =\n e.matches ||\n e.matchesSelector ||\n e.webkitMatchesSelector ||\n e.mozMatchesSelector ||\n e.msMatchesSelector ||\n e.oMatchesSelector;\n\n if (matches) {\n e.matches = e.matchesSelector = matches;\n } else {\n e.matches = e.matchesSelector = function matches(selector) {\n const rootNode = e.getRootNode ? e.getRootNode() : getRootNode.call(e);\n const matches = rootNode.querySelectorAll(selector);\n const th = this;\n return Array.prototype.some.call(matches, (e) => {\n return e === th;\n });\n };\n }\n })(Element.prototype);\n}\n", "export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n", "import {getEventTarget, isCustom} from './utils';\n\nconst BUTTON_SELECTOR = '.yfm-clipboard-button';\n\nfunction copyToClipboard(text: string) {\n if (!text) {\n return Promise.resolve();\n }\n\n if (navigator.clipboard && typeof navigator.clipboard.writeText) {\n return navigator.clipboard.writeText(text);\n }\n const textarea = document.createElement('textarea');\n textarea.setAttribute('style', 'position: absolute; left: 1000%');\n textarea.textContent = text;\n document.body.append(textarea);\n\n textarea.select();\n document.execCommand('copy');\n\n document.body.removeChild(textarea);\n\n return Promise.resolve();\n}\n\nfunction notifySuccess(svgButton: HTMLElement | null) {\n if (!svgButton) {\n return;\n }\n\n const id = svgButton.getAttribute('data-animation');\n // @ts-expect-error\n const icon = svgButton.getRootNode().getElementById(`visibileAnimation-${id}`);\n\n if (!icon) {\n return;\n }\n\n icon.beginElement();\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n\n if (isCustom(event) || !target.matches(BUTTON_SELECTOR)) {\n return;\n }\n\n const parent = target.parentNode;\n\n if (!parent) {\n return;\n }\n\n const code = parent.querySelector<HTMLElement>('pre code');\n if (!code) {\n return;\n }\n\n copyToClipboard(code.innerText).then(() => {\n notifySuccess(parent.querySelector('.yfm-clipboard-icon'));\n });\n });\n}\n", "import {getEventTarget, isCustom} from './utils';\n\nconst Selector = {\n CUT: '.yfm .yfm-cut',\n TITLE: '.yfm .yfm-cut-title',\n CONTENT: '.yfm .yfm-cut-content',\n};\n\nconst ClassName = {\n OPEN: 'open',\n};\n\nfunction toggleCut(element: HTMLElement) {\n const cutNode = element.parentNode;\n\n if (!(cutNode instanceof HTMLElement)) {\n return;\n }\n\n cutNode.classList.toggle(ClassName.OPEN);\n}\n\nfunction matchTitle(target: EventTarget | null) {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n\n return target?.matches?.(Selector.TITLE);\n}\n\nfunction findTitleInPath(event: MouseEvent): HTMLElement | undefined {\n const target = getEventTarget(event);\n\n if (matchTitle(target)) {\n return target as HTMLElement;\n }\n\n const path = event.composedPath?.();\n\n return path?.find(matchTitle) as HTMLElement | undefined;\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n if (isCustom(event)) {\n return;\n }\n\n const title = findTitleInPath(event);\n\n if (!title) {\n return;\n }\n\n toggleCut(title);\n });\n}\n", "export const Selector = {\n TITLE: '.yfm .yfm-term_title',\n CONTENT: '.yfm .yfm-term_dfn',\n};\nexport const openClass = 'open';\nexport const openDefinitionClass = Selector.CONTENT.replace(/\\./g, '') + ' ' + openClass;\nlet isListenerNeeded = true;\n\nexport function createDefinitionElement(termElement: HTMLElement) {\n const termKey = termElement.getAttribute('term-key');\n const definitionTemplate = document.getElementById(\n `${termKey}_template`,\n ) as HTMLTemplateElement;\n const definitionElement = definitionTemplate?.content.cloneNode(true).firstChild as HTMLElement;\n\n definitionTemplate?.parentElement?.appendChild(definitionElement);\n definitionTemplate.remove();\n\n return definitionElement;\n}\n\nexport function setDefinitionId(definitionElement: HTMLElement, termElement: HTMLElement): void {\n const termId = termElement.getAttribute('id') || Math.random().toString(36).substr(2, 8);\n definitionElement?.setAttribute('term-id', termId);\n}\n\nexport function setDefinitonAriaAttributes(\n definitionElement: HTMLElement,\n termElement: HTMLElement,\n): void {\n const ariaLive = termElement.getAttribute('aria-live') || 'polite';\n definitionElement?.setAttribute('aria-live', ariaLive);\n definitionElement?.setAttribute('aria-modal', 'true');\n}\n\nexport function setDefinitionPosition(\n definitionElement: HTMLElement,\n termElement: HTMLElement,\n): void {\n const {\n x: termX,\n y: termY,\n right: termRight,\n left: termLeft,\n width: termWidth,\n height: termHeight,\n } = termElement.getBoundingClientRect();\n\n const termParent = termParentElement(termElement);\n\n if (!termParent) {\n return;\n }\n\n const {right: termParentRight, left: termParentLeft} = termParent.getBoundingClientRect();\n\n if ((termParentRight < termLeft || termParentLeft > termRight) && !isListenerNeeded) {\n closeDefinition(definitionElement);\n return;\n }\n\n if (isListenerNeeded && termParent) {\n termParent.addEventListener('scroll', termOnResize);\n isListenerNeeded = false;\n }\n\n const relativeX = Number(definitionElement.getAttribute('relativeX'));\n const relativeY = Number(definitionElement.getAttribute('relativeY'));\n\n if (relativeX === termX && relativeY === termY) {\n return;\n }\n\n definitionElement.setAttribute('relativeX', String(termX));\n definitionElement.setAttribute('relativeY', String(termY));\n\n const offsetTop = termHeight + 5;\n const definitionParent = definitionElement.parentElement;\n\n if (!definitionParent) {\n return;\n }\n\n const {width: definitionWidth} = definitionElement.getBoundingClientRect();\n const {left: definitionParentLeft} = definitionParent.getBoundingClientRect();\n\n // If definition not fit document change base alignment\n const definitionLeftCoordinate = Number(getCoords(termElement).left);\n const definitionRightCoordinate = definitionWidth + definitionLeftCoordinate;\n\n const definitionOutOfScreenOnLeft = definitionLeftCoordinate - definitionWidth < 0;\n const definitionOutOfScreenOnRight = definitionRightCoordinate > document.body.clientWidth;\n\n const isAlignSwapped = definitionOutOfScreenOnRight || document.dir === 'rtl';\n const fitDefinitionDocument =\n isAlignSwapped && !definitionOutOfScreenOnLeft ? definitionWidth - termWidth : 0;\n const customHeaderTop = getCoords(definitionParent).top - definitionParent.offsetTop;\n const offsetRight = 5;\n const shiftLeft = definitionOutOfScreenOnRight\n ? definitionRightCoordinate - document.body.clientWidth + offsetRight\n : 0;\n const offsetLeft =\n getCoords(termElement).left -\n definitionParentLeft +\n definitionParent.offsetLeft -\n fitDefinitionDocument;\n\n const isShiftLeftNeeded = offsetLeft + definitionWidth >= document.body.clientWidth;\n\n definitionElement.style.top =\n Number(getCoords(termElement).top + offsetTop - customHeaderTop) + 'px';\n definitionElement.style.left = Number(offsetLeft - (isShiftLeftNeeded ? shiftLeft : 0)) + 'px';\n}\n\nfunction termOnResize() {\n const openedDefinition = document.getElementsByClassName(openDefinitionClass)[0] as HTMLElement;\n\n if (!openedDefinition) {\n return;\n }\n const termId = openedDefinition.getAttribute('term-id') || '';\n const termElement = document.getElementById(termId);\n\n if (!termElement) {\n return;\n }\n\n setDefinitionPosition(openedDefinition, termElement);\n}\n\nfunction termParentElement(term: HTMLElement | null) {\n if (!term) {\n return null;\n }\n\n const closestScrollableParent = term.closest('table') || term.closest('code');\n\n return closestScrollableParent || term.parentElement;\n}\n\nexport function openDefinition(target: HTMLElement) {\n const openedDefinition = document.getElementsByClassName(openDefinitionClass)[0] as HTMLElement;\n\n const termId = target.getAttribute('id');\n const termKey = target.getAttribute('term-key');\n let definitionElement = document.getElementById(termKey + '_element');\n\n if (termKey && !definitionElement) {\n definitionElement = createDefinitionElement(target);\n }\n\n const isSameTerm = openedDefinition && termId === openedDefinition.getAttribute('term-id');\n if (isSameTerm) {\n closeDefinition(openedDefinition);\n return;\n }\n\n const isTargetDefinitionContent = target.closest(\n [Selector.CONTENT.replace(' ', ''), openClass].join('.'),\n );\n\n if (openedDefinition && !isTargetDefinitionContent) {\n closeDefinition(openedDefinition);\n }\n\n if (!target.matches(Selector.TITLE) || !definitionElement) {\n return;\n }\n\n setDefinitionId(definitionElement, target);\n setDefinitonAriaAttributes(definitionElement, target);\n setDefinitionPosition(definitionElement, target);\n\n definitionElement.classList.toggle(openClass);\n\n trapFocus(definitionElement);\n}\n\nexport function closeDefinition(definition: HTMLElement) {\n definition.classList.remove(openClass);\n const termId = definition.getAttribute('term-id') || '';\n const term = document.getElementById(termId);\n const termParent = termParentElement(term);\n\n if (!termParent) {\n return;\n }\n\n termParent.removeEventListener('scroll', termOnResize);\n term?.focus(); // Set focus back to open button after closing popup\n\n isListenerNeeded = true;\n}\n\nfunction getCoords(elem: HTMLElement) {\n const box = elem.getBoundingClientRect();\n\n const body = document.body;\n const docEl = document.documentElement;\n\n const scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n\n const top = box.top + scrollTop - clientTop;\n const left = box.left + scrollLeft - clientLeft;\n\n return {top: Math.round(top), left: Math.round(left)};\n}\n\nexport function trapFocus(element: HTMLElement) {\n const focusableElements = element.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n const firstFocusableElement = focusableElements[0] as HTMLElement;\n const lastFocusableElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n if (firstFocusableElement) {\n firstFocusableElement.focus();\n }\n\n element.addEventListener('keydown', function (e) {\n const isTabPressed = e.key === 'Tab' || e.keyCode === 9;\n if (!isTabPressed) {\n return;\n }\n\n if (e.shiftKey) {\n if (document.activeElement === firstFocusableElement) {\n lastFocusableElement.focus();\n e.preventDefault();\n }\n } else if (document.activeElement === lastFocusableElement) {\n firstFocusableElement.focus();\n e.preventDefault();\n }\n });\n}\n", "import {getEventTarget, isCustom} from '../utils';\nimport {\n closeDefinition,\n openClass,\n openDefinition,\n openDefinitionClass,\n setDefinitionPosition,\n} from './utils';\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n if (getEventTarget(event) || !isCustom(event)) {\n openDefinition(getEventTarget(event) as HTMLElement);\n }\n });\n\n document.addEventListener('keydown', (event) => {\n const openedDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n\n if (event.key === 'Enter' && document.activeElement) {\n openDefinition(document.activeElement as HTMLElement);\n }\n\n if (event.key === 'Escape' && openedDefinition) {\n closeDefinition(openedDefinition);\n }\n });\n\n window.addEventListener('resize', () => {\n const openedDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n\n if (!openedDefinition) {\n return;\n }\n\n const termId = openedDefinition.getAttribute('term-id') || '';\n const termElement = document.getElementById(termId);\n\n if (!termElement) {\n openedDefinition.classList.toggle(openClass);\n return;\n }\n\n setDefinitionPosition(openedDefinition, termElement);\n });\n}\n", "export const WIDE_ELEMENTS_SELECTOR = '[wide-content]';\n", "export default `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M7.754 2.004a.75.75 0 0 0 0 1.5h4.75v4.742a.75.75 0 0 0 1.5 0V2.754a.75.75 0 0 0-.75-.75zm.492 11.992a.75.75 0 0 0 0-1.5h-4.75V7.754a.75.75 0 0 0-1.5 0v5.492a.75.75 0 0 0 .75.75z\" clip-rule=\"evenodd\"/></svg>`;\n", "export default `<svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"close-action\"><path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M9.46967 9.46967C9.76256 9.17678 10.2374 9.17678 10.5303 9.46967L14 12.9393L17.4697 9.46967C17.7626 9.17678 18.2374 9.17678 18.5303 9.46967C18.8232 9.76256 18.8232 10.2374 18.5303 10.5303L15.0607 14L18.5303 17.4697C18.8232 17.7626 18.8232 18.2374 18.5303 18.5303C18.2374 18.8232 17.7626 18.8232 17.4697 18.5303L14 15.0607L10.5303 18.5303C10.2374 18.8232 9.76256 18.8232 9.46967 18.5303C9.17678 18.2374 9.17678 17.7626 9.46967 17.4697L12.9393 14L9.46967 10.5303C9.17678 10.2374 9.17678 9.76256 9.46967 9.46967Z\" fill=\"var(--g-color-text-primary)\" fillOpacity=\"0.85\"/></svg>`;\n", "import closeIcon from './icons/close';\n\nconst remove = () => {\n if (!window.wideTemplate) {\n return;\n }\n\n window.wideTemplate.style.display = 'none';\n window.wideTemplate.content(undefined);\n};\n\nconst tbodyOf = (node: HTMLElement) => {\n if (node.tagName !== 'TABLE') {\n return undefined;\n }\n\n const elements = Array.from(node.children);\n\n const thead = elements.find((child) => child.tagName === 'THEAD');\n\n if (thead) {\n return undefined;\n }\n\n const tbody = elements.find((child) => child.tagName === 'TBODY');\n\n return tbody;\n};\n\ntype ModalContainer = NonNullable<typeof window.wideTemplate>;\n\n/* @todo refactor to markup with innerHTML @v8tenko */\n\nconst container = () => {\n if (window.wideTemplate) {\n return window.wideTemplate;\n }\n\n const template = document.createElement('div') as ModalContainer;\n template.classList.add('dc-doc-page', 'wide-container');\n\n const overlay = document.createElement('div');\n overlay.classList.add('wide-content-overlay');\n overlay.addEventListener('click', remove);\n\n const wrapper = document.createElement('div');\n wrapper.classList.add('yfm', 'wide-content-wrapper');\n\n const toolbar = document.createElement('div');\n toolbar.classList.add('wide-toolbar');\n\n const close = document.createElement('div');\n close.classList.add('wide-actions');\n close.addEventListener('click', remove);\n close.innerHTML = closeIcon;\n\n const title = document.createElement('p');\n title.classList.add('wide-entity-name');\n\n template.label = (content?: string) => {\n title.innerHTML = content || '';\n };\n\n const content = document.createElement('div');\n content.classList.add('wide-content');\n\n template.content = (target?: Element) => {\n if (typeof target === 'undefined') {\n content.innerHTML = '';\n\n return;\n }\n\n const cloned = target.cloneNode(true) as HTMLElement;\n\n const tbody = tbodyOf(cloned);\n\n /* used to stretch single tbody to 100% */\n tbody?.classList?.add('wide-thead-content');\n\n content.replaceChildren(cloned);\n };\n\n toolbar.append(title, close);\n wrapper.append(toolbar, content);\n template.append(overlay, wrapper);\n\n template.style.display = 'none';\n document.body.appendChild(template);\n\n window.wideTemplate = template;\n\n return template;\n};\n\nconst render = (content: HTMLElement) => {\n const template = container();\n\n template.label(content.title);\n template.content(content);\n\n template.style.display = 'flex';\n};\n\nexport const modal = {\n render,\n remove,\n};\n", "import {WIDE_ELEMENTS_SELECTOR} from './constants';\nimport expand from './icons/expand';\nimport {modal} from './modal';\n\nconst wrap = (target: HTMLElement) => {\n if (target.parentElement?.classList.contains('wide-element-wrapper')) {\n return;\n }\n\n target.classList.add('wide-inner-element');\n\n const handler = document.createElement('div');\n\n handler.innerHTML = expand;\n handler.classList.add('wide-content-viewer');\n handler.addEventListener('click', () => modal.render(target));\n\n const container = document.createElement('div');\n\n container.classList.add('wide-element-wrapper');\n\n target.before(container);\n\n container.appendChild(target);\n container.appendChild(handler);\n};\n\nexport const applyWideMode = () => {\n const allWideElements = Array.from(\n document.querySelectorAll(WIDE_ELEMENTS_SELECTOR),\n ) as HTMLElement[];\n\n allWideElements.forEach(wrap);\n};\n", "import {applyWideMode} from './apply';\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n window.addEventListener('load', applyWideMode);\n}\n", "import {applyWideMode} from './wide-mode/apply';\n\nconst patch = () => {\n applyWideMode();\n};\n\nif (typeof window !== 'undefined') {\n window.patchAfterRender = patch;\n}\n"],
5
- "mappings": "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",
6
- "names": ["getRootNode", "TABS_CLASSNAME", "TABS_VERTICAL_CLASSNAME", "TABS_LIST_CLASSNAME", "TAB_CLASSNAME", "TAB_PANEL_CLASSNAME", "ACTIVE_CLASSNAME", "VERTICAL_TAB_FORCED_OPEN", "GROUP_DATA_KEY", "TAB_DATA_KEY", "TAB_DATA_ID", "DEFAULT_TABS_GROUP_PREFIX", "GLOBAL_SYMBOL", "getEventTarget", "event", "path", "isCustom", "target", "getClosestScrollableParent", "element", "getOffsetByScrollableParent", "scrollableParent", "elementBounds", "scrollableParentBounds", "Selector", "TabsController", "document", "areVertical", "tab", "direction", "tabs", "nodes", "currentTab", "currentTabIndex", "key", "newIndex", "handler", "id", "options", "targetTab", "group", "align", "previousTargetOffset", "isForced", "root", "singleTabSelector", "updated", "elements", "i", "title", "content", "input", "htmlElem", "tabList", "tabsContainer", "allTabs", "allPanels", "node", "targetIndex", "panel", "isTargetTab", "targetOffset", "topDelta", "leftDelta", "scrollTopDelta", "scrollLeftDelta", "diplodocId", "eventTab", "parent", "_a", "_b", "tabEl", "matches", "getRootNode", "e", "Selector", "content", "container"]
3
+ "sources": ["../../node_modules/get-root-node-polyfill/index.js", "../../node_modules/@diplodoc/cut-extension/src/runtime/const.ts", "../../node_modules/@diplodoc/cut-extension/src/runtime/utils.ts", "../../node_modules/@diplodoc/cut-extension/src/runtime/controller.ts", "../../node_modules/@diplodoc/cut-extension/src/runtime/index.ts", "../../node_modules/@diplodoc/tabs-extension/src/common.ts", "../../node_modules/@diplodoc/tabs-extension/src/runtime/utils.ts", "../../node_modules/@diplodoc/tabs-extension/src/runtime/TabsController.ts", "../../node_modules/@diplodoc/tabs-extension/src/runtime/index.ts", "../../src/js/polyfill.js", "../../src/js/utils.ts", "../../src/js/code.ts", "../../src/js/term/utils.ts", "../../src/js/term/index.ts", "../../src/js/wide-mode/constants.ts", "../../src/js/wide-mode/icons/expand.ts", "../../src/js/wide-mode/icons/close.ts", "../../src/js/wide-mode/modal.ts", "../../src/js/wide-mode/apply.ts", "../../src/js/wide-mode/index.ts", "../../src/js/patch.ts"],
4
+ "sourcesContent": ["'use strict';\n\n// Node getRootNode(optional GetRootNodeOptions options);\n\n/**\n * Returns the context object\u2019s shadow-including root if options\u2019s composed is true.\n * Returns the context object\u2019s root otherwise.\n *\n * The root of an object is itself, if its parent is null, or else it is the root of its parent.\n *\n * The shadow-including root of an object is its root\u2019s host\u2019s shadow-including root,\n * if the object\u2019s root is a shadow root, and its root otherwise.\n *\n * https://dom.spec.whatwg.org/#dom-node-getrootnode\n *\n * @memberof Node.prototype\n * @param {!Object} [opt = {}] - Options.\n * @param {!boolean} [opt.composed] - See above description.\n * @returns {!Node} The root node.\n */\nfunction getRootNode(opt) {\n var composed = typeof opt === 'object' && Boolean(opt.composed);\n\n return composed ? getShadowIncludingRoot(this) : getRoot(this);\n}\n\nfunction getShadowIncludingRoot(node) {\n var root = getRoot(node);\n\n if (isShadowRoot(root)) {\n return getShadowIncludingRoot(root.host);\n }\n\n return root;\n}\n\nfunction getRoot(node) {\n if (node.parentNode != null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\nfunction isShadowRoot(node) {\n return node.nodeName === '#document-fragment' && node.constructor.name === 'ShadowRoot';\n}\n\nif (typeof module === 'object' && module.exports) {\n module.exports = getRootNode;\n}\n", "export const GLOBAL_KEY = 'yfm_cut';\n\nexport const Selector = {\n CUT: '.yfm .yfm-cut',\n TITLE: '.yfm .yfm-cut-title',\n CONTENT: '.yfm .yfm-cut-content',\n};\n\nexport const ClassName = {\n OPEN: 'open',\n};\n", "export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n", "import {ClassName, Selector} from './const';\nimport {getEventTarget, isCustom} from './utils';\n\nexport class YfmCutController {\n private readonly __doc: Document;\n\n constructor(doc: Document) {\n this.__doc = doc;\n this.__doc.addEventListener('click', this._onDocClick);\n this.__doc.addEventListener('DOMContentLoaded', this._focusActiveCut);\n }\n\n destroy() {\n this.__doc.removeEventListener('click', this._onDocClick);\n }\n\n _focusActiveCut() {\n const cutId = window.location.hash.slice(1);\n const cutNode = document.getElementById(cutId) as HTMLDetailsElement | null;\n\n if (!(cutNode instanceof HTMLElement)) {\n return;\n }\n\n if (!cutNode.matches(Selector.CUT)) {\n return;\n }\n\n cutNode.classList.toggle(ClassName.OPEN);\n cutNode.setAttribute('open', 'true');\n\n setTimeout(() => {\n cutNode.classList.add('cut-highlight');\n cutNode.scrollIntoView();\n }, 70);\n\n setTimeout(() => {\n cutNode.classList.remove('cut-highlight');\n }, 1_000);\n }\n\n private _onDocClick = (event: MouseEvent) => {\n if (isCustom(event)) {\n return;\n }\n\n const title = this._findTitleInPath(event);\n if (title) {\n this._toggleCut(title);\n }\n };\n\n private _findTitleInPath(event: MouseEvent): HTMLElement | undefined {\n const target = getEventTarget(event);\n if (this._matchTitle(target)) {\n return target as HTMLElement;\n }\n\n const path = event.composedPath?.();\n return path?.find(this._matchTitle) as HTMLElement | undefined;\n }\n\n private _matchTitle = (target: EventTarget | null) => {\n if (target instanceof HTMLElement) {\n return target?.matches?.(Selector.TITLE);\n }\n return false;\n };\n\n private _toggleCut(element: HTMLElement) {\n const cutNode = element.parentElement;\n cutNode?.classList.toggle(ClassName.OPEN);\n }\n}\n", "import {GLOBAL_KEY} from './const';\nimport {YfmCutController} from './controller';\n\nimport './styles/cut.scss';\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && !window[GLOBAL_KEY]) {\n window[GLOBAL_KEY] = new YfmCutController(document);\n}\n\ndeclare global {\n interface Window {\n [GLOBAL_KEY]: YfmCutController;\n }\n}\n", "import type {TabsOrientation} from './plugin/transform';\nimport type {TabsController} from './runtime/TabsController';\n\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TABS_VERTICAL_CLASSNAME = 'yfm-tabs-vertical';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\nexport const VERTICAL_TAB_FORCED_OPEN = 'data-diplodoc-radio-forced';\n\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\nexport const ACTIVE_TAB_TEXT = '{selected}';\n\nexport interface Tab {\n group?: string;\n key: string;\n align: TabsOrientation;\n}\n\nexport interface SelectedTabEvent {\n tab: Tab;\n currentTabId?: string;\n}\n\nexport const GLOBAL_SYMBOL: unique symbol = Symbol.for('diplodocTabs');\n\ndeclare global {\n interface Window {\n [GLOBAL_SYMBOL]: TabsController;\n }\n}\n", "export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n\nexport const getClosestScrollableParent = (element: HTMLElement): HTMLElement | undefined => {\n if (Math.abs(element.scrollHeight - element.clientHeight) > 1) {\n return element;\n }\n\n return element.parentElement ? getClosestScrollableParent(element.parentElement) : undefined;\n};\n\nexport interface ElementOffset {\n top: number;\n left: number;\n scrollTop: number;\n scrollLeft: number;\n}\n\nexport const getOffsetByScrollableParent = (\n element: HTMLElement,\n scrollableParent: HTMLElement,\n): ElementOffset => {\n const elementBounds = element.getBoundingClientRect();\n const scrollableParentBounds = scrollableParent.getBoundingClientRect();\n return {\n top: elementBounds.top - scrollableParentBounds.top,\n left: elementBounds.left - scrollableParentBounds.left,\n scrollTop: scrollableParent.scrollTop,\n scrollLeft: scrollableParent.scrollLeft,\n };\n};\n", "import {\n ACTIVE_CLASSNAME,\n DEFAULT_TABS_GROUP_PREFIX,\n GROUP_DATA_KEY,\n SelectedTabEvent,\n TABS_CLASSNAME,\n TABS_LIST_CLASSNAME,\n TABS_VERTICAL_CLASSNAME,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_PANEL_CLASSNAME,\n Tab,\n VERTICAL_TAB_FORCED_OPEN,\n} from '../common';\nimport type {TabsOrientation} from '../plugin/transform';\nimport {\n ElementOffset,\n getClosestScrollableParent,\n getEventTarget,\n getOffsetByScrollableParent,\n isCustom,\n} from './utils';\n\nconst Selector = {\n TABS: `.${TABS_CLASSNAME}`,\n TAB_LIST: `.${TABS_LIST_CLASSNAME}`,\n TAB: `.${TAB_CLASSNAME}`,\n TAB_PANEL: `.${TAB_PANEL_CLASSNAME}`,\n VERTICAL_TABS: `.${TABS_VERTICAL_CLASSNAME}`,\n};\n\nexport interface ISelectTabByIdOptions {\n scrollToElement: boolean;\n}\n\ntype Handler = (data: SelectedTabEvent) => void;\n\ntype TabSwitchDirection = 'left' | 'right';\n\nexport class TabsController {\n private _document: Document;\n\n private _onSelectTabHandlers: Set<Handler> = new Set();\n\n constructor(document: Document) {\n this._document = document;\n this._document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n const areVertical = this.areTabsVertical(target);\n\n if (isCustom(event)) {\n return;\n }\n\n if (!(this.isValidTabElement(target) || areVertical)) {\n return;\n }\n\n const tab = this.getTabDataFromHTMLElement(target);\n\n if (tab) {\n this._selectTab(tab, target);\n }\n });\n this._document.addEventListener('keydown', (event) => {\n let direction: TabSwitchDirection | null = null;\n switch (event.key) {\n case 'ArrowLeft': {\n direction = 'left';\n break;\n }\n case 'ArrowRight': {\n direction = 'right';\n break;\n }\n case 'ArrowUp': {\n direction = 'left';\n break;\n }\n case 'ArrowDown': {\n direction = 'right';\n break;\n }\n }\n if (!direction) {\n return;\n }\n\n const target = getEventTarget(event) as HTMLElement;\n\n if (isCustom(event) || !this.isValidTabElement(target)) {\n return;\n }\n\n const {tabs, nodes} = this.getTabs(target);\n const currentTab = this.getTabDataFromHTMLElement(target);\n const currentTabIndex = tabs.findIndex(\n ({key}) => currentTab?.key && key === currentTab.key,\n );\n if (!currentTab || tabs.length <= 1 || currentTabIndex === -1) {\n return;\n }\n\n const newIndex =\n (currentTabIndex + (direction === 'left' ? -1 : 1) + tabs.length) % tabs.length;\n\n this.selectTab(tabs[newIndex]);\n nodes[newIndex].focus();\n });\n }\n\n onSelectTab(handler: Handler) {\n this._onSelectTabHandlers.add(handler);\n\n return () => {\n this._onSelectTabHandlers.delete(handler);\n };\n }\n\n selectTabById(id: string, options?: ISelectTabByIdOptions) {\n const target = this._document.querySelector(\n `${Selector.TAB}[${TAB_DATA_ID}=\"${id}\"]`,\n ) as HTMLElement;\n\n if (!target || !this.isValidTabElement(target)) {\n return;\n }\n\n const tab = this.getTabDataFromHTMLElement(target);\n\n if (tab) {\n this._selectTab(tab, target);\n }\n\n if (options?.scrollToElement) {\n target.scrollIntoView();\n }\n }\n\n selectTab(tab: Tab) {\n this._selectTab(tab);\n }\n\n private _selectTab(tab: Tab, targetTab?: HTMLElement) {\n const {group, key, align} = tab;\n\n if (!group) {\n return;\n }\n\n const scrollableParent = targetTab && getClosestScrollableParent(targetTab);\n const previousTargetOffset =\n scrollableParent && getOffsetByScrollableParent(targetTab, scrollableParent);\n\n const updatedTabs = this.updateHTML({group, key, align}, targetTab, align);\n\n if (updatedTabs > 0) {\n this.fireSelectTabEvent({group, key, align}, targetTab?.dataset.diplodocId);\n\n if (previousTargetOffset) {\n this.resetScroll(targetTab, scrollableParent, previousTargetOffset);\n }\n }\n }\n\n private updateHTML(\n tab: Required<Tab>,\n target: HTMLElement | undefined,\n align: TabsOrientation,\n ) {\n switch (align) {\n case 'radio': {\n return this.updateHTMLVertical(tab, target);\n }\n case 'horizontal': {\n return this.updateHTMLHorizontal(tab);\n }\n }\n\n return 0;\n }\n\n private updateHTMLVertical(tab: Required<Tab>, target: HTMLElement | undefined) {\n const {group, key} = tab;\n\n const {isForced, root} = this.didTabOpenForce(target);\n\n const singleTabSelector = isForced\n ? `.yfm-vertical-tab[${VERTICAL_TAB_FORCED_OPEN}=\"true\"]`\n : '';\n\n const tabs = this._document.querySelectorAll(\n `${Selector.TABS}[${GROUP_DATA_KEY}=\"${group}\"] ${Selector.TAB}[${TAB_DATA_KEY}=\"${key}\"]${singleTabSelector}`,\n );\n\n if (isForced) {\n root?.removeAttribute(VERTICAL_TAB_FORCED_OPEN);\n }\n\n let updated = 0;\n\n tabs.forEach((tab) => {\n const root = tab.parentNode!;\n const elements = root.children;\n\n for (let i = 0; i < elements.length; i += 2) {\n const [title, content] = [elements.item(i), elements.item(i + 1)] as HTMLElement[];\n\n const input = title.children.item(0) as HTMLInputElement;\n\n if (title === tab) {\n const checked = input.checked;\n\n if (checked) {\n title.classList.remove('active');\n content?.classList.remove('active');\n\n input.removeAttribute('checked');\n } else {\n title.classList.add('active');\n content?.classList.add('active');\n\n input.setAttribute('checked', 'true');\n }\n\n continue;\n }\n\n if (input.hasAttribute('checked')) {\n title.classList.remove('active');\n content?.classList.remove('active');\n\n input.removeAttribute('checked');\n }\n\n updated++;\n }\n });\n\n return updated;\n }\n\n private updateHTMLHorizontal(tab: Required<Tab>) {\n const {group, key} = tab;\n\n const tabs = this._document.querySelectorAll(\n `${Selector.TABS}[${GROUP_DATA_KEY}=\"${group}\"] ${Selector.TAB}[${TAB_DATA_KEY}=\"${key}\"]`,\n );\n\n let updated = 0;\n\n tabs.forEach((element) => {\n const htmlElem = element as HTMLElement;\n if (!this.isValidTabElement(htmlElem) || htmlElem.dataset.diplodocIsActive === 'true') {\n return;\n }\n\n updated++;\n\n const tab = element;\n const tabList = tab.parentNode;\n const tabsContainer = tabList?.parentNode;\n const allTabs = Array.from(tabList?.querySelectorAll(Selector.TAB) || []);\n const allPanels = Array.from(tabsContainer?.children || []).filter((node) =>\n node.classList.contains(TAB_PANEL_CLASSNAME),\n );\n const targetIndex = allTabs.indexOf(tab);\n\n allTabs.forEach((tab, i) => {\n const panel = allPanels[i];\n const isTargetTab = i === targetIndex;\n const htmlElem = tab as HTMLElement;\n\n htmlElem.dataset.diplodocIsActive = isTargetTab ? 'true' : 'false';\n\n tab.classList.toggle(ACTIVE_CLASSNAME, isTargetTab);\n tab.setAttribute('aria-selected', isTargetTab.toString());\n tab.setAttribute('tabindex', isTargetTab ? '0' : '-1');\n panel.classList.toggle(ACTIVE_CLASSNAME, isTargetTab);\n });\n });\n\n return updated;\n }\n\n private resetScroll(\n target: HTMLElement,\n scrollableParent: HTMLElement,\n previousTargetOffset: ElementOffset,\n ) {\n const targetOffset = getOffsetByScrollableParent(target, scrollableParent);\n const topDelta = targetOffset.top - previousTargetOffset.top;\n const leftDelta = targetOffset.left - previousTargetOffset.left;\n const scrollTopDelta = targetOffset.scrollTop - previousTargetOffset.scrollTop;\n const scrollLeftDelta = targetOffset.scrollLeft - previousTargetOffset.scrollLeft;\n scrollableParent.scrollTo(\n scrollableParent.scrollLeft + leftDelta - scrollLeftDelta,\n scrollableParent.scrollTop + topDelta - scrollTopDelta,\n );\n }\n\n private didTabOpenForce(target?: HTMLElement) {\n if (!target) {\n return {};\n }\n\n const root = target.dataset.diplodocVerticalTab ? target : target.parentElement;\n\n const isForced = typeof root?.dataset.diplodocRadioForced !== 'undefined';\n\n return {root, isForced};\n }\n\n private fireSelectTabEvent(tab: Required<Tab>, diplodocId?: string) {\n const {group, key, align} = tab;\n\n const eventTab: Tab = group.startsWith(DEFAULT_TABS_GROUP_PREFIX) ? {key, align} : tab;\n\n this._onSelectTabHandlers.forEach((handler) => {\n handler({tab: eventTab, currentTabId: diplodocId});\n });\n }\n\n private isValidTabElement(element: HTMLElement) {\n const tabList =\n element.matches(Selector.TAB) && element.dataset.diplodocId\n ? element.closest(Selector.TAB_LIST)\n : null;\n\n return tabList?.closest(Selector.TABS);\n }\n\n private areTabsVertical(target: HTMLElement) {\n const parent = target.parentElement;\n\n return target.dataset.diplodocVerticalTab || Boolean(parent?.dataset.diplodocVerticalTab);\n }\n\n private getTabDataFromHTMLElement(target: HTMLElement): Tab | null {\n if (this.areTabsVertical(target)) {\n const tab = target.dataset.diplodocVerticalTab ? target : target.parentElement!;\n\n const key = tab.dataset.diplodocKey;\n const group = (tab.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, align: 'radio'} : null;\n }\n\n const key = target.dataset.diplodocKey;\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, align: 'horizontal'} : null;\n }\n\n private getTabs(target: HTMLElement): {tabs: Tab[]; nodes: NodeListOf<HTMLElement>} {\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n const nodes = (\n target.closest(Selector.TAB_LIST) as HTMLElement\n )?.querySelectorAll<HTMLElement>(Selector.TAB);\n\n const tabs: Tab[] = [];\n nodes.forEach((tabEl) => {\n const key = tabEl?.dataset.diplodocKey;\n if (!key) {\n return;\n }\n\n /** horizontal-only supported feature (used in left/right button click) */\n tabs.push({\n group,\n key,\n align: 'horizontal',\n });\n });\n\n return {tabs, nodes};\n }\n}\n", "import {GLOBAL_SYMBOL} from '../common';\nimport {TabsController} from './TabsController';\nimport './scss/tabs.scss';\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && !window[GLOBAL_SYMBOL]) {\n window[GLOBAL_SYMBOL] = new TabsController(document);\n}\n", "import getRootNode from 'get-root-node-polyfill';\n\nif (typeof document !== 'undefined') {\n // matches polyfill for old edge\n (function (e) {\n const matches =\n e.matches ||\n e.matchesSelector ||\n e.webkitMatchesSelector ||\n e.mozMatchesSelector ||\n e.msMatchesSelector ||\n e.oMatchesSelector;\n\n if (matches) {\n e.matches = e.matchesSelector = matches;\n } else {\n e.matches = e.matchesSelector = function matches(selector) {\n const rootNode = e.getRootNode ? e.getRootNode() : getRootNode.call(e);\n const matches = rootNode.querySelectorAll(selector);\n const th = this;\n return Array.prototype.some.call(matches, (e) => {\n return e === th;\n });\n };\n }\n })(Element.prototype);\n}\n", "export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n", "import {getEventTarget, isCustom} from './utils';\n\nconst BUTTON_SELECTOR = '.yfm-clipboard-button';\n\nfunction copyToClipboard(text: string) {\n if (!text) {\n return Promise.resolve();\n }\n\n if (navigator.clipboard && typeof navigator.clipboard.writeText) {\n return navigator.clipboard.writeText(text);\n }\n const textarea = document.createElement('textarea');\n textarea.setAttribute('style', 'position: absolute; left: 1000%');\n textarea.textContent = text;\n document.body.append(textarea);\n\n textarea.select();\n document.execCommand('copy');\n\n document.body.removeChild(textarea);\n\n return Promise.resolve();\n}\n\nfunction notifySuccess(svgButton: HTMLElement | null) {\n if (!svgButton) {\n return;\n }\n\n const id = svgButton.getAttribute('data-animation');\n // @ts-expect-error\n const icon = svgButton.getRootNode().getElementById(`visibileAnimation-${id}`);\n\n if (!icon) {\n return;\n }\n\n icon.beginElement();\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n\n if (isCustom(event) || !target.matches(BUTTON_SELECTOR)) {\n return;\n }\n\n const parent = target.parentNode;\n\n if (!parent) {\n return;\n }\n\n const code = parent.querySelector<HTMLElement>('pre code');\n if (!code) {\n return;\n }\n\n copyToClipboard(code.innerText).then(() => {\n notifySuccess(parent.querySelector('.yfm-clipboard-icon'));\n });\n });\n}\n", "export const Selector = {\n TITLE: '.yfm .yfm-term_title',\n CONTENT: '.yfm .yfm-term_dfn',\n};\nexport const openClass = 'open';\nexport const openDefinitionClass = Selector.CONTENT.replace(/\\./g, '') + ' ' + openClass;\nlet isListenerNeeded = true;\n\nexport function createDefinitionElement(termElement: HTMLElement) {\n const termKey = termElement.getAttribute('term-key');\n const definitionTemplate = document.getElementById(\n `${termKey}_template`,\n ) as HTMLTemplateElement;\n const definitionElement = definitionTemplate?.content.cloneNode(true).firstChild as HTMLElement;\n\n definitionTemplate?.parentElement?.appendChild(definitionElement);\n definitionTemplate.remove();\n\n return definitionElement;\n}\n\nexport function setDefinitionId(definitionElement: HTMLElement, termElement: HTMLElement): void {\n const termId = termElement.getAttribute('id') || Math.random().toString(36).substr(2, 8);\n definitionElement?.setAttribute('term-id', termId);\n}\n\nexport function setDefinitonAriaLive(\n definitionElement: HTMLElement,\n termElement: HTMLElement,\n): void {\n const ariaLive = termElement.getAttribute('aria-live') || 'polite';\n definitionElement?.setAttribute('aria-live', ariaLive);\n}\n\nexport function setDefinitionPosition(\n definitionElement: HTMLElement,\n termElement: HTMLElement,\n): void {\n const {\n x: termX,\n y: termY,\n right: termRight,\n left: termLeft,\n width: termWidth,\n height: termHeight,\n } = termElement.getBoundingClientRect();\n\n const termParent = termParentElement(termElement);\n\n if (!termParent) {\n return;\n }\n\n const {right: termParentRight, left: termParentLeft} = termParent.getBoundingClientRect();\n\n if ((termParentRight < termLeft || termParentLeft > termRight) && !isListenerNeeded) {\n closeDefinition(definitionElement);\n return;\n }\n\n if (isListenerNeeded && termParent) {\n termParent.addEventListener('scroll', termOnResize);\n isListenerNeeded = false;\n }\n\n const relativeX = Number(definitionElement.getAttribute('relativeX'));\n const relativeY = Number(definitionElement.getAttribute('relativeY'));\n\n if (relativeX === termX && relativeY === termY) {\n return;\n }\n\n definitionElement.setAttribute('relativeX', String(termX));\n definitionElement.setAttribute('relativeY', String(termY));\n\n const offsetTop = termHeight + 5;\n const definitionParent = definitionElement.parentElement;\n\n if (!definitionParent) {\n return;\n }\n\n const {width: definitionWidth} = definitionElement.getBoundingClientRect();\n const {left: definitionParentLeft} = definitionParent.getBoundingClientRect();\n\n // If definition not fit document change base alignment\n const definitionLeftCoordinate = Number(getCoords(termElement).left);\n const definitionRightCoordinate = definitionWidth + definitionLeftCoordinate;\n\n const definitionOutOfScreenOnLeft = definitionLeftCoordinate - definitionWidth < 0;\n const definitionOutOfScreenOnRight = definitionRightCoordinate > document.body.clientWidth;\n\n const isAlignSwapped = definitionOutOfScreenOnRight || document.dir === 'rtl';\n const fitDefinitionDocument =\n isAlignSwapped && !definitionOutOfScreenOnLeft ? definitionWidth - termWidth : 0;\n const customHeaderTop = getCoords(definitionParent).top - definitionParent.offsetTop;\n const offsetRight = 5;\n const shiftLeft = definitionOutOfScreenOnRight\n ? definitionRightCoordinate - document.body.clientWidth + offsetRight\n : 0;\n const offsetLeft =\n getCoords(termElement).left -\n definitionParentLeft +\n definitionParent.offsetLeft -\n fitDefinitionDocument;\n\n const isShiftLeftNeeded = offsetLeft + definitionWidth >= document.body.clientWidth;\n\n definitionElement.style.top =\n Number(getCoords(termElement).top + offsetTop - customHeaderTop) + 'px';\n definitionElement.style.left = Number(offsetLeft - (isShiftLeftNeeded ? shiftLeft : 0)) + 'px';\n}\n\nfunction termOnResize() {\n const openedDefinition = document.getElementsByClassName(openDefinitionClass)[0] as HTMLElement;\n\n if (!openedDefinition) {\n return;\n }\n const termId = openedDefinition.getAttribute('term-id') || '';\n const termElement = document.getElementById(termId);\n\n if (!termElement) {\n return;\n }\n\n setDefinitionPosition(openedDefinition, termElement);\n}\n\nfunction termParentElement(term: HTMLElement | null) {\n if (!term) {\n return null;\n }\n\n const closestScrollableParent = term.closest('table') || term.closest('code');\n\n return closestScrollableParent || term.parentElement;\n}\n\nexport function openDefinition(target: HTMLElement) {\n const openedDefinition = document.getElementsByClassName(openDefinitionClass)[0] as HTMLElement;\n\n const termId = target.getAttribute('id');\n const termKey = target.getAttribute('term-key');\n let definitionElement = document.getElementById(termKey + '_element');\n\n if (termKey && !definitionElement) {\n definitionElement = createDefinitionElement(target);\n }\n\n const isSameTerm = openedDefinition && termId === openedDefinition.getAttribute('term-id');\n if (isSameTerm) {\n closeDefinition(openedDefinition);\n return;\n }\n\n const isTargetDefinitionContent = target.closest(\n [Selector.CONTENT.replace(' ', ''), openClass].join('.'),\n );\n\n if (openedDefinition && !isTargetDefinitionContent) {\n closeDefinition(openedDefinition);\n }\n\n if (!target.matches(Selector.TITLE) || !definitionElement) {\n return;\n }\n\n setDefinitionId(definitionElement, target);\n setDefinitonAriaLive(definitionElement, target);\n setDefinitionPosition(definitionElement, target);\n\n definitionElement.classList.toggle(openClass);\n\n trapFocus(definitionElement);\n}\n\nexport function closeDefinition(definition: HTMLElement) {\n definition.classList.remove(openClass);\n const termId = definition.getAttribute('term-id') || '';\n const term = document.getElementById(termId);\n const termParent = termParentElement(term);\n\n if (!termParent) {\n return;\n }\n\n termParent.removeEventListener('scroll', termOnResize);\n term?.focus(); // Set focus back to open button after closing popup\n\n isListenerNeeded = true;\n}\n\nfunction getCoords(elem: HTMLElement) {\n const box = elem.getBoundingClientRect();\n\n const body = document.body;\n const docEl = document.documentElement;\n\n const scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n\n const top = box.top + scrollTop - clientTop;\n const left = box.left + scrollLeft - clientLeft;\n\n return {top: Math.round(top), left: Math.round(left)};\n}\n\nexport function trapFocus(element: HTMLElement) {\n const focusableElements = element.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n const firstFocusableElement = focusableElements[0] as HTMLElement;\n const lastFocusableElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n if (firstFocusableElement) {\n firstFocusableElement.focus();\n }\n\n element.addEventListener('keydown', function (e) {\n const isTabPressed = e.key === 'Tab' || e.keyCode === 9;\n if (!isTabPressed) {\n return;\n }\n\n if (e.shiftKey) {\n if (document.activeElement === firstFocusableElement) {\n lastFocusableElement.focus();\n e.preventDefault();\n }\n } else if (document.activeElement === lastFocusableElement) {\n firstFocusableElement.focus();\n e.preventDefault();\n }\n });\n}\n", "import {getEventTarget, isCustom} from '../utils';\nimport {\n closeDefinition,\n openClass,\n openDefinition,\n openDefinitionClass,\n setDefinitionPosition,\n} from './utils';\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n if (getEventTarget(event) || !isCustom(event)) {\n openDefinition(getEventTarget(event) as HTMLElement);\n }\n });\n\n document.addEventListener('keydown', (event) => {\n const openedDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n\n if (event.key === 'Enter' && document.activeElement) {\n openDefinition(document.activeElement as HTMLElement);\n }\n\n if (event.key === 'Escape' && openedDefinition) {\n closeDefinition(openedDefinition);\n }\n });\n\n window.addEventListener('resize', () => {\n const openedDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n\n if (!openedDefinition) {\n return;\n }\n\n const termId = openedDefinition.getAttribute('term-id') || '';\n const termElement = document.getElementById(termId);\n\n if (!termElement) {\n openedDefinition.classList.toggle(openClass);\n return;\n }\n\n setDefinitionPosition(openedDefinition, termElement);\n });\n}\n", "export const WIDE_ELEMENTS_SELECTOR = '[wide-content]';\n", "export default `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M7.754 2.004a.75.75 0 0 0 0 1.5h4.75v4.742a.75.75 0 0 0 1.5 0V2.754a.75.75 0 0 0-.75-.75zm.492 11.992a.75.75 0 0 0 0-1.5h-4.75V7.754a.75.75 0 0 0-1.5 0v5.492a.75.75 0 0 0 .75.75z\" clip-rule=\"evenodd\"/></svg>`;\n", "export default `<svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"close-action\"><path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M9.46967 9.46967C9.76256 9.17678 10.2374 9.17678 10.5303 9.46967L14 12.9393L17.4697 9.46967C17.7626 9.17678 18.2374 9.17678 18.5303 9.46967C18.8232 9.76256 18.8232 10.2374 18.5303 10.5303L15.0607 14L18.5303 17.4697C18.8232 17.7626 18.8232 18.2374 18.5303 18.5303C18.2374 18.8232 17.7626 18.8232 17.4697 18.5303L14 15.0607L10.5303 18.5303C10.2374 18.8232 9.76256 18.8232 9.46967 18.5303C9.17678 18.2374 9.17678 17.7626 9.46967 17.4697L12.9393 14L9.46967 10.5303C9.17678 10.2374 9.17678 9.76256 9.46967 9.46967Z\" fill=\"var(--g-color-text-primary)\" fillOpacity=\"0.85\"/></svg>`;\n", "import closeIcon from './icons/close';\n\nconst remove = () => {\n if (!window.wideTemplate) {\n return;\n }\n\n window.wideTemplate.style.display = 'none';\n window.wideTemplate.content(undefined);\n};\n\nconst tbodyOf = (node: HTMLElement) => {\n if (node.tagName !== 'TABLE') {\n return undefined;\n }\n\n const elements = Array.from(node.children);\n\n const thead = elements.find((child) => child.tagName === 'THEAD');\n\n if (thead) {\n return undefined;\n }\n\n const tbody = elements.find((child) => child.tagName === 'TBODY');\n\n return tbody;\n};\n\ntype ModalContainer = NonNullable<typeof window.wideTemplate>;\n\n/* @todo refactor to markup with innerHTML @v8tenko */\n\nconst container = () => {\n if (window.wideTemplate) {\n return window.wideTemplate;\n }\n\n const template = document.createElement('div') as ModalContainer;\n template.classList.add('dc-doc-page', 'wide-container');\n\n const overlay = document.createElement('div');\n overlay.classList.add('wide-content-overlay');\n overlay.addEventListener('click', remove);\n\n const wrapper = document.createElement('div');\n wrapper.classList.add('yfm', 'wide-content-wrapper');\n\n const toolbar = document.createElement('div');\n toolbar.classList.add('wide-toolbar');\n\n const close = document.createElement('div');\n close.classList.add('wide-actions');\n close.addEventListener('click', remove);\n close.innerHTML = closeIcon;\n\n const title = document.createElement('p');\n title.classList.add('wide-entity-name');\n\n template.label = (content?: string) => {\n title.innerHTML = content || '';\n };\n\n const content = document.createElement('div');\n content.classList.add('wide-content');\n\n template.content = (target?: Element) => {\n if (typeof target === 'undefined') {\n content.innerHTML = '';\n\n return;\n }\n\n const cloned = target.cloneNode(true) as HTMLElement;\n\n const tbody = tbodyOf(cloned);\n\n /* used to stretch single tbody to 100% */\n tbody?.classList?.add('wide-thead-content');\n\n content.replaceChildren(cloned);\n };\n\n toolbar.append(title, close);\n wrapper.append(toolbar, content);\n template.append(overlay, wrapper);\n\n template.style.display = 'none';\n document.body.appendChild(template);\n\n window.wideTemplate = template;\n\n return template;\n};\n\nconst render = (content: HTMLElement) => {\n const template = container();\n\n template.label(content.title);\n template.content(content);\n\n template.style.display = 'flex';\n};\n\nexport const modal = {\n render,\n remove,\n};\n", "import {WIDE_ELEMENTS_SELECTOR} from './constants';\nimport expand from './icons/expand';\nimport {modal} from './modal';\n\nconst wrap = (target: HTMLElement) => {\n if (target.parentElement?.classList.contains('wide-element-wrapper')) {\n return;\n }\n\n target.classList.add('wide-inner-element');\n\n const handler = document.createElement('div');\n\n handler.innerHTML = expand;\n handler.classList.add('wide-content-viewer');\n handler.addEventListener('click', () => modal.render(target));\n\n const container = document.createElement('div');\n\n container.classList.add('wide-element-wrapper');\n\n target.before(container);\n\n container.appendChild(target);\n container.appendChild(handler);\n};\n\nexport const applyWideMode = () => {\n const allWideElements = Array.from(\n document.querySelectorAll(WIDE_ELEMENTS_SELECTOR),\n ) as HTMLElement[];\n\n allWideElements.forEach(wrap);\n};\n", "import {applyWideMode} from './apply';\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n window.addEventListener('load', applyWideMode);\n}\n", "import {applyWideMode} from './wide-mode/apply';\n\nconst patch = () => {\n applyWideMode();\n};\n\nif (typeof window !== 'undefined') {\n window.patchAfterRender = patch;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["getRootNode", "GLOBAL_KEY", "Selector", "ClassName", "getEventTarget", "event", "path", "isCustom", "target", "YfmCutController", "doc", "title", "cutId", "cutNode", "element", "TABS_CLASSNAME", "TABS_VERTICAL_CLASSNAME", "TABS_LIST_CLASSNAME", "TAB_CLASSNAME", "TAB_PANEL_CLASSNAME", "ACTIVE_CLASSNAME", "VERTICAL_TAB_FORCED_OPEN", "GROUP_DATA_KEY", "TAB_DATA_KEY", "TAB_DATA_ID", "DEFAULT_TABS_GROUP_PREFIX", "GLOBAL_SYMBOL", "getEventTarget", "event", "path", "isCustom", "target", "getClosestScrollableParent", "element", "getOffsetByScrollableParent", "scrollableParent", "elementBounds", "scrollableParentBounds", "Selector", "TabsController", "document", "areVertical", "tab", "direction", "tabs", "nodes", "currentTab", "currentTabIndex", "key", "newIndex", "handler", "id", "options", "targetTab", "group", "align", "previousTargetOffset", "isForced", "root", "singleTabSelector", "updated", "elements", "i", "title", "content", "input", "htmlElem", "tabList", "tabsContainer", "allTabs", "allPanels", "node", "targetIndex", "panel", "isTargetTab", "targetOffset", "topDelta", "leftDelta", "scrollTopDelta", "scrollLeftDelta", "diplodocId", "eventTab", "parent", "_a", "_b", "tabEl", "matches", "getRootNode", "e", "content", "container"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";(()=>{(()=>{var J=Object.create,z=Object.defineProperty,Q=Object.getOwnPropertyDescriptor,W=Object.getOwnPropertyNames,Z=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty,te=(e,t)=>function(){return t||(0,e[W(e)[0]])((t={exports:{}}).exports,t),t.exports},ne=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of W(t))!ee.call(e,a)&&a!==n&&z(e,a,{get:()=>t[a],enumerable:!(i=Q(t,a))||i.enumerable});return e},oe=(e,t,n)=>(n=e!=null?J(Z(e)):{},ne(t||!e||!e.__esModule?z(n,"default",{value:e,enumerable:!0}):n,e)),re=te({"node_modules/get-root-node-polyfill/index.js"(e,t){"use strict";function n(d){var m=typeof d=="object"&&!!d.composed;return m?i(this):a(this)}function i(d){var m=a(d);return v(m)?i(m.host):m}function a(d){return d.parentNode!=null?a(d.parentNode):d}function v(d){return d.nodeName==="#document-fragment"&&d.constructor.name==="ShadowRoot"}typeof t=="object"&&t.exports&&(t.exports=n)}});(()=>{var e="yfm-tabs",t="yfm-tabs-vertical",n="yfm-tab-list",i="yfm-tab",a="yfm-tab-panel",v="active",d="data-diplodoc-radio-forced",m="data-diplodoc-group",T="data-diplodoc-key",L="data-diplodoc-id",_="defaultTabsGroup-",H=Symbol.for("diplodocTabs"),O=o=>{let r=o.composedPath();return Array.isArray(r)&&r.length>0?r[0]:o.target},D=o=>{let r=O(o);return!r||!r.matches},w=o=>Math.abs(o.scrollHeight-o.clientHeight)>1?o:o.parentElement?w(o.parentElement):void 0,A=(o,r)=>{let l=o.getBoundingClientRect(),c=r.getBoundingClientRect();return{top:l.top-c.top,left:l.left-c.left,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}},h={TABS:`.${e}`,TAB_LIST:`.${n}`,TAB:`.${i}`,TAB_PANEL:`.${a}`,VERTICAL_TABS:`.${t}`},$=class{constructor(o){this._onSelectTabHandlers=new Set,this._document=o,this._document.addEventListener("click",r=>{let l=O(r),c=this.areTabsVertical(l);if(D(r)||!(this.isValidTabElement(l)||c))return;let s=this.getTabDataFromHTMLElement(l);s&&this._selectTab(s,l)}),this._document.addEventListener("keydown",r=>{let l=null;switch(r.key){case"ArrowLeft":{l="left";break}case"ArrowRight":{l="right";break}case"ArrowUp":{l="left";break}case"ArrowDown":{l="right";break}}if(!l)return;let c=O(r);if(D(r)||!this.isValidTabElement(c))return;let{tabs:s,nodes:u}=this.getTabs(c),f=this.getTabDataFromHTMLElement(c),p=s.findIndex(({key:g})=>(f==null?void 0:f.key)&&g===f.key);if(!f||s.length<=1||p===-1)return;let y=(p+(l==="left"?-1:1)+s.length)%s.length;this.selectTab(s[y]),u[y].focus()})}onSelectTab(o){return this._onSelectTabHandlers.add(o),()=>{this._onSelectTabHandlers.delete(o)}}selectTabById(o,r){let l=this._document.querySelector(`${h.TAB}[${L}="${o}"]`);if(!l||!this.isValidTabElement(l))return;let c=this.getTabDataFromHTMLElement(l);c&&this._selectTab(c,l),r!=null&&r.scrollToElement&&l.scrollIntoView()}selectTab(o){this._selectTab(o)}_selectTab(o,r){let{group:l,key:c,align:s}=o;if(!l)return;let u=r&&w(r),f=u&&A(r,u);this.updateHTML({group:l,key:c,align:s},r,s)>0&&(this.fireSelectTabEvent({group:l,key:c,align:s},r==null?void 0:r.dataset.diplodocId),f&&this.resetScroll(r,u,f))}updateHTML(o,r,l){switch(l){case"radio":return this.updateHTMLVertical(o,r);case"horizontal":return this.updateHTMLHorizontal(o)}return 0}updateHTMLVertical(o,r){let{group:l,key:c}=o,{isForced:s,root:u}=this.didTabOpenForce(r),f=s?`.yfm-vertical-tab[${d}="true"]`:"",p=this._document.querySelectorAll(`${h.TABS}[${m}="${l}"] ${h.TAB}[${T}="${c}"]${f}`);s&&(u==null||u.removeAttribute(d));let y=0;return p.forEach(g=>{let C=g.parentNode.children;for(let N=0;N<C.length;N+=2){let[S,b]=[C.item(N),C.item(N+1)],E=S.children.item(0);if(S===g){E.checked?(S.classList.remove("active"),b==null||b.classList.remove("active"),E.removeAttribute("checked")):(S.classList.add("active"),b==null||b.classList.add("active"),E.setAttribute("checked","true"));continue}E.hasAttribute("checked")&&(S.classList.remove("active"),b==null||b.classList.remove("active"),E.removeAttribute("checked")),y++}}),y}updateHTMLHorizontal(o){let{group:r,key:l}=o,c=this._document.querySelectorAll(`${h.TABS}[${m}="${r}"] ${h.TAB}[${T}="${l}"]`),s=0;return c.forEach(u=>{let f=u;if(!this.isValidTabElement(f)||f.dataset.diplodocIsActive==="true")return;s++;let p=u,y=p.parentNode,g=y==null?void 0:y.parentNode,C=Array.from((y==null?void 0:y.querySelectorAll(h.TAB))||[]),N=Array.from((g==null?void 0:g.children)||[]).filter(b=>b.classList.contains(a)),S=C.indexOf(p);C.forEach((b,E)=>{let _e=N[E],P=E===S,Ce=b;Ce.dataset.diplodocIsActive=P?"true":"false",b.classList.toggle(v,P),b.setAttribute("aria-selected",P.toString()),b.setAttribute("tabindex",P?"0":"-1"),_e.classList.toggle(v,P)})}),s}resetScroll(o,r,l){let c=A(o,r),s=c.top-l.top,u=c.left-l.left,f=c.scrollTop-l.scrollTop,p=c.scrollLeft-l.scrollLeft;r.scrollTo(r.scrollLeft+u-p,r.scrollTop+s-f)}didTabOpenForce(o){if(!o)return{};let r=o.dataset.diplodocVerticalTab?o:o.parentElement,l=typeof(r==null?void 0:r.dataset.diplodocRadioForced)!="undefined";return{root:r,isForced:l}}fireSelectTabEvent(o,r){let{group:l,key:c,align:s}=o,u=l.startsWith(_)?{key:c,align:s}:o;this._onSelectTabHandlers.forEach(f=>{f({tab:u,currentTabId:r})})}isValidTabElement(o){let r=o.matches(h.TAB)&&o.dataset.diplodocId?o.closest(h.TAB_LIST):null;return r==null?void 0:r.closest(h.TABS)}areTabsVertical(o){let r=o.parentElement;return o.dataset.diplodocVerticalTab||!!(r!=null&&r.dataset.diplodocVerticalTab)}getTabDataFromHTMLElement(o){var r,l;if(this.areTabsVertical(o)){let u=o.dataset.diplodocVerticalTab?o:o.parentElement,f=u.dataset.diplodocKey,p=(r=u.closest(h.TABS))==null?void 0:r.dataset.diplodocGroup;return f&&p?{group:p,key:f,align:"radio"}:null}let c=o.dataset.diplodocKey,s=(l=o.closest(h.TABS))==null?void 0:l.dataset.diplodocGroup;return c&&s?{group:s,key:c,align:"horizontal"}:null}getTabs(o){var r,l;let c=(r=o.closest(h.TABS))==null?void 0:r.dataset.diplodocGroup,s=(l=o.closest(h.TAB_LIST))==null?void 0:l.querySelectorAll(h.TAB),u=[];return s.forEach(f=>{let p=f==null?void 0:f.dataset.diplodocKey;p&&u.push({group:c,key:p,align:"horizontal"})}),{tabs:u,nodes:s}}};typeof window!="undefined"&&typeof document!="undefined"&&!window[H]&&(window[H]=new $(document))})();var ie=oe(re());typeof document!="undefined"&&function(e){let t=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector;t?e.matches=e.matchesSelector=t:e.matches=e.matchesSelector=function(i){let v=(e.getRootNode?e.getRootNode():ie.default.call(e)).querySelectorAll(i),d=this;return Array.prototype.some.call(v,m=>m===d)}}(Element.prototype);var k=e=>{let t=e.composedPath();return Array.isArray(t)&&t.length>0?t[0]:e.target},V=e=>{let t=k(e);return!t||!t.matches},le=".yfm-clipboard-button";function ae(e){if(!e)return Promise.resolve();if(navigator.clipboard&&typeof navigator.clipboard.writeText)return navigator.clipboard.writeText(e);let t=document.createElement("textarea");return t.setAttribute("style","position: absolute; left: 1000%"),t.textContent=e,document.body.append(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Promise.resolve()}function ce(e){if(!e)return;let t=e.getAttribute("data-animation"),n=e.getRootNode().getElementById(`visibileAnimation-${t}`);n&&n.beginElement()}typeof document!="undefined"&&document.addEventListener("click",e=>{let t=k(e);if(V(e)||!t.matches(le))return;let n=t.parentNode;if(!n)return;let i=n.querySelector("pre code");i&&ae(i.innerText).then(()=>{ce(n.querySelector(".yfm-clipboard-icon"))})});var se={CUT:".yfm .yfm-cut",TITLE:".yfm .yfm-cut-title",CONTENT:".yfm .yfm-cut-content"},de={OPEN:"open"};function ue(e){let t=e.parentNode;t instanceof HTMLElement&&t.classList.toggle(de.OPEN)}function K(e){var t;return e instanceof HTMLElement?(t=e==null?void 0:e.matches)==null?void 0:t.call(e,se.TITLE):!1}function fe(e){var t;let n=k(e);if(K(n))return n;let i=(t=e.composedPath)==null?void 0:t.call(e);return i==null?void 0:i.find(K)}typeof document!="undefined"&&document.addEventListener("click",e=>{if(V(e))return;let t=fe(e);t&&ue(t)});var F={TITLE:".yfm .yfm-term_title",CONTENT:".yfm .yfm-term_dfn"},B="open",I=F.CONTENT.replace(/\./g,"")+" "+B,R=!0;function me(e){var t;let n=e.getAttribute("term-key"),i=document.getElementById(`${n}_template`),a=i==null?void 0:i.content.cloneNode(!0).firstChild;return(t=i==null?void 0:i.parentElement)==null||t.appendChild(a),i.remove(),a}function pe(e,t){let n=t.getAttribute("id")||Math.random().toString(36).substr(2,8);e==null||e.setAttribute("term-id",n)}function ve(e,t){let n=t.getAttribute("aria-live")||"polite";e==null||e.setAttribute("aria-live",n),e==null||e.setAttribute("aria-modal","true")}function q(e,t){let{x:n,y:i,right:a,left:v,width:d,height:m}=t.getBoundingClientRect(),T=Y(t);if(!T)return;let{right:L,left:_}=T.getBoundingClientRect();if((L<v||_>a)&&!R){x(e);return}R&&T&&(T.addEventListener("scroll",X),R=!1);let H=Number(e.getAttribute("relativeX")),O=Number(e.getAttribute("relativeY"));if(H===n&&O===i)return;e.setAttribute("relativeX",String(n)),e.setAttribute("relativeY",String(i));let D=m+5,w=e.parentElement;if(!w)return;let{width:A}=e.getBoundingClientRect(),{left:h}=w.getBoundingClientRect(),$=Number(M(t).left),o=A+$,r=$-A<0,l=o>document.body.clientWidth,s=(l||document.dir==="rtl")&&!r?A-d:0,u=M(w).top-w.offsetTop,p=l?o-document.body.clientWidth+5:0,y=M(t).left-h+w.offsetLeft-s,g=y+A>=document.body.clientWidth;e.style.top=Number(M(t).top+D-u)+"px",e.style.left=Number(y-(g?p:0))+"px"}function X(){let e=document.getElementsByClassName(I)[0];if(!e)return;let t=e.getAttribute("term-id")||"",n=document.getElementById(t);n&&q(e,n)}function Y(e){return e?e.closest("table")||e.closest("code")||e.parentElement:null}function G(e){let t=document.getElementsByClassName(I)[0],n=e.getAttribute("id"),i=e.getAttribute("term-key"),a=document.getElementById(i+"_element");if(i&&!a&&(a=me(e)),t&&n===t.getAttribute("term-id")){x(t);return}let d=e.closest([F.CONTENT.replace(" ",""),B].join("."));t&&!d&&x(t),!(!e.matches(F.TITLE)||!a)&&(pe(a,e),ve(a,e),q(a,e),a.classList.toggle(B),he(a))}function x(e){e.classList.remove(B);let t=e.getAttribute("term-id")||"",n=document.getElementById(t),i=Y(n);i&&(i.removeEventListener("scroll",X),n==null||n.focus(),R=!0)}function M(e){let t=e.getBoundingClientRect(),n=document.body,i=document.documentElement,a=window.pageYOffset||i.scrollTop||n.scrollTop,v=window.pageXOffset||i.scrollLeft||n.scrollLeft,d=i.clientTop||n.clientTop||0,m=i.clientLeft||n.clientLeft||0,T=t.top+a-d,L=t.left+v-m;return{top:Math.round(T),left:Math.round(L)}}function he(e){let t=e.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=t[0],i=t[t.length-1];n&&n.focus(),e.addEventListener("keydown",function(a){(a.key==="Tab"||a.keyCode===9)&&(a.shiftKey?document.activeElement===n&&(i.focus(),a.preventDefault()):document.activeElement===i&&(n.focus(),a.preventDefault()))})}typeof document!="undefined"&&(document.addEventListener("click",e=>{(k(e)||!V(e))&&G(k(e))}),document.addEventListener("keydown",e=>{let t=document.getElementsByClassName(I)[0];e.key==="Enter"&&document.activeElement&&G(document.activeElement),e.key==="Escape"&&t&&x(t)}),window.addEventListener("resize",()=>{let e=document.getElementsByClassName(I)[0];if(!e)return;let t=e.getAttribute("term-id")||"",n=document.getElementById(t);if(!n){e.classList.toggle(B);return}q(e,n)}));var ye="[wide-content]",be='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M7.754 2.004a.75.75 0 0 0 0 1.5h4.75v4.742a.75.75 0 0 0 1.5 0V2.754a.75.75 0 0 0-.75-.75zm.492 11.992a.75.75 0 0 0 0-1.5h-4.75V7.754a.75.75 0 0 0-1.5 0v5.492a.75.75 0 0 0 .75.75z" clip-rule="evenodd"/></svg>',Te='<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg" class="close-action"><path fillRule="evenodd" clipRule="evenodd" d="M9.46967 9.46967C9.76256 9.17678 10.2374 9.17678 10.5303 9.46967L14 12.9393L17.4697 9.46967C17.7626 9.17678 18.2374 9.17678 18.5303 9.46967C18.8232 9.76256 18.8232 10.2374 18.5303 10.5303L15.0607 14L18.5303 17.4697C18.8232 17.7626 18.8232 18.2374 18.5303 18.5303C18.2374 18.8232 17.7626 18.8232 17.4697 18.5303L14 15.0607L10.5303 18.5303C10.2374 18.8232 9.76256 18.8232 9.46967 18.5303C9.17678 18.2374 9.17678 17.7626 9.46967 17.4697L12.9393 14L9.46967 10.5303C9.17678 10.2374 9.17678 9.76256 9.46967 9.46967Z" fill="var(--g-color-text-primary)" fillOpacity="0.85"/></svg>',j=()=>{window.wideTemplate&&(window.wideTemplate.style.display="none",window.wideTemplate.content(void 0))},ge=e=>{if(e.tagName!=="TABLE")return;let t=Array.from(e.children);return t.find(a=>a.tagName==="THEAD")?void 0:t.find(a=>a.tagName==="TBODY")},Le=()=>{if(window.wideTemplate)return window.wideTemplate;let e=document.createElement("div");e.classList.add("dc-doc-page","wide-container");let t=document.createElement("div");t.classList.add("wide-content-overlay"),t.addEventListener("click",j);let n=document.createElement("div");n.classList.add("yfm","wide-content-wrapper");let i=document.createElement("div");i.classList.add("wide-toolbar");let a=document.createElement("div");a.classList.add("wide-actions"),a.addEventListener("click",j),a.innerHTML=Te;let v=document.createElement("p");v.classList.add("wide-entity-name"),e.label=m=>{v.innerHTML=m||""};let d=document.createElement("div");return d.classList.add("wide-content"),e.content=m=>{var T;if(typeof m=="undefined"){d.innerHTML="";return}let L=m.cloneNode(!0),_=ge(L);(T=_==null?void 0:_.classList)==null||T.add("wide-thead-content"),d.replaceChildren(L)},i.append(v,a),n.append(i,d),e.append(t,n),e.style.display="none",document.body.appendChild(e),window.wideTemplate=e,e},we=e=>{let t=Le();t.label(e.title),t.content(e),t.style.display="flex"},Ee={render:we,remove:j},Ae=e=>{var t;if((t=e.parentElement)!=null&&t.classList.contains("wide-element-wrapper"))return;e.classList.add("wide-inner-element");let n=document.createElement("div");n.innerHTML=be,n.classList.add("wide-content-viewer"),n.addEventListener("click",()=>Ee.render(e));let i=document.createElement("div");i.classList.add("wide-element-wrapper"),e.before(i),i.appendChild(e),i.appendChild(n)},U=()=>{Array.from(document.querySelectorAll(ye)).forEach(Ae)};typeof window!="undefined"&&typeof document!="undefined"&&window.addEventListener("load",U);var Se=()=>{U()};typeof window!="undefined"&&(window.patchAfterRender=Se)})();})();
1
+ "use strict";(()=>{(()=>{var J=Object.create,V=Object.defineProperty,Q=Object.getOwnPropertyDescriptor,j=Object.getOwnPropertyNames,Z=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty,te=(e,t,n)=>t in e?V(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ne=(e,t)=>function(){return t||(0,e[j(e)[0]])((t={exports:{}}).exports,t),t.exports},oe=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of j(t))!ee.call(e,c)&&c!==n&&V(e,c,{get:()=>t[c],enumerable:!(r=Q(t,c))||r.enumerable});return e},ie=(e,t,n)=>(n=e!=null?J(Z(e)):{},oe(t||!e||!e.__esModule?V(n,"default",{value:e,enumerable:!0}):n,e)),F=(e,t,n)=>(te(e,typeof t!="symbol"?t+"":t,n),n),re=ne({"node_modules/get-root-node-polyfill/index.js"(e,t){"use strict";function n(s){var l=typeof s=="object"&&!!s.composed;return l?r(this):c(this)}function r(s){var l=c(s);return h(l)?r(l.host):l}function c(s){return s.parentNode!=null?c(s.parentNode):s}function h(s){return s.nodeName==="#document-fragment"&&s.constructor.name==="ShadowRoot"}typeof t=="object"&&t.exports&&(t.exports=n)}});(()=>{var e="yfm_cut",t={CUT:".yfm .yfm-cut",TITLE:".yfm .yfm-cut-title",CONTENT:".yfm .yfm-cut-content"},n={OPEN:"open"},r=s=>{let l=s.composedPath();return Array.isArray(l)&&l.length>0?l[0]:s.target},c=s=>{let l=r(s);return!l||!l.matches},h=class{constructor(s){F(this,"__doc"),F(this,"_onDocClick",l=>{if(c(l))return;let p=this._findTitleInPath(l);p&&this._toggleCut(p)}),F(this,"_matchTitle",l=>{var p;return l instanceof HTMLElement?(p=l==null?void 0:l.matches)==null?void 0:p.call(l,t.TITLE):!1}),this.__doc=s,this.__doc.addEventListener("click",this._onDocClick),this.__doc.addEventListener("DOMContentLoaded",this._focusActiveCut)}destroy(){this.__doc.removeEventListener("click",this._onDocClick)}_focusActiveCut(){let s=window.location.hash.slice(1),l=document.getElementById(s);l instanceof HTMLElement&&l.matches(t.CUT)&&(l.classList.toggle(n.OPEN),l.setAttribute("open","true"),setTimeout(()=>{l.classList.add("cut-highlight"),l.scrollIntoView()},70),setTimeout(()=>{l.classList.remove("cut-highlight")},1e3))}_findTitleInPath(s){var l,p;let b=r(s);return this._matchTitle(b)?b:(p=(l=s.composedPath)==null?void 0:l.call(s))==null?void 0:p.find(this._matchTitle)}_toggleCut(s){var l;(l=s.parentElement)==null||l.classList.toggle(n.OPEN)}};typeof window<"u"&&typeof document<"u"&&!window[e]&&(window[e]=new h(document))})(),(()=>{var e="yfm-tabs",t="yfm-tabs-vertical",n="yfm-tab-list",r="yfm-tab",c="yfm-tab-panel",h="active",s="data-diplodoc-radio-forced",l="data-diplodoc-group",p="data-diplodoc-key",b="data-diplodoc-id",S="defaultTabsGroup-",D=Symbol.for("diplodocTabs"),k=o=>{let i=o.composedPath();return Array.isArray(i)&&i.length>0?i[0]:o.target},H=o=>{let i=k(o);return!i||!i.matches},L=o=>Math.abs(o.scrollHeight-o.clientHeight)>1?o:o.parentElement?L(o.parentElement):void 0,_=(o,i)=>{let a=o.getBoundingClientRect(),d=i.getBoundingClientRect();return{top:a.top-d.top,left:a.left-d.left,scrollTop:i.scrollTop,scrollLeft:i.scrollLeft}},g={TABS:`.${e}`,TAB_LIST:`.${n}`,TAB:`.${r}`,TAB_PANEL:`.${c}`,VERTICAL_TABS:`.${t}`},$=class{constructor(o){this._onSelectTabHandlers=new Set,this._document=o,this._document.addEventListener("click",i=>{let a=k(i),d=this.areTabsVertical(a);if(H(i)||!(this.isValidTabElement(a)||d))return;let u=this.getTabDataFromHTMLElement(a);u&&this._selectTab(u,a)}),this._document.addEventListener("keydown",i=>{let a=null;switch(i.key){case"ArrowLeft":{a="left";break}case"ArrowRight":{a="right";break}case"ArrowUp":{a="left";break}case"ArrowDown":{a="right";break}}if(!a)return;let d=k(i);if(H(i)||!this.isValidTabElement(d))return;let{tabs:u,nodes:f}=this.getTabs(d),m=this.getTabDataFromHTMLElement(d),v=u.findIndex(({key:w})=>(m==null?void 0:m.key)&&w===m.key);if(!m||u.length<=1||v===-1)return;let y=(v+(a==="left"?-1:1)+u.length)%u.length;this.selectTab(u[y]),f[y].focus()})}onSelectTab(o){return this._onSelectTabHandlers.add(o),()=>{this._onSelectTabHandlers.delete(o)}}selectTabById(o,i){let a=this._document.querySelector(`${g.TAB}[${b}="${o}"]`);if(!a||!this.isValidTabElement(a))return;let d=this.getTabDataFromHTMLElement(a);d&&this._selectTab(d,a),i!=null&&i.scrollToElement&&a.scrollIntoView()}selectTab(o){this._selectTab(o)}_selectTab(o,i){let{group:a,key:d,align:u}=o;if(!a)return;let f=i&&L(i),m=f&&_(i,f);this.updateHTML({group:a,key:d,align:u},i,u)>0&&(this.fireSelectTabEvent({group:a,key:d,align:u},i==null?void 0:i.dataset.diplodocId),m&&this.resetScroll(i,f,m))}updateHTML(o,i,a){switch(a){case"radio":return this.updateHTMLVertical(o,i);case"horizontal":return this.updateHTMLHorizontal(o)}return 0}updateHTMLVertical(o,i){let{group:a,key:d}=o,{isForced:u,root:f}=this.didTabOpenForce(i),m=u?`.yfm-vertical-tab[${s}="true"]`:"",v=this._document.querySelectorAll(`${g.TABS}[${l}="${a}"] ${g.TAB}[${p}="${d}"]${m}`);u&&(f==null||f.removeAttribute(s));let y=0;return v.forEach(w=>{let C=w.parentNode.children;for(let N=0;N<C.length;N+=2){let[A,T]=[C.item(N),C.item(N+1)],E=A.children.item(0);if(A===w){E.checked?(A.classList.remove("active"),T==null||T.classList.remove("active"),E.removeAttribute("checked")):(A.classList.add("active"),T==null||T.classList.add("active"),E.setAttribute("checked","true"));continue}E.hasAttribute("checked")&&(A.classList.remove("active"),T==null||T.classList.remove("active"),E.removeAttribute("checked")),y++}}),y}updateHTMLHorizontal(o){let{group:i,key:a}=o,d=this._document.querySelectorAll(`${g.TABS}[${l}="${i}"] ${g.TAB}[${p}="${a}"]`),u=0;return d.forEach(f=>{let m=f;if(!this.isValidTabElement(m)||m.dataset.diplodocIsActive==="true")return;u++;let v=f,y=v.parentNode,w=y==null?void 0:y.parentNode,C=Array.from((y==null?void 0:y.querySelectorAll(g.TAB))||[]),N=Array.from((w==null?void 0:w.children)||[]).filter(T=>T.classList.contains(c)),A=C.indexOf(v);C.forEach((T,E)=>{let Ee=N[E],O=E===A,_e=T;_e.dataset.diplodocIsActive=O?"true":"false",T.classList.toggle(h,O),T.setAttribute("aria-selected",O.toString()),T.setAttribute("tabindex",O?"0":"-1"),Ee.classList.toggle(h,O)})}),u}resetScroll(o,i,a){let d=_(o,i),u=d.top-a.top,f=d.left-a.left,m=d.scrollTop-a.scrollTop,v=d.scrollLeft-a.scrollLeft;i.scrollTo(i.scrollLeft+f-v,i.scrollTop+u-m)}didTabOpenForce(o){if(!o)return{};let i=o.dataset.diplodocVerticalTab?o:o.parentElement,a=typeof(i==null?void 0:i.dataset.diplodocRadioForced)!="undefined";return{root:i,isForced:a}}fireSelectTabEvent(o,i){let{group:a,key:d,align:u}=o,f=a.startsWith(S)?{key:d,align:u}:o;this._onSelectTabHandlers.forEach(m=>{m({tab:f,currentTabId:i})})}isValidTabElement(o){let i=o.matches(g.TAB)&&o.dataset.diplodocId?o.closest(g.TAB_LIST):null;return i==null?void 0:i.closest(g.TABS)}areTabsVertical(o){let i=o.parentElement;return o.dataset.diplodocVerticalTab||!!(i!=null&&i.dataset.diplodocVerticalTab)}getTabDataFromHTMLElement(o){var i,a;if(this.areTabsVertical(o)){let f=o.dataset.diplodocVerticalTab?o:o.parentElement,m=f.dataset.diplodocKey,v=(i=f.closest(g.TABS))==null?void 0:i.dataset.diplodocGroup;return m&&v?{group:v,key:m,align:"radio"}:null}let d=o.dataset.diplodocKey,u=(a=o.closest(g.TABS))==null?void 0:a.dataset.diplodocGroup;return d&&u?{group:u,key:d,align:"horizontal"}:null}getTabs(o){var i,a;let d=(i=o.closest(g.TABS))==null?void 0:i.dataset.diplodocGroup,u=(a=o.closest(g.TAB_LIST))==null?void 0:a.querySelectorAll(g.TAB),f=[];return u.forEach(m=>{let v=m==null?void 0:m.dataset.diplodocKey;v&&f.push({group:d,key:v,align:"horizontal"})}),{tabs:f,nodes:u}}};typeof window!="undefined"&&typeof document!="undefined"&&!window[D]&&(window[D]=new $(document))})();var le=ie(re());typeof document!="undefined"&&function(e){let t=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector;t?e.matches=e.matchesSelector=t:e.matches=e.matchesSelector=function(r){let h=(e.getRootNode?e.getRootNode():le.default.call(e)).querySelectorAll(r),s=this;return Array.prototype.some.call(h,l=>l===s)}}(Element.prototype);var P=e=>{let t=e.composedPath();return Array.isArray(t)&&t.length>0?t[0]:e.target},K=e=>{let t=P(e);return!t||!t.matches},ae=".yfm-clipboard-button";function ce(e){if(!e)return Promise.resolve();if(navigator.clipboard&&typeof navigator.clipboard.writeText)return navigator.clipboard.writeText(e);let t=document.createElement("textarea");return t.setAttribute("style","position: absolute; left: 1000%"),t.textContent=e,document.body.append(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Promise.resolve()}function se(e){if(!e)return;let t=e.getAttribute("data-animation"),n=e.getRootNode().getElementById(`visibileAnimation-${t}`);n&&n.beginElement()}typeof document!="undefined"&&document.addEventListener("click",e=>{let t=P(e);if(K(e)||!t.matches(ae))return;let n=t.parentNode;if(!n)return;let r=n.querySelector("pre code");r&&ce(r.innerText).then(()=>{se(n.querySelector(".yfm-clipboard-icon"))})});var q={TITLE:".yfm .yfm-term_title",CONTENT:".yfm .yfm-term_dfn"},B="open",I=q.CONTENT.replace(/\./g,"")+" "+B,M=!0;function de(e){var t;let n=e.getAttribute("term-key"),r=document.getElementById(`${n}_template`),c=r==null?void 0:r.content.cloneNode(!0).firstChild;return(t=r==null?void 0:r.parentElement)==null||t.appendChild(c),r.remove(),c}function ue(e,t){let n=t.getAttribute("id")||Math.random().toString(36).substr(2,8);e==null||e.setAttribute("term-id",n)}function fe(e,t){let n=t.getAttribute("aria-live")||"polite";e==null||e.setAttribute("aria-live",n)}function z(e,t){let{x:n,y:r,right:c,left:h,width:s,height:l}=t.getBoundingClientRect(),p=Y(t);if(!p)return;let{right:b,left:S}=p.getBoundingClientRect();if((b<h||S>c)&&!M){R(e);return}M&&p&&(p.addEventListener("scroll",X),M=!1);let D=Number(e.getAttribute("relativeX")),k=Number(e.getAttribute("relativeY"));if(D===n&&k===r)return;e.setAttribute("relativeX",String(n)),e.setAttribute("relativeY",String(r));let H=l+5,L=e.parentElement;if(!L)return;let{width:_}=e.getBoundingClientRect(),{left:g}=L.getBoundingClientRect(),$=Number(x(t).left),o=_+$,i=$-_<0,a=o>document.body.clientWidth,u=(a||document.dir==="rtl")&&!i?_-s:0,f=x(L).top-L.offsetTop,v=a?o-document.body.clientWidth+5:0,y=x(t).left-g+L.offsetLeft-u,w=y+_>=document.body.clientWidth;e.style.top=Number(x(t).top+H-f)+"px",e.style.left=Number(y-(w?v:0))+"px"}function X(){let e=document.getElementsByClassName(I)[0];if(!e)return;let t=e.getAttribute("term-id")||"",n=document.getElementById(t);n&&z(e,n)}function Y(e){return e?e.closest("table")||e.closest("code")||e.parentElement:null}function G(e){let t=document.getElementsByClassName(I)[0],n=e.getAttribute("id"),r=e.getAttribute("term-key"),c=document.getElementById(r+"_element");if(r&&!c&&(c=de(e)),t&&n===t.getAttribute("term-id")){R(t);return}let s=e.closest([q.CONTENT.replace(" ",""),B].join("."));t&&!s&&R(t),!(!e.matches(q.TITLE)||!c)&&(ue(c,e),fe(c,e),z(c,e),c.classList.toggle(B),me(c))}function R(e){e.classList.remove(B);let t=e.getAttribute("term-id")||"",n=document.getElementById(t),r=Y(n);r&&(r.removeEventListener("scroll",X),n==null||n.focus(),M=!0)}function x(e){let t=e.getBoundingClientRect(),n=document.body,r=document.documentElement,c=window.pageYOffset||r.scrollTop||n.scrollTop,h=window.pageXOffset||r.scrollLeft||n.scrollLeft,s=r.clientTop||n.clientTop||0,l=r.clientLeft||n.clientLeft||0,p=t.top+c-s,b=t.left+h-l;return{top:Math.round(p),left:Math.round(b)}}function me(e){let t=e.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=t[0],r=t[t.length-1];n&&n.focus(),e.addEventListener("keydown",function(c){(c.key==="Tab"||c.keyCode===9)&&(c.shiftKey?document.activeElement===n&&(r.focus(),c.preventDefault()):document.activeElement===r&&(n.focus(),c.preventDefault()))})}typeof document!="undefined"&&(document.addEventListener("click",e=>{(P(e)||!K(e))&&G(P(e))}),document.addEventListener("keydown",e=>{let t=document.getElementsByClassName(I)[0];e.key==="Enter"&&document.activeElement&&G(document.activeElement),e.key==="Escape"&&t&&R(t)}),window.addEventListener("resize",()=>{let e=document.getElementsByClassName(I)[0];if(!e)return;let t=e.getAttribute("term-id")||"",n=document.getElementById(t);if(!n){e.classList.toggle(B);return}z(e,n)}));var pe="[wide-content]",he='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M7.754 2.004a.75.75 0 0 0 0 1.5h4.75v4.742a.75.75 0 0 0 1.5 0V2.754a.75.75 0 0 0-.75-.75zm.492 11.992a.75.75 0 0 0 0-1.5h-4.75V7.754a.75.75 0 0 0-1.5 0v5.492a.75.75 0 0 0 .75.75z" clip-rule="evenodd"/></svg>',ve='<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg" class="close-action"><path fillRule="evenodd" clipRule="evenodd" d="M9.46967 9.46967C9.76256 9.17678 10.2374 9.17678 10.5303 9.46967L14 12.9393L17.4697 9.46967C17.7626 9.17678 18.2374 9.17678 18.5303 9.46967C18.8232 9.76256 18.8232 10.2374 18.5303 10.5303L15.0607 14L18.5303 17.4697C18.8232 17.7626 18.8232 18.2374 18.5303 18.5303C18.2374 18.8232 17.7626 18.8232 17.4697 18.5303L14 15.0607L10.5303 18.5303C10.2374 18.8232 9.76256 18.8232 9.46967 18.5303C9.17678 18.2374 9.17678 17.7626 9.46967 17.4697L12.9393 14L9.46967 10.5303C9.17678 10.2374 9.17678 9.76256 9.46967 9.46967Z" fill="var(--g-color-text-primary)" fillOpacity="0.85"/></svg>',W=()=>{window.wideTemplate&&(window.wideTemplate.style.display="none",window.wideTemplate.content(void 0))},ge=e=>{if(e.tagName!=="TABLE")return;let t=Array.from(e.children);return t.find(c=>c.tagName==="THEAD")?void 0:t.find(c=>c.tagName==="TBODY")},ye=()=>{if(window.wideTemplate)return window.wideTemplate;let e=document.createElement("div");e.classList.add("dc-doc-page","wide-container");let t=document.createElement("div");t.classList.add("wide-content-overlay"),t.addEventListener("click",W);let n=document.createElement("div");n.classList.add("yfm","wide-content-wrapper");let r=document.createElement("div");r.classList.add("wide-toolbar");let c=document.createElement("div");c.classList.add("wide-actions"),c.addEventListener("click",W),c.innerHTML=ve;let h=document.createElement("p");h.classList.add("wide-entity-name"),e.label=l=>{h.innerHTML=l||""};let s=document.createElement("div");return s.classList.add("wide-content"),e.content=l=>{var p;if(typeof l=="undefined"){s.innerHTML="";return}let b=l.cloneNode(!0),S=ge(b);(p=S==null?void 0:S.classList)==null||p.add("wide-thead-content"),s.replaceChildren(b)},r.append(h,c),n.append(r,s),e.append(t,n),e.style.display="none",document.body.appendChild(e),window.wideTemplate=e,e},Te=e=>{let t=ye();t.label(e.title),t.content(e),t.style.display="flex"},be={render:Te,remove:W},we=e=>{var t;if((t=e.parentElement)!=null&&t.classList.contains("wide-element-wrapper"))return;e.classList.add("wide-inner-element");let n=document.createElement("div");n.innerHTML=he,n.classList.add("wide-content-viewer"),n.addEventListener("click",()=>be.render(e));let r=document.createElement("div");r.classList.add("wide-element-wrapper"),e.before(r),r.appendChild(e),r.appendChild(n)},U=()=>{Array.from(document.querySelectorAll(pe)).forEach(we)};typeof window!="undefined"&&typeof document!="undefined"&&window.addEventListener("load",U);var Le=()=>{U()};typeof window!="undefined"&&(window.patchAfterRender=Le)})();})();
2
2
  //# sourceMappingURL=yfm.min.js.map