@ng-doc/app
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
161 lines (148 loc) • 5.71 kB
JavaScript
import { NgDocBlockquoteComponent, NgDocIconComponent } from '@ng-doc/ui-kit';
import { NgDocCodeComponent } from '@ng-doc/app/components/code';
import { NgDocDemoComponent } from '@ng-doc/app/components/demo';
import { NgDocDemoPaneComponent } from '@ng-doc/app/components/demo-pane';
import { NgDocHeadingAnchorComponent } from '@ng-doc/app/components/heading-anchor';
import { Renderer2 } from '@angular/core';
import { NgDocImageViewerComponent } from '@ng-doc/app/components/image-viewer';
import { NgDocMermaidViewerComponent } from '@ng-doc/app/components/mermaid-viewer';
import { NgDocPlaygroundComponent } from '@ng-doc/app/components/playground';
import { isPresent } from '@ng-doc/core/helpers/is-present';
import { NgDocTabsComponent } from '@ng-doc/app/components/tabs';
export * from '@ng-doc/app/processors/processors/link';
export * from '@ng-doc/app/processors/processors/tooltip';
const blockquoteProcessor = {
component: NgDocBlockquoteComponent,
selector: 'ng-doc-blockquote',
extractOptions: (element) => ({
content: [Array.from(element.childNodes)],
inputs: {
type: element.getAttribute('type') || 'default',
icon: element.getAttribute('icon') ?? undefined,
},
}),
};
const codeProcessor = {
component: NgDocCodeComponent,
selector: 'pre code',
nodeToReplace: (element) => element.closest('pre') ?? element,
extractOptions: (element) => ({
inputs: {
name: element.parentElement?.getAttribute('name') || undefined,
icon: element.parentElement?.getAttribute('icon') || undefined,
},
content: [[element.closest('pre') ?? element]],
}),
};
const demoProcessor = {
component: NgDocDemoComponent,
selector: 'ng-doc-demo',
extractOptions: (element) => ({
inputs: {
componentName: element.getAttribute('componentName') || undefined,
options: JSON.parse(element.querySelector('#options')?.textContent ?? '{}'),
},
}),
};
const demoPaneProcessor = {
component: NgDocDemoPaneComponent,
selector: 'ng-doc-demo-pane',
extractOptions: (element) => ({
inputs: {
componentName: element.getAttribute('componentName') || undefined,
options: JSON.parse(element.querySelector('#options')?.textContent ?? '') || {},
},
}),
};
const headingAnchorProcessor = {
component: NgDocHeadingAnchorComponent,
selector: 'ng-doc-heading-anchor',
extractOptions: (element) => ({
inputs: {
classes: element.getAttribute('class')?.split(' ') || [],
anchor: element.getAttribute('anchor') || '',
},
}),
};
const iconProcessor = {
component: NgDocIconComponent,
selector: 'ng-doc-icon',
extractOptions: (element) => ({
inputs: {
icon: element.getAttribute('icon') ?? '',
size: Number(element.getAttribute('size')) || 16,
},
}),
};
const imageProcessor = {
component: NgDocImageViewerComponent,
selector: 'img:not([zoom="false"])',
nodeToReplace: (element, injector) => {
const renderer = injector.get(Renderer2);
const anchor = renderer.createElement('div');
return element.parentNode?.insertBefore(anchor, element) ?? element;
},
extractOptions: (element) => ({
inputs: {
src: element.getAttribute('src') ?? '',
alt: element.getAttribute('alt') ?? '',
},
content: [[element]],
}),
};
const mermaidProcessor = {
component: NgDocMermaidViewerComponent,
selector: 'pre.mermaid',
extractOptions: (element) => ({
inputs: {
graph: element.textContent ?? '',
},
}),
};
const playgroundProcessor = {
component: NgDocPlaygroundComponent,
selector: 'ng-doc-playground',
extractOptions: (element) => ({
inputs: {
id: element.getAttribute('id') || undefined,
properties: JSON.parse(element.querySelector('#data')?.textContent?.replace(/\n/g, '\\n') ?? '') ||
undefined,
pipeName: element.querySelector('#pipeName')?.textContent || undefined,
selectors: (element.querySelector('#selectors')?.textContent || '')
.split(',')
.map((selector) => selector.trim())
.filter(isPresent),
options: JSON.parse(element.querySelector('#options')?.textContent ?? '') || {},
},
}),
};
const tabsProcessor = {
component: NgDocTabsComponent,
selector: 'ng-doc-tab',
nodeToReplace: (element, injector) => {
const renderer = injector.get(Renderer2);
const anchor = renderer.createElement('div');
return element.parentNode?.insertBefore(anchor, element) ?? element;
},
extractOptions: (element, root) => {
const group = element.getAttribute('group') ?? '';
const tabs = Array.from(root.querySelectorAll(`ng-doc-tab[group="${group}"]`));
const mappedTabs = tabs.map((tab) => ({
title: tab.getAttribute('name') ?? '',
content: tab,
icon: tab.getAttribute('icon') || undefined,
active: tab.hasAttribute('active'),
}));
tabs.forEach((tab) => tab.remove());
return {
inputs: {
tabs: mappedTabs,
},
};
},
};
/**
* Generated bundle index. Do not edit.
*/
export { blockquoteProcessor, codeProcessor, demoPaneProcessor, demoProcessor, headingAnchorProcessor, iconProcessor, imageProcessor, mermaidProcessor, playgroundProcessor, tabsProcessor };
//# sourceMappingURL=ng-doc-app-processors-processors.mjs.map