UNPKG

@cisstech/nge

Version:

NG Essentials is a collection of libraries for Angular developers.

156 lines (149 loc) 17.4 kB
import { Injectable } from '@angular/core'; import { NGE_MARKDOWN_CONTRIBUTION } from '../nge-markdown-contribution'; import * as i0 from "@angular/core"; let TABSET_COUNTER = 0; /** * Contribution to render tabs inside markdown files. */ export class NgeMarkdownTabbedSet { contribute(transformer) { this.addStyles(); transformer.addHtmlTransformer((el) => { const open = /^===\s*(.+)/; const close = /^===\s*$/; const processed = []; const toRemoves = []; el.querySelectorAll('p').forEach((paragraph) => { if (processed.indexOf(paragraph) !== -1) { return; } const match = paragraph.innerHTML.match(open); if (match) { const tabs = []; let tab = { title: match[1], content: [], }; let node = paragraph.nextElementSibling; while (node) { let push = true; const innerHTML = node.innerHTML.trim(); if (innerHTML.match(open)) { tabs.push(tab); tab = { title: innerHTML.replace('===', '').trim(), content: [], }; push = false; toRemoves.push(node); } else if (innerHTML.match(close)) { tabs.push(tab); toRemoves.push(node); break; } if (push) { tab.content.push(node); } processed.push(node); node = node.nextElementSibling; } paragraph.parentElement?.replaceChild(this.createTabs(tabs), paragraph); paragraph.remove(); toRemoves.forEach((e) => e.remove()); } }); }); } createTabs(tabs) { const tabset = document.createElement('div'); tabset.className = 'nge-md-tabbed-set'; let i = 0; TABSET_COUNTER++; tabs.forEach((e) => { const checkbox = document.createElement('input'); checkbox.type = 'radio'; checkbox.id = 'nge-md-tabbed-' + TABSET_COUNTER + '-' + i; checkbox.name = 'nge-md-tabbed-' + TABSET_COUNTER; if (i === 0) { checkbox.setAttribute('checked', 'checked'); } const label = document.createElement('label'); label.setAttribute('for', checkbox.id); label.innerHTML = e.title; const content = document.createElement('div'); content.className = 'nge-md-tabbed-content'; e.content.forEach((c) => content.appendChild(c)); tabset.append(checkbox, label, content); i++; }); return tabset; } addStyles() { const head = document.head; if (head.querySelector('[nge-markdown-tabbed-set]')) { return; } const style = document.createElement('style'); style.setAttribute('nge-markdown-tabbed-set', ''); style.innerHTML = ` /* TAB SET */ .nge-md-tabbed-set { display: flex; position: relative; flex-wrap: wrap; margin: 1em 0; border-radius: .1rem; } .nge-md-tabbed-set .highlight { background: #ddd; } .nge-md-tabbed-set .nge-md-tabbed-content { display: none; order: 99; width: 100%; } .nge-md-tabbed-set .nge-md-tabbed-content :first-child { margin: 0; } .nge-md-tabbed-set label { width: auto; /*padding: 0.25em;*/ padding: .9375em 1.25em .78125em; font-weight: 700; font-size: .84rem; cursor: pointer; } .nge-md-tabbed-set input { position: absolute; opacity: 0; } .nge-md-tabbed-set input:nth-child(n+1) { color: #333333; } .nge-md-tabbed-set input:nth-child(n+1):checked + label { color: #ff5252; transition: all 0.3s; /* background-color: rgba(255, 82, 82, 0.1);*/ border-bottom: .1rem solid; } .nge-md-tabbed-set input:nth-child(n+1):checked + label + .nge-md-tabbed-content { display: block; border-top: 1px solid #F5F5F5; } `; head.appendChild(style); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NgeMarkdownTabbedSet, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NgeMarkdownTabbedSet }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: NgeMarkdownTabbedSet, decorators: [{ type: Injectable }] }); /** * Injection token to register `NgeMarkdownTabbedSet` contribution. */ export const NgeMarkdownTabbedSetProvider = { provide: NGE_MARKDOWN_CONTRIBUTION, multi: true, useClass: NgeMarkdownTabbedSet, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdlLW1hcmtkb3duLXRhYmJlZC1zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2UvbWFya2Rvd24vc3JjL2NvbnRyaWJ1dGlvbnMvbmdlLW1hcmtkb3duLXRhYmJlZC1zZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQTtBQUVwRCxPQUFPLEVBQTJCLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUE7O0FBRWpHLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQTtBQU90Qjs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsVUFBVSxDQUFDLFdBQW1DO1FBQzVDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNoQixXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNwQyxNQUFNLElBQUksR0FBRyxhQUFhLENBQUE7WUFDMUIsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFBO1lBQ3hCLE1BQU0sU0FBUyxHQUFjLEVBQUUsQ0FBQTtZQUMvQixNQUFNLFNBQVMsR0FBYyxFQUFFLENBQUE7WUFDL0IsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDeEMsT0FBTTtnQkFDUixDQUFDO2dCQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUM3QyxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLE1BQU0sSUFBSSxHQUFVLEVBQUUsQ0FBQTtvQkFDdEIsSUFBSSxHQUFHLEdBQVE7d0JBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxD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cm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdlTWFya2Rvd25UcmFuc2Zvcm1lciB9IGZyb20gJy4uL25nZS1tYXJrZG93bi10cmFuc2Zvcm1lcidcbmltcG9ydCB7IE5nZU1hcmtkb3duQ29udHJpYnV0aW9uLCBOR0VfTUFSS0RPV05fQ09OVFJJQlVUSU9OIH0gZnJvbSAnLi4vbmdlLW1hcmtkb3duLWNvbnRyaWJ1dGlvbidcblxubGV0IFRBQlNFVF9DT1VOVEVSID0gMFxuXG5pbnRlcmZhY2UgVGFiIHtcbiAgdGl0bGU6IHN0cmluZ1xuICBjb250ZW50OiBFbGVtZW50W11cbn1cblxuLyoqXG4gKiBDb250cmlidXRpb24gdG8gcmVuZGVyIHRhYnMgaW5zaWRlIG1hcmtkb3duIGZpbGVzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmdlTWFya2Rvd25UYWJiZWRTZXQgaW1wbGVtZW50cyBOZ2VNYXJrZG93bkNvbnRyaWJ1dGlvbiB7XG4gIGNvbnRyaWJ1dGUodHJhbnNmb3JtZXI6IE5nZU1hcmtkb3duVHJhbnNmb3JtZXIpIHtcbiAgICB0aGlzLmFkZFN0eWxlcygpXG4gICAgdHJhbnNmb3JtZXIuYWRkSHRtbFRyYW5zZm9ybWVyKChlbCkgPT4ge1xuICAgICAgY29uc3Qgb3BlbiA9IC9ePT09XFxzKiguKykvXG4gICAgICBjb25zdCBjbG9zZSA9IC9ePT09XFxzKiQvXG4gICAgICBjb25zdCBwcm9jZXNzZWQ6IEVsZW1lbnRbXSA9IFtdXG4gICAgICBjb25zdCB0b1JlbW92ZXM6IEVsZW1lbnRbXSA9IFtdXG4gICAgICBlbC5xdWVyeVNlbGVjdG9yQWxsKCdwJykuZm9yRWFjaCgocGFyYWdyYXBoKSA9PiB7XG4gICAgICAgIGlmIChwcm9jZXNzZWQuaW5kZXhPZihwYXJhZ3JhcGgpICE9PSAtMSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSBwYXJhZ3JhcGguaW5uZXJIVE1MLm1hdGNoKG9wZW4pXG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIGNvbnN0IHRhYnM6IFRhYltdID0gW11cbiAgICAgICAgICBsZXQgdGFiOiBUYWIgPSB7XG4gICAgICAgICAgICB0aXRsZTogbWF0Y2hbMV0sXG4gICAgICAgICAgICBjb250ZW50OiBbXSxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgbm9kZSA9IHBhcmFncmFwaC5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICAgICAgbGV0IHB1c2ggPSB0cnVlXG4gICAgICAgICAgICBjb25zdCBpbm5lckhUTUwgPSBub2RlLmlubmVySFRNTC50cmltKClcbiAgICAgICAgICAgIGlmIChpbm5lckhUTUwubWF0Y2gob3BlbikpIHtcbiAgICAgICAgICAgICAgdGFicy5wdXNoKHRhYilcbiAgICAgICAgICAgICAgdGFiID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBpbm5lckhUTUwucmVwbGFjZSgnPT09JywgJycpLnRyaW0oKSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBbXSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwdXNoID0gZmFsc2VcbiAgICAgICAgICAgICAgdG9SZW1vdmVzLnB1c2gobm9kZSlcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5uZXJIVE1MLm1hdGNoKGNsb3NlKSkge1xuICAgICAgICAgICAgICB0YWJzLnB1c2godGFiKVxuICAgICAgICAgICAgICB0b1JlbW92ZXMucHVzaChub2RlKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocHVzaCkge1xuICAgICAgICAgICAgICB0YWIuY29udGVudC5wdXNoKG5vZGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHByb2Nlc3NlZC5wdXNoKG5vZGUpXG4gICAgICAgICAgICBub2RlID0gbm9kZS5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwYXJhZ3JhcGgucGFyZW50RWxlbWVudD8ucmVwbGFjZUNoaWxkKHRoaXMuY3JlYXRlVGFicyh0YWJzKSwgcGFyYWdyYXBoKVxuXG4gICAgICAgICAgcGFyYWdyYXBoLnJlbW92ZSgpXG4gICAgICAgICAgdG9SZW1vdmVzLmZvckVhY2goKGUpID0+IGUucmVtb3ZlKCkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGFicyh0YWJzOiBUYWJbXSkge1xuICAgIGNvbnN0IHRhYnNldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGFic2V0LmNsYXNzTmFtZSA9ICduZ2UtbWQtdGFiYmVkLXNldCdcblxuICAgIGxldCBpID0gMFxuICAgIFRBQlNFVF9DT1VOVEVSKytcbiAgICB0YWJzLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGNvbnN0IGNoZWNrYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKVxuICAgICAgY2hlY2tib3gudHlwZSA9ICdyYWRpbydcbiAgICAgIGNoZWNrYm94LmlkID0gJ25nZS1tZC10YWJiZWQtJyArIFRBQlNFVF9DT1VOVEVSICsgJy0nICsgaVxuICAgICAgY2hlY2tib3gubmFtZSA9ICduZ2UtbWQtdGFiYmVkLScgKyBUQUJTRVRfQ09VTlRFUlxuICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgY2hlY2tib3guc2V0QXR0cmlidXRlKCdjaGVja2VkJywgJ2NoZWNrZWQnKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJylcbiAgICAgIGxhYmVsLnNldEF0dHJpYnV0ZSgnZm9yJywgY2hlY2tib3guaWQpXG4gICAgICBsYWJlbC5pbm5lckhUTUwgPSBlLnRpdGxlXG5cbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgICAgY29udGVudC5jbGFzc05hbWUgPSAnbmdlLW1kLXRhYmJlZC1jb250ZW50J1xuICAgICAgZS5jb250ZW50LmZvckVhY2goKGMpID0+IGNvbnRlbnQuYXBwZW5kQ2hpbGQoYykpXG5cbiAgICAgIHRhYnNldC5hcHBlbmQoY2hlY2tib3gsIGxhYmVsLCBjb250ZW50KVxuICAgICAgaSsrXG4gICAgfSlcbiAgICByZXR1cm4gdGFic2V0XG4gIH1cblxuICBwcml2YXRlIGFkZFN0eWxlcygpIHtcbiAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuaGVhZFxuICAgIGlmIChoZWFkLnF1ZXJ5U2VsZWN0b3IoJ1tuZ2UtbWFya2Rvd24tdGFiYmVkLXNldF0nKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpXG4gICAgc3R5bGUuc2V0QXR0cmlidXRlKCduZ2UtbWFya2Rvd24tdGFiYmVkLXNldCcsICcnKVxuICAgIHN0eWxlLmlubmVySFRNTCA9IGBcbiAgICAgICAgICAgIC8qICBUQUIgU0VUICovXG4gICAgICAgICAgICAubmdlLW1kLXRhYmJlZC1zZXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDFlbSAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IC4xcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubmdlLW1kLXRhYmJlZC1zZXQgLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2RkZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5nZS1tZC10YWJiZWQtc2V0IC5uZ2UtbWQtdGFiYmVkLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDk5O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm5nZS1tZC10YWJiZWQtc2V0IC5uZ2UtbWQtdGFiYmVkLWNvbnRlbnQgOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5uZ2UtbWQtdGFiYmVkLXNldCBsYWJlbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgLypwYWRkaW5nOiAwLjI1ZW07Ki9cbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAuOTM3NWVtIDEuMjVlbSAuNzgxMjVlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg0cmVtO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5nZS1tZC10YWJiZWQtc2V0IGlucHV0IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5nZS1tZC10YWJiZWQtc2V0IGlucHV0Om50aC1jaGlsZChuKzEpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5nZS1tZC10YWJiZWQtc2V0IGlucHV0Om50aC1jaGlsZChuKzEpOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZjUyNTI7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICAgICAgICAgICAgLyogYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDgyLCA4MiwgMC4xKTsqL1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IC4xcmVtIHNvbGlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubmdlLW1kLXRhYmJlZC1zZXQgaW5wdXQ6bnRoLWNoaWxkKG4rMSk6Y2hlY2tlZCArIGxhYmVsICsgLm5nZS1tZC10YWJiZWQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGNUY1RjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcblxuICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpXG4gIH1cbn1cblxuLyoqICAqIEluamVjdGlvbiB0b2tlbiB0byByZWdpc3RlciBgTmdlTWFya2Rvd25UYWJiZWRTZXRgIGNvbnRyaWJ1dGlvbi4gKi9cbmV4cG9ydCBjb25zdCBOZ2VNYXJrZG93blRhYmJlZFNldFByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdFX01BUktET1dOX0NPTlRSSUJVVElPTixcbiAgbXVsdGk6IHRydWUsXG4gIHVzZUNsYXNzOiBOZ2VNYXJrZG93blRhYmJlZFNldCxcbn1cbiJdfQ==