@diplodoc/transform 4.35.0-beta6 → 4.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/_yfm-only.css.map +2 -2
- package/dist/css/_yfm-only.min.css.map +2 -2
- package/dist/css/base.css.map +2 -2
- package/dist/css/base.min.css.map +2 -2
- package/dist/css/print.css.map +2 -2
- package/dist/css/yfm.css.map +2 -2
- package/dist/css/yfm.min.css.map +2 -2
- package/dist/js/base.js +2 -2
- package/dist/js/base.js.map +1 -1
- package/dist/js/base.min.js +1 -1
- package/dist/js/base.min.js.map +2 -2
- package/dist/js/yfm.js +5 -5
- package/dist/js/yfm.js.map +1 -1
- package/dist/js/yfm.min.js +1 -1
- package/dist/js/yfm.min.js.map +2 -2
- package/lib/plugins/images/index.js +1 -1
- package/lib/plugins/images/index.js.map +1 -1
- package/lib/plugins/video/const.d.ts +0 -5
- package/lib/plugins/video/const.js.map +1 -1
- package/lib/plugins/video/index.js +8 -3
- package/lib/plugins/video/index.js.map +1 -1
- package/lib/plugins/video/parsers.js +8 -8
- package/lib/plugins/video/parsers.js.map +1 -1
- package/lib/plugins/video/types.d.ts +5 -0
- package/package.json +1 -1
- package/src/transform/plugins/images/index.ts +1 -1
- package/src/transform/plugins/video/const.ts +0 -7
- package/src/transform/plugins/video/index.ts +12 -7
- package/src/transform/plugins/video/parsers.ts +10 -9
- package/src/transform/plugins/video/types.ts +7 -0
- package/lib/plugins/csp.d.ts +0 -6
- package/lib/plugins/csp.js +0 -26
- package/lib/plugins/csp.js.map +0 -1
package/dist/js/yfm.min.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
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
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 }\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';\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 TabsController} from './runtime/TabsController';\n\nexport const TAB_RE = /`?{% list tabs .*?%}`?/;\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const TAB_GROUP_CLASSNAME = 'yfm-tab-group';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_VARIANT = 'data-diplodoc-variant';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\nexport const ACTIVE_TAB_TEXT = '{selected}';\nexport const TAB_FORCED_OPEN = 'data-diplodoc-forced';\n\nexport const TABS_DROPDOWN_CLASSNAME = 'yfm-tabs-dropdown';\nexport const TABS_DROPDOWN_MENU_CLASSNAME = 'yfm-tabs-dropdown-menu';\nexport const TABS_DROPDOWN_SELECT = 'yfm-tabs-dropdown-select';\n\nexport const TABS_ACCORDION_CLASSNAME = 'yfm-tabs-accordion';\nexport const TABS_ACCORDION_CLIENT_HEIGHT = 'data-yfm-tabs-accordion-client-heights';\n\nexport const TABS_RADIO_CLASSNAME = 'yfm-tabs-vertical';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport enum TabsVariants {\n Regular = 'regular',\n Radio = 'radio',\n Dropdown = 'dropdown',\n Accordion = 'accordion',\n}\n\nexport type EnabledVariants = Partial<Record<TabsVariants, boolean>>;\n\nexport interface Tab {\n group?: string;\n key: string;\n variant: TabsVariants;\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_DROPDOWN_SELECT,\n TABS_LIST_CLASSNAME,\n TABS_RADIO_CLASSNAME,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_DATA_VARIANT,\n TAB_FORCED_OPEN,\n TAB_PANEL_CLASSNAME,\n Tab,\n TabsVariants,\n} from '../common';\n\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_RADIO_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 private _onSelectTabHandlers: Set<Handler> = new Set();\n\n // TODO: remove side effects from constructor\n constructor(document: Document) {\n this._document = document;\n\n this._document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n\n if (event.target) {\n this.hideAllDropdown(event.target as HTMLElement);\n }\n\n if (isCustom(event)) {\n return;\n }\n\n if (this.isElementDropdownSelect(target)) {\n target.classList.toggle(ACTIVE_CLASSNAME);\n\n return;\n }\n\n if (!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\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, variant} = 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, variant}, targetTab, variant);\n\n if (updatedTabs > 0) {\n this.fireSelectTabEvent({group, key, variant}, targetTab?.dataset.diplodocId);\n\n if (previousTargetOffset) {\n this.resetScroll(targetTab, scrollableParent, previousTargetOffset);\n }\n }\n }\n\n private updateHTML(tab: Required<Tab>, target: HTMLElement | undefined, variant: TabsVariants) {\n switch (variant) {\n case TabsVariants.Radio: {\n return this.updateHTMLRadio(tab, target);\n }\n case TabsVariants.Accordion: {\n return this.updateHTMLAccordion(tab, target);\n }\n case TabsVariants.Regular: {\n return this.updateHTMLRegular(tab);\n }\n case TabsVariants.Dropdown: {\n return this.updateHTMLDropdown(tab);\n }\n }\n\n return 0;\n }\n\n private updateHTMLRadio(tab: Required<Tab>, target: HTMLElement | undefined) {\n const {group, key} = tab;\n\n const {isForced, root} = this.didTabOpenForce(target);\n\n const singleTabSelector = isForced ? `.yfm-vertical-tab[${TAB_FORCED_OPEN}=\"true\"]` : '';\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(TAB_FORCED_OPEN);\n }\n\n let updated = 0;\n\n tabs.forEach((tab) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\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 updateHTMLRegular(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 updateHTMLDropdown(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 changed = 0;\n\n tabs.forEach((tab) => {\n const dropdown = tab.closest(`[${TAB_DATA_VARIANT}=${TabsVariants.Dropdown}]`);\n\n if (!dropdown?.children) {\n return;\n }\n\n const select = dropdown.children.item(0) as HTMLElement;\n const menu = dropdown.children.item(1);\n\n select?.classList.remove(ACTIVE_CLASSNAME);\n\n /* first and second elements are select / menu, skipping them */\n const changedIndex = Array.from(menu?.children || []).indexOf(tab) + 2;\n\n for (let i = 2; i < dropdown.children.length; i++) {\n const item = dropdown.children.item(i) as HTMLElement;\n const menuItem = menu?.children.item(i - 2) as HTMLElement;\n\n changed++;\n\n if (changedIndex === i) {\n item?.classList.add(ACTIVE_CLASSNAME);\n menuItem.classList.add(ACTIVE_CLASSNAME);\n\n select.innerHTML = tab.innerHTML;\n select.classList.add('filled');\n\n continue;\n }\n\n menuItem.classList.remove(ACTIVE_CLASSNAME);\n item.classList.remove(ACTIVE_CLASSNAME);\n }\n });\n\n return changed;\n }\n\n private updateHTMLAccordion(tab: Required<Tab>, target: HTMLElement | undefined) {\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 changed = 0;\n\n tabs.forEach((tab) => {\n const accordion = tab.closest(`[${TAB_DATA_VARIANT}=${TabsVariants.Accordion}]`);\n\n if (!accordion?.children) {\n return;\n }\n\n for (let i = 0; i < accordion.children.length; i += 2) {\n const title = accordion.children.item(i);\n const currentTab = accordion.children.item(i + 1);\n\n changed++;\n\n if (tab === title) {\n title?.classList.toggle(ACTIVE_CLASSNAME);\n currentTab?.classList.toggle(ACTIVE_CLASSNAME);\n\n continue;\n }\n\n title?.classList.remove(ACTIVE_CLASSNAME);\n currentTab?.classList.remove(ACTIVE_CLASSNAME);\n }\n });\n\n if (target && !this.checkVisible(target)) {\n setTimeout(() => {\n target.scrollIntoView({block: 'nearest'});\n });\n }\n\n return changed;\n }\n\n private checkVisible(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);\n\n return !(rect.bottom < 0 || rect.top - viewHeight >= 0);\n }\n\n private hideAllDropdown(target: HTMLElement) {\n const dropdowns = this._document.querySelectorAll('.yfm-tabs-dropdown-select.active');\n\n dropdowns.forEach((menu) => {\n if (!menu.contains(target)) {\n menu.classList.remove(ACTIVE_CLASSNAME);\n }\n });\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 if (target.dataset.diplodocForced) {\n return {root: target, isForced: true};\n }\n\n const root = target.dataset.diplodocVerticalTab ? target : target.parentElement;\n\n const isForced = typeof root?.dataset.diplodocForced !== 'undefined';\n\n return {root, isForced};\n }\n\n private fireSelectTabEvent(tab: Required<Tab>, diplodocId?: string) {\n const {group, key, variant: align} = tab;\n\n const eventTab: Tab = group.startsWith(DEFAULT_TABS_GROUP_PREFIX)\n ? {key, variant: align}\n : tab;\n\n this._onSelectTabHandlers.forEach((handler) => {\n handler({tab: eventTab, currentTabId: diplodocId});\n });\n }\n\n private getTabsType(element: HTMLElement) {\n const tabsRoot = element.closest(`[${TAB_DATA_VARIANT}]`) as HTMLElement | undefined;\n\n if (!tabsRoot) {\n return undefined;\n }\n\n return tabsRoot.dataset.diplodocVariant;\n }\n\n private isValidTabElement(element: HTMLElement) {\n return Boolean(this.getTabsType(element));\n }\n\n private isElementDropdownSelect(target: HTMLElement) {\n return target.classList.contains(TABS_DROPDOWN_SELECT);\n }\n\n private getTabDataFromHTMLElement(target: HTMLElement): Tab | null {\n const type = this.getTabsType(target);\n\n if (type === TabsVariants.Radio) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\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, variant: TabsVariants.Radio} : null;\n }\n\n if (type === TabsVariants.Dropdown || type === TabsVariants.Accordion) {\n const key = target.dataset.diplodocKey;\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, variant: type} : 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, variant: TabsVariants.Regular} : 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 variant: TabsVariants.Regular,\n });\n });\n\n return {tabs, nodes};\n }\n}\n", "import {GLOBAL_SYMBOL} from '../common';\n\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 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';\n\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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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["require_get_root_node_polyfill", "__commonJS", "exports", "module", "getRootNode", "opt", "composed", "getShadowIncludingRoot", "getRoot", "node", "root", "isShadowRoot", "GLOBAL_KEY", "Selector", "ClassName", "getEventTarget", "event", "path", "isCustom", "target", "YfmCutController", "doc", "__publicField", "title", "cutId", "cutNode", "element", "TABS_CLASSNAME", "TAB_CLASSNAME", "TAB_PANEL_CLASSNAME", "TABS_LIST_CLASSNAME", "ACTIVE_CLASSNAME", "GROUP_DATA_KEY", "TAB_DATA_KEY", "TAB_DATA_VARIANT", "TAB_DATA_ID", "DEFAULT_TABS_GROUP_PREFIX", "TAB_FORCED_OPEN", "TABS_DROPDOWN_SELECT", "TABS_RADIO_CLASSNAME", "GLOBAL_SYMBOL", "getClosestScrollableParent", "getOffsetByScrollableParent", "scrollableParent", "elementBounds", "scrollableParentBounds", "TabsController", "document", "tab", "direction", "tabs", "nodes", "currentTab", "currentTabIndex", "key", "newIndex", "handler", "id", "options", "targetTab", "group", "variant", "previousTargetOffset", "isForced", "singleTabSelector", "updated", "elements", "i", "content", "input", "htmlElem", "tabList", "tabsContainer", "allTabs", "allPanels", "targetIndex", "panel", "isTargetTab", "changed", "dropdown", "select", "menu", "changedIndex", "item", "menuItem", "accordion", "rect", "viewHeight", "targetOffset", "topDelta", "leftDelta", "scrollTopDelta", "scrollLeftDelta", "diplodocId", "align", "eventTab", "tabsRoot", "_a", "_b", "_c", "type", "tabEl", "import_get_root_node_polyfill", "__toESM", "matches", "selector", "th", "e", "BUTTON_SELECTOR", "copyToClipboard", "text", "textarea", "notifySuccess", "svgButton", "icon", "parent", "code", "openClass", "openDefinitionClass", "isListenerNeeded", "createDefinitionElement", "termElement", "termKey", "definitionTemplate", "definitionElement", "setDefinitionId", "termId", "setDefinitonAriaAttributes", "ariaLive", "setDefinitionPosition", "termX", "termY", "termRight", "termLeft", "termWidth", "termHeight", "termParent", "termParentElement", "termParentRight", "termParentLeft", "closeDefinition", "termOnResize", "relativeX", "relativeY", "offsetTop", "definitionParent", "definitionWidth", "definitionParentLeft", "definitionLeftCoordinate", "getCoords", "definitionRightCoordinate", "definitionOutOfScreenOnLeft", "definitionOutOfScreenOnRight", "fitDefinitionDocument", "customHeaderTop", "shiftLeft", "offsetLeft", "isShiftLeftNeeded", "openedDefinition", "term", "openDefinition", "isTargetDefinitionContent", "trapFocus", "definition", "elem", "box", "body", "docEl", "scrollTop", "scrollLeft", "clientTop", "clientLeft", "top", "left", "focusableElements", "firstFocusableElement", "lastFocusableElement", "WIDE_ELEMENTS_SELECTOR", "expand_default", "close_default", "remove", "tbodyOf", "child", "container", "template", "overlay", "wrapper", "toolbar", "close", "cloned", "tbody", "render", "modal", "wrap", "applyWideMode", "patch"]
|
|
7
7
|
}
|
|
@@ -14,7 +14,7 @@ function replaceImageSrc(token, state, { assetsPublicPath = path_1.sep, root = '
|
|
|
14
14
|
}
|
|
15
15
|
const path = (0, utilsFS_1.resolveRelativePath)(currentPath, src);
|
|
16
16
|
if ((0, utilsFS_1.isFileExists)(path)) {
|
|
17
|
-
(_a = state.md.assets) === null || _a === void 0 ? void 0 : _a.push(
|
|
17
|
+
(_a = state.md.assets) === null || _a === void 0 ? void 0 : _a.push(src);
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
20
20
|
log.error(`Asset not found: ${(0, chalk_1.bold)(src)} in ${(0, chalk_1.bold)(currentPath)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/images/index.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,iCAA2B;AAC3B,+BAA8B;AAE9B,2BAAgC;AAEhC,2CAAgE;AAChE,uCAAuD;AASvD,SAAS,eAAe,CACpB,KAAY,EACZ,KAAgB,EAChB,EAAC,gBAAgB,GAAG,UAAG,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAY;;IAEnE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;IAE/C,IAAI,CAAC,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE;QAClB,OAAO;KACV;IAED,MAAM,IAAI,GAAG,IAAA,6BAAmB,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEnD,IAAI,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAE;QACpB,MAAA,KAAK,CAAC,EAAE,CAAC,MAAM,0CAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/images/index.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,iCAA2B;AAC3B,+BAA8B;AAE9B,2BAAgC;AAEhC,2CAAgE;AAChE,uCAAuD;AASvD,SAAS,eAAe,CACpB,KAAY,EACZ,KAAgB,EAChB,EAAC,gBAAgB,GAAG,UAAG,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAY;;IAEnE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;IAE/C,IAAI,CAAC,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE;QAClB,OAAO;KACV;IAED,MAAM,IAAI,GAAG,IAAA,6BAAmB,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEnD,IAAI,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAE;QACpB,MAAA,KAAK,CAAC,EAAE,CAAC,MAAM,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9B;SAAM;QACH,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAA,YAAI,EAAC,GAAG,CAAC,OAAO,IAAA,YAAI,EAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KACtE;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,UAAG,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAEzD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC;AAMD,SAAS,MAAM;IACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CACf,KAAY,EACZ,KAAgB,EAChB,EAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAU;IAEhD,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAA,6BAAmB,EAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAE1E,IAAI;QACA,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,GAAG,EAAE;YACzB,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE;wBACJ,MAAM,EAAE,MAAM,EAAE;qBACnB;iBACJ;aACJ;SACJ,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACrD,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAErC,OAAO,QAAQ,CAAC;KACnB;IAAC,OAAO,CAAU,EAAE;QACjB,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,WAAW,YAAY,CAAC,CAAC;QAEvD,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;SACtC;QAED,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAID,MAAM,KAAK,GAA6B,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;IACjD,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC;IAEf,MAAM,MAAM,GAAG,CAAC,KAAgB,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;YACtB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC7B,CAAC,EAAE,CAAC;gBACJ,SAAS;aACZ;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,CAAC;YAEV,OAAO,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE;gBAC9B,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;oBACpC,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC;oBAEnE,IAAI,QAAQ,EAAE;wBACV,OAAO;qBACV;oBAED,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBACtD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;oBAE5E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAe,EAAE;wBAC5C,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;qBAClE;yBAAM;wBACH,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;qBACnD;oBAED,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;iBACjD;gBAED,CAAC,EAAE,CAAC;aACP;YAED,CAAC,EAAE,CAAC;SACP;IACL,CAAC,CAAC;IAEF,IAAI;QACA,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KACtD;IAAC,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KACxC;IAED,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,iBAAS,KAAK,CAAC"}
|
|
@@ -11,9 +11,4 @@ export declare enum VideoService {
|
|
|
11
11
|
Rutube = "rutube",
|
|
12
12
|
url = "url"
|
|
13
13
|
}
|
|
14
|
-
export declare type Service = {
|
|
15
|
-
csp?: Record<string, string[]>;
|
|
16
|
-
extract(url: string): string;
|
|
17
|
-
};
|
|
18
|
-
export declare type Services = [VideoService, Service][];
|
|
19
14
|
export declare const defaults: VideoFullOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/const.ts"],"names":[],"mappings":";;;AAEA,mCAAiC;AAEjC,yBAAyB;AACzB,IAAY,YAUX;AAVD,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,2BAAW,CAAA;IACX,iCAAiB,CAAA;IACjB,yBAAS,CAAA;IACT,iCAAiB,CAAA;IACjB,2BAAW,CAAA;AACf,CAAC,EAVW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAUvB;
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/const.ts"],"names":[],"mappings":";;;AAEA,mCAAiC;AAEjC,yBAAyB;AACzB,IAAY,YAUX;AAVD,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,2BAAW,CAAA;IACX,iCAAiB,CAAA;IACjB,yBAAS,CAAA;IACT,iCAAiB,CAAA;IACjB,2BAAW,CAAA;AACf,CAAC,EAVW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAUvB;AAEY,QAAA,QAAQ,GAAqB;IACtC,QAAQ,EAAR,gBAAQ;IACR,OAAO,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IAClC,KAAK,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IAChC,IAAI,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAC;IAChD,KAAK,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IAChC,GAAG,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC;IACpC,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IACjC,EAAE,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IAC7B,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;IACjC,GAAG,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;CACjC,CAAC"}
|
|
@@ -62,7 +62,7 @@ function tokenizeVideo(md, options) {
|
|
|
62
62
|
` frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>`;
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
|
-
const EMBED_REGEX = /@\[([a-zA-Z]
|
|
65
|
+
const EMBED_REGEX = /@\[([a-zA-Z]*?)]\([\s]*(.*?)[\s]*[)]/im;
|
|
66
66
|
function videoEmbed(md, _options) {
|
|
67
67
|
return (state, silent) => {
|
|
68
68
|
var _a;
|
|
@@ -77,7 +77,7 @@ function videoEmbed(md, _options) {
|
|
|
77
77
|
if (!match || match.length < 3) {
|
|
78
78
|
return false;
|
|
79
79
|
}
|
|
80
|
-
const service = match[1];
|
|
80
|
+
const service = match[1] || 'url';
|
|
81
81
|
const parsed = (0, parsers_1.parseVideoUrl)(service, match[2]);
|
|
82
82
|
if (parsed === false) {
|
|
83
83
|
return false;
|
|
@@ -100,7 +100,12 @@ function videoEmbed(md, _options) {
|
|
|
100
100
|
token.service = service;
|
|
101
101
|
token.level = theState.level;
|
|
102
102
|
}
|
|
103
|
-
|
|
103
|
+
if (service === 'url') {
|
|
104
|
+
theState.pos = theState.src.indexOf(')', theState.pos) + 1;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
theState.pos += theState.src.indexOf(')', theState.pos);
|
|
108
|
+
}
|
|
104
109
|
if (csp) {
|
|
105
110
|
(_a = (_b = state.env).meta) !== null && _a !== void 0 ? _a : (_b.meta = {});
|
|
106
111
|
(0, utils_1.append)(state.env.meta, 'csp', csp);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/index.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,iCAAiC;AACjC,+BAA+B;AAC/B,4BAA4B;AAC5B,uBAAuB;AACvB,6BAA6B;AAC7B,yBAAyB;AACzB,6BAA6B;AAC7B,2BAA2B;AAS3B,oCAAgC;AAEhC,uCAAwC;AACxC,mCAA+C;AAE/C,uCAAuC;AACvC;;;GAGG;AACH,MAAM,KAAK,GAA0C,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;IACjE,MAAM,UAAU,mCAAyB,gBAAQ,GAAK,OAAO,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC9D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,SAAS,aAAa,CAAC,EAAc,EAAE,OAAyB;IAC5D,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAE,MAAM,CAAC,GAAG,CAAgB,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAE,MAAM,CAAC,GAAG,CAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACvF,MAAM,QAAQ,GACV,iKAAiK,CAAC;QACtK,IAAI,GAAG,CAAC;QAER,IAAI,OAAO,KAAK,oBAAY,CAAC,GAAG,IAAI,OAAO,EAAE;YACzC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;YAE9B,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACzB,OAAO,CACH,WAAW;oBACX,GAAG;oBACH,uCAAuC;oBACvC,iDAAiD;oBACjD,GAAG;oBACH,MAAM;oBACN,OAAO;oBACP,KAAK;oBACL,mBAAmB,CACtB,CAAC;aACL;YACD,OAAO,CACH,WAAW;gBACX,GAAG;gBACH,uCAAuC;gBACvC,iDAAiD;gBACjD,GAAG;gBACH,yBAAyB;gBACzB,4BAA4B;gBAC5B,OAAO;gBACP,oCAAoC;gBACpC,mBAAmB,CACtB,CAAC;SACL;QAED,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC,OAAuB,CAAC,CAAC;QAEzD,OAAO,OAAO,KAAK,EAAE;YACjB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,8DAA8D;gBAC1D,iCAAiC,OAAO,UAAU;gBAClD,4BAA4B,KAAK,aAAa,MAAM,GAAG;gBACvD,SAAS,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG;gBACvD,2FAA2F,CAAC;IAC1G,CAAC,CAAC;AACN,CAAC;AAED,MAAM,WAAW,GAAG,wCAAwC,CAAC;AAE7D,SAAS,UAAU,CAAC,EAAc,EAAE,QAA0B;IAC1D,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;;;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;QAEzB,IACI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO;YAC7C,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,EACnD;YACE,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QAClC,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,IAAI,MAAM,KAAK,KAAK,EAAE;YAClB,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QAE9B,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAEvE,EAAE;QACF,uEAAuE;QACvE,iDAAiD;QACjD,EAAE;QACF,IAAI,CAAC,MAAM,EAAE;YACT,QAAQ,CAAC,GAAG,GAAG,YAAY,CAAC;YAC5B,mBAAmB;YACnB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtF,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEtC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAe,CAAC;YAE1D,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAExB,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;SAChC;QAED,IAAI,OAAO,KAAK,KAAK,EAAE;YACnB,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC9D;aAAM;YACH,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC3D;QAED,IAAI,GAAG,EAAE;YACL,YAAA,KAAK,CAAC,GAAG,EAAC,IAAI,uCAAJ,IAAI,GAAK,EAAE,EAAC;YACtB,IAAA,cAAM,EAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACtC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC;AAED,iBAAS,KAAK,CAAC"}
|
|
@@ -51,7 +51,7 @@ function rutubeParser(url) {
|
|
|
51
51
|
}
|
|
52
52
|
exports.rutubeParser = rutubeParser;
|
|
53
53
|
const urlParser = (url) => url;
|
|
54
|
-
const supportedServices =
|
|
54
|
+
const supportedServices = {
|
|
55
55
|
osf: {
|
|
56
56
|
extract: mfrParser,
|
|
57
57
|
},
|
|
@@ -73,33 +73,33 @@ const supportedServices = Object.entries({
|
|
|
73
73
|
vk: {
|
|
74
74
|
extract: vkParser,
|
|
75
75
|
csp: {
|
|
76
|
-
'frame-src': 'https://vk.com/',
|
|
76
|
+
'frame-src': ['https://vk.com/'],
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
79
|
rutube: {
|
|
80
80
|
extract: rutubeParser,
|
|
81
81
|
csp: {
|
|
82
|
-
'frame-src': 'https://rutube.ru/play/embed/',
|
|
82
|
+
'frame-src': ['https://rutube.ru/play/embed/'],
|
|
83
83
|
},
|
|
84
84
|
},
|
|
85
85
|
url: {
|
|
86
86
|
extract: urlParser,
|
|
87
87
|
},
|
|
88
|
-
}
|
|
88
|
+
};
|
|
89
89
|
function parseVideoUrl(service, url) {
|
|
90
90
|
let videoID = '';
|
|
91
91
|
const normalizedService = service.toLowerCase();
|
|
92
|
-
const parsed = supportedServices
|
|
92
|
+
const parsed = supportedServices[normalizedService];
|
|
93
93
|
if (!parsed) {
|
|
94
94
|
return false;
|
|
95
95
|
}
|
|
96
|
-
const
|
|
97
|
-
videoID =
|
|
96
|
+
const { extract, csp } = parsed;
|
|
97
|
+
videoID = extract(url);
|
|
98
98
|
// If the videoID field is empty, regex currently make it the close parenthesis.
|
|
99
99
|
if (videoID === ')') {
|
|
100
100
|
videoID = '';
|
|
101
101
|
}
|
|
102
|
-
return [videoID,
|
|
102
|
+
return [videoID, csp];
|
|
103
103
|
}
|
|
104
104
|
exports.parseVideoUrl = parseVideoUrl;
|
|
105
105
|
//# sourceMappingURL=parsers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/parsers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/parsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,11 @@ export declare type VideoServicesOptions = {
|
|
|
14
14
|
embed: 'simple' | (string & {});
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
+
export declare type Service = {
|
|
18
|
+
csp?: Record<string, string[]>;
|
|
19
|
+
extract(url: string): string;
|
|
20
|
+
};
|
|
21
|
+
export declare type Services = Record<VideoService, Service>;
|
|
17
22
|
export declare type VideoFullOptions = VideoServicesOptions & {
|
|
18
23
|
videoUrl: VideoUrlFn;
|
|
19
24
|
};
|
package/package.json
CHANGED
|
@@ -29,7 +29,7 @@ function replaceImageSrc(
|
|
|
29
29
|
const path = resolveRelativePath(currentPath, src);
|
|
30
30
|
|
|
31
31
|
if (isFileExists(path)) {
|
|
32
|
-
state.md.assets?.push(
|
|
32
|
+
state.md.assets?.push(src);
|
|
33
33
|
} else {
|
|
34
34
|
log.error(`Asset not found: ${bold(src)} in ${bold(currentPath)}`);
|
|
35
35
|
}
|
|
@@ -15,13 +15,6 @@ export enum VideoService {
|
|
|
15
15
|
url = 'url',
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
export type Service = {
|
|
19
|
-
csp?: Record<string, string[]>;
|
|
20
|
-
extract(url: string): string;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export type Services = [VideoService, Service][];
|
|
24
|
-
|
|
25
18
|
export const defaults: VideoFullOptions = {
|
|
26
19
|
videoUrl,
|
|
27
20
|
youtube: {width: 640, height: 390},
|
|
@@ -83,7 +83,7 @@ function tokenizeVideo(md: MarkdownIt, options: VideoFullOptions): Renderer.Rend
|
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
const EMBED_REGEX = /@\[([a-zA-Z]
|
|
86
|
+
const EMBED_REGEX = /@\[([a-zA-Z]*?)]\([\s]*(.*?)[\s]*[)]/im;
|
|
87
87
|
|
|
88
88
|
function videoEmbed(md: MarkdownIt, _options: VideoFullOptions): ParserInline.RuleInline {
|
|
89
89
|
return (state, silent) => {
|
|
@@ -98,12 +98,11 @@ function videoEmbed(md: MarkdownIt, _options: VideoFullOptions): ParserInline.Ru
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
const match = EMBED_REGEX.exec(state.src.slice(state.pos, state.src.length));
|
|
101
|
-
|
|
102
101
|
if (!match || match.length < 3) {
|
|
103
102
|
return false;
|
|
104
103
|
}
|
|
105
104
|
|
|
106
|
-
const service = match[1];
|
|
105
|
+
const service = match[1] || 'url';
|
|
107
106
|
const parsed = parseVideoUrl(service, match[2]);
|
|
108
107
|
|
|
109
108
|
if (parsed === false) {
|
|
@@ -126,13 +125,19 @@ function videoEmbed(md: MarkdownIt, _options: VideoFullOptions): ParserInline.Ru
|
|
|
126
125
|
const newState = new theState.md.inline.State(service, theState.md, theState.env, []);
|
|
127
126
|
newState.md.inline.tokenize(newState);
|
|
128
127
|
|
|
129
|
-
const token = theState.push('video', '', 0);
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
const token = theState.push('video', '', 0) as VideoToken;
|
|
129
|
+
|
|
130
|
+
token.videoID = videoID;
|
|
131
|
+
token.service = service;
|
|
132
|
+
|
|
132
133
|
token.level = theState.level;
|
|
133
134
|
}
|
|
134
135
|
|
|
135
|
-
|
|
136
|
+
if (service === 'url') {
|
|
137
|
+
theState.pos = theState.src.indexOf(')', theState.pos) + 1;
|
|
138
|
+
} else {
|
|
139
|
+
theState.pos += theState.src.indexOf(')', theState.pos);
|
|
140
|
+
}
|
|
136
141
|
|
|
137
142
|
if (csp) {
|
|
138
143
|
state.env.meta ??= {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {VideoService} from './const';
|
|
2
|
+
import {Services} from './types';
|
|
2
3
|
|
|
3
4
|
const ytRegex = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
|
|
4
5
|
export function youtubeParser(url: string) {
|
|
@@ -53,7 +54,7 @@ export function rutubeParser(url: string) {
|
|
|
53
54
|
|
|
54
55
|
const urlParser = (url: string) => url;
|
|
55
56
|
|
|
56
|
-
const supportedServices =
|
|
57
|
+
const supportedServices = {
|
|
57
58
|
osf: {
|
|
58
59
|
extract: mfrParser,
|
|
59
60
|
},
|
|
@@ -75,37 +76,37 @@ const supportedServices = Object.entries({
|
|
|
75
76
|
vk: {
|
|
76
77
|
extract: vkParser,
|
|
77
78
|
csp: {
|
|
78
|
-
'frame-src': 'https://vk.com/',
|
|
79
|
+
'frame-src': ['https://vk.com/'],
|
|
79
80
|
},
|
|
80
81
|
},
|
|
81
82
|
rutube: {
|
|
82
83
|
extract: rutubeParser,
|
|
83
84
|
csp: {
|
|
84
|
-
'frame-src': 'https://rutube.ru/play/embed/',
|
|
85
|
+
'frame-src': ['https://rutube.ru/play/embed/'],
|
|
85
86
|
},
|
|
86
87
|
},
|
|
87
88
|
url: {
|
|
88
89
|
extract: urlParser,
|
|
89
90
|
},
|
|
90
|
-
}
|
|
91
|
+
} as Services;
|
|
91
92
|
|
|
92
93
|
export function parseVideoUrl(service: string, url: string) {
|
|
93
94
|
let videoID = '';
|
|
94
95
|
const normalizedService = service.toLowerCase();
|
|
95
|
-
const parsed = supportedServices
|
|
96
|
+
const parsed = supportedServices[normalizedService as VideoService];
|
|
96
97
|
|
|
97
98
|
if (!parsed) {
|
|
98
99
|
return false;
|
|
99
100
|
}
|
|
100
101
|
|
|
101
|
-
const
|
|
102
|
+
const {extract, csp} = parsed;
|
|
102
103
|
|
|
103
|
-
videoID =
|
|
104
|
+
videoID = extract(url);
|
|
104
105
|
|
|
105
106
|
// If the videoID field is empty, regex currently make it the close parenthesis.
|
|
106
107
|
if (videoID === ')') {
|
|
107
108
|
videoID = '';
|
|
108
109
|
}
|
|
109
110
|
|
|
110
|
-
return [videoID,
|
|
111
|
+
return [videoID, csp] as const;
|
|
111
112
|
}
|
|
@@ -17,6 +17,13 @@ export type VideoServicesOptions = {
|
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
export type Service = {
|
|
21
|
+
csp?: Record<string, string[]>;
|
|
22
|
+
extract(url: string): string;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export type Services = Record<VideoService, Service>;
|
|
26
|
+
|
|
20
27
|
export type VideoFullOptions = VideoServicesOptions & {
|
|
21
28
|
videoUrl: VideoUrlFn;
|
|
22
29
|
};
|
package/lib/plugins/csp.d.ts
DELETED
package/lib/plugins/csp.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.collect = exports.requestCSP = void 0;
|
|
4
|
-
let csp = {};
|
|
5
|
-
const requestCSP = (policy) => {
|
|
6
|
-
for (const [field, content] of Object.entries(policy)) {
|
|
7
|
-
if (!csp[field]) {
|
|
8
|
-
csp[field] = [];
|
|
9
|
-
}
|
|
10
|
-
const flat = Array.isArray(content) ? content : [content];
|
|
11
|
-
for (const value of flat) {
|
|
12
|
-
if (csp[field].includes(value)) {
|
|
13
|
-
continue;
|
|
14
|
-
}
|
|
15
|
-
csp[field].push(value);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
exports.requestCSP = requestCSP;
|
|
20
|
-
const collect = () => {
|
|
21
|
-
const usedCSP = Object.assign({}, csp);
|
|
22
|
-
csp = {};
|
|
23
|
-
return usedCSP;
|
|
24
|
-
};
|
|
25
|
-
exports.collect = collect;
|
|
26
|
-
//# sourceMappingURL=csp.js.map
|
package/lib/plugins/csp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"csp.js","sourceRoot":"","sources":["../../src/transform/plugins/csp.ts"],"names":[],"mappings":";;;AAAA,IAAI,GAAG,GAA6B,EAAE,CAAC;AAIvC,MAAM,UAAU,GAAG,CAAC,MAAiB,EAAE,EAAE;IACrC,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACb,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACnB;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE1D,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC5B,SAAS;aACZ;YAED,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;KACJ;AACL,CAAC,CAAC;AAUM,gCAAU;AARlB,MAAM,OAAO,GAAG,GAAG,EAAE;IACjB,MAAM,OAAO,qBAAO,GAAG,CAAC,CAAC;IAEzB,GAAG,GAAG,EAAE,CAAC;IAET,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEkB,0BAAO"}
|